CN111429524A - 一种相机与惯性测量单元在线初始化与标定方法及*** - Google Patents
一种相机与惯性测量单元在线初始化与标定方法及*** Download PDFInfo
- Publication number
- CN111429524A CN111429524A CN202010197372.3A CN202010197372A CN111429524A CN 111429524 A CN111429524 A CN 111429524A CN 202010197372 A CN202010197372 A CN 202010197372A CN 111429524 A CN111429524 A CN 111429524A
- Authority
- CN
- China
- Prior art keywords
- measurement unit
- inertial measurement
- camera
- frame
- rotation angle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
- G01C25/005—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种相机与惯性测量单元在线初始化与标定方法及***,包括:步骤M1:纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;步骤M2:视觉与惯性联合标定与初始化,基于初始关键帧的位姿与初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;步骤M3:相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。本发明不需要标定板等人工标定工具即可联合初始化过程完成对相机与惯性测量单元相对旋转角和相对平移量的标定,扩大了使用范围。
Description
技术领域
本发明涉及传感器融合领域,具体地,涉及一种相机与惯性测量单元在线初始化与标定方法及***,更为具体地,涉及基于信息量窗口的单目相机与惯性测量单元联合在线初始化与标定的方法及***。
背景技术
相机和惯性测量单元(Inertial Measurement Unit,IMU)具有互补的特性,因而被组合起来广泛应用于导航和三维重建等领域。相机能够获得外界环境的丰富信息,但在快速运动、光照改变等情况下容易失效。IMU能够高频地获得机器人内部的运动信息,并且不受周围环境的影响,从而弥补视觉传感器的不足。同时,通过视觉匹配完成的回环检测与回环校正可以有效地修正IMU的累计漂移误差。
初始化是基于优化的SLAM***中必不可少的环节。初始化过程确定了待估计变量的初始值和***运行所需的参数,包括初始几帧的位姿、初始地图点、尺度因子、重力向量和IMU零漂值等。由于***的非线性,初值的确定能够避免非线性优化陷入局部最优。现有的初始化方法通过将角速度进行积分得到各帧的姿态,随着时间的增长累计误差不断增加。
相机与IMU的外参包括相机与IMU的相对旋转角、相对平移量。确定视觉传感器与IMU外参是对相机与IMU进行融合应用的前提。目前,视觉传感器与IMU外参的标定主要依靠离线的人工操作,需要操作者手持标定板并进行适当的移动和旋转操作。整个过程费时耗力,而且需要操作者具备相关的知识。目前已有一些在线标定的方法。但是,在运动情况退化情况下(机器人的加速度和旋转量很小),这些方法的计算量都会随时间快速增长。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种相机与惯性测量单元在线初始化与标定方法及***。
根据本发明提供的一种相机与惯性测量单元在线初始化与标定方法,包括:
步骤M1:纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;
步骤M2:视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
步骤M3:相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。
优选地,所述步骤M1包括:
步骤M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
步骤M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
步骤M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
步骤M1.4:利用透视n点法将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
优选地,所述步骤M2包括:
步骤M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
步骤M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
步骤M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
优选地,所述步骤M2.1包括:
步骤M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
步骤M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
其中,Rcb表示相机与惯性测量单元的相对旋转角;
步骤M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
步骤M2.1.4:对任意相邻两关键帧,观测量所包含的关于相机与惯性测量单元相对旋转角的信息量度量为:
iQi,i+1=trace((QL(qbi,bi+1)-QR(qci,ci+1))T·(QL(qbi,bi+1)-QR(qci,ci+1))) (4)
其中,QL(q)表示四元数q对应的左乘矩阵;QR(q)表示四元数q对应的右乘矩阵;qbi,bi+1表示第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1表示第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
步骤M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (5)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (6)
步骤M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复执行步骤M2.1.1至步骤M2.1.5,直至视觉惯性旋转角标定完成;
所述步骤M2.2包括:
步骤M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
步骤M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (9)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述步骤M2.3包括:引入预设值大小的重力向量为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
根据得到的重力向量gw得到重力的旋转角:
其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量;将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (14)
通过判断最近Nwinc个视觉惯性平移量的各维度值所对应的标准差σx、σy、σz是否小于阈值来确定视觉惯性平移量是否标定完成;通过判断最近Nwinc个尺度因子的标准差σs是否小于阈值thrs来确定视觉惯性初始化是否完成;当视觉惯性平移量标定未完成或视觉惯性初始化未完成,则等待新的关键帧后重复执行步骤M2.2至步骤M2.3直至视觉与惯性联合初始化和标定完成。
优选地,所述步骤M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
步骤M3.1:根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
根据本发明提供的一种相机与惯性测量单元在线初始化与标定***,包括:
模块M1:纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;
模块M2:视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
模块M3:相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。
优选地,所述模块M1包括:
模块M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
模块M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
模块M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
模块M1.4:利用透视n点法将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
优选地,所述模块M2包括:
模块M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
模块M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
模块M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
优选地,所述模块M2.1包括:
模块M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
模块M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
其中,Rcb表示相机与惯性测量单元的相对旋转角;
模块M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
模块M2.1.4:对任意相邻两关键帧,观测量所包含的关于相机与惯性测量单元相对旋转角的信息量度量为:
其中,QL(q)表示四元数q对应的左乘矩阵;QR(q)表示四元数q对应的右乘矩阵;qbi,bi+1表示第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1表示第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
模块M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (5)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (6)
模块M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复触发模块M2.1.1至模块M2.1.5执行,直至视觉惯性旋转角标定完成;
所述模块M2.2包括:
模块M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
模块M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (9)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述模块M2.3包括:引入预设值大小的重力向量为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
根据得到的重力向量gw得到重力的旋转角:
其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量;将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (14)
通过判断最近Nwinc个视觉惯性平移量的各维度值所对应的标准差σx、σy、σz是否小于阈值来确定视觉惯性平移量是否标定完成;通过判断最近Nwinc个尺度因子的标准差σs是否小于阈值thrs来确定视觉惯性初始化是否完成;当视觉惯性平移量标定未完成或视觉惯性初始化未完成,则等待新的关键帧后重复触发模块M2.2至模块M2.3执行直至视觉与惯性联合初始化和标定完成。
优选地,所述模块M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
模块M3.1:根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
与现有技术相比,本发明具有如下的有益效果:
1、本发明不需要标定板等人工标定工具即可联合初始化过程完成对相机与惯性测量单元相对旋转角和相对平移量的标定,扩大了使用范围;
2、本发明在运行过程中能够自主判断是否需要重新标定,能够应对相机与惯性测量单元相对位姿随时间变化的情况;
3、本发明利用信息量作为衡量指标,对参与初始化和标定的观测量进行了筛选,抑制了运动退化情况下计算量的不断增长。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为纯视觉初始化流程图;
图2为视觉与惯性融合初始化与标定流程图;
图3为基于信息量窗口的筛选算法流程图;
图4为标定值异常判断与更新流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供了一种单目相机与惯性测量单元联合在线初始化与标定的方法,以关键帧周期为周期进行,包括纯视觉初始化和视觉与惯性联合标定与初始化以及标定值异常检测与更新三个阶段。在纯视觉初始化阶段,首先寻找符合视差条件和匹配点对数条件的当前帧和历史帧对。然后,利用当前帧和历史帧对中的匹配点对对各关键帧在世界坐标系中的位姿进行初始化,并得到各个地图点在世界坐标系中的坐标,构建初始地图。在视觉与惯性联合标定和初始化阶段,首先,基于信息量对用于标定和初始化的关键帧进行筛选。然后,利用筛选后留下的关键帧的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛。然后,假设加速度的零漂值为零,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计。之后,利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计。当尺度因子和视觉惯性平移量都收敛后,初始化和标定完成。标定值更新在***运行过程中进行,隔固定周期判断相机与惯性测量单元相对位姿是否改变,若改变,则对相对位姿进行重新标定。相比较其它的单目相机与惯性测量单元初始化和标定方法,本算法能够直接利用实际环境中的信息而不需要额外的标定板,能够应对长期运行过程中标定值变化的情况,且能够应对本体运动不充分情况下初始化和标定的计算量快速增长的问题。
针对现有相机和惯性测量单元在线初始化和标定在运动退化情况下计算量随时间快速增长的问题,本发明提出了一种基于信息量窗口的单目相机与惯性测量单元联合在线初始化与标定的方法,旨在抑制计算量随时间推移的快速增长。
根据本发明提供的一种相机与惯性测量单元在线初始化与标定方法,包括:
定义待初始化变量:
T1,T2......TN:前N帧相机在世界坐标系中的位姿;
s:单目相机尺度因子;
gw:世界坐标系中的重力向量;
bg:惯性测量单元角速度零漂值;
ba:惯性测量单元加速度零漂值;
定义待标定变量:
θ2={Rbc,Pbc},其中
Rbc:相机与惯性测量单元相对旋转角;
Pbc:相机与惯性测量单元相对平移量;
步骤M1:如图1所示,纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;进行纯视觉初始化是进行纯视觉同步建图与定位的前提条件,在步骤M2与步骤M3中,各关键帧下相机的位姿来源于视觉同步定位与建图;各点是初始关键帧中观测到的点,各点坐标的确定依赖于初始关键帧位姿的确定,各帧位姿就是初始关键帧位姿。
步骤M2:如图2所示,视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
步骤M3:如图4所示,相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。对异常进行检测与更新是在步骤M1和步骤M2初始化和初始标定完成之后,在整个***运行的过程中以预设的频率进行的,目的在于纠正随时间推移可能产生变化的标定值。
具体地,所述步骤M1包括:
步骤M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
步骤M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
步骤M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
步骤M1.4:利用透视n点法(PnP:Perspective-n-Point)将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
具体地,所述步骤M2包括:
步骤M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
步骤M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
步骤M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
具体地,所述步骤M2.1包括:
步骤M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
步骤M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
通过视觉同步定位与建图(SLAM:Simultaneous Localization and Mapping)得到相邻两帧的相机在世界坐标系下的位姿利用相机与惯性测量单元的相对旋转角得到惯性测量单元的相对旋转角
其中,Rcb表示相机与惯性测量单元的相对旋转角;
步骤M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
其中,QL(q):四元数q对应的左乘矩阵;QR(q):四元数q对应的右乘矩阵;qbi,bi+1:第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1:第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量。
步骤M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (4)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (5)
步骤M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复执行步骤M2.1.1至步骤M2.1.5,直至视觉惯性旋转角标定完成;
所述步骤M2.2包括:
步骤M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
如图3所示,步骤M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (8)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述步骤M2.3包括:引入重力向量大小为G=9.8为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
根据得到的重力向量gw得到重力的旋转角:
其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量[0,0,-1];将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (13)
通过判断最近Nwinc个视觉惯性平移量的各维度值所对应的标准差σx、σy、σz是否小于阈值来确定视觉惯性平移量是否标定完成;通过判断最近Nwinc个尺度因子的标准差σs是否小于阈值thrs来确定视觉惯性初始化是否完成;当视觉惯性平移量标定未完成或视觉惯性初始化未完成,则等待新的关键帧后重复执行步骤M2.2至步骤M2.3直至视觉与惯性联合初始化和标定完成。
具体地,所述步骤M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
步骤M3.1:判断相机与惯性相对旋转角标定值是否需要更新。
以最新的Nupdate帧作为观测量,对于任意相邻两帧i和i+1,计算:
Qi,i+1=(QL(qbi,bi+1)-QR(qci,ci+1))。
qbc:更新前相机与惯性测量单元的相对旋转角。
将计算结果与阈值thrupdateR比较。如果大于阈值thrupdateR则需要重新对相对旋转角进行标定。转步骤M3.2;否则转步骤M3.3;
步骤M3.2:基于信息量对参与标定的观测量进行筛选。利用筛选后的观测量对相机与惯性测量单元的相对旋转角进行标定;
步骤M3.3:判断相机与惯性测量单元的相对平移量标定值是否需要更新。
以最新的Nupdate帧作为观测量,利用任意相邻三帧i和i+1和i+2的观测量通过视觉与惯性融合的SLAM算法得到各帧相机在世界坐标系下的旋转角Rwc,相邻两帧的相对平移量预积分ΔP和相对线速度预积分Δv,计算:
Pcb为更新前相机与惯性测量单元的相对平移量。
将计算结果与阈值thrupdateP比较。如果大于阈值thrupdateP则需要重新对相对平移量进行标定,转步骤M3.4;否则回到步骤M3.1;
步骤M3.4:基于信息量对参与标定的观测量进行筛选。利用筛选后的观测量对相机与惯性测量单元的相对平移量进行标定。
帧筛选时信息量窗口大小Nwin=12,收敛性判断参数Nwinc=15, thrs=0.02。判断是否需要重新标定的窗口大小Nupdate=50,阈值大小thrupdateR=0.2°,thrupdateP=0.1m。
根据本发明提供的一种相机与惯性测量单元在线初始化与标定***,包括:
定义待初始化变量:
T1,T2......TN:前N帧相机在世界坐标系中的位姿;
s:单目相机尺度因子;
gw:世界坐标系中的重力向量;
bg:惯性测量单元角速度零漂值;
ba:惯性测量单元加速度零漂值;
定义待标定变量:
θ2={Rbc,Pbc},其中
Rbc:相机与惯性测量单元相对旋转角;
Pbc:相机与惯性测量单元相对平移量;
模块M1:如图1所示,纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;进行纯视觉初始化是进行纯视觉同步建图与定位的前提条件,在模块M2与模块M3中,各关键帧下相机的位姿来源于视觉同步定位与建图;各点是初始关键帧中观测到的点,各点坐标的确定依赖于初始关键帧位姿的确定,各帧位姿就是初始关键帧位姿。
模块M2:如图2所示,视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
模块M3:如图4所示,相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。对异常进行检测与更新是在模块M1和模块M2初始化和初始标定完成之后,在整个***运行的过程中以预设的频率进行的,目的在于纠正随时间推移可能产生变化的标定值。
具体地,所述模块M1包括:
模块M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
模块M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
模块M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
模块M1.4:利用透视n点法(PnP:Perspective-n-Point)将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
具体地,所述模块M2包括:
模块M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
模块M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
模块M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
具体地,所述模块M2.1包括:
模块M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
模块M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
通过视觉同步定位与建图(SLAM:Simultaneous Localization and Mapping)得到相邻两帧的相机在世界坐标系下的位姿利用相机与惯性测量单元的相对旋转角得到惯性测量单元的相对旋转角
其中,Rcb表示相机与惯性测量单元的相对旋转角;
模块M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
模块M2.1.4:对任意相邻两关键帧,观测量所包含的关于相机与惯性测量单元相对旋转角的信息量度量为iQi,i+1=trace((QL(qbi,bi+1)-QR(qci,ci+1))T·(QL(qbi,bi+1)-QR(qci,ci+1))),其中
其中,QL(q):四元数q对应的左乘矩阵;QR(q):四元数q对应的右乘矩阵;qbi,bi+1:第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1:第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量。
模块M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (4)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (5)
模块M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复触发模块M2.1.1至模块M2.1.5执行,直至视觉惯性旋转角标定完成;
所述模块M2.2包括:
模块M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
如图3所示,模块M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (8)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述模块M2.3包括:引入重力向量大小为G=9.8为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
根据得到的重力向量gw得到重力的旋转角:
其中,其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量[0,0,-1];将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (13)
通过判断最近Nwinc个视觉惯性平移量的各维度值所对应的标准差σx、σy、σz是否小于阈值来确定视觉惯性平移量是否标定完成;通过判断最近Nwinc个尺度因子的标准差σs是否小于阈值thrs来确定视觉惯性初始化是否完成;当视觉惯性平移量标定未完成或视觉惯性初始化未完成,则等待新的关键帧后重复触发模块M2.2至模块M2.3执行直至视觉与惯性联合初始化和标定完成。
具体地,所述模块M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
模块M3.1:判断相机与惯性相对旋转角标定值是否需要更新。
以最新的Nupdate帧作为观测量,对于任意相邻两帧i和i+1,计算:
Qi,i+1=(QL(qbi,bi+1)-QR(qci,ci+1))。
qbc:更新前相机与惯性测量单元的相对旋转角。
将计算结果与阈值thrupdateR比较。如果大于阈值thrupdateR则需要重新对相对旋转角进行标定。转模块M3.2;否则转模块M3.3;
模块M3.2:基于信息量对参与标定的观测量进行筛选。利用筛选后的观测量对相机与惯性测量单元的相对旋转角进行标定;
模块M3.3:判断相机与惯性测量单元的相对平移量标定值是否需要更新。
以最新的Nupdate帧作为观测量,利用任意相邻三帧i和i+1和i+2的观测量通过视觉与惯性融合的SLAM算法得到各帧相机在世界坐标系下的旋转角Rwc,相邻两帧的相对平移量预积分ΔP和相对线速度预积分Δv,计算:
Pcb为更新前相机与惯性测量单元的相对平移量。
将计算结果与阈值thrupdateP比较。如果大于阈值thrupdateP则需要重新对相对平移量进行标定,转模块M3.4;否则回到模块M3.1;
模块M3.4:基于信息量对参与标定的观测量进行筛选。利用筛选后的观测量对相机与惯性测量单元的相对平移量进行标定。
帧筛选时信息量窗口大小Nwin=12,收敛性判断参数Nwinc=15,thrPcb=0.01m,thrs=0.02。判断是否需要重新标定的窗口大小Nupdate=50,阈值大小thrupdateR=0.2°,thrupdateP=0.1m。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的***、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种相机与惯性测量单元在线初始化与标定方法,其特征在于,包括:
步骤M1:纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;
步骤M2:视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
步骤M3:相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。
2.根据权利要求1所述的相机与惯性测量单元在线初始化与标定方法,其特征在于,所述步骤M1包括:
步骤M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
步骤M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
步骤M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
步骤M1.4:利用透视n点法将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
3.根据权利要求1所述的相机与惯性测量单元在线初始化与标定方法,其特征在于,所述步骤M2包括:
步骤M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
步骤M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
步骤M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
4.根据权利要求3所述的相机与惯性测量单元在线初始化与标定方法,其特征在于,所述步骤M2.1包括:
步骤M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
步骤M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
其中,Rcb表示相机与惯性测量单元的相对旋转角;
步骤M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
步骤M2.1.4:对任意相邻两关键帧,观测量所包含的关于相机与惯性测量单元相对旋转角的信息量度量为:
iQi,i+1=trace((QL(qbi,bi+1)-QR(qci,ci+1))T·(QL(qbi,bi+1)-QR(qci,ci+1))) (4)
其中,QL(q)表示四元数q对应的左乘矩阵;QR(q)表示四元数q对应的右乘矩阵;qbi,bi+1表示第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1表示第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
步骤M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (5)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (6)
步骤M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复执行步骤M2.1.1至步骤M2.1.5,直至视觉惯性旋转角标定完成;
所述步骤M2.2包括:
步骤M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
步骤M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (9)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述步骤M2.3包括:引入预设值大小的重力向量为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量;将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (14)
5.根据权利要求1所述的相机与惯性测量单元在线初始化与标定方法,其特征在于,所述步骤M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
步骤M3.1:根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
6.一种相机与惯性测量单元在线初始化与标定***,其特征在于,包括:
模块M1:纯视觉初始化,利用相机的观测量得到初始关键帧的位姿并构建初始地图;
模块M2:视觉与惯性联合标定与初始化,基于初始关键帧的位姿以及初始地图完成惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定;
模块M3:相机与惯性测量单元融合的同步定位与建图的过程中,对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量的标定进行异常检测与更新。
7.根据权利要求6所述的相机与惯性测量单元在线初始化与标定***,其特征在于,所述模块M1包括:
模块M1.1:根据进入的新关键帧,寻找符合预设条件的视差角和匹配点对数的当前帧和历史帧;
模块M1.2:利用对极约束求取当前帧和历史帧之间的相对位姿;
模块M1.3:根据得到的当前帧和历史帧之间的相对位姿,通过三角化得到当前帧和历史帧共同观测到的地图点的世界坐标系坐标,构建初始地图;
模块M1.4:利用透视n点法将初始地图中的点投影到各关键帧的像素平面上,求解各关键帧在世界坐标系中的位姿。
8.根据权利要求6所述的相机与惯性测量单元在线初始化与标定***,其特征在于,所述模块M2包括:
模块M2.1:基于信息量对相机与惯性测量单元的观测量进行筛选,筛选出最大化总信息量的预设数量的观测量;利用筛选后得到的相机与惯性测量单元的观测量进行惯性测量单元角速度零漂值的初始化和相机与惯性测量单元相对旋转角的标定,直到判断相机与惯性测量单元的相对旋转角收敛;
模块M2.2:假设惯性测量单元加速度的零漂值为零,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量和相机与惯性测量单元的相对平移量进行粗略估计;
模块M2.3:利用粗略估计的重力向量的方向,并引入重力大小作为新的约束,基于信息量对相机与惯性测量单元的观测量进行筛选,保留最大化总信息量的固定数量的观测量,对尺度因子、重力向量、相机与惯性测量单元相对平移量以及惯性测量单元中加速度计的零漂值进行精细化估计;当尺度因子和相机与惯性测量单元的相对平移量都收敛后,视觉与惯性联合初始化和标定完成;
所述信息量为相机与惯性测量单元的观测量中包括相机与惯性测量单元相对旋转角信息量。
9.根据权利要求8所述的相机与惯性测量单元在线初始化与标定***,其特征在于,所述模块M2.1包括:
模块M2.1.1:利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
模块M2.1.2:利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角;
其中,Rcb表示相机与惯性测量单元的相对旋转角;
模块M2.1.3:最小化利用惯性测量单元的观测量得到相邻两帧之间惯性测量单元的相对旋转角和利用相机的观测量得到相邻两帧之间惯性测量单元的相对旋转角的误差得到惯性测量单元角速度零漂值的最优估计,即得到惯性测量单元角速度零漂值的初始化;
其中,N表示关键帧个数,R2表示利用相机观测量得到的惯性测量单元的相对旋转角,R1表示利用惯性测量单元角速度积分得到的惯性测量单元的相对旋转角,bi表示第i个关键帧的惯性测量单元,bi+1表示第i+1个关键帧的惯性测量单元,bg表示惯性测量单元角速度零漂值;
模块M2.1.4:对任意相邻两关键帧,观测量所包含的关于相机与惯性测量单元相对旋转角的信息量度量为:
其中,QL(q)表示四元数q对应的左乘矩阵;QR(q)表示四元数q对应的右乘矩阵;qbi,bi+1表示第i帧与第i+1帧惯性测量单元的相对旋转角对应的四元数;qci,ci+1表示第i帧与第i+1帧相机的相对旋转角对应的四元数;
设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定。如果关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
模块M2.1.5:利用筛选后的观测量构建以相机和惯性测量单元相对旋转角为未知量的方程组,利用最小二乘法求解方程组,得到以四元数形式表示的相机与惯性测量单元相对旋转角的最优估计即相机与惯性测量单元相对旋转角的标定;
对于任意相邻两关键帧,相机和惯性测量单元相对旋转角为未知量,满足如下方程组:
(QL(qbi,bi+1)-QR(qci,ci+1))·qbc=0 (5)
其中,QL表示四元数的左乘矩阵,qbi,bi+1表示第i帧和第i+1帧下惯性测量单元相对旋转角的四元数表示,QR表示四元数的右乘矩阵,qci,ci+1表示第i帧和第i+1帧下相机相对旋转角的四元数表示,qbc表示相机与惯性测量单元的相对旋转角的四元数表示;
将(QL(qbi,bi+1)-QR(qci,ci+1))表示为Qi,i+1,利用筛选后的观测量Qi,i+1组成观测矩阵Q,建立方程:
Q·qbc=0 (6)
模块M2.1.6:通过判断最近Nwinc个相机与惯性测量单元相对旋转角对应的欧拉角的偏航角、俯仰角和横滚角的标准差σyaw、σpitch、σroll是否小于阈值来确定视觉惯性旋转角是否标定完成;当标定未完成,即相机与惯性测量单元的相对旋转角未收敛,则等待新的关键帧重复触发模块M2.1.1至模块M2.1.5执行,直至视觉惯性旋转角标定完成;
所述模块M2.2包括:
模块M2.2.1:利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角和平移量;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量和相对线速度;
构建第i帧以尺度因子s,重力向量gw和相机与惯性测量单元相对平移量Pcb的方程:
其中,假设惯性测量单元加速度零漂值ba为零;αi表示方程中尺度因子前的系数,βi表示方程中重力向量的初始化值前的系数,γi表示方程中视觉惯性平移量前的系数,ηi表示方程中的常数项系数,s表示尺度因子;gw表示重力向量的初始化值;Pcb表示视觉惯性平移量;Rwc表示相机在世界坐标系中的旋转角;Pwc相机在世界坐标系中的平移量;表示第i+1帧相机在世界坐标系中的平移量,表示第i帧相机在世界坐标系中的平移量,dti+1,i+2表示第i+1帧和第i+2帧之间的时间差,表示第i+2帧相机在世界坐标系中的平移量,dti,i+1表示第i帧和第i+1帧之间的时间差,I3×3表示单位矩阵,表示第i+2帧相机在世界坐标系中的旋转角,表示第i+1帧相机在世界坐标系中的旋转角,表示第i帧相机在世界坐标系中的旋转角,Rcb表示相机与惯性测量单元之间的相对旋转角,ΔPi,i+1表示第i帧和i+1帧惯性测量单元的相对平移量,ΔPi+1,i+2表示第i+1帧和i+2帧惯性测量单元的相对平移量,Δvi,i+1表示第i+1帧和i+2帧惯性测量单元的相对线速度;
模块M2.2.2:假设Ai=[αi βi γi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,当关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于等于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
A·x=B (9)
利用最小二乘法求解尺度因子的最优估计s*,重力向量的最优估计gw *和相机与惯性测量单元相对平移量的最优估计Pcb *:
所述模块M2.3包括:引入预设值大小的重力向量为约束,得到尺度因子s、重力向量gw的初始化值和视觉惯性平移量Pcb的标定值;
根据得到的重力向量gw得到重力的旋转角:
其中,RWI表示重力在世界坐标系中的旋转角,表示与重力向量和固定向量gI垂直的单位向量,θ表示与重力向量和固定向量gI之间的夹角,gI表示固定向量;将重力向量用旋转角和重力大小表示并进行一阶泰勒展开:
其中,δθ表示重力向量旋转角的更新值;G表示重力大小,δθx表示重力向量旋转角的更新值在世界坐标系的x轴下的分量,δθy表示重力向量旋转角的更新值在世界坐标系的y轴下的分量;
利用视觉同步定位与建图算法根据相机观测量得到相机在世界坐标系中的旋转角Rwc和平移量Pwc;利用预积分算法根据惯性测量单元观测量得到惯性测量单元相邻两关键帧的相对平移量ΔPi,i+1和相对线速度Δvi,i+1;构建第i帧以尺度因子s,重力向量gw,惯性测量单元加速度零漂值ba和相机与惯性测量单元相对平移量Pcb的方程:
其中,λi表示方程中尺度因子前的系数,μi表示方程中重力向量旋转角的更新值前的系数,ωi表示方程中惯性测量单元加速度零漂值前的系数,υi表示方程中相机与惯性测量单元相对平移量前的系数,ρi表示方程中的常数项系数,表示第i帧和第i+2帧的惯性测量单元的相对线速度相比于惯性测量单元加速度零漂值的雅可比矩阵,dt12表示第i帧和第i+1帧之间的时间差,dt23表示第i+1帧和i+2帧之间的时间差,表示第i+1帧和第i+2帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,表示第i帧和第i+1帧之间的惯性测量单元的相对平移量相比于惯性测量单元加速度零漂值的雅可比矩阵,小标[:,1:2]表示只取矩阵的前两列;
假设Ci=[λi μi ωi υi],相邻3个关键帧构成的观测量中包含未知量的信息量度量设置信息量窗口大小为Nwin,如果关键帧总数小于Nwin,则将最新的关键帧加入到序列中用于初始化和标定;当关键帧总数大于Nwin时,则将当前的信息量度量与已有序列中的信息量度量进行比较,剔除信息量度量最小的观测量;
构建方程组并利用最小二乘法求解
C·y=D (14)
10.根据权利要求6所述的相机与惯性测量单元在线初始化与标定***,其特征在于,所述模块M3包括:在相机与惯性测量单元融合的同步定位与建图过程中,每隔预设值周期判断相机与惯性测量单元相对位姿是否改变,当改变时,则根据最新帧中的任意相邻两帧对惯性测量单元角速度零漂值的初始化与相机和惯性测量单元相对旋转角和平移量进行重新标定;
模块M3.1:根据比较相机与惯性测量单元的观测量和相机与惯性测量单元相对旋转角的初始标定值之间的一致性误差是否超过阈值判断相机与惯性相对旋转角标定值是否需要更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010197372.3A CN111429524B (zh) | 2020-03-19 | 2020-03-19 | 一种相机与惯性测量单元在线初始化与标定方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010197372.3A CN111429524B (zh) | 2020-03-19 | 2020-03-19 | 一种相机与惯性测量单元在线初始化与标定方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111429524A true CN111429524A (zh) | 2020-07-17 |
CN111429524B CN111429524B (zh) | 2023-04-18 |
Family
ID=71548171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010197372.3A Active CN111429524B (zh) | 2020-03-19 | 2020-03-19 | 一种相机与惯性测量单元在线初始化与标定方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111429524B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112229424A (zh) * | 2020-11-16 | 2021-01-15 | 浙江商汤科技开发有限公司 | 视觉惯性***的参数标定方法及装置、电子设备和介质 |
CN112629565A (zh) * | 2021-03-08 | 2021-04-09 | 中国人民解放军国防科技大学 | 像机与惯性测量单元旋转关系校准方法、装置和设备 |
CN113313763A (zh) * | 2021-05-26 | 2021-08-27 | 珠海深圳清华大学研究院创新中心 | 一种基于神经网络的单目相机位姿优化方法及装置 |
CN114018291A (zh) * | 2021-11-08 | 2022-02-08 | 中国科学院空天信息创新研究院 | 一种惯性测量单元参数的标定方法、装置 |
CN114199275A (zh) * | 2020-09-18 | 2022-03-18 | 阿里巴巴集团控股有限公司 | 传感器的参数确定方法和装置 |
CN115451958A (zh) * | 2022-11-10 | 2022-12-09 | 中国人民解放军国防科技大学 | 基于相对旋转角度的相机绝对姿态优化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108827315A (zh) * | 2018-08-17 | 2018-11-16 | 华南理工大学 | 基于流形预积分的视觉惯性里程计位姿估计方法及装置 |
CN110044354A (zh) * | 2019-03-28 | 2019-07-23 | 东南大学 | 一种双目视觉室内定位与建图方法及装置 |
WO2019157925A1 (zh) * | 2018-02-13 | 2019-08-22 | 视辰信息科技(上海)有限公司 | 视觉惯性里程计的实现方法及*** |
WO2019169540A1 (zh) * | 2018-03-06 | 2019-09-12 | 斯坦德机器人(深圳)有限公司 | 紧耦合视觉slam的方法、终端及计算机可读存储介质 |
CN110375738A (zh) * | 2019-06-21 | 2019-10-25 | 西安电子科技大学 | 一种融合惯性测量单元的单目同步定位与建图位姿解算方法 |
CN110726406A (zh) * | 2019-06-03 | 2020-01-24 | 北京建筑大学 | 一种改进的非线性优化单目惯导slam的方法 |
-
2020
- 2020-03-19 CN CN202010197372.3A patent/CN111429524B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019157925A1 (zh) * | 2018-02-13 | 2019-08-22 | 视辰信息科技(上海)有限公司 | 视觉惯性里程计的实现方法及*** |
WO2019169540A1 (zh) * | 2018-03-06 | 2019-09-12 | 斯坦德机器人(深圳)有限公司 | 紧耦合视觉slam的方法、终端及计算机可读存储介质 |
CN108827315A (zh) * | 2018-08-17 | 2018-11-16 | 华南理工大学 | 基于流形预积分的视觉惯性里程计位姿估计方法及装置 |
CN110044354A (zh) * | 2019-03-28 | 2019-07-23 | 东南大学 | 一种双目视觉室内定位与建图方法及装置 |
CN110726406A (zh) * | 2019-06-03 | 2020-01-24 | 北京建筑大学 | 一种改进的非线性优化单目惯导slam的方法 |
CN110375738A (zh) * | 2019-06-21 | 2019-10-25 | 西安电子科技大学 | 一种融合惯性测量单元的单目同步定位与建图位姿解算方法 |
Non-Patent Citations (1)
Title |
---|
王昱欣等: "软体机器人手眼视觉/形状混合控制", 机器人 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114199275A (zh) * | 2020-09-18 | 2022-03-18 | 阿里巴巴集团控股有限公司 | 传感器的参数确定方法和装置 |
CN112229424A (zh) * | 2020-11-16 | 2021-01-15 | 浙江商汤科技开发有限公司 | 视觉惯性***的参数标定方法及装置、电子设备和介质 |
CN112229424B (zh) * | 2020-11-16 | 2022-04-22 | 浙江商汤科技开发有限公司 | 视觉惯性***的参数标定方法及装置、电子设备和介质 |
CN112629565A (zh) * | 2021-03-08 | 2021-04-09 | 中国人民解放军国防科技大学 | 像机与惯性测量单元旋转关系校准方法、装置和设备 |
CN112629565B (zh) * | 2021-03-08 | 2021-06-01 | 中国人民解放军国防科技大学 | 像机与惯性测量单元旋转关系校准方法、装置和设备 |
CN113313763A (zh) * | 2021-05-26 | 2021-08-27 | 珠海深圳清华大学研究院创新中心 | 一种基于神经网络的单目相机位姿优化方法及装置 |
CN114018291A (zh) * | 2021-11-08 | 2022-02-08 | 中国科学院空天信息创新研究院 | 一种惯性测量单元参数的标定方法、装置 |
CN115451958A (zh) * | 2022-11-10 | 2022-12-09 | 中国人民解放军国防科技大学 | 基于相对旋转角度的相机绝对姿态优化方法 |
CN115451958B (zh) * | 2022-11-10 | 2023-02-03 | 中国人民解放军国防科技大学 | 基于相对旋转角度的相机绝对姿态优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111429524B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429524B (zh) | 一种相机与惯性测量单元在线初始化与标定方法及*** | |
CN111415387B (zh) | 相机位姿确定方法、装置、电子设备及存储介质 | |
Chilian et al. | Multisensor data fusion for robust pose estimation of a six-legged walking robot | |
EP2728548B1 (en) | Automated frame of reference calibration for augmented reality | |
WO2020253260A1 (zh) | 时间同步处理方法、电子设备及存储介质 | |
CN110081881B (zh) | 一种基于无人机多传感器信息融合技术的着舰引导方法 | |
CN110986968B (zh) | 三维重建中实时全局优化和错误回环判断的方法及装置 | |
Yang et al. | Online imu intrinsic calibration: Is it necessary? | |
CN112183171A (zh) | 一种基于视觉信标建立信标地图方法、装置 | |
CN111707261A (zh) | 一种微型无人机高速感知和定位方法 | |
CN113223161B (zh) | 一种基于imu和轮速计紧耦合的鲁棒全景slam***和方法 | |
JP6229041B2 (ja) | 基準方向に対する移動要素の角度偏差を推定する方法 | |
CN111754579A (zh) | 多目相机外参确定方法及装置 | |
CN112347205A (zh) | 一种车辆误差状态的更新方法和装置 | |
CN112388635B (zh) | 机器人多传感器融合感知与空间定位的方法、***及装置 | |
CN115540860A (zh) | 一种多传感器融合位姿估计算法 | |
CN110986928A (zh) | 光电吊舱三轴陀螺仪漂移实时修正方法 | |
Liu et al. | High altitude monocular visual-inertial state estimation: Initialization and sensor fusion | |
JP2730457B2 (ja) | 視覚に基く三次元位置および姿勢の認識方法ならびに視覚に基く三次元位置および姿勢の認識装置 | |
CN113436267A (zh) | 视觉惯导标定方法、装置、计算机设备和存储介质 | |
CN114812601A (zh) | 视觉惯性里程计的状态估计方法、装置、电子设备 | |
CN115797490B (zh) | 基于激光视觉融合的建图方法及*** | |
CN112712107B (zh) | 一种基于优化的视觉和激光slam融合定位方法 | |
CN111812668B (zh) | 绕机检查装置及其定位方法、存储介质 | |
CN111811501B (zh) | 一种基于树干特征的无人机定位方法、无人机及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |