目录
[2.3,安装ROS 2软件包](#2.3,安装ROS 2软件包)
[2.7,卸载 ROS](#2.7,卸载 ROS)
1,安装前须知
Ubuntu 发行顺序 和 ROS 发布时间 版本对应关系表,包含主流 ROS 1 和 ROS 2 版本的兼容性及支持状态:
Ubuntu 版本 | Ubuntu 代号 | ROS 版本 | ROS 类型 | 发布时间 | 支持状态 | 备注 |
---|---|---|---|---|---|---|
14.04 LTS | Trusty Tahr | Indigo Igloo | ROS 1 | 2014-07 | EOL (2019-04) | ROS 1 早期 LTS 版本,仅支持旧系统 |
16.04 LTS | Xenial Xerus | Kinetic Kame | ROS 1 | 2016-05 | EOL (2021-04) | ROS 1 首个支持 Python 3 的版本 |
Ardent Apalone | ROS 2 | 2017-12 | EOL (2018-12) | ROS 2 首个测试版本,非 LTS | ||
18.04 LTS | Bionic Beaver | Melodic Morenia | ROS 1 | 2018-05 | EOL (2023-05) | ROS 1 最后一个广泛使用的 LTS 版本 |
Dashing Diademata | ROS 2 | 2019-05 | EOL (2021-05) | ROS 2 首个 LTS 版本,支持 Ubuntu 18.04 | ||
20.04 LTS | Focal Fossa | Noetic Ninjemys | ROS 1 | 2020-05 | 维护至 2025-05 | ROS 1 最后一个 LTS 版本,完全支持 Python 3 |
Foxy Fitzroy | ROS 2 | 2020-06 | EOL (2023-05) | ROS 2 首个长期 LTS 版本 | ||
22.04 LTS | Jammy Jellyfish | Humble Hawksbill | ROS 2 | 2022-05 | 维护至 2027-05 | ROS 2 LTS 推荐版本,支持 Ubuntu 22.04 和 20.04 |
Iron Irwini | ROS 2 | 2023-05 | EOL (2024-11) | 非 LTS 版本,适合短期项目 | ||
24.04 LTS | Noble Numbat | Jazzy Jalisco | ROS 2 | 2024-05 | 维护至 2029-05 | 未来 LTS 版本,支持最新硬件和 Python 3.12 |
2,安装过程
2.1,设置语言环境
确保你有一个支持UTF-8的语言环境。
如果你在一个最小的环境中(比如docker容器),语言环境可能是最小的,比如POSIX。我们使用以下设置进行测试。
但是,如果你使用不同的UTF-8支持的语言环境,应该没问题。
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
2.2,设置源
需要将ROS 2 apt存储库添加到系统中。
sudo apt install software-properties-common
sudo add-apt-repository universe
添加带有apt的ROS 2 GPG密钥。
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
然后将存储库添加到您的源列表中。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
2.3,安装ROS 2软件包
设置存储库后更新您的apt存储库缓存。
sudo apt update
ROS 2软件包建立在经常更新的Ubuntu系统之上。始终建议您在安装新软件包之前确保您的系统是最新的。
sudo apt upgrade
桌面安装(推荐):ROS、RViz、演示、教程。
sudo apt install ros-foxy-desktop python3-argcomplete
ROS-Base Install(Bare Bones):通信库、消息包、命令行工具。没有GUI工具。
sudo apt install ros-foxy-ros-base python3-argcomplete
开发工具:构建ROS包的编译器和其他工具
sudo apt install ros-dev-tools
2.4,环境设置
通过获取以下文件来设置您的环境。
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/foxy/setup.bash
2.5,测试
如果安装ros-foxy-desktop,可以尝试一些例子。
在一个终端中,获取安装文件,然后运行C++ talker:
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
在另一个终端中获取安装文件,然后运行Python listener:
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener

应该看到talker说它正在Publishing消息,listener说I heard这些消息。这验证了C++和Python API都正常工作。
2.6,不想每次执行source
root@ubuntu:~# sudo vim /etc/profile.d/ros_foxy.sh
#!/bin/sh
source /opt/ros/foxy/setup.bash
root@ubuntu:~# source /etc/profile
仍有问题切换root 时,未生效
解决方法:
1,编辑 root 用户的 .bashrc:
vim /root/.bashrc
2,在文件末尾添加:
source /opt/ros/foxy/setup.bash
检验是否成功(另起一个终端)
检查是否有ROS DISTRO和ROS VERSION之类的变量
ROS VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=foxy
$ printenv |grep -i ROS
ROS_VERSION=2
ROS_PYTHON_VERSION=3
PWD=/home/xxx/userxx/ros
AMENT_PREFIX_PATH=/opt/ros/foxy
PYTHONPATH=/opt/ros/foxy/lib/python3.8/site-packages
LD_LIBRARY_PATH=/opt/ros/foxy/opt/yaml_cpp_vendor/lib:/opt/ros/foxy/opt/rviz_ogre_vendor/lib:/opt/ros/foxy/lib/x86_64-linux-gnu:/opt/ros/foxy/lib
ROS_LOCALHOST_ONLY=0
PATH=/opt/ros/foxy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ROS_DISTRO=foxy
2.7,卸载 ROS
如果您已经从二进制文件安装后需要卸载ROS 2或切换到基于源代码的安装,请运行以下命令:
sudo apt remove ~nros-foxy-* && sudo apt autoremove
您可能还想删除存储库:
sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade