2、ROS2环境搭建:ROS2的安装、工作空间创建、依赖管理与编译测试

好,咱们正式开始动手。这一章,说白了就是给你的机器人开发环境“铺路”。路铺不好,后面跑起来全是坑。我见过太多新手卡在环境上,一卡就是半天,其实真没必要。

ROS2的安装,我推荐用二进制包的方式。别自己从源码编译,除非你有特殊需求。二进制安装快、稳、省心。我个人习惯用Humble Hawksbill版本,长期支持,社区活跃,坑少。

2.1 安装ROS2

先确认你的Ubuntu版本。ROS2 Humble对应的是Ubuntu 22.04。如果你用的是20.04,那就装Galactic或者Foxy。版本不对应,装不上,别问我怎么知道的——我当年就吃过这个亏。

安装步骤其实就几条命令,我帮你拆开讲:

  1. 设置语言环境:确保系统支持UTF-8。
  2. 添加ROS2软件源:把官方源加到apt列表里。
  3. 安装ROS2基础包:我建议装ros-humble-desktop,包含了常用工具和模拟器。
  4. 安装编译工具:colcon是ROS2的标配,后面编译全靠它。

核心命令示例:

sudo apt update
sudo apt install ros-humble-desktop
sudo apt install python3-colcon-common-extensions

小技巧:安装完成后,记得把ROS2的环境变量加到.bashrc里。这样每次打开终端就不用手动source了。命令是:echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

2.2 工作空间创建

工作空间,就是你写代码、放包的地方。ROS2里叫colcon workspace。结构很简单,就几个文件夹:

  • src:放你的功能包源码
  • build:编译中间文件,不用管
  • install:编译后的可执行文件和库
  • log:编译日志

创建命令就三行:

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

嗯,这里要注意。第一次编译可能会报错,说缺依赖。别慌,这是正常的。ROS2的依赖管理机制比较严格,缺什么它会告诉你。

避坑指南:我曾经在创建工作空间时,把src目录名字写成了source,结果编译一直找不到包。折腾了半小时才发现。所以,目录名一定要严格按规范来。

2.3 依赖管理

ROS2的依赖管理,靠的是package.xml和rosdep。每个功能包都有一个package.xml,里面写明了这个包依赖哪些其他包。

你想想看,如果你写了一个传感器驱动包,它依赖rclcpp和sensor_msgs。那你在package.xml里就要声明:

<depend>rclcpp</depend>
<depend>sensor_msgs</depend>

然后运行rosdep install,它会自动帮你把依赖装好。我习惯在每次编译前都跑一遍:

rosdep install --from-paths src --ignore-src -r -y

个人经验:我在做多传感器融合项目时,依赖关系特别复杂。一个包依赖五六个其他包,层层嵌套。这时候rosdep就显神威了。手动装?那得装到天荒地老。

2.4 编译测试

编译用colcon build。但别急着直接敲,有几个参数你得知道:

参数 作用 我什么时候用
--symlink-install 使用符号链接,修改代码后不用重新编译 开发调试阶段,省时间
--packages-select 只编译指定包 只改了一个包,不想全量编译
--cmake-args -DCMAKE_BUILD_TYPE=Release Release模式编译,性能更好 准备部署到机器人上时

举个例子,我只想编译sensor_driver这个包:

colcon build --packages-select sensor_driver --symlink-install

编译完成后,别忘了source一下:

source install/setup.bash

然后你就可以运行你的节点了。比如:

ros2 run sensor_driver sensor_node

测试小技巧:我每次编译完,都会先跑一个ros2 topic list看看节点有没有正常发布话题。如果话题列表是空的,说明节点没跑起来,或者名字写错了。这招排查问题特别快。

知识体系总览

下面这张图,帮你把本章的核心逻辑串起来。从安装到编译,每一步都是环环相扣的:

ROS2环境搭建核心流程 1. 安装ROS2 二进制包安装 2. 创建工作空间 mkdir -p ~/ros2_ws/src 3. 依赖管理 rosdep install 4. 编译 colcon build 关键点说明: 安装:版本必须与Ubuntu对应,Humble → 22.04 工作空间:src/build/install/log 四个目录缺一不可 依赖管理:package.xml + rosdep 自动解决依赖链 编译测试:--symlink-install 省时间,--packages-select 省空间

说白了,环境搭建就这四步。每一步都不难,但顺序不能乱。我见过有人先建工作空间再装ROS2,结果编译时找不到头文件。嗯,这就是顺序搞反了。

最后提醒一句:每次打开新终端,记得先source一下环境。如果你忘了,节点会报找不到包的错误。别问我怎么知道的——我调试时至少被坑过十次。

好,环境搭好了,下一章咱们就开始写真正的传感器驱动代码了。

可可精品资料库