[Clearpath Husky] simulation controllers not starting properly

I am a new user of the Husky a200 rover and tried to follow the guide given here. However, after starting the sim (ros2 launch clearpath_gz simulation.launch.py), the gazebo starts with the warehouse map and a robot model in it, but without me being able to use teleop. Running ros2 topic lists shows that a200-0000\cmd_vel exists yet there are no subscribers to it, only one publisher. Also looking at the logs

[spawner-9] [INFO] [1739799943.468987797] [a200_0000.spawner_platform_velocity_controller]: Configured and activated platform_velocity_controller
[INFO] [spawner-9]: process has finished cleanly [pid 11333]
[spawner-8] [INFO] [1739799948.199786603] [a200_0000.spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[INFO] [spawner-8]: process has finished cleanly [pid 11331]

everything seems fine. Could you help me setting up this?

Did you press play in the simulation? You have to press play as soon as it starts or add auto-play on start via the launch file!

1 Like

EDIT: thanks for the quick response.

The play button in the bottom left is automatically switched to pause while the simulation launches. Also switching it on and off does not really change anything other than raising some weird serialization issues, namely:

[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Component.hh:144] Trying to serialize component with data type [St6vectorIdSaIdEE], which doesn’t have operator<<. Component will not be serialized.
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:49] Unable to serialize sdf::Model
[ruby $(which ign)

thrown ~10 times in a row. Idk if that helpful.

When turning off the simulation, the /a200_0000/cmd_vel topic disappears, but again - launching it creates it with 0 subscribers and 1 publisher. Let me know if you need more data from me.

The controller failure is due to the simulation being paused. Give the arg of auto start to true

DeclareLaunchArgument('auto_start', default_value='true',
                          choices=['true', 'false'],
                          description='Auto-start Gazebo simulation'),

I am not sure where to add this code, could you let me know?
By this, I mean which file or wherever. I do not see this as an argument in the main launch files, but I assume I am looking wrongly.

You can use it in the clearpath bloom package and modify in there i.e. /opt/ros/humble/share/clearpath_gazebo

I added it, still the same issue. Going more in depth:

  • I managed to run the robot by publishing messages to /a200_0000/platform/cmd_vel_unstamped directly, meaning that the controllers kind of work
  • Using the simulation UI does not work for teleop even when setting the correct topic to publish to
  • Standard teleop topics such as /a200_0000/cmd_vel or /a200_0000/joy_teleop/cmd_vel or /a200_0000/twist_marker_server/cmd_vel still DO NOT WORK, meaning that they have 0 subscribers and publishing messages to those topics gives no response in the sim

Please try:

 ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=/a200_0000/platform/cmd_vel_unstamped

The 0000 has to match in whatever the husky topics are