CRISP is a collection of real-time, C++ controllers for compliant torque-based control for manipulators compatible with ros2_control
, including Cartesian Impedance Control and Operational Space Control. Developed for deploying high-level learning-based policies (VLA, Diffusion, ...) and teleoperation on your manipulator. It is robot-agnostic and compatible with any manipulator offering and effort interface. Check the project website for guides, getting started, demos and more!
- 🐍 Python interface to move your ROS2 robot around without having to think about topics, spinning, and more ROS2 concepts but without loosing the powerful ROS2 API. Check CRISP_PY for more information and examples.
- 🔁 Gymnasium environment with utilities to deploy learning-based policies and record trajectories in LeRobotFormat. Check CRISP_GYM.
- ❓ Demos showcasing how to use the controller with FR3 of Franka Emika in single and bimanual setup. Check the crisp_controller_demos.
- ⚙️ Dynamically and highly parametrizable: powered by the
generate_parameter_library
you can modify stiffness and more during operation. - 🤖 Operational Space Controller as well as Cartesian Impedance Controller for torque-based control.
- 🚫 No MoveIt or complicated path-planning, just a simple C++
ros2_controller
. Ready to use.
We use mkdocs to generate the website from markdown. You can modify it within docs/
in particular the index.md
.
Then you can serve it locally or update the github pages with:
uv run mkdocs serve
uv run mkdocs gh-deploy