Cartesian Impedance Controller
- Software
- Robot arms and industry
- Library
A C++ Cartesian impedance controller for robot manipulators, usable as a standalone library or as a ROS 2 control integration for collaborative robot arms.
Source on GitHub: github.com/matthias-mayr/Cartesian-Impedance-Controller (opens in a new tab). Facts read at commit 8009a7b (opens in a new tab).
Licenses
- Code
- BSD-3-Clause (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (BSD-3-Clause) at commit 8009a7b (opens in a new tab), on 22 Oct 2026.
- Commercial use
- Yes
What it does
- Runtime-configurable stiffness and damping along all Cartesian dimensions, plus reference pose changes and applied Cartesian wrenches.
- Optional filtering of stiffness, pose and wrenches, jerk limitation, and nullspace handling of joint trajectories such as from MoveIt.
- Torque is the sum of Cartesian impedance, nullspace joint impedance and an external wrench term, all in the end-effector frame.
- Base library has few dependencies and can be integrated into non-ROS environments such as the DART simulator or ros2_control simulators.
- Configured through a YAML file, dynamic_reconfigure, or ROS messages on dedicated topics.
- Known limitations: joint friction is not modelled, Cartesian stiffness and damping are uncoupled, and there is no built-in gravity compensation for tools.
Written by Robotheca from the project's README (opens in a new tab) at commit 8009a7b.
Getting started
- Difficulty
- Advanced
- How to start
- The project's website (opens in a new tab)
Maintenance
- Status
- Active: a commit in the last 90 days
- Newest commit
- 12 Oct 2026 on master
- Latest release
- Version 1.1.1 - JOSS paper version (15 Jan 2024)
Checked on GitHub on 22 Oct 2026.
Links
Robots that can run it
No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.