登录
首页 » Others » VINS论文推倒及代码解析

VINS论文推倒及代码解析

于 2020-12-07 发布
0 429
下载积分: 1 下载次数: 3

代码说明:

VINS 的功能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线程,分别是:前端图像跟踪、后端非线性优化(其中初始化和 IMU 预积分在这个线程中)、闭环检测、闭环优化。、总体框架Measurement PreprocessingInitializationCamera(30hz)Feature Detectionnd rackerVisual-lnertialInitializedis- onlySfMAlignmentIMU (100hMU Pre-integrationLocal Visual-Inertial: OldestSliting WindowNewestNonli+、 Keyframe?OptimizationBundle Adjustment II Loop detectionwith RelocalizationStates from Loop ClosureFealure retrievel oop Deleted二二1---11------22===Global Pose Graph4-DoF Pose Graph OptimizationKeyframe DatabaseOptimization图1VINS框架ⅵINS的玏能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线稈,分别是:前端图像跟踪、后端非线性伉化(其中初始化和IMU预积分在这个线程中)、闭环检测、闭环优化各个功能模块的作用上要有:1.I图像和MU预处理●图像:提取图像 Harris角点,利用金字塔光流跟踪相邻帧,通过 RANSAC去除异常点,最后将跟踪到的特征点push到图像队列中,并通知后端进行处理●IU:将IMU数据进行积分,得到当前时刻的位置、速度和旋转(PVQ),同时计算在后端优化中将用到的相邻帧的预积分增量,及预积分误差的 Jacobian矩阵和协方差项。1.2初始化首先,利用SFM进行纯视觉佔计滑窗內所有帧的位姿及3D点逆深度,最后与IMU预积分进行对齐求解初始化参数1.3后端滑窗优化将视觉约束、IMU约束和闭环约束放在·个大的目标函数中进行非线性优化,求解滑窗内所有帧的PVQ、bias等。L M States in the sliding windowIMU:k States from loop clos1Camera:冷 MU measurements>visual measurements★ Catur图2滑窗优化示意图14闭环检测和优化利用D)BoW进行闭环检测,当检测成功后进行重定位,最后对整个相机轨迹进行闭环优化。U预积分VisionIMUVision图3MU预积分示意图21当前时刻pVQ的连续形式将第k唢和第kl帧之间的所有IMU进行积分,可得第kHI帧的位置、速度和旋转(PVQ),作为视觉估计的初始值,这里的旋转采用的四元数。v△t+k+1∈[k,k+1]rW(at-ba ) -owletbk JtE[k, k+1]n(,-bdt∈[k,k+1]其中,a2和O为ⅠMU测量的加速度和角速度,是在Body自身坐标系, world坐标系是IMU所在的惯导系,上式的旋转公式推导可参考附录10.1。22当前时刻PVQ的中值法离散形式公式(1)给出的是连续吋刻的相机当前PVR的达代公式,为了跟代码致,下面给出基于中值法的公式,这与 Estimator:; processIMg(O函数中的Ps]、Rs]和Vs是一致的,IMU积分出来的第j时刻的物理量可以作为第j帧图像的初始值。tr t+a26t(2)ka,St其中q(a1-ba)-g"+q:+1(a+1-ba)(a;+o;+1)2.3两帧之间PVQ增量的连续形式通过观察公式(1)可知,IvU的预积分需要依赖与第k帧的ν和R,当我们在后端进行非线性优化时,需要迭代更新第κ唢的ν和R,这将导致我们需要根据每次迭代后值重新进行积分,这将非常耗吋。因此,我们考虑将优化变量从第k帧到第κ+1帧的IU预积分项中分离开来,通过对公式(1)左右两侧各乘Rb,可化简为:R(+p2k-=2△)+ak+1b其中DtElk, k+1t∈[k,k+1R k(at-bar)ldt)Wendtt∈[kk+1这样我们就得到了连续时刻的MU预积分公式,可以发现,上式得到的MU预积分的值只与不同时刻的a2和o相关。这里我们需要重新讨论下公式(5)预积分公式,以ab,为例,我们发现它是与MU的bias相关的,而bias也是我们需要优化的变量,这将导致的问题是,当每次迭代时,我们得到一个新的bias,又得根据公式(巧5)重新对第k帧和第k+1帧之间的IMU预积分,非常耗时。这里假设预积分的变化量与bias是线性关系,可以写成:ab,+/6n6ba+/16b+8 8ba +p(6)k+1sb24两帧之间PVQ增量的欧拉法离散形式面给出离散时刻的IMU预积分公式,首先按照论文中采用的欧拉法,给出第i个MU时刻与第i1个IMU时刻的变量关系为b+1k+的6t+元R(P)(1+R(P")(a2-bbn)δt25两帧之间PⅤQ增量的中值法离散形式卜面给出代码中采用的基」中值法的IMU预积分公式,这与 Estimator: processIMUO函数中的 Integration Base: push backo上是一致的。注意这里跟公式(2)是不一样的,这里积分出来的是前后两顿之间的IU增量信息,而公式(2)给出的当前帧时刻的物理量信息+1+B k St +=a, &tbb+1Bi + au1其中a,=slqilai-bai)+qiDi t aitl2.6连续形式下PVQ增量的误差、协方差及 JacobianIMU在每个吋刻积分出来的值是有误差的,下面我们对误差进行分析。首先我们直接给出在t时刻误差项的导数为:sa00016a000000-82(066hkR;0006|=00-(a-bh)0-1192k|+|000|mLL000016ba00101n000018b000F+ozk+ Gt其中:F25×15,G215×2,62x1,n12×,上式推导可参考附录102。下面我们讨论它的作用,将其可以简写为:6之k=F62z+Gtnt根据导数定义可知:62b=1m24-6262+8=62+628t=(+F6t)6z+(Gt6t)nt(11)这里我们对公式(1)的IMU误差运动方程再说明,将上式和EKF对比可知,上式恰好给出了如EKF一般对非线性系统线性化的过程,这里的意义是表示下一个时刻的IMU测量误差与上一个时刻的成线性关系,这样我们根据当前时刻的值,可以预测出下一个时刻的均值和协方差,而公式(1)给出的是均值预测,协方差预测公式如下Pb+6=(1+Ft)P(+Fl6t)7+(G,t)Q(G18t)ot(12)上式给出了协方差的选代公式,初始值Pk=0。其中,Q为表示噪声项的对角协方差矩阵000003000另外根据(11)式可获得诀差项的 Jacobian的迭代公式:(I+F26t)(14)其中 Jacobian的初始值为bk=12.7离散形式的PVQ增量误差分析我们首先直接给出PVQ增量误差在离散形式下的矩阵形式,为了与代码一致,我们修改下变量顺序,这和代码中 midPointIntegration(函数是一致的。(但不知为何计算的V中与前四个噪声项相关的差个负号?)1t fo660f106t‖loeBk+1=0f211f20016bδb0[6b102001rnot000kRkotk+1(15006t0n0000δt其中,推导可参考附录10.3:stE(ak-ba)02-4B+1(kk+121k+1b.)6t|6t2(Rr+ rk+18t2Stn=71=Rk+1(a+1-b)6tWr+ wf1=Ik+11+Gb。)δt-Rn+1(ak+121=-2配+1Stl st21(RK+Ruts)4rula1RrotstStR+1(a1R,+114/+11t28离散形式的PVQ增量误差的 Jacobian和协方差将公式(15)简写为:k+1F15×158215×1+V15×13Q则 Jacobian的迭代公式为k+15×15=F/k(16)其中, Jacobian的初始值为/k=l。这里计算出来的k+1只是为了给后面提供对bias的acoblar。协方差的迭代公式为P+15×15=FPFr+vQv(17)其中,初始值P=0。Q为表示噪声项的对角协方差矩阵:00000000aa000Q18×180a00(18)000000三、后端非线性优化31状态向量状态向量共包括滑动窗口内的n+l1个所有相机的状态(包括位置、朝向、速度、加速度计bias和陀螺仪bias)、 Camera到IMU的外参、m+1个3D点的逆深度X=[xr=pw,vb bpc,q3.2目标函数吗+(喻,2)+2(19)其中三个残差项即误差项分别为边缘化的先验信息、IMU测量残差、视觉的重投影残差。三种残差都是用马氏距离表示。根据《十四讲》中高斯牛顿法,若要计算目标函数的最小值,可以理解为,当优化变量有一个增量后,目标函数值最小,以IU残差为例,可写成如下所示:nin lre2bk, X+8Xrk x)+HSⅩDk+1oXk+1k+1其中HB,为B关于 XIK Jacobian,将上式展开并令关于6X的导数为0,可得增量δx的计算公式:H k 8X=k+1TB那么,公式(28)可写成+∑+∑Tk∑1rc上式中,B为MU预积分噪声项的协方差,P为vual观测的噪声协方差。当MU的噪声协方差P越大时,其信息矩阵Pk,将越小,意味着该MU观测越不可信,换句话说,因MU噪声较大,越不可信IMU预积分数据,而更加相信 visual观测。注意,这里的IMU和vsua协方差的绝对值没有意义,因为考虑得是两者的相对性可将上式继续简化为:(Ap+AB +Acox=bp +bB +bc其中,Ap,AB和Ac为 Hessian矩阵,上述方程称之为增量方程。33MU约束1)残差:两帧之间的PVQ和bias的变化量的差△tx+k+1bk qbk+1bR+1 xyz+g"△t)-Bk(20)sbbbb其中各增量关于bias的 Jacobian可从公式(16)的大 Jacobian中的相应位置获得。上面与代码中 Integration base: evaluateD对应,2)优化变量pb, 0W, Svb ,8ba:,bor Opb,, 80W ,Swb,, bakr, Sba3)Jacobian:计算 Jacobian时,残差对应求偏导对象分别为p6e,6vB,6h,ba],6b,6b

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 支持向量机算法实现(Java、python、matlab)
    Java、python、matlab三种语言实现svm算法,可直接运行查看结果。
    2020-12-04下载
    积分:1
  • Asp+Ajax无刷新用户登录实例代码
    使用Asp+Ajax无刷新用户登录实例代码,值得学习的例子
    2020-12-01下载
    积分:1
  • EtherNet-IP(中文版)_Edition1.2 关于EtherNet/IP报文格式和CIP的适配
    中文版!花了不少人民币翻译的,翻译的很靠谱!EtherNet/IP Adaptation of CIP
    2020-11-28下载
    积分:1
  • MCL算法 马尔可夫聚类算法(英文)
    文档对马尔可夫聚类算法进行了详细的描述,并且有图例进一步解释,易于理解。
    2020-12-09下载
    积分:1
  • snake边缘检测算法算法
    利用snake蛇形算法进行边缘检测的matlab程序,可对二维图像进行边缘检测。需手动初始化边缘。
    2020-11-29下载
    积分:1
  • 运动会成绩管理系统 mfc+ sql2000
    课程设计的作品。 vc++ mfc sql2000对成绩进行排名。并按照学院。进行分数累加。并排名出来。也可以对单项成绩进行排名。 也可单独项目查询。当然 基本的功能。 录入 修改 删除。都是有的。 数据库也做了触发器。可以实时更新排名与积分。
    2020-12-11下载
    积分:1
  • 基于STM32F407的数字语音存储回放
    这是基于STM32F407的数字语音存储回放,采样率为8K,ADC接口是GPIOA(5),DAC接口是GPIOA(4),开始键是GPIOA(0),,暂停键是GPIOE(1),开始DAC输出键是GPIOE(4),存储时间是40S左右。
    2021-05-07下载
    积分:1
  • 人员信息管理系统(c++和Access完成的)
    VC++ MFC界面,后台为Access数据库。课程设计全部,包括小结,源代码,流程图等
    2020-11-04下载
    积分:1
  • 警用数字集群(PDT)通信系统总体技术要求
    警用数字集群(PDT)通信系统总体技术要求9电气安全,2410电源适应性2411机械结构安全241.1结构..·.·2411.2表面温度.2412环境和电磁兼容要求·鲁专2512.1环境适应性2512.2电磁兼容性要求.13可靠性要求13.1信道设备可靠性55513.2控制和链路设备的可靠性.14运输和包装要求,,。非2图1网络基础设备示意图图2完全对等的系统互联网络架构。。。19图3 PDT-MPTI1327互联结构···.········,,,,.20图4安全机制示意图24表1PDT设备主要功能要求,。10表2信道设备总体性能指标表3基地台的发射机和接收机的射频指标.·非·静·着·非。章申·21表4手持台的发射机和接收机的射频指标。鲁表5车载台的发射机和接收机的射频指标1范围本技术要求规定了警用数字集群(PD)通信系统的技术特性、系统构成和功能要求作频段、网络管理、信道设备基本性能指标、交流供电系统、信息安仝和保密、环境和电磁兼容、可靠性等总体性要求。木技术要求适用」警用数字集群(PDT)通信系统的总体规划、网络设计、设备开发、生产、工程建设和验收2系统技术特性2.1基本技术体制2.1.1技术体制2.1.1.1信道划分米用频率和时间分割的方法划分信道。频率分割是在给定的350MHz到390Mz频段内按12.5kz信道间隔和10Ⅷz收发间隔划分载波信道。其他频段按照国家无线电管理部门的有关规定执行。时间分割时釆用时分复用/时分多址(TDMA)技术划分时隙信道。规定每载波时隙为两个,即物理信道为两个,再根据需要设置务和控制逻辑信道。2.1.1.2区域覆盖对于无线服务区的覆盖采用下列技术:大区制覆盖;频率复用;准同步发射;分时共享发射;直通模式⑩)/中转模式(RMO)/集群模式(TMO2.1.2射频调制方式射频调制方法采用四电平频移键控(4『SK)。2.1.3调制速率调制发送4800符号/秒,每个符号由两个比特信息组成。2.1.4语音编码语音编码速率应不低于2kbps,语音编码加上信道编码后的速率应为3.6kbpS2.2系统基本业务2.2.1用户终端业务用户终端业务是为用户终端之间提供完整通信能力的业务,系统应提供下列用户终端业务:语音和数据业务电话互联业务。2.2.2承载业务承载业务是在用户终端与网终接口之间提供信号传输能力的电信业务系统应提供下列承载业务:语音和电路数据传输业务短数据传输业务;分组数据传输业务2.3基本协议和信令基本协议和信令应符合警用数字集群(PDT)通信系统系列技术标准中所规定的有关协议和信令。2.4系统工作方式集群工作方式移动台在集群控制设备管理下的信道共享工作方式。2.4.2直通工作方式移动台之间直接互通的工作方式。2.4.3中转工作方式移动台通过中转台进行通信的工作方式2.4.4故障弱化工作方式基站和交换节点之间的链路或交换节点发生故障时,基站仍能以集群方式继续工作,支持本基站基本呼叫业务(单呼、组呼等)2.5呼叫建立时间同一交换局内组呼建立时间应不大」300ms。3系统构成和功能要求3.1系统构成3.1.1网络基础设备网络基础设备包括交换机、网关、网络管理设备、基站控制设备和基地台等,见图1。网关交换机网络管理设各基站基站基地台基地台基地台基地台图1网络基础设备示意图3.1.2用户终端设备用户终端设备包括移动台、有线台和调度台3.1.2.1移动台通过空屮接口和网络基础设备相连的普通用户终端设备,包括车载台、手持台等3.1.2.2有线台通过有线方式和网络基础设备相连的普通用户终端设备3.1.2.3调度台具有调度功能的用户终端设备,包括有线调度台和无线调度台。有线调度台通过有线方式和网络基础设备相连的调度台。无线调度台通过空中接口和网络基础设备相连的调度台3.2功能要求3.2.1功能定义3.2.1.1登记登记是移动台向集群系统发起入网请求及确认的过程,登记时必须要求进行鉴杈3.2.1.2去登记去登记是移动台向集群系统发出退出系统的通知过程。3.2.1.3漫游在由多个基站联网的系统中,移动台在归属基站以外的基站进行登记和继续使用系统提供的业务的功能3.2.1.4语音单呼语音单呼是移动台与其它用户终端之间建立的一种点对点的双冋语音呼叫,呼叫的参与方只有主叫和被叫两方。移动台之间的语音单呼分为 TOACSU和OACS两种。3.2.1.5语音组呼语音组呼是由·个移动台或者调度台发起的,多个移动台参与的点对多点的语音呼叫。3.2.1.6组呼迟入某个组呼建立后至结束之前,控制信道冑期广播该组呼的建立信息,以保证刚开机或刚从其他基站漫游到该基站或刚从其他通话组释放出来的移动台能参与这个尚未结束的组呼。3.2.1.7组呼并入个组呼建立后至结束之前,某移动台呼叫这个已经建立的通话组,系统将该移动台作为被叫并入到已经建立的组呼。3.2.1.8广播呼叫播呼叫是一种特殊的语音组呼,呼叫建立后在业务信道上只有主叫具备发射权限,被叫用户只有接收权限,可以有效防止被叫用户干扰主叫的发射过程。3.2.1.9紧急呼叫紧急呼叫是用户在紧急情况下发起的一种特殊呼叫,具有最髙优先级,当无信道资源时,系统会释放其他低级别呼叫的信道资源来给紧急呼叫使用。3.2.1.10优先呼叫优先呼叫是指系统繁忙时优先获取资源的呼叫,获取资源的方式可以是抢占低优先级呼叫的信道,也可以是在排队队列中插队3.2.1.11报警报警是在紧急情况下用户通过操作移动台设备上的特姝按钮,在系统控制信道上向预先设冒的目的(移动台或者调度台)发送预定义的状杰消息,通知其他移动台或者调度台,该用户正处于紧急危险的状态。3.2.1.12环境侦听环境侦听是调度台向移动台发起的一种特姝呼叫,用于监听移动台周边的环境声音。被叫移动台在系统指定的业务信道上自动打开发射机和MIC,将环境声音发送给调度台。在整个环境侦听过程中(侦听建立、侦听发射、侦听结朿),移动台的显示、扬声器、提示音、指小灯等人杋芥面状态应与空闲待机时完全相冋。环境侦听过程中,如果移动台用户进行呼岀操作(包括发短消息等),环境侦听都应自动结束,)返冋控制信道。调度台可以随时结宋·个由其建立的环境侦听呼叫3.2.1.13监听监听是指授权用户终端获取指定的移动台、通话组或者信道上的语音的过程。3.2.1.14插话插话是指调度台在监听或参与语音通话的过程中,强制中断正在进行的讲话,夺取话权进行讲话;3.2.1.15强拆强拆是指系统强制中断正在进行的呼叫并释放所占的相应资源的过程3.2.1.16越区切换越区切换是指移动台在语吝通话的过程中切换基站而不闩断止在进行的业务的过程3.2.1.17通话限时通话限时是系统控制用户进行语音呼叫时允许的最大持续时间的功能,包括单次按讲限时和单次呼叫总时长限时3.2.1.18讲话方身份识别讲话方身份识别是指在语音呼叫的过程中,语音接听方利用随路信令或者嵌入信令识别当前讲话方身份的功能3.2.1.19PTT授权PTˆ授权是为了避免语音碰撞而规定的讲话权申请、分配控制过稈,只有获得讲话权的移动台才能发射语音。3.2.1.20遥毙遥毙是系统利用空∏信令禁用移动台的过程,被遥毙的移动台将失去所有操作功能,只有利用授权的编稈设备才能将被遥毙的移动台激活3.2.1.21遥晕遥晕是利用空口信令禁用移动台的过程,授权的网管终端或调度台可将目标移动台遥晕。被遥晕的移动台不能发起或者接收仼何网络的服务(包括各类呼叫、短消息等业务),但应保留登记、去登记、鉴权、复活和数据上拉服务(如玊星定位信息上拉服务等),用来帮助寻找丢失移动台。被遥晕的移动台可以通过空凵复活。3.2.1.22复活复活是利用空∏信令解禁被遥晕移动台的过程,授杖网管终端或调度台可以进行复活操作,使移动台恢复到正常工作状态3.2.1.23动态重组动态重组是授权网管终端或调度台利用空口信令向目标移动台临时增加通话组(动态组)的过程,移动台新增加的动态组在收到删除该动态组的信令前一直有效。授权的网管终端或调度台也可以利用空口信令将日标移动台中的动态组删除。3.2.1.24呼叫限制呼叫限制是系统对移动台的呼叫权限的控制,通过设置,限制其呼叫功能。移动台只能进行权限范围内的呼叫,超过权限范围的呼叫将被系统拒绝。3.2.1.25状态消息状态消息是指移动台之间或者移动台与调度台之间,利用控制信道传递7比特消息编码的过程。状态消息可以是点到点的单呼,也可以是点对多点的组呼。3.2.1.26短消息短消息是移动台之间或移动台与调庋台之间,利用控制信道传递有限长度消息的过程短消息可以是点到点的单呼,也可以是点对多点的组呼。PDT系统中,单条短消息的长度为23个汉字。3.2.1.27卫星定位信息传输卫星定位信息传输是指移动台利用空∏信令上传该移动台卫星定位信息的过程。3.2.1.28网络管理网络管理是为了保证系统的正常运行而进行的一些参数配置、运行状态监控、用户档案管理等操作。网络管理至少应具备用户管理、配置管理、故障管理、性能管理和安全管理等功能集。3.2.1.29安全功能安全功能包括鉴权、端到端加密和空口加密3.2.1.30PDT系统之间的互联PDT系统之闫的互联是利用规定的互联协议完成PD交换控制中心之间的信息交互,实现系统间漫游及呼叫控制等功能。3.2.1.31有线电话呼叫有线电话呼叫是移动台利用空口及系统网关设备与PAB、PSTN等有线电话之问进行的呼3.2.1.32功率控制系统利用空口信令调整移动台的发射功牽,达到保障通信效果和降低移动台功耗日的。3.2.1.33包容呼叫包容呼叫是移动台在已经建立呼叫的业务信道上发起的,将其他目标移动台拉入当前业务信道通话的呼叫。3.2.1.34呼叫转移呼叫转移是指把来电转栘到预先设定的其他号码上的业务。呼叫转移叮由自身或第三方设置和取消,转移的条件分为无条件转移和有条件转移。3.2.1.35繁忙排队繁忙排队是当系统业务信道资源全忙时,系统将新发起的呼叫排入呼叫等待队列,待系统有空闲资源时对等待队列中的呼叫进行处理的过程。3.2.1.36分组数据分组数据是利用系统的业务信道,遵循分组数据传输协议实现多用户共享业务信道,进行数据传输的业务过程。3.2.1.37空口加密空∏加密是对移动台与基站之问空∏信令和语音、数据等业务信息的加密。3.2.1.38限定基站呼叫限定基站呼叫是指系统可以利用参数配置限定呼叫参与基站的范围,配置范围外的基站不参与该呼叫。3.2.2PDT设备主要功能要求PDT设备主要功能要求见表1。表1PDT设备主要功能要求编号功能网络基础设备移动台调度台1登记、去登记、鉴权、漫游单呼组呼4组呼迟入组呼并入6广播呼叫紧急呼叫789报警环境侦听监听、插话、强拆越区切换12通话限时13讲话方身份识别14PTT授权遥毙16遥晕、复活
    2020-12-10下载
    积分:1
  • dsp 28335的实验报告 带滤波的AD采样
    内面附带完整源码和注释,这是我们学校的28335的研究生实验课的报道,关于计算采样周期,采样信号的周期,幅值等
    2020-12-03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载