2. 开发环境搭建:Ubuntu 22.04安装、ROS2 Humble安装、工作空间创建、colcon构建工具使用、传感器驱动依赖安装

说实话,做机器人开发这么多年,我见过太多人在环境搭建这一步就卡住了。不是装错版本,就是依赖冲突,折腾一整天连个节点都跑不起来。这一章,咱们就把这些坑一个个填平。

核心思路:先装系统 → 再装ROS2 → 创建工作空间 → 配置构建工具 → 最后搞定传感器驱动依赖。按这个顺序来,基本不会出问题。

2.1 Ubuntu 22.04 安装要点

ROS2 Humble 官方推荐 Ubuntu 22.04 (Jammy)。我个人习惯用桌面版,调试传感器时可视化方便很多。

安装时注意这几点:

  • 磁盘分区:建议给根目录至少 50GB,我遇到过学生只分 20GB,装完 ROS2 和几个传感器驱动就满了。
  • 网络配置:安装时连上网络,让系统自动更新驱动。不然后面装 ROS2 时缺依赖会很头疼。
  • 换源:装完系统第一件事,换国内源。我用的是清华源,速度稳定。

小技巧:装系统时选「最小安装」,省掉那些用不上的办公软件。我每次装新机器都这么干,干净利落。

2.2 ROS2 Humble 安装

ROS2 的版本和 Ubuntu 版本是绑定的。Humble 对应 22.04,别搞混了。我曾经见过有人用 Ubuntu 20.04 硬装 Humble,结果折腾了两天。

安装步骤:

  1. 设置语言环境(确保支持 UTF-8)
  2. 添加 ROS2 软件源
  3. 安装 ROS2 Humble 桌面版
  4. 安装编译工具和依赖
# 设置语言环境
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

# 添加 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

# 安装 ROS2 Humble 桌面版
sudo apt update
sudo apt install ros-humble-desktop

# 安装编译工具
sudo apt install python3-colcon-common-extensions

注意:安装过程可能持续 10-20 分钟,取决于网速。别中途中断,否则依赖会乱掉。我建议用有线网络,WiFi 有时候会断。

2.3 工作空间创建

工作空间说白了就是你的项目文件夹。ROS2 里叫 colcon workspace,所有代码都放在这里面。

# 创建工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

# 编译空工作空间(测试环境是否正常)
colcon build

# 设置环境变量
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

嗯,这里要注意:colcon build 第一次运行时会创建 build、install、log 三个文件夹。如果你看到这三个文件夹,说明环境基本没问题了。

验证方法:打开终端,输入 ros2 run demo_nodes_cpp talker,如果能看到节点在发布消息,恭喜你,ROS2 装好了。

2.4 colcon 构建工具使用

colcon 是 ROS2 的官方构建工具,说白了就是帮你把 C++ 和 Python 代码编译成可执行文件。我刚开始用的时候也觉得复杂,其实常用的就几个命令。

命令 作用 使用场景
colcon build 编译整个工作空间 第一次编译或修改了多个包
colcon build --packages-select 包名 只编译指定包 只修改了一个包时,省时间
colcon build --symlink-install 符号链接模式 Python 包开发时,改代码不用重新编译
colcon clean 清理编译产物 遇到奇怪的编译错误时

我的习惯:开发 Python 节点时一定加 --symlink-install,改完代码直接运行,不用等编译。C++ 项目就用 --packages-select,只编译改动的包,省时间。

2.5 传感器驱动依赖安装

不同的传感器需要不同的驱动库。我整理了一份常用传感器的依赖清单,都是我在项目中踩过坑后总结的。

# 摄像头(USB摄像头、Realsense等)
sudo apt install ros-humble-camera-calibration
sudo apt install ros-humble-image-transport
sudo apt install ros-humble-image-pipeline

# 激光雷达(RPLIDAR、YDLIDAR等)
sudo apt install ros-humble-serial-driver
sudo apt install ros-humble-laser-geometry

# IMU(MPU6050、BNO055等)
sudo apt install ros-humble-imu-tools
sudo apt install ros-humble-robot-localization

# 通用串口设备
sudo apt install ros-humble-serial-driver
sudo apt install python3-serial

避坑指南:我曾经在安装 Realsense 驱动时,直接用了 Ubuntu 源里的版本,结果死活识别不到摄像头。后来发现必须装 Intel 官方的 SDK。所以,摄像头和雷达这类复杂传感器,优先看官方文档,ROS 源里的版本可能不是最新的。

2.6 环境验证与常见问题

装完所有东西后,我建议做一次完整的验证。别等到写代码时才发现环境有问题。

验证清单:

  • ROS2 环境变量是否生效:echo $ROS_DISTRO 应该输出 humble
  • colcon 是否可用:colcon --version
  • Python 依赖是否齐全:python3 -c "import serial" 不报错
  • 工作空间能否编译:在 ~/ros2_ws 下运行 colcon build

常见问题:

  • 找不到包:多半是 setup.bash 没 source。检查 ~/.bashrc 里有没有那行 source 命令。
  • 编译报错:先试试 colcon clean 再重新编译。我遇到过好几次是缓存问题。
  • 权限问题:USB 设备访问不了?把用户加到 dialout 组:sudo usermod -a -G dialout $USER
ROS2 传感器开发环境搭建流程 Ubuntu 22.04 系统安装与配置 ROS2 Humble 桌面版安装 工作空间创建 mkdir & colcon build colcon 构建工具 编译与调试 传感器驱动依赖 摄像头/雷达/IMU 环境验证 ros2 run 测试 关键依赖包速查表 • 摄像头:ros-humble-camera-calibration, image-transport • 激光雷达:ros-humble-serial-driver, laser-geometry • IMU:ros-humble-imu-tools, robot-localization • 通用串口:ros-humble-serial-driver, python3-serial

这张图把整个搭建流程串起来了。你按这个顺序走,每一步验证通过再往下,基本不会出大问题。我每次搭新环境都是这个流程,稳得很。