ROS2机械臂视觉抓取系统开发 - 第2节

2. ROS2开发环境搭建

2. ROS2 开发环境搭建:Ubuntu系统安装、ROS2 Humble安装、工作空间创建、依赖管理

说实话,很多初学者一上来就急着写代码,结果环境没搭好,后面全是坑。我见过太多人在编译时卡住,最后发现是系统版本不对,或者依赖没装全。这一章,咱们就把地基打牢。

2.1 Ubuntu 22.04 系统安装

ROS2 Humble 官方推荐的是 Ubuntu 22.04(Jammy)。为什么是 22.04?因为它的 LTS 支持周期长,而且 ROS2 Humble 的二进制包就是针对这个版本编译的。你换个 20.04 或者 24.04,虽然也能装,但可能会遇到一些奇奇怪怪的依赖问题。

核心要点:ROS2 Humble 只官方支持 Ubuntu 22.04 (Jammy)。别用 20.04 或 24.04,除非你愿意自己编译所有源码。

安装方式有两种:

  • 双系统安装:性能最好,适合长期开发。我个人的习惯是给 Ubuntu 至少分 100GB 空间,根目录 50GB,home 目录 50GB。
  • 虚拟机安装:适合尝鲜或硬件受限。用 VMware 或 VirtualBox 都行,记得给虚拟机分配至少 4GB 内存和 2 个 CPU 核心。

我的小技巧:安装时选择「最小安装」,省掉那些用不上的办公软件。装完后第一件事就是换国内源,比如清华源或阿里源,不然 apt update 能等到你怀疑人生。

2.2 ROS2 Humble 安装

系统装好了,接下来就是装 ROS2。这里我建议用 Debian 包安装,最省事。源码编译虽然能让你更了解内部机制,但第一次接触还是别折腾自己。

安装步骤其实就几条命令,但每一步都有讲究。咱们一步步来:

2.2.1 设置 locale

ROS2 需要 UTF-8 支持。虽然大部分系统默认就是,但保不准有例外。我记得有一次帮同事排查问题,搞了半天发现是 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.2.2 添加 ROS2 源

官方源在国外,下载慢。我建议直接用国内镜像源,比如清华源。你想想看,每次 apt update 等几分钟,多耽误事。

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] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update

2.2.3 安装 ROS2 Humble

这里有两个选择:

  • ros-humble-desktop:包含 GUI 工具,比如 RViz、Gazebo。推荐。
  • ros-humble-ros-base:仅命令行,适合服务器或嵌入式。
sudo apt install ros-humble-desktop

安装过程大概 5-10 分钟,取决于你的网速。装完后记得验证一下:

source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

如果看到节点在发布消息,那就成了。

注意:每次打开新终端都要 source 这个 setup.bash。我建议直接写到 ~/.bashrc 里,省得每次都手动敲。

2.3 工作空间创建

工作空间(Workspace)是 ROS2 开发的基本单位。说白了,就是一个文件夹,里面放着你的代码、依赖和编译产物。ROS2 用的是 colcon 来编译,取代了 ROS1 的 catkin。

创建一个工作空间很简单:

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

第一次编译会生成三个文件夹:

  • build:编译中间文件,不用管。
  • install:编译产物,相当于安装目录。
  • log:编译日志,出问题时查这里。

我的习惯:每次编译前先 colcon build --symlink-install。这个参数会创建符号链接,这样你修改 Python 脚本后不用重新编译,直接运行就能生效。对于 Python 节点来说,能省不少时间。

编译完成后,记得 source 一下:

source ~/ros2_ws/install/setup.bash

2.4 依赖管理

依赖管理是 ROS2 开发里最容易出问题的地方。你写了一个包,里面用到了 OpenCV、Eigen 或者别的库,如果没装全,编译就会报错。

ROS2 提供了 rosdep 工具来自动处理依赖。用法如下:

sudo apt install python3-rosdep
sudo rosdep init
rosdep update
cd ~/ros2_ws
rosdep install -i --from-path src --rosdistro humble -y

这条命令会扫描 src 目录下所有包的 package.xml,然后自动安装缺失的依赖。

避坑指南:我曾经在一个项目里忘了跑 rosdep install,结果编译时报了一堆找不到头文件的错误。排查了半天,最后发现就是少装了一个 libboost-dev。从那以后,我每次新建工作空间,第一件事就是跑 rosdep install。

除了 rosdep,还有几个常用的依赖管理命令:

命令 作用
apt search ros-humble-* 搜索可用的 ROS2 包
apt depends ros-humble-rclcpp 查看某个包的依赖关系
colcon list 列出工作空间中的所有包

2.5 本章知识体系

下面这张图总结了整个开发环境的搭建流程。你可以把它当作一个检查清单,每完成一步就打个勾。

ROS2 开发环境搭建流程 步骤1:系统安装 Ubuntu 22.04 LTS 步骤2:ROS2安装 Humble Hawksbill 步骤3:工作空间 colcon build 步骤4:依赖管理 rosdep install 步骤5:验证测试 ros2 run demo_nodes_cpp talker 步骤6:环境配置 source ~/.bashrc 每个步骤完成后,建议验证一下再进入下一步 常见问题 • 安装慢 → 换国内镜像源(清华、阿里) • 编译报错 → 先跑 rosdep install 检查依赖 • 找不到包 → 确认是否 source 了 setup.bash

嗯,到这里,你的 ROS2 开发环境就搭好了。别急着往下走,先跑几个 demo 节点试试,确保通信正常。下一章咱们就开始写第一个 ROS2 节点,到时候这些基础配置都会用上。