Ruckig
Real-time jerk-constrained time-optimal trajectory generation for robots and machines
License
MIT
Overview
Ruckig is an instantaneous motion generation library for robots and machines that calculates time-optimal, jerk-constrained trajectories on-the-fly. It generates trajectories to a target waypoint (with position, velocity, and acceleration) starting from any initial state, limited by velocity, acceleration, and jerk constraints — guaranteeing time-optimal solutions for state-to-state motions.
Ruckig is the first Type V trajectory generator for arbitrary target states, more powerful and faster than the Reflexxes Type IV library. It achieves sub-millisecond computation times suitable for control cycles as low as 250 microseconds, with numerical precision within 1e-8 for position/velocity and 1e-12 for limits, validated across over 5 billion random trajectories.
The core library is written in C++ with zero dependencies, supporting C++20 down to C++03, with Python bindings available via pip. It integrates with major robotics frameworks including MoveIt 2 (ROS 2) as a trajectory processing plugin, CoppeliaSim, and Frankx for Franka Emika robot control.
Developed at the Karlsruhe Institute of Technology (KIT) and presented at RSS 2021.
Ruckig is an instantaneous motion generation library that calculates time-optimal, jerk-constrained trajectories for robots and machines on-the-fly. Developed at the Karlsruhe Institute of Technology (KIT) and presented at RSS 2021, it has become one of the most widely deployed open-source motion planning components in robotics, with over 5 billion trajectories calculated in production environments.
The library is the first Type V trajectory generator for arbitrary target states, surpassing the capabilities of the well-known Reflexxes Type IV library. Given any initial state (position, velocity, acceleration) and a target waypoint with velocity/acceleration/jerk constraints, Ruckig computes the mathematically optimal trajectory in sub-millisecond time — fast enough for control cycles as short as 250 microseconds. Numerical precision is validated to within 1e-8 for positions/velocities and 1e-12 for limits.
Ruckig is written in C++ with zero external dependencies, supporting compiler standards from C++03 to C++20, with Python bindings available via pip. Its zero-dependency design makes integration straightforward in any robotics stack. The library is integrated into MoveIt 2 (ROS 2) as a trajectory processing plugin, CoppeliaSim for simulation, and Frankx for Franka Emika robot control.
The combination of mathematical rigor, real-time performance, and frictionless integration has made Ruckig a standard component across research labs and industrial robotics companies worldwide.
Why it matters
Smooth, jerk-limited trajectory generation is essential for real-world robot operation. Ruckig provides a zero-dependency, real-time solution that is already integrated into MoveIt 2 and used by hundreds of research labs and companies.
Problem it solves
Real-time generation of smooth, jerk-limited motion profiles for robots that must react instantaneously to sensor input while respecting velocity, acceleration, and jerk constraints
Key takeaways
- Time-optimal jerk-constrained trajectory generation in sub-millisecond computation
- Zero dependencies in C++ core — easy integration into any robotics stack
- Integrated into MoveIt 2 (ROS 2) and CoppeliaSim out of the box
- Validated across 5+ billion random trajectories with 1e-12 precision on limits
Who it is for
- Robot arm developers
- Motion planning engineers
- ROS 2 / MoveIt developers
- Industrial automation engineers
Limitations
- Community version does not support local waypoint calculation (Pro feature)
- Position limits only available in Pro version
- Tracking interface for arbitrary signals requires Pro version
- Python API documentation is less comprehensive than C++