Skip to content

Integration between ROS (1 and 2) and Gazebo simulation

License

Notifications You must be signed in to change notification settings

gazebosim/ros_gz

Repository files navigation

Build Status

ROS 2 version Gazebo version Branch Binaries hosted at
Foxy Citadel foxy https://packages.ros.org
Foxy Edifice foxy only from source 1
Galactic Edifice galactic https://packages.ros.org 1
Galactic Fortress galactic only from source
Humble Fortress humble https://packages.ros.org
Humble Garden humble gazebo packages2 1
Humble Harmonic humble gazebo packages2
Iron Fortress humble https://packages.ros.org
Iron Garden humble only from source 1
Iron Harmonic humble only from source
Jazzy Garden ros2 only from source 1
Jazzy Harmonic jazzy https://packages.ros.org
Rolling Garden ros2 only from source 1
Rolling Harmonic ros2 only from source
Rolling Ionic ros2 https://packages.ros.org

For information on ROS(1) and Gazebo compatibility, refer to the noetic branch README

Details about the renaming process from ign to gz .

Note: The ros_ign prefixed packages are shim packages that redirect to their ros_gz counterpart. Under most circumstances you want to be using the ros_gz counterpart.

Integration between ROS and Gazebo

Packages

This repository holds packages that provide integration between ROS and Gazebo:

Install

This branch supports ROS Rolling. See above for other ROS versions.

Binaries

Rolling binaries are available for Fortress. They are hosted at https://packages.ros.org.

  1. Add https://packages.ros.org

     sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
     curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
     sudo apt-get update
    
  2. Install ros_gz

     sudo apt install ros-rolling-ros-gz
    

From source

ROS

Be sure you've installed ROS Rolling (at least ROS-Base). More ROS dependencies will be installed below.

Gazebo

Install either Fortress, Harmonic or Ionic.

Set the GZ_VERSION environment variable to the Gazebo version you'd like to compile against. For example:

export GZ_VERSION=harmonic # IMPORTANT: Replace with correct version

You only need to set this variable when compiling, not when running.

Compile ros_gz

The following steps are for Linux and macOS.

  1. Create a colcon workspace:

    # Setup the workspace
    mkdir -p ~/ws/src
    cd ~/ws/src
    
    # Download needed software
    git clone https://github.com/gazebosim/ros_gz.git -b ros2
    
  2. Install dependencies (this may also install Gazebo):

    cd ~/ws
    rosdep install -r --from-paths src -i -y --rosdistro rolling
    

    If rosdep fails to install Gazebo libraries and you have not installed them before, please follow Gazebo installation instructions.

  3. Build the workspace:

    # Source ROS distro's setup.bash
    source /opt/ros/<distro>/setup.bash
    
    # Build and install into workspace
    cd ~/ws
    colcon build
    

Tip

The ros_gz library makes heavy use of templates which causes compilers to consume a lot of memory. If your build fails with c++: fatal error: Killed signal terminated program cc1plus try building with colcon build --parallel-workers=1 --executor sequential. You might also have to set export MAKEFLAGS="-j 1" before running colcon build to limit the number of processors used to build a single package.

ROSCon 2022

Project Template

A template project integrating ROS and Gazebo simulator

Footnotes

  1. Note that the Gazebo version on this row has reached end-of-life. 2 3 4 5 6

  2. Binaries for these pairings are provided from the packages.osrfoundation.org repository. Refer to https://gazebosim.org/docs/latest/ros_installation for installation instructions. 2