Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

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++

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.