列表

详情


阅读以下关于机器人操作系统架构的描述,回答问题1至问题3。
【说明】
随着人工智能技术的发展,工业机器人已成为当前工业界的热点研究对象。某宇航设备公司为了扩大业务范围,决策层研究决定准备开展工业机器人研制新业务。公司将论证工作交给了软件架构师王工,王工经过分析和调研,从机器人市场现状、领域需求、组成及关键技术和风险分析等方面开展了综合论证。论证报告指出:首先,为了保障本公司机器人研制的持续性,应根据领域需求选择一种适应的设计架构;其次,为了规避风险,公司的研制工作不能从零开始,应该采用国际开源社区所提供机器人操作系统(Robot Operating System, ROS)作为机器人开发的基本平台。
在讨论会上,架构师李工提出不同意见,他认为公司针对宇航领域已开发了某款嵌 入式实时操作系统,且被多种宇航装备使用,可靠性较高。因此应该采用现有架构体系作为机器人的开发平台。会上王工说明了机器人操作系统与该款操作系统的差别,要沿用需要进行改造,投入较大。经过激烈讨论,公司领导同意了王工采用ROS的意见。

【问题1】(5分)
王工拟采用的ROS具有分布式进程框架,以点对点设计以及服务和节点管理器方式, 使得执行程序可以各自独立地设计,松散地、实时地组合起来。这些进程可以按照功能包和功能包集的方式分组,因而可以容易地分享和发布。请用400字以内文字说明ROS与嵌入式实时操作系统的共同点,以及在实时性和任务通信方式两个方面的差异。
【问题2】 (10分)
ROS为应用程序间通信提供了主题(Topic) 、服务(Service)和动作(Action) 三种消息通信方式,每种通信方式都有其特点。请将以下给出的三类通信的主要特点填入表3-1中(1)-(5)的空白处,将答案写在答题纸上。
(a) 适合用于传输传感器信息(数据流)
(b) 能够知道是否调用成功
(c) 一对多模式
(d) 有握手信号
(e) 服务执行完会有反馈
(f) 可以监控长时间执行的进程
(g) 较复杂
(h) 可能让系统过载(数据太多)
(i) 服务执行完之前,程序会等待
(j) 建立通信较慢
(k) 可能丢失数据

表3-1 ROS三类通信的主要特点
 

【问题3】 (10分)
ROS的架构定义了ROS系统由多个各自独立的节点(组件)组成,并且各个节点之间可以通过发布/订阅( Publish /Subscribe )消息模型进行通信。图3-1给出一个简单机器人结构实例,请根据以下文字描述,补充图3-1中(1)~(5) 处空白,将答案写在答题纸上。
“机器人开始阶段,所有节点都要注册 (Registration) 到Master上,注册后,摄像 头节点声明它要发布(Publish)一个叫作/image_data的消息。另外两个节点(图像处理处理节点和图像显示节点)声明它们需要订阅( Subscribe) 这个/image_data消息。因此, 一旦摄像头节点收到相机发送的数据(Data),就立即将数据/image_data直接发送到另外两个节点。

  图3-1 一个简单机器人结构实例

参考答案: 【问题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节点间的数据通信都是以透明方式进行的。

上一题