Skip to content

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

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.

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.