Skip to content

Repository files navigation

ros2_impedance_controller

IEEE Xplore Static Badge

Robot Cartesian impedance controller based on the ros2_control framework and Pinocchio. Default branch distro: Jazzy

The ros2_impedance_controller is meant to be a robot-agnostic, fully ROS2 ecosystem impedance controller, with diagnostics for researchers.

Installation

  1. Clone this repo;

  2. Install build dependencies with: rosdep install --from-paths src -y --ignore-src

Features

By making a slight modification to your URDF, you can use the impedance controller with any rigid-body leg or manipulator. Check the URDF section in the documentation to understand how and why adequate your robot description to use with the available controllers. For a quick first try with Gazebo Harmonic, consider using my robot descriptions in ros2_descriptions, and my simulation settings in robot_impedance_lab.

According to the classical impedance definitions, the controller input is the end-effector pose and its derivatives. For easy standardization, this input type is the kinematic_pose_msgs. The package robot_impedance_analyzer can be used for control analysis with single-axis parametric inputs such as step, sine and square waves, PRBS and others.

Check controllers.yaml to see how you can configure the available controllers.

Available impedance controllers:

Controller Description
CartesianController Hogan's classical impedance control law with inertia shaping (optional)
BasicCartesianController PD impedance + gravity compensation (optional)
MPCIController Model Predictive Cartesian Impedance Control with taskspace dynamics cost function

Installing qpOASES (optional)

The Model Predictive Cartesian Impedance Controller (MPCIC) uses qpOASES to solve the QP problem.

Warning

MPCIC is in development phase.

Clone and checkout the tag:

git clone https://github.com/coin-or/qpOASES.git
cd qpOASES && git checkout releases/3.2.2

Build and install:

mkdir build && cd build
cmake .. -D CMAKE_CXX_FLAGS="-fPIC"
make
sudo make install

About

The controllers implement Hogan's classical impedance control law, following the notation from the book Cartesian Impedance Control of Redundant and Flexible-Joint Robots, Ott, C., 2008. Please check the documentation for further details.

About

Robot impedance controller using the ros2_controllers framework.

Topics

Resources

Contributing

Stars

15 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages