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可能变
小提示:如果你用的是Windows或macOS,别硬装双系统。直接用虚拟机(VMware/VirtualBox)或者WSL2就行。我早期在Windows上折腾双系统,光分区就搞崩了两次。后来老老实实用虚拟机,省心多了。

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
警告:安装时如果选了「清除整个磁盘并安装Ubuntu」,会把你整个硬盘的数据都抹掉。我曾经帮同事恢复过误删的数据,过程极其痛苦。如果你电脑上有重要数据,务必先备份。

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
重点:如果上面添加源时速度很慢,可以换成 mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu。国内用户一定要换,不然一个包下载半小时。

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
小技巧:如果你同时装了ROS1和ROS2,可以在.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 确认话题名
曾经有个同学问我:「老师,我小海龟能跑,但一关终端再打开就不行了。」——这就是典型的没把source写进.bashrc。每次新开终端都要手动source,忘了就报错。所以,一定要把source命令写进.bashrc,一劳永逸。

2.6 本章知识体系

下面这张图,帮你把本章的核心逻辑串起来。从系统安装到环境验证,每一步都有依赖关系。

ROS2 开发环境搭建知识体系 Ubuntu 22.04 安装 分区 / 换源 / 基础配置 ROS2 Humble 安装 添加源 / apt安装 / 配置环境 开发工具安装 ros-dev-tools / 编译工具 环境验证(三步测试) ① ros2 --version → ② 小海龟仿真 → ③ ros2 node/topic list 常见问题排查 command not found / 包找不到 / 图形界面 / 虚拟机卡顿 ✅ 开发环境搭建完成 每步验证通过再往下走

这张图你看懂了吗?从上到下,每一步都依赖上一步。我见过有人跳过系统配置直接装ROS2,结果各种报错。所以,按顺序来,别跳步。