ROS 2 Documentation完全指南:从入门到精通的终极学习路径
ROS 2是一套用于构建机器人应用的软件库和工具集,从驱动程序和最先进的算法到强大的开发工具,ROS为您的下一个机器人项目提供了所需的开源工具。本指南将带您全面了解ROS 2文档,助您从入门到精通,轻松掌握ROS 2的核心知识和应用技能。
为什么选择ROS 2?
自2007年ROS启动以来,机器人技术和ROS社区发生了很大变化。ROS 2项目的目标是适应这些变化,利用ROS 1的优势并改进其不足。ROS 2具有更好的实时性、更强的安全性、更灵活的通信机制以及对多机器人系统的更好支持,是现代机器人开发的理想选择。
图:ROS 2客户端库API栈架构图,展示了ROS 2的核心组件和通信流程。
快速开始ROS 2之旅
1. 安装ROS 2:简单高效的步骤
ROS 2提供了多种安装方式,您可以根据自己的需求和操作系统选择合适的方法。
二进制包安装(推荐)
二进制包适用于一般用途,提供了已经构建好的ROS 2安装。对于Linux用户,有两种安装二进制包的选项:
- Debian/RPM包:这是推荐的方法,因为它会自动安装必要的依赖项,并且会随着常规系统更新一起更新。您需要root权限来安装deb包。
- 二进制归档文件:如果您没有root权限,二进制归档文件是次佳选择。
Windows用户只能选择二进制归档文件安装。
支持的平台包括:
- Ubuntu Linux (amd64 / aarch64) - Resolute Raccoon (26.04)
- Red Hat Enterprise Linux 10 (amd64)
- Windows 11 (amd64)
详细的安装步骤可以在Installation/Ubuntu-Install-Debs、Installation/Windows-Install-Binary和Installation/RHEL-Install-RPMs中找到。
从源代码构建
如果您是想要修改ROS 2核心部分的开发人员,或者您的平台不支持二进制包,那么从源代码构建ROS 2是一个不错的选择。从源代码构建还使您可以选择安装最新版本的ROS 2。
支持从源代码构建的平台包括:
- Ubuntu Linux 26.04
- Ubuntu Linux 26.04 (Pixi)
- Windows 11
- RHEL-10/Fedora
- macOS
具体的构建指南可以在Installation/Alternatives/Ubuntu-Development-Setup等相关文档中找到。
2. 教程:循序渐进的学习路径
教程是一系列循序渐进的说明,旨在稳步培养ROS 2技能。最好的学习方法是第一次按顺序浏览教程,因为它们相互关联,并且不旨在提供全面的文档。
图:ROS 2节点、话题和服务通信示例,直观展示了ROS 2的核心通信机制。
教程分为以下几个部分:
- Beginner-CLI-Tools:介绍ROS 2的命令行工具,包括节点、话题、服务、动作等基本概念。
- Beginner-Client-Libraries:学习如何使用C++和Python客户端库创建ROS 2包、发布者、订阅者等。
- Intermediate:深入探讨ROS 2的中级主题,如启动文件、参数管理、TF2等。
- Advanced:涵盖ROS 2的高级功能,如安全性、实时性、自定义消息等。
- Demos:提供ROS 2各种功能的演示示例。
- Miscellaneous:包含一些杂项教程,如使用IDE、构建实时内核等。
您可以在Tutorials中找到完整的教程列表。
3. 概念:深入理解ROS 2核心
概念概述提供了关于ROS 2关键方面的相对高级、通用的背景信息。了解这些概念将帮助您更好地理解ROS 2的工作原理和设计思想。
图:ROS 2执行器调度语义示意图,展示了ROS 2中任务调度的核心原理。
概念部分包括:
- Basic:介绍ROS 2的基本概念,如节点、话题、服务、动作、参数等。
- Intermediate:探讨ROS 2的中级概念,如通信中间件、QoS策略、生命周期管理等。
- Advanced:深入研究ROS 2的高级概念,如构建系统、内部接口、中间件实现等。
详细内容请参见Concepts。
4. 操作指南:解决实际问题的快速参考
操作指南提供了关于ROS 2关键方面的直接和模块化答案。它们包含简洁的步骤,帮助您快速完成重要任务。操作指南适用于已经对ROS 2有一定了解的用户,只想了解如何实现特定功能。
图:ROS 2话题统计工具界面,展示了话题通信的实时统计信息。
操作指南涵盖了广泛的主题,包括:
- 安装故障排除
- 开发ROS 2包
- 文档编写
- 从ROS 1迁移
- 启动文件
- DDS调优
- 发布包
- 使用Python包
- Docker容器中的节点运行
- 跨编译
- 等等
完整的操作指南列表可以在How-To-Guides中找到。
深入ROS 2生态系统
1. ROS 2项目
如果您对ROS 2项目的发展感兴趣,可以了解以下内容:
- Contributing:贡献ROS 2的最佳实践和方法,以及将现有ROS 1内容迁移到ROS 2的说明。
- Distributions:过去、现在和未来的ROS 2发行版。
- Features Status:当前版本中的功能。
- Feature Ideas:不是积极开发中的理想功能的想法。
- Roadmap:ROS 2开发的计划工作。
- ROSCon Talks:社区关于ROS 2的演讲。
- Project Governance:ROS技术指导委员会、工作组和即将举行的活动的信息。
- Marketing:可下载的营销材料和ROS商标信息。
- Adopters:使用ROS的组织和项目。
2. ROS社区资源
如果您需要帮助、有想法或想为项目做出贡献,请访问我们的ROS社区资源:
- Official ROS Zulip Channel:用于讨论和支持的官方ROS Zulip频道。
- Robotics Stack Exchange:社区问答网站。
- Open Robotics Discourse:ROS社区的一般讨论和公告论坛。
- ROS Index:所有包的索引列表。
- ROS resource status page:检查ROS资源的当前状态,如Discourse或ROS构建农场。
- ROS Infrastructure Project Page:ROS基础设施项目维护ROS构建农场,该农场构建ROS索引上可用的二进制包。
3. 通用ROS项目资源
- Robotics Enhancement Proposals (REPs):新设计和约定的提案。
- ROS Robots:展示社区的机器人项目,并提供贡献机器人的说明。
- ROS Wiki:ROS 1文档和用户可修改内容。
- ROS.org:ROS 1和ROS 2产品登陆页面,包含ROS的高级描述和其他ROS网站的链接。
开始您的ROS 2之旅
现在,您已经了解了ROS 2文档的基本结构和主要内容,是时候开始您的ROS 2之旅了!无论您是机器人开发的新手还是有经验的开发者,ROS 2都能为您提供强大的工具和框架来构建出色的机器人应用。
要开始使用ROS 2,请按照以下步骤操作:
- 根据您的操作系统,按照Installation中的说明安装ROS 2。
- 完成Beginner-CLI-Tools和Beginner-Client-Libraries中的教程,掌握ROS 2的基础知识。
- 深入学习Concepts,了解ROS 2的核心原理。
- 当您遇到具体问题时,查阅How-To-Guides获取解决方案。
- 加入ROS社区,参与讨论,分享您的经验和成果。
ROS 2的世界充满了可能性,等待您去探索和创造。祝您在ROS 2的学习和开发过程中取得成功!
要获取ROS 2文档的完整源代码,请克隆仓库:https://gitcode.com/gh_mirrors/ro/ros2_documentation
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考







