3. ROS2开发环境搭建:Ubuntu 22.04系统安装与配置、ROS2 Humble发行版安装、colcon构建工具安装、环境变量配置与测试
说实话,搭建开发环境这件事,很多新手觉得枯燥,甚至觉得「装个系统有什么好学的」。但我见过太多项目卡在环境问题上——编译不过、找不到包、版本冲突,一查全是环境没配好。所以这一章,我带你一步步把地基打牢。
本章核心目标:在 Ubuntu 22.04 上完整搭建 ROS2 Humble 开发环境,包括系统配置、ROS2 安装、colcon 构建工具配置,以及环境变量的正确设置与验证。
3.1 Ubuntu 22.04 系统安装与基础配置
ROS2 Humble 官方推荐 Ubuntu 22.04 (Jammy)。我个人习惯用桌面版,调试时方便看图形界面。如果你用服务器版,也完全没问题,只是少了个桌面。
3.1.1 系统安装要点
- 磁盘分区:建议给
/根目录至少 50GB,/home单独分区 30GB 以上。我在项目中吃过亏,根目录塞满后系统直接卡死。 - 语言与键盘:安装时选 English (US),避免终端里中文乱码。后期可以再装中文输入法。
- 网络配置:确保能访问外网,最好用有线网络,Wi-Fi 有时不稳定。
3.1.2 基础配置
装完系统第一件事,更新软件源。你想想看,如果源里包都是旧的,后面装 ROS2 会各种报错。
# 更新软件包列表
sudo apt update
# 升级所有已安装的包
sudo apt upgrade -y
# 安装基础开发工具(我建议这一步别省)
sudo apt install -y build-essential git cmake curl wget gnupg2 lsb-release
我的经验:装完系统先重启一次,确认内核和驱动都正常。我曾经跳过这步,结果装 ROS2 时显卡驱动冲突,排查了整整一下午。
3.2 ROS2 Humble 发行版安装
ROS2 的安装方式有两种:Debian 包安装(推荐)和源码编译。对于初学者,我强烈建议用 Debian 包。源码编译虽然能定制,但耗时且容易踩坑。
3.2.1 设置软件源
ROS2 的包不在 Ubuntu 默认源里,需要手动添加。嗯,这里要注意:先添加 ROS2 的 GPG 密钥,再添加源。
# 添加 ROS2 GPG 密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加 ROS2 软件源
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
# 更新源
sudo apt update
3.2.2 安装 ROS2 Humble
ROS2 提供了多个版本:桌面版(Desktop)和基础版(Base)。桌面版包含可视化工具和示例,适合学习和开发。基础版只含核心库,适合嵌入式或服务器。
# 安装桌面版(推荐,约 1.5GB)
sudo apt install -y ros-humble-desktop
# 或者安装基础版(约 500MB)
# sudo apt install -y ros-humble-ros-base
注意:安装过程可能比较慢,取决于网络。如果中途断网,重新执行 sudo apt install 会继续下载,不会从头开始。
3.2.3 安装依赖工具
除了 ROS2 核心,还需要一些辅助工具。我个人习惯一次性装好,省得后面缺这缺那。
# 安装 rosdep(用于管理依赖)
sudo apt install -y python3-rosdep
# 初始化 rosdep
sudo rosdep init
rosdep update
# 安装 colcon 构建工具(后面会详细讲)
sudo apt install -y python3-colcon-common-extensions
3.3 colcon 构建工具安装与配置
colcon 是 ROS2 的官方构建工具,替代了 ROS1 时代的 catkin。说白了,它的作用就是帮你编译、链接、安装 ROS2 包。
3.3.1 colcon 的核心概念
- 工作空间(workspace):一个文件夹,包含
src、build、install、log四个子目录。 - src:存放你的 ROS2 包源码。
- build:编译中间文件,一般不用手动管。
- install:编译后的安装文件,环境变量会指向这里。
- log:编译日志,排查错误时很有用。
3.3.2 创建第一个工作空间
来,我们动手创建一个工作空间,验证 colcon 是否正常工作。
# 创建工作空间目录
mkdir -p ~/ros2_ws/src
# 进入工作空间
cd ~/ros2_ws
# 编译空工作空间(测试 colcon)
colcon build
如果一切正常,你会看到 build、install、log 三个文件夹被创建。我在项目中遇到过一个问题:编译时提示 colcon: command not found,多半是没安装 python3-colcon-common-extensions。
避坑指南:我曾经在 colcon build 时加了 --symlink-install 参数,结果修改 Python 文件后忘了重新编译,导致调试时一直用旧代码。建议初学者先不加这个参数,等熟悉了再用。
3.4 环境变量配置与测试
环境变量是 ROS2 的「导航系统」。没有它,系统就找不到 ROS2 的命令和库。你想想看,如果 ros2 run 都找不到,那还怎么玩?
3.4.1 配置 ROS2 环境变量
每次打开终端,都需要执行 source 命令来加载 ROS2 环境。我建议把它写到 ~/.bashrc 里,这样每次打开终端自动加载。
# 编辑 .bashrc 文件
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
# 立即生效
source ~/.bashrc
3.4.2 配置工作空间环境变量
如果你有自己的工作空间,还需要把工作空间的 install/setup.bash 也加进去。注意顺序:先 source ROS2 系统环境,再 source 工作空间环境。
# 追加工作空间环境(假设工作空间在 ~/ros2_ws)
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
# 重新加载
source ~/.bashrc
注意:如果你有多个工作空间,后 source 的会覆盖前一个的同名包。我建议只 source 当前项目的工作空间,避免混乱。
3.4.3 环境变量测试
配置完了,怎么知道对不对?来,跑几个命令验证一下。
# 检查 ROS2 版本
ros2 --version
# 检查环境变量是否生效
echo $ROS_DISTRO
# 运行一个简单的示例(小乌龟)
ros2 run turtlesim turtlesim_node
如果看到小乌龟窗口弹出来,恭喜你,环境搭建成功了!
验证清单:
ros2 --version输出ros2 humbleecho $ROS_DISTRO输出humbleros2 run turtlesim turtlesim_node能启动图形窗口
3.5 本章知识体系
下面这张图总结了本章的核心流程。你可以把它当作一个「环境搭建路线图」,每一步都对应一个关键操作。
3.6 常见问题与解决
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
ros2: command not found |
环境变量未 source | 执行 source /opt/ros/humble/setup.bash |
colcon: command not found |
colcon 未安装 | sudo apt install python3-colcon-common-extensions |
rosdep: command not found |
rosdep 未安装 | sudo apt install python3-rosdep |
| 编译时找不到依赖包 | rosdep 未初始化 | sudo rosdep init && rosdep update |
我的建议:遇到问题先看错误日志。colcon 的日志在 log/ 目录下,里面会详细记录每个包的编译输出。我曾经靠日志里的一个 undefined reference 定位到是链接库顺序问题,省了大半天排查时间。
好了,环境搭建到这里就完成了。你现在应该有一个可以正常编译和运行 ROS2 程序的系统。下一章,我们会开始写第一个 ROS2 节点,真正进入编程环节。