2. ROS2 环境搭建:在 Ubuntu 22.04 上安装 ROS2 Humble

说实话,搞机器人开发这么多年,我踩过最大的坑就是环境没搭好。有一次项目赶进度,我在一个没配好源的 Ubuntu 上硬装 ROS2,结果编译到半夜报了一堆依赖错误……嗯,从那以后我学乖了,环境搭建这事,真不能急。

这一章,咱们就把 ROS2 Humble 在 Ubuntu 22.04 上老老实实装好。你跟着我的步骤来,半小时内搞定。

2.1 安装前的准备工作

先确认你的系统版本。打开终端,敲下面这行:

lsb_release -a

如果显示的是 Ubuntu 22.04 LTS,那就对了。ROS2 Humble 是专门为这个版本设计的。我个人习惯在装任何软件前先更新一下系统:

sudo apt update
sudo apt upgrade -y
小提示: 如果你用的是虚拟机,记得给 Ubuntu 至少分配 4GB 内存和 2 个 CPU 核心。我之前用 2GB 内存跑编译,等了快一小时……别学我。

2.2 设置语言环境和软件源

ROS2 需要 UTF-8 支持。先检查你的 locale 设置:

locale

如果 LANG 不是 en_US.UTF-8,执行:

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

接下来添加 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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
注意: 如果 curl 下载密钥失败,多半是网络问题。你可以试试换源或者用手机热点。我曾经在客户现场折腾了半小时,最后发现是公司防火墙拦了。

2.3 安装 ROS2 Humble

ROS2 有两种安装方式:桌面版(Desktop)和基础版(Base)。桌面版包含了 rviz2、rqt 等可视化工具,基础版只有核心库。我建议你直接装桌面版,省得后面再补:

sudo apt install ros-humble-desktop -y

这个过程大概需要 5-10 分钟,取决于你的网速。安装完成后,你可以验证一下:

ros2 --version

如果看到类似 ros-humble 的输出,说明安装成功了。

2.4 配置环境变量

安装完只是第一步。每次打开终端,你都得让系统知道 ROS2 在哪。我个人习惯把环境变量写进 .bashrc,这样一劳永逸:

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

为什么这么做?你想想看,如果不加这行,每次新开终端都得手动敲 source /opt/ros/humble/setup.bash,多麻烦。而且我遇到过好几次,忘了 source 就直接跑 ros2 命令,报错说找不到命令……

验证环境变量: 新开一个终端,输入 echo $ROS_DISTRO,如果输出 humble,说明配置生效了。

2.5 验证安装:跑一个简单的例子

光说不练假把式。咱们跑一个 ROS2 自带的例子,看看能不能正常工作。

打开第一个终端,启动一个发布者节点:

ros2 run demo_nodes_cpp talker

再打开第二个终端,启动一个订阅者节点:

ros2 run demo_nodes_py listener

如果看到 talker 在发 "Hello World",listener 在收,那就说明 ROS2 的核心通信机制没问题。我第一次看到这个输出时还挺激动的——虽然只是几个字符串,但背后是 DDS 协议在跑。

2.6 安装常用工具

ROS2 生态里有些工具你几乎天天用。咱们一次性装好:

2.6.1 colcon:编译工具

colcon 是 ROS2 的官方编译工具,替代了 ROS1 的 catkin。安装很简单:

sudo apt install python3-colcon-common-extensions -y

验证一下:

colcon --version

2.6.2 rviz2:可视化工具

rviz2 是 ROS2 的 3D 可视化工具,看激光雷达点云、机器人模型都靠它。桌面版安装时已经带了,但如果你装的是基础版,需要单独装:

sudo apt install ros-humble-rviz2 -y

启动试试:

rviz2

如果看到一个 3D 界面弹出来,就说明装好了。我第一次用 rviz2 时,觉得它比 ROS1 的 rviz 启动快了不少。

2.6.3 rqt:图形化调试工具

rqt 是一组 GUI 工具,用来查看话题、服务、参数等。安装:

sudo apt install ros-humble-rqt -y

启动:

rqt

你会看到一个插件化的界面。我个人最常用的是 rqt_graph,它能画出节点之间的通信关系图,调试时特别好用。

2.7 本章知识体系

下面这张图帮你理清整个环境搭建的脉络:

ROS2 Humble 环境搭建知识体系 ROS2 Humble 安装 系统准备 软件源配置 安装 ROS2 环境配置 Ubuntu 22.04 添加 ROS 源 ros-humble-desktop source setup.bash locale 检查 密钥导入 talker/listener .bashrc 持久化 常用工具:colcon + rviz2 + rqt 编译工具 | 3D可视化 | 图形化调试 ✅ 环境就绪,可以开始开发

2.8 常见问题与避坑指南

安装过程中你可能会遇到一些问题。我把常见的列出来:

问题 原因 解决方法
ros2: command not found 没有 source 环境变量 执行 source /opt/ros/humble/setup.bash
安装时提示依赖缺失 软件源未更新 先执行 sudo apt update
rviz2 启动后黑屏 显卡驱动或 OpenGL 问题 安装 sudo apt install mesa-utils
colcon 编译报错 Python 版本或依赖问题 检查 python3 --version,确保 ≥ 3.8
重要提醒: 如果你之前装过 ROS1,记得把 ROS1 的环境变量注释掉,否则两个版本会冲突。我曾经在同一个终端里 source 了 ROS1 和 ROS2,结果 ros2 run 报了一堆莫名其妙的错。

2.9 小结

到这一步,你的 ROS2 Humble 环境就搭好了。我们做了这几件事:

  • 更新系统并配置 UTF-8 语言环境
  • 添加 ROS2 软件源并导入密钥
  • 安装 ros-humble-desktop 桌面版
  • 配置环境变量并写入 .bashrc
  • 用 talker/listener 例子验证通信
  • 安装 colcon、rviz2、rqt 三个常用工具