fzi-forschungszentrum-informatik / cartesian_controllers

A set of Cartesian controllers for the ROS1 and ROS2-control framework.
BSD 3-Clause "New" or "Revised" License
398 stars 118 forks source link

[Feature Request] - Allow to change compliance_ref_link in a loaded controller #127

Open firesurfer opened 1 year ago

firesurfer commented 1 year ago

Problem statement and motivation

Currently it is not possible to change to compliance_ref_link in an already loaded controller as it is not possible to reconfigure a controller once it is configured ( as far as know - see https://github.com/ros-controls/ros2_control/issues/1033)

For larger setups with multiple robot arm which also have multiple tools which have to be compliant at some point the current solution of defining a controller per compliant link becomes messy quite easily.

Therefore it would be nice to just have a compliance controller per arm and being able to change to ref_link.

Goal of this feature

Being able to set the compliance_ref_link , deactivate -> active the controller and then use the changed ref_link

Approach and next steps

Simply move: https://github.com/fzi-forschungszentrum-informatik/cartesian_controllers/blob/752a6a928f6584597ea4b8bace047ec7fdc2314d/cartesian_compliance_controller/src/cartesian_compliance_controller.cpp#L103

into the beginning of on_activate.

If desired I can also provide a PR for that.

stefanscherzinger commented 1 year ago

@firesurfer

Thanks for this feature request. I like the idea and will have a look.

firesurfer commented 1 year ago

@stefanscherzinger Great that you see it the same way. Give that I need this feature rather sooner then later I will try to workout a solution and create a PR.