ros2_tutorial

ROS2 完全教程:从原理到实践

关于本教程

本教程面向有经验的程序员和人工智能科学家,提供对 ROS2(Robot Operating System 2)的深入理解。我们假设读者已经熟悉 Linux/Ubuntu 操作系统、Python/C++ 编程语言,以及基本的机器人学概念。

本教程基于 ROS2 Humble 或 Jazzy 版本,通过系统化的知识体系、丰富的实践案例和大量习题,帮助读者掌握 ROS2 的核心概念和高级特性。

教程特色

章节概览

第一部分:ROS1 基础与迁移

第 1 章:ROS1 核心概念回顾

第 2 章:ROS1 的局限性分析

第 3 章:从 ROS1 到 ROS2 的迁移策略

第二部分:ROS2 基础架构

第 4 章:ROS2 架构与设计理念

第 5 章:节点与执行器模型

第 6 章:通信机制深度解析

第三部分:核心组件

第 7 章:Launch 系统与配置管理

第 8 章:tf2 坐标变换框架

第 9 章:时间同步与回放系统

第四部分:感知与规划

第 10 章:传感器数据处理管道

第 11 章:SLAM 与定位系统

第 12 章:导航栈 Nav2

第五部分:控制与执行

第 13 章:ros2_control 框架

第 14 章:MoveIt2 运动规划

第 15 章:实时系统与性能优化

第六部分:高级主题

第 16 章:安全性与诊断系统

第 17 章:仿真集成(Gazebo/Ignition)

第 18 章:多机器人系统

第 19 章:计算机视觉与深度学习

第 20 章:机器人强化学习

第 21 章:大语言模型与具身智能

第 22 章:神经网络运动控制

第 23 章:云机器人与边缘计算

第 24 章:机器人数据管线与 MLOps

实践项目

本教程将通过三个递进式项目贯穿全书:

  1. TurtleBot3 自主导航机器人:覆盖基础导航、SLAM、路径规划
  2. 机械臂抓取系统:涉及 MoveIt2、视觉识别、力控制
  3. 多机器人协作系统:实现多机器人 SLAM、任务分配、编队控制

开发环境准备

推荐配置

安装步骤

# ROS2 Humble 安装
sudo apt update && sudo apt install ros-humble-desktop-full

# 或 ROS2 Jazzy 安装  
sudo apt update && sudo apt install ros-jazzy-desktop-full

# 开发工具
sudo apt install python3-colcon-common-extensions python3-rosdep

学习建议

  1. 循序渐进:虽然面向高级用户,但 ROS2 概念较多,建议按章节顺序学习
  2. 动手实践:每章的练习题都经过精心设计,完成它们对理解至关重要
  3. 构建项目:尽早开始实践项目,在实际问题中深化理解
  4. 参与社区:加入 ROS Discourse 论坛,参与技术讨论

符号约定

反馈与勘误

如果您在学习过程中发现任何错误或有改进建议,欢迎通过 GitHub Issues 提交反馈。


准备好了吗?让我们从 第 1 章:ROS1 核心概念回顾 开始这段激动人心的机器人操作系统之旅!