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

Main interface for the Ruckig algorithm. More...

#include <ruckig.hpp>

Public Member Functions

template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 Ruckig ()
 
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 Ruckig (double delta_time)
 
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 Ruckig (double delta_time, size_t max_number_of_waypoints)
 
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
 Ruckig (double delta_time, const MemoryRequirement &memory_requirement)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 Ruckig (size_t dofs)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 Ruckig (size_t dofs, double delta_time)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 Ruckig (size_t dofs, double delta_time, size_t max_number_of_waypoints)
 
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
 Ruckig (size_t dofs, double delta_time, const MemoryRequirement &memory_requirement)
 
void reset ()
 Reset the instance (e.g. to force a new calculation in the next update)
 
std::vector< CustomVector< double, DOFs > > filter_intermediate_positions (const InputParameter< DOFs, CustomVector > &input, const CustomVector< double, DOFs > &threshold_distance) const
 Filter intermediate positions based on a threshold distance for each DoF.
 
template<bool throw_validation_error = true>
bool validate_input (const InputParameter< DOFs, CustomVector > &input, bool check_current_state_within_limits=false, bool check_target_state_within_limits=true) const
 Validate the input as well as the Ruckig instance for trajectory calculation.
 
Result calculate (const InputParameter< DOFs, CustomVector > &input, Trajectory< DOFs, CustomVector > &trajectory)
 Calculate a new trajectory for the given input.
 
Result calculate (const InputParameter< DOFs, CustomVector > &input, Trajectory< DOFs, CustomVector > &trajectory, bool &was_interrupted)
 Calculate a new trajectory for the given input and check for interruption.
 
Result update (const InputParameter< DOFs, CustomVector > &input, OutputParameter< DOFs, CustomVector > &output)
 Get the next output state (with step delta_time) along the calculated trajectory for the given input.
 
Result update (const Trajectory< DOFs, CustomVector > &trajectory, OutputParameter< DOFs, CustomVector > &output)
 Move along the given trajectory with step delta_time, starting from the current output.time.
 

Public Attributes

Calculator< DOFs, CustomVector > calculator
 Calculator for new trajectories.
 
const size_t max_number_of_waypoints
 Max number of intermediate waypoints.
 
const size_t degrees_of_freedom
 Degrees of freedom.
 
double delta_time
 Time step between updates (control cycle time)
 
double speed
 Time step along the trajectory relative to the cycle time (only in Ruckig Pro)
 

Detailed Description

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
class ruckig::Ruckig< DOFs, CustomVector, throw_error >

Main interface for the Ruckig algorithm.

Constructor & Destructor Documentation

◆ Ruckig() [1/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( )
inlineexplicit

◆ Ruckig() [2/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( double delta_time)
inlineexplicit

◆ Ruckig() [3/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( double delta_time,
size_t max_number_of_waypoints )
inlineexplicit

◆ Ruckig() [4/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D >=1), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( double delta_time,
const MemoryRequirement & memory_requirement )
inlineexplicit

◆ Ruckig() [5/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( size_t dofs)
inlineexplicit

◆ Ruckig() [6/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( size_t dofs,
double delta_time )
inlineexplicit

◆ Ruckig() [7/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( size_t dofs,
double delta_time,
size_t max_number_of_waypoints )
inlineexplicit

◆ Ruckig() [8/8]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<size_t D = DOFs, typename std::enable_if<(D==0), int >::type = 0>
ruckig::Ruckig< DOFs, CustomVector, throw_error >::Ruckig ( size_t dofs,
double delta_time,
const MemoryRequirement & memory_requirement )
inlineexplicit

Member Function Documentation

◆ calculate() [1/2]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
Result ruckig::Ruckig< DOFs, CustomVector, throw_error >::calculate ( const InputParameter< DOFs, CustomVector > & input,
Trajectory< DOFs, CustomVector > & trajectory )
inline

Calculate a new trajectory for the given input.

◆ calculate() [2/2]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
Result ruckig::Ruckig< DOFs, CustomVector, throw_error >::calculate ( const InputParameter< DOFs, CustomVector > & input,
Trajectory< DOFs, CustomVector > & trajectory,
bool & was_interrupted )
inline

Calculate a new trajectory for the given input and check for interruption.

◆ filter_intermediate_positions()

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
std::vector< CustomVector< double, DOFs > > ruckig::Ruckig< DOFs, CustomVector, throw_error >::filter_intermediate_positions ( const InputParameter< DOFs, CustomVector > & input,
const CustomVector< double, DOFs > & threshold_distance ) const
inline

Filter intermediate positions based on a threshold distance for each DoF.

This method removes intermediate positions from the input so that the linear interpolation between the waypoints does not exceed the threshold distance to the given positions. The threshold distance is given per degree of freedom.

◆ reset()

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
void ruckig::Ruckig< DOFs, CustomVector, throw_error >::reset ( )
inline

Reset the instance (e.g. to force a new calculation in the next update)

◆ update() [1/2]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
Result ruckig::Ruckig< DOFs, CustomVector, throw_error >::update ( const InputParameter< DOFs, CustomVector > & input,
OutputParameter< DOFs, CustomVector > & output )
inline

Get the next output state (with step delta_time) along the calculated trajectory for the given input.

◆ update() [2/2]

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
Result ruckig::Ruckig< DOFs, CustomVector, throw_error >::update ( const Trajectory< DOFs, CustomVector > & trajectory,
OutputParameter< DOFs, CustomVector > & output )
inline

Move along the given trajectory with step delta_time, starting from the current output.time.

◆ validate_input()

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
template<bool throw_validation_error = true>
bool ruckig::Ruckig< DOFs, CustomVector, throw_error >::validate_input ( const InputParameter< DOFs, CustomVector > & input,
bool check_current_state_within_limits = false,
bool check_target_state_within_limits = true ) const
inline

Validate the input as well as the Ruckig instance for trajectory calculation.

Member Data Documentation

◆ calculator

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
Calculator<DOFs, CustomVector> ruckig::Ruckig< DOFs, CustomVector, throw_error >::calculator

Calculator for new trajectories.

◆ degrees_of_freedom

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
const size_t ruckig::Ruckig< DOFs, CustomVector, throw_error >::degrees_of_freedom

Degrees of freedom.

◆ delta_time

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
double ruckig::Ruckig< DOFs, CustomVector, throw_error >::delta_time

Time step between updates (control cycle time)

This parameter can be changed freely between calling update.

◆ max_number_of_waypoints

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
const size_t ruckig::Ruckig< DOFs, CustomVector, throw_error >::max_number_of_waypoints

Max number of intermediate waypoints.

◆ speed

template<size_t DOFs = 0, template< class, size_t > class CustomVector = StandardVector, bool throw_error = false>
double ruckig::Ruckig< DOFs, CustomVector, throw_error >::speed

Time step along the trajectory relative to the cycle time (only in Ruckig Pro)

This allows e.g. to slow down or pause the robot along a calculated trajectory. Usually in [0.0, 1.0], 1.0 by default.


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