matthias-mayr / Cartesian-Impedance-Controller

A C++ implementation of Cartesian impedance control for torque-controlled manipulators with ROS bindings.
https://matthias-mayr.github.io/Cartesian-Impedance-Controller/
BSD 3-Clause "New" or "Revised" License
212 stars 32 forks source link

Controller manager freezing when loading the controller #7

Closed LuukvandenBent closed 1 year ago

LuukvandenBent commented 1 year ago

Hi Matthias, great work! I am trying to run the controller on a Franka Emika Panda/FR3 with moveit, i followed the installation instructions but the controller manager freezes when it tries to load the controller. Sorry if this is not a problem directly with your controller, but something on my end. Do you have any idea what causes this? I think https://answers.ros.org/question/284099/controller-spawner-stuck-while-loading/ is related, and it seems to be something about a multi-threaded spinner in the hw iface node, causing a deadlock.

LuukvandenBent commented 1 year ago

I found the problem... In the configuration file, the robot_description was set to the default: /robot_description. But I am running everything under a different namespace; so it should have been /{ns}/robot_description. In hindsight this was obvious since the last info message was about loading the robot description.

matthias-mayr commented 1 year ago

Great to hear that the controller could be useful for you.

Maybe it would actually be a bit more user-friendly to fail after some 20 seconds or so.

In any case, feel free to open other issues or pull request if you find something unintuitive.