Looking for documentation/example code for writing Gazebo integration for multi-jointed walking robot

Hi everyone :coffee: :wave:

I’m working on getting a six-legged hexapod robot simulation running in Gazebo. The real hardware does already exist and even works to some agree but I hope to get faster iteration on the gait algorithm by experimenting inside a simulation.

My setup is ROS Humble and GZ Fortress.

I have a XACRO / URDF description that can be parsed and instantiated/spawned both in rviz and Gazebo.

What I would like to do now - for a start - is to obtain the current joint position as well as the torque applied to each joint due to gravity - as determined by the simulation and stream it via ros_gz_bridge back to the gait controller implemented as a ROS node.

In a later stage I would then like to feed target angular velocities from the gait controller ROS node back into the simulation to close the loop.

I’ve spent a couple of hours looking through various available online documentation, github repositories and actual gazebo integrations written by 3rd parties (i.e. ardupilot_gazebo) and I’m not afraid to write my own Gazebo plugin but honestly I’m failing at a more fundamental level:

  • What is the first next step start on this journey?
  • Where can I find the appropriate documentation?
  • Is there publicly available example code on dealing with multi-jointed robots under the Humble / Fortress combination?

Since this is quite an unspecific question (i.e. not “How to spawn a robot from a URDF model via ROS launch file”) I hope this is the right place to ask it vs. stackexchange.

Cheers, Alex

There is an example hexapod model in the SubT Challenge tech repo (Gazebo Fuel). However, it was designed for Gazebo Dome, so it might need some facelift for Fortress.

The code for the robot is here:

Detailed setup instructions here:

1 Like