How pantor/ruckig works
Ruckig is a real-time motion-generation library: callers provide current and target kinematic states plus motion limits, then repeatedly request trajectory updates and feed each new state back into the next input. Its domain stages include constrained position/velocity profile calculation, multi-DoF synchronization, and trajectory sampling; waypoint requests can use a separate cloud-calculation path in the Community Version. The graph reflects the README and sampled interfaces; unsampled implementation details are represented only where the tree or documentation supports them.
Main entry points: ruckig.hpp Ruckig Engine · calculator_target.hpp Target Solver · calculator.hpp Target Calculator · profile.hpp Profile Checks
Components 19
Public API
- Motion Inputs
include/ruckig/input_parameter.hpp - Ruckig Engine
include/ruckig/ruckig.hpp - Step Output
include/ruckig/output_parameter.hpp
Trajectory Planning
- Target Calculator
include/ruckig/calculator.hpp - Target Solver
include/ruckig/calculator_target.hpp - Position Profiles
include/ruckig/position.hpp - Velocity Profiles
include/ruckig/velocity.hpp - Profile Checks
include/ruckig/profile.hpp - Profile Blocks
include/ruckig/block.hpp - Braking Profiles
include/ruckig/brake.hpp - Trajectory Sampler
include/ruckig/trajectory.hpp
Waypoint Calculation
- Waypoint Calculator
include/ruckig/calculator_cloud.hpp - Cloud Client
src/ruckig/cloud_client.cpp - Ruckig Cloud API
- Waypoint Filtering
include/ruckig/utils.hpp
Language Bindings
- Python Interface
src/wrapper/python.cpp - Rust Interface
src/wrapper/rust.rs - Rust C++ Bridge
src/wrapper/rust.hpp
Other components
- Motion Client
Connections 22
- Motion Client → Motion Inputs: sets state
- Motion Client → Ruckig Engine: requests update
- Ruckig Engine → Target Calculator: calculates motion
- Target Calculator → Motion Inputs: validates inputs
- Target Calculator → Target Solver: plans target
- Target Solver → Position Profiles: solves position
- Target Solver → Velocity Profiles: solves velocity
- Position Profiles → Profile Checks: checks candidates
- Velocity Profiles → Profile Checks: checks candidates
- Profile Checks → Profile Blocks: forms blocks
- Target Solver → Trajectory Sampler: builds trajectory
- Ruckig Engine → Trajectory Sampler: samples step
- Ruckig Engine → Step Output: writes step
- Step Output → Motion Client: returns state
- Motion Client → Motion Inputs: feeds next state
- Motion Client → Waypoint Filtering: filters waypoints
- Ruckig Engine → Waypoint Calculator: plans waypoints
- Waypoint Calculator → Cloud Client: sends calculation
- Cloud Client → Ruckig Cloud API: posts request
- Python Interface → Ruckig Engine: exposes API
- Rust Interface → Rust C++ Bridge: calls bridge
- Rust C++ Bridge → Ruckig Engine: invokes engine