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 本章知识体系
下面这张图帮你理清整个环境搭建的逻辑。你想想看,从操作系统到编译工具,每一层都是环环相扣的。
2.7 验证环境
装完了,怎么知道能不能用?我一般跑两个小测试:
- 测试 ROS2 核心:
ros2 run demo_nodes_cpp talker,如果能看到不断输出的消息,说明安装成功。 - 测试编译:在
~/ros2_ws下新建一个空包,colcon build不报错就行。
我的习惯:每次搭建完环境,我都会写一个简单的发布-订阅程序跑一遍。不是为了炫技,而是确认整个链路都通了。后面调试机械臂时,你会感谢这个习惯的。
好了,环境搭好了,接下来就可以真正开始写代码了。记住,环境搭建是基础,基础不牢,地动山摇。我当年第一次搭环境花了整整两天,现在回想起来,那些坑踩得值。