目录
个人学习笔记资料记录
资料来源:轮趣科技
链接: https://pan.baidu.com/s/1uj8VXx5b91FlwoSGqKoncQ
内容纯属是个人学习笔记资料记录,资料来源轮趣科技。在这里非常感谢轮趣科技的资料开源分享。如有侵权,请联系本人删除,谢谢。
ROS2 作为第二代机器人操作系统,不仅继承了 ROS 强大的生态基础,更采用了全新的架构设计。这一改进使得 ROS2 能够满足现代机器人系统对实时性、安全性、标准性以及可靠性的高要求。
学习 ROS2 有几个重要网站:
ROS2 官方文档https://docs.ros.org/en/humble/index.html
ROS 官网https://www.ros.org/
ROS 问答网站https://answers.ros.org/questions/
ROS Index 是搜索 ROS 和 ROS 2 资源的入口点https://index.ros.org/
官网,开源社区平台https://github.com/ Github
一、ROS2 特性
1. 开源、免费:ROS2 是一个开源的机器人操作系统框架,旨在支持机器人软件开发的标准化和共享。
2. 多机器人系统:ROS2 为多机器人系统的应用提供了标准方法和通信机制。
3. 跨平台:机器人应用场景不同,使用的控制平台也会有很大差异,为了让所有机器人都可以运行 ROS2,ROS2 可以跨平台运行于 Linux、Windows、MacOS、RTOS,甚至是没有任何系统的微控制器(MCU)上。
4. 实时性:机器人运动控制和行为策略要求机器人具备实时性,ROS2 为这样的实时性需求提供了保障。
5. 网络连接:ROS2 在各种网络环境下都能有效保障机器人大量数据的完整性和安全性。
6. 产品化:ROS2 不仅适用于机器人研发阶段,还可直接集成于产品中,满足消费市场需求,这要求 ROS2 具备高度的稳定性和强壮性。
7. 项目管理:机器人开发涉及多个复杂的工程环节,ROS2 提供了全面的项目管理工具和机制,从设计、开发、调试、测试到部署,都为用户提供了极大的便利,使机器人开发变得更加高效和畅。
二、ROS2 组成系统
ROS2 组成体系整个 ROS 生态由通信(Plumbing)、工具(Tools)、功能(Capabilities)与社区(Community)四大部分组成。
1. 通信(Plumbing)
通信是整个 ROS 系统的核心实现,它内置了一个高效的消息传递系统,通常称之为 middleware(中间件)或 Plumbing(管道)。这个系统负责在 ROS节点之间传递消息,实现节点间的通信与协作。
2. 工具(Tools)
ROS 内置了一系列开发工具,包括 launch、调试、可视化、绘图、录制回放等功能。这些工具不仅提高了应用程序的开发效率,还可以在发布产品时直接集成到产品之中,为开发者提供了极大的便利。
3. 功能(Capabilities)
ROS2 以其强大的功能集合,为机器人开发者提供了全方位的支持。无论你需要的是高精度的传感器驱动程序,还是复杂的机器人运动规划算法,ROS2 都能为你提供。
4. 社区(Community)
ROS 社区规模庞大、多样且全球化,从学生和业余爱好者到跨国公司和政府机构,各行各业的人和组织都在推动着 ROS 项目的发展。
三、ROS 2 与 ROS1 的区别
1. 去中心化
在 ROS1 中系统依赖于 master 节点进行管理和调度,一旦 master 节点出现异常,整个系统将面临崩溃的风险。ROS2 采用了去中心化的设计,各节点之间无需通过 master 节点进行关联,实现了节点间的对等通信和相互发现,提高了系统的稳定性。
2. 全新通信底层实现
ROS2 遵循“不重复发明轮子”的原则,不再自行实现通信底层,而是直接采用了 DDS 通信机制。这使得 ROS2 在通信的实时性、可靠性和连续性方面相较于 ROS1 有了显著的提升。
3. 大量采用新技术、新的设计理念
随着 ROS 十数年的发展,众多新技术逐渐成熟并被广泛采用。ROS2 积极引入并应用了一些新技术和设计理念,以进一步提升系统的性能和稳定性。
4. 应用场景更为广泛
ROS1 在设计之初就存在一定的局限性,例如对多机器人编队支持不佳、对小型嵌入式平台支持不够理想、实时性能较差、数据传输受网络质量影响较大以及产品化难度较大等。ROS2 的推出在很大程度上解决了这些问题,使得其应用场景更为广泛。