机器人大赛中的物联网感知和机器视觉的应用
2020-05-09黄一航解迎刚马晓宇张祖贻张天伦
黄一航 解迎刚 马晓宇 张祖贻 张天伦
摘 要:通过物联网传感器和数据分析技术,机器人可以获得更广泛的态势感知,从而更好地执行任务。文中根据机器人大赛动态避障赛程的集体要求,搭建了基于ROS平台工业机器人开源平台,应用Python语言进行Gazebo虚拟现实系统的搭建,基于双目视觉完成了静态避障与动态避障功能,完成了机器人大赛的具体比赛。
关键词:移动机器人;ROS平台;Gazebo系统;智能避障;传感器;物联网
中图分类号:TP391文献标识码:A文章编号:2095-1302(2020)04-00-03
0 引 言
近几年,各行各业服务型机器人发展迅猛,服务机器人逐渐参与到人们的生活中。服务型机器人是最为实用也是最贴近人类生活的存在,争位在服务型机器人行业中并没有得到太多学者的研究,但在救援或者战争的环境下争位机器人还是起到比较重要的地位。因此一些本学科的专家,提倡让学生自主发挥想象力,使学生对机器人的研究更上一个台阶,同时提髙学生对机器人的兴趣,培养学生良好的工作实践能力,培养学生对机器人技术的兴趣和热情。
中国机器人大赛是目前中国影响力最大、综合技术水平最高的机器人学科竞赛之一,是我国最具影响力、最权威的机器人技术大赛、学术大会和科普盛会,是当今中国智能制造技术和高端人才的重大交流活动。本次比赛是以TurtleBot机器人为硬件基础的,让我们更深一步的学习了TurtleBot的技术原理与应用方法。
1 中国机器人大赛具体技术和规则要求
比赛规则是在Gazebo虚拟系统中,控制TurtleBot机器人。那么得分原则有如下两个标准:
(1)机器人从起点出发,能成功到达终点,则获得基础加分;
(2)机器人从起點到终点用时越短,加分越多。
因此要考虑两个因素:
(1)如何让机器人自助规划路径,使其能够避开障碍物并且行驶到终点;
(2)如何让机器人规划出最优路径,使其能够在最短的时间内到达终点。
机器人大赛比赛规则见表1所列。
在此任务中,障碍位置由服务器在客户端程序首次启动时给出,需要参赛选手对机器人的运动进行很好的控制,并制定好路径规划策略。在该任务中,将会有以下几个任务点。
(1)场景一:有3个障碍物,分别位于1/4线,1/2线,3/4线。该场景下,最高分为10分,避开所有障碍得6分;最短时间者获4分,第二名2分,第三名1分,其他人不得分。
(2)场景二:有6个障碍物,分别位于1/4线,1/2线,3/4线,每条线路上均有两个障碍。该场景下,避开所有障碍得6分;最短时间者获4分,第二名2分,第三名1分,其他人不得分。
(3)场景三:地面上随机存在6个障碍物。该场景下,最高分为15分,避开所有障碍得11分,避开5个障碍得8分,避开4个障碍得5分;最短时间者获4分,第二名2分,
第三名1分,其他人不得分。
(4)场景四:有5个障碍物,2个位于1/4线,2个位于3/4线,1个在1/2线处沿线随机移动。在该场景下,最高分为15分,避开所有障碍得11分,避开出移动障碍物外所有障碍物并成功到达终点得7分;最短时间者获4分,第二名2分,第三名1分,其他人不得分。
以上为本次比赛的规则,可见这个比赛的难度之大,要求之严格。
严格的要求中也有规则可循。障碍物的位置是固定的,而非移动的。而且障碍物的坐标是可以通过机器人的视觉获取的。再一点,障碍物的形状都是固定的,都是矩形的。因此避障算法只要解决两个问题即可,第一就是要使机器人能够获取障碍物的位置坐标,第二就是使机器人能够根据已知的环境,规划出合理路径。
2 比赛机器人的准备
2.1 硬件的准备
在本次比赛中使用TurtleBot二代机器人作为硬件基础。TurtleBot 2的硬件主要有Yujin Kobuki移动底座、Kinect视觉传感器、双核笔记本、2 200 mA·h电池和可装卸的结构模块。TurtleBot 2使用目前最流行的ROS(Robot Operating System)作为操作系统,能实现3D建图导航、跟随等功能。机器人大赛TurtleBot机器人如图1所示。
2.2 机器人中的物联网感知和机器视觉
TurtleBot机器人装有双目视觉三维摄像头和超声波测距模块。
摄像头的作用是实现电脑与终端与机器人之间的物联感知功能。摄像头将拍摄的三维图像传送给数据处理电路,后者将模拟信号转化为数字信号,将三维图像分解为一个二维平面图像和一组距离信号,方便计算机的应用。计算机接收到机器视觉视觉获取的数据之后,将数据带入到算法之中,先判断是否运行避障算法,再使用获取的数据进行路径规划,执行避障算法。算法执行完毕后,将规划好的路径信息数据传送给机器人,机器人获取路径后,按照规划好的路径行驶。行驶过程中,继续通过机器视觉获取数据。重复上述过程,即可完成机器人与电脑终端之间的信息交互。实现机器视觉的物联感知功能,实现人工算法对机器人的控制。
超声波测距传感器的作用是获取机器人与障碍物之间的距离,并将距离数据传送给电脑,与电脑中的通过三维图像分解得来的距离信息进行比较。一方面是保证距离信息的正确性,另一方面是在机器视觉测距功能发生故障时,代替视觉测距,提供准确的距离数据。
所谓的机器视觉与物联感知,就是将三维视觉双目三维摄像头和超声波传感器作为感知层;将电脑终端与机器人之间的无线网络通信协议作为网络层;Gazebo虚拟控制系统和机器人的运动模块作为应用层,搭建了一个嵌入式物联网体系。
嵌入式物联网体系搭建完成之后,就可以实现电脑终端与机器人之间的信息交互,协同工作。
2.3 软件系统和策略设计
TurtleBot的可以接受ROS系统的控制指令,也可以将机器人的运动状态,如角速度,线速度等物理数值反馈给ROS系统,可以说ROS系统是TurtleBot运行的基础。因此软件环境搭建的第一步是电脑上搭建适合TurtleBot运行的ROS环境。第二步是在ROS 环境中搭建Gazebo虚拟现实系统。Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式。
首先,安装软件运行环境,包括ROS系统和Gazebo系统,具体步骤如下:
(1)sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc)main"> /etc/apt/sources.list.d/ros-latest.list'
(2)sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
(3)sudo apt-get update
(4)sudo apt-get install ros-kinetic-desktop-full
(5)sudo rosdep init
(6)rosdep update
(7)echo "source /opt/ros/kinetic/setup.bash">> ~/.bashrc
(8)source ~/.bashrc
(9)sudo apt-get install ros-kinetic-turtlebot-gazebo
依次运行如下代码之后,系统会自动安装一段时间,然后就可以运行程序,运行程序的同时还要调用大量文件。运行步骤如下:
exportLD_LIBRARY_PATH=~/ros_scripts/plugin:$LD_LIBRARY_PATHroslaunch turtlebot_gazebo turtlebot_world.launch world_file:=/home/username/ros_scripts/world/world1-1(world_file:=your world_file's path)
這时Gazebo系统已经可以启动。接下来的任务是在Gazebo系统中搭建比赛规定的环境。因此设置如下文件,使电脑能够成为连接机器人硬件与控制软件的服务器。
(1)how_to_run.py。该文件主要来写参赛者想要如何控制小车的算法。
(2)robot.py。该文件主要是描述一个机器人类,在此处指的是小车。它有转向和前进等各种功能,详细信息可见代码中的注释。
(3)robot_ser.py。机器人服务端,主要接受客户端传来的指令来与gazebo进行交互。
(4)robot_cli.py。机器人客户端,主要与服务端进行交
互,从服务端获取状态等信息,也可以对服务端发送信息用以控制小车。
(5)clock_ser.py。服务端时间类,主要是记录比赛时间,与客户端时间统一。
(6)clock_cli.py。客户端时间类,主要是记录比赛时间,与服务端时间统一。
(7)judge.py。裁判系统,主要记录比赛时间,机器人状态是否越界,是否成功完成比赛等。
(8)world.world。生成场景信息的文件。
其中how_to_run.py是路径规划文件,需要参赛者自己进行修改,使TurtlrBot机器人能够合理的运行,在Gazebo系统生成的地图上完成任务。world.world文件是生成地图的文件,并且后面加上编号,就可以生成参赛者想要的地图。
3 路径规划的实现
路径规划在具体实现时有多种算法可用,在本次比赛中采用计算量较小、实现比较容易的直角路线走法实现,即无数个直角组成的路径。机器人首先向正前方行驶,检测到前方有障碍物靠近时,执行避障算法。当检测到障碍物远离时,结束这条避障算法。当再次检测到前方有障碍物靠近时,再次执行避障算法。
在执行避障算法的过程中,首先要利用机器人的机器视觉,获取障碍物的三位图像。然后将三维图像以模拟信号的形式存储下来,再将模拟信号转化为数字信号。转化为数字信号后,将三维图像转化为二维平面图像,用于判断障碍物的形状。再从三维图像中获取机器人与障碍物的距离,用于规划整体的避障路径。
机器人在运行直角走法的过程中,并非像弧线算法那样一次性规划好整个路径,而是每走一步,规划一步,即每遇到一次障碍物,就要先判断转向方向,再规划避开这个局部障碍的路径。直角路线算法如图2所示。
图3所示为直角走法的运行结果,机器人从起点出发之后,成功到达终点。红线标识的是机器人的行走路径。
直角走法的算法优点是出错率低,容错率高。只要根据不同的地形,不同的障碍物形状,一步一步地规划路径,一定能走到目标地点。缺点是用时长,时间复杂度高。由于要逐步规划路径,因此机器人每走一段距离就要停顿一下,规划下一步的路径,耗时长。况且比赛规则是用时越短,得分越高,因此直角规划算法虽然能保证完成路径,但不能保证快速完成。
4 结 语
机器人在运行直角走法的过程中,每走一步,规划一步。直角走法适用于障碍物分散、数量多、体积小的避障环境,保证机器人能够稳定地越过障碍物,完成避障。实际环境中,障碍物会是不同形状,不同颜色。这就需要在三个方面改进机器人的避障策略:一是要增强机器视觉的识别能力,让机器视觉能够识别不同颜色、形状复杂的障碍物;二是增加机器视觉的捕捉能力,能够捕捉到移动障碍物的运动规律、运动状态,方便机器人进行动态避障;三是增强数据处理程序的鲁棒性和自洽性,使其在获取上述复杂数据后,依然能够进行数据处理,并将获取的数据带入路径规划算法之中。后续的比赛中将会从这三个方面进行改进。
注:本文通讯作者为解迎刚。
参考文献
[1]解迎刚,杨晓芬,高博斌,等.基于混合模式的农产品质量追溯系统[J].物联网技术,2018,8(3):61-62.
[2]贾卫平,盖欣桐,张祥,等.基于ROS平台机器人导航避障系统设计与开发[J].机械工程师,2019(10):16-18.
[3]王雷,石鑫.改进蚁群算法在移动机器人避障中的应用[J].南京航空航天大学学报,2019,51(5):728-734.
[4]王娟,吴宪祥,郭宝龙.基于改进粒子群优化算法的移动机器人路径规划[J].计算机工程与应用,2012,48(15):240-244.
[5]赵辉,郝梦雅,王红君,等.基于改进A~*算法与天牛须搜索算法的农业机器人路径规划方法[J].科学技术与工程,2019,19(31):185-190.
[6]曹凯.移动机器人技术研究现状与未来[J].信息系统工程,2013(5):140.
[7]杨明辉,吴垚,张勇,等.室内动态环境下的移动机器人自主避障策略[J].中南大学学报(自然科学版),2019,50(8):1833-1839.
[8]徐兵兵,郝荣飞.机器人路径规划技术的现状与发展[J].电子技术与软件工程,2018(24):81.
[9]范家琪.基于机器人群体避障学习的群智能算法的研究[D].上海:东华大学,2018.
[10]闫琳宇.室内动态环境下移动小车的路径规划技术研究[D].南京:东南大学,2018.
[11]陈顺立.农业机器人路径优化及轨迹跟踪研究—基于遗传算法[J].农机化研究,2017,39(8):17-21.
[12]熊菡.移动机器人全局路径规划及轨迹跟踪研究[D].武汉:武汉科技大学,2014.