A template project integrating ROS 2 and Gazebo simulator.
-
ros_gz_example_description
- holds the sdf description of the simulated system and any other assets. -
ros_gz_example_gazebo
- holds gazebo specific code and configurations. Namely this is where systems end up. -
ros_gz_example_application
- holds ros2 specific code and configurations. -
ros_gz_example_bringup
- holds launch files and high level utilities.
-
Choose a ROS and Gazebo combination https://gazebosim.org/docs/harmonic/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=garden
-
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.