《电子技术应用》

基于光流定位的自动路径规划清扫机器人

2017年微型机与应用第5期 作者:李炫志,黄旭铭,姜科,郑慎鹏,李晨韵,陈光乐,周晋怡
2017/4/7 12:14:00

  李炫志,黄旭铭,姜科,郑慎鹏,李晨韵,陈光乐,周晋怡

  (中国计量大学 机电工程学院 求是电子科技协会,浙江 杭州 310000)

  摘要扫地机器人作为智能家居的一个分支,在当下火热一时。一个完整的机器人定位以及路径规划系统是必不可少的。此文针对机器人路径规划进行了研究,光流定位是由机器视觉延伸出的一种技术,通过摄像头识别进行定位,能反应机器人实时的二维坐标。基于光流定位和测距模块,可以实现对室内大致地形的判别,从而规划出一条最优的清扫路线。实验证明:该规划方案能基本覆盖室内的清扫区域。

  关键词:扫地机器人;光流定位;路径规划

  中图分类号:TP242文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.05.018

  引用格式:李炫志,黄旭铭,姜科,等.基于光流定位的自动路径规划清扫机器人[J].微型机与应用,2017,36(5):57-59.

0引言

  目前市场上扫地机器人的路径规划都是由超声波、红外等传感器测量得到当前的位置再结合算法规划出理想路径。由于传感器精度等问题,无法定位出精确的位置,导致机器人出现运动轨迹混乱等问题。

  基于光流传感器的机器人可以解决传统扫地机器人运动轨迹混乱的问题。基于光流传感器定位技术的路径规划式寻路系统清扫覆盖率大,工作效率高,采用了类似光电鼠标定位与移动位移测量方式,结合激光测距传感器对当前扫地机器人的位置及运动方向进行监测,并根据监测得到的位置与位移方向、速度等信息,搭载摄像头、电子罗盘、超声波模块、激光测距仪这几个传感器来实时监测机器人的工作环境的变化。核心处理器对各个传感器传回的数据进行分析,以此来实现基本无碰撞的扫地过程,并对扫地机器人的运动路径进行规划,实现扫地机器人对应用环境的全方位清洁。

1光流

  光流是一种简单实用的图像运动的表达方式,通常定义为一个图像序列中的图像亮度模式的表观运动,即空间物体表面上的点的运动速度在视觉传感器的成像平面上的表达。

  1.1光流法检测运动物体的基本原理

  给图像中的每一个像素点赋予一个速度矢量,这就形成了一个图像运动场,在运动的一个特定时刻,图像上的点与三维物体上的点一一对应,这种对应关系可由投影关系得到,根据各个像素点的速度矢量特征,可以对图像进行动态分析。如果图像中没有运动物体,则光流矢量在整个图像区域是连续变化的。当图像中有运动物体时,目标和图像背景存在相对运动,运动物体所形成的速度矢量必然与邻域背景速度矢量不同,从而检测出运动物体及位置[1]。

Image 001.jpg

  1.2光流传感器

  光流传感器(如图1所示)自带图像处理,原理是光源发光被地面反射回接收器,因为地板表面的形貌是不同的,所以接收器收到的时间间隔很短的两帧图像是有差别的,处理器通过算法由前后几帧图像的差别解算出机器人移动的距离、方向和速度。

  搭载了光流传感器的扫地机器人与传统的碰撞式的扫地机器人最大的区别就在于其定位方式不同。传统的扫地机器人的定位能力仅依靠超声波或者红外测距模块来实现一些粗糙的定位。而搭载了光流传感器的扫地机器人的工作原理与生活中常用的光电鼠标类似。如图2所示,机器人底部会有一个发光二极管,通过该发光二极管照亮机器人的底部表面。然后通过机器人底部表面反射回一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当机器人移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。再利用机器人内的一块DSP芯片对每张图像进行处理,以判断机器人移动的方向以及位移,从而得到机器人x、y方向的移动数据。最后通过SPI传给MCU。MCU对这些数据进行处理,来获取机器人的运动路径[2]。

  

Image 002.jpg

2路径规划算法

  2.1栅格地图法概述

  Elfes、Moravec 等研究人员在1985年共同设计出了栅格地图法。所谓的栅格地图法就是把一个环境区域等分为空间一样的小方格,然后依据每个小方格中是否有障碍物将所研究的环境分为障碍区域和非障碍区域,这样就建立出了环境地图。因为每个方格中是否存在障碍物都是直接与研究环境中的区域一一对应的,因此根据清洁机器人所配备的传感器系统探测到的信息即可轻易获取环境中每个方格是否为障碍物区域。传感器系统将这些信息反馈到清洁机器人控制中枢,控制中枢再根据接收到的信息及时调节机器人运行方向,从而达到避障效果。

  2.2基于栅格法的清洁机器人路径规划方案

  使用栅格法构建环境地图就是将环境区域等分为若干个小矩形单元格,将每个小单元格作3种不同类别的标记,主要分为有障碍和无障碍以及已清扫3类单元格区域。这样,环境区域就被一系列的矩阵栅格表示出来了,环境地图构建成形,而整个环境地图也被一个个的小单元格离散化,依据环境栅格地图与实际环境区域之间的映射关系结合环境地图的离散化实现了实际环境区域的离散化。在环境栅格地图中,其中一部分或者全部被障碍所占用的单元格都称为障碍栅格,完完全全没有被障碍物占据的单元格称为无障碍栅格,而无障碍栅格又可以依据清洁机器人是否运行过分为待清洁栅格和已覆盖栅格。

  假设整个环境区域的长、宽分别是L、D,而方形小单元格边长是A,那么栅格数目是L×D/A2,环境区域E可以用下面的集合来表示: E={Gij|Gij=0,1,2;i,j为正整数} 其中Gij代表栅格,i代表方形单元格的行数,j代表方格的列数,Gij=2是指该位置栅格为障碍栅格,Gij=1是指该位置栅格为已覆盖栅格,Gij=0 是指该位置栅格是待清洁栅格。栅格地图法极其便于建立以及维护,且构建的环境地图中的每一个栅格都与实际环境区域相对应[3]。

  2.3光流定位在栅格法中的应用

  光流定位能实时反应物体的运动状态,得出物体的二维位移。如图3所示,假定一个栅格的正方形边长为a(a>扫地机器人的直径b),将室内划分成一个个的栅格。

Image 003.jpg

  那么可以以扫地机器人的充电位置所在的墙角为起点的第一个栅格G00,可以知道G00为无障碍栅格。机器人先检测这个墙角四周的环境,接着以充电处为原点建立直角坐标系,设定二维平面运动的正方向,再确定初始运动方向为x轴正方向。机器人沿x轴方向探索,记录室内x轴所占的栅格数,不足一个栅格也记一个,在图3的路线为G00→G50,G50为不完整栅格。碰壁之后,机器人会向y轴上一个栅格,接着沿x轴负方向运动,整个探索过程是地毯式的搜索。遇到障碍物时,机器人会在原先地毯式搜索的基础上绕行,在图3的路线为G50→G51→G50→G40→G41→G40→G30→G31。机器人会在不碰到障碍的前提下把室内的环境尽可能的探索,建立一个关于室内栅格的数组,记录室内的地形。机器人在后面的清扫中可以实时修改这个数组的数据,规划出合理的清扫路线。

  对于栅格大小,理论上太大太小都有弊端,所以栅格正方形的边长应略大于机器人的直径,以方便算法的运行,也尽可能减小盲区。在遇到障碍时尽量靠边走,在不干扰原先运行轨迹的前提下,尽可能减小清扫盲区。

  2.4机器人路径规划系统

  系统框图如图4所示,光流传感器安装在机器人的底部,获得的运动数据可以通过SPI传给MCU。同时,激光测距传感器实时全方位地检测工作的周围环境,一旦发现障碍物的距离低于预设值,就发送信号给MCU,MCU立即改变左右电机的转速,实现避障。

 

Image 004.jpg

  3结论

  实践证明,该方案构成的系统功能基本得到了实现,初步成型如图5所示,光流传感器位于机器人底部。

  

Image 005.jpg

  经过实际测试,机器人在偏差允许的范围内基本完成了算法规划的路径,在LCD上打点显示如图6所示。

Image 006.jpg

  参考文献

  [1] 陈震.图像序列光流计算技术及其应用[M].北京:电子工业出版社,2012.

  [2] 董颖.基于光流场的视频运动检测[D].济南:山东大学,2008.

  [3] 张建龙.清洁机器人避障控制及路径规划[D].武汉:武汉科技大学,2015.


继续阅读>>