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,结果折腾了两天。
安装步骤:
- 设置语言环境(确保支持 UTF-8)
- 添加 ROS2 软件源
- 安装 ROS2 Humble 桌面版
- 安装编译工具和依赖
# 设置语言环境
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
这张图把整个搭建流程串起来了。你按这个顺序走,每一步验证通过再往下,基本不会出大问题。我每次搭新环境都是这个流程,稳得很。