ROS 2从入门到精通系列(二):环境搭建 - Ubuntu系统安装ROS2
ROS 2从入门到精通系列(二):环境搭建 - Ubuntu系统安装ROS2
本文将手把手教你在Ubuntu系统上搭建ROS2开发环境,快速完成从零到一的配置。
引言
选择合适的开发环境是学习ROS2的第一步。本文针对Ubuntu 22.04 LTS 系统讲解 ROS 2 Humble 的完整安装过程,并提供故障排查方案。
一、前置条件检查
1.1 系统要求
1.2 检查系统信息
打开终端,执行以下命令检查你的系统:
# 检查Ubuntu版本
lsb_release -a
# 检查系统架构
uname -m # 应该输出 x86_64 或 aarch64
# 检查内存
free -h
# 检查硬盘空间
df -h /home
预期输出示例:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Release: 22.04
Codename: jammy
二、ROS2安装方式对比
ROS2提供多种安装方式,选择最适合你的:
本文采用最常用的方式:二进制包安装(apt)
三、完整安装步骤
3.1 步骤1:设置安装源
ROS2官方提供了Ubuntu软件源,需要添加到系统中。
配置源仓库
# 1. 使用curl下载GPG密钥并添加到系统
curl -sSL https://repo.ros2.org/ros.key | sudo apt-key add -
# 2. 添加ROS2官方仓库
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'
或使用中国镜像源(推荐,速度更快):
# 使用清华大学镜像源
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list'
# 导入GPG密钥
curl -sSL https://repo.ros2.org/ros.key | sudo apt-key add -
验证源配置
cat /etc/apt/sources.list.d/ros2-latest.list
3.2 步骤2:更新包索引
sudo apt update
这个命令会从所有添加的源中下载最新的包索引。
预期输出包含 packages.ros.org 或镜像源的URL:
Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
...
Hit:N https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease
...
Reading package lists... Done
3.3 步骤3:安装ROS2完整版
ROS2提供多种安装版本:
安装完整版(包含所有工具):
sudo apt install ros-humble-desktop
或仅安装基础版(占用空间小):
sudo apt install ros-humble-ros-base
安装时间预计:5-15分钟(取决于网络速度和硬盘速度)
安装过程中可能出现提示,输入 y 并按Enter确认。
3.4 步骤4:配置环境变量
ROS2需要在每次使用前加载环境变量。
临时加载(仅当前终端有效)
source /opt/ros/humble/setup.bash
永久加载(推荐)
编辑你的Shell配置文件:
# 如果使用bash
nano ~/.bashrc
# 或如果使用zsh
nano ~/.zshrc
在文件末尾添加一行:
source /opt/ros/humble/setup.bash
保存(Ctrl+O,Enter,Ctrl+X)。
然后重新加载配置:
source ~/.bashrc # 或 source ~/.zshrc
验证环境变量
echo $ROS_DISTRO
正确输出应该是:
humble
3.5 步骤5:安装开发工具
# 安装colcon构建工具
sudo apt install python3-colcon-common-extensions
# 安装用于C++开发的工具
sudo apt install ros-humble-rclcpp ros-humble-rclpy
# 安装常用工具
sudo apt install python3-rosdep2 python3-argcomplete
3.6 步骤6:初始化rosdep
rosdep是一个依赖管理工具:
# 初始化rosdep数据库
sudo rosdep init
# 更新rosdep(使用国内镜像会更快)
rosdep update
如果官方源太慢,可以使用中国镜像:
# 备份原始列表
sudo cp /etc/ros/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/20-default.list.backup
# 编辑配置文件
sudo nano /etc/ros/rosdep/sources.list.d/20-default.list
将文件内容改为:
yaml https://mirrors.tuna.tsinghua.edu.cn/rosdep/rosdep.yaml
然后:
rosdep update
四、安装验证
4.1 检查核心库
# 列出已安装的ROS2包
apt list --installed | grep ros-humble | head -20
# 应该能看到类似输出:
# ros-humble-actionlib-msgs/jammy,now 1.2.1-1jammy.20220524 amd64
# ros-humble-ament-cmake/jammy,now ...
4.2 运行第一个ROS2程序
在不创建任何项目的情况下,直接运行官方演示:
# 打开第一个终端,运行turtle演示程序
ros2 run turtlesim turtlesim_node
# 打开第二个终端,运行键盘控制程序
ros2 run turtlesim turtle_teleop_key
预期结果:出现一个小乌龟的窗口,你可以用方向键控制它移动。
4.3 验证通信机制
# 打开第一个终端,运行发布者节点
ros2 run demo_nodes_cpp talker
# 打开第二个终端,运行订阅者节点
ros2 run demo_nodes_cpp listener
预期输出示例:
[listener] Hello World: 1
[listener] Hello World: 2
[listener] Hello World: 3
...
五、安装时间复杂度分析
安装时间受多个因素影响:
T t o t a l = T n e t w o r k + T d o w n l o a d + T c o m p i l e + T s e t u p T_{total} = T_{network} + T_{download} + T_{compile} + T_{setup} Ttotal=Tnetwork+Tdownload+Tcompile+Tsetup
其中:
| 因素 | 耗时 | 影响 |
|---|---|---|
| 网络速度 | 1-10 min | 下载包大小 ~2-3GB |
| 硬盘I/O | 2-5 min | SSD显著更快 |
| CPU编译 | 0-5 min | 预编译二进制包较快 |
| 依赖解析 | 1-3 min | apt解析依赖关系 |
总耗时预计:5-15分钟
六、常见安装问题排查
问题1:找不到包(Unable to locate package)
# 症状
$ sudo apt install ros-humble-desktop
E: Unable to locate package ros-humble-desktop
解决方案:
# 检查源是否正确添加
cat /etc/apt/sources.list.d/ros2-latest.list
# 更新包索引
sudo apt update
# 如果仍未解决,检查GPG密钥
apt-key list | grep ROS
问题2:依赖冲突(Dependency Errors)
# 症状
The following packages have unmet dependencies:
ros-humble-desktop: Depends: libgazebo...
解决方案:
# 安装缺失的依赖
sudo apt --fix-broken install
# 或使用rosdep自动解决依赖
rosdep install -i --from-path src --rosdistro humble -y
问题3:网络超时或下载中断
# 如果下载中断,重新执行安装命令
sudo apt install ros-humble-desktop
# 清除部分下载的包
sudo apt clean
sudo apt autoclean
# 重新尝试
sudo apt update
sudo apt install ros-humble-desktop
问题4:权限拒绝(Permission Denied)
# 症状:/opt/ros/humble/setup.bash: Permission denied
# 解决方案:使用source而非执行
source /opt/ros/humble/setup.bash # ✅ 正确
bash /opt/ros/humble/setup.bash # ✅ 也正确
./opt/ros/humble/setup.bash # ❌ 错误
问题5:环境变量未生效
# 验证环境变量
echo $ROS_DISTRO
# 如果输出为空,表示未加载
# 手动加载
source /opt/ros/humble/setup.bash
# 再次验证
echo $ROS_DISTRO # 应输出 humble
七、高级配置
7.1 安装额外的包
# 安装开发工具集
sudo apt install ros-humble-dev-tools
# 安装常用库
sudo apt install ros-humble-std-msgs ros-humble-geometry-msgs
# 安装可视化工具
sudo apt install ros-humble-rviz2 ros-humble-rqt-*
# 安装模拟器
sudo apt install ros-humble-gazebo-*
7.2 自定义ROS_DOMAIN_ID
在分布式ROS2系统中,可能需要区分不同的网络域:
# 在 ~/.bashrc 中添加
export ROS_DOMAIN_ID=0 # 默认值,范围: 0-232
# 不同的DOMAIN_ID可以相互隔离通信
7.3 配置ROS2中间件
# 使用FastRTPS(默认)
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
# 或使用Cyclone DDS
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# 需要先安装对应的RMW实现
sudo apt install ros-humble-rmw-cyclonedds-cpp
八、卸载ROS2
如果需要卸载ROS2(例如升级到新版本):
# 卸载ROS2包
sudo apt remove ros-humble-*
sudo apt remove ros-humble-desktop*
# 清理配置文件和依赖
sudo apt autoremove
sudo apt autoclean
# 移除源
sudo rm /etc/apt/sources.list.d/ros2-latest.list
# 移除GPG密钥
sudo apt-key del <KEY_ID>
九、验证清单
创建一个检查清单来确保安装完整:
十、推荐的下一步
安装完成后,你应该:
- ✅ 验证安装:运行演示程序
- ⚙️ 创建工作空间:为后续开发准备环境
- 📚 学习基础概念:理解节点、话题、服务等
- 🔧 尝试编写第一个节点:用Python或C++
十一、快速参考
完整安装命令序列
如果你想快速完成安装,可以逐行复制执行以下命令:
# 1. 添加源
curl -sSL https://repo.ros2.org/ros.key | sudo apt-key add -
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'
# 2. 更新
sudo apt update
# 3. 安装
sudo apt install ros-humble-desktop -y
# 4. 设置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 5. 安装开发工具
sudo apt install python3-colcon-common-extensions ros-humble-rclcpp ros-humble-rclpy python3-rosdep2 -y
# 6. 初始化rosdep
sudo rosdep init
rosdep update
# 7. 验证
echo $ROS_DISTRO
十二、本文要点总结
✅ 系统要求:Ubuntu 22.04 LTS,4GB内存,20GB硬盘
✅ 安装方式:二进制包安装最简单快速
✅ 关键步骤:添加源 → 更新索引 → 安装包 → 配置环境变量
✅ 验证方法:运行turtlesim演示程序和talker-listener示例
✅ 问题排查:检查源配置、更新包索引、验证环境变量
常见疑问解答
Q1: 我的Ubuntu是20.04,能安装ROS2 Humble吗?
A: Humble官方仅支持22.04。如果必须用20.04,可安装ROS2 Foxy,但建议升级Ubuntu版本。
Q2: 安装过程中网络很慢怎么办?
A: 使用国内镜像源(如清华、阿里云)。本文已提供清华镜像配置。
Q3: 能同时安装多个ROS2版本吗?
A: 可以,但需要在使用前切换环境变量:
source /opt/ros/humble/setup.bash # 加载Humble
source /opt/ros/iron/setup.bash # 加载Iron(会覆盖Humble)
Q4: turtlesim运行后窗口出不来怎么办?
A: 检查显示器驱动。如果是远程连接,需要配置X11转发。
下一篇预告:《ROS2从入门到精通系列(三):工作空间与包 - 创建和管理项目结构》
👍 如果本文帮助了你,请点赞并关注!有任何问题欢迎在评论区提问~
更多推荐



所有评论(0)