Ruckig  0.4.0
Instantaneous Motion Generation
Classes | Typedefs | Enumerations | Functions | Variables
ruckig Namespace Reference

Classes

class  Block
 Which times are possible for synchronization? More...
 
class  BrakeProfile
 Calculates (pre- or post-) profile to get current or final state below the limits. More...
 
class  InputParameter
 Input type of Ruckig. More...
 
class  OutputParameter
 Output type of Ruckig. More...
 
class  PositionStep1
 Mathematical equations for Step 1 in position interface: Extremal profiles. More...
 
class  PositionStep2
 Mathematical equations for Step 2 in position interface: Time synchronization. More...
 
struct  PositionExtrema
 Information about the position extrema. More...
 
class  Profile
 The state profile for position, velocity, acceleration and jerk for a single DoF. More...
 
class  Reflexxes
 Wrapper around Reflexxes as an alternative OTG algorithm (for comparison) More...
 
class  Ruckig
 Main class for the Ruckig algorithm. More...
 
class  Trajectory
 Interface for the generated trajectory. More...
 
class  TargetTrajectory
 Interface for the generated trajectory.
 
class  VelocityStep1
 Mathematical equations for Step 1 in velocity interface: Extremal profiles. More...
 
class  VelocityStep2
 Mathematical equations for Step 2 in velocity interface: Time synchronization. More...
 

Typedefs

using Limits = Profile::Limits
 
using JerkSigns = Profile::JerkSigns
 

Enumerations

enum  Result {
  Working = 0 , Finished = 1 , Error = -1 , ErrorInvalidInput = -100 ,
  ErrorTrajectoryDuration = -101 , ErrorPositionalLimits = -102 , ErrorExecutionTimeCalculation = -110 , ErrorSynchronizationCalculation = -111
}
 Result type of Ruckig's update function. More...
 
enum class  ControlInterface { Position , Velocity }
 
enum class  Synchronization { Time , TimeIfNecessary , Phase , None }
 
enum class  DurationDiscretization { Continuous , Discrete }
 

Functions

double Power2 (double v)
 
double Sqrt (double v)
 
double Abs (double v)
 
template<class Vector >
std::string join (const Vector &array)
 
double v_at_t (double v0, double a0, double j, double t)
 
double v_at_a_zero (double v0, double a0, double j)
 

Variables

constexpr static size_t DynamicDOFs {0}
 

Typedef Documentation

◆ JerkSigns

◆ Limits

Enumeration Type Documentation

◆ ControlInterface

Enumerator
Position 

Position-control: Full control over the entire kinematic state (Default)

Velocity 

Velocity-control: Ignores the current position, target position, and velocity limits.

◆ DurationDiscretization

Enumerator
Continuous 

Every trajectory synchronization duration is allowed (Default)

Discrete 

The trajectory synchronization duration must be a multiple of the control cycle.

◆ Result

Result type of Ruckig's update function.

Enumerator
Working 

The trajectory is calculated normally.

Finished 

Trajectory has reached its final position.

Error 

Unclassified error.

ErrorInvalidInput 

Error in the input parameter.

ErrorTrajectoryDuration 

The trajectory duration exceeds its numerical limits.

ErrorPositionalLimits 

The trajectory exceeds the given positional limits (only in Ruckig Pro)

ErrorExecutionTimeCalculation 

Error during the extremel time calculation (Step 1)

ErrorSynchronizationCalculation 

Error during the synchronization calculation (Step 2)

◆ Synchronization

Enumerator
Time 

Always synchronize the DoFs to reach the target at the same time (Default)

TimeIfNecessary 

Synchronize only when necessary (e.g. for non-zero target velocity or acceleration)

Phase 

Phase synchronize the DoFs when possible, else fallback to "Time" strategy.

None 

Calculate every DoF independently.

Function Documentation

◆ Abs()

double ruckig::Abs ( double  v)
inline

◆ join()

template<class Vector >
std::string ruckig::join ( const Vector &  array)

◆ Power2()

double ruckig::Power2 ( double  v)
inline

◆ Sqrt()

double ruckig::Sqrt ( double  v)
inline

◆ v_at_a_zero()

double ruckig::v_at_a_zero ( double  v0,
double  a0,
double  j 
)
inline

◆ v_at_t()

double ruckig::v_at_t ( double  v0,
double  a0,
double  j,
double  t 
)
inline

Variable Documentation

◆ DynamicDOFs

constexpr static size_t ruckig::DynamicDOFs {0}
staticconstexpr