参考答案:
【问题1】
ROS与嵌入式实时操作系统的共同点:
(1)系统微型化
(2)系统专用性强
(3)软硬件依赖性强
(4)系统资源受限
ROS与嵌入式实时操作系统的差异:
实时性:ROS弱于嵌入式实时操作系统。
通信方式:ROS的通信方式较为丰富,嵌入式实时操作系统通信方式单一。
【问题2】
(1)(2)(c)(k) (3)(4)(i)(j) (5) (f)
【问题3】
(1)Registration (2)Data (3)Publish (4)Subscribe (5)Subscribe
详细解析:
【问题1】
机器人操作系统是近年来在嵌入式操作系统领域发展起来的一种操作系统,它提供类似于操作系统所提供的功能,包括硬件抽象描述、底层驱动程序管理、公用功能的执行、程序间的消息传递、程序算法包管理:它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序。机器人操作系统还提供了库和工具来帮助软件开发者创建机器人的应用程序。
【问题2】
机器人操作系统通常采用了多节点跨平台模块化通信机制。它用节点(Node)的概念表示一个任务,不同节点之间通过事先定义好的格式来实现消息通信,应用程序间具备主题(Topic)、服务(Service)和动作(Action)三类通信。
(1)主题:消息通过一个带有发布和订阅功能的传输系统来传送。一个节点通过把消息发送到一个给定的主题来发布一个消息。主题是用于识别消息内容的名称。一个节点对某一类的数据感兴趣,它只需要订阅相关的主即可,一个主题可能同时有许多的并发主题发布者和主题订阅者,一个节点可以发布和订阅多个主题。一般来说,主题发布者和主题订阅者不知道对方的存在。发布者将信息发布在一个全局工作区内,当订阅者发现该信息是它所订阅的,就可以接收到这个信息。
(2)服务:发布/订阅模式是一种很弹性的通信范式,但是其多对多的传输方式是一种不适合于请求/回复交互的方式。请求/回复交互方式经常被用于分布式系统中。请求/回复通过服务来进行,其中服务被定义为一对消息结构:一个用于请求,一个用于回复。一个提供节点提供了某种名称的服务,一个客户通过发送请求信息并等待响应来使用服务。机器人客户端库通常把这种交互表现为像一个远程程序调用。但是,基于服务的通信方式存在初期建立通信时,建立速度较慢。
(3)动作(action)是ROS提供应用程序间通信的一直较简单的方式,一般用于对某个事件、某个进程以及某个数据状态的监控,如:它可以监控长时间执行的进程。但是,从动作机制上看,设立监控机制比较复杂,需要应用程序间有据手信号。
【问题3】
ROS架构是由多个名自独立的节点(组件)组成;并且各个节点之间可以通过发布/订阅(publish/subscribe)消息模型进行通信。例如,我们将一个特定传感器的驱动模块作为一个ROS节点,其将传感器数据发布(publish)到消息流。这些消息可能会被某些节点获取到,例如滤波器、记录器、更高级系统中的应用如导航、路径查找等节点。
通常,ROS启动于ROS Master。Master允许其他ROS中不同软件片(节点)查找对方或与对方交流。那样,我们就不必指定“发送传感器数据到IP为127.0.0.1的电脑”,我们只需要简单地告诉Node1发送消息到Node2。就是说,ROS节点间的数据通信都是以透明方式进行的。