一种基于栅格地图的环境特征表示与识别的方法
技术领域
本发明涉及人工智能、模式识别与Fourier变换、Walsh变换等离散正交变换技术,特别是机器人对陌生环境的建模表示与识别的方法,应用于机器人的环境识别与自主运动方面。
背景技术
随着近些年工业机器人的发展,带动了服务机器人行业的逐渐掘起,同时从2014年开始的智能硬件领域也开始突起,根据国际机器人联盟的统计,2015年服务机器人销售额将达85亿美元,并且保持较高的20%~30%增长率,在智能硬件领域,据艾瑞研究,2014年全球智能硬件装机量达到60亿台,预计2017年将超过140亿台。
在市场高速发展的背后,问题同样明显,一方面市场的潜力还远未挖掘出来,另一方面,机器人及智能硬件进入服务行业也存在着一些技术难点,例如机器人进入实际的家庭际环境中,进行环境识别与安全性地自主移动等,目前来看都还有一定的技术难点。
发明目的
本发明的主要目的就是解决基于栅格地图的环境建模后的环境特征表示与识别问题,它提供一种方法,使得基于栅格地图的环境特征,便于存储与计算,从而达到方便识别的目的,为其他实际应用提供技术支撑。可以但不限于应用在面向家庭的机器人游戏及机器人清洁方面。
技术方案
本发明的目的是这样实现的:通过相关设备及算法,例如激光雷达、SLAM算法等,已经获取了实际环境的栅格地图信息,经过环境特征表示***,计算与存储栅格的特征到栅格地图中,在设定好所需目标栅格的信息后,由环境特征识别***,在栅格地图中匹配出全部所需的候选栅格。其包括以下步骤:
(1)在环境特征表示***中,考虑到计算的方便,我们设定一个影响距离σ,即障碍物栅格对周边栅格的影响范围,σ可以是但不限于欧氏距离、曼哈顿(Manhattan)距离等。同时也为了计算方便,把栅格x的影响向量f(x)元素都平均离散到栅格x的八个方向上[0,π/4,π/2,3π/4,π,5π/4,3π/2,7π/4],并且计算栅格x的影响向量f(x)的特征向量与特征谱,这里给出两种特征向量及特征谱的计算方法,
(2)在环境特征表示***中,把每个空闲栅格的影响向量的每个分量初始化为0,逐个分析每个障碍物栅格对σ距离内的所有栅格的影响,例如,在分析的过程中,障碍物栅格ξ相对栅格x的角度为θ,距离为d,d≤σ,则障碍物栅格ξ对栅格x的影响函数可以是但不限于f(xθ,d)=1/d,如果θ恰好在栅格x的八个方向中的某一方向上,则直接在这个方向上叠加即可,如果θ在某两个方向之间,例如θ∈(π/4,π/2),则按照向量分解,把f(xθ,d)分解并叠加到方向π/4与方向π/2上,当对所有的障碍物栅格分析完成后,每一个栅格的影响向量已经计算完成,并存储在栅格中,记为f(x)=[f1,f2,...,f8]
(3)在环境特征表示***中,考虑到计算的方便,我们求取f(x)=[f1,f2,...,f8]的特征向量F(x),并存储在栅格中:
方法一、通过Fourier变换求取F(x),令变换算子根据快速Fourier变换计算得,
方法二,通过Walsh变换求取F(x),令变换算子根据快速WalshHadama变换算得,
上述公式中的8x8矩阵,是8维的WalshHadama变换矩阵,不同的维数,所对应的WalshHadama变换矩阵是不相同的,其中:
(4)在环境特征表示***中,考虑到计算的方便,我们求取特征向量F(x)=[F1,F2,...,F8]的特征谱P(x),并存储在栅格中:
方法一、根据快速Fourier变换求出的特征向量F(x)=[F1,F2,...,F8],我们有,
P(x)=[|F1|,|F2|,...,|F8|],通过求模运算,特征谱元素P(x)[i]=|F(x)[i]|=|Fi+1|,i∈[0,7]
方法二、根据快速WalshHadama变换求出的特征向量F(x)=[F1,F2,...,F8],我们有,
(5)在环境特征识别***中,我们设定阈值degreethreshold,构造目标环境栅格x的影响向量f(x)=[f1,f2,...,f8],根据以上步骤求取对应的特征谱P(x),在栅格地图上搜索所有的栅格y,并比对相应的特征谱P(y),记向量P(x)与向量P(y)之间的夹角为∠(P(x),P(y))≤degreethreshold,计算如果cos∠(P(x),P(y))≥cos(degreethreshold),就表示栅格y与目标栅格x在实际环境中是相似的,匹配出其中一个候选的栅格,
(6)经过环境特征表示与识别***,我们能成功的找出所有的与目标匹配的环境,为后续应用提供支撑。
本发明所使用的***组成如下:环境特征表示***、环境特征识别***。这二个***是按照功能设置的软件***,各子***具体功能如下:
*环境特征表示***:在已有的栅格地图上,分析相关的栅格,计算并存储栅格的影响向量、特征向量、特征谱向量,
*环境特征识别***:给出所期望环境对应的栅格影响向量,在已有栅格特征的栅格地图上搜索查找,匹配出所有的与期望环境相似的栅格。
附图说明:
图1是本发明方法所用***组成图
图2(a)是栅格地图,(b)是栅格的影响向量
图3是栅格影响的向量分解
图4是一种角落栅格
图5是另一种角落栅格
具体实施方式
下面结合附图,说明本发明的实施方式。
本发明方法所用的***整体结构可参考图1,它有二个子***组成,具体包含如下步骤:
第一步
首先,环境特征表示***,定义距离为欧氏距离,设定影响距离σ=4,即障碍物栅格只影响周边距离4以内的栅格,如图2(a)与(b)所示,按π/4把栅格的影响平均分配到八个方向上。
其次,环境特征识别***,设定degreethreshold=5°。
第二步
环境特征表示***,如图2(b)所示,初始化每个栅格的影响向量fi=0,i∈[1,8],逐个扫描栅格地图中的每一个栅格,对每一个障碍物栅格全面计算对周边栅格的影响。
例如,如图2(a)所示,障碍物栅格(4,4)对栅格(4,3)的影响f(xπ/2,1)=1,且其只影响栅格(4,3)的f3分量,所以f3=f3+f(xπ/2,1)=0+1=1。
同理,障碍物栅格(2,3)对栅格(4,3)的影响f(xπ,2)=1/2,且其只影响栅格(4,3)的f5分量,所以f5=f5+f(xπ,2)=0+1/2=0.5。
障碍物栅格(3,4)对栅格(4,3)的影响且其只影响栅格(4,3)的f4分量,所以
障碍物栅格(2,4)对栅格(4,3)的影响由角度分析知介于分量f4与f5之间,所以要做一个向量分解,如图3所示,所以:
f5=f5+f′5=0.5+1/5=0.7
综上栅格(4,3)所受的影响向量f(4,3)=[0,0,1,0.9898,0.7,0,0,0]
第三步
根据快速WalshHadama变换求出栅格(4,3)的影响向量f(4,3)=[0,0,1,0.9898,0.7,0,0,0]的特征向量F(4,3),我们有:
F(4,3)=[0.336225,0.088775,-0.161225,0.086225,0.161225,-0.086225,-0.336225,-0.088775]
第四步
根据快速WalshHadama变换求出栅格(4,3)的特征谱P(4,3),由上一步的特征向量F(4,3)我们有:
P(4,3)=[0.113047,0.007881,0.0334283,0.154357]
第五步
在环境特征识别***,例如我们对一个如图4所示的角落感兴趣,我们想要在栅格地图上找到一些这样的角落,首先,构造角落环境的影响向量f(corner)=[0,0,1,1,1,0,0,0],同理我们有:
F(corner)=[0.375,0.125,-0.125,0.125,0.125,-0.125,-0.375,-0.125]
P(corner)=[0.140625,0.015625,0.03125,0.1875]
第六步
通过环境特征识别***,搜索整个栅格地图,查找所有的与P(corner)相匹配的栅格,例如我们比较P(4,3)与P(corner)
cos∠(P(4,3),P(corner))=0.998799≥cos(degreethreshold)=0.996195
同理,我们对另一种如图5所示的角落感兴趣,我们想要在栅格地图上找到一些这样的角落,构造角落环境的影响向量f′(corner)=[1,1,1,0,0,0,0,0],同样我们有:
F′(corner)=[0.375,0.125,0.125,-0.125,0.375,0.125,0.125,-0.125]
P′(corner)=[0.140625,0.015625,0.03125,0.1875]
综上,我们可以看到图4所代表的角落f(corner)与图5所代表的角落f′(corner),他们的特征谱P(corner)与P′(corner)是相同的,在实际环境中也是相似的,通过我们环境特征表示与识别***,能把这些角落全部匹配出,这就充分说明了我们的***,对于相似的环境具有旋转不变性,在环境特征识别的过程中,就不大大减少了穷举比对次数,整个方法的效率是极高的,整个方法的时间复杂度与栅格地图的大小是成线性关系的。