本发明涉及一种单目鲁棒性视觉惯性紧耦合定位方法,属于slam(simultaneouslocalizationandmapping,同步定位与建图)领域。
背景技术:
随着微型飞行器自主飞行、自动驾驶、虚拟现实及增强现实等技术的迅速发展,实现高精度、强鲁棒性定位是完成移动智能体自主导航、探索未知区域等既定任务的重要前提。将视觉传感器和惯性测量单元(imu)融合,可构建出精度更高、鲁棒性更强的视觉惯性融合定位系统(vio)。
传统的视觉惯性融合定位框架包括前端和后端两个模块,前端通过imu和图像估算相邻图像间相机的运动,后端接受前端不同时刻估算的相机运动信息,对其进行局部与全局优化,得到全局一致的轨迹。
现有的vio包括okvis、基于orb_slam2的单目视觉惯性融合定位系统、vins。okvis框架(leuteneggers,furgalep,rabaudv,etal.keyframe-basedvisual-inertialslamusingnonlinearoptimization[j].proceedingsofrobotisscienceandsystems(rss)2013,2013.)提出了视觉惯性融合定位框架的前端模型,该模型实现了视觉和惯性数据的紧耦合,但未恢复出系统尺度和重力加速度等数据,同时不含预积分框架,因此其定位精度和鲁棒性较差;基于orb_slam2(mur-artalr,tardósjd.visual-inertialmonocularslamwithmapreuse[j].ieeeroboticsandautomationletters,2017,2(2):796-803.)的单目视觉惯性定位系统,其预积分模型采用流型预积分算法,视觉惯性初始化模型需约15秒,在该阶段无法实现实时鲁棒性定位,同时其跟踪模型采用简单的匀速模型,使相机剧烈运动时无法正确初始化,甚至跟踪失败,最终导致定位效果不佳;vins(qint,lip,shens.vins-mono:arobustandversatilemonocularvisual-inertialstateestimator[j].ieeetransactionsonrobotics,2018,34(4):1004-1020.)初始化模型相对较快,但并未对加速度计偏置进行标定,同时初始化精度略低,采用传统的参考帧跟踪模型限制了其定位精度。
技术实现要素:
本发明所要解决的技术问题是:
针对上述现有技术,提出一种包含imu加权预积分、快速联合初始化及视觉imu辅助跟踪的面向单目视觉惯性紧耦合定位的方法,提升视觉惯性定位的精度、实时性和鲁棒性。
本发明为解决上述技术问题采用以下技术方案:
本发明提出一种基于单目的鲁棒性视觉惯性紧耦合定位方法,步骤包括:
步骤一、通过相机采集视觉数据,通过imu单元采集惯性数据;
步骤二、imu预积分:利用imu加权预积分模型同步所述视觉数据和所述惯性数据,进行imu预积分,并得到imu先验值;
步骤三、初始化:将所述imu先验值代入视觉惯性联合初始化模型,完成参数的初始化;
步骤四、辅助跟踪定位:在步骤三所述参数的初始化所需时间内,利用连续关键帧之间的变换矩阵计算运动信息,代入视觉惯性融合定位框架的后端模块,实现紧耦合定位;
步骤五、跟踪定位:步骤三所述参数的初始化完成后,转而将所述参数带入视觉惯性融合定位模型,计算得到运动信息,带入视觉惯性融合定位框架的后端模块,实现紧耦合定位。
如前所述的一种基于单目的鲁棒性视觉惯性紧耦合定位方法,进一步地,步骤二所述imu预积分包括如下具体步骤:
步骤2.1、计算加权imu测量值,得到imu坐标系下的角速度测量值
t时刻典型的imu测量值方程表示为:
其中wb(t)和aw(t)分别是imu坐标系下的角速度真实值和世界坐标系下加速度真实值,bg(t)和ba(t)分别是陀螺仪和加速度计的偏置,ηg(t)和ηa(t)分别是陀螺仪和加速度计的高斯噪声,gw是世界坐标系下的重力加速度,
t到t+δt时刻之间真实的加权imu测量值表示为:
wb(t,t+δt)=c1(t)wb(t)+c2(t)wb(t+δt)
ab(t,t+δt)=c3(t)ab(t)+c4(t)ab(t+δt)(2)
其中,ab(t)为t时刻imu坐标系下的加速度;加权系数c1(t),c2(t),c3(t),c4(t)具体表示为:
c1(t)=wb(t)/(wb(t)+wb(t+δt))
c2(t)=wb(t+δt)/(wb(t)+wb(t+δt))
c3(t)=ab(t)/(ab(t)+ab(t+δt))
c4(t)=ab(t+δt)/(ab(t)+ab(t+δt))(3)
步骤2.2、imu坐标系下进行加权预积分,求imu先验值,建立高精度的加权预积分模型:
由t时刻的状态积分得到当前时刻t+δt的状态,如式(4)所示:
其中rwb(t+δt)是t+δt时刻下世界坐标系相对于imu坐标系的旋转,vw(t+δt)、pw(t+δt)分别世界坐标系下的速度和平移;rwb(t)是t时刻下世界坐标系相对于imu坐标系的旋转,vw(t)、pw(t)分别是世界坐标系下的速度和平移;ww(τ)、aw(τ)和vw(τ)分别为世界坐标系下的角速度变量、加速度变量、速度变量;
将式(4)两边同乘
其中,在imu坐标系下,δrij为i,j时刻的旋转增量,δrik为i,k时刻的旋转增量;ri为i时刻的旋转,rj为j时刻的旋转,rk为k时刻的旋转;
分别考虑i,j时刻间的预积分数值受偏置及噪声的影响:先假设偏置不变,仅讨论噪声的影响,再讨论偏置更新的影响,最后由式(6)得到imu先验值:
其中
如前所述的一种基于单目的鲁棒性视觉惯性紧耦合定位方法,进一步地,步骤三所述参数的初始化包括如下具体步骤:
步骤3.1、估计优化的陀螺仪偏置,估计方向修正的重力加速度gw:
分别从陀螺仪测量值和视觉测量值得到旋转,将相对旋转的差异最小化得到优化的陀螺仪偏置bg,所述陀螺仪偏置的优化模型表示为:
其中,n是关键帧的数量,
考虑尺度s,估计从imu坐标系到相机坐标系的变换:
其中,
结合(8)和描述了两个连续关键帧的式(4),忽略加速度计及陀螺仪的偏置,得到帧间关系:
其中,
估计重力加速度时,同时计算出不准确的尺度s,考虑连续三个关键帧间的(8)、(9)关系,速度项由相对速度表示;分离的变量γ(i)为:
其中[λ(i)β(i)]为i时刻分离出的系数矩阵;
通过求解公式(10)得到重力加速度gw和粗略尺度s;引入重力幅值g=9.8m/s2;
考虑参考帧i,其重力方向为
通过扰动δθ优化旋转;其中,
其中δθxy为重力加速度修正量;
结合一阶近似值,理论重力加速度gw表示为:
其中,()×表示将三维向量转换成三维矩阵;
结合(9)和(13)并包含加速度计偏置ba,得到:
对(14)进行变量分离得到:
其中[λ(i)φ(i)ζ(i)]为i时刻分离出的系数矩阵;
求解公式(15)得到粗略尺度s,重力加速度方向修正δθxy和加速度计偏置ba;
步骤3.2、快速恢复尺度:将速度
两连续关键帧在(9)中的关系为:
其中δpi,i+1和δvi,i+1分别是两连续关键帧的速度增量和平移增量;
分离变量并得到对应的含噪声项
其中
求解此线性最小二乘问题:
得到帧的速度v和优化后尺度s。
如前所述的一种基于单目的鲁棒性视觉惯性紧耦合定位方法,进一步地,步骤三中,步骤3.1还包括:估计了陀螺仪偏置bg及加速度计偏置ba后,对平移、速度和旋转再次预积分,用于提高预积分值精度。
如前所述的一种基于单目的鲁棒性视觉惯性紧耦合定位方法,进一步地,步骤四所述辅助跟踪定位具体地包括步骤:
系统在初始化阶段使用imu旋转数据;所述旋转数据包括:对于三个连续关键帧f1、f2及f3,相互间的相对旋转分别为δt12和δt23,且有:
δt12=δt23(20)
f1和f2之间的相对变换及f3的变换矩阵分别为:
其中r1、r2为f1、f2的旋转矩阵,t1、t2、t3为f1、f2及f3的变换矩阵,t1、t2、t3为f1、f2及f3的平移向量;
imu初始的先验旋转数据由旋转矩阵间转换关系得到:
其中r3为f3的旋转矩阵,
将旋转矩阵r1、r2和r3代入到变换矩阵模型中,得到改进的t3:
再将改进的t3作为初始值代入视觉惯性融合定位框架的后端模块。
如前所述的一种基于单目的鲁棒性视觉惯性紧耦合定位方法,进一步地,步骤五所述跟踪定位具体地包括:
由步骤三得到参数初始化的结果,所述参数包括方向修正的重力加速度gw,tj时刻帧的速度vj,tj时刻帧对应的旋转矩阵rj,优化后尺度s;
对于三个连续的关键帧f1、f2和f3,有:
其中:v2,v3分别为关键帧f2和f3的速度,t2,t3分别为关键帧f2和f3的时刻,gw为方向修正的重力加速度,r2为关键帧f2的旋转矩阵,a2为关键帧f2的加速度,
其中,
最终将改进的t3和v3联合作为初始状态代入视觉惯性融合定位框架的后端模块。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明在imu预积分阶段,提出了imu加权预积分模型,为联合初始化提供imu先验值,为传统视觉惯性融合定位框架的后端优化部分提供高精度imu约束,提高了定位精度;
在初始化阶段,提出了视觉惯性联合初始化模型,构建视觉惯性融合状态向量,建立联合初始化模型,为传统视觉惯性融合定位框架的后端优化部分提供绝对尺度、重力加速度及速度信息,使本发明的鲁棒性和定位精度都得到增强;
在初始化阶段,提出了辅助跟踪模型,用于在初始化阶段替代定位,解决了视觉惯性初始化模型需约15秒,在该阶段无法实现实时鲁棒性定位的问题;
总体而言,本发明所提出的方法用于视觉惯性定位,所述方法同步视觉和惯性测量数据,建立高精度的imu加权预积分模型,为联合初始化和视觉跟踪模型提供帧间运动约束,提高了定位精度;构建视觉惯性融合状态向量,建立联合初始化模型,实现视觉惯性松耦合的快速联合初始化,降低了系统初始化时间;在imu加权预积分和快速初始化方法的基础上,建立一套视觉惯性辅助跟踪模型,有效提高了系统鲁棒性。使用本发明提出的方法,初始化时间可缩短至10秒内;相比传统的基于orb_slam2的单目视觉惯性定位系统,定位精度可提高约30%。
附图说明
图1是基于单目的视觉惯性紧耦合定位方法流程图;
图2是本方法与现有方法在mh03序列中定位轨迹平面图;
图3是本方法与现有方法在v101序列中定位轨迹平面图;
图4是本方法与现有方法在mh03序列中的轨迹误差曲线图;
图5是本方法与现有方法在mh03序列中的轨迹误差小提琴图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
一种基于单目的鲁棒性视觉惯性紧耦合定位方法,首先同步视觉和惯性测量数据,建立高精度的imu加权预积分模型;其次构建视觉惯性融合状态向量,建立联合初始化模型;最后在imu加权预积分和快速初始化方法的基础上,建立一套视觉惯性辅助跟踪模型。
如图1,进一步的,一种基于单目的鲁棒性视觉惯性紧耦合定位方法包括如下具体步骤:
步骤1),同步视觉和惯性测量数据,建立高精度的imu加权预积分模型,具体如下:
a),计算加权imu测量值。imu的测量值包含由陀螺仪和加速度计分别提供的角速度和加速度,t时刻典型的测量值方程如式(1)所示。
其中
定义t到t+δt时刻之间真实的加权imu测量值为这两个时刻测量值加权描述的常数:
wb(t,t+δt)=c1(t)wb(t)+c2(t)wb(t+δt)
ab(t,t+δt)=c3(t)ab(t)+c4(t)ab(t+δt)(2)
其中,加权系数c1(t),c2(t),c3(t),c4(t)具体表示如式(3)所示。
c1(t)=wb(t)/(wb(t)+wb(t+δt))
c2(t)=wb(t+δt)/(wb(t)+wb(t+δt))
c3(t)=ab(t)/(ab(t)+ab(t+δt))
c4(t)=ab(t+δt)/(ab(t)+ab(t+δt))(3)
b),建立加权预积分模型。当前时刻t+δt的状态可由t时刻的状态积分得到,如式(4)所示:
将式(4)两边同乘
由式(5)知i,j时刻间的预积分数值受偏置
步骤2),构建视觉惯性融合状态向量,建立联合初始化模型,包含如下具体步骤:
a),估计偏置及重力加速度。由于噪声的存在,分别从陀螺仪测量值和视觉测量值得到的旋转不相等,故通过最小化相对旋转的差异来优化陀螺仪偏置,优化模型如式(7)所示:
n是关键帧的数量,
估计从imu坐标系到相机坐标系的变换时包含了尺度s:
结合(8)和描述了两个连续关键帧的式(4),忽略加速度计及陀螺仪的偏置可得:
估计重力加速度时,同时计算出不准确的尺度s,考虑连续三个关键帧间的(8)、(9)关系,速度项由相对速度表示。分离的变量为:
至少联合四个关键帧可形成测量模型:a3(n-2)×4x4×1=b3(n-1)×1。通过svd求解模型得到重力加速度向量
结合一阶近似值,gw可表示为:
结合(9)和(13)并包含加速度偏置,得到:
式(10)进一步转化为含有尺度、重力加速度方向修正及加速度计偏置的表达式:
b),快速恢复尺度。将速度、重力向量及尺度合为一个状态向量:
分离变量并得到对应的含噪声项
其中:
通过求解此线性最小二乘问题,可得到相机帧的速度v和优化后尺度s:
步骤3),建立视觉惯性辅助跟踪模型,具体如下:
系统的初始化阶段由于无法获取速度、重力加速度及尺度,故只能使用imu旋转数据。匀速跟踪模型视相邻关键帧间的相对变换不变,即对于三个连续帧f1、f2及f3,相互间的相对旋转分别为δr12和δr23,且有:
δt12=δt23(20)
f1和f2之间的相对变换及f3的变换矩阵分别为:
本文将imu初始的先验旋转数据由旋转矩阵间转换关系得到:
其中
将旋转矩阵代入到变换矩阵模型中:
再将改进的t3作为初始值代入优化模型。当系统完成初始化后,可获得准确的重力加速度和imu速度,因此在视觉优化前可通过imu获得整个系统的速度信息:
最终将改进的t3和v3联合作为初始状态代入优化模型。
实施例一
本发明提出的方法理论上可应用于现有的传统的视觉惯性融合定位框架(vio)。现有的传统的视觉惯性融合定位框架包括前端和后端两个模块,前端通过imu和图像估算相邻图像间相机的运动,后端接受前端不同时刻估算的相机运动信息,对其进行局部与全局优化,得到全局一致的轨迹。
现有的vio包括okvis、基于orb_slam2的单目视觉惯性融合定位系统、vins。基于视觉惯性orb_slam2(后文记为origin_vio),并采用euroc数据集中的九个数据序列进行测试。该数据集包含了不同的房间和工业环境中,配备有vi-sensor双目惯性相机的无人机动态运动。其图像采集频率为20hz,imu采样频率为200hz,数据集提供真实轨迹。由于是单目视觉惯性平台,故仅使用数据集中左目相机测量值。本实例使用内存8g的intelcorei7-7000笔记本,本方法(记为robust_vio)实验结果与origin_vio结果作比较。
图2为mh03序列在origin_vio及robust_vio中的定位轨迹平面图。由于系统基于关键帧进行定位跟踪,故定位轨迹会存在部分不连续的情况。由图可知,两个系统估计的结果几乎跟踪了实际轨迹,但robust_vio的轨迹较于origin_vio的轨迹更连续、稳定且偏离更小。
图3为mh03序列在两种系统中定位的轨迹误差分析图,主要统计分析数据的离散程度和分布密度,robust_vio误差分布主要集中在0.095m左右,而origin_vio主要集中在0.194m附近,前者误差的中位数和四分位数都较小,且下侧的离散值表现也更优。
为验证本文提出的快速联合初始化方法的快速性,以v101序列为例作初始化状态图,图4和图5分别为初始化尺度和加速度计偏置的变化情况。由图可知在robust_vio中四类变量在10秒内稳定收敛,而origin_vio需要15秒,本文方法加快了初始化速度。
最后给出九种euroc数据序列在origin_vio及robust_vio两种系统中的定位结果。由表1可知本文定位结果优于origin_vio的定位结果,定位精度平均提高了约30%。
表1:两种方法在euroc数据集上定位结果对比
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。