马兆圆,谢永强,张志浩,高林,武晓君
西安电子科技大学 机电工程学院,陕西 西安 710068
近年来,机器人产业蓬勃发展并日渐成熟,在各领域均得到广泛应用,可满足多工种、高精度的工业生产需求[1]。为实现机器人与使用者实时交互,实现机器人状态感知及使用者对机器人的实时控制,需设计专用的显控系统。显控系统作为机器人系统呈现图像、文字等信息的综合载体,与使用者进行直接交互并向机器人端传递指令信息,是机器人系统不可或缺的一部分。早期的单机器人系统一般由1 个主控设备控制1 个机器人,其系统结构相对简单,显控软件也易于设计实现。随着物联网[2]、智能制造[3]、机器人群组编队[4-6]等技术的不断发展,传统的单机器人显控系统已难以满足新的需求。而国内外对机器人群组系统的研究大多着重于机器人本身的自动识别、自动导航、自动避障等功能的发展,如:蒋红梅等[7]提出基于机器人操纵系统的自动驾驶小车系统设计,提供了超高精度的导航地图与超高精度的物体识别;李玉霞等[8]提出采摘机器人的路径规划系统动态优化研究,优化了采摘机器人路径规划系统的整体路径搜索率与路径平滑性;Kumar 等[9]在动态环境和静态坏境下的多机器人系统中开发了一种混合控制器,提升了机器人路径规划与避障能力;Ye 等[10]提出一种基于极值的攻击策略,使机器人的性能在障碍物较少且最大避障速度受限的情况下得到极大提升。
而关注于机器人群组系统显控软件设计的研究则较少,机器人群组控制要求显控系统具备大规模多样化信息接入与承载、动态灵活扩容与可视化管控以及实时稳定可靠等能力[11],合理的显控软件对于机器人系统多种功能的实现也至关重要。本文基于对多个机器人的遥控、编队等功能的控制需求,设计了一款机器人群组操控系统。该系统通过WinForm 窗体应用程序设计,构建交互界面,实现对多个机器人状态切换和编队等操作。该系统操控简便、界面简洁,在实际操控中具备良好的安全性、实时性、稳定性。下文将从系统框架、操控系统功能设计与操控系统界面设计3 方面对机器人群组显控系统进行介绍。
机器人群组系统总体框架如图1 所示,显控系统通过Mesh 组网与机器人端进行命令下达与数据交互,实现对A、B、C 这3 个机器人在停止模式、单机遥控模式、群组遥控模式、单机循迹模式、群组循迹模式等多种状态下的控制。显控端连接G29 遥控设备,系统读取并传递方向盘信息给机器人端实现遥控功能;同时显控端设有图传显示器,显示机器人端的图传摄像头拍摄的高清画面。机器人端连有北斗、激光雷达、毫米波雷达等参数传感器,将位置、姿态、状态等信息上传至显控端,由显控端通过地图、图像、文字等方式显示给使用者,使使用者获得良好的操控体验。为确保更全面地显示机器人周围环境,除图传摄像头外,机器人端还连接着2 个海康摄像头,拍摄的图像在显控系统中进行显示。
图1 系统总体框架
多机协同系统是集合多种功能于一体的复杂系统。在机器人群组显控系统中,除去图像显示、命令的下达、数据的接收与发送、遥控、地图显示与数据存储等基础功能外,实时性、控制结构的合理性、操控的动态性等问题也是系统设计的关键[12-13]。同时,显控系统对3 个机器人进行状态切换、编队等操控时,如何保证系统高效、稳定和安全运行也是考虑的重点[14]。
考虑到显控系统需要实现多种功能,为了提高系统的实时性和控制结构的合理性,将部分功能封装成相对固定、易于调用的各种模块。下面对各功能模块的设计进行具体介绍。
在应用中,Mesh 组网有部署速度快、安装简单、数据传输的可靠性高、覆盖面积广、高传输效能等优点[15]。在系统中,显控端与机器人端各自通过网线连接Mesh 电台接入Mesh 组网,实现显控端向机器人端发送指令、显控端与机器人端数据互传的功能。
图像传输流程如图2 所示。为使使用者在操控机器人时更好地观察到机器人周边的环境,在机器人端设置1 个高清摄像机与2 个海康摄像头。高清摄像头通过HDMI 接入Mesh 组网,将1080p 图像传输至显控端显示器。海康摄像头传输的图像由显控界面直接显示,该界面在完成预览的同时还具备抓图和录像功能,可将图片或视频存储于指定位置。在机器人切换时,显控端通过变更连接的摄像头IP 与串口号进行3 个摄像头的切换,及时给使用者显示机器人端的周围环境,使操控更加安全可靠。
图2 图像传输流程
为保证机器人状态切换时的安全,在该模块中需要进行2 个判断指令。
1)判断机器人选择是否发生变化,如图3 左侧所示。该判断在机器人切换时进行,目的是保证机器人切换后前一个操控机器人处于停止状态。
图3 数据发送模块流程
2)判断机器人状态是否发生变化,如图3 右侧所示。该判断在机器人状态切换时进行,目的是确保状态切换间的机器人处于停止状态。
数据接收模块接收机器人端发送的数据信息,包括机器人IP 地址、字节长度、位姿信息、速度、旋转角度、编队模式等。数据接收模块将接收到的字节数组解析出相应信息,并调用数据存储模块与数据显示界面,将数据有效地显示与存储起来。
在机器人处于“采集路径模式”、“单机遥控模式”和“群组遥控模式”时,需要在显控端远程控制机器人运动。在该模块中,使用罗技G29 方向盘和踏板硬件,获取转向、油门、刹车等信息。在该模块中,使用定时器控件配合数据传输速率读取方向盘信息,实现遥控的实时效果。
数据存储模块使用MySQL 建立,该数据库具有体积小、速度快、总体成本低和开源的特点,适用于小型数据库的建立,并且支持多种操控系统,方便开发者使用[16]。该数据库主要实现存储、读取、删除的功能,调用接收数据模块与地图显示模块。为提升数据库的数据提取效率,在数据库单机情况下对其性能进行调优[17]。为方便管理,数据库设计2 类表格,一类负责存储循迹路线,方便后续下载和显示;一类负责存储各种模式下机器人的位姿信息。数据存储的物理结构如表1 所示。
表1 数据存储的物理结构
地图显示模块采用Gmap 控件,该控件是一个强大、免费、跨平台、开源的.NET 控件;地图使用OpenCycleMap 地图,该地图在Gmap 控件中可直接使用,并且使用WGS-84 坐标系,可直接使用北斗定位发送的经纬度,减小了坐标系转换造成的误差[18]。为保证离线地图正常显示,使用官方Demo 下载瓦片地图,使用Gmap 类进行加载[19]。地图可等级缩放、鼠标拖动,并可使用图标实时显示机器人位置,供使用者参考。
机器人群组操控系统的设计需满足结构的易维护性、界面的易用性、信息传递的准确性和运行的稳定性[20]。在考虑到上述性能需求后,基于C#编程语言、WinForm 应用进行显控系统设计开发。图4 所示为机器人群组操控系统的主显示界面,该界面主要由3 部分组成:第1 部分是使用者选择部分,在该部分由使用者开启对机器人的通讯,并选择机器人和对该机器人下达的命令;第2 部分是地图部分,在该部分显示机器人所处位置;第3 部分是图像部分,实时显示机器人端的2 个海康摄像头拍摄图像,供使用者观察机器人周围环境。除此界面外,在主显示界面选择不同的机器人状态时,会显示出不同状态的功能界面,机器人状态选择与各选择下的功能如图5 所示。其中,单机遥控模式与群组遥控模式下都在界面中使用仪表控件实时显示机器人速度,并在图4 所示的地图上显示机器人位置。采集路径模式下,在该界面小地图上显示采集的路径供使用者参考:单机循迹模式下,需要使用者输入在循迹时机器人的速度与机器人的循迹方式(正向循迹或反向循迹),并下达命令,使机器人按照指定方式进行循迹;群组循迹模式下需要使用者输入循迹时机器人的速度、循迹方式和机器人之间的距离。
图4 操控系统主界面
图5 不同状态界面的功能框架
系统通过主界面与各状态下的功能界面共同为使用者提供状态切换、地图显示、机器人编队、实时图像显示等功能,操控便捷、显示清楚,易于使用者上手。
在机器人测试中运行文中设计的显控系统,该显控端与3 辆机器人进行通讯与操控,测试内容包括:
1)单机遥控、群组遥控。如图6(a)单机遥控与群组遥控界面所示。在该模式下,显控端通过罗技方向盘操纵机器人运动,使用者可以通过显控端观察机器人端周围环境、机器人速度与机器人所处位置。
图6 多种状态下的操控界面
2)采集路径模式。使用者点击“开始采集”按钮,通过方向盘操纵机器人留下循迹路线,如图6(b)右下角所示,点击“结束采集”按钮,存储采集到的路线,以便后面调用。
3)单机循迹模式。如图6(c)单机循迹界面所示,在该模式下,显控端提示使用者输入机器人循迹速度、循迹执行命令,输入结束后根据采集路径模式下存储的路径执行循迹。
4)群组循迹。如图6(d)群组循迹界面所示,在该模式下,显控端提示使用者输入机器人循迹速度、循迹执行命令与机器人间距,输入结束后根据采集路径模式下存储的路径执行循迹。
实验证明,显控端在多种模式下运行稳定,并在模式切换间使机器人处于停止状态,保证了机器人端运行时的安全;系统处理消息速度快,可实现位置、速度等信息的动态更新,实时显示机器人位置、周围环境信息。
本文设计了一套基于C#编程语言、WinForm应用的显控系统。该系统实现了多机通讯、状态切换、地图显示、实时图像显示、数据保存等功能。经过测试,该显控系统操控简单、运行稳定,在多种状态中满足设计需求,具有良好的实时性,为今后的机器人群组显控系统提供了参考依据。