第1章:ROS开发环境搭建
大家好,我是你们这门课的老朋友。做了这么多年机器人,我踩过的坑比你们走过的路还多(笑)。今天咱们就从最基础的开始——把ROS的开发环境搭起来。别小看这一步,我见过太多人卡在这里,最后连个节点都跑不起来。
1.1 Ubuntu系统安装
ROS官方支持最好的就是Ubuntu。说白了,你用Windows或者Mac也能折腾,但相信我,那是在给自己找麻烦。
版本选择:我个人习惯用LTS(长期支持)版本。目前推荐Ubuntu 20.04或22.04。为什么?因为ROS 2的Humble Hawksbill(22.04)和ROS Noetic(20.04)都对应这些版本。
安装方式:
- 双系统:性能最好,适合长期开发。我在项目中一直这么用。
- 虚拟机:适合尝鲜,但3D加速和实时性差一些。
- WSL2:Windows用户的好选择,但Gazebo跑起来有点吃力。
嗯,这里要注意:如果你打算用Gazebo做仿真,千万别用虚拟机。我曾经试过,卡得连个方块都拖不动。
1.2 ROS发行版选择
ROS的发行版就像手机系统,每年更新一次。但咱们搞工程,求的是稳定。
| 发行版 | Ubuntu版本 | 支持状态 | 我的建议 |
|---|---|---|---|
| ROS Noetic | 20.04 | 维护中(2025年结束) | 老项目用,新项目别碰 |
| ROS 2 Foxy | 20.04 | 已停止维护 | 别用了 |
| ROS 2 Humble | 22.04 | 长期支持 | 强烈推荐 |
| ROS 2 Iron | 22.04 | 最新版 | 尝鲜可以 |
你想想看,选ROS 2 Humble就像选了一辆皮实耐造的车。我在一个物流机器人项目里用了两年,没出过兼容性问题。
1.3 ROS安装步骤
好,咱们直接上手。以Ubuntu 22.04 + ROS 2 Humble为例。
第一步:设置软件源
sudo apt update
sudo apt install curl gnupg lsb-release
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 $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
第二步:安装ROS 2
sudo apt update
sudo apt install ros-humble-desktop
这里有个坑:ros-humble-desktop 包含了Gazebo、RViz等常用工具,大概2-3GB。如果你硬盘紧张,可以装 ros-humble-ros-base,但后面还得补装。
第三步:安装依赖工具
sudo apt install python3-colcon-common-extensions
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
1.4 ROS环境配置
装完只是第一步。你得让系统知道「ROS在哪」。
配置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
为什么这么做?因为每次打开终端,系统都要加载ROS的环境变量。不配置的话,你每次都得手动source一遍。我刚开始学的时候忘了这步,结果每次都要敲一遍,烦死了。
验证安装
ros2 run demo_nodes_cpp talker
如果看到类似 [INFO] [xxx] [talker]: Publishing: 'Hello World: 1' 的输出,恭喜你,装好了!
~/.bashrc 里加一行 export ROS_DOMAIN_ID=30。为什么?因为同一个网络里多个ROS系统会互相干扰。设个ID,各玩各的。
1.5 ROS工作空间创建
工作空间就是你的代码仓库。所有ROS项目都放在这里。
创建结构
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
运行完 colcon build 后,你会看到三个新文件夹:
- build:编译中间文件,别手贱去删
- install:编译好的可执行文件
- log:编译日志,出错了来这里查
配置工作空间
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
嗯,这里要注意:每次你新增了功能包,都要重新 colcon build 一次。我有个同事忘了这步,改了半天代码发现没生效,急得满头大汗。
避坑指南:我曾经在 colcon build 时遇到 CMake Error,原因是工作空间路径里有中文。ROS对中文路径支持不好,建议全用英文。
测试工作空间
cd ~/ros2_ws
colcon build
source install/setup.bash
ros2 pkg list | grep your_package
如果能看到你的包名,说明一切正常。
好了,环境搭好了。下一章咱们就开始写第一个ROS节点。说实话,每次搭环境我都觉得烦,但这是必经之路。就像盖房子,地基打不好,后面全是麻烦。
有问题随时找我。咱们下章见!