苏金文,陈西平
(1.滁州学院;2.河南理工大学)
SLAM[1-2]是指机器人没有先验地图存在,初始位姿和环境都是未知,需要对未知环境进行创建,存储起来,再通过已创建的地图进行自身位姿的确定,整个过程需要依靠传感器数据,实现自身定位和增量式地图的构建.同时定位与地图创建对软硬件具有较高的要求,以保证机器人运动的鲁棒性、实时性.
在已知环境中,机器人可以很方便的利用已知特征进行全局定位,实现对里程计的误差的纠正,但在SLAM中,机器人的具体位置和所创建地图中的特征是不确定的,无法对里程计估计的位姿进行有效纠正,因此,机器人运动距离越远,定位越不准确,导致错误的数据关联[3-4],地图创建失真,特征的位置误差变大,依靠特征进行全局定位时,将进一步增大机器人位置误差.由此可见,机器人定位与环境构建互为因果,相互作用,任何偏差都会影响使机器人定位和环境特征的位置估计,产生累计误差.
该文对于SLAM中定位存在误差的问题,采用几何信息地图表示法进行环境几何特征的提取,实现对环境的描述,同时,提出采用一种逆推法计算机器人运动距离,再与里程计记录的距离相比较,设定误差阈值,校正机器人的实际位姿,以此来减小机器人定位误差.
目前地图的表示方式又多种,归纳起来大致分为三类:栅格地图表示法[5]、几何地图表示法[6]和拓扑地图表示法[7],该文中采用几何地图表示法.
几何地图创建是由传感器获取环境信息,然后对其中特征信息进一步提取,将环境信息抽象为几何特征,如直线、圆和曲线等,以此来描述环境,该方法计算量小,利于位置估计.
在机器人初始时刻t0,位姿为(x0,y0,θ0),此时的位姿是准确的,随着机器人运动距离的增加,里程计等传感器误差累计,机器人位姿将不再准确.
假设在t时刻机器人的位姿为(xt,yt,θt),此时,环境中局部特征已经由几何信息地图创建,t时刻观测到一特征点p,换算到世界坐标系中,机器人相对于特征点的距离为dt,随着机器人运动,在t+1时刻,机器人的位姿变为(xt+1,yt+1,θt+1),假设此时观测到t时刻的同一特征点p,机器人相对特征点p的距离为dt+1,如图1所示.
图1 机器人不同时刻位姿
根据图1所示,通过余弦定理可以求得机器人从t时刻到t+1时刻运动距离S.
(1)
其中α=|θt-θt+1|.
由于机器人安装了里程计传感器,从t时刻到t+1时刻里程计记录的位姿可以计算出两不同时刻直线距离L.
(2)
将L与式(1)计算出的运动距离S相比较,设定0.5m的误差阈值,即
|S-L|≤0.5
若机器人距离L和S的差值大于0.5m,可以认为里程计误差大,不能继续相对定位,需要进行全局定位,此时可以通过观测点p对机器人位姿进行更正,由于特征点p位姿此时已知,设为(xp,yp,zp),由图1可以得出,
(3)
该文使用的是全维足球机器人,由上海交通大学开发的,实验场地为足球机器人比赛场地,不预先存储先验地图,由机器人在行走过程中创建几何地图,同时完成自身定位.定位方法流程图如图2所示.
在实验中,分时段记录下机器人的实际位置,得到机器人在世界坐标系下的实际位姿.图3反映了上述算法对机器人位置误差的控制效果,从中可以看到,机器人的定位误差被控制在0.5m范围内,定位比较准确.
图2 定位流程图
图3 机器人运动误差
机器在自身定位过程中,不断完成环境地图构建,所创建的环境地图如图4所示,通过与实际环境地图对比,可以看出,机器人比较准确的位姿下创建的地图与实际环境地图基本吻合,达到了正确进行环境构建的要求.
(a)实际环境地图
(b)机器人创建的地图图4 机器人创建地图与实际环境地图对比
通过采用依靠特征计算机器人前后时刻运动距离,与里程计记录的前后时刻位姿所计算的运动距离相比较的方法,可以有效的实现机器人同时定位和环境构建的要求,在里程计误差累计增大的情况下,可以利用先前在正确位姿下创建的特征对当前时刻的位姿进行更正,很好的解决了全局定位问题.对于如何更精确的提取环境特征,以及如何更有效的进行数据关联,更好的实现同时定位和地图创建,是今后所需研究的方向.