2. ROS2开发环境搭建:Ubuntu系统安装、ROS2 Humble安装、开发环境配置

说实话,搭建开发环境这件事,很多新手觉得枯燥。但我得说,这一步要是没走稳,后面调试代码时你会哭的。我自己带过的项目里,至少有一半的「奇怪问题」,最后发现都是环境没配好。嗯,咱们今天就把这事一次性搞定。

本章核心目标:在你的电脑上搭建一个稳定、可复用的ROS2 Humble开发环境。说白了,就是让机器人代码能跑起来,而且跑得稳。

ROS2 开发环境搭建流程 ① Ubuntu 22.04 安装 系统底层基石 ② ROS2 Humble 安装 通信框架核心 ③ 开发工具配置 VS Code + colcon 双系统 / 虚拟机 apt 安装 / 源码编译 Python3 + 依赖 colcon 构建工具

2.1 为什么选Ubuntu 22.04?

ROS2 Humble 官方推荐的是 Ubuntu 22.04 LTS。你可能会问:用20.04行不行?我试过,能装,但有些包会打架。说白了,ROS2 和 Ubuntu 版本是严格绑定的。Humble 对应 22.04,就像钥匙和锁的关系。

我的建议:如果你手头是 Windows 电脑,别纠结,直接装双系统。虚拟机跑 ROS2 做简单测试还行,真要控制机器人移动,延迟会让你崩溃的。我之前带学生做项目,有人用虚拟机跑导航,结果机器人原地转圈——因为虚拟机的时钟同步有问题。

2.2 Ubuntu 22.04 安装要点

安装过程其实不复杂,但有几个坑我得提前告诉你:

  1. 磁盘分区:至少留 50GB 给 Ubuntu。我习惯给 80GB,因为后面要装各种依赖包和仿真工具。
  2. 网络设置:安装时连上网络,让系统自动更新驱动。不然后面装无线网卡驱动够你折腾的。
  3. 软件源:装完后第一件事,换国内源。阿里云或清华源都行,不然下载速度会让你怀疑人生。

注意:如果你用的是 NVIDIA 显卡,装完系统后记得去「软件和更新」里安装专有驱动。开源驱动 nouveau 跑 ROS2 的 rviz2 会卡成 PPT。

2.3 ROS2 Humble 安装实战

好,系统准备好了,咱们开始装 ROS2。我个人习惯用 apt 安装,省事。源码编译虽然灵活,但第一次接触没必要给自己加难度。

打开终端,按顺序执行以下命令:

# 1. 设置编码
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

# 2. 添加 ROS2 源
sudo apt install software-properties-common
sudo add-apt-repository universe

# 3. 添加 ROS2 GPG 密钥
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

# 4. 添加仓库到 sources.list
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

# 5. 安装 ROS2 Humble 桌面版(包含 rviz2、demo 等)
sudo apt update
sudo apt install ros-humble-desktop

# 6. 安装开发工具
sudo apt install ros-dev-tools

安装完成后,验证一下:

# 打开一个新终端,运行:
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

# 再开一个终端,运行:
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener

如果你看到 talker 在发消息,listener 在收消息,恭喜你,ROS2 装好了!

我曾经遇到过一个问题:明明装好了,但运行 ros2 命令提示找不到。后来发现是忘了 source 环境变量。嗯,这事我干了不下五次。所以建议你把 source 命令加到 ~/.bashrc 里:

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

2.4 开发环境配置

ROS2 装好了,但光有它还不够。你还需要趁手的工具。我这些年用下来,最顺手的组合是:VS Code + colcon + Python3。

2.4.1 VS Code 安装与配置

VS Code 可以直接从官网下载 .deb 包安装,也可以用 snap:

sudo snap install code --classic

装完后,我建议你装上这几个插件,能省不少事:

插件名 作用
ROS ROS2 语法高亮、代码补全、launch 文件支持
Python Python 智能提示、调试、格式化
C/C++ 如果你写 C++ 节点,这个必装
CMake Tools CMake 构建支持,配合 colcon 用
GitLens 代码版本管理,团队协作时很有用

一个小技巧:在 VS Code 里按 Ctrl+Shift+P,输入「ROS: Set ROS2 Environment」,可以自动加载 ROS2 环境变量。这样你就不用每次手动 source 了。

2.4.2 colcon 构建工具

colcon 是 ROS2 官方推荐的构建工具。说白了,它就是用来编译你的 ROS2 工作空间的。安装很简单:

sudo apt install python3-colcon-common-extensions

创建一个工作空间试试看:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build

如果一切顺利,你会看到 build、install、log 三个文件夹。我个人习惯每次编译后都 source 一下:

source install/setup.bash

避坑指南:我曾经在编译时遇到「找不到包」的错误,折腾了半天才发现是工作空间路径里有中文。ROS2 对路径中的中文支持不太好,建议所有路径都用英文。

2.4.3 Python3 环境

Ubuntu 22.04 自带 Python3.10,够用了。但你还需要装一些 ROS2 相关的 Python 包:

sudo apt install python3-pip
pip3 install --user -U empy pyros-genmsg setuptools

为什么要装这些?empy 是 ROS2 的模板引擎,pyros-genmsg 用于生成消息代码。不装的话,你写自定义消息时会报错。

2.5 验证整个环境

最后,咱们跑一个简单的测试,确保所有工具都能协同工作:

# 1. 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

# 2. 创建一个测试包
ros2 pkg create test_pkg --build-type ament_python

# 3. 编译
colcon build

# 4. 运行
source install/setup.bash
ros2 run test_pkg test_pkg

如果没报错,说明你的开发环境已经搭建完成了。嗯,到这里,你可以给自己鼓个掌。因为后面所有的机器人代码,都将在这个环境里运行。

总结一下今天做的事:

  • 安装了 Ubuntu 22.04 LTS
  • 通过 apt 安装了 ROS2 Humble 桌面版
  • 配置了 VS Code 并安装了必备插件
  • 安装了 colcon 构建工具
  • 配置了 Python3 开发环境

这套环境我用了两年多,稳定可靠。你照着做,基本不会出问题。