Expand description
The core implementation of the Ruckig trajectory generation algorithm
This module contains all the components needed for real-time trajectory generation:
- Trajectory generator
ruckig::Ruckig - Input parameters
input_parameter::InputParameter - Output parameters
output_parameter::OutputParameter - Error handling through the
error::RuckigErrorHandlertrait - Collection types like
util::DataArrayOrVec
§Main Components
The main components you’ll interact with are:
ruckig::Ruckig: Main class for trajectory calculation and step-by-step updatinginput_parameter::InputParameter: Contains the current state, target state, and limitsoutput_parameter::OutputParameter: Contains the resulting trajectory and calculated states
§Memory Management
The library supports both stack and heap allocation for degree-of-freedom (DoF) data:
- Use template parameter for stack allocation (e.g.,
Ruckig::<3, ThrowErrorHandler>) - Use runtime parameter for heap allocation (e.g.,
Ruckig::<0, ThrowErrorHandler>::new(Some(3), ...))
§Error Handling
Error handling is done through the error::RuckigErrorHandler trait with two implementations:
error::ThrowErrorHandler: Returns errors when validation or calculation failserror::IgnoreErrorHandler: Ignores errors and continues execution
You can implement your own error handler by implementing the error::RuckigErrorHandler trait.
§Control Interfaces
The library supports three control interfaces:
- Position control: Control the full kinematic state (default)
- Velocity control: Control the velocity (useful for visual servoing)
- Acceleration control: Control the acceleration directly
Modules§
- block
- Which times are possible for synchronization?
- brake
- Emergency brake profile calculation for trajectory interruption
- calculator_
target - Calculation of a state-to-state trajectory.
- error
- Error types and handling for the Ruckig algorithm
- input_
parameter - Input parameters for trajectory generation, including constraints and settings
- output_
parameter - Output parameters containing the generated trajectory and current state
- position_
first_ step1 - Mathematical equations for Step 1 in first-order position interface: Extremal profiles
- position_
first_ step2 - Mathematical equations for Step 2 in first-order position interface: Time synchronization
- position_
second_ step1 - Mathematical equations for Step 1 in second-order position interface: Extremal profiles
- position_
second_ step2 - Mathematical equations for Step 2 in second-order position interface: Time synchronization
- position_
third_ step1 - Mathematical equations for Step 1 in third-order position interface: Extremal profiles
- position_
third_ step2 - Mathematical equations for Step 2 in third-order position interface: Time synchronization
- prelude
- Re-exports of the most commonly used types
- profile
- Motion profiles for trajectory generation with kinematic constraints
- result
- Result types for trajectory calculation operations
- roots
- Root-finding utilities for trajectory calculations
- ruckig
- Main implementation for the Ruckig algorithm.
- trajectory
- Trajectory representation and evaluation
- util
- Utility functions and data structures for the Ruckig algorithm
- velocity_
second_ step1 - Mathematical equations for Step 1 in second-order velocity interface: Extremal profiles
- velocity_
second_ step2 - Mathematical equations for Step 2 in second-order velocity interface: Time synchronization
- velocity_
third_ step1 - Mathematical equations for Step 1 in third-order velocity interface: Extremal profiles
- velocity_
third_ step2 - Mathematical equations for Step 2 in third-order velocity interface: Time synchronization
Macros§
- count_
exprs - Helper macro for counting elements in a sequence. This is used internally by the daov_stack and daov_heap macros.
- daov_
heap - Creates a heap-allocated
DataArrayOrVecinstance with dynamic Vec storage. - daov_
stack - Creates a stack-allocated
DataArrayOrVecinstance with fixed-size array storage.