1.1.2 ROS2组成体系
整个ROS生态由通信(Plumbing)、工具(Tools)、功能(Capabilities)与社区(Community)四大部分组成。
通信(Plumbing)
通信是整个ROS系统的核心实现,是ROS内置的一个消息传递系统,通常称之为middleware(中间件)或Plumbing(管道)。
在构建新的应用程序或使用与硬件交互的软件时,如何实现通信是首当其冲的问题,为此ROS提供了专门的消息传递系统,它可以管理不同节点之间的通信细节,提高开发者的工作效率。这套消息传递系统使用了“面向接口”的编程思想,可以通过清晰规范的接口,将不同模块分离,从而也将故障隔离。使得ROS系统更易于维护、扩展性更强且保证了程序的高复用性。
接口规范可以由开发者自行定义。同时为了方便使用,在ROS中也提供了许多标准的接口,这些标准接口有着广泛应用,比如:将雷达或摄像头数据传输到可视化的用户界面或是传输到定位算法模块,都会使用到标准接口。
工具(Tools)
构建机器人应用程序极具挑战性。开发者除了会遇到一些传统的软件开发问题之外,还需要通过传感器或执行器与物理世界进行异步交互。显而易见的,良好的开发工具可以提高应用程序的开发效率,在ROS中就内置了launch、调试、可视化、绘图、录制回放等一系列工具。这些工具不光可以提高开发效率,还可以在发布产品时直接包含在产品之中。
功能(Capabilities)
ROS生态系统是机器人软件的聚宝盆。无论开发者需要用于GPS的设备驱动程序、用于四足仿生机器人的步行和平衡控制器,还是用于移动机器人的地图系统,ROS都能满足你的需求。从驱动程序到算法,再到用户界面,ROS都提供了相关实现,开发者只需专注于自身应用程序即可。
ROS的目标是提供一站式的技术支持,降低构建机器人应用程序的门槛。ROS希望任何开发者都可以将自己的“创意”变为现实,而无需了解底层软件和硬件的所有内容。
社区(Community)
ROS社区规模庞大、多样且全球化,从学生和业余爱好者到跨国公司和政府机构,各行各业的人和组织都在推动着ROS项目的发展。
该项目的社区中心和中立管家是Open Robotics,它托管共享在线服务(例如ROS官网:https://www.ros.org/),创建和管理分发版本(包括您安装的二进制包),并开发和维护大部分ROS核心软件。 Open Robotics还提供与 ROS 相关的工程服务。