ros_gz_project_template

A template project integrating ROS 2 and Gazebo simulator.

Included packages

  • 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.

Install

Requirements

  1. 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
  2. Install necessary tools

    sudo apt install python3-vcstool python3-colcon-common-extensions git wget

Use as template

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

Usage

  1. 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>
  2. Build the project

    colcon build --cmake-args -DBUILD_TESTING=ON
  3. Source the workspace

    . ~/template_ws/install/setup.sh
  4. Launch the simulation

    ros2 launch ros_gz_example_bringup diff_drive.launch.py

For a more detailed guide on using this template see documentation.