PickNikRobotics / abb_ros2

Apache License 2.0
82 stars 34 forks source link

MultiMove Usage Results in Joint Name Collision #29

Open jbeck28 opened 2 years ago

jbeck28 commented 2 years ago

As I'm working through setting up an external axis for use with EGM, I've found that this line of code (and the corresponding line for command interface rather than state) results in the following error:


[ros2_control_node-1] [WARN] [1659383569.189672603] [resource_manager]: (hardware 'ABBMultiInterfaceHardware'): 'joint_1/position' state interface already in available list. This can happen due to multiple calls to 'configure'
[ros2_control_node-1] [WARN] [1659383569.189680699] [resource_manager]: (hardware 'ABBMultiInterfaceHardware'): 'joint_1/velocity' state interface already in available list. This can happen due to multiple calls to 'configure'
[ros2_control_node-1] [WARN] [1659383569.189698133] [resource_manager]: (hardware 'ABBMultiInterfaceHardware'): 'joint_1/position' command interface already in available list. This can happen due to multiple calls to 'configure'
[ros2_control_node-1] [WARN] [1659383569.189704065] [resource_manager]: (hardware 'ABBMultiInterfaceHardware'): 'joint_1/velocity' command interface already in available list. This can happen due to multiple calls to 'configure'

For reference, I'm testing this against the MultiMove Pack and Go file provided with this repo - so the full joint name for the external axis would be "IRB1200_mu25001_joint_1", but this gets cut down to "joint_1" just as the robot's "IRB1200_rob1_joint_1" does.

Does it make sense to change the name of the joints in the URDF to match that which comes from the ABB robot controller (as mentioned in the TODO)?

stephanie-eng commented 2 years ago

I think that would make sense. I didn't really like clipping the name, but it was the easiest way to get them to align. Unfortunately, I'm not sure what the full joint names would be for the various robots.