Lidar与imu外参标定

2023-05-16

目录

网上资料

方案1

方案2

Lidar与IMU的相对旋转

实现

总结

附录:


最近由于工作需要,花了几天时间了解激光与imu的标定方法;因为项目需要,且这里是个人认识的一个整理,所以并不会很深入很细致的进行公式或原理推导。由于个人水平有限,所以可能会存在一些认知的错误,可以留言交流学习一下。

网上资料

方案1

瑞士苏黎世联邦理工大学------自动驾驶实验室开源的Lidar_align。

在使用该方法时,纯IMU积分,无法得到准确的Odom数据,所以无法进行纯imu与lidar 的标定。

方案2

浙大开源的Lidar_IMU_calib ,标定精度很高。

从粗到细的,实现高精度的lidar-imu标定,具体可以看一下论文和代码哈!我这里也测试了一下,由于一些原因,一直没有标定成功。

在学习以上两种方法时,结合网上的一些资料,自己做了一版Lidar-imu的旋转矩阵的标定;由于我的使用需求,平移部分可以不予考虑。

Lidar与IMU的相对旋转

这种方式,属于Linear Rotation Calibration;精度还可以。

简单来说,如上图所示,为相邻两个时刻的Lidar与IMU之间的坐标关系 ,假设c为Lidar某一时刻的坐标系,b为对应的imu坐标系,这里下标k,k+1为对应时间。

这里bk与ck为同一时间,bk+1与ck+1为同一时间,假设imu到lidar的旋转矩阵为R_b_c,k时刻到k+1时刻的Lidar的旋转矩阵为R_ck_ck+1,而假设知道imu和lidar的旋转矩阵R_b_c,则k到k+1时刻的Lidar旋转可以由[R_ck_bk] * [R_bk_bk+1 ] * [R_bk+1_ck+1]计算得到,即

用四元数表示为:

这里由四元数的左乘,右乘可得:

假设有多组lidar和imu的对应关系,则联立可得超定方程:

w是每组转换方程的权重,可以由相邻两个Lidar之间的变换向量和结合imu推导的变换向量的角度差来确定,而Q为的缩写。

最后用SVD分解,然后取最小奇异值对应的特征向量,即为R_b_c的结果。

实现

写了一版线性旋转标定的代码,相邻Lidar的运动量,可以用ndt计算,而imu的位姿,可以直接使用imu输出的姿态,最后使用时间戳对齐即可。

代码仓库,有用的话给个小星星

没有考虑激光的畸变,以及时间戳对齐也很粗暴,所以精度不会很高;但是相对使用来说,已经比手动测量要准确很多了,一般场景也足够使用了。

update2021-09-06:增加使用gtsam优化的方式求解旋转。

我的一个测试结果如下:

NDT计算Lidar运动量拼接而成的点云数据。

总结

整体而言,简单的实现,也能满足一定的需要;并且还有比较大的提升空间。

后续可以考虑:

①提高激光里程计的精度,譬如参考点到线,点到面的方式;或者使用一些靶标,这样精度会高很多;

②结合lidar的畸变;

③考虑lidar与imu的时序对齐;

④考虑imu陀螺仪的噪声等。

最后,附上论文中对此种线性旋转矩阵标定的测试。

附录:

2017-Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration

https://www.cnblogs.com/chenlinchong/p/14048969.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lidar与imu外参标定 的相关文章

随机推荐

  • Android汽车服务篇(三) CarPropertyService下篇

    一 简介 上篇文章介绍了Android汽车服务篇 二 CarPropertyService上篇 我们继续看一看看CarPropertyService 这个服务也是很重要的 绝大部分与车辆硬件功能相关联的属性 如空调 车舱功能 车辆传感器等都
  • PPTV面试算法思考-最长对称子字符串

    题目 最近在微信公众号里看看到了一个PPTV的面试算法题 xff0c 感觉难度适中 xff0c 想试下 题目的内容为求一个字符串的最长对称子字符串 如 xff1a 输入 输出 abba 4 abad 3 acccbaa 3 我的算法1 自己
  • mardown语法详解

    这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右SmartyP
  • C++

    由于见到论坛上不少找书的 xff0c 于是就稍稍汇总总结了一下 xff0c 作为本人即将推出的 C 43 43 资源大汇 系列文章的引子 本文只是初稿 xff0c 其中有不少的纰漏 笔误 打误 xff08 打字错误 xff09 希望各位纠正
  • Tx2 设置静态IP的两种方法

    Tx2设置静态ip的两种方法 Tx2静态ip设置可通过桌面右上角的有线连接配置中的ipv4的配置来设置 xff1b Tx2静态ip设置的第二种方法是通过间接修改ipv4的配置来设置 xff1b 用ifconfig来查看你使用的是哪个网络设备
  • 七 Gazebo学习总结之传感器的添加

    本文展示的是使用者怎么直接通过Gazebo其他模型来创建复杂的模型 xff0c 以及使用 lt include gt 和 lt joint gt 标签来连接一个复杂模型的不同部分 1 增加一个激光器 a 进入先前教程的模型目录中 cd ga
  • STM32、FreeRTOS—— SVC 和 PendSV

    问 I went through the xTaskStartSechudler function which ends up triggering the SVC instruction and i came to know that i
  • MYNTEYE-SDK-ROS-Kinetic-VINS-Mono环境搭建到运行(Ubuntu 16.04)非常详细

    一 首先安装ROS环境 1 确保系统软件处于最新版 xff1a sudo apt get update 2 打开终端 xff0c 输入命令 wget https raw githubusercontent com oroca oroca r
  • win7关机一直卡在正在关机

    win7关机一直卡在正在关机 尝试用win7系统准备工具 xff08 sysprep xff09 来恢复到系统的初始状态 步骤 xff1a 1 win 43 R打开运行窗口 xff1b 2 在窗口中输入 xff1a sysprep xff0
  • Jetson TX2学习笔记(一):软硬件基础环境配置

    拿到了Jetson TX2套件 xff0c 在给套件安装开发环境时踩了很多坑 上网查阅的资料也都没能解决问题 xff0c 这里把成功安装步骤一一记录下来 xff0c 同时将所遇到且网上未提及的问题也进行一下分析 先说一下 xff0c Jet
  • 启动Docker,出现“Got permission denied while trying to connect to the Docker daemon socket“的情况

    启动docker时 xff0c 出现 Got permission denied while trying to connect to the Docker daemon socket 的情况 解决方法 xff1a docker守护进程启动
  • 【matlab调用m文件方法】

    matlab如何调用m文件 matlab调用m文件方法
  • kubernetes(k8s)介绍安装和部署实战

    kubernetes 基本介绍 kubernetes xff0c 简称 K8s xff0c 是用 8 代替 8 个字符 ubernete 而成的缩写 是一个开源 的 xff0c 用于管理云平台中多个主机上的容器化的应用 xff0c Kube
  • latex与mathtype的对应

    在latex中一些特殊的字体在用mathtype实现的时候需要找到相应的字体 xff0c 就是说latex实现的所有特殊的字体 xff0c 实现 xff0c 在mathtype中都能找到相应的对应 例如下面的文本对应 R E u
  • 深度学习 优化算法

    深度学习优化算法 优化算法概念动量框架 SGDMomentumNAGAdaGradRMSProp AdaDeltaAdamNdam参考 优化算法 概念 优化算法的功能是通过改善训练方式来最大化或者最小化损失函数 模型内部有些参数 xff0c
  • AVStream AVCodecContext AVCodec

    AVStream 表示成一个流媒体 xff0c 每个AVStream对应一个AVCodecContext xff0c 存储该音视频流使用解码器的相关数据 xff0c 每个AVCodecContext中对应一个AVCodec 包含该音视频的解
  • 2022 年 GIS 就业状况

    2022 年 GIS 就业状况 我们生活在数字时代 xff0c 通过进行在线研究选择我们的道路 xff0c 比如选择假期 选择大学或追求职业 如果您正在考虑进入 GIS 领域或在 GIS 领域进一步发展 xff0c 那么这份报告一定会有所帮
  • Eigen使用方法

    看了这边博客之后总结一下https blog csdn net augusdi article details 12907341 xff0c 感谢原作 xff01 看了之后学到了好多 xff01 1 矩阵定义 不管是向量还是矩阵 xff0c
  • Linux C 书籍推荐

    建议学习路径 xff1a 首先先学学编辑器 xff0c vim emacs什么的都行 然后学make file文件 xff0c 只要知道一点就行 xff0c 这样就可以准备编程序了 然后看看 C程序设计语言 K amp R xff0c 这样
  • Lidar与imu外参标定

    目录 网上资料 方案1 方案2 Lidar与IMU的相对旋转 实现 总结 附录 xff1a 最近由于工作需要 xff0c 花了几天时间了解激光与imu的标定方法 xff1b 因为项目需要 xff0c 且这里是个人认识的一个整理 xff0c