机器代替人力走进各行各业解放人类已经成为一种不可遏制的趋势,ROS便是用来控制这些机器的比较流行的平台,类似于手机中的Android。
ROS建立在Linux系统之上,有点像Linux的一种特殊软件。里面有很多库,可以用来执行不同功能。
我们经常会遇到这样的情况,机器在下面运行着(比如一辆装有摄像头、雷达等传感器的小车),后台电脑这可以接收并显示小车传过来的数据,这就是一种典型的分布式系统,ROS负责通过一些库来控制小车,通过一些库来处理数据,通过底层的ROS通信机制实现多台设备之间的相互通信。
下面是ROS中的一些基本概念:
1.节点(Node):
相当于操作系统中的进程,之所以叫节点,是因为如果把一个工作过程画成图来表示,那这些进程就是图中的节点。
2.消息(Message):
人与人之间说的话就是消息,在ROS中被定义为具体的数据结构了(比如,两台机器之间说的话就是一个int加一个float),用来传递自定义的数据。
3.话题(Topic):
就像微信公众号(但不完全一样,后面到话题的文章会有具体解释),后台一批人员负责把文章放上去,读者们就可以到公众号中查看了,就是一个发布(Publish)和订阅(Subscribe)的过程。
4.服务(Service):
应该说是一对一服务,嘿嘿。我问一句,服务人员答一句,性感荷官在线答疑,咳咳。“我”是一个节点,“服务人员”是另一个节点,两者建立起了实时通讯。
5.节点管理器:
顾名思义,就是管理节点的一个管理员吧,就像电话发明没多久那时候的接线员,一个节点如果想和其他节点通讯,首先自己得在“接线员”那注册一个“号码”,其次得知道对方的基本信息,比如叫什么名字,住在哪等等,然后“接线员”根据信息找到了对方的“号码”,然后就可以建立连接打电话了。