基于云的多自主移动机器人编队控制技术研究 王清珍 张珊珊 陈 浩
(郑州科技学院信息工程学院,郑州,450064)
摘 要
针对多自主移动机器人编队过程中,机器人复杂的动态运算和大量数据存储问题,本文提出一套基于云服务器存储大量数据和云计算复杂动态编队的解决方法。首先,选择合适的云服务器,云系统配置好后,建立数据库用来存放数据,进行云端动态计算;其次,搭建一套相机定位检测和机器人动态移动的系统模型,确定机器人运动的位置坐标;再次,确定选用无线通信的类型,将云服务器与本地的系统连接,进行数据传输;最后,搭建多机器人的编队系统,确定编队队形后,将编队算法存放云服务器。再整体对提出的方法进行测试和验证,实验结果表明,机器人的位置数据放在云服务器存储以及动态编队在云端计算,较本地存储计算更准确安全、速度更快、误差较小。因此得出结论:基于云服务器的多自主移动机器人编队控制具有很大的可行性,也是人工智能领域具有价值性的研究。关键词:多机器人,云服务,自主移动,编队控制算法,视觉定位
0引言
随着科技的快速发展,大数据信息化世界已经到来。在机器人领域,多机器人编队协作完成各类任务的效
率正逐渐提高,然而执行任务产生大量的数据需要保存、调用,传统方法对大量数据进行实时分析计算时,存储本地等待调用计算等数据信息增加了机器人自身负担,使数据传输出现响应时间长、数据混乱、数据泄露、丢包等问题,使得本地存储计算难以完善机器人的智能,是升级机器人前所未有的机遇和挑战。
Ramasubbareddy等提出云存储数据的存储安全访问授权方式[1],叶雄杰等人重点介绍了利用云服务器研究云端存储及实时云端数据监控;迟霆等人重点研究多机器人编队控制与云计算的结合;平丽华,樊石等人主要研究了阿里云的远程机器人控制,但上述研究侧重云服务器存储和监控,涉及云与多机器人协作编队的内容较少。在多自主移动机器人系统协调及合作控制方面,张建伟等提出基于全局视觉定位系统及单计算机多线程操作的方式,以模拟多自主机器人系统的分布式控制以及基于相对信息的局部控制[2];另外,王大伟等在基于边缘计算的云原生机器人系统[3]中,提出云—边—端融合的多机器人协同的智能系统,这为实现多自主移动机器人编队控制提供了理论依据。但是,编队产生数据较多,领航者与跟随者采集的信息都需要详细分类,云服务器、多机器人编队、视觉定位三者结合的研究者比较少。
针对这三者结合进行研究,视觉定位编队位置与云端相结合,相机定位后数据存储云端、动态编队云端计算,云服务器作为一个存储信息和计算的服务器是未来发展的趋势。将大量信息数据放在云服务器中运行,并进行实时性分析、计算,这大大减轻机器人自身负担,多自主移动机器人的编队与云计算相结合更是值得研究的方向。
1系统整体方案
本文系统利用计算机(PC)端作为控制端操作云服务器,云服务器端创建数据库、存储接收到的数据,树莓派控制板作为数据信息传输的中间媒介。树莓派的摄像头负责视觉定位,实现对机器人位置坐标检测,树莓派与多个机器人通过无线模块的TCP/IP协议进行通信,控制板与云服务器、编队机器人分别连接,在编队过程中进行数据传输。系统总体结构如图1所示。
本文课题为2020年度河南省高等学校重点科研项目,项目编号20B120003;2020年度郑州科技学院大学生创新创业训练计划项目,项目编号DC202021。
图1 系统总体结构图
本文系统利用PC端控制云服务器,将其作为控制的客户端。该系统选用PC端的Linux系统连接云端,通过指令配置云服务器的空间。PC端与云服务器的通信通过TCP/IP协议连接,采集到的数据也通过TCP/IP协议进行传输,应用client模式和接收server模式,基于TCP/IP协议的套接字(Socket)收发数据信息。在编队过程中,树莓派控制板与云服务器、机器人双向通信。摄像头与树莓派主控芯片连接;在机器人移动过程中,摄像头对每个机器人的位置坐标信息进行实时监控,读取出每个机器人的位置后,把每个坐标信息的数据通过树莓派传输给云端,云端接收到的大量的实时位置信息经过控制端处理发送给MySQL数据库;数据库在传输数据之前,要进行数据库的创建,对数据库进行整理、创建数据表,
当信息输入时,数据库对信息进行实时分类和储存;云服务器对数据库中领航者机器人的位置坐标可以调用,计算当前机器人位置信息是否正确,最终经过计算返回正确的坐标信息或下一步要执行的编队动作给树莓派控制板;控制板发送指令控制领航者进行位置调整或执行下一编队动作,跟随者在领航者的领航下完成编队。
2云主机系统配置及连接
2.1系统配置
云服务器适用于各种系统,也能满足计算和存储的需求,本文系统使用的是阿里云的云服务器[4],通过云端存储计算多自主机器人编队控制的数据信息,使领航者机器人及其跟随者机器人减少负担,提供安全的数据信息和高性能的云计算服务。
云服务器可分为不同的ECS类型,CPU与内存的配比不同,运行宽带和内核具有差异性。云端系统配置可以用Windows系统和Linux系统,本系统使用的是Linux系统Ubuntu版本,其优点在于Ubuntu版本提供了更优化的系统,操作方便,软件更新较快,稳定性更佳。选择合适的内核类型,会让云服务器的服务更高效快速。
首先需要注册购买云服务器,选择合适的运行内核,进入管理控制台的云服务器ECS选择合适的地域以
及需要的系统盘。进入实例:选择Linux系统盘进行配置,配置时记住设置的密码,在Linux界面连接云服务器,在远程连接操控云服务器时,其中最重要的信息是云服务器的公网IP和私网IP,这两个IP地址是远程连接控制云服务器的关键,也是后期多机器人编队时通信的重要依据。
进行VNC远程连接后进入操作界面。远程连接的工具很多,有宝塔SSH远程连接、PuTTY连接等,在选用不同商家的云服务器的上会到相应的安装包。
云服务器的系统除在第一次购买时可进行配置外,后期也可自由更改配置。进入实际的ID修改云服务器的系统,先将云端实例中的系统盘停止,再进行更换系统盘的操作,完成更改系统盘后,重新启动方可继续使用。
2.2云连接及其终端控制
PC端做为客户端控制云服务器,PC端与云主机连接选择的工具是PuTTY,在连接云服务器时,输入云服务器的公网IP即可连接。由于云服务器无可视化页面,所以可以利用PuTTY的终端页面进行操作控制,在终端界面的命令框中输入root用户名称和密码,如:root@ i-2zed2cbgi4jm1qics65k。控制云端的操作与本地服务器的操作命令一致。
将本地文件放入云服务器某个目录或文件下,可通过一个远程传输工具进行传输。WinSCP传输比较方
便快捷,但利用WinSCP实现本地与服务器的连接需要用到云主机地址、root用户名、密码,登录后呈现出传输页面。当需要传输时只需要拖住本地文件拉进云服务器的页面即可完成上传,页面如图2所示。
图2 WinSCP详细界面图
2.3云端数据库
多自主移动机器人进行编队时,坐标信息会随着运动而不断改变,机器人编队实时数据的分类处理,可表达多机器人编队的位置准确性。
运用云端MySQL数据库存储数据,创建数据库,对数据库进行配置,创建数据表,将每个机器人的实时位置
信息放在对应的数据表中。
机器人进行编队时插入采集的信息或计算调用数据都可在数据库中进行查,云端数据库也是无可视化页面的虚拟空间,为了方便直观查看,设计者可在云服务器上搭建一个Web 浏览客户端,用root 账户远程实时访问MySQL 数据库的信息。
创建数据库可以在终端输入命令创建、利用Python 语言运行PyMySQL 进行创建。本文用PyMySQL 创建数据库,连接云端数据库的必要操作元素有:
host:公网IP;user:用户名;password:登录密码;database:数据库名称;port:允许的串口。
创建表格后,运用SQL 语句将位置信息插入到数据表。通过Navicat premium 工具将云端的数据库可视化。
建立数据库的表格信息包括:R_id(机器人序号)、Color(机器人颜)、Location(位置)、Time(实际传输时刻)等,具体结构如表1所示。(本文中位置取值以0.1mm 为单位,例如:703为70.3mm,下同)。
表1云端存储数据库信息
序号颜位置/0.1mm 传输时刻1红(703,341)2020.11.05.19:45:482黄(-731,96)2020.11.05.19:45:483蓝(412,-560)2020.11.05.19:45:484绿(425,162)2020.11.05.19:45:485紫(692,500)2020.11.05.19:45:486
黑
(-120,550)
2020.11.05.19:45:48
3编队控制云
3.1云端通信
对机器人编队来说,机器人与云端通信是重要的部分,在进行通信之前要进行通信协议选取。
在无线通信研究领域,前人提出了TCP/IP 协议进行通信,目前,最常用的协议是TCP/IP 协议。TCP/IP 协议仍是一个协议簇,由FTP、SMTP、TCP、UDP、IP 等协议构成选择TCP/IP 协议进行通信,通信结构图如图3所示。
图3 通信传输图
本系统主要利用树莓派控制板作为媒介发送和接收信息,树莓派与云主机需要双向接收和发送数据。两端需
要进行编程发送(client)模式和接收(server)模式。基于TCP/IP 协议的套接字(Socket)进行通信,云服务器的IP 及其运用的端口是通信协议最基础的部分,本文的云服务器与机器人通信是通过树莓派进行中间传输通信,树莓派作为发送端,云服务器作为接收端,进行数据的打包传输。多机器人编队运用TCP/IP 协议方便快捷,安全性高。
与云端通信采用Python 语言编写代码,通过Socket 进行数据传输,测试数据的发送端,发送的是摄像头检测的位置坐标,通过Socket 传输云端,接收端与发送端的数据相同,当发送端输出[320.0,-540.0,‘blue’,0.0]、[564.0,251.5,‘green’,0.0]、[-692.0,28.5,‘red’0.0]三个颜的坐标时,输出端收到的坐标也为[320.0,-540.0,‘blue’,0.0]、[564.0,251.5,‘green’,0.0]、[-692.0,28.5,‘red’0.0],每个颜的坐标数据都一一对应无错误,表示云服务器与树莓派通信成功,经过多组数据测试也验证了两者通信无错误,接收到的位置坐标如表2所示。
表
2 发送端与接收端的数据
标签颜lue(蓝)
green(绿)red(红)发送端数据[320.0,-540.0,’blue’,0.0][564.0,251.5,’
green’,0.0]
[-692.0,28.5,’red’,0.0]接收端数据
[320.0,-540.0,’blue’,0.0]
[564.0,251.5,’green’,0.0]
[-692.0,28.5,’
red’,0.0]
3.2云端控制编队
运用云服务器进行多机器人编队时,将本由机器人承担的运算部分存放在云端,定位的信息即时传输到云端数据库,在云端存储和计算
[5]解决了传统本地计算模式带来的计算资源有限性与编队系统对运算速度高要求之间的问题,使机器人更专注于环境采集和任务执行,增强编队的灵活性、准确性和实时性。
3.2.1领航跟随算法
多机器人编队用到领航跟随法与视觉定位,通过视觉定位判断编队机器人的位置是否正确。编队的实现主要基于领航跟随法(Leader-Follower)[6]的思想,常见的编队队形有线性队形、菱形队形、三角形队形。当机器人变换队形时,云端服务器发送编队指令控制领航者移动到对应的坐标,跟随者随着领航者发送的信息开始移动;云端调用数据库中的坐标与实际坐标进行判断,检测每个机器人
的位置是否正确。如:线性队形变换为三角形队形时,机器人队形如图4所示,编队机器人通过最优途径到达编队位置,变化如表3所示。
图4 机器人的队形及变换
表3 编队坐标变化表 单位/0.1mm
颜
标签
红黑紫蓝绿黄
线型队形(red,leader,
1000,2000,
0)
(black,follower,
1500,2000,
0)
(puple,follower,
2000,2000,
0)
(blue, leader,
2500,2000,
0)
(green,follower,
3000,2000,
0)
(yellow,follower,
3500,2000,
0)
三角队形(red,,leader,
1000,2000,
0)
(black,follower,
1500,2500,
60)
(puple,follower,
2000,2000,
0)
(blue,leader,
2000,3000,
60)
(green,follow,
2500,2500,
60)
(yellow,follower,
3000,2000,
60)
数据包含:颜标志:红、黑、紫、蓝、绿和黄;角
标志:领航和跟随者;位置坐标:横坐标和纵坐标,变换的角度。可以看出,当线性变换为三角形编队时,红坐标和紫坐标不变,黑、绿、蓝分别向上移动,黄向左移动。经过最优移动途径编队,再结合云端大数据存储和计算功能,机器人编队效率提高。
3.2.2视觉、编队、云端结合
在机器人编队视觉定位的过程中,领航者位置坐标信息由两个摄像头进行检测,最终将两个摄像头折合为一个坐标定位;视觉定位主要运用树莓派进行处理,树莓派利用OpenCV库对图像进行处理,通过检测物体形状和颜[7],对所需颜以及形状进行分析识别,识别计算所得的坐标信息及时存储云端。检测过程中用不同颜的正方体代表不同的机器人进行位置检测,图5为摄像头的定位检测校正,图6为实际摄像头的定位检测。
图5摄像头的定位检测校正图 图6 实际摄像头检测图多组检测坐标与实际坐标对比如表4所示,检测的坐标数据单位为mm,检测的数据与实际坐标之间的误差最大为5.41cm,不过误差在可行的范围内,
对机器人的编队不会有太大影响。
表4 检测坐标与实际坐标对比表 单位
/0.1mm
红
检测坐标
1
(-2800,2916)
实际坐标
1(-2700,2500)
检测坐标
2
(-3700,5360)
实际坐标2(-3500,5300)
蓝
检测坐标1(1600,2741)
实际坐标1(1600,2550)
检测坐标2(3650,5541)
实际坐标2(3650,5000)
绿
检测坐标1(-500,-2800)
实际坐标1(-500,-2400)
检测坐标2(1800,-5016)
实际坐标2(1700,-4700)
控制摄像头定位采用Python语言编写,摄像头定位时,
由于获取的坐标信息仅为图像中像素坐标,并非系统中真
实的运动坐标,所以,待信息稳定后将像素坐标转化为真
实坐标,坐标信息处理后,通过Socket传入云服务器存储。
摄像头实时检测机器人的位置是否正确,编队队形是否是
预期所想,如果编队发生错误,云端收到当前错误进行计
算后返回正确编队信息,使机器人改变当前错误位置,重
新调整编队队形。
视觉检测多机器人的颜和形状进行定位,定位后的
位置信息传入云服务器进行计算判断,如果通过视觉检测
错误,将信息传入云服务器,云端检测出错误信息对这些
错误分析计算,最后输出正确的位置信息,控制机器人进
行位置修改。
云服务器进行分析计算相对传统的本地计算速度较
快、计算准确,减少了本地运算出现的问题和机器人自身
运算的负担。树莓派与云服务器的传输、发送信息,都运
用安全性和稳定性较高的TCP/IP协议C/S模式通信。
3.3云端传输带宽的延迟测试
本研究选用的是双核 4GiB的阿里云服务器,在树莓
派与云服务器的通信过程中,网络传输会存在延时,由于
数据在云边链路中串行传输需要花费时间,因此会有一定
程度上的延时,网络的拥堵也会使其发生变化。本文在信
息传输时对上述情况进行了研究检测,检测结果如表5所
示。
(a) 线型队形(b) 三角队形
表5 延迟检测表 单位/ms
收发数据次数
带宽延迟稳定区间
平均延时12345
1.05-
2.981.30-4.462.54-6.25
3.40-6.98
4.38-8.98
1.62
2.67
3.69
4.81
5.84
表5所列为宽带传输下进行的5次测试,计算出的延时时间以及平均延时时间。延时是客观存在的,具有一定的波动性,有上升或下降,但基本会在一个稳定的区间内。笔者对实验中存在的延时进行了避免及克服:机器人进行编队时,当机器人到达指定的编队位置时,会进行编队的队形短暂保持,这正好规避了宽带的延时,使整个程序正常运行。
4总结
本文的研究是基于云服务器的多自主移动机器人的编队控制,设计了基于视觉的移动机器人编队定位方案,采用领航跟随算法设计编队队形,运用无线通信模块与云
服务器连接通信。通过理论分析以及实验,证明了多机器人编队与云服务器结合是可实现的研究,云服务器的存储和计算相对传统本地计算效率更高。最早的机器人编队研究将数据的分析计算放在机器人自身,使编队时机器人自身负担加大、数据计算混乱、响应传输缓慢,将数据在云服务器进行计算处理,减少了本地负担以及机器人自身系统的配置要求。
本文的研究还存在一些不足之处,由于单个摄像获取的照射面积较小,本文采用两个摄像头进行检测定位[8],摄像头处理速度较慢。树莓派与云服务器的通信方面也有不足之处,在未来的研究中,笔者计划选用单个照射面积较大的摄像头,云端连接时端口要提前开放等。
服务器
本研究对未来规划发展:各类领域机器人在执行任务时,采集的数据在存储和计算方面可结合云服务器提高效率;云服务器也可用于企业数据的存放;基于云服务器的多自主移动机器人编队,可用于多机器人协作代替人类完成危险性较高的任务。
参考文献
[1] Ramasubbareddy S, Sankar S, Mishra B,et al. Secure Key Storage and Access Delegation [J]. International Journal of Knowledge and Systems Science (IJKSS), 2020, 10(1):4-14.
[2]张建伟,樊臻,颜钢锋,等.多自主移动机器人系统协调及合作控制实验平台[J].浙江大学学报(工学版).2010,11(6):2124-2129.[3]王大伟,王卓,王鹏,等.基于边缘计算的云原生机器人系统[J].智能科学与技术学报.2020, 2(3):275-283.[4] 陈海汝,何青,潘轩平,等.基于云服务器的SSM 框架后台搭建与实现[J].信息系统工程.2019 (11):114-117.[5]徐建明,俞俊铭.基于云平台的机器人监控系统设计[J].高技术通讯,2020,30(9):938 -948.
[6] 吴军成,肖宇峰,霍建文,等.不确定环境下多机器人编队控制研究
[J].计算机应用研究.2020: 1-6.[7]黄金梭,沈正华.基于视觉和工业机器人的动态抓取技术[J].包装工程.2019,11(40): 177-182.
[8] 季旭全,王君臣, 赵江地,等.基于机器人与视觉引导的星载设备智能装配方法[J].机械工程学报,2018,23(1): 63-72.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论