首页 > 其他分享 >VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator-翻译

VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator-翻译

时间:2023-06-27 12:15:35浏览次数:41  
标签:bkbk pp Monocular Int Mono Inertial Robot IMU IEEE

摘要:本文介绍了一种单目视觉惯性系统(VINS),用于在各种环境中进行状态估计。单目相机和低成本惯性测量单元(IMU)构成了六自由度状态估计的最小传感器套件。我们的算法通过有界滑动窗口迭代地优化视觉和惯性测量,以实现精确的状态估计。视觉结构是通过滑动窗口中的关键帧来维护的,而惯性度量则是通过关键帧之间的预积分来保持的。我们的系统对于未知状态的初始化、在线相机-IMU外参校准、基于球面定义的统一重投影误差、环路检测和四自由度位姿图优化都具有鲁棒性。我们通过与其他最先进的算法进行比较,在公共数据集和真实世界实验中验证了我们系统的性能。我们还在MAV平台上进行了闭环自主飞行,并将算法移植到了iOS应用程序中。我们强调,所提出的工作是一个可靠和完整的系统,可以轻松地在其他智能平台上操作。我们公开了我们的实现代码和一个增强现实(AR)应用程序在iOS移动设备上。

1、概览

所提出的视觉惯性系统的结构如图1所示。

第一部分是测量处理前端,它会为每个新的图像帧提取和跟踪特征,并在两个帧之间预积分所有的IMU数据。第二部分是初始化过程,它提供了必要的初始值(姿态、速度、重力向量、陀螺仪偏差和三维特征位置),以启动非线性系统。第三部分实现非线性图优化,通过优化所有视觉、惯性信息来解决我们滑动窗口中的状态。另一个在另一个线程中运行的部分负责闭环检测和姿态图优化。

符号说明:我们将(·)w 视为世界坐标系,其中重力向量沿着 z 轴。 (·)b 是与 IMU 坐标系对齐的机体坐标系。 (·)c 是相机坐标系。我们使用R和四元数q来表示旋转矩阵。四元数对应于哈密尔顿符号。我们在状态中使用四元数,而在某些方程中,我们使用其对应的旋转矩阵来乘以向量。q wb,pwb是从机体坐标系到世界坐标系的旋转和平移变换。bk是拍摄第k张图像时的机体坐标系,ck是拍摄第k张图像时的相机坐标系。⊗是四元数的乘法运算符。gw = [0, 0, g]T是世界坐标系下的重力向量。

2、测量过程

在本节中,我们对视觉和惯性测量进行预处理。对于视觉测量,我们在连续帧之间跟踪特征,并检测最新帧中的新特征。对于IMU测量,我们在两个连续帧之间进行预积分。需要注意的是,IMU测量受到偏置和噪声的影响。因此,在IMU预积分和优化部分中特别考虑偏差,这对于低成本的IMU芯片至关重要。

A、视觉处理前端

对于每个新图像,使用KLT稀疏光流算法[26]跟踪现有特征。同时,检测新的角点特征[27]以保持每个图像中的最小特征数量(100-300)。该检测器通过设置相邻两个特征之间的最小像素间隔来强制执行统一的特征分布。在通过离群值拒绝之后,特征点被投影到一个单位球上。离群值拒绝是通过基础矩阵测试中的RANSAC步骤来执行的。在这一步中,还会选择关键帧。我们有两个关键帧选择标准。其中之一是平均视差。如果跟踪特征的平均视差超过某个阈值,我们将把该图像视为关键帧。请注意,不仅平移而且旋转也会导致视差;然而,在仅旋转运动中无法三角化特征。为了避免这种情况,我们在计算视差时使用IMU传播结果来补偿旋转。另一个标准是跟踪质量。如果跟踪的特征数量低于某个阈值,我们也将该帧视为关键帧。

B、IMU预积分

我们通过加入IMU偏差校正来扩展我们先前工作中提出的IMU预积分方法[7]。与[28]相比,我们在连续时间动力学中推导出噪声传播。此外,IMU预积分结果还用于初始化过程,以校准初始状态。

假设有两个时间瞬间对应于图像帧 b_k 和 b_{k+1},在时间间隔 [k, k+1] 内,状态变量受惯性测量的约束限制。

∆t k 是时间间隔 [k, k + 1] 的持续时间。ω̂ t 和 ât 是原始的IMU测量值,它们在本体坐标系中,并受到加速度计偏差 ba、陀螺仪偏差 bw 和噪声的影响。

可以看出,IMU状态传播需要b k 帧的旋转、位置和速度。当这些起始状态发生变化时,我们需要重新传播IMU测量值。特别是在基于优化的算法中,每次调整姿势时,我们都需要重新传播它们之间的IMU测量值。这种传播策略会消耗大量计算资源。为了避免重新传播,我们采用预积分算法。

将IMU传播的参考系改为局部参考系bk后,我们只能预积分与线性加速度â和角速度ω̂相关的部分,具体如下:

"γbkbk" 是初始的单位四元数。可以看出,通过将 bk 作为基础框架,仅使用 IMU 测量值就可以获得预积分部分(4)。αbkbk+1,βbkbk+1和γbkbk+1仅与IMU偏差有关,而与bk和bk+1中的其他状态无关。在开始时,加速度计偏差和陀螺仪偏差都为零。当偏差的估计值发生变化时,如果变化很小,我们通过对偏差的一阶近似进行调整 αbkbk+1,βbkbk+1和γbkbk+1,否则我们进行重新传播。这种策略为基于优化的算法节省了大量的计算资源,因为我们不需要一遍又一遍地传播IMU测量值。

在离散时间实现中,可以应用各种数值积分方法,如欧拉法、中点法、RK4积分等。这里选择欧拉法来演示过程以便易于理解(我们在实现代码中使用中值法)。

一开始,αbkbk,βbkbk为0,γbkbk为单位四元数,表示单位矩阵。均值的传播步骤如下:

i和i+1是对应于[k,k+1]内的两个IMU测量的两个离散时刻。δt是IMU测量i和i+1之间的时间间隔。然后我们处理协方差传播。假设加速度计和陀螺仪测量中的噪声是高斯白噪声,na ∼ N (0, σ2a ),nw ∼ N (0, σ2w )。加速度计偏置和陀螺仪偏置是随机游走,其导数是高斯白噪声,nba ~ N(0, σ2ba),nbw ~ N(0, σ2bw)。

由于γbkt 是过参数化的,我们定义其误差项为扰动。

我们可以从公式4和公式6推导出误差项的连续时间线性化动力学。

其中,b·c × 是叉积矩阵运算。有关四元数误差状态表示的详细信息可以在文献[29]中找到。Pbkbk+1 可以通过一阶离散时间协方差更新递归计算,初始协方差为 Pbkbk = 0。

其中δt是两个IMU测量之间的时间,Q是噪声的对角协方差矩阵(σ2a,σ2w,σ2ba,σ2bw)。

同时,关于 δzbkbk,δzbkbk+1 的一阶雅可比矩阵 Jbk+1 也可以通过递归计算得出,其中初始雅可比矩阵 Jbk = I。

以递归的方式,我们得到协方差矩阵Pbkbk+1 和雅可比矩阵Jbk+1。关于偏差的一阶近似αbkbk+1,βbkbk+1和γbkbk+1可以写成:

现在我们能够编写带有相应协方差的IMU测量模型Pbkbk+1。

3、初始化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R EFERENCES

[1] G. Klein and D. Murray, “Parallel tracking and mapping for small ar  

workspaces,” in Mixed and Augmented Reality, 2007. ISMAR 2007. 6th
IEEE and ACM International Symposium on. IEEE, 2007, pp. 225–234.
[2] C. Forster, M. Pizzoli, and D. Scaramuzza, “SVO: Fast semi-direct
monocular visual odometry,” in Proc. of the IEEE Int. Conf. on Robot.
and Autom., Hong Kong, China, May 2014.
[3] J. Engel, T. Schöps, and D. Cremers, “Lsd-slam: Large-scale di-
rect monocular slam,” in European Conference on Computer Vision.
Springer International Publishing, 2014, pp. 834–849.
[4] R. Mur-Artal, J. Montiel, and J. D. Tardos, “Orb-slam: a versatile
and accurate monocular slam system,” IEEE Transactions on Robotics,
vol. 31, no. 5, pp. 1147–1163, 2015.
[5] J. Engel, V. Koltun, and D. Cremers, “Direct sparse odometry,” IEEE
Transactions on Pattern Analysis and Machine Intelligence, 2017.
[6] S. Shen, Y. Mulgaonkar, N. Michael, and V. Kumar, “Initialization-
free monocular visual-inertial estimation with application to autonomous
MAVs,” in Proc. of the Int. Sym. on Exp. Robot., Marrakech, Morocco,
2014.

[7] S. Shen, N. Michael, and V. Kumar, “Tightly-coupled monocular visual-
inertial fusion for autonomous flight of rotorcraft MAVs,” in Proc. of
the IEEE Int. Conf. on Robot. and Autom., Seattle, WA, May 2015.
[8] M. Faessler, F. Fontana, C. Forster, and D. Scaramuzza, “Automatic re-
initialization and failure recovery for aggressive flight with a monocular
vision-based quadrotor,” in Proc. of the IEEE Int. Conf. on Robot. and
Autom. IEEE, 2015, pp. 1722–1729.
[9] Z. Yang and S. Shen, “Monocular visual–inertial state estimation with
online initialization and camera–imu extrinsic calibration,” IEEE Trans-
actions on Automation Science and Engineering, vol. 14, no. 1, pp.
39–51, 2017.
[10] M. Bloesch, S. Omari, M. Hutter, and R. Siegwart, “Robust visual
inertial odometry using a direct ekf-based approach,” in Proc. of the
IEEE/RSJ Int. Conf. on Intell. Robots and Syst. IEEE, 2015, pp. 298–
304.
[11] S. Leutenegger, S. Lynen, M. Bosse, R. Siegwart, and P. Furgale,
“Keyframe-based visual-inertial odometry using nonlinear optimization,”
Int. J. Robot. Research, vol. 34, no. 3, pp. 314–334, Mar. 2014.
[12] Y. Ling, T. Liu, and S. Shen, “Aggressive quadrotor flight using dense
visual-inertial fusion,” in Proc. of the IEEE Int. Conf. on Robot. and
Autom. IEEE, 2016, pp. 1499–1506.
[13] V. Usenko, J. Engel, J. Stückler, and D. Cremers, “Direct visual-inertial
odometry with stereo cameras,” in Proc. of the IEEE Int. Conf. on Robot.
and Autom. IEEE, 2016, pp. 1885–1892.
[14] A. S. Huang, A. Bachrach, P. Henry, M. Krainin, D. Maturana, D. Fox,
and N. Roy, “Visual odometry and mapping for autonomous flight using
an RGB-D camera,” in Proc. of the Int. Sym. of Robot. Research,
Flagstaff, AZ, Aug. 2011.
[15] A. I. Mourikis and S. I. Roumeliotis, “A multi-state constraint Kalman
filter for vision-aided inertial navigation,” in Proc. of the IEEE Int. Conf.
on Robot. and Autom., Roma, Italy, Apr. 2007, pp. 3565–3572.
[16] J. Kelly and G. S. Sukhatme, “Visual-inertial sensor fusion: Localization,
mapping and sensor-to-sensor self-calibration,” Int. J. Robot. Research,
vol. 30, no. 1, pp. 56–79, Jan. 2011.
[17] J. A. Hesch, D. G. Kottas, S. L. Bowman, and S. I. Roumeliotis, “Con-
sistency analysis and improvement of vision-aided inertial navigation,”
IEEE Trans. Robot., vol. 30, no. 1, pp. 158–176, Feb. 2014.
[18] S. Lynen, M. W. Achtelik, S. Weiss, M. Chli, and R. Siegwart, “A robust
and modular multi-sensor fusion approach applied to mav navigation,”
in Proc. of the IEEE/RSJ Int. Conf. on Intell. Robots and Syst. IEEE,
2013, pp. 3923–3929.
[19] M. Li and A. Mourikis, “High-precision, consistent EKF-based visual-
inertial odometry,” Int. J. Robot. Research, vol. 32, no. 6, pp. 690–711,
May 2013.
[20] G. Sibley, L. Matthies, and G. Sukhatme, “Sliding window filter with
application to planetary landing,” J. Field Robot., vol. 27, no. 5, pp.
587–608, Sep. 2010.
[21] C. Forster, L. Carlone, F. Dellaert, and D. Scaramuzza, “IMU prein-
tegration on manifold for efficient visual-inertial maximum-a-posteriori
estimation,” in Proc. of Robot.: Sci. and Syst., Rome, Italy, Jul. 2015.
[22] A. Martinelli, “Closed-form solution of visual-inertial structure from
motion,” Int. J. Comput. Vis., vol. 106, no. 2, pp. 138–152, 2014.
[23] J. Kaiser, A. Martinelli, F. Fontana, and D. Scaramuzza, “Simultaneous
state initialization and gyroscope bias calibration in visual inertial aided
navigation,” IEEE Robotics and Automation Letters, vol. 2, no. 1, pp.
18–25, 2017.
[24] D. Gálvez-López and J. D. Tardós, “Bags of binary words for fast
place recognition in image sequences,” IEEE Transactions on Robotics,
vol. 28, no. 5, pp. 1188–1197, October 2012.
[25] H. Strasdat, J. Montiel, and A. J. Davison, “Scale drift-aware large scale
monocular slam,” Robotics: Science and Systems VI, 2010.
[26] B. D. Lucas and T. Kanade, “An iterative image registration technique
with an application to stereo vision,” in Proc. of the Intl. Joint Conf. on
Artificial Intelligence, Vancouver, Canada, Aug. 1981, pp. 24–28.
[27] J. Shi and C. Tomasi, “Good features to track,” in Computer Vision
and Pattern Recognition, 1994. Proceedings CVPR’94., 1994 IEEE
Computer Society Conference on. IEEE, 1994, pp. 593–600.
[28] C. Forster, L. Carlone, F. Dellaert, and D. Scaramuzza, “On-manifold
preintegration for real-time visual-inertial odometry,” IEEE Transactions
on Robotics (TRO), 2016.
[29] N. Trawny and S. I. Roumeliotis, “Indirect kalman filter for 3d attitude
estimation,” University of Minnesota, Dept. of Comp. Sci. & Eng., Tech.
Rep, vol. 2, p. 2005, 2005.
[30] A. Heyden and M. Pollefeys, “Multiple view geometry,” Emerging
Topics in Computer Vision, 2005.

[31] D. Nistér, “An efficient solution to the five-point relative pose problem,”
IEEE transactions on pattern analysis and machine intelligence, vol. 26,
no. 6, pp. 756–770, 2004.
[32] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W. Fitzgibbon,
“Bundle adjustmenta modern synthesis,” in International workshop on
vision algorithms. Springer, 1999, pp. 298–372.
[33] S. Agarwal, K. Mierle, and Others, “Ceres solver,” http://ceres-solver.
org.
[34] M. Calonder, V. Lepetit, C. Strecha, and P. Fua, “Brief: Binary robust
independent elementary features,” Computer Vision–ECCV 2010, pp.
778–792, 2010.
[35] E. Rosten and T. Drummond, “Machine learning for high-speed corner
detection,” Computer vision–ECCV 2006, pp. 430–443, 2006.
[36] M. Burri, J. Nikolic, P. Gohl, T. Schneider, J. Rehder, S. Omari, M. W.
Achtelik, and R. Siegwart, “The euroc micro aerial vehicle datasets,”
The International Journal of Robotics Research, 2016.
[37] C. Mei and P. Rives, “Single view point omnidirectional camera cal-
ibration from planar grids,” in Robotics and Automation, 2007 IEEE
International Conference on. IEEE, 2007, pp. 3945–3950.
[38] L. Heng, B. Li, and M. Pollefeys, “Camodocal: Automatic intrinsic
and extrinsic calibration of a rig with multiple generic cameras and
odometry,” in Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ
International Conference on. IEEE, 2013, pp. 1793–1800.

 

标签:bkbk,pp,Monocular,Int,Mono,Inertial,Robot,IMU,IEEE
From: https://www.cnblogs.com/gary-guo/p/17508322.html

相关文章

  • 关于使用vsmonodebuger对mono中运行的c#程序远程调试
    介绍:Mono是基于.NETFramework的开源开发平台,允许开发人员构建跨平台应用程序,从而提高开发人员的工作效率。Mono的.NET实现基于C#和公共语言基础结构的ECMA标准。简而言之就是可以运行.netframework程序跨平台执行vsmonodebuger:是mono的一个vs调试器插件,我们可以通过这个插件在......
  • Monotonic Matrix (LVG引理, 路径不相交)
    引入给定一个n×m的网格图,两个点从左下角出发,只能向上或者向右走,最后到右上角结束,求有多少种可能的方案,使得两个点的路径在除开起点和终点外的任意点不相交?由于交换路径过后算同一种方案,我们就可以除开起点和终点,转换成A点从(1,2)出发到(m-1,n),B点从(2,1)出发到(m,n-1),再来统......
  • 英特尔开源新等宽字体Intel One Mono,称可保护开发者视力
    英特尔开源了一款面向开发者的新等宽字体 “ IntelOneMono”,这是一种富有表现力的等宽字体系列,集清晰度、易读性和开发者视力保护于一体。IntelOneMono字体涵盖了200多种使用拉丁文字的语言,提供四种粗细——Light、Regular、Medium和Bold,并带有默认的斜体。该系......
  • Unity框架与.NET, Mono框架的关系
    什么是C#C#是一种面向对象的编程语言。什么是.NET.NET是一个开发框架,它遵循并采用CIL(CommonIntermediateLanguage)和CLR(CommonLanguageRuntime)两种约定,CIL标准为一种编译标准:将不同编程语言(C#,JS,VB等)使用各自的编译器,按照统一的标准编译成语义一致的CIL中间码,......
  • 最佳实践:基于vite3的monorepo前端工程搭建
    一、技术栈选择1.代码库管理方式-Monorepo:将多个项目存放在同一个代码库中▪选择理由1:多个应用(可以按业务线产品粒度划分)在同一个repo管理,便于统一管理代码规范、共享工作流▪选择理由2:解决跨项目/应用之间物理层面的代码复用,不用通过发布/安装npm包解决共享问题2.依赖管理-......
  • pnpm workSpace管理Monorepo
    pnpm的优点pnpm会将包安装到本地,减少二次依赖安装的时间节省磁盘空间,它会把包软链到本地,不需要反复安装可以节省网络带宽更好的依赖处理逻辑Monorepo的优势便于管理多个相互依赖的项目便于团队共享知识库便于多个项目的测试发版和迭代流程减少项目管理的成本Mono......
  • IMU and GPS Fusion for Inertial Navigation Label: Research
    转载自IMUandGPSFusionforInertialNavigationThisexampleshowshowyoumightbuildanIMU+GPSfusionalgorithmsuitableforunmannedaerialvehicles(UAVs)orquadcopters.Thisexampleusesaccelerometers,gyroscopes,magnetometers,andGPStodetermi......
  • 关于monodepth2里面的内参运算
    K[0,:]*=self.width//(2**scale)K[1,:]*=self.height//(2**scale)这里相机内参乘了高度和宽度再除的可能是因为原始的相机内参是以图像的比例为单位的,而不是以像素为单位的。比如,如果原始的相机内参矩阵是:那么这个矩阵表示的是,相机的焦距是图像宽度和高度的一半,光轴......
  • FAST-LIO:A Fast,Roust LiDAR-inertial Odometry Package by Tightly-Coupled Iterate
    摘要——本文提出一种计算高效、鲁棒的激光雷达惯性里程计框架。我们使用紧耦合的迭代扩展卡尔曼滤波器将激光雷达特征点与IMU数据融合,以允许在发生退化的快速运动、噪声或者杂乱环境中进行稳健导航。为了在出现大量观测情况下降低计算负载,我们提出了一个计算卡尔曼增益的新公式。......
  • Unity框架:JKFrame2.0学习笔记(十一)——MonoSystem(1)
    内部结构MonoSystemMonoSystem是继承MonoBehaviour的,声明几个action,在MonoBehaviour的声明周期内调用,实现了不继承MonoBehaviour也可以用mono的生命周期。包括以下几个方法可供外部调用:Init:初始化,获取MonoSystem的实例AddUpdateListener:添加Update监听RemoveUpdateListener:移除Upd......