Awesome
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:
- ros_gz: Metapackage which provides all the other packages.
- ros_gz_image: Unidirectional transport bridge for images from Gazebo Transport to ROS using image_transport.
- ros_gz_bridge: Bidirectional transport bridge between Gazebo Transport and ROS.
- ros_gz_sim: Convenient launch files and executables for using Gazebo Sim with ROS.
- ros_gz_sim_demos: Demos using the ROS-Gazebo integration.
- ros_gz_point_cloud: Plugins for publishing point clouds to ROS from Gazebo Sim simulations.
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.
-
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
-
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.
-
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
-
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. -
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 withc++: fatal error: Killed signal terminated program cc1plus
try building withcolcon build --parallel-workers=1 --executor sequential
. You might also have to setexport MAKEFLAGS="-j 1"
before runningcolcon 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