随着人工智能技术的发展,工业机器人已成为当前工业界的热点研究对象。某宇航设备公司为了扩大业务范围,决策层研究决定准备开展工业机器人研制新业务。公司将论证工作交给了软件架构师王工,王工经过分析和调研,从机器人市场现状、领域需求、组成及关键技术和风险分析等方面

admin2019-02-25  40

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

“机器人开始阶段,所有节点都要注册(Registration)到Master上,注册后,摄像头节点声明它要发布(Publish)一个叫作/image_data的消息。另外两个节点(图像处理处理节点和图像显示节点)声明它们需要订阅(Subscribe)这个/image_data消息。因此,一旦摄像头节点收到相机发送的数据(Data),就立即将数据/image_data直接发送到另外两个节点。

选项

答案(1)注册(Registration) (2)数据(Data) (3)发布(Publish) (4)订阅(Subscribe) (5)订阅(Subscribe)

解析 ROS架构是由多个各自独立的节点(组件)组成,并且各个节点之间可以通过发布/订阅(publish/subscribe)消息模型进行通信。例如,我们将一个特定传感器的驱动模块作为一个ROS节点,其将传感器数据发布(publish)到消息流。这些消息可能会被某些节点获取到,例如滤波器、记录器、更高级系统中的应用如导航、路径查找等节点。
通常,ROS启动于ROS Master。Master允许其他ROS中不同软件片(节点)查找对方或与对方交流。那样,我们就不必指定“发送传感器数据到IP为127.0.0.1的电脑”,我们只需要简单地告诉Node1发送消息到Node2。就是说,ROS节点间的数据通信都是以透明方式进行的。
题目给出了一个简单机器人结构实例,就是考查考生对发布/订阅技术在ROS系统中的应用掌握程度。设想有一部相机安装在机器人上,我们希望可以从相机中或者笔记本上看到图像,同时让机器人也可以看到这些图像。
结构实例定义一个Camera Node,用于和相机通信(驱动),一个Image Processing Node运行在机器人上处理图像数据,一个Image Display Node用于将图像显示在屏幕上。
开始阶段,所有节点(Node)都要注册到Master上。Master可以认为是一个查询表,各个节点可以查询它要把消息发送到哪个节点。注册到ROS Master后,Camera Node声明它要Publish一个Topic叫作/image_data。另外两个节点(Image Processing Node and Image Display Node)声明他们Subscribe这个Topic/image_data。因此,一旦Camera Node收到Camera发送的数据,就立即将数据/image_data直接发送到另外两个节点。
如果Image Processing Node想主动获取Camera Node收到的数据,ROS定义了Services用于解决这个问题。节点可以在ROS Master上注册一个特定的service,就像注册它的消息(topic)一样。在我们的例子中,Image Processing Node第一次请求/image data,Camera Node将收集Camera的数据,然后发送给Image Processing Node。
考生在理解了上述描述的基础上,就可以很容易补充图3-1中(1)~(5)处给出空白,显然,Image Display Node需要先向Master“注册(1)”,而摄像头是将“数据(2)”传输到Camera Node;Camera Node收到数据后向外部节点进行图像数据消息“发布(3)”,最后,Image Processing Node和Image Display Node想要接收图像数据信息,必须实现开展“订阅(4)(5)”活动。
转载请注明原文地址:https://kaotiyun.com/show/kAQZ777K
0

最新回复(0)