How petrikosk/rsruckig works
Ruckig is a no-std Rust real-time trajectory-generation library for robots and machines. The principal workflow is: an application supplies current/target kinematic state and limits, Ruckig validates and dispatches calculation, constrained jerk-limited profiles are solved, and a trajectory is sampled into output setpoints each control cycle. Major documented branches include moving-target tracking, position-limit enforcement, and local intermediate-waypoint generation. The graph emphasizes sampled orchestration and solver layers; unsampled peripheral modules are not expanded.
Components 16
Public API
- Input Parameters
lib/src/rsruckig/input_parameter.rs - Output Parameters
lib/src/rsruckig/output_parameter.rs - Trajectory Sampling
lib/src/rsruckig/trajectory.rs - Error Handling
lib/src/rsruckig/error.rs
Runtime Orchestration
- Ruckig Coordinator
lib/src/rsruckig/ruckig.rs - Moving Target Tracking
lib/src/rsruckig/trackig.rs - Target State
lib/src/rsruckig/trackig.rs
Trajectory Planning
- Target Calculator
lib/src/rsruckig/calculator_target.rs - Waypoint Calculator
lib/src/rsruckig/calculator_waypoints.rs - Position Limits
lib/src/rsruckig/calculator_target.rs
Solver Mathematics
- Position Profiles
lib/src/rsruckig/position_third_step1.rs - Time Synchronization
lib/src/rsruckig/position_third_step2.rs - Velocity Profiles
lib/src/rsruckig/velocity_third_step1.rs - Profile Checks
lib/src/rsruckig/profile.rs - Polynomial Roots
lib/src/rsruckig/roots.rs
Other components
- Robot Application
Connections 25
- Robot Application → Input Parameters: provides state
- Input Parameters → Ruckig Coordinator: feeds update
- Ruckig Coordinator → Input Parameters: validates input
- Ruckig Coordinator → Error Handling: reports errors
- Ruckig Coordinator → Target Calculator: calculates trajectory
- Ruckig Coordinator → Waypoint Calculator: dispatches waypoints
- Target Calculator → Position Limits: enforces limits
- Target Calculator → Position Profiles: solves position
- Target Calculator → Velocity Profiles: solves velocity
- Target Calculator → Time Synchronization: synchronizes time
- Position Profiles → Profile Checks: checks profiles
- Time Synchronization → Profile Checks: checks timing
- Velocity Profiles → Profile Checks: checks profiles
- Position Profiles → Polynomial Roots: solves roots
- Time Synchronization → Polynomial Roots: solves roots
- Waypoint Calculator → Trajectory Sampling: builds sections
- Ruckig Coordinator → Trajectory Sampling: samples trajectory
- Ruckig Coordinator → Output Parameters: writes setpoints
- Trajectory Sampling → Output Parameters: returns state
- Output Parameters → Robot Application: returns output
- Robot Application → Target State: streams target
- Target State → Moving Target Tracking: feeds tracking
- Input Parameters → Moving Target Tracking: configures tracking
- Moving Target Tracking → Output Parameters: writes setpoints
- Output Parameters → Robot Application: drives machine