Gazebo Simulation

Quadruped simulation and control with OM1.

Simulation Instructions

The Gazebo simulator is an very sophisticated, industry standard, simulator for robots. The robot shape/size is specified via .dae files and those robots can then navigate a defined digital world. The simulation framework is useful for prototyping, debugging, and reinforcement learning, among many other uses.

MacOS (Gazebo Harmonic)

./gazebo/macOS.sh

The script also checks and installs Gazebo Harmonic https://gazebosim.org/docs/harmonic/getstarted/ if not already installed. If this is your first time installing Gazebo, grab a coffee, since this will take a while (1/2 hour or more).

This will open a gazebo room with a bathtub and chairs. Now, add your robot!

In a different terminal, boot OM1 using the example config:

uv run src/run.py quadruped_sim

Finally, start the simulation by clicking the “play” (>) button in the Gazebo simulator.

NOTE: Remember to set the correct API key in the config/quadruped_sim.json5 file or in your .env.

Ubuntu (Gazebo Classic)

./gazebo/ubuntu.sh

For now, ROS2 is required for the simulation to interact with OM1 in Gazebo Classic, check https://docs.ros.org/en/humble/Installation.html for installation instructions.

ffmpeg is required for streaming the simulated video feed to OM1. If your system doesn’t have ffmpeg, you should install it using sudo apt-get install ffmpeg to run the program.

Note1: The simulated camera feed is streamed to a virtual video device at /dev/video10, thus requiring the camera_index in the VLM config to be 10. Modify as needed if the virtual camera needs to be reordered or if OM1 needs to read from another camera.

Note2: It is also possible to run the Gazebo Harmonic simulation on Ubuntu.

Start OM1