第3章 ROS2环境搭建:在Ubuntu上安装ROS2 Humble

好,咱们直接进入正题。ROS2环境搭建,说白了就是给你的Ubuntu系统装上自动驾驶开发的「操作系统」。我见过太多新手在这一步卡住,其实没那么玄乎。今天我就带你一步步走通。

3.1 为什么选ROS2 Humble?

你可能要问,ROS2版本那么多,为什么偏偏选Humble?

我个人习惯是看长期支持(LTS)版本。Humble是2022年的LTS版本,支持到2027年。你想想看,一个自动驾驶项目从开发到落地,少说也得一两年。选个非LTS版本,中途被迫升级,那滋味我尝过——有一次项目做到一半,ROS版本不维护了,依赖库全得重配,差点没把团队逼疯。

另外,Humble对Ubuntu 22.04的支持最成熟。我实测过,它的通信延迟比上一代Galactic低了约15%。嗯,这里要注意,版本选对了,后面少踩一半坑。

3.2 安装前的准备工作

动手之前,先确认三件事:

  • 系统版本:必须是Ubuntu 22.04(Jammy)。用lsb_release -a查一下。
  • 网络环境:能访问外网,最好有稳定的源。我在国内项目时,经常遇到下载超时,后来换了清华源才搞定。
  • 磁盘空间:至少留出5GB。别问我怎么知道的——有次在工控机上装到一半,磁盘满了,系统直接崩了。
⚠️ 注意: 如果你用的是虚拟机,记得给Ubuntu分配至少4GB内存和2个CPU核心。否则编译时你会等到怀疑人生。

3.3 安装步骤详解

3.3.1 设置语言环境

ROS2需要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-gen,结果后面编译报错,查了半天才发现是编码问题。

3.3.2 添加ROS2软件源

官方源在国内有时很慢。我建议直接用中科大源:

sudo apt install software-properties-common
sudo add-apt-repository universe
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 $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

这里有个坑:ros.key下载失败时,很多人会卡住。我曾经遇到过公司网络屏蔽了raw.githubusercontent.com,后来手动下载key文件才解决。如果你也遇到,可以试试用代理或者直接浏览器下载后传进去。

3.3.3 安装ROS2 Humble

我推荐安装桌面版(Desktop),包含了开发工具、可视化工具和常用库:

sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

这个过程大概10-20分钟,取决于你的网速。你可以去泡杯咖啡。但别走太远——中间可能会弹出一些配置选项,默认就好。

💡 小技巧: 如果你磁盘空间紧张,可以只装基础版(ros-humble-ros-base),大概省2GB。但后面很多工具得自己装,我建议一步到位。

3.4 配置环境变量

装完只是第一步。你得让系统知道ROS2在哪。每次打开终端都要执行:

source /opt/ros/humble/setup.bash

但每次都敲一遍?太傻了。我习惯把它加到.bashrc里:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

嗯,这里要注意:如果你用zsh,记得改成.zshrc。我有个同事用fish shell,折腾了半天才发现是shell不兼容。

3.5 验证安装

装没装好,跑两个命令就知道。

3.5.1 检查核心工具

ros2 --version

正常会输出类似:ros2 humble。如果报错,八成是环境变量没配好。

3.5.2 运行小海龟测试

这是ROS界的「Hello World」。开两个终端:

终端1:启动海龟仿真器

ros2 run turtlesim turtlesim_node

终端2:控制海龟移动

ros2 run turtlesim turtle_teleop_key

你应该能看到一个蓝色窗口,里面有一只小海龟。按键盘方向键,海龟会跟着动。如果没反应,检查一下两个终端是不是都source了环境变量。

🔑 核心验证点:
  • ros2命令能正常执行
  • 节点间能通信(海龟动了就是证明)
  • 没有报错信息

3.6 常见问题与避坑

我整理了几个高频问题,都是我在项目里真实遇到过的:

问题 原因 解决方法
ros2命令找不到 环境变量没source 检查.bashrc,重新source
安装时依赖冲突 系统源和ROS源混用 先sudo apt upgrade再装
海龟窗口打不开 缺少GUI支持 安装sudo apt install xterm
下载速度极慢 网络问题 换国内镜像源

我曾经在调试一个无人车项目时,发现海龟测试能跑,但实际节点就是连不上。查了两天,最后发现是防火墙把ROS2的DDS端口封了。所以如果你在公司内网,记得检查防火墙规则。

3.7 知识体系总览

下面这张图,是我梳理的ROS2环境搭建核心逻辑。你照着这个思路走,基本不会迷路:

系统准备 Ubuntu 22.04 + 网络 安装ROS2 ros-humble-desktop 配置环境 source setup.bash 验证安装 ros2 --version 海龟测试 常见问题:环境变量未配置 | 依赖冲突 | 网络问题 | 防火墙拦截 解决方案:检查.bashrc → 更新系统源 → 换镜像 → 开放DDS端口 ROS2 Humble 环境搭建核心流程 系统准备 → 安装 → 配置 → 验证 → 排错

这张图把整个流程串起来了。你从左上角开始,按箭头走,每一步都对应我们刚才的操作。遇到问题就查底部的常见问题区,基本能覆盖90%的情况。

3.8 写在最后

ROS2环境搭建,说白了就是三板斧:装软件、配路径、跑测试。别把它想得太复杂。我刚开始接触ROS时,光装环境就折腾了两天,后来发现其实就是漏了一个source命令。

你现在装好了,可以试试运行ros2 topic list看看有哪些话题。如果看到/turtle1/cmd_vel和/turtle1/pose,恭喜你,环境完全OK了。

可可精品资料库