2. 开发环境搭建:Ubuntu系统安装、ROS2 Humble版本安装、开发环境验证与常见问题排查
说实话,环境搭建这一步,劝退了很多人。
我见过不少同学,兴致勃勃想学ROS2,结果卡在安装上,一卡就是一整天。其实没那么可怕。你只要把系统装对、源配好、版本选对,后面就顺了。今天我就带你走一遍,我自己的踩坑经验也会一并分享。
2.1 为什么选Ubuntu 22.04 + ROS2 Humble?
ROS2的版本和Ubuntu版本是绑定的。Humble Hawksbill是2022年的LTS版本,对应Ubuntu 22.04 LTS。我个人习惯是:能用LTS就用LTS,稳定、社区支持时间长、第三方库兼容性好。
| ROS2 版本 | 对应 Ubuntu 版本 | 我的建议 |
|---|---|---|
| Humble Hawksbill | 22.04 LTS | 推荐,稳定,教程资源最多 |
| Iron Irwini | 22.04 / 24.04 | 较新,但部分包还不全 |
| Rolling | 最新Ubuntu | 不推荐新手用,API可能变 |
2.2 Ubuntu 22.04 安装要点
安装过程我就不逐条截图了,网上教程一搜一大把。我只说几个关键点——这些是我自己装过几十次系统后总结的。
2.2.1 下载与制作启动盘
- 去 ubuntu.com/download 下载 22.04 LTS 桌面版
- 用 Rufus(Windows)或 balenaEtcher(macOS/Linux)写U盘
- 注意:写盘时选 + UEFI 模式,别选Legacy
2.2.2 分区建议
我见过有人给根分区只分了20GB,装完ROS2就满了。嗯,这里要注意:
- /(根分区):至少 40GB,建议 60GB+
- /home:剩下的空间全给它,你的代码、工作空间都在这里
- swap:如果你的内存小于8GB,建议分一个8GB的swap
2.2.3 安装后的第一件事
系统装好后,先换源。国内用户不换源,下载速度会让你怀疑人生。
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华源(用sed一键替换)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y
2.3 ROS2 Humble 安装
ROS2的安装方式有两种:apt安装(推荐)和源码编译。除非你要改ROS2核心代码,否则别碰源码编译。我刚开始学的时候非要挑战源码编译,结果编译了三个小时,还报了一堆错。后来老老实实用apt,五分钟搞定。
2.3.1 设置软件源
# 安装必要的工具
sudo apt install software-properties-common -y
# 添加ROS2 GPG key
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
# 添加ROS2源(这里也建议换成国内镜像)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 更新
sudo apt update
2.3.2 安装ROS2 Humble
我建议安装 desktop版本,包含了Rviz2、Gazebo等可视化工具,后面做仿真联调用得上。
# 安装桌面版(包含所有工具)
sudo apt install ros-humble-desktop -y
# 安装开发工具(编译、测试等)
sudo apt install ros-dev-tools -y
安装完成后,大概占用 2-3GB 空间。如果空间不够,可以只装 ros-humble-ros-base(核心版),但后面很多功能需要自己补包。
2.3.3 配置环境变量
每次打开终端都要source一下,很烦。我习惯直接写进 .bashrc:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
alias ros1='source /opt/ros/noetic/setup.bash',这样就不会冲突了。
2.4 开发环境验证
装完了,怎么知道有没有装对?我一般跑三个测试:
2.4.1 测试一:检查ROS2环境变量
# 查看ROS2版本
ros2 --version
# 查看环境变量
echo $ROS_DISTRO
如果输出 humble,说明环境变量配置成功。
2.4.2 测试二:运行小海龟仿真
这是ROS2的「Hello World」,能跑起来就说明核心通信没问题。
# 终端1:启动海龟仿真节点
ros2 run turtlesim turtlesim_node
# 终端2:启动键盘控制节点
ros2 run turtlesim turtle_teleop_key
你会看到一个蓝色背景的窗口,里面有一只小海龟。按键盘方向键,海龟会动。如果不动,检查一下两个终端是否都source了环境变量。
2.4.3 测试三:查看节点和话题
# 列出所有节点
ros2 node list
# 列出所有话题
ros2 topic list
# 查看话题内容
ros2 topic echo /turtle1/cmd_vel
你应该能看到 /turtlesim 和 /teleop_turtle 两个节点,以及 /turtle1/cmd_vel 等话题。按方向键时,ros2 topic echo 会输出速度指令。
ros2 node list 和 ros2 topic list 能输出内容。如果这三项都OK,你的ROS2环境就搭好了。
2.5 常见问题排查
下面这些问题,是我在教学中遇到最多的。我直接列出来,你遇到了直接对照解决。
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
ros2: command not found |
环境变量没source | 运行 source /opt/ros/humble/setup.bash,或检查.bashrc |
安装时提示 E: Unable to locate package ros-humble-desktop |
ROS2源没添加成功 | 重新执行添加源的步骤,检查网络和GPG key |
| 小海龟窗口打不开 | 缺少图形界面支持 | 安装 sudo apt install xterm,或检查DISPLAY变量 |
| 虚拟机里小海龟很卡 | 3D加速没开 | 在虚拟机设置里启用3D加速,安装VMware Tools |
ros2 topic echo 没输出 |
话题名打错了,或节点没运行 | 用 ros2 topic list 确认话题名 |
2.6 本章知识体系
下面这张图,帮你把本章的核心逻辑串起来。从系统安装到环境验证,每一步都有依赖关系。
这张图你看懂了吗?从上到下,每一步都依赖上一步。我见过有人跳过系统配置直接装ROS2,结果各种报错。所以,按顺序来,别跳步。