Installing ROS2 via Debian Packages¶
Table of Contents
Debian packages for ROS 2 Crystal (the latest release) and ROS 2 Bouncy are available for Ubuntu Bionic; packages for ROS 2 Ardent are available for Ubuntu Xenial.
Make sure you have a locale which supports
If you are in a minimal environment, such as a docker container, the locale may be something minimal like POSIX.
We test with the following settings.
It should be fine if you’re using a different UTF-8 supported locale.
sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8
To install the Debian packages you will need to add our Debian repository to your apt sources. First you will need to authorize our gpg key with apt like this:
sudo apt update && sudo apt install curl gnupg2 lsb-release curl http://repo.ros2.org/repos.key | sudo apt-key add -
And then add the repository to your sources list:
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
First set an environment variable for the ROS 2 release you want to install so it can be used in other commands.
export CHOOSE_ROS_DISTRO=crystal # or bouncy or ardent sudo apt update
Desktop Install (Recommended): ROS, RViz, demos, tutorials.
sudo apt install ros-$CHOOSE_ROS_DISTRO-desktop
ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. No GUI tools.
sudo apt install ros-$CHOOSE_ROS_DISTRO-ros-base
ROS 2 command line tools use argcomplete to autocompletion. So if you want autocompletion, installing argcomplete is necessary.
sudo apt install python3-argcomplete
Ubuntu 16.04 (argcomplete >= 0.8.5)¶
argcomplete on Ubuntu 16.04 (Xenial), you’ll need to use pip, because the version available through
apt will not work due to a bug in that version of
sudo apt install python3-pip sudo pip3 install argcomplete
By default the RMW implementation
FastRTPS is used.
If using Ardent OpenSplice is also installed.
To install support for OpenSplice or RTI Connext on Bouncy:
sudo apt update sudo apt install ros-$ROS_DISTRO-rmw-opensplice-cpp # for OpenSplice sudo apt install ros-$ROS_DISTRO-rmw-connext-cpp # for RTI Connext (requires license agreement)
By setting the environment variable
RMW_IMPLEMENTATION=rmw_opensplice_cpp you can switch to use OpenSplice instead.
For ROS 2 releases Bouncy and newer,
RMW_IMPLEMENTATION=rmw_connext_cpp can also be selected to use RTI Connext.
If you want to install the Connext DDS-Security plugins please refer to this page.
ros1_bridge as well as the TurtleBot demos are using ROS 1 packages.
To be able to install them please start by adding the ROS 1 sources as documented here.
If you’re using Docker for isolation you can start with the image
osrf/ros:melodic-desktop (or Kinetic if using Ardent).
This will also avoid the need to setup the ROS sources as they will already be integrated.
Now you can install the remaining packages:
sudo apt update sudo apt install ros-$ROS_DISTRO-ros1-bridge
The turtlebot2 packages are available in Bouncy but not Crystal.
sudo apt install ros-$ROS_DISTRO-turtlebot2-*