基于移动网络的机器人任务控制系统
2019-07-11胡浩东尹丽菊许文强于同阳
胡浩东,尹丽菊,许文强,于同阳
(山东理工大学 电气与电子工程学院,淄博255049)
近年来,我国机器人行业迅猛发展,2017年全球机器人市场已达232 亿美元,同期中国市场规模约为62.8 亿美元。2012年至2017年全球市场平均增长率约为17%,同期中国市场平均增长率达到28%,我国成为全球第一大工业机器人应用市场[1]。至2016年国务院《“十三五”规划纲要》发布以来,对于大力发展机器人产业的国家政策不断出台,机器人产业的发展迎来关键时刻[2]。
随着第五代移动通信网络(5G)[3]标准的逐渐完善和5G 商用化的来临,物联网技术即将迎来一波新的应用高潮。5G 网络具有极高带宽、超低延迟和高密度连接等特点,理论上能够实现真正的万物联网、永不掉线,有望实现许多通过旧网络标准无法实现的新用例。
现在的无人机和智能车等运动型小型作业机器人大多还是需要人来进行操控作业,无法彻底的解放双手;机器人通常采用2.4 G 射频信号作为遥控数据通信载体,在国家标准[4]对其功率限制下,其有效距离最高也只能达到500 m 左右,控制距离较短;机器人使用了固定的规则执行任务,需要改变任务时,需要重新烧录程序,操作繁琐,技术性要求较高。对于以上问题,亟需一个操作简单,可定制性强的机器人控制管理系统。因此,本文提出了一种基于移动网络的机器人任务控制系统,并进行了仿真实验。
1 控制系统总体设计方案
基于移动网络的机器人任务控制系统采用上位机软件+硬件终端的模式,将任务的发布及任务操控功能置于上位机中,终端负责控制机器人任务的具体执行。系统整体采用如图1所示的用户端-服务器-任务控制终端-机器人控制器的结构。
图1 系统结构Fig.1 System structure
用户端包括浏览器、PC 端和移动端,尽可能使用户可以随时随地的使用本系统,提升用户体验。
服务器采用阿里云ECS 服务器。阿里云ECS 是基于阿里云飞天操作系统的云务器,可根据用户需求提供弹性可伸缩的计算服务。在阿里云后台部署Windows/Linux 操作系统,安装微软.Net Core 运行环境,开放服务器访问端口。
为达到可定制化的要求,采用独立的任务控制终端与机器人主控制器进行通信。任务控制终端内置有高性能STM32 微控制器和稳定的外围模块,控制机器人的任务执行。
用户在客户端发布任务后,任务将会同步到服务器,服务器对相应的任务控制器进行任务控制执行。发布的任务会同步缓存在任务控制终端中,保证网络断开等异常状况时,机器人同样可以正常执行任务。
2 硬件设计
在本系统中,机器人的控制是系统实现的关键,本系统提出了一种独立的任务控制终端,承担着服务器和机器人主控制器的通信工作,也承担着控制机器人执行任务的工作。为了达到硬件配置的灵活性和可定制性,任务控制终端采用模块化的设计思路。
系统主要由主控制器、移动网络模块、GPS 定位模块、高精度时钟模块、数据存储器和扩展传感器接口组成。设计方案如图2所示。
图2 任务控制终端Fig.2 Task control terminal
主控制器选用意法半导体公司的STM32 系列芯片。该芯片基于32 位ARM Cortex-M 内核[5],性能强大,技术成熟,性价比较高,拥有丰富的硬件接口。芯片拥有多个不同性能的系列,具有极大的选择性,非常适合作为该系统任务控制终端的主控制器。
移动网络模块选用中兴公司的4G 通信模块ME3760[6]。4G 网络模块通过串口与主控制器进行通信,通过AT 指令实现服务器与主控制器的数据传输。经过测试,4G 网络模块能够基本满足该系统的网络性能需求,等待5G 实现大规模部署和商用化后,将4G 网络模块替换为5G 网络模块,以5G 网络极高带宽,超低延迟和高密度连接等特点,将极大的提高本系统的稳定性。
陀螺仪、加速度计、磁力计选择ICM20602和AK8975 配合使用,进行任务控制终端的位置控制。三种传感器都使用高速的SPI 接口与主控制器进行数据通信,主控制器获取3 种传感器的数据,进行数据融和姿态解算,保证机器人执行任务中相对位置的准确性。
GPS 模块负责地理位置采集的工作。GPS 模块通过串口与主控制器进行通信,保证机器人任务执行时的绝对地理位置的准确性,并且服务器对机器人进行实时地理位置监测。
高精度时钟模块采用RS8025 模块。RS8025 模块通过I2C 总线与主控制器进行通信,周期性的对主控制器内部的RTC 模块进行校准。每一次任务控制终端启动时,会与服务器进行时间同步,保证任务控制终端时间的准确性和任务执行的实时性。
数据存储器选用常用的SD 卡。SD 卡通过SDIO接口与主控制器进行数据通信,具有较高的数据传输速率。主控制器实现了FatFS 文件系统,负责任务的离线缓存和任务控制终端运行时的日志记录。
任务控制终端选用串口、SDIO 或SPI 等数据传输速率较高的接口与机器人主控制器进行通信。经过简单的控制接口的匹配,任务控制终端就可以适配常见的机器人主控制器,具有优秀的适配性。
任务控制终端还预留了常用传感器的通信接口,可以扩展温度传感器、气体传感器、图像传感器等,能够执行指定的传感器数据采集任务。
通过上述模块的组合应用,任务控制终端能够稳定的实现与服务器和机器人主控制器的数据通信,准确准时的控制机器人执行指定的任务。
3 软件设计
3.1 软件架构设计
为了提高机器人任务控制系统的智能性、稳定性,并保证系统的整体性能,软件的设计部分至关重要。为了提供友好的用户体验和良好的可定制性,系统使用了C/S 与B/S 混合软件体系结构。服务器应用为了适应多种服务器系统的部署,采用微软全新开源跨平台应用框架.Net Core,使用C# 语言进行系统后台应用开发;浏览器端的Web 页面采用HTML+CSS+JavaScript 相结合进行开发;PC 端使用C# 语言进行Win32 应用开发;移动端采用Java 语言进行安卓应用开发;任务控制终端采用C 语言结合STM32 的官方HAL 库进行下位机应用开发;各部分统一使用TCP 网络通信协议进行数据的相互传输。
3.2 软件功能设计
3.2.1 设计核心
基于移动网络的机器人任务控制系统软件使用了队列先进先出FIFO(first in first out)的思想,将“任务”作为控制的基本单位,其结构如图3所示。
图3 任务结构Fig.3 Task structure
每一个任务控制终端都会动态的分配一个任务队列,由用户对任务队列中的任务进行添加、修改或删除操作。任务列表中的任务可以顺序执行也可以循环执行。
每一个任务由一个或多个事件组成,用户通过添加事件来定义任务的具体执行过程,对任务进行精细控制。
事件的基本属性为时间和地点,这两个属性控制机器人的具体运动。工作为可选属性,用户通过添加工作属性来实现机器人的传感器采集等工作。
软件设有任务模板库和事件模板库,用户可以手动添加模板,或者将定义好的任务或事件进行收藏,减少用户每次调整任务的工作量,方便用户使用。
3.2.2 用户端和服务器应用
用户端分为Web 端、PC 端和移动端3 个部分,他们由任务编辑界面和机器人监控界面等界面组成。主要实现以下功能:①机器人任务的编辑定义和任务生存周期的控制;②机器人各项参数的实时监控;③机器人出现任务执行失败等故障的报警,任务日志的记录查看与本地保存。
服务器端软件主要实现用户端与任务控制终端的数据同步,任务的云端缓存和不同用户的任务控制终端的匹配。应用采用.Net Core 框架和MySQL数据库编写,能够部署于多种不同服务器系统中。
3.2.3 任务控制终端应用
任务控制终端应用采用主循环处理+中断事件程序结构的协作式的任务系统[7],主循环结构如图4所示。
所有的任务将在主循环中得到执行,应用读取缓存的任务队列头的任务,顺次执行其事件队列中的事件,执行后的事件将被移除队列。当事件队列队尾事件执行完后,将会判断此任务是否是循环任务,若是循环任务,则重新装载此任务到任务队列头,若不是则任务队列将移除此任务,再次开始任务对列头的任务。
图4 控制终端执行流程Fig.4 Control terminal execution flow chart
串口中断函数任务:接收机器人主控制器返回的机器人的实时参数,并上传到服务器,供用户查看和分析。
RTC 中断函数任务:与服务器时间进行校对,修正任务控制中断的时间,保证任务执行时间的准确性。
定时器中断函数任务:在指定的时间间隔内:①获取陀螺仪、加速度计和磁力计的数据,进行姿态解算;②上传任务执行情况和任务控制终端姿态数据到服务器,方便用户的监测和查看;③进行任务日志的记录。
I2C,SPI 等传感器接口中断函数任务:接收传感器返回的信息,执行相应的传感器任务,分析数据并上传到服务器。
任务控制终端应用如此设计可以最大限度地利用CPU 的时间,以期在未来加入在线步态规划时有充足的CPU 资源。
4 实验仿真与结果分析
4.1 测试平台
以上述的系统设计进行仿真环境搭建。云服务器部署服务端应用,PC 机部署用户端程序,将下位机固件烧写入任务控制终端中,被控制机器人选用小型智能车进行测试。仿真测试平台如图5所示。
图5 仿真测试平台Fig.5 Simulation test platform
4.2 系统仿真测试
平台准备无误后,开始进行系统仿真测试。PC 端应用打开后会自动测试与服务器和任务控制终端的连接是否正常,连接成功后,界面右上角显示已连接。在用户端对智能车发布一个图书馆到信息楼到体育场再返回图书馆的循环任务,智能车开始按照任务内容运动且在用户发布停止命令前无限的循环执行。在测试过程中,智能车能够沿着道路的边缘直线运动,期间有一些小的偏离也可以很快的调整。用户端能够实时的显示智能车在地图上的位置信息和任务控制终端的一些基本参数。用户端程序运行情况如图6所示。
图6 系统运行界面Fig.6 System running interface
5 结语
本文结合现有机器人控制距离短,操作技术要求高等缺点,提出了一种新型的基于移动网络的机器人任务控制系统。经过仿真测试,该系统所表现性能优秀,与常用的机器人控制系统并无差距。并且系统通过移动网络进行通信,突破普通控制系统距离的限制;任务控制终端采用模块化设计,极大的提高了系统的适应性和资源的利用率;采用了任务控制终端和机器人主控制器分离的设计,针对不同的任务环境要求,系统具有良好的适用性。实验结果表明,基于移动网络的机器人任务控制系统界面友好、操作简单、可定制性强。随着5G 时代的来临,系统在智能物流等领域具有很强的实用价值和广阔的应用空间。