林宏伟 陈泽兴 陈俞秀 陈琪媚 赵其湛 洪远泉
摘 要:文中提出一种基于云控制的业务引导机器人系统的设计方案。系统的硬件部分由摄像头和光电传感器等模块组成。在机器人系统中采用深度强化学习,实现了对未知环境的预测,提高机器人对环境的适应能力。仿真结果表明:机器人可实现路线识别和自动导航的功能,能较好适应未知环境、及时完成业务的引导工作;该系统设计合理,操作简单,具有一定的市场价值。
关键词:深度强化学习;自动导航;云控制;路线识别;机器人;未知环境
中图分类号:TP242.6文献标识码:A文章编号:2095-1302(2020)03-00-03
0 引 言
随着人工智能的发展,机器人技术已成时下研究的热点之一。机器人也逐渐渗透到人们的生活中,同时也在慢慢改变着人们的生活方式。因此,研究和开发机器人有着一定的社会意义和经济价值。近年来,服务型机器人成为了人们关注和研究的热点,例如智能家居服务机器人、儿童看护机器人和老人陪护机器人等。其中,业务服务型机器人在办理业务方面有着很大的发展空间。为了解决人力成本高,效率低的问题,很多业务厅都使用服务机器人替代人力的新型高效服务方案。虽然现在已出现了前台服务机器人和设备,但是智能化普遍不高,而且服务效率很低,无法满足人们的需求,而且本地资源的有限性限制了机器人的开发。
随着云技术的不断发展,云控制技术给机器人的开发及研究提供新的方向。云计算资源规模庞大,服务器数量众多并且分布广。云计算系统的平台管理技术能够高效调配大量服务器资源,使其更好协同工作能力,其能方便地部署和开通新业务,快速发现且恢复系统故障。因此,通过云控制技术实现资源分配和调度[1],利用线上控制多组机器人,提高机器人的工作效率,结合云平台实现多组数据的收集和分析,增强机器人的可控制性。通过云端搭建神经网络和ROS操作系统,实现了多机控制协作。由此可见,结合云端对机器人进行开发在一定程度上可以提高机器人智能性。
1 系统总体架构
业务服务机器人系统的架构有三层:海端机器人组、云服务端和远程控制端。如图1所示,系统架构采用分层设计,使得具有一定的灵活性,便于移植和控制。
海端机器人[2]组由多组智能机器人组成,主要负责引导用户,并提供服务,其工作流程如下:首先,机器人获取到用户需要办理的业务指令后,上传摄像头对周围环境感知的数据到云端;接着,结合线上云服务端算法,驱动电机工作,实现自动导航;最后,完成引导用户的任务。
云服务端为上层用户端,主要用于搭建数据库服务端、TensorFlow 学习框架和ROS系统。基于Linux操作环境开发,便于开发和移植。云端通过网络接收机器人的请求服务和机器人感知的数据,结合TensorFlow学习框架,通过发布ROS节点消息[3]实现对机器人控制;通过云服务端,远程控制端可以间接访问机器人组。
远程控制端,即可以提供远程服务。远程服务端可以细分为两部分:管理员控制端和用户服务端。工作人员可以通过此系统的上位机登录管理员控制终端,实现对系统的监控和控制;用户通过Web端可以实现对系统发送请求服务和查看相关业务的办理进程。
2 机器人硬件设计
该机器人硬件设计总体框图如图2所示,机器人硬件设计遵循简易化模块搭建原则,即去除多余的传感器和驱动设备,以最简的硬件搭建最完成的硬件系统。该机器人的核心板选用Jetson Nano板;摄像头选用的是网络USB摄像头;HDMI显示器选用分辨率为1 024×600,尺寸为7寸的电容屏;电机驱动模块选用TB6612双路PWM驱动模块;光电传感器模块选用E18-D80NK光电传感器。
2.1 核心控制板
核心控制板选用的是Jetson Nano人工智能GPU开发板。Jetson Nano有很高的计算性能,提供了470多个GFLOP,可用于快速运行AI算法,并行运行多个神经网络,同时处理多个高分辨率显示器。Jetson Nano的功耗低,它的功耗仅为5~10 W;提供丰富的接口,搭配4个USB 3.0接口、40PIN GPIO扩展口、多个HDMI接口、MIPI CSI摄像头接口和千兆以太端口等。同时,此核心板搭配有功能扩展板,功能扩展板实现了对核心板功能的扩展,扩展板扩展了多个SPI接口,I2C接口和PWM接口等外部接口。
2.2 电机驱动模块
电机驱动模块选用L298N,其通过控制高低電平进而控制电机的转动,高速时可输出相对较高的力矩。L298N的定位精度较高,可以让电机达到精确的控制。通过控制PWM信号调整电机的运动速度变化,且此模块具有驱动能力强发热低,抗干扰能力强的特点。
2.3 光电传感器模块
光电传感器模块选用E18-D80NK传感器模块,该传感器具有成本低和性能稳定的特点。该模块由发射器和接收器组成,发射器对检测的物体不间断地发射红外光束,接收器把检测反射回来的光束转换为电流后传输给主控驱动电路。发射器和接收器的检测距离具有可调节性,调节范围为50~2 000 cm,探测的距离远且不易被外界干扰。
3 机器人结构设计
服务机器人结构设计如图3所示,从下到上为移动层、升降层和交互层。移动层的底盘采用三个全向轮以中心对称结构的分布,边侧的三个高清摄像头和底侧的多个红外传感器相结合检测收集周边的路况和障碍;升降层通过步进电机转动丝杆,从而上下移动圆盘来控制机器人的整体高度,以适应不同高度的使用者;交互层由显示器构成,顶部的显示屏可以与用户进行交互,显示屏显示需办理业务的排队人数和目的最优路线图。
4 系统软件设计
4.1 云服务端架构设计
云服务端架构包括ROS操作系统、TensorFlow和MySQL数据库三部分,如图4所示。云服务端主要用于机器人路线规划算法的计算任务和数据分析存储,云服务端提供了API接口供管理员和用户通过Web端访问,利用搭建的通信协议层与海端的机器人进行通信。
4.1.1 ROS系统
ROS(Robot Operating System)[4]是由Willow Garage公司在2010年發布一个开源的机器人操作系统,旨在提高机器人开发过程中的软件利用率。ROS是一种分布式处理框架,主要特点包括:具有点对点的设计特点,支持多机协作;支持语言混合开发,支持Python、C++等编程语言;架构精简,集成度高,每一个的功能节点可以单独编译,接口统一,提高了软件复用率。云服务端上装载有ROS_bridge[5],ROS_bridg是ROS开源环境下的一个扩展模块,由Christopher Crick,Graylin Jay,Sarah Osentosiki,Benjamin Pitzer和Odest Chadwicke Jenkins 提出ROS_bridg是一种中间插件,通过ROS_bridg可以使得云端ROS系统和海端的机器人群进行交互控制,使得机器人控制更加高效性。
4.1.2 TensorFlow学习框架
TensorFlow是谷歌研发的第二代人工智能学习系统,完全开源。在云服务端搭建TensorFlow学习框架,通过将训练完成的coco训练集部署在云服务端可以实现机器人群对周围环境物体的识别;通过部署深度Qt可以实现机器人群自动规划路线以及导航的工作。在云端搭建TensorFlow学习框架结合通信层协议,可以实现在多机协作工作,在云端服务器完成强化学习后,机器人只需要通过请求服务即可获取云端训练好的数据集。这样大大提高了工作效率,不需要单独对每个机器人强化学习训练。
4.2 控制端操作界面设计
针对本系统设计了一套基于Qt的系统操作界面,如图5
所示。Qt[6]是一个跨平台基于C++的的图形界面设计的开发框架。图形用户界面(Graphical User Interface,GUI),又称为图形用户接口,是采用图形方式显示的计算机操作用户界面[7]。此界面主要由业务信息、人流情况、业务路线、导航地点输入以及地图这5个主要选项组成。业务信息功能是提供当前业务的具体信息,点击进去即可获取详细的信息,例如办理业务的具体步骤和需要办理的子业务等等;人流情况功能是提供客户当前该业务的人流量的信息,方便用户根据人流量计划办理的业务的时间;通过业务路线功能,用户可以在显示屏上查看办理的路线以及导航路线图;界面提供了业务的拥挤度功能,用户可以直观看到办理业务的人流拥挤程度。
5 系统试验与分析
为了测试系统的性能,在物理仿真环境Gazebo下进行了流程测试和路径规划。如图6所示,地图设置入口和出口,测试机器人从入口运动到出口的情况。首先在云端运行ROS系统后,发布已经训练打包好的路线规划算法的消息,仿真机器人通过通信接口订阅云端发布的消息后,执行路线规划算法,仿真效果如图6所示,仿真机器人有效地避过障碍物,顺利到达出口。
路线规划算法是基于Q-Learing算法,Q即是Q(s,a),就是某一时刻state状态下,采取动作ation后收获到的效益期望reward。Q学习算法是一种基于数值迭代的动作规划方法[8],通过评估仿真机器人某一状态下运动好坏,自动规划最优运动的动作。利用Q-Learing算法可以使机器人具备自学习能力[9],机器人可以通过与环境交互,在错误中进行学习,自主学习最优路线的走法。
6 结 语
本文将云计算与ROS系统结合,设计基于云控制的业务机器人系统。通过深度强化学习,机器人组能够在未知的的环境中自动导航,完成终端分配的任务,并通过构建云平台,实现机器人资源的调度和分配。仿真结果表明,所设计的机器人系统对未知环境较好地适应能力,可控制性高,可移植性强。
参 考 文 献
[1]李波,薛端,黄鑫.云机器人系统研究综述[J].计算机工程与应用,2017,53(17):26-40.
[2]陈贤,武延军.基于的云机器人服务框架[J].计算机系统应用,2016,25(10):73-80.
[3]熊安,卞春江,周海,等.基于的机器人定位与导航系统的仿真设计[J].电子设计工程,2018,26(24):188-193.
[4]安峰.基于开源操作系统的机器人软件开发[J].单片机与嵌入式系统应用,2017,17(5):27-29.
[5] JEONG S K DONG U Y HONG S P. A robot software bridge for interconnecting OPRoS with ROS [C]// 2012 9th International Conference on Ubiquitous Robots and Ambient Intelligence(URAI),2012:615-712.
[6]郑松涛.基于Qt的助教办公自动化系统客户端的分析与设计[D].北京:北京邮电大学,2019.
[7]喻晓,夏澎.基于的便携式心电监护仪应用软件设计[J].计算机系统应用,2017,26(5):221-226.
[8]方敏,李浩.基于状态回溯代价分析的启发式学习[J].模式识别与人工智能,2013,26(9):838-844.
[9]江其洲,曾碧.基于深度强化学习的移动机器人导航策略研究[J].计算机测量与控制,2019,27(8):217-221.
[10]王博玮,陆中成.基于云的餐厅服务机器人系统设计[J].自动化表,2019,40(8):65-69.