2. 开发环境搭建:在Ubuntu 22.04上安装ROS2 Humble,配置环境变量,验证安装。

好,咱们正式开始动手。这一章,说白了就是给你的电脑装上ROS2的“心脏”。环境搭不好,后面全是白忙活。我个人习惯是,每开始一个新项目,都会从零搭建一个干净的环境,这样心里踏实。

2.1 为什么选择Ubuntu 22.04 + ROS2 Humble?

你可能会问,版本那么多,为什么偏偏是这一对?

ROS2的版本和Ubuntu的版本是严格绑定的。Humble Hawksbill( humble 意为“谦逊的”,玳瑁)是ROS2的一个长期支持版(LTS),对应Ubuntu 22.04 LTS。这意味着什么呢?

  • 稳定:LTS版本会获得长达5年的安全更新和维护。我在项目中吃过非LTS版本的亏,升级一次,一堆依赖包要重配,太折腾了。
  • 生态好:绝大多数主流的机器人库、驱动包,都会优先支持Humble。你遇到问题,网上搜到的解决方案也最多。
  • 省心:Ubuntu 22.04本身也是一个非常成熟的系统,硬件兼容性好。

一句话总结:选这对组合,就是选择了ROS2世界里最宽阔、最平坦的一条路。

2.2 安装前的准备工作

别急着敲命令。先检查一下你的“厨房”干不干净。

2.2.1 确保系统语言和编码

ROS2对系统的locale(区域设置)有要求,必须支持UTF-8。我个人习惯用英文系统,但中文也没问题。检查一下:

locale  # 查看当前设置

如果输出里没有看到 en_US.UTF-8 或 zh_CN.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

2.2.2 添加ROS2的软件源

Ubuntu默认的软件源里没有ROS2,我们需要手动添加。这就像你要去一个特定的菜市场买菜,得先知道地址。

# 1. 确保系统允许安装来自HTTPS的软件
sudo apt update && sudo apt install curl gnupg lsb-release

# 2. 添加ROS2的GPG密钥(用来验证软件包的真伪)
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 3. 将ROS2的仓库添加到源列表
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

一个小技巧:如果你在墙内,下载 ros.key 可能会很慢。我曾经遇到过这种情况,可以试试用代理,或者直接去ROS官网手动下载这个文件再放进去。

2.3 正式安装ROS2 Humble

源加好了,现在开始“买菜”。ROS2的安装方式很灵活,我推荐你安装 桌面版(Desktop),它包含了开发常用的工具、可视化库和示例代码。如果你硬盘空间实在紧张,再考虑基础版(Base)。

# 更新一下包列表
sudo apt update

# 安装桌面版ROS2 Humble(包含Rviz2、Turtlesim等)
sudo apt install ros-humble-desktop

# 如果你只想装基础通信库(不推荐初学者)
# sudo apt install ros-humble-ros-base

这个过程会下载几百兆的数据,取决于你的网速。嗯,去泡杯咖啡吧。

注意:安装过程中如果提示依赖冲突,千万别用 sudo apt --fix-broken install 暴力解决。先看看冲突的是什么包,很多时候是你之前装过其他版本的ROS。我建议你用一个虚拟机或者Docker容器来开始学习,干净利落。

2.4 配置环境变量

装好了,但系统还不知道ROS2在哪。你需要告诉它。这就像你新招了一个员工,得告诉他办公桌在哪。

每次打开终端,都要执行下面这行命令,才能使用ROS2的命令:

source /opt/ros/humble/setup.bash

但每次都手动敲,太傻了。我建议你把它加到终端的启动文件里,一劳永逸。

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

如果你用的是zsh(现在很多新系统默认用这个),就把 .bashrc 换成 .zshrc。

核心概念:这个 setup.bash 文件到底干了啥?说白了,它就是把ROS2所有可执行文件、库文件和Python包的路径,都加到了当前终端的环境变量里。没有它,你敲 ros2 命令,系统就会告诉你“命令未找到”。

2.5 验证安装:跑一个“Hello World”

环境配好了,是骡子是马,拉出来遛遛。ROS2的“Hello World”就是跑一个小海龟(Turtlesim)程序。这个程序虽然简单,但它完整地演示了节点通信的全过程。

2.5.1 启动海龟仿真器

打开一个终端,输入:

ros2 run turtlesim turtlesim_node

你应该会看到一个蓝色背景的窗口,中间有一只小海龟。这个窗口就是一个ROS2节点,它在等待你的指令。

2.5.2 控制海龟运动

再打开一个新终端(记得也要 source 环境变量哦),输入:

ros2 run turtlesim turtle_teleop_key

现在,用键盘的上下左右键控制小海龟。你会发现,海龟真的动起来了!

为什么会这样?

第一个终端是“海龟节点”,它发布自己的位置信息,并订阅速度指令。第二个终端是“键盘控制节点”,它读取你的键盘输入,然后发布速度指令。这两个节点通过ROS2的通信机制(Topic)完成了数据交换。

避坑指南:我曾经遇到过,键盘控制节点启动了,但海龟不动。检查了半天,发现是第二个终端忘记 source 环境变量了。记住,每个新终端都要 source,除非你写进了 .bashrc。

2.6 本章知识体系图

下面这张图,帮你理清整个环境搭建的逻辑脉络。从系统准备,到安装核心,再到验证运行,每一步都环环相扣。

ROS2 Humble 开发环境搭建流程 1. 系统准备 Ubuntu 22.04 + Locale 2. 添加软件源 GPG密钥 + 仓库地址 3. 安装ROS2 ros-humble-desktop 4. 配置环境变量 source setup.bash → .bashrc 5. 验证安装 ros2 run turtlesim turtlesim_node 遇到问题?检查前序步骤

2.7 常见问题与排查

问题现象 可能原因 解决方法
ros2: command not found 环境变量未生效 检查是否执行了 source /opt/ros/humble/setup.bash
安装时提示 E: Unable to locate package ros-humble-desktop 软件源未添加成功 重新执行添加源和GPG密钥的步骤
海龟窗口打开,但键盘控制无反应 终端焦点不在键盘控制窗口 点击键盘控制终端的窗口,确保它是活动窗口
网络超时,下载失败 网络环境问题 更换网络或使用国内镜像源

好了,到这里,你的ROS2开发环境就搭建完毕了。那只动起来的小海龟,就是你迈入ROS2世界的第一步。记住这个感觉,后面我们会用代码,让它做更复杂的事情。