A ROS 2 Package forOnline Cobots Impedance Modulation
Liana Bertoni1,2, Luca Muratore1, and Nikos Tsagarakis1
1 Humanoids and Human Centered Mechatronics (HHCM), Istituto Italiano di Tecnologia, Genova, Italy
2 Dipartimento di Ingegneria Informatica (DII), University of Pisa, Pisa, Italy

Flexibility AdaptabilityAt this purpose:
we propose a ROS2 package aimed to unlock
flexibility and adaptability of robot behaviors and interactions
by exploiting a variable impedance modulation targeting
human-robot applications.

ROSCon 19th Oct. 2023, New Orleans LA, USAPrinciple behind

ROSCon 19th Oct. 2023, New Orleans LA, USAInteraction
force

Drilling Task
PayloadFinal pose
Trajectory

Varying
tracking error margins

Robot impedance is online modulated based on• task trajectory• task force• task precisionTask to Execute

drilling• Task trajectory

ROSCon 19th Oct. 2023, New Orleans LA, USA

pushing• Task force

assistance• Task precisionTask to Execute

Robot Control
ROS2
Package
Inputsdrilling

pushing• Tasktrajectory• Task force• Taskprecisionassistance

ROSCon 19th Oct. 2023, New Orleans LA, USA

Variable
Impedance Modulation

ROS2Package
Outputs• stiffness• dampingHow to use the package
By using ROS2 topics!

ROSCon 19th Oct. 2023, New Orleans LA, USA

Node_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_config
wrench_initial
precision_initialtransition_time
robot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_namerate
log_pathverboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

ParamsNode_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_config
wrench_initial
precision_initialtransition_time
robot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_namerate
log_pathverboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

ParamsNode_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_config
wrench_initial
precision_initialtransition_timerobot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_namerate
log_pathverboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

ParamsNode_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_config
wrench_initial
precision_initialtransition_time
robot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_namerate
log_pathverboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

ParamsNode_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_config
wrench_initial
precision_initialtransition_time
robot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_namerate
log_pathverboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

ParamsNode_Settings.yaml
stiffness_preset
stiffness_constant
stiffness_maximum
damping_preset
damping_maximum
robot_initial_configwrench_initial
precision_initialtransition_time
robot_urdf_model_path
robot_base_frame_namerobot_tip_frame_nametopic_subscriber_nametopic_publisher_nameratelog_path
verboseROSCon 19th Oct. 2023, New Orleans LA, USA

0. Configuration
Variable
Impedance Modulation

Paramsuser

Variable
Impedance Modulationbool cartesian_space
float64[] joints_position
float64[] joints_position_reference
float64[] task_pose_reference
float64[] task_wrench
float64[] task_precision

float64[] robot_stiffness
float64[] robot_damping
float64[] robot_feedforward_torque2. Subscribe outputs

1. Publish inputs

Every Iteration!
ROSCon 19th Oct. 2023, New Orleans LA, USA

How the package works

ROSCon 19th Oct. 2023, New Orleans LA, USA

Ros2 node: variable impedance modulation

Ros2 node: task planner

Pushing task: 3kg object, demanded force equal
to 30N and demanded precision equal to 1cm.

Centauro

pushing

ROSCon 19th Oct. 2023, New Orleans LA, USA

ROSCon 19th Oct. 2023, New Orleans LA, USA

Centauro

Concertpushing

drilling

Inail 2 arm

assistance
ROSCon 19th Oct. 2023, New Orleans LA, USA• Source code

https://github.com/ADVRHumanoids/RobotImpedanceModulation• Documentation/Instructions

https://github.com/ADVRHumanoids/RobotImpedanceModulation• Projects
CONCERT: https://concertproject.eu/
HARIA: http://haria-project.eu/• Publications“Bertoni, Liana, et al. "Task Driven Online Impedance Modulation." 2022 IEEE-RAS 21st International Conference on Humanoid Robots (Humanoids). IEEE,2022”

https://ieeexplore.ieee.org/abstract/document/10000215“An Assistive Human-Robot Bi-Manual Co-Manipulation System for
Subjects with Upper Limb Motion Deficiencies” (ICRA submitted)
ROSCon 19th Oct. 2023, New Orleans LA, USA

THANK YOU FOR YOUR ATTENTION!
ANY QUESTIONS?

A ROS 2 Package for Online Cobots Impedance Modulation
Liana Bertoni, Luca Muratore, and Nikos Tsagarakis