本文将主要对clearpathrobotics网站关于ROS的介绍进行翻译。原文网址https://www.clearpathrobotics.com/2014/01/how-to-guide-ros-101/。
1,何为ROS?
ROS(Robot Operating System)是遵从BSD许可的系统,它可以在PC上控制机器人的各个组件。ROS系统由多个各自独立的节点(组件)组成,并且各个节点之间可以通过发布/订阅(publish/subscribe)消息模型进行通信。例如,我们将一个特定传感器的驱动模块作为一个ROS节点,其将传感器数据发布(publish)到消息流。这些消息可能会被某些节点获取到,例如滤波器、记录器、更高级系统中的应用如导航、路径查找等节点。
(从此段可以理解,ROS的publish操作为某个节点将其自身数据或传感器数据发送到一个注册到ROS中的消息池中,其他节点可以申请获取数据,而publish数据的节点不关心哪些节点需要,其他节点如何获取数据将在下面介绍。)
2,为何使用ROS?
ROS中的节点可以运行在不同的系统、平台,甚至是不同的架构中。假如有一个Arduino publish的消息,你可以使用笔记本订阅(subscribe)此消息,也可以使用android手机驾驶摩托。对于用户的需求,ROS具有灵活适应性,并且它还是开源的,任何人