技术分享 | 带你解读Kalibr和VINS标定参数(转载自阿木)

2023-12-18 03:58

本文主要是介绍技术分享 | 带你解读Kalibr和VINS标定参数(转载自阿木),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:https://mp.weixin.qq.com/s/Hqi6iUS-VGIQTmAB0Xa_nQ

技术分享 | 带你解读Kalibr和VINS标定参数

原创 阿木实验室 阿木实验室 昨天

我们通过上次的IMU和双目相机联合标定已经得到了一些文件,我们仅需要使用里面的一些文件,下面就带大家看下。

标定完大概会得到下面这几个文件,其中下面画红色圈的是最为重要的。

图片

1.相机标定参数解读

我们打开第一个文件后,可以看到

图片

这个就是IMU和左目之间的变换矩阵,是最为重要的一个参数,如果这个精度低于1-2°,那么整个系统就会变得极为不鲁棒。下面还会有个右目的,这里就不在赘叙。

再往下看,下面就是相机的一些内参。

distortion_coeffs指的是畸变参数,针孔相机一般默认k3为零。

Intrinsics 指的是相机内参数。 

最后一行为相机和IMU之间的时间戳。

图片

2.IMU参数解读

我们再打开imu这个文件,就是IMU被标定出来的误差。陀螺仪和加速度计的噪声,以及随机游走。

图片

还有一个PDF文件过于花哨,这里不展示了。

到此为止,我们就基本解读了一下标定结果。我们现在要做的就是把它们用到VINS中。

3.VINS配置参数文件

3.1首先是订阅的话题

图片

这里的话题名称是根据你自己的决定,但是如果传感器用的是D435i,那么话题名称基本不用修改。

3.2双目相机的内参

图片

读取当前路径下双目相机的内参配置文件,以及图像发布大小。

3.3IMU和相机之间的变换矩阵

下面是IMU坐标系和Camera坐标系之间的相对变换矩阵,主要是旋转矩阵比较重要,平移向量对系统鲁棒性影响较小。

图片

3.4特征点跟踪的一些参数

图片

3.5优化参数

图片

3.6IMU参数,这个可以由之前的标定得到

图片

3.7在线估计同步时间差

D435i说是已经做好了硬件同步,但是Kalibr标定出来还是会有0.006左右的时间误差。

图片

到此为止我们解读完了所有需要用到的参数,接下来就是正确的把它们用到VINS中。

阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

公众号:阿木实验室 ( 领取免费资料包)

官方淘宝店:阿木实验室(可购买硬件配件)

硬件咨询:yanyue199506(欢迎洽谈合作)

课程咨询:jiayue199506 (免费领取机器人工程师学习计划)

- End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。

这篇关于技术分享 | 带你解读Kalibr和VINS标定参数(转载自阿木)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506966

相关文章

Java序列化之serialVersionUID的用法解读

《Java序列化之serialVersionUID的用法解读》Java序列化之serialVersionUID:本文介绍了Java对象的序列化和反序列化过程,强调了serialVersionUID的作... 目录JavChina编程a序列化之serialVersionUID什么是序列化为什么要序列化serialV

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4