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? | |
| 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 |
| Minimum trajectory duration. | |
| std::optional< std::vector< double > > | per_section_minimum_duration |
| std::optional< double > | interrupt_calculation_duration |
| Optional duration [µs] after which the trajectory calculation is (softly) interrupted (only in Ruckig Pro) | |
Input of the Ruckig algorithm.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Scale with the position and time of the input (only in Ruckig Pro)
|
inline |
Get a string representation of the parameters.
|
inline |
Validate the input for trajectory calculation.
| ControlInterface ruckig::InputParameter< DOFs, CustomVector >::control_interface |
The default position interface controls the full kinematic state.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_acceleration |
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_position |
Current (start) state.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::current_velocity |
| size_t ruckig::InputParameter< DOFs, CustomVector >::degrees_of_freedom |
Degrees of freedom.
| DurationDiscretization ruckig::InputParameter< DOFs, CustomVector >::duration_discretization |
Whether the duration should be a discrete multiple of the control cycle (off by default)
| CustomVector<bool, DOFs> ruckig::InputParameter< DOFs, CustomVector >::enabled |
Is the DoF considered for calculation?
A DoF / axis is enabled by default. Otherwise it will be ignored for all calculations, in particular any synchronization. Ruckig will output a trajectory with constant acceleration for those DoFs.
| std::vector< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::intermediate_positions |
Intermediate waypoints (only in Ruckig Pro)
| 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.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_acceleration |
Acceleration limit.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_jerk |
Jerk limit.
| std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::max_position |
Maximum positional limit (only in Ruckig Pro)
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::max_velocity |
Velocity limit.
| 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.
| std::optional< CustomVector<double, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::min_position |
Minimum positional limit (only in Ruckig Pro)
| 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.
| std::optional<double> ruckig::InputParameter< DOFs, CustomVector >::minimum_duration |
Minimum trajectory duration.
Due to physics, we cannot guarantee an exact, but only a minimum duration of the trajectory.
| std::optional< CustomVector<ControlInterface, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::per_dof_control_interface |
Per-DoF control_interface (overwrites global control_interface)
| std::optional< CustomVector<Synchronization, DOFs> > ruckig::InputParameter< DOFs, CustomVector >::per_dof_synchronization |
Per-DoF synchronization (overwrites global synchronization)
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_acceleration |
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_jerk |
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_max_position |
| 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)
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_acceleration |
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_position |
| std::optional< std::vector< CustomVector<double, DOFs> > > ruckig::InputParameter< DOFs, CustomVector >::per_section_min_velocity |
| std::optional< std::vector<double> > ruckig::InputParameter< DOFs, CustomVector >::per_section_minimum_duration |
Minimum trajectory duration for each intermediate sections (only in Ruckig Pro)
Due to physics, we cannot guarantee an exact, but only a minimum duration of the section.
| Synchronization ruckig::InputParameter< DOFs, CustomVector >::synchronization |
Synchronization behavior of multiple DoFs.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_acceleration |
| TargetLimitViolation ruckig::InputParameter< DOFs, CustomVector >::target_limit_violation |
Behavior when the target state exceeds the limits (return error by default) (only in Pro Version)
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_position |
Target (goal) state.
| CustomVector<double, DOFs> ruckig::InputParameter< DOFs, CustomVector >::target_velocity |