1. 课程导入:ROS2简介、学习目标、课程大纲、环境准备
1.1 ROS2是什么?为什么机器人开发需要它?
ROS2(Robot Operating System 2)是一套面向机器人开发的开源中间件框架。它并非传统意义上的操作系统,而是运行在 Linux、Windows 或 macOS 之上,为开发者提供进程间通信、硬件抽象、设备驱动、功能包管理、可视化工具等一整套服务。如果把机器人比作人体,ROS2 就像神经系统——它负责把“大脑”(算法节点)、“眼睛”(激光雷达)、“手脚”(电机驱动)连接起来,让各部分协同工作。
与 ROS1 相比,ROS2 引入了 DDS(Data Distribution Service) 作为底层通信中间件,解决了 ROS1 在实时性、多机通信、安全性方面的不足。ROS2 支持节点动态发现、QoS(服务质量)策略控制、进程内/进程间通信无缝切换,并且天然适配现代机器人系统中常见的多机协作场景。
核心要点:ROS2 的通信模型基于“节点(Node)”和“话题(Topic)/服务(Service)/动作(Action)”三大抽象。节点是独立运行的计算单元,话题用于异步数据流传输,服务用于同步请求-响应,动作用于长时间任务的目标-反馈-结果模式。
1.2 学习目标:学完本章你能做什么?
本课程聚焦于 ROS2 的常用命令行工具,目标是让你在真实机器人或仿真环境中,能够熟练地通过终端命令完成以下任务:
- 节点管理:使用
ros2 node list查看当前运行的节点,用ros2 node info查看节点详情。 - 话题操作:用
ros2 topic list列出话题,用ros2 topic echo实时查看消息流,用ros2 topic pub手动发布消息。 - 服务调用:通过
ros2 service list和ros2 service call实现请求-响应式通信。 - 参数管理:使用
ros2 param get/set在运行时动态调整节点参数。 - 启动与调试:用
ros2 launch一键启动多节点系统,用ros2 doctor检查环境健康状态。
学习建议:每学一个命令,立刻在终端中实际操作一遍。ROS2 命令的规律性很强——大多数命令都遵循
ros2 <功能模块> <动词> [参数] 的结构,掌握规律后可以举一反三。
1.3 课程大纲:30章内容全景图
本课程共 30 章,从基础操作到高级调试,循序渐进地覆盖 ROS2 命令行的核心场景。下表列出了主要章节模块及其对应的命令主题:
| 模块 | 章节范围 | 核心命令主题 |
|---|---|---|
| 基础入门 | 第1-5章 | 环境准备、节点管理、话题操作、工作空间配置 |
| 通信进阶 | 第6-12章 | 服务调用、参数操作、动作通信、QoS策略 |
| 工程实践 | 第13-20章 | 功能包创建、launch文件、tf坐标变换、bag录制 |
| 调试与优化 | 第21-26章 | 日志分析、rqt工具、性能监控、多机通信 |
| 综合实战 | 第27-30章 | 仿真环境、机器人导航、视觉处理、综合项目 |
1.4 环境准备:从零搭建ROS2开发环境
在开始命令行学习之前,需要准备一个可用的 ROS2 环境。推荐使用 Ubuntu 22.04 + ROS2 Humble(LTS 版本,支持到 2027 年)。以下是标准安装流程:
# 1. 设置软件源
sudo 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
# 2. 添加ROS2软件源
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
# 3. 安装ROS2 Humble桌面版(包含可视化工具)
sudo apt update
sudo apt install ros-humble-desktop python3-argcomplete -y
# 4. 配置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 5. 验证安装
ros2 --version
安装完成后,建议安装 colcon 构建工具和 turtlesim 仿真包(用于后续章节的实操练习):
sudo apt install python3-colcon-common-extensions ros-humble-turtlesim -y
常见坑提醒:如果终端提示
command not found: ros2,通常是因为没有执行 source /opt/ros/humble/setup.bash。请检查 ~/.bashrc 中是否已添加该行,并重新打开终端。另外,不要同时 source ROS1 和 ROS2 的环境,否则会产生冲突。
1.5 环境验证与常见误区
完成安装后,通过以下三步快速验证环境是否正常:
- 版本检查:运行
ros2 --version,应输出类似ros2 0.xx.x的版本号。 - 节点列表:运行
ros2 node list,此时应无输出(因为没有启动任何节点),但不会报错。 - 小乌龟测试:在终端 A 运行
ros2 run turtlesim turtlesim_node,终端 B 运行ros2 run turtlesim turtle_teleop_key,如果出现小乌龟窗口且能用方向键控制,说明环境完全正常。
误区复盘:初学者常犯的错误包括——(1)忘记 source 环境变量导致命令找不到;(2)在错误的 Python 虚拟环境中运行 ros2 命令;(3)同时安装 ROS1 和 ROS2 导致环境变量互相覆盖。建议使用
echo $ROS_DISTRO 检查当前激活的 ROS 发行版,确保输出为 humble。