Skip to content

utiasDSL/crisp_controllers

Repository files navigation

CRISP Controllers Logo

Static Badge Static Badge

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!

Features

  • 🐍 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.

For Contributors

Updating the website

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