本发明涉及一种鲁棒立体视觉惯性预积分slam方法,属于视觉导航技术领域。
背景技术:
实时定位与构图(slam,simultaneouslocalizationandmapping)技术是机器人自主导航技术领域中的一大研究热点,也是机器人在工程实践应用中必要的关键技术。视觉传感器可以感知外界的光线,无需自身进行信号发射,具有高自主性,视觉slam在机器人slam中具有广阔的发展前景与较大的潜质。
目前大多视觉slam都对外界环境具有较高的要求,需要利用环境信息进行视觉解算,并且在整个slam过程中,环境需要一直保持一个可控的状态,否则会导致视觉解算失败进而产生导航信息输出失败而对机器人造成危害。而现实环境中往往存在着明暗变化以及运动造成的成像噪声。机器人slam方法中,对于外界环境变化十分敏感,其变化会对直接导致精度下降,造成较大的误差甚至系统崩溃。
技术实现要素:
本发明提出了一种鲁棒立体视觉惯性预积分slam方法,能够在复杂环境下获得高鲁棒性的视觉slam系统。
本发明为解决其技术问题采用如下技术方案:
一种鲁棒立体视觉惯性预积分slam方法,包括如下步骤:
步骤1:周期采集i时刻加速度计数据
步骤2:利用惯性传感器测量数据
步骤3:判断是否初始化,如果尚未初始化则进行初始化,得到惯性传感器的误差ba(i)和bg(i)与重力分量gb(i)估计,并跳转至步骤1;如果已经初始化,则进入下一步骤;
步骤4:以i时刻的预积分预测值作为图像匹配的位姿起点,匹配视觉传感器数据s(i),并进行回环检测,如果存在回环,则进行联合回环、惯性、图像误差的位姿优化求解,并跳转至步骤6;如果不存在回环则进入下一步骤;
步骤5:构建图像匹配质量判定模型,对图像匹配的质量进行判断;图像匹配质量不满足条件时,进行纯惯性误差位姿优化求解;图像匹配质量满足条件时,联合惯性、图像误差进行位姿优化求解载体位姿;
步骤6:输出载体导航信息,更新地图,并跳转至步骤1。
步骤2中所述利用惯性传感器测量数据
i时刻得到惯性传感器加计输出
ba(k)为k时刻的加速度计量测偏差,bg(k)为k时刻的陀螺仪量测偏差,ηa(k)为k时刻加速度计的随机噪声,ηg(k)为k时刻陀螺仪的随机噪声,gn为导航系下的重力,
bg(k)=ηbg
ηba为加速度计白噪声,ηbg为陀螺仪白噪声;
预积分的过程为:
δri-1,i为从i时刻到i-1时刻的旋转矩阵,δvi-1,i为i-1时刻到i时刻的速度变化量,δpi-1,i为从i-1时刻到i时刻的位置变化量,ri为i时刻从机体系至导航系的旋转矩阵,
步骤4中预积分预测值辅助图像匹配的方法为:
1)获取i时刻视觉信息s(i),其中包含每个特征点信息,利用i时刻载体预积分预测的导航信息预测i时刻的视觉传感器数据s(i)中每个特征点
2)设置距离阈值l1,建立以
其中,j=1,2,l,numi
numi为以
通过计算
步骤4中位姿优化求解的方法具体为:
检测出回环后,联合回环、惯性、图像误差,其中优化变量为从回环开始的所有关键帧位置
其中||rp-hpχ||2为边缘化先验约束,
eb=b(q+1)-b(q)
σi为信息矩阵,用于描述惯性误差之间的关系,回环误差可以表示为
使用图优化方法进行牛顿-列温伯格迭代,当达到误差收敛或者迭代30次则停止,输出优化目标χ,
步骤5中所述图像匹配质量判断模型具有两种判断条件:
条件1:当前图像与地图拥有α个以上的匹配点,即:
条件2:将预积分预测与视觉求解位姿的残差
εjudge<δ
需同时满足条件1与条件2的情况下即满足图像匹配质量判断模型,其余情况均为不满足;
其中α和δ为常量,α=0.85*ns(i),ns(k)为i时刻视觉传感器数据s(i)包含的特征点数量,
步骤5中纯惯性误差进行位姿优化求解载体位姿具体执行方法如下:
优化目标为
使用图优化方法进行牛顿-列温伯格迭代,当达到误差收敛或者迭代30次则停止,,输出优化目标
本发明的有益效果如下:
能够有效解决不良环境中视觉slam匹配错误与失败的问题,获得高鲁棒性以及高精度的载体导航信息,并可以构建精准地图进行复用,具有良好的推广前景。
附图说明
图1是本发明的实施例所提供的一种鲁棒立体视觉惯性预积分slam方法的原理框图。
图2是基于本发明的鲁棒立体视觉惯性预积分slam方法实际导航定位轨迹图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本实施例提供一种鲁棒立体视觉惯性预积分slam方法,包括惯性传感器和立体视觉传感器相对固定装载于一载体,所述惯性传感器包括加速度计和陀螺仪。参考图1,所述slam系统的工作方法包括以下步骤:
步骤1:周期采集i时刻加速度计数据
所述视觉传感器为立双目摄像机或颜色和深度(rgb-d)摄像机,步骤1中采集i时刻的视觉传感器数据为点云数据,每个像素点包含像素值以及在相机坐标系下的三维坐标值。
步骤2:利用惯性传感器测量数据
其中,载体的导航信息包括姿态四元数、三维位置与三维速度信息,四元数姿态角包括横滚角、俯仰角和偏航角;具体定义如下:横滚角为载体绕导航坐标系的y轴方向的转动的角度,俯仰角为载体绕导航坐标系的x轴方向转动的角度,偏航角为载体绕导航坐标系的z轴方向转动的角度。其旋转方向均满足右手定则,三维位置与三维速度为载体在速度与位置导航系各轴中的投影;
坐标系的定义如下:以当前时刻载体的位置为原点构建机体坐标系b,其中x轴、y轴与z轴分别与当前时刻载体的右向、前向和天向重合;以当前时刻相机的感光元件位置为原点构建相机坐标系c,其中x轴、y轴与z轴分别与当前时刻载体的右向、地向和前向重合;以当前时刻相机成像的左上角为原点构建像素坐标系,其中x轴与y轴分别与当前图像的右向和地向重合;以初始时刻载体的位置为原点构建导航坐标系n,其中x轴、y轴与z轴分别与初始时刻载体的右向、前向和天向重合;以初始时刻载体的位置为原点构建地理坐标系i,其中x轴、y轴与z轴分别与初始时刻载体的右向、前向和当地水平面的天向重合。
获得载体导航信息预积分预测值的方法为:
i时刻得到惯性传感器加计输出
ba(k)与bg(k)分别为k时刻的加速度计与陀螺仪的量测偏差,ηa(k)与ηg(k)分别为k时刻的加速度计与陀螺仪的随机噪声,gn为导航系下的重力,
bg(k)=ηbg
其中:ηba为加速度计白噪声,ηbg为陀螺仪白噪声。
预积分的过程为:
δri-1,i为从i时刻到i-1时刻的旋转矩阵,δvi-1,i为i-1时刻到i时刻的速度变化量,δpi-1,i为从i-1时刻到i时刻的位置变化量。ri为i时刻从机体系至导航系的旋转矩阵,
其中:
其中,
为流形空间李群与原点正切空间李代数的转换关系。
其中:ω为任意向量,w为任意旋转矩阵,ω∧为ω的反对称矩阵,ωi,i=1,2,3为任意数字,w∨为取逆反对称矩阵。
步骤3:判断是否初始化,如果尚未初始化则进行初始化,得到惯性传感器的误差ba(i)和bg(i)与重力分量gb(i)估计,并跳转至步骤1;如果已经初始化,则进入下一步骤;具体初始化方法为:
1)获取i时刻视觉信息,并提取当前定向加速段测试的特征与旋转二进制鲁棒独立基础特征点(orientedfeaturesfromacceleratedsegmenttestandrotatedbinaryrobustindependentelementaryfeatures,orb)或二进制鲁棒独立基础特征点(binaryrobustindependentelementaryfeatures,brief)特征点得到视觉传感器数据s(i),特征点
fpm(i)=[fuml(i)fvml(i)fumr(i)]t
fuml(i)为特征点
2)如果当前i=0,则以当前时刻的机体系作为导航系,并将视觉传感器数据s(i)投影至导航系,构成地图m(i);如果当前i>0,将i时刻视觉传感器数据s(i)与i-1时刻视觉传感器数据s(i-1)使用暴力(brute)匹配方法进行特征点匹配。
3)利用非线性优化方法,在得到匹配点对后,将i时刻的特征点位置与对应匹配的i-1时刻视觉传感器数据s(i-1)的特征点像素位置之差的绝对值之和作为优化目标,优化最佳位姿变化,
其中,
使用图优化方法不断进行牛顿-列温伯格迭代变换矩阵使得优化目标最小,以达到最小值或者迭代30次为止,输出变换矩阵ti-1,i,
得到使用视觉信息优化求解的位姿,其中:其中rij,i,j∈1,2,3为旋转参数,ti.i∈1,2,3为平移参数,01×3为0矩阵,i1×1为单位矩阵。
4)利用连续两个关键帧之间的图像位姿变换,去估计陀螺仪的偏差,关键帧的选取准则为匹配成功的特征点少于90%或者少于100个则选取当前帧作为新的关键帧,初始关键帧q=i=0。通过优化预积分预测与图像估计的旋转差值,计算陀螺仪的初始偏差:
其中,连续之间关键帧加速度计与陀螺仪的偏差变化可以忽略,bg(q)=bg(q+1)=…=bg(q+n-1),n为关键帧的数量,bg(q)为q时刻陀螺的偏差估计值,bg(q+1)为q+1时刻陀螺的偏差估计值,bg(q+n-1)为第q+n-1帧的陀螺仪误差,
5)利用位置预测值估计重力在导航系中的分量:
先将相机系中的位姿转换至机体系中,利用
可得
6)利用重力初值可以进行加速度计偏差的估计以及重力分量的优化。将重力表达为:
其中,(·)×为取反对称矩阵,δθ为姿态的扰动,gi为当地真实重力向量,rni为从地理系至导航系的旋转矩阵。同样将其与预积分公式进行代入。
其中,
其中,δpq+1,q+2(ba(q))为当加速度偏差为ba(q)时q+1时刻到q+2时刻导航系下位置变化,δvq,q+1为q时刻到q+1时刻导航系下的速度变化,δpq,q+1(ba(q))为当加速度偏差为ba(q),q时刻到q+1时刻下导航系下位置变化,通过解线性矩阵求解,可以得出加速度计的初始偏差和重力的进一步估计。
7)对速度进行估计,由下式可得:
将旋转矩阵转换为四元数q0,q1,q2,q3,转换过程如下:
由此完成初始化的过程。
步骤4:以i时刻的预积分预测值作为图像匹配的位姿起点,匹配视觉传感器数据s(i),并进行回环检测,如果存在回环,则进行联合回环、惯性、图像误差的位姿优化求解,并跳转至步骤6;如果不存在回环则进入下一步骤;
其中预积分预测值辅助图像匹配的方法为:
1)获取i时刻视觉信息s(i),利用i时刻载体预积分预测的导航信息预测i时刻的视觉传感器数据s(i)中每个特征点
2)设置距离阈值l1,建立以
其中,j=1,2,l,numi
numi为以
通过计算
回环检测与位姿优化求解的方法具体如下:
利用词袋算法将i时刻视觉传感器数据s(i)与地图数据m进行匹配,如果连续3帧存在30个以上经过ransac筛选的成功匹配点,则认为成功检测出回环,并在此基础上进行位姿的求解,联合回环、惯性、图像误差,其中优化变量为从回环开始的所有关键帧位置
其中rp-hpχ2为边缘化先验约束,用于控制优化复杂度。
eb=b(q+1)-b(q)
σi为信息矩阵,用于描述惯性误差之间的关系,回环误差可以表示为
使用图优化方法不断进行牛顿-列温伯格迭代变换矩阵使得优化目标最小,以达到最小值或者迭代30次为止,输出优化目标χ,
步骤5:构建图像匹配质量判定模型,对图像匹配的质量进行判断;图像匹配质量不满足条件时,进行纯惯性误差位姿优化求解;图像匹配质量满足条件时,联合惯性、图像误差进行位姿优化求解载体位姿;
其中,图像匹配质量判断模型具体如下:
所述图像匹配质量判断模型具有两种判断条件:
条件1:当前图像与地图拥有α个以上的匹配点,即:
其中:
条件2:将预积分预测与视觉求解位姿的残差
εjudge<δ
需同时满足条件1与条件2的情况下即满足图像匹配质量判断模型,其余情况均为不满足。
其中α和δ为常量,α=0.85*ns(i),ns(i)为i时刻视觉传感器数据s(i)包含的特征点数量,
当图像匹配质量不满足条件时,进行纯惯性误差位姿优化求解;图像匹配质量满足条件时,联合惯性、图像误差进行位姿优化求解载体位姿;
其中,联合惯性、图像误差进行位姿优化求解载体位姿具体执行方法如下:
将惯性误差融合进优化方程中,进行位姿的优化求解,优化目标为
||rp-hpχ||2为对地图特征点进行边缘化处理的线性雅各比矩阵,用以降低运算复杂度。
使用图优化方法不断进行牛顿-列温伯格迭代变换矩阵使得优化目标最小,以达到最小值或者迭代30次为止,输出优化目标
其中,纯惯性误差进行位姿优化求解载体位姿具体执行方法如下:
因为当前帧视觉信息不在可靠,所以仅将惯性误差引入优化方程中,进行位姿的优化求解,优化目标为
使用图优化方法不断进行牛顿-列温伯格迭代变换矩阵使得优化目标最小,以达到最小值或者迭代30次为止,输出优化目标
步骤6:输出载体导航信息,更新地图,并跳转至步骤1;
先判断是否为第一帧,如果为第一帧,则直接将视觉传感器数据s(i)中的每个特征点以及优化得出的导航坐标系的坐标全部载入地图中;
如果非初第一帧,将视觉传感器数据s(i)中的每个特征点以及求出的导航坐标系的坐标载入地图中,并处理与视觉传感器数据s(i-1)匹配成功的点对形成的冗余数据,存在匹配点对的导航坐标系坐标为所有包含该特征点的图像数据中包含的导航坐标系坐标值的平均。
图2所示的轨迹中,其中散点线参考轨迹,实线图为本专利轨迹,虚线图为orb-slam2算法轨迹,粗体虚线为松组合轨迹图,虚线点图为紧组合轨迹图。可以看出,本发明提出的方法与参考轨迹基本重合,误差最终在0.6%,可以在出现错误的时候利用惯性预积分递推优化继续完成导航,目前最主流的松紧组合方法均以发散,相比目前最主流的松紧组合方法,本发明具有明显的优势。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,在不脱离本发明的精神和原则的前提下,本领域普通技术人员对本发明所做的任何修改、等同替换、改进等,均应落入本发明权利要求书确定的保护范围之内。