Help - Controller Manager not launching

Dear Josh,

Help much appreciated because I am stuck as I am working against the clock to get ready for a robot competition next week.

I am trying to follow the slam tutorial, unfortunately for some reason I cannot launch gazebo anymore. It used to work now it stopped working. Below is the error trace:

$ ros2 launch sevillabot launch_sim.launch.py use_sim_time:=true
[INFO] [launch]: All log files can be found below /home/mhered/.ros/log/2024-04-09-22-26-52-729165-gram-80383
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [80393]
[INFO] [gzserver-2]: process started with pid [80395]
[INFO] [gazebo_params.yaml-3]: process started with pid [80398]
[INFO] [spawn_entity.py-4]: process started with pid [80400]
[INFO] [spawner.py-5]: process started with pid [80403]
[INFO] [spawner.py-6]: process started with pid [80405]
[robot_state_publisher-1] Parsing robot urdf xml string.
[robot_state_publisher-1] Link base_footprint had 0 children
[robot_state_publisher-1] Link chassis_link had 4 children
[robot_state_publisher-1] Link camera_link had 1 children
[robot_state_publisher-1] Link camera_link_optical had 0 children
[robot_state_publisher-1] Link left_caster_wheel_link had 0 children
[robot_state_publisher-1] Link lidar_link had 0 children
[robot_state_publisher-1] Link right_caster_wheel_link had 0 children
[robot_state_publisher-1] Link left_motor_link had 0 children
[robot_state_publisher-1] Link left_wheel_link had 0 children
[robot_state_publisher-1] Link right_motor_link had 0 children
[robot_state_publisher-1] Link right_wheel_link had 0 children
[robot_state_publisher-1] [INFO] [1712694413.142577783] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-1] [INFO] [1712694413.142654433] [robot_state_publisher]: got segment base_link
[robot_state_publisher-1] [INFO] [1712694413.142662039] [robot_state_publisher]: got segment camera_link
[robot_state_publisher-1] [INFO] [1712694413.142667272] [robot_state_publisher]: got segment camera_link_optical
[robot_state_publisher-1] [INFO] [1712694413.142672798] [robot_state_publisher]: got segment chassis_link
[robot_state_publisher-1] [INFO] [1712694413.142678218] [robot_state_publisher]: got segment left_caster_wheel_link
[robot_state_publisher-1] [INFO] [1712694413.142683572] [robot_state_publisher]: got segment left_motor_link
[robot_state_publisher-1] [INFO] [1712694413.142688762] [robot_state_publisher]: got segment left_wheel_link
[robot_state_publisher-1] [INFO] [1712694413.142693951] [robot_state_publisher]: got segment lidar_link
[robot_state_publisher-1] [INFO] [1712694413.142699077] [robot_state_publisher]: got segment right_caster_wheel_link
[robot_state_publisher-1] [INFO] [1712694413.142704207] [robot_state_publisher]: got segment right_motor_link
[robot_state_publisher-1] [INFO] [1712694413.142709406] [robot_state_publisher]: got segment right_wheel_link
[spawner.py-6] [INFO] [1712694413.318903132] [spawner_joint_broad]: Waiting for /controller_manager services
[spawner.py-5] [INFO] [1712694413.325266230] [spawner_diff_cont]: Waiting for /controller_manager services
[spawn_entity.py-4] [INFO] [1712694413.429783091] [spawn_entity]: Spawn Entity started
[spawn_entity.py-4] [INFO] [1712694413.430117983] [spawn_entity]: Loading entity published on topic robot_description
[spawn_entity.py-4] [INFO] [1712694413.431215668] [spawn_entity]: Waiting for entity xml on robot_description
[spawn_entity.py-4] [INFO] [1712694413.443275181] [spawn_entity]: Waiting for service /spawn_entity, timeout = 30
[spawn_entity.py-4] [INFO] [1712694413.443535391] [spawn_entity]: Waiting for service /spawn_entity
[gzserver-2] Error [parser.cc:403] Error parsing XML in file [/home/mhered/dev_ws/src/install/sevillabot/share/sevillabot/config/gazebo_params.yaml]: Error document empty.
[spawn_entity.py-4] [INFO] [1712694413.946749610] [spawn_entity]: Calling service /spawn_entity
[gzserver-2] ../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.
[gzserver-2] [INFO] [1712694414.756903263] [camera_controller]: Publishing camera info to [/camera/camera_info]
[gzserver-2] [WARN] [1712694414.765045313] [rcl]: Found remap rule '~/out:=scan'. This syntax is deprecated. Use '--ros-args --remap ~/out:=scan' instead.
[gzserver-2] [WARN] [1712694414.767225217] [rcl]: Found remap rule '~/out:=scan'. This syntax is deprecated. Use '--ros-args --remap ~/out:=scan' instead.
[spawn_entity.py-4] [INFO] [1712694414.856931233] [spawn_entity]: Spawn status: SpawnEntity: Successfully spawned entity [sevillabot]
[gzserver-2] [INFO] [1712694414.882367970] [gazebo_ros2_control]: Loading gazebo_ros2_control plugin
[gzserver-2] [INFO] [1712694414.884847042] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in namespace: /
[gzserver-2] [INFO] [1712694414.884890265] [gazebo_ros2_control]: Starting gazebo_ros2_control plugin in ros 2 node: gazebo_ros2_control
[gzserver-2] [INFO] [1712694414.884926158] [gazebo_ros2_control]: Loading parameter files /home/mhered/dev_ws/src/install/sevillabot/share/sevillabot/config/my_controllers.yaml
[gzserver-2] [INFO] [1712694414.887191320] [gazebo_ros2_control]: connected to service!! robot_state_publisher
[gzserver-2] [INFO] [1712694414.887692092] [gazebo_ros2_control]: Recieved urdf from param server, parsing...
[gzserver-2] [ERROR] [1712694414.887706790] [rclcpp]: Received invalid sequence number. Ignoring...
[INFO] [spawn_entity.py-4]: process has finished cleanly [pid 80400]
[gazebo_params.yaml-3] ../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.
[gzserver-2] Segmentation fault (core dumped)
[ERROR] [gzserver-2]: process has died [pid 80395, exit code 139, cmd 'gzserver                                                                       -s libgazebo_ros_init.so   -s libgazebo_ros_factory.so   -s libgazebo_ros_force_system.so       --ros-args --params-file /home/mhered/dev_ws/src/install/sevillabot/share/sevillabot/config/gazebo_params.yaml'].
[spawner.py-6] [INFO] [1712694415.326681790] [spawner_joint_broad]: Waiting for /controller_manager services
[spawner.py-5] [INFO] [1712694415.332995271] [spawner_diff_cont]: Waiting for /controller_manager services
[spawner.py-6] [INFO] [1712694417.337614339] [spawner_joint_broad]: Waiting for /controller_manager services
[spawner.py-5] [INFO] [1712694417.343615861] [spawner_diff_cont]: Waiting for /controller_manager services
[spawner.py-6] [INFO] [1712694419.348958215] [spawner_joint_broad]: Waiting for /controller_manager services
[spawner.py-5] [INFO] [1712694419.355693128] [spawner_diff_cont]: Waiting for /controller_manager services
[spawner.py-6] [INFO] [1712694421.361197348] [spawner_joint_broad]: Waiting for /controller_manager services
[spawner.py-5] [INFO] [1712694421.368135253] [spawner_diff_cont]: Waiting for /controller_manager services
[spawner.py-6] [ERROR] [1712694423.373667330] [spawner_joint_broad]: Controller manager not available
[spawner.py-5] [ERROR] [1712694423.379619747] [spawner_diff_cont]: Controller manager not available
[ERROR] [spawner.py-6]: process has died [pid 80405, exit code 1, cmd '/opt/ros/foxy/lib/controller_manager/spawner.py joint_broad --ros-args'].
[ERROR] [spawner.py-5]: process has died [pid 80403, exit code 1, cmd '/opt/ros/foxy/lib/controller_manager/spawner.py diff_cont --ros-args'].
[INFO] [gazebo_params.yaml-3]: process has finished cleanly [pid 80398]
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[robot_state_publisher-1] [INFO] [1712694489.365915278] [rclcpp]: signal_handler(signal_value=2)
[INFO] [robot_state_publisher-1]: process has finished cleanly [pid 80393]

The sevillabot is very closely based on articubot_one. Gazebo used to work but it doesn’t anymore.

First weird thing is that it complains that gazebo_params.yaml file is empty, when it isn’t. I actually added a syntax error to this file on purpose to check it was being read and it did trigger a syntax error (so it is reading it). What seems odd is that apparently it is trying to parse the file as XML, and this is a YAML file (??)

Then it claims it received an invalid sequence number when reading the URDF. and it is Ignoring it…

Then there is a segmentation fault ??

I am not aware of having changed anything in the URDF or elsewhere that would explain why the controller manager fails to start. I have googled and found different recommendations to reinstall dependencies but nothing seems to work.

Any ideas how to troubleshoot?

ok so Itried articubot_one and this one was working. Comparing file by file I found the differences:

  • in file rsp.launch.py: add a new sim_mode parameter in the call made to robot.urdf.xacro , make it same value as use_sim_time
  • in file robot.urdf.xacro declare sim_mode xacro parameter with false as default. Note this file uses use_ros2_control to toggle between ros2_control.xacro and a gazebo_control.xacro, which does not exist!!
  • in ros2_control.xacro file use sim_mode to toggle between DiffDriveArduino (real robot) and GazeboSystem (simulation). Add gaz_ros2_ctl_use_sim.yaml parameter file in call to libgazebo_ros2_control.so
  • Create gaz_ros2_ctl_use_sim.yaml parameter file that sets use_sim_time to true

I dont know if this is desribed in the tutorials and I somehow missed it. I leave it here in case if helps anyone.