ROS不需要完全重新开发已有的系统和程序,而是通过加入一些标准化的代码就能对已有的非ROS程序进行ROS化的转化。并且很多通用的工具和软件都有提供,因此可以专注于自己感兴趣或想要做出贡献的部分,这反而可以节省开发和维护所需的时间。对于通过ROS对机器人进行操控的方式存在五大特点,分别列出如下所述:
-
程序的可重用性
专注于自己想要开发的部分,对剩下的功能可以下载相关功能包来使用。相反,也可以将自己开发出来的程序和其他人分享,让他们也可以使用。 -
是基于通信的程序
为了提供一种服务,很多时候在同一个框架里编写很多程序:从传感器或舵机的硬件驱动到传感、识别和动作等所有种类的程序。但为了重用机器人软件,根据每个处理器的用途将其分成更小的部分。根据平台的不同,我们将此称为组件化或节点化。必须由划分为最小执行单元的节点之间发送和接受数据,而平台具有关于该数据通信的所有一般信息。并且,这与最小的单位进程连接到网络的物联网(IOT)的概念一致,因此可以用作物联网平台。并且,被划分成最小执行单元的程序可以进行小单元的调试,这非常有助于找出错误。 -
提供开发工具
ROS提供调试相关的工具-2维绘图和3维视觉化工具RViz,所以无需亲手准备机器人开发所需的开发工具,可以直接拿来使用。例如,在机器人开发中,可视化机器人的模型的情况比较多,通过遵守规定的信息格式,可以直接确认机器人的模型,并且还提供3D仿真器,因此易于扩展到仿真实验。另外,最近比较受人关注的点云形式也可以从因特尔的RealSense或微软的Kinect获得的3D距离信息转化过来。此外,实验中使用的数据可以被记录下来,因此需要的时候随时都可以重现实验当时的情况。像这样,ROS的一个重要特点是通过为机器人开发提供必要的软件工具,使开发的便利性达到最大化。 -
活跃的开发者社区
至今比较封闭的机器人学界和机器人业界都因为前述的功能而走向重视互相之间的合作的方向。其目的可能各自相异,但实际的合作正在通过这种软件平台发生着。其核心是开源软件平台的社区。 -
生态系统的形成
起初,各种硬件技术泛滥,却没有能整合它们的操作系统。在这种情况下,各种软件平台已经出现,最受瞩目的ROS现在已经开始构建生态系统。这个正在形成的生态系统里,机器人硬件领域的开发者、ROS 开发运营团队、应用软件开发者以及用户也能像机器人公司和传感器公司一样从中收益。