Ruckig 0.15.0
Motion Generation for Robots and Machines
Loading...
Searching...
No Matches
ruckig::InputParameter< DOFs, CustomVector > Class Template Reference

Input of the Ruckig algorithm. More...

#include <input_parameter.hpp>

Public Member Functions

template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 InputParameter ()
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 InputParameter (size_t dofs)
 
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 InputParameter (size_t max_number_of_waypoints)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 InputParameter (size_t dofs, size_t max_number_of_waypoints)
 
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 InputParameter (const MemoryRequirement &memory_requirement)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 InputParameter (size_t dofs, const MemoryRequirement &memory_requirement)
 
template<bool throw_validation_error = true>
bool validate (bool check_current_state_within_limits=false, bool check_target_state_within_limits=true) const
 Validate the input for trajectory calculation.
 
bool operator!= (const InputParameter< DOFs, CustomVector > &rhs) const
 
void scale (double position_scale, double time_scale)
 Scale with the position and time of the input (only in Ruckig Pro)
 
std::string to_string () const
 Get a string representation of the parameters.
 

Public Attributes

size_t degrees_of_freedom
 Degrees of freedom.
 
ControlInterface control_interface
 The default position interface controls the full kinematic state.
 
Synchronization synchronization
 Synchronization behavior of multiple DoFs.
 
DurationDiscretization duration_discretization
 Whether the duration should be a discrete multiple of the control cycle (off by default)
 
TargetLimitViolation target_limit_violation
 Behavior when the target state exceeds the limits (return error by default) (only in Pro Version)
 
CustomVector< double, DOFs > current_position
 Current (start) state.
 
CustomVector< double, DOFs > current_velocity
 
CustomVector< double, DOFs > current_acceleration
 
CustomVector< double, DOFs > target_position
 Target (goal) state.
 
CustomVector< double, DOFs > target_velocity
 
CustomVector< double, DOFs > target_acceleration
 
CustomVector< double, DOFs > max_velocity
 Velocity limit.
 
CustomVector< double, DOFs > max_acceleration
 Acceleration limit.
 
CustomVector< double, DOFs > max_jerk
 Jerk limit.
 
std::optional< CustomVector< double, DOFs > > min_velocity
 Minimum velocity limit. If none is given, the negative maximum velocity limit is used.
 
std::optional< CustomVector< double, DOFs > > min_acceleration
 Minimum acceleration limit. If none is given, the negative maximum acceleration limit is used.
 
std::vector< CustomVector< double, DOFs > > intermediate_positions
 Intermediate waypoints (only in Ruckig Pro)
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_max_velocity
 Kinematic constraints for intermediate sections (between waypoints) (only in Ruckig Pro)
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_max_acceleration
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_max_jerk
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_min_velocity
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_min_acceleration
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_max_position
 
std::optional< std::vector< CustomVector< double, DOFs > > > per_section_min_position
 
std::optional< CustomVector< double, DOFs > > max_position
 Maximum positional limit (only in Ruckig Pro)
 
std::optional< CustomVector< double, DOFs > > min_position
 Minimum positional limit (only in Ruckig Pro)
 
CustomVector< bool, DOFs > enabled
 Is the DoF considered for calculation? (true by default)
 
std::optional< CustomVector< ControlInterface, DOFs > > per_dof_control_interface
 Per-DoF control_interface (overwrites global control_interface)
 
std::optional< CustomVector< Synchronization, DOFs > > per_dof_synchronization
 Per-DoF synchronization (overwrites global synchronization)
 
std::optional< double > minimum_duration
 Optional minimum trajectory duration.
 
std::optional< std::vector< double > > per_section_minimum_duration
 Optional minimum trajectory duration for each intermediate sections (only in Ruckig Pro)
 
std::optional< double > interrupt_calculation_duration
 Optional duration [µs] after which the trajectory calculation is (softly) interrupted (only in Ruckig Pro)
 

Detailed Description

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
class ruckig::InputParameter< DOFs, CustomVector >

Input of the Ruckig algorithm.

Constructor & Destructor Documentation

◆ InputParameter() [1/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( )
inline

◆ InputParameter() [2/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( size_t dofs)
inline

◆ InputParameter() [3/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( size_t max_number_of_waypoints)
inline

◆ InputParameter() [4/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( size_t dofs,
size_t max_number_of_waypoints )
inline

◆ InputParameter() [5/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( const MemoryRequirement & memory_requirement)
inline

◆ InputParameter() [6/6]

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::InputParameter< DOFs, CustomVector >::InputParameter ( size_t dofs,
const MemoryRequirement & memory_requirement )
inline

Member Function Documentation

◆ operator!=()

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
bool ruckig::InputParameter< DOFs, CustomVector >::operator!= ( const InputParameter< DOFs, CustomVector > & rhs) const
inline

◆ scale()

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
void ruckig::InputParameter< DOFs, CustomVector >::scale ( double position_scale,
double time_scale )
inline

Scale with the position and time of the input (only in Ruckig Pro)

◆ to_string()

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::string ruckig::InputParameter< DOFs, CustomVector >::to_string ( ) const
inline

Get a string representation of the parameters.

◆ validate()

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
template<bool throw_validation_error = true>
bool ruckig::InputParameter< DOFs, CustomVector >::validate ( bool check_current_state_within_limits = false,
bool check_target_state_within_limits = true ) const
inline

Validate the input for trajectory calculation.

Member Data Documentation

◆ control_interface

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
ControlInterface ruckig::InputParameter< DOFs, CustomVector >::control_interface

The default position interface controls the full kinematic state.

◆ current_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_acceleration

◆ current_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_position

Current (start) state.

◆ current_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_velocity

◆ degrees_of_freedom

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
size_t ruckig::InputParameter< DOFs, CustomVector >::degrees_of_freedom

Degrees of freedom.

◆ duration_discretization

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
DurationDiscretization ruckig::InputParameter< DOFs, CustomVector >::duration_discretization

Whether the duration should be a discrete multiple of the control cycle (off by default)

◆ enabled

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<bool, DOFs> ruckig::InputParameter< DOFs, CustomVector >::enabled

Is the DoF considered for calculation? (true by default)

◆ intermediate_positions

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::vector< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::intermediate_positions

Intermediate waypoints (only in Ruckig Pro)

◆ interrupt_calculation_duration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional<double> ruckig::InputParameter< DOFs, CustomVector >::interrupt_calculation_duration

Optional duration [µs] after which the trajectory calculation is (softly) interrupted (only in Ruckig Pro)

The total calculation consists of a first iterative phase and a second fixed phase. The interrupt signal is applied to the iterative phase only, and the real-time capable (constant) second phase is computed afterwards. Therefore, the total calculation duration might exceed this interrupt signal by a constant offset, which should be considered (subtracted) here.

◆ max_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_acceleration

Acceleration limit.

◆ max_jerk

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_jerk

Jerk limit.

◆ max_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::max_position

Maximum positional limit (only in Ruckig Pro)

◆ max_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_velocity

Velocity limit.

◆ min_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::min_acceleration

Minimum acceleration limit. If none is given, the negative maximum acceleration limit is used.

◆ min_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::min_position

Minimum positional limit (only in Ruckig Pro)

◆ min_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::min_velocity

Minimum velocity limit. If none is given, the negative maximum velocity limit is used.

◆ minimum_duration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional<double> ruckig::InputParameter< DOFs, CustomVector >::minimum_duration

Optional minimum trajectory duration.

◆ per_dof_control_interface

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<ControlInterface, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::per_dof_control_interface

Per-DoF control_interface (overwrites global control_interface)

◆ per_dof_synchronization

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< CustomVector<Synchronization, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::per_dof_synchronization

Per-DoF synchronization (overwrites global synchronization)

◆ per_section_max_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_acceleration

◆ per_section_max_jerk

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_jerk

◆ per_section_max_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_position

◆ per_section_max_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_velocity

Kinematic constraints for intermediate sections (between waypoints) (only in Ruckig Pro)

◆ per_section_min_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_acceleration

◆ per_section_min_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_position

◆ per_section_min_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_velocity

◆ per_section_minimum_duration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
std::optional< std::vector<double> > ruckig::InputParameter< DOFs, CustomVector >::per_section_minimum_duration

Optional minimum trajectory duration for each intermediate sections (only in Ruckig Pro)

◆ synchronization

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
Synchronization ruckig::InputParameter< DOFs, CustomVector >::synchronization

Synchronization behavior of multiple DoFs.

◆ target_acceleration

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_acceleration

◆ target_limit_violation

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
TargetLimitViolation ruckig::InputParameter< DOFs, CustomVector >::target_limit_violation

Behavior when the target state exceeds the limits (return error by default) (only in Pro Version)

◆ target_position

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_position

Target (goal) state.

◆ target_velocity

template<size_t DOFs, template< class, size_t > class CustomVector = StandardVector>
CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_velocity

The documentation for this class was generated from the following file: