-
Notifications
You must be signed in to change notification settings - Fork 140
Description
Describe the bug
I wrote a custom swerve drive controller and tested it in Rviz. Now I'm trying to simulate it in Gazebo.
However, I am having a trouble in accessing controller_manager services.
controller_manager successfully loads controllers but fails calling services after.
When I type ros2 service list, I can see controller_manager services but none of them are functional.
controller_manager works fine when I launch it via ROS2 but a Gazebo plugin.
I've ensured all libraries are up-to-date, checked namespace, and compared my launch and urdf files with the demo ones.
But I can't figure out the cause. Launch files in gz_ros2_control_demos function well in my development setting. Could you have a look at my project repository issue branch, please? I've been working on this issue for a week.
To Reproduce
Steps to reproduce the behavior:
Clone the issue branch of the repository above, build the project, and run ros2 launch sim gazebo.launch.py.
Expected behavior
Loaded controllers should be able to get results from controller_manager services.
Screenshots
- The issue part of launch logs:
[gazebo-1] [INFO] [1767337368.604877709] [gz_ros_control]: Initialize hardware 'GazeboSimSystem'
[gazebo-1] [INFO] [1767337368.615935203] [gz_ros_control.hardware_component.system.GazeboSimSystem]: `status_publish_rate` is set to 0.0, hardware status publisher will not be created.
[gazebo-1] [INFO] [1767337368.616228772] [gz_ros_control]: Successful initialization of hardware 'GazeboSimSystem'
[gazebo-1] [INFO] [1767337368.616566955] [resource_manager]: 'configure' hardware 'GazeboSimSystem'
[gazebo-1] [INFO] [1767337368.616580664] [gz_ros_control]: System Successfully configured!
[gazebo-1] [INFO] [1767337368.616595824] [resource_manager]: Successful 'configure' of hardware 'GazeboSimSystem'
[gazebo-1] [INFO] [1767337368.616607749] [resource_manager]: 'activate' hardware 'GazeboSimSystem'
[gazebo-1] [INFO] [1767337368.616618956] [resource_manager]: Successful 'activate' of hardware 'GazeboSimSystem'
[gazebo-1] [WARN] [1767337368.616763084] [controller_manager]: Component 'GazeboSimSystem' does not have read or write statistics initialized, skipping registration.
[gazebo-1] [INFO] [1767337368.616781212] [controller_manager]: Resource Manager has been successfully initialized. Starting Controller Manager services...
[spawner-5] [INFO] [1767337368.843204980] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available...
[gazebo-1] [INFO] [1767337369.347627426] [controller_manager]: Loading controller : 'joint_state_broadcaster' of type 'joint_state_broadcaster/JointStateBroadcaster'
[gazebo-1] [INFO] [1767337369.347767795] [controller_manager]: Loading controller 'joint_state_broadcaster'
[gazebo-1] [INFO] [1767337369.351642980] [controller_manager]: Controller 'joint_state_broadcaster' node arguments: --ros-args --params-file /home/ge3626/crackvac/install/sim/share/sim/config/controllers.yaml -p use_sim_time:=true --param use_sim_time:=true
[spawner-5] [INFO] [1767337369.374206528] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[gazebo-1] [INFO] [1767337369.376131409] [controller_manager]: Configuring controller: 'joint_state_broadcaster'
[gazebo-1] [INFO] [1767337369.376426585] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[gazebo-1] [INFO] [1767337369.396357808] [controller_manager]: Activating controllers: [ joint_state_broadcaster ]
[gazebo-1] [INFO] [1767337369.396552348] [controller_manager]: Requested controller switch from non-realtime loop
[gazebo-1] [INFO] [1767337369.396789337] [controller_manager]: Successfully switched controllers!
[gazebo-1] [WARN] [1767337370.469838358] [gz_ros_control]: Desired controller update period (0.01 s) is slower than the gazebo simulation period (0 s).
[spawner-5] [WARN] [1767337379.401407612] [spawner_joint_state_broadcaster]: Failed getting a result from calling /controller_manager/switch_controller in 10.0. (Attempt 1 of 3.)
[spawner-5] [WARN] [1767337387.515825574] [spawner_joint_state_broadcaster]: Failed getting a result from calling /controller_manager/switch_controller in 10.0. (Attempt 2 of 3.)
[spawner-5] [WARN] [1767337397.518776351] [spawner_joint_state_broadcaster]: Failed getting a result from calling /controller_manager/switch_controller in 10.0. (Attempt 3 of 3.)
[spawner-5] Traceback (most recent call last):
[spawner-5] File "/opt/ros/kilted/lib/controller_manager/spawner", line 33, in <module>
[spawner-5] sys.exit(load_entry_point('controller-manager==5.10.0', 'console_scripts', 'spawner')())
[spawner-5] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[spawner-5] File "/opt/ros/kilted/lib/python3.12/site-packages/controller_manager/spawner.py", line 295, in main
[spawner-5] ret = switch_controllers(
[spawner-5] ^^^^^^^^^^^^^^^^^^^
[spawner-5] File "/opt/ros/kilted/lib/python3.12/site-packages/controller_manager/controller_manager_services.py", line 302, in switch_controllers
[spawner-5] return service_caller(
[spawner-5] ^^^^^^^^^^^^^^^
[spawner-5] File "/opt/ros/kilted/lib/python3.12/site-packages/controller_manager/controller_manager_services.py", line 163, in service_caller
[spawner-5] raise RuntimeError(
[spawner-5] RuntimeError: Could not successfully call service /controller_manager/switch_controller after 3 attempts.
[ERROR] [spawner-5]: process has died [pid 29849, exit code 1, cmd '/opt/ros/kilted/lib/controller_manager/spawner joint_state_broadcaster --ros-args'].
[INFO] [spawner-6]: process started with pid [30076]
[spawner-6] [INFO] [1767337410.002913564] [spawner_swerve_controller]: waiting for service /controller_manager/list_controllers to become available...
[spawner-6] [WARN] [1767337420.257117994] [spawner_swerve_controller]: Failed getting a result from calling /controller_manager/list_controllers in 10.0. (Attempt 1 of 3.)
[spawner-6] [WARN] [1767337430.259323051] [spawner_swerve_controller]: Failed getting a result from calling /controller_manager/list_controllers in 10.0. (Attempt 2 of 3.)
[spawner-6] [WARN] [1767337440.262790365] [spawner_swerve_controller]: Failed getting a result from calling /controller_manager/list_controllers in 10.0. (Attempt 3 of 3.)
Environment:
- OS: Ubuntu-24.04
- Version: ROS2 Kilted, Gazebo Ionic