Ruckig 0.15.0
Motion Generation for Robots and Machines
Loading...
Searching...
No Matches
ruckig Namespace Reference

Classes

class  Block
 Which times are possible for synchronization?
 
struct  Bound
 Information about the extrema values. More...
 
struct  BrakeProfile
 Calculates (pre- or post-) profile to get current or final state below the limits. More...
 
class  Calculator
 Interface for the main calculator and its hyperparameters. More...
 
class  InputParameter
 Input of the Ruckig algorithm. More...
 
struct  MemoryRequirement
 Helper class to define the memory requirement when using intermediate waypoints (only in Ruckig Pro) More...
 
class  OutputParameter
 Output of the Ruckig algorithm. More...
 
class  Profile
 A single-dof kinematic profile with position, velocity, acceleration and jerk. More...
 
class  Ruckig
 Main interface for the Ruckig algorithm. More...
 
struct  RuckigError
 The base class for all exceptions. More...
 
class  TargetCalculator
 Calculation class for a state-to-state trajectory.
 
class  TargetState
 The kinematic target state for Trackig. More...
 
class  Trackig
 The main interface for the Trackig algorithm. More...
 
class  Trajectory
 The trajectory generated by the Ruckig algorithm. More...
 
class  WaypointsCalculator
 

Typedefs

typedef Profile::ReachedLimits ReachedLimits
 
typedef Profile::Direction Direction
 
typedef Profile::ControlSigns ControlSigns
 
template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
using RuckigThrow = Ruckig<DOFs, CustomVector, true>
 
template<class T , size_t DOFs>
using StandardVector = typename std::conditional< DOFs >= 1, std::array<T, DOFs>, std::vector<T> >::type
 Vector data type based on the C++ standard library.
 
template<class T , size_t DOFs, size_t SIZE>
using StandardSizeVector = typename std::conditional< DOFs >= 1, std::array<T, SIZE>, std::vector<T> >::type
 

Enumerations

enum class  ControlInterface { Position , Velocity }
 The control interface of the robotic system, either for position or velocity control. More...
 
enum class  Synchronization { Time , TimeIfNecessary , Phase , None }
 Synchronization strategy for multiple degrees of freedom (axes) More...
 
enum class  DurationDiscretization { Continuous , Discrete }
 Restrict allowed durations of the resulting trajectory. More...
 
enum class  TargetLimitViolation { ReturnError , Confine }
 Behaviour if the target state is outside the specified limits. More...
 
enum  Result {
  Working = 0 , Finished = 1 , Paused = 2 , Error = -1 ,
  ErrorInvalidInput = -100 , ErrorTrajectoryDuration = -101 , ErrorPositionalLimits = -102 , ErrorZeroLimits = -104 ,
  ErrorExecutionTimeCalculation = -110 , ErrorSynchronizationCalculation = -111
}
 Result type of Ruckig's update function. More...
 
enum class  TrackigMode { Optimized , Fast }
 

Functions

template<class Vector >
std::string join (const Vector &array, bool high_precision=false)
 Join a vector for easy printing (e.g. to std::cout)
 

Typedef Documentation

◆ ControlSigns

◆ Direction

◆ ReachedLimits

◆ RuckigThrow

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
using ruckig::RuckigThrow = Ruckig<DOFs, CustomVector, true>

◆ StandardSizeVector

template<class T , size_t DOFs, size_t SIZE>
using ruckig::StandardSizeVector = typename std::conditional< DOFs >= 1, std::array<T, SIZE>, std::vector<T> >::type

◆ StandardVector

template<class T , size_t DOFs>
using ruckig::StandardVector = typename std::conditional< DOFs >= 1, std::array<T, DOFs>, std::vector<T> >::type

Vector data type based on the C++ standard library.

Enumeration Type Documentation

◆ ControlInterface

enum class ruckig::ControlInterface
strong

The control interface of the robotic system, either for position or velocity control.

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

enum class ruckig::DurationDiscretization
strong

Restrict allowed durations of the resulting trajectory.

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 

The trajectory has reached its final position.

Paused 

The speed parameter is zero currently.

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)

ErrorZeroLimits 

The trajectory is not valid due to a conflict with zero limits.

ErrorExecutionTimeCalculation 

Error during the extremel time calculation (Step 1)

ErrorSynchronizationCalculation 

Error during the synchronization calculation (Step 2)

◆ Synchronization

enum class ruckig::Synchronization
strong

Synchronization strategy for multiple degrees of freedom (axes)

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 this is possible, else fallback to "Time" strategy. Phase synchronization will result a straight-line trajectory.

None 

Calculate every DoF independently.

◆ TargetLimitViolation

enum class ruckig::TargetLimitViolation
strong

Behaviour if the target state is outside the specified limits.

Enumerator
ReturnError 

Return (or throw) an error (Default)

Confine 

Try to keep the trajectory within the limits if possible, else throw an error.

◆ TrackigMode

enum class ruckig::TrackigMode
strong

Different modes of the Trackig algorithm

The Trackig algorithm has two different modes: One optimized for higher quality but slower computation time, and one for faster computation time but lower tracking quality. The fast mode is around 100x faster on average, and with 1000x faster worst calculation time. However, the fast mode currently does not support positional limits or synchronization.

Enumerator
Optimized 

Optimized for tracking quality (Default)

Fast 

Faster calculation time.

Function Documentation

◆ join()

template<class Vector >
std::string ruckig::join ( const Vector & array,
bool high_precision = false )
inline

Join a vector for easy printing (e.g. to std::cout)