这是一份《ROS2理论与实践——核心篇》的学习导航。课程以案例为主线,围绕 ROS2 的通信机制和常用开发工具展开,适合在进入机器人导航、视觉、机械臂等应用方向之前系统学习。
本页只做目录整理、学习路线说明和原文链接索引,不转载课程全文。课程原作者为赵虚左;具体内容、代码与图片请以原始资料为准。
资料入口
课程环境与准备
| 项目 | 课程采用的环境 |
|---|---|
| ROS2 版本 | Humble |
| 操作系统 | Ubuntu 22.04 |
| 主要语言 | C++、Python |
| 辅助知识 | Linux、CMake、XML、YAML |
| ROS1 基础 | 不要求 |
| 实体硬件 | 核心篇不要求 |
课程基于 ROS2 Humble。使用 Jazzy、Kilted 或更新发行版时,包名、命令参数、Gazebo 版本和部分 API 可能不同,遇到差异时应同时查阅对应发行版的官方文档。
建议学习路线
- 先完成第 1 章,搭好 ROS2、colcon 与编辑器环境。
- 第 2 章是核心,依次掌握话题、服务、动作和参数。
- 第 3 章补齐分布式、重映射、时间 API、命令行和 rqt 等实用能力。
- 第 4 章学习用 launch 组织系统,并用 rosbag2 录制和回放数据。
- 第 5 章集中学习 TF2 坐标变换,这是导航、感知和机械臂开发的共同基础。
- 第 6 章用 RViz2、URDF 与 xacro 建立机器人模型和可视化调试流程。
- 完成后继续学习应用篇。
第 1 章:ROS2 概述与环境搭建
本章适合建立全局认识,并完成 ROS2、colcon、VS Code、终端和 Git 等基础环境配置。
第 2 章:ROS2 通信机制核心
学习时建议为每种通信机制分别整理“适用场景、接口定义、发布端/服务端、订阅端/客户端、命令行验证”五项笔记,并同时完成 C++ 与 Python 示例。
第 3 章:ROS2 通信机制补充
这一章适合边学边做小实验,重点验证节点与话题重映射、不同工作空间的覆盖关系、ROS 时间与系统时间,以及常用命令行工具的输出。
第 4 章:launch 与 rosbag2
建议优先掌握 Python launch 文件,再了解 XML 和 YAML 写法。rosbag2 部分应至少完成一次指定话题录制、信息查看、回放和回放速率调整。
第 5 章:坐标变换 TF2
本章要建立“坐标系树”的思维。学习广播器和监听器时,同时用 tf2_echo、view_frames 和 RViz2 验证结果,比只阅读代码更容易发现父子坐标系和时间戳问题。
第 6 章:可视化、URDF 与 xacro
完成本章后,应能用 link、joint、visual、collision 和 inertial 描述基础机器人模型,并通过 xacro 宏和参数减少重复结构。
学完后的自检
- 能独立创建
ament_cmake与ament_python功能包。 - 能根据场景选择话题、服务、动作或参数,并解释选择理由。
- 能用命令行检查节点、话题、接口、参数和动作。
- 能用 launch 启动多个节点并传入参数、重映射和命名空间。
- 能录制、查看和回放 rosbag2 数据。
- 能读懂并调试 TF2 坐标树。
- 能用 URDF/xacro 建模并在 RViz2 中显示。
来源说明
本导航根据东澈的折腾天地 ROS2 教程推荐资料页及其链接的核心篇目录整理。页面内容和链接可能随原站更新而变化。