1

目录

时间戳同步介绍

时间戳同步初探

时间戳获取方式

时间戳延迟估计方法

姿态补偿

匀速模型在 Bundle Adjustment 中的应用

重投影残差

视觉特征匀速运动补偿特征坐标

重投影残差

基于特征匀速模型算法的实验结果

轨迹匀速模型 vs 特征匀速模型

时间戳同步算法扩展

其他时间戳延迟估计算法简介


时间戳同步介绍

时间戳同步问题及意义
什么是时间戳同步
为什么要时间戳同步
2
时间戳延迟估计方法
基于轨迹匀速模型的时间戳补偿算法
基于视觉特征匀速模型的时间戳补偿算法
两匀速模型算法对比
3
时间戳同步算法扩展
其他时间戳延迟估计算法
VIO 初始化阶段的时间戳估计

时间戳同步初探

时间戳用途:传感器数据被采集时刻 t 标注,用于数据对齐融合。
VIO 例子:如图1中上部分所示,1 时刻相机姿态已知,其 2 时刻的姿态可以通过 1 4 之间的 IMU 数据进行预测。错误的时
间戳将导致错误的姿态约束。

时间戳获取方式

1 硬件同步时间戳:IMU 产生数据的同时硬件中断触发相机曝光进行严格同步。
2 异步时间戳:传感器独立生产数据,时间戳为数据到达 cpu 的时刻,时间存在延迟。
timestamp :
t imu s = t + t imu d , tcam s = t + t cam d
time delay :
td
.
= t imu d t cam d = t imu s t cam
只需要以 IMU 时刻为准,用 td 将数据对齐,多传感器融合精度将更高
深入:时间戳不同步具体如何影响 VIO 精度?
如图所示,获取实际图像时相机坐标系为 c1,对应时间戳已同步的 IMU 坐标系 b1
若将 c1 时间戳加上一个延迟 td,对应坐标系为 c 1。三维点云将被投影到 c 1 坐标下,
计算重投影误差时误差将增大。
VIO 在优化视觉重投影误差和 IMU 预积分约束的最小二乘问题时,能否多估计一个
td

时间戳延迟估计方法

相机匀速运动模型补偿姿态
思路一:姿态由于时间戳延迟而有误差,那就补偿姿态

姿态补偿

假设 t 为对齐时刻,延迟量 td,延迟后时间戳为 t cam
t 时刻的相机姿态为
Twc(t) = Twb (t cam td) · Tbc (2)
具体地,假设相机匀速运动,t cam 时刻 IMU 坐标系速
度为 v w bi,角速度测量值为 ωbi (忽略 bias),补偿公式为
Rwbi
,
td Rwbi Exp (ωbi td)
pwbi,td pwbi v w bi td  (3)
补偿后的相机姿态为
Rwci = Rwbi,tdRbc Rwbi Exp (ωbi td) Rbc
pwci = Rwbi,td pbc + pwbi,td
Rwbi Exp (ωbi td) pbc + pwbi v w bi td

匀速模型在 Bundle Adjustment 中的应用

VIO 的后端优化:通过最小化滑动窗口中的残差项来估计系统的状态 变量
时间戳延迟变量只对先验残差和视觉重投影误差有影响。IMU 预积分误差中由于不
涉及相机传感器数据,不受时间延迟的影响。
先验残差类似其他变量,处理信息矩阵 H 时多一个变量并进行对应 marg 就行。接
下来,主要讲解重投影残差部分。

重投影残差

不考虑时间戳延迟时,残差计算流程:
世界坐标系中的第 l 个地图点 f l w = [x, y, z] ,先变换到相机坐标 系下
f l ci = RcbRwb i (fl w pwbi ) + pcb (6)
再投影到图像平面,并计算重投影残差:
rc = [ x z l i i l u i l y i l z i l vl i ](7)
考虑时间戳延迟时,坐标系变换公式如下,
f l ci = Rcb Exp (ωbi td) Rwb i ( fl w pwbi + vb w i td ) + pcb
重投影残差雅克比计算
重投影残差对时间戳延迟 td 的雅克比由链式求导可得,J = ∂ ∂ f r ci l f ci l ∂δtd
相机坐标系下地图点坐标可以近似为

视觉特征匀速运动补偿特征坐标

思路二:时间戳延迟使得特征的重投影坐标和真实坐标之间存在误差,那是否可以直
接补偿特征坐标
特征坐标补偿
假设视觉特征在图像平面上匀速移动,如下图示
特征的运动速度为:

重投影残差

同样地,我们只对 VIO 后端中的重投影残差受到时间戳延迟的影响进行介绍。
残差计算 无时间戳延迟时,残差计算流程:
1 世界坐标系中的第 l 个地图点
fl w = [x, y, z] ,先变换到相机坐标系下
f l ci = RcbRwb i (fl w pwbi ) + pcb 
2 再投影到图像平面,并计算重投影残差:
rc = [ x i l z i l u i l y i l z i l vl i ]
考虑时间戳延迟时,特征坐标进行补偿

基于特征匀速模型算法的实验结果

将特征匀速模型算法应用于 vins-mono,在 EuRoc 数据集 MH03 上的测试,给图像
时间戳人为加上 [40, 40]ms 的延迟。轨迹误差结果对比如下图所示
两个结论:
Vins-Mono 轨迹误差随着延迟的增大而增大,而应用了时间戳补偿的算法,轨
迹误差几乎没有变化,验证了算法的有效性。
从误差的大小可以看出,几十 ms 的延迟,能让系统精度下降非常多

轨迹匀速模型 vs 特征匀速模型

算法优缺点总结
特征匀速模型:计算简单,代码改动小。然而视觉特征在图像平面是非线性运
动,特征匀速的假设精度低。
轨迹匀速模型:相比于特征匀速,轨迹匀速的假设更接近实际,模型精度高。
但雅克比矩阵等计算复杂,代码改动多
从图中可知,基于轨迹匀速模型的时间戳收敛速度以及估计的准确度都高于基于特征
匀速模型的算法

时间戳同步算法扩展

其他时间戳延迟估计算法简介

前面的算法都是通过时间戳延迟去补偿相机姿态,还有众多其他思路,部分论文如下:
补偿图像时间戳,改为补偿 IMU 时间戳:每优化一次 IMU 时间戳,IMU 预积
分需要重新计算一次6。没有匀速假设,模型精度更高,但是重新预积分复杂度
更高。
IMU 积分对齐相机测量,改为相机姿态微分对齐 IMU 测量:基于角速度测量对
齐的算法7,基于 B 样条微分的算法8B 样条雅克比解析解
VIO 系统初始时,时间延迟 td 如何估计?
前面算法为系统初始化后,通过后端优化实时估计时间延迟。那系统初始化过程中,
能否估计时间延迟呢?
初始化阶段,相机关键帧的姿态通过 VO/SFM 等可求解,有
Rwbi = Rwci,tdRcb,
Rwbj = Rwcj ,tdRcb
IMU 预积分旋转分量构建误差,如下
(可回顾 vio 初始化章节)
eR = log ( Ri,jRwb iRwbj )
考虑陀螺仪 bias, 时间延迟 td 有:
eroti,j = log (( Ri,j Exp ( J g R δbg ))Rbc ·Exp (ωci td) RciwRwci+1 Exp ( ωci+1 td ) Rcb)
多时刻的观测构建最小二乘求解

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建linux端口映射连接小网

🚀 方法 1:在执行机上配置 SSH 服务端转发 这个做法是在 执行机上配置一个常驻 SSH 隧道,把大网的某个端口长期转发到小网单板的 22 端口。 👨‍💻 操作步骤 1️⃣ 在执行机上创建一个 systemd 服务 假设: …

了解Java21

目前还没有实操过从java8/java11直接到java17,java21。 先储备下知识点,写一些简单例子,以便后续的实操。 一些新特性(java8之后的) var变量 和前端js定义变量一样了,var搞定public static void main(String[] args) {…

【代码】基于CUDA优化的RANSAC实时激光雷达点云地面分割

基于CUDA优化的RANSAC实时激光雷达点云地面分割 摘要: 本文介绍了一个高性能的激光雷达(LiDAR)地面分割项目。该项目基于RANSAC平面估计算法,并通过深度CUDA并行优化,将核心处理时间从近100ms缩短至10ms以内&#xff…

vuex原理以及实现

vuex官方文档 Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 每一个 Vuex 应用的核心就是 store(仓库)。“stor…

APIs案例及知识点串讲(上)

一.轮播图专题CSS代码<style>* {box-sizing: border-box;}.slider {width: 560px;height: 400px;overflow: hidden;}.slider-wrapper {width: 100%;height: 320px;}.slider-wrapper img {width: 100%;height: 100%;display: block;}.slider-footer {height: 80px;backgro…

华大单片机HC32L110烧录程序方法

1&#xff0c;安装J-flash工具 从SEGGER官网下载J-flash工具&#xff0c;地址&#xff1a;SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace。按向导安装完成。 2&#xff0c;使用如下图JLINK工具SWD模式连接单片机的烧录接口&#xff08;SWDIO,SWCLK,GND&#…

LeetCode|Day15|125. 验证回文串|Python刷题笔记

LeetCode&#xff5c;Day15&#xff5c;125. 验证回文串&#xff5c;Python刷题笔记 &#x1f5d3;️ 本文属于【LeetCode 简单题百日计划】系列 &#x1f449; 点击查看系列总目录 >> &#x1f4cc; 题目简介 题号&#xff1a;125. 验证回文串 难度&#xff1a;简单 题…

项目学习笔记 display从none切换成block

跟着视频学做项目的时候&#xff0c;碰到一个多级联动列表&#xff0c;列表元素的display会从none切换成block&#xff0c;切换过程中可能导致资源渲染过多&#xff0c;从而导致卡顿问题。<div class"all-sort-list2"><div class"item" v-for&quo…

从 “洗澡难” 到 “洗得爽”:便携智能洗浴机如何重塑生活?

洗澡本应是日常生活的简单需求&#xff0c;但对于失能老人、行动不便者而言&#xff0c;却可能成为一项充满挑战甚至危险的“艰巨任务”。中国失能、半失能老年人口超过4200万&#xff0c;传统助浴方式存在搬运风险高、隐私难以保障、效率低下等问题&#xff0c;使得“洗澡难”…

鹧鸪云重构光伏发电量预测的精度标准

在当今全球能源转型的大背景下&#xff0c;光伏发电作为一种清洁、可再生的能源形式&#xff0c;正受到越来越多的关注与应用。然而&#xff0c;光伏发电量的精准预测&#xff0c;一直是行业内亟待攻克的关键难题。尤其是在面对复杂多变的气象条件、不同区域的地理环境以及设备…

每日一题(沉淀中)

文章目录 1、 实现string类的接口&#xff0c;并完成测试&#xff0c;要求利用深拷贝和深赋值实现 MyString.h #pragma once #include<iostream> class MyString { private:char* data;//储存字符串内容 public://默认构造函数MyString(const char* str nullptr);////拷…

深入浅出Kafka Producer源码解析:架构设计与编码艺术

一、Kafka Producer全景架构 1.1 核心组件交互图 #mermaid-svg-L9jc09hRQCHb0ftl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-L9jc09hRQCHb0ftl .error-icon{fill:#552222;}#mermaid-svg-L9jc09hRQCHb0ftl .erro…

微软AutoGen:多智能体协作的工业级解决方案

微软AutoGen&#xff1a;多智能体协作的工业级解决方案 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&#xf…

终端安全管理系统为什么需要使用,企业需要的桌面管理软件

在当今数字化高度发展的时代&#xff0c;企业和组织的运营计算机等&#xff0c;是企业业务流程的重要节点。终端安全管理系统正挥着至关重要的作用。保障数据安全终端设备往往存储着企业的核心数据&#xff0c;终端安全管理系统可以保障安&#xff0c;未经授权的人员也无法获取…

补环境基础(一) 原型与原型链

1.创建对象的几种方式 1.对象字面量模式 直接使用{}定义键值对&#xff1a; const obj { key: value }; 2.Object()构造函数模式 使用内置构造函数&#xff08;较少使用&#xff09;&#xff1a; const person new Object(); console.log(person)//输出 {}3.构造函数模…

Qt+yolov8目标识别

这是一个基于ONNX Runtime的YOLOv8目标检测项目&#xff0c;支持CPU和GPU加速&#xff0c;使用Qt框架构建图形化界面。摄像头实时画面识别视频文件识别&#xff0c;能正常识别目标&#xff1a;红绿灯&#xff0c;人&#xff0c;公交&#xff0c;巴士&#xff0c;摩托车 等YOLOv…

NLP分词notes

BPE 贪心提取所有出现频率高的成为词。 BPE的训练流程 1.初始化&#xff1a;将所有单个字符作为初始词汇表的元素。 2.迭代合并&#xff1a; 统计语料中所有相邻符号对&#xff08;包括字符和合并后的符号&#xff09;的出现频率。找到出现频率最高的符号对&#xff0c;将其合并…

【数据结构】栈和队列-----数据结构中的双生花

文章目录[toc]栈与队列&#xff1a;数据结构中的双生花1. 栈&#xff1a;后进先出的有序世界1.1 概念及结构剖析1.2 实现方式深度解析数组 vs 链表实现1.3 动态栈实现详解&#xff08;附程序源码&#xff09;1.定义一个动态栈2.初始化3.销毁4.入栈5.出栈6.取栈顶数据7.判空8.获…

Mybatis-2快速入门

学习主线 必学必会属于优化的东西。 快速入门需求说明 要求&#xff1a;开发一个MyBatis项目&#xff0c;通过MyBatis的方式可以完成对monster表的crud操作 1.创建mybatis数据库-monster表 主键Primary Key默认非空Not null&#xff0c;就省略了 create database mybatis us…

Web基础 -java操作数据库

一、JDBCJDBC&#xff1a;&#xff08;Java DataBase Connectivity&#xff09;&#xff0c;就是使用Java语言操作关系型数据库的一套API。为了使用JDBC操作数据库&#xff0c;首先&#xff0c;我们需要在pom.xml文件中引入依赖<dependencies><!-- MySQL JDBC driver …