【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--作业

2023-11-08 05:01

本文主要是介绍【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0. 题目

在这里插入图片描述

1. T1 逆深度参数化时的特征匀速模型的重投影误差

参考常鑫助教的答案:思路是将i时刻的观测投到world系,再用j时刻pose和外参投到j时刻camera坐标系下,归一化得到预测的二维坐标(这里忽略了camera的内参,逆深度是在camera系下)
要计算的是i时刻和j时刻之间的补偿之后的u坐标的重投影误差,所以i时刻也要补偿,具体步骤见下,式(5)参照14讲P47的公式,已经用过很多次了。
在这里插入图片描述

2. T2 阅读Kalibr论文,总结基于 B 样条的时间戳估计算法流程

2.1 答题

论文题目: Unified Temporal and Spatial Calibration for Multi-Sensor Systems
多传感器的联合时空标定

B(ackground):标定时time offset和外参是分开标的(但实际上二者应该有联系)。
I(ntention):在不支持硬件或者软件上时间戳同步的多传感器上实现较高精度的多传感器联合时空标定。
M(ethod):提出一个estimator和一个框架来联合标定。
R(esult):精度高。
C(conclusion):好,有望拓展到其他的sensor联合标定。

论文contri(bution):

  1. 提出一种方法标定fixed时间延迟
  2. 推导一个estimator可以同时标时间戳和外参(rotation only)
  3. 数据集和真实数据上的结果证明estimator估计时间戳很准
  4. 准是因为很好的用了之前别人没用的加计数据

助教的学术话版本:

  1. 提出一种统一的使用批量、连续时间下的最大似然估计方法,估计多传感器之间的固定时间戳延迟。
  2. 提出一个可以同时校准相机和IMU之间位姿和时间戳延迟的估计模型。
  3. 这个估计模型应用在仿真数据和真实数据上,都有足够的灵敏度估算出时间戳延迟。
  4. 证明时间戳延迟估计明显受益于在加速度测量中所包含的附加信息。

论文主要理论(助教答案):
在这里插入图片描述

本文方法的主要贡献是把估计时间戳延迟和外参R整合到一个MLE(最大似然估计)框架中,而这样做的基础就是B样条方法,使用B样条可以 parameterize the motion of the device.具体到VI的标定就是下面的内容:

  • B样条参数化将IMU位姿转化为 C ( ) \bm C() C() funtion和旋转向量 φ ( t ) \varphi(t) φ(t)
  • 将平移表示为 t ( t ) \bm t(t) t(t)
  • 速度和加速度可通过 t ( t ) \bm t(t) t(t)求一二阶导而得,
  • 角速度也可由旋转向量推导而得

在这里插入图片描述

如此可以使用B样条参数化所有的构建residual所需的variable,对LSP进行优化求解即可优化出时间戳延迟旋转外参R

在这里插入图片描述

2.2 B样条拓展

下图参考博客:https://blog.csdn.net/weixin_43846627/article/details/104297637
在这里插入图片描述

关于B样条曲线函数,由控制顶点B样条基函数组成,是一系列解析基函数的加权和

原文中的式(1)
在这里插入图片描述
待估计变量被用B样条表示,而(1)中的 Φ ( t ) \bm \Phi(t) Φ(t)是基函数,其值为定值,所以优化待估变量就转化为优化权值向量 c \bm c c,时间戳是如此,其他的以此类推。

2.3 文中其他细节

  1. 可以根据物理性质和动态性给总残差加上正则项
    在这里插入图片描述

  2. B样条参数化可以使info mat的优化过程变稀疏

在这里插入图片描述

  1. 优化过程中信息矩阵中的各个部分与VIO各个参数的关系(这个看到很多论文针对其算法的有效性进行分析时,都研究过info mat)
    在这里插入图片描述

  2. temporal padding value 的选择影响优化的结果,理解为padding即给优化结果锚定一个优化范围,文中选择的是0.04senonds
    在这里插入图片描述

  3. 用最佳拟合线和理论线的斜率差和斜率差与0.5的RMS error,使用LSP来评估结果(这里没太看懂为什么理论值是0.5)
    在这里插入图片描述

  4. 结果表明:使用所有IMU数据进行时空联合标定(即同时使用了gyro和acc数据)的精度高,variance小,对比项是gryo only,acc only,分开标定这三项
    在这里插入图片描述

文献拓展:
[7]提出连续时间的batch估计time offset方法,basis function approach: P. T. Furgale, T. D. Barfoot, and G. Sibley, “Continuous-time batch estimation using temporal basis functions,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), St. Paul, MN, 14-18 May 2012, pp. 2088–2095.
[14]B样条方法: R. H. Bartels, J. C. Beatty, and B. A. Barsky, An Introduction to Splines for use in Computer Graphics and Geometric Modeling. Los Altos, California, USA: Morgan Kaufmann Publishers Inc., 1987.

3. T3 推导时间戳延迟的雅克比

文章即北大的提出轨迹匀速模型:Weibo Huang, Hong Liu, and Weiwei Wan. “Online nitialization and extrinsic spatial-temporal calibration for monocular visual-inertial odometry”. In: arXiv preprint arXiv:2004.05534 (2020).

助教答案:

在这里插入图片描述

在这里插入图片描述

这篇关于【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/367981

相关文章

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

JavaScript时间戳与时间的转化常用方法

《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面... 目录1. 获取当前时间戳2. 时间戳 → 时间对象3. 时间戳php → 格式化字符串4. 时间字符

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim