A template project integrating ROS 2 and Gazebo simulator. Edited by Diya Agarwal, Caltech '27 (Mechanical Engineering + Robotics) for Summer Undegraduate Research Fellowship (SURF) at Florida International University (FIU) in summer 2024. Implementing this template for simulating the Boston Dynamics Spot robot on a lunar surface to observe its movement in rough terrain and low gravity systems.
-
ros_gz_example_description
- holds the sdf description of the simulated system and any other assets. Includes the description of the Spot robot. -
ros_gz_example_gazebo
- holds gazebo specific code and configurations. Namely this is where systems end up. Includes the world(s) that the robot will interact with. -
ros_gz_example_application
- holds ros2 specific code and configurations. -
ros_gz_example_bringup
- holds launch files and high level utilities.
For using the template with Gazebo Fortress switch to the fortress
branch of this repository, otherwise use the default branch main
for Gazebo Harmonic onwards.
-
Choose a ROS and Gazebo combination https://gazebosim.org/docs/latest/ros_installation Note: If you're using a specific and unsupported Gazebo version with ROS 2, you might need to set the
GZ_VERSION
environment variable, for example:export GZ_VERSION=fortress
-
Install necessary tools
sudo apt install python3-vcstool python3-colcon-common-extensions git wget
Directly Use this template
and create your project repository on Github.
Or start by creating a workspace and cloning the template repository:
mkdir -p ~/template_ws/src
cd ~/template_ws/src
wget https://raw.githubusercontent.com/gazebosim/ros_gz_project_template/main/template_workspace.yaml
vcs import < template_workspace.yaml
-
Install dependencies
cd ~/template_ws source /opt/ros/<ROS_DISTRO>/setup.bash sudo rosdep init rosdep update rosdep install --from-paths src --ignore-src -r -i -y --rosdistro <ROS_DISTRO>
-
Build the project
colcon build --cmake-args -DBUILD_TESTING=ON
-
Source the workspace
. ~/template_ws/install/setup.sh
-
Launch the simulation
ros2 launch ros_gz_example_bringup diff_drive.launch.py
For a more detailed guide on using this template see documentation.