Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix multi-robot demo (partially) #7

Conversation

christophfroehlich
Copy link

@christophfroehlich christophfroehlich commented Aug 5, 2023

I was not able to push directly to ros-controls#187, because the setting Allow edits and access to secrets by maintainers is not set.

Make the example work with rolling until the last step

  • new spawner syntax
  • new controller-manager syntax
  • add list_hardware_components output
  • apply feedback from the original PR

Something is still not working properly with the cleanup in the last step. The service controller_manager_msgs/srv/CleanupHardwareComponent is not available (I cannot find it in the history, was it ever?). I tried to bring it into finalized state

ros2 service call /controller_manager/set_hardware_component_state controller_manager_msgs/srv/SetHardwareComponentState "
name: RRBotSystemPositionOnly
target_state:
 id: 0
 label: finalized"

but get the following error now, and joint_state_broadcaster can't be activated again.

[ros2_control_node-1] [WARN] [1691260478.510570255] [resource_manager]: (hardware 'RRBotSystemPositionOnly'): 'rrbot_joint1/position' command interface not in available list. This should not happen (hint: multiple cleanup calls).
[ros2_control_node-1] [WARN] [1691260478.510572441] [resource_manager]: (hardware 'RRBotSystemPositionOnly'): 'rrbot_joint2/position' command interface not in available list. This should not happen (hint: multiple cleanup calls).
[ros2_control_node-1] [WARN] [1691260478.510574080] [resource_manager]: (hardware 'RRBotSystemPositionOnly'): 'rrbot_joint1/position' state interface not in available list. This should not happen (hint: multiple cleanup calls).
[ros2_control_node-1] [WARN] [1691260478.510575651] [resource_manager]: (hardware 'RRBotSystemPositionOnly'): 'rrbot_joint2/position' state interface not in available list. This should not happen (hint: multiple cleanup calls).

@destogl
Copy link
Member

destogl commented Aug 7, 2023

I was not able to push directly to ros-controls#187, because the setting Allow edits and access to secrets by maintainers is not set.

This is usually the issue with organizations - it doesn't work with organizations.

@destogl
Copy link
Member

destogl commented Aug 7, 2023

Something is still not working properly with the cleanup in the last step. The service controller_manager_msgs/srv/CleanupHardwareComponent is not available (I cannot find it in the history, was it ever?). I tried to bring it into finalized state

I had this on a working branch (at least), but we decided to remove those services and use "SetHardwareState" as general service.

@destogl
Copy link
Member

destogl commented Aug 7, 2023

but get the following error now, and joint_state_broadcaster can't be activated again.

This error is known to me, I dug already in, but it was not trivial to solve and not easy to fix. Regarding reactivation of the JSB, what's the error there? I am not sure if we did clean implementation of the reactivation. It could be that we are not cleaning something properly.

@christophfroehlich
Copy link
Author

I realized now that all four joint_state_publisher publish on /joint_states. Is this the intention? I guess not because after configuring the FakeThreeDofBot rviz already shows a still-standing robot and it is not broken any more as written in the readme.

@christophfroehlich
Copy link
Author

christophfroehlich commented Aug 7, 2023

but get the following error now, and joint_state_broadcaster can't be activated again.

This error is known to me, I dug already in, but it was not trivial to solve and not easy to fix. Regarding reactivation of the JSB, what's the error there? I am not sure if we did clean implementation of the reactivation. It could be that we are not cleaning something properly.

There is no error message from ros2_control_node, it just does not activate it. I thought that not being able to reactivate JSB is a consequence of the other error.

Edit: I tried to get some debug output. The output from the --deactivate call:
image

the output from the --activate seems to be fine
image

but still inactive

$ ros2 control list_controllers
joint_state_broadcaster[joint_state_broadcaster/JointStateBroadcaster] inactive  

@christophfroehlich
Copy link
Author

Closing in favor of ros-controls#417

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants