You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Galactic.
Installing ROS 2 via Debian Packages
Table of Contents
Debian packages for ROS 2 Foxy Fitzroy are currently available for Ubuntu Focal.
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
We test with the following settings. However, it should be fine if you’re using a different UTF-8 supported locale.
locale # check for UTF-8 sudo apt update && sudo apt install locales 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 locale # verify settings
You will need to add the ROS 2 apt repositories to your system. To do so, first authorize our GPG key with apt like this:
sudo apt update && sudo apt install curl gnupg2 lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
And then add the repository to your sources list:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Update your apt repository caches after setting up the repositories.
sudo apt update
Desktop Install (Recommended): ROS, RViz, demos, tutorials.
sudo apt install ros-foxy-desktop
ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. No GUI tools.
sudo apt install ros-foxy-ros-base
If you installed
ros-foxy-desktop above you can try some examples.
In one terminal, source the setup file and then run a C++
source /opt/ros/foxy/setup.bash ros2 run demo_nodes_cpp talker
In another terminal source the setup file and then run a Python
source /opt/ros/foxy/setup.bash ros2 run demo_nodes_py listener
You should see the
talker saying that it’s
Publishing messages and the
I heard those messages.
This verifies both the C++ and Python APIs are working properly.
Continue with the tutorials and demos to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts.
The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated documentation on how to build and use the ROS 1 bridge.
The default middleware that ROS 2 uses is
Fast-RTPS, but the middleware (RMW) can be replaced at runtime.
See the guide on how to work with multiple RMWs.
If you need to uninstall ROS 2 or switch to a source-based install once you have already installed from binaries, run the following command:
sudo apt remove ~nros-foxy-* && sudo apt autoremove
You may also want to remove the repostiory:
sudo rm /etc/apt/sources.list.d/ros2.list sudo apt update sudo apt autoremove # Consider upgrading for packages previously shadowed. sudo apt upgrade