第1章:ROS2安装——从版本选择到环境验证

大家好,我是你们的ROS2引路人。今天咱们来聊聊ROS2的安装。说实话,这一步看似简单,但我在带学生和做项目时,发现很多人卡在了这里。不是装错了版本,就是环境没配好,最后跑demo时一脸懵。

嗯,咱们一步步来。先搞清楚几个关键问题。

1.1 ROS2的版本选择——别选错了

ROS2的版本更新挺快的,基本一年一个大版本。我个人的建议是:选LTS(长期支持)版本。为什么呢?

  • Humble Hawksbill(2022年发布,支持到2027年)——目前最稳的选择。我自己的开发机用的就是它。
  • Iron Irwini(2023年发布)——新特性多,但有些包还没完全适配。
  • Rolling——滚动版,适合尝鲜,但不建议用于生产环境。

核心建议:如果你用的是Ubuntu 22.04,直接上Humble。这是最稳妥的组合。我在项目中遇到过有人装了Jazzy(当时的最新版),结果发现某个驱动包不兼容,折腾了两天。后来换回Humble,半小时搞定。

Ubuntu版本 推荐ROS2版本 支持周期
Ubuntu 22.04 Humble Hawksbill 至2027年
Ubuntu 24.04 Jazzy Jalisco 至2029年

小技巧:如果你不确定自己的Ubuntu版本,终端里敲 lsb_release -a 就能看到。别问我为什么知道——我见过有人对着Ubuntu 20.04硬装Humble,结果依赖全崩了。

1.2 安装方式——apt还是源码?

ROS2的安装方式主要有两种。说白了,就是「省心版」和「折腾版」。

方式一:apt安装(推荐)

这是我最常用的方式。apt安装就像去超市买速冻水饺——开袋即食,省时省力。

# 1. 设置locale
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. 添加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

# 3. 安装ROS2
sudo apt update
sudo apt install ros-humble-desktop  # 桌面版,包含GUI工具
# 或者:sudo apt install ros-humble-ros-base  # 基础版,无GUI

注意:安装过程中如果提示「无法定位软件包」,八成是源没加对。我曾经在树莓派上遇到过这个问题,后来发现是系统架构写错了。检查一下 /etc/apt/sources.list.d/ros2.list 里的内容,确保 $UBUNTU_CODENAME 被正确替换成了 jammy(22.04)或 noble(24.04)。

方式二:源码编译(进阶)

源码编译适合什么场景?你想想看,如果你需要修改ROS2核心代码,或者想体验最新特性,那就得走这条路。但说实话,我一般只在以下情况才用源码编译:

  • 需要调试某个特定包
  • apt源里没有你需要的版本
  • 想在ARM架构上跑(比如树莓派)

源码编译的步骤比较长,这里我只给个大纲。具体细节可以看官方文档。

# 大致流程(以Humble为例)
mkdir -p ~/ros2_humble/src
cd ~/ros2_humble
vcs import src < humble.repos
sudo apt install python3-pip
pip3 install -U colcon-common-extensions
colcon build --symlink-install

我的经验:第一次编译大概需要1-2小时,取决于你的机器性能。我建议用 --symlink-install 参数,这样修改源码后不用重新编译,直接生效。嗯,这个坑我踩过——第一次没加这个参数,改一行代码等了半小时编译。

1.3 ROS2环境配置——这一步很多人会忘

装完了不等于能用。你得让系统知道「ROS2在哪」。说白了就是配置环境变量。

# 把下面这行加到 ~/.bashrc 里
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

为什么要加这行?因为每次打开终端,系统都要重新加载ROS2的环境变量。不加的话,你敲 ros2 命令会提示「command not found」。我刚开始学的时候,每次都要手动source一遍,后来才学会加到bashrc里。

避坑指南:如果你同时装了ROS1和ROS2,注意source的顺序。我曾经因为先source了ROS1再source ROS2,结果两个版本的环境变量打架,导致某些包找不到。正确的做法是:只source你当前要用的版本。

1.4 验证安装——跑个小demo试试

装好配好,咱们来验证一下。ROS2自带了一个小乌龟示例,可以用来测试安装是否成功。

# 打开终端1,启动小乌龟节点
ros2 run turtlesim turtlesim_node

# 打开终端2,启动键盘控制节点
ros2 run turtlesim turtle_teleop_key

如果一切正常,你会看到一个蓝色背景的窗口,中间有只小乌龟。用键盘的上下左右键可以控制它移动。嗯,就是这么简单。

你还可以用 ros2 node list 和 ros2 topic list 来查看当前运行的节点和话题。比如:

ros2 node list
# 输出:/turtlesim

ros2 topic list
# 输出:/turtle1/cmd_vel  /turtle1/pose  ...

常见问题:如果小乌龟窗口没出来,检查一下你的系统是否安装了GUI支持。在服务器上或者WSL里,可能需要额外配置X11转发。我曾在WSL2上折腾了半天,最后发现是没装 libx11-dev。

知识体系总览

下面这张图帮你理清本章的核心逻辑。从版本选择到最终验证,每一步都有它的意义。

ROS2安装知识体系 版本选择 安装方式 环境配置 验证安装 Humble / Iron / Rolling LTS版本优先 apt安装(推荐) 源码编译(进阶) source setup.bash 添加到 ~/.bashrc 运行turtlesim ros2 node/topic list 核心原则:选对版本 → 用对方式 → 配好环境 → 验证通过 每一步都别跳过,否则后面会出幺蛾子

好了,到这一步,你的ROS2环境应该已经跑起来了。如果小乌龟能在屏幕上自由移动,恭喜你——你已经迈出了ROS2开发的第一步。后面的事情,咱们慢慢聊。

可可精品资料库