一种人机交互式室内建模方法
2015-09-18杨学
杨学
摘要:环境建模问题是移动机器人研究领域中的一个关键问题。提出一种移动机器人对室内未知环境进行建模的方法。机器人采取内螺旋算法在室内环绕一周确定环境边界,然后通过上位机控制机器人逼近障碍物,对障碍物进行环绕并在地图上标记完成整个建模过程。通过实验证明了该方法的有效性。
关键词:移动机器人;栅格法;环境建模
DOIDOI:10.11907/rjdk.151463
中图分类号:TP301
文献标识码:A 文章编号文章编号:16727800(2015)008007902
0 引言
随着智能机器人的广泛应用,利用移动机器人对环境进行建模成为了当前机器人研究领域的热点问题之一。所谓环境建模, 是指机器人通过感知周围环境和自身状态,对于周围环境自动构建一个地图,这是机器人进一步完成各种更复杂任务的前提和基础[1]。地图生成算法的复杂度与环境复杂度及算法的自主程度成正比,而若想要机器人完全自主地对环境进行建模,不仅算法复杂度大大增加,对机器人的智能程度也提出更高要求。
1 地图生成
在环境未知的情况下,仅靠机器人自身来生成地图,对机器人的智能程度要求较高。为此,本文简单分析了3类地图表示方法,比较各自的优缺点后提出了一种基于栅格地图的环境建模方法。首先机器人通过内螺旋算法确定环境边界,然后由操作员控制机器人逼近障碍物并对其进行环绕,同时记录障碍物信息,生成环境的一个栅格地图,完成环境建模。
1.1 地图表示方法
常用的地图表示方法有几何法、拓扑法和栅格法[2]。几何法指移动机器人利用传感器收集对环境的感知信息,从中提取几何特征建立环境地图。这些信息可以精确地存储在地图中,在局部区域内可获得较高精度的地图,但在大范围环境中却难以得到,而且地图更新比较复杂。拓扑法将环境表示为一张拓扑意义的图,通常是根据环境结构定义的,由节点和边组成。拓扑地图抽象度高,有利于路径和任务规划,且存储和搜索空间较小,计算效率高,可以很方便地使用很多现有的、成熟高效的搜索和推理算法。但基于拓扑地图的定位必须建立在对拓扑节点的识别与匹配基础上,因此要求机器人必须能够识别节点。
栅格法是Elfes和Moravec首先提出的,它利用均匀分布的网格对环境进行描述,每个网格给定一个[0,1]之间的可能值,表示该网格被障碍物占据的置信概率。0表示该网格无障碍物,可自由通过;1表示该网格有障碍物,无法通过。栅格地图是一种近似描述,表示直观,容易创建和维护,对某个栅格的信息可直接与环境中的区域相对应,能够比较完整地保留环境信息。本文提出的方法采用栅格地图对环境进行描述。设定起始位置时,机器人移动坐标系与世界坐标系重合。起始位置处于环境边界处,机器人从该起始位置出发,在机器人行进过程中,根据自身携带的编码器采用航位推测实现自身定位,同时增量式地构建全局环境地图。设置二维数组MAP[m][n]表示地图第m行第n列是否有障碍物,MAP[m][n]=1表示地图第m行第n列有障碍物,MAP[m][n]=0表示地图第m行第n列无障碍物,MAP[][]的初始值为0.5,表示环境是否有障碍物未知。
1.2 地图算法创建
将机器人放置在环境边界位置,采取内螺旋算法在环境沿边界行走一周后回到初始位置,并在此过程获得边界信息以建立起环境边界。然后通过上位机控制机器人前、后、左、右行走,实现环绕障碍物的边界,同时在后台生成环境地图。具体算法如下:
Step1:将机器人放置在环境边界任意角落,并将该点作为地图的起点。
Step2:机器人按内螺旋算法沿环境边界行走[3],当进入转角时,机器人自动通过超声进行避障并向右旋转90°,然后继续沿边界行走直到回到起点。此时完成环境的边界检测。
Step3:操作员通过上位机控制机器人从正面靠近障碍物,当超声检测到距离达到设定阈值时停止前进,开始环绕障碍物行走,同时在地图上进行标记。环绕一周后弹出提示该障碍物标记完成。
Step4:重复Step3,完成环境中的全部障碍物检测。算法结束,环境建模完成。
示意图1、2表示地图的增量生成过程。红色线条表示机器人经过路线,灰色栅格表示地图把该栅格标记为有障碍物,即栅格值为1。当机器人进行环境边缘检测及环绕障碍物时,环境边缘及障碍物始终处于机器人左侧,机器人会把行进路线的左侧栅格记录为边界或障碍物。图1是机器人在环境边界检测模式下进行地图框架生成的过程。当机器人在障碍物环绕模式下对障碍物环绕一周后,根据矩形的顶点即机器人的拐点,算法会将包围在矩形内的所有栅格值置为1,表示被障碍物占有,如图2所示。
图1 机器人边缘检测 图2 机器人环绕障碍物
2 实验与分析
将本文提出的算法在北京博创生产的差动两轮机器人未来之星上进行试验。搭建一个360cm×360cm的实验环境,将机器人置于左上角位置(见图3)。理论上栅格地图中划分栅格越小,越能详细表示环境,但在实际应用中,若栅格划分过小,由于存在误差,可能导致栅格表示不准确,反而降低地图精度。综合考虑机器人大小,此处设定栅格大小为20cm×20cm。机器人向右开始按内螺旋算法沿边界行进一周后回到初始位置,确定环境栅格地图框架,如图4所示。灰色栅格表示环境边界,灰色栅格围绕的白色栅格区域对应实验环境。
环境框架建立完成后,操作员通过上位机控制机器人从正面靠近障碍物。当超声波传感器探测到机器人与障碍物间距离达到设定阈值时,机器人停止前进,如图5所示。然后对障碍物进行环绕,当完成对环境内所有障碍物的环绕时,环境建模完成,如图6所示。
将机器人创建地图(见图6)与图5中实际环境的测量数据进行对比,可以得出生成地图中表示的障碍物比实际障碍物略大。出现此种结果的主要原因,一是因为栅格精度,二是因为要保证机器人不与障碍物发生碰撞(设定了机器人与障碍物间的阈值),避免因碰撞引起机器人定位失准。
图3 实际实验环境 图4 生成栅格地图边界
图5 机器人靠近障碍物 图6生成栅格地图
3 结语
针对目前机器人完全自主对环境进行建模尚难以实现,本文提出了一种首先通过内螺旋算法沿环境边界行走一周,确定地图边界,然后利用上位机控制确定环境障碍物位置,并将获得的信息用栅格地图表示的建模方法。此方法在未来之星机器人上得以实现,虽然由于上位机的介入使得此方法独立性有所降低,但由于其不需要用模糊度量或概率度量等方法来处理不确定信息,从而大大降低了算法的复杂度,加上上位机友好的操作界面使整个建模过程易于操作和完成。实验结果表明,建立的环境地图比较精确。
参考文献:
[1] 蔡自兴.机器人学[M].北京:清华大学出版社,2009.
[2] 陈卫东,张飞.移动机器人的同步定位与地图创建研究进展[J].控制理论及应用,2005(3):455460.
[3] XUEMIN SUN,SHUHUA LIU,XUE YANG.A method of map building for robots in unknown indoor environments[C].In Proceeding of the 10th World Congress on Intelligent Control and Automation,2012.
[4] 吕洪波,宋亦旭,贾培发.机器人修磨中融合先验知识的适应学习建模方法[J].机器人,2011(6):641648.
(责任编辑:黄 健)