2. 开发环境搭建:Ubuntu 22.04 + ROS2 Humble

说实话,搞机器人开发,环境搭建往往是第一道坎。我见过太多人卡在这一步,还没开始写代码就先放弃了。别急,咱们一步步来。

2.1 为什么选 Ubuntu 22.04 + ROS2 Humble?

ROS2 的版本和 Ubuntu 版本是绑定的。Humble 是 2022 年的 LTS 版本,支持到 2027 年。我个人习惯用 LTS,稳定,省心。

ROS2 版本 对应 Ubuntu 支持周期 推荐场景
Humble Hawksbill 22.04 (Jammy) 2027 教学、工业、长期项目
Iron Irwini 22.04 / 24.04 2024 尝鲜、新特性测试
Rolling 滚动更新 无 开发版,不推荐新手
我的建议:如果你手头是 Ubuntu 22.04,直接上 Humble。别折腾其他版本,省下的时间多写几行代码不香吗?

2.2 安装 Ubuntu 22.04

这一步我假设你已经装好了。如果还没装,记住几个要点:

  • 磁盘分区:至少给根目录 50GB,/home 留 30GB 以上。我遇到过有人只分了 20GB,装完 ROS2 就满了。
  • 语言选英文:中文虽然友好,但终端报错时英文更容易搜到解决方案。
  • 网络:确保能访问外网,后面要下载很多包。
注意:虚拟机也能用,但 USB 透传和实时性会打折扣。做机械臂调试,我强烈建议双系统或直接装实体机。

2.3 安装 ROS2 Humble

官方文档其实写得很清楚,但我还是踩过坑。这里给你一个精简版,照着敲就行。

2.3.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.3.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

2.3.3 安装桌面版(推荐)

sudo apt update
sudo apt install ros-humble-desktop

这个包包含了 ROS2 核心、可视化工具、常用库。大概 2-3GB,下载时间取决于你的网速。我当年在学校实验室装,用了整整一节课。

2.3.4 配置环境变量

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

验证安装:打开终端,输入 ros2 --version,如果看到类似 ros-humble 的输出,说明装好了。

2.4 创建工作空间

工作空间就是你的项目文件夹。ROS2 里叫 colcon workspace。我习惯在 ~/ros2_ws 下干活。

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

第一次 build 会生成 build、install、log 三个文件夹。别慌,这是正常的。

  • src:放你的代码包
  • build:编译中间文件
  • install:编译产物,相当于安装目录
  • log:编译日志,出错了来这里查
小技巧:每次打开新终端,记得 source ~/ros2_ws/install/setup.bash,否则系统找不到你写的包。我一开始老忘,后来干脆写进了 .bashrc。

2.5 编译工具 colcon

colcon 是 ROS2 的官方编译工具。说白了,它帮你把 src 里的代码编译成可执行文件。

2.5.1 常用命令

命令 作用 我常用的场景
colcon build 编译所有包 第一次编译,或改了多个包
colcon build --packages-select 包名 只编译指定包 只改了一个包时,省时间
colcon build --symlink-install 使用符号链接 开发阶段,改 Python 脚本不用重新编译
colcon test 运行测试 提交代码前跑一遍,心里踏实

2.5.2 避坑指南

我曾经在编译时遇到 CMake Error,查了半天发现是依赖没装全。后来我养成了一个习惯:

rosdep install -i --from-path src --rosdistro humble -y

这条命令会自动安装所有缺失的依赖。嗯,这里要注意,rosdep 需要先初始化:

sudo rosdep init
rosdep update
警告:别用 sudo colcon build!我见过有人这么干,结果生成的文件夹权限全乱了,后面各种报错。普通用户权限就够了。

2.6 本章知识体系

下面这张图帮你理清整个环境搭建的逻辑。你想想看,从操作系统到编译工具,每一层都是环环相扣的。

开发环境搭建知识体系 Ubuntu 22.04 LTS ROS2 Humble colcon 工作空间 (ros2_ws) colcon build 每一层都依赖上一层,缺一不可。建议按顺序搭建。

2.7 验证环境

装完了,怎么知道能不能用?我一般跑两个小测试:

  1. 测试 ROS2 核心:ros2 run demo_nodes_cpp talker,如果能看到不断输出的消息,说明安装成功。
  2. 测试编译:在 ~/ros2_ws 下新建一个空包,colcon build 不报错就行。
我的习惯:每次搭建完环境,我都会写一个简单的发布-订阅程序跑一遍。不是为了炫技,而是确认整个链路都通了。后面调试机械臂时,你会感谢这个习惯的。

好了,环境搭好了,接下来就可以真正开始写代码了。记住,环境搭建是基础,基础不牢,地动山摇。我当年第一次搭环境花了整整两天,现在回想起来,那些坑踩得值。