APP下载

基于云端部署的多机器人视觉协同工作系统*

2024-01-03吕丞干陈海军樊虹岐胡晓兵

组合机床与自动化加工技术 2023年12期
关键词:云端协作子系统

吕丞干,陈海军,2,3,樊虹岐,胡晓兵,3

(1.四川大学机械工程学院,成都 610065;2.四川德恩精工科技股份有限公司,眉山 620460;3.宜宾四川大学产业技术研究院,宜宾 644000)

0 引言

云制造是面向服务的网络化智能制造新模式[1],在网络化制造和服务技术基础上融合了云计算、边缘计算、高性能计算、物联网等技术,具有物联化、协同化、服务化、智能化等典型特征[2]。自以智能制造为主攻方向[3]的“中国制造2025”提出以来,云制造已经成为我国制造企业应对知识经济与制造全球化挑战的关键技术[4],正逐渐催生出基于“云边端协同”架构的智能工厂新模式[5]。然而,作为智能工厂的关键一环,多机器人智能上下料系统仍发展缓慢。目前,智能化程度较高的多机器人上下料动作大多数是通过本地部署上料AGV、机械臂、下料AGV和摄像头等多模块实现的,为此,每个控制单元都需要独立装配成本较高的定位系统和协作系统[6],一般企业难以承担相关改造成本和维护成本,导致此类智能化上下料技术既不易推广应用,又无法满足我国制造企业实现云制造的需求。

目前,国内外学者已经广泛开展了在提高多机器人上下料智能化程度方面的研究,改进主要分为两个方向。①提高机械臂工作智能化,包括夹具升级、碰撞监测[7]、轨迹规划、基于生产节拍的工作规划[8]等;②引入除机械臂外的其他智能装置,包括引入视觉传感器、AGV、智能工作站[9]等。但上述两个方向均仅考虑了单一控制单元的智能化,导致单个控制单元成本较高且各控制单元之间缺乏必要的配合,可推广性和智能化水平仍然受限,还无法适用于云制造下的无人化上下料控制。在近几年研究中,虽然可参考的关于云制造上下料系统的研究还相对较少,但在整个制造业领域内已有基于云平台或云端系统来解决云制造相关问题的研究。如朱逢浩[10]基于Kubernetes与Docker容器技术,设计实现了建筑机器人任务云平台系统,可以满足建筑机器人项目开发及部署的基本需求;于博[11]使用了实时信息传输协议(real time message protocol,RMTP)将摄像头采集到的图像上云,使用了Vue、Spring Boot等框架进行前后端开发实现本地和云端的通信,设计实现了面向云制造的工业机器人远程监控系统,能较好地满足云制造环境下不同角色用户对工业机器人的远程监控和简单的控制需求;刘根寅[12]基于Kafka消息中间件实现车间数据在本地和云端的传输,研究开发了云制造环境下车间生产大数据处理系统,实现了对车间生产的智能化改造。然而,由于这些研究并不直接面向多机器人协作上下料的具体工业场景,在多控制单元并行可靠性、数据传输实时性和视频传输高效性等方面还不能直接用于多机器人上下料环节,因此,还有必要对面向云制造的多机器人上下料系统及其通讯网络展开进一步研究。

针对上述问题,本文通过对消息队列遥测传输协议(message queuing telemetry transport,MQTT)[13]、实时传输协议(real-time transport protocol,RTP)[14]等通讯技术的研究,基于Docker技术[15],将“云边端协同”架构[16-17]应用于多机器人上下料环节的机械臂和AGV协作准备步骤,搭建了一个可柔性扩展控制单元的多机器人视觉协作系统,重点设计了该系统的通讯网络,为促进多机器人视觉上下料智能化发展提供了一种低成本、易改造、易维护、高扩展性的思路。

1 系统总体设计

1.1 系统架构设计

边缘计算作为地理分布的计算模型,在数据源附近执行计算任务,能够提高服务响应速度和降低服务延迟。但是由于边缘计算设备的计算能力和存储能力有限,一些需要大量计算和存储的任务仍然需要送到云端去完成。因此,与边缘计算单独发展相比,边缘计算将会向云计算方向发展,形成云边协同的层次计算体系。本文正是基于“云边端协同”架构,面向云制造设计了一套多机器人视觉协作系统,由设备端、边缘端子系统以及云端子系统3个部分组成。系统总体架构如图1所示。

图1 系统总体架构图

图1中,t0为设备端向边缘端子系统传输图像和状态信息的时延,t1为边缘端子系统对图像进行预处理的时延,t2为边缘端子系统向云端子系统传输图像和状态信息的时延,t3为云端子系统对图像进行处理得到控制信息的时延,t4为云端子系统向边缘端子系统传输控制信息的时延,t5为边缘端子系统向设备端传输控制信息的时延。

在本文系统中,设备端作为上下料视觉协作执行端,负责完成采集传输用于解析机械臂和AGV相对位置的图像、发送机械臂状态信息、接收机械臂和AGV的控制信息等任务;边缘端子系统位于本地作为管理中心,管理多个控制单元,负责完成向云端子系统发送服务请求、预处理图像信息、上传视频、上传机械臂状态信息、接收并分发机械臂和AGV的控制信息等任务;云端子系统作为图像处理中心,负责完成接收边缘端子系统请求后生成和管理容器并进行加密,在各个容器内进行处理图像信息、接收机械臂状态信息、下发机械臂和AGV的控制信息等任务。

1.2 系统通信模块设计

本文多机器人视觉协作系统各部分间信息通路可以分为两部分,一个是用于设备端、边缘端子系统和云端子系统之间传输状态、指令的参数信息通信,另一个是用于给边缘端子系统在预处理后可能要将视频信息发往云端子系统的需求提供服务的视频信息通信。本文将控制、状态数据传输与视频数据传输分离开来,以避免占据高带宽的视频数据影响到控制、状态信息的传输,从而增强系统运行的稳定性,同时也是给这两类信息的传输分别使用了更为合适的传输方案。下面分别对参数信息和视频信息的通信模块进行设计。

1.2.1 参数信息通信模块设计

由于本系统的云端子系统需要实时控制现场设备端完成协作工作、现场机械臂也需要实时上传其当前位姿信息来支撑云端做控制信息的解算工作,这就要求本系统能在网络质量一般的情况下高可靠、低时延、低开销地完成参数数据的传输。在此场景下常见的通信协议中,轮询技术(polling)能够确保客户端与服务器端之间的同步,但由于其客户端会一直以固定频率向服务器端请求信息的特点,在客户端和服务器端都会造成较大的资源浪费;XMPP协议通常被应用于在线监测和即时通信领域,但由于其是基于XML实现,导致其所发送的消息较为冗余,耗流量大;MQTT协议基于TCP/IP协议栈,是一种轻量级的消息发布/订阅协议,由于其开销小、延时低、可靠性高等优点,在不可靠网络环境下扩展消息发送方和接收方,适用于硬件性能较差的远程设备,但也存在安全性不高的问题。考虑到本文系统可能会工作在网络资源较差的环境中,对信息的精简性和可靠性要求较高,本系统选用了MQTT协议来实现本文系统控制、状态数据的传输,将MQTT服务器部署于云端子系统。

在安全性方面,MQTT协议通过控制QoS等级来决定服务质量,而消息的安全级别则由QoS的值决定,但是MQTT协议本身不具备加密和验证消息的功能,使用MQTT协议时可能会遭到恶意篡改或攻击。因此,本文结合MQTT通信协议的报文特点和视觉协作环节的安全性要求,使用了常用于确保消息传输的完整性和一致性的散列算法(MD5),提出了一种基于MQTT协议的可动态更新的MD5加密与验证方案,如图2所示。

图2 可动态更新的MD5加密与验证方案

图2中,秘钥管理单元部署在云端子系统并在系统的全生命周期都启用,加密单元和验证单元则同时部署在边缘端子系统和云端子系统中,加密单元作用于MQTT报文形成之后,发送之前,而验证单元作用于收到MQTT报文之后,解析之前。其中,AppSecret是一个随机生成的32位字符串。

1.2.2 视频信息通信模块设计

在云端子系统需要高实时性地依据现场图像解析生成控制信息这一场景下,本文选用了实时传输协议RTP作为图像信息传输协议。

RTP协议可以传输具有实时特性的音频和视频文件,是一种既能在TCP上也能在UDP上工作的应用层程序。与TCP相比,UDP具有较短的传输延时和较小的网络开销,因此本文选择了RTP/UDP作为视频流传输协议。边缘端子系统向云端子系统进行视频传输的流程如图3所示。

图3 视频传输流程图

2 设备端通信网络设计

考虑到实验设备因素,本文设备端机械臂选用的是选用基于固高机器人控制系统的德恩DR50工业机器人,AGV选用的是普通差速AGV,相机选用的是普通网络摄像头。

在本文系统的架构下,设备端仅会与边缘端主机进行交互,其各部分所需要实现的功能有:机械臂依据控制信息运行、反馈状态信息;AGV依据控制信息运行;相机采集和发送视频信息等。机械臂部分功能基于德恩DR50工业机器人中的动态指令模式实现。动态指令模式是一个让用户能通过API获取机器人状态、控制机器人运动的机器人运行模式,其中API可以通过TCP通信的方法来调用。AGV部分功能则是基于本文选用的普通差速AGV提供的运动控制API来实现对左右轮转速的控制,此API也是通过TCP通信的方法来进行调用。相机部分功能则是基于网络摄像头自带的网络传输接口来实现的。

根据各设备自带通讯接口的特点,本文的机械臂和相机均通过网线与交换机互联后接入无线路由器,AGV则是连接无线路由器的WIFI,然后无线路由器再通过网线与边缘端主机互联。基于此通信网络,多套控制单元的机械臂、AGV和相机便可柔性互联,并同属于一台边缘端主机的管理,边缘端主机能够通过各设备被分配的唯一的IP地址来实现对不同设备的标识,以此在边缘端子系统内注册控制单元。设备端通信网络如图4所示。

图4 设备端通信网络架构图

3 云端子系统及其通讯接口设计

考虑到实验平台因素,本文云端子系统的硬件部分选用的是“德恩云造”产业协同云平台,“德恩云造”专注于智能装备及零部件制造产业的平台化、集群化、协同化、数智化赋能服务,能够很好地支撑本文云端子系统的代码部署。

本文云端子系统主体部分由管理模块和功能模块两部分组成。管理模块部署于云端虚拟机中,主要负责对容器的管理。为了使本系统能够对其同时服务的控制单元数量实现动态增减,并给每一个工作中的控制单元都提供一个隔离性较好的云端服务环境以提高系统稳定性,功能模块的部署使用了和虚拟机方案相比有着更高资源利用率的Docker方案。Docker是一种通过镜像构建包含软件的运行环境的容器化(container)工具,因此容器可以随时随地运行,同一主机上的多个容器仍然可以共享操作系统和物理资源。

管理模块除了前文所提到的秘钥管理单元以外,还有容器管理单元,负责完成容器生成和回收等任务。功能模块由多个协作的控制节点组成,实现机械臂和AGV控制信息生成、信息传输等功能。本文云端子系统主体部分的程序流程如图5所示。

图5 云端子系统主体部分程序流程图

图5中,云端动态ID库是一个记录边缘端目前活跃控制单元ID的库,其会以60 次/min的频率向边缘端子系统发送同步请求并解析回传数据,动态更新目前边缘端子系统的所有活跃控制单元ID,从而可以保证云端子系统容器可以与活跃控制单元一一对应,提高云端资源利用率。

总结上述流程,可以得出,云端子系统需要发送的信息有:通过MQTT向边缘端子系统发送的机械臂、AGV控制信息和连接成功信息;需要接收的信息有:边缘端子系统通过RTP发送过来的视频信息和通过MQTT发送过来的机械臂状态信息和控制单元ID信息。

MQTT需要根据收发的信息特点选择最适合的QoS(quality of service)来进行传输。MQTT设计了3个QoS等级用于传输质量的确定,分别为QoS0、QoS1和QoS2。QoS等级越高,流程越复杂,系统资源消耗越大,因此本文将尽量选择满足业务需求的较小的QoS等级。对通过MQTT发送的各类信息特点进行分析后得出,云端子系统接收边缘端子系统所发送的机械臂状态信息使用QoS0,控制单元ID信息使用QoS1。

根据边缘端子系统与云端子系统交互流程,对云端子系统通讯接口进行设计如图6所示。

图6 云端子系统通讯接口图

图6中,由于状态信息的传输使用了QoS0等级,视频信息传输使用了RTP/UDP协议,会出现信息重复发送或没有按照发出的时序被接收的情况。为此,在功能模块的控制解算节点中,程序均会记录下接收到的上一条信息的时间戳信息,之后若遇到小于或等于此记录的时间戳数据,则会将其视为无效信息并过滤,以保证上传至云端子系统的状态信息和视频信息都会是最新版本。

4 边缘端子系统及其通讯节点设计

本文边缘端子系统的软件部分是使用Qt软件来编写,其主体部分以设备管理模块、活跃控制单元检测模块和信息下发模块组成,进行资源管理和信息传递,其程序流程如图7所示。

图7 边缘端子系统主体部分程序流程图

边缘端子系统的硬件部分选用的是win11系统的台式机,其配置如表1所示。

表1 边缘端台式机配置表

图7中,设备管理模块内的注册操作指的是用户通过辨识设备的IP地址,将位于同一个控制单元内的一套机械臂和相机进行绑定,形成一个由边缘端子系统进行管理的控制单元,每个被生成的控制单元均会被赋予一个不重复的ID号。活跃控制单元检测模块内则会进行所有注册的控制单元的相机图像采集,对图像进行预处理分析得出此控制单元的工作状态,以此来动态更新边缘端动态ID库。由于活跃控制单元检测模块的边缘端动态ID库的更新全过程是在现场局域网内进行操作,其准确度高且能迅速检测出脱离活跃状态的控制单元,以保证为云端动态ID库提供活跃控制单元信息的正确性。控制下发模块则是负责接收云端子系统的控制信息并分类下发给设备端。

总结上述流程可以得出,边缘端子系统需要发送的信息有:通过MQTT向云端子系统发送的机械臂状态信息和控制单元ID信息,通过RTP向云端子系统发送的视频信息,通过TCP向边缘端机械臂和AGV发送的控制信息;需要接收的信息有:云端子系统通过MQTT发送过来的机械臂和AGV控制信息和连接成功信息,设备端机械臂通过TCP传输过来的状态信息和相机通过TCP传输过来的视频信息。

其中,由于TCP本身的稳定性,且边缘端子系统和设备端是位于同一局域网内进行传输工作,本文认为由TCP传输的各类信息均能稳定地被对方接收一次。由于本文选用的是RTP/UDP协议格式进行的视频传输,边缘端子系统只需要按时序向对应图像上传端口号发送视频信息即可。对通过MQTT发送的各类信息特点进行分析后得出,边缘端子系统接收云端子系统所发送的控制信息和连接成功信息使用QoS1。对边缘端子系统通讯节点设计如图8所示。

图8 边缘端子系统通讯节点图

图8中,当活跃控制单元检测模块检测到一个新的活跃控制单元时,会生成与此控制单元ID相对应的子线程组,而后会将控制单元ID发送至云端子系统通讯接口,得到连接成功的返回后子线程组便会与云端子系统的对应容器进行视频信息和参数信息的通讯。此外,当活跃控制单元检测模块检测到某个控制单元状态变为非活跃时,也会回收对应的子线程组以提高系统资源利用率。各个子线程组中管理着与其ID号对应的两个子线程,一个用于处理参数信息,另一个用于处理视频信息。其中,由于控制信息的传输使用了QoS1等级,会出现信息重复发送或没有按照发出的时序被接收的情况,为此,边缘端子系统在接收到云端子系统的控制信息进行处理时,会记录下此条信息带有的时间戳信息,之后若遇到小于或等于此记录的时间戳数据,则会将其视为无效信息并过滤,以保证下发给设备端的都是最新版本的控制信息。

5 实验与结果分析

5.1 实验介绍

为了验证本文多机器人视觉协作系统的功能以及考察其运行性能,按照系统硬软件设计内容安装和配置设备端、边缘端子系统和云端子系统,在室内网络条件下一共开展两个实验,分别为单控制单元上下料协作实验和多控制单元上下料协作实验,实验场地如图9所示。

图9 实验场地

本文选择使用在相机捕捉的图像中机械臂末端工件与AGV中心点位置基本重合作为协作成功的标志,如图10所示。

(a) 运动前 (b) 运动中(c) 运动结束图10 上下料协同实验过程

5.2 单控制单元视觉协作实验

进行系统主要功能的测试,注册一个控制单元,并将AGV引导至此控制单元视场下,系统便会按照工作流程进行自动视觉协作,在稳定的网络条件下进行数次重复试验得到各个阶段的时延情况和上下料结果,发现数据相对稳定且上下料协作均能成功完成,选取其中3组数据进行展示如表2所示。

表2 单柔性制造单元上下料实验结果

表中的工作阶段与前文保持一致,即t1为边缘端子系统对图像进行预处理,t2为边缘端子系统将机械臂状态信息和图像上传至云端子系统,t3为云端子系统对图像进行处理获得控制信息,t4为云端子系统将控制信息回传给边缘端子系统,t5为边缘端子系统将控制信息分发给机械臂和AGV。而t0阶段由于是设备端子系统和边缘端子系统的网线直连,时延稳定且较小,故本文实验不对此阶段的时延进行记录。

实验结果表明,本系统可以稳定可靠地满足单控制单元视觉协作的需求。

5.3 多控制单元视觉协作实验

由于现场设备条件不能满足注册多个控制单元,多控制单元视觉协作实验将共用一套机械臂和AGV,同时取消t5对数据的记录,但会在相近位置排布3个摄像头来模拟3个控制单元,并会将3个控制单元收到的控制信息记录下来,之后依次传递给机械臂和AGV来进行测试,查看视觉协作结果。增设摄像头后共3个摄像头的排布方式如图11所示。

图11 多控制单元摄像头排布方式

进行系统主要功能的测试,在边缘端子系统向云端子系统注册3个本地工作单元,系统会按照工作流程进行自动上下料协作,在稳定的网络条件下进行数次重复试验得到各个阶段的时延情况和上下料协作结果,发现数据相对稳定且上下料协作均能成功完成,选取其中3组数据进行展示如表3所示。

表3 多柔性制造单元上下料实验结果

将表3的实验结果与表2的实验结果进行对比,可以得出结论,本系统可以稳定可靠地满足多控制单元视觉协作的需求,但在多单元工作环境下t1、t2、t4时延略微有上升趋势,这是多控制单元情况下网络的负载增加的缘故,但由于云端子系统的多个容器运行环境相对隔离,t3时延并没有明显的变化。

6 结束语

为了提高多机器人上下料的智能程度,满足企业实现云制造的需求,本文设计了一套基于云端部署的多机器人视觉协同工作系统,完成了以下几点工作:

(1)针对参数信息传输和视频信息传输的实时性和可靠性,提出了一种参数信息与视频信息分开传输的方案。参数信息部分基于MQTT协议,并提出了一种基于MQTT协议的可动态更新的MD5加密与验证方案,提高了各个子系统在接收参数信息时的安全性。视频信息部分基于RTP/UDP协议来保证图像传输的实时性。实验证明,此方案可以满足复杂系统架构下、多智能控制单元基于云端进行多层多级协作的需求;

(2)针对多控制单元云服务的柔性化扩展,基于云端动态ID库与边缘端动态ID库高频同步技术,开发了可支持对多控制单元并行服务的云端子系统及通讯接口。实验证明,该云端子系统可以快速响应边缘端子系统的请求以及检测活跃控制单元ID库的变化,实现云端容器资源的智能启停和分配;

(3)针对多控制单元的信息上传和下发的可靠性,基于活跃控制单元检测和多线程等技术,设计了边缘端子系统通讯节点。实验证明,上述通讯节点可以柔性服务于各控制单元的信息传输,提高云端资源利用率;

(4)模拟实际工业视觉协作场景,开展了两个实验来验证本文设计系统在服务于单个和多个控制单元时的表现。实验结果表明本文系统能稳定可靠地满足单个和多个控制单元视觉协作环节的需求,时延稳定,在实验场景下均能成功实现定位协作。

上述研究表明,本文基于云架构提出了一套适用于智能车间多机器人协同、多控制单元并行控制的低成本视觉协作方案,对推动我国“云制造”的高速发展奠定了相关技术基础。

猜你喜欢

云端协作子系统
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
云端之城
团结协作成功易
驼峰测长设备在线监测子系统的设计与应用
协作
美人如画隔云端
行走在云端
云端创意
协作