# ros2-notes **Repository Path**: chen-liangwei/ros2-notes ## Basic Information - **Project Name**: ros2-notes - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ROS2 学习笔记 **创建时间**: 2026-03-10 **ROS2 版本**: Jazzy Jalisco (LTS) / Humble Hawksbill **作者**: 旭旭 & 旭旭助手 🐾 --- ## 🎯 项目介绍 本仓库是旭旭的 ROS2 系统学习笔记,从入门到精通,涵盖理论、源码、实战三个层次。 **学习理念**: - 📚 **系统化**: 从概念到实现,层层深入 - 🔧 **实战导向**: 每个知识点都有代码示例 - 🔗 **前后关联**: ROS2 ↔ DDS 打通学习 - 📝 **持续迭代**: 边学边记,持续更新 --- ## 📚 笔记目录 ### 快速参考篇 **[00. ROS2 核心概念速查](./00-ROS2-Core-Concepts.md)** - 节点、话题、服务、动作、参数 ### 理论基础篇 1. **ROS2 架构总览** - 与 ROS1 的区别、DDS 中间件、发现机制 2. **[环境搭建](./01-Environment-Setup.md)** - Docker on macOS、Hello World、工作空间(2026-03-10更新) 3. **[节点与话题通信](./02-Node-Topic.md)** - Node生命周期、Topic Pub/Sub、Python/C++实现(2026-03-10更新) 4. **服务 (Service) 通信** - 同步/异步调用、服务类型 5. **动作 (Action) 通信** - 目标、反馈、结果、取消机制 6. **参数 (Parameter) 系统** - 声明、获取、动态配置 7. **QoS (服务质量)** - 策略详解、与 DDS QoS 映射 8. **构建系统** - colcon、ament_cmake、ament_python 4. **服务 (Service) 通信** - 同步/异步调用、服务类型 5. **动作 (Action) 通信** - 目标、反馈、结果、取消机制 6. **参数 (Parameter) 系统** - 声明、获取、动态配置 7. **QoS (服务质量)** - 策略详解、与 DDS QoS 映射 8. **构建系统** - colcon、ament_cmake、ament_python ### 源码深入篇 9. **rclcpp 源码分析** - 客户端库实现、内存管理 10. **rclpy 源码分析** - Python 绑定、GIL 处理 11. **Launch 系统** - 启动文件、条件判断、事件处理 12. **生命周期 (Lifecycle)** - 状态机、转换、最佳实践 13. **组件 (Component)** - 动态加载、零拷贝传输 14. **DDS 中间件集成** - Fast-DDS、CycloneDDS、RTI Connext ### 实战项目篇 15. **Hello ROS2** - 第一个节点、话题通信 16. ** turtlesim 控制** - 速度控制、状态订阅 17. **激光雷达数据处理** - LiDAR 订阅、点云可视化 18. **SLAM 建图** - Cartographer 配置与调优 19. **导航 (Navigation2)** - 路径规划、代价地图 20. **机械臂控制** - MoveIt2 集成 21. **多机协同** - DDS 域、发现配置 22. **自定义消息** - msg/srv/action 定义 23. **ROS2 与 DDS 直连** - 跳过 ROS2 层,直接 DDS 通信 ### 高级主题篇 24. **性能优化** - 零拷贝、共享内存、实时性 25. **调试与监控** - ros2cli、rqt、foxglove 26. **安全 (SROS2)** - 加密、认证、访问控制 27. **跨平台部署** - Docker、嵌入式系统 28. **ROS2 包开发** - 发布到 ROS Index --- ## 🗺️ 学习路线图 ``` Month 1: 基础入门(01-08) ├── ROS2 架构、节点、话题 ├── 服务、动作、参数 └── QoS、构建系统 Month 2: 源码深入(09-14) ├── rclcpp/rclpy 源码 ├── Launch、Lifecycle ├── Component、DDS 集成 └── 与 Fast-DDS 笔记联动 Month 3: 实战项目(15-23) ├── turtlesim、LiDAR ├── SLAM、Navigation2 ├── MoveIt2、多机协同 └── ROS2-DDS 直连 Month 4: 高级主题(24-28) ├── 性能优化、实时性 ├── SROS2 安全 └── 包发布与部署 ``` --- ## 🔗 ROS2 ↔ DDS 联动学习 ROS2 底层基于 DDS,两个笔记仓库可以联动学习: ``` ROS2 层 DDS 层 ───────────────────────────────────────── Node Participant Publisher DataWriter Subscriber DataReader Topic (DDS Topic) QoS DDS QoS ros2 run DDS Discovery ``` **联动学习计划**: - ROS2 话题通信 → DDS Topic/Writer/Reader - ROS2 QoS → DDS QoS 策略 - ROS2 发现机制 → DDS SPDP/SEDP - ROS2 安全 → DDS-Security --- ## 🛠️ 开发环境 ```bash # ROS2 版本: Jazzy Jalisco (Ubuntu 24.04 LTS) # 或 Humble Hawksbill (Ubuntu 22.04 LTS) # 安装 ROS2 sudo apt update && sudo apt install -y ros-jazzy-desktop # 设置环境 source /opt/ros/jazzy/setup.bash # 创建工作空间 mkdir -p ~/ros2_ws/src cd ~/ros2_ws # 构建 colcon build --symlink-install # 测试 ros2 run demo_nodes_cpp talker ros2 run demo_nodes_cpp listener ``` --- ## 📖 参考资料 - [ROS2 官方文档](https://docs.ros.org/en/jazzy/) - [ROS2 Design](https://design.ros2.org/) - [ROS2 源码](https://github.com/ros2) - [Fast-DDS 笔记仓库](https://github.com/hex623/fastdds-notes) (旭旭的另一笔记) --- ## 📊 统计 | 类别 | 数量 | |------|------| | 理论基础篇 | 8 篇 | | 源码深入篇 | 6 篇 | | 实战项目篇 | 9 篇 | | 高级主题篇 | 5 篇 | | **总计** | **28 篇** | --- ## 📝 更新日志 | 日期 | 更新内容 | |------|---------| | 2026-03-10 | 项目初始化,创建 README | --- _开始学习 ROS2 之旅!🚀_