3、ROS2开发环境搭建:Ubuntu系统安装、ROS2 Humble安装、工作空间配置
说实话,环境搭建这件事,看着简单,但坑是真不少。我见过太多同学卡在这一步,折腾一整天装不上,最后心态崩了。别急,咱们一步步来,我把自己踩过的坑都告诉你。
3.1 Ubuntu系统安装:选对版本很重要
ROS2 Humble 官方推荐的是 Ubuntu 22.04 LTS。为什么是它?因为 Humble 是 2022 年发布的长期支持版本,和 Ubuntu 22.04 的软件源、内核版本完全匹配。你想想看,要是装了个 Ubuntu 20.04,很多依赖包版本对不上,编译时各种报错,那叫一个头疼。
系统要求速查表
| 项目 | 推荐配置 | 最低配置 |
|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS | Ubuntu 20.04 LTS |
| CPU | 4核以上 | 2核 |
| 内存 | 8GB | 4GB |
| 硬盘 | 64GB SSD | 32GB |
我个人习惯用 双系统 或者 虚拟机。如果你只是学习,虚拟机(VMware 或 VirtualBox)完全够用。但如果你要做实车调试,我建议直接装双系统——虚拟机在访问硬件时会有延迟,尤其是串口和 CAN 总线,我曾经因为这个排查了整整两天。
安装小技巧:制作启动盘时用 Rufus(Windows)或 balenaEtcher(macOS),写入模式选「DD 模式」。我遇到过用「ISO 模式」写入后,安装界面卡在 grub 引导的坑。
3.2 ROS2 Humble 安装:两种方式,我推荐第二种
ROS2 Humble 的安装方式主要有两种:apt 安装 和 源码编译。说白了,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
# 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 $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 5. 安装 ROS2 Humble
sudo apt update
sudo apt install ros-humble-desktop
# 6. 安装开发工具
sudo apt install ros-dev-tools
注意:安装过程中如果提示「无法定位软件包」,八成是源没加对。检查一下 /etc/apt/sources.list.d/ros2.list 文件是否存在,内容是否正确。我曾经因为手抖把「humble」拼成了「humbe」,折腾了半小时才发现。
方式二:源码编译(适合需要定制的人)
如果你像我一样,需要修改 ROS2 核心代码或者调试底层通信,那就得走源码编译。不过说实话,第一次编译要 2-3 小时,建议你泡杯咖啡,或者直接去睡一觉。
# 1. 安装依赖
sudo apt install python3-pip
pip3 install -U colcon-common-extensions vcstool
# 2. 创建工作空间
mkdir -p ~/ros2_humble/src
cd ~/ros2_humble
# 3. 下载源码
wget https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos
vcs import src < ros2.repos
# 4. 编译
colcon build --symlink-install
避坑指南:编译时如果内存不够(低于 8GB),可以加参数 --parallel-workers 2 限制并行任务数。我曾经在 4GB 的虚拟机上编译,直接卡死,强制关机后文件系统都坏了。
3.3 工作空间配置:让系统认识 ROS2
装完 ROS2 之后,最重要的一步就是配置环境变量。说白了,就是告诉系统:「嘿,ROS2 装在这里,你以后找它的时候别迷路。」
配置 .bashrc 文件
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
嗯,这里要注意:如果你用的是 zsh(现在很多人用 Oh My Zsh),记得把 .bashrc 换成 .zshrc。我有个同事就是没注意这个,每次打开终端都要手动 source,烦了整整一周。
验证安装是否成功
# 检查 ROS2 版本
ros2 --version
# 运行一个简单的测试
ros2 run demo_nodes_cpp talker
如果能看到「Hello World: 1, 2, 3...」这样的输出,恭喜你,环境搭好了!
3.4 创建你的第一个工作空间
工作空间(workspace)是 ROS2 开发的核心。我习惯把它想象成一个「项目文件夹」,里面放着你的代码、依赖和编译产物。
# 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
# 编译空工作空间(测试环境)
colcon build
# 配置环境变量
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
工作空间目录结构
| 目录 | 作用 |
|---|---|
| src | 存放源代码(你的包和第三方包) |
| build | 编译中间文件(可以删,但别手动改) |
| install | 编译产物(可执行文件、库、配置文件) |
| log | 编译日志(排查错误时很有用) |
我个人习惯在 src 目录下再建一个 my_packages 文件夹,专门放自己写的代码。这样和第三方包分开,管理起来清爽很多。
3.5 核心知识体系一览
下面这张图是我自己总结的,把整个环境搭建的脉络理清楚了。你跟着这个流程走,基本不会迷路。
我的经验:环境搭建这件事,一次成功是运气,两次成功是常态。如果你遇到问题,别慌,先看错误日志(log 目录下),然后去 ROS2 官方论坛或者 GitHub Issues 搜一下。我 90% 的问题都是这么解决的。
好了,环境搭好了,接下来就可以真正开始写代码了。记住,环境是基础,基础打牢了,后面才能跑得快。