基于云的多自主移动机器人编队控制实现*

2021-07-04 07:57王清珍张珊珊
微处理机 2021年3期
关键词:队形移动机器人编队

王清珍,张珊珊,陈 浩

(郑州科技学院信息工程学院,郑州 450064)

1 引言

在多机器人编队过程中需要大量的控制数据,动态变化计算量大,采用机器人本地计算有一定局限性,在云端进行数据存储和算法实现便成为一种新的解决思路。在这一技术领域中已有很多研究人员展开尝试,获得了一定成果。Mishra等人提出了云存储数据的存储安全访问授权方式[1],为多机器人协作编队控制云实现提供了理论依据,并在阿里云服务器上布局机器人控制数据库实例。在多自主移动机器人的路径规划、编队成形与编队保持控制方面,孙玉娇等人提出基于领航者的多机器人系统编队控制[2]。另外,黄金梭等人在基于视觉和工业机器人的动态抓取技术[3]中提出相机检测和机器人动态抓取系统模型,为实现多自主移动机器人编队的流畅性提供了研究样例。

在借鉴前人研究成果优点的基础上,提出一套新解决方案,所实现的系统将视觉定位编队位置与云端相结合,相机定位后数据存储在云端,动态编队在云端计算,大量信息数据都放在云服务器中运行,进行实时性分析、计算,大大减轻机器人自身负重。

2 系统整体方案

云服务器端数据库利用电脑PC端作为控制端,创建、存储并更新机器人的位置信息和编队控制信息,与MCU端进行实时数据收集,并传输控制信息。MCU做为数据信息传输的中间媒介,本身所带的摄像头采集机器人的位置信息发给MCU,实现对机器人位置坐标检测,与云服务器发送的位置信息进行比对,完成视觉定位。MCU与多个机器人通过无线模块的TCP/IP协议进行通信,与云服务器、编队机器人分别连接,在编队过程中进行数据传输。系统总体结构如图1所示。

图1 系统总体结构图

3 云主机系统配置及连接

3.1 系统配置

所选服务器为阿里云的云服务器[4],通过云端存储计算多自主机器人编队的控制信息。云端系统配置使用Linux系统Ubuntu版本,选择合适的运行内核,重新登入,进入管理控制台的云服务器ECS,选择合适的地域以及需要的系统盘。进入实例选择Linux系统盘进行配置,配置时首先设置密码。

在Linux界面连接云服务器,在远程连接操控云服务器时,云服务器有公网IP和私网IP之分,这两个IP地址是远程连接控制云服务器的ID,也就是后期多机器人编队时的通信ID。进行VNC远程连接后就进入了操作界面。在此,远程连接的工具选用PuTTY。

3.2 云的连接及其终端控制

使用PC作为客户端控制云服务器,借助PuTTY工具连接云服务器,输入云服务器的公网IP,即可实现连接。

由于云服务器无可视化界面,需要利用PuTTY工具提供终端操作界面以便于操作控制。在终端界面的命令框中输入超级用户名和密码,显示的实例名称,如:root@i-2zed2cbgi4jm1qics65k。控制云端的操作与本地服务器的操作命令一致。

利用WinSCP实现本地与云服务器的连接。将本地文件放入云服务器的某个目录下或文件中,进行机器人的位置信息、编队控制信息传输。连接时需要提供云主机IP地址、超级用户名、密码,登录后呈现出传输界面。当需要传输时,只需将本地文件拖拽进云服务器的界面即可完成上传。

3.3 云端数据库

多自主移动机器人进行编队的数据包含编队队形、路径规划、目标位置坐标等信息。位置坐标信息会随着运动而不断改变。把实际位置坐标与采集检测位置坐标进行比对加以定位,实现多机器人的位置微调,以达到队形的保持和呈现流畅的队形。

建立数据库的表格,其中字段包括机器人序号R_id、机器人颜色标签Color、位置坐标Location、实时传输时间Time等,具体如表1所示。

表1 云端存储数据库信息

借助Navicat premium工具将云端数据库可视化,用pyMySQL创建数据库,对公网IP、用户名、登录密码、数据库名称和传输的串口等进行操作。创建表格后运用SQL语句将位置坐标信息插入到数据表,在编队过程中实时更新数据表。

4 编队控制云实现

4.1 云端通信

MCU与云端之间选择TCP/IP协议进行通信,通信传输流程如图2所示。

图2 通信传输流程图

此处MCU的主要作用是作为中介发送和接收信息。为实现多自主移动机器人的编队控制,MCU与云主机需要双向接收和发送数据。将两端分别编程为发送(client)和接收(server)两种模式,采用TCP/IP协议的套接字(Socket)进行通信。云服务器与机器人通信是通过MCU进行中间传输通信,MCU作为发送端,云服务器作为接收端,进行数据的打包传输。运用TCP/IP协议实现多机器人编队方便快捷,安全性高。

与云端通信采用python语言编写代码,通过Socket进行数据传输。测试数据的发送端发送的是摄像头检测位置坐标,通过Socket传输至云端。接收端与发送端的详细数据如表2所示。

表2 发送端与接收端数据

可见,发送端输出的三个颜色坐标,与在输出端收到的坐标完全相同,表明每个颜色的坐标数据都一一对应无误,云服务器与MCU通信成功。随后又进行了多组数据测试,得到了同样理想的结果。

4.2 云端控制编队

多自主移动机器人的编队采用领航跟随算法实现,把动态编队过程的运算部分存放在云端,定位的信息实时传输到云端进行数据库更新,在云端完成存储和计算[5]。

4.2.1 领航跟随算法

在领航跟随算法(Leader-Follower)中,位置坐标的校正是通过视觉定位来实现的。摄像头检测机器人的位置坐标是否与实际坐标一致,不同时通过前后左右的调整移动到实际坐标位置,即进行位置误差微调。机器人编队常见的队形有线性队形、菱形队形、三角队形等[6]。当机器人变换队形时,云端服务器发送编队指令控制领航者移动到对应的坐标,跟随者随着领航者发送的信息开始移动,云端调用数据库中的坐标与实际坐标进行判断,检测每个机器人的位置是否正确。例如:线性队形变换为三角形队形时,所建立的模拟坐标系如图3所示。编队中各机器人通过最优途径到达编队位置的过程中的坐标变化如表3所示。

图3 模拟坐标及队形变换图

表3 编队归位过程模拟坐标变化

可见,当编队从线性变换为三角形时,黑色、绿色、蓝色分别向上移动,红色坐标和紫色坐标不变,黄色向左移动,经过最优移动路径规划编队。云端大数据存储和计算功能使机器人编队效率更高。

4.2.2 视觉、编队、云端结合

在机器人编队视觉定位的过程中,领航者位置坐标信息由两个摄像头进行检测,最终将两个摄像头折合为一个坐标定位[7]。视觉定位主要由MCU完成处理,包括利用OPencv库对图像进行处理,通过检测物体形状和颜色,对所需颜色及形状进行分析识别,识别计算所得的坐标信息即时上传云端。检测过程中用不同颜色的正方体代表不同的机器人进行位置检测。模拟与实际定位检测摄像头如图4所示。

图4 模拟与实际摄像头定位检测对比图

多组检测坐标与实际坐标对比如表4所示。检测坐标数据单位为mm,检测数据与实际坐标之间的误差范围为0~54mm,处在可接受的范围内,对机器人编队不会有太大影响。为使编队队形更加流畅,还需考虑信息传输过程中因传输带宽所限而带来的的延迟[8]问题。

表4 检测坐标与实际坐标对比表

5 结束语

设计的基于云的多自主移动机器人编队控制方案的最终实现,说明采用视觉定位、云存储和云计算确实可以解决多机器人编队过程中的位置误差问题,实验结果满足编队流畅性需求,方法适用于2D环境下多自主移动机器人编队控制。由于云服务器与MCU、机器人三者之间采用无线通信,现实使用中的控制指令下发和机器人位置坐标上传受传输带宽的延迟限制,机器人编队的部分动作仍存在短暂不连贯,还有待未来进一步研究解决。

猜你喜欢
队形移动机器人编队
移动机器人自主动态避障方法
队列队形体育教案
诗歌的奇怪队形(一)
基于事件驱动的多飞行器编队协同控制
基于Twincat的移动机器人制孔系统
基于RQPSO-DMPC的多无人机编队自主重构控制方法
无人机编队机动飞行时的队形保持反馈控制
基于预测控制的无人机编队内部避碰
多弹编队飞行控制技术研究
极坐标系下移动机器人的点镇定