0. 简介

作为无人车以及智能机器人而言,在装配过程中各个传感器之间的外参标定一直是比较头疼的问题。这里作者也系统的学习了一下,传感器的外参标定和在线标定问题。下图是我们常用的几个坐标系,而对于常用的外参问题经常是IMU/GNSS与车体坐标的外参、Lidar和Camera的外参、Lidar和Lidar的外参、Lidar和IMU/GNSS的外参。

1. 离线外参标定

1.1 IMU/GNSS与车体外参标定

这个IMU/GNSS与车体外参标定如下图所示,主要需要获取TcarimuT_{car}^{imu}Tcarimu​坐标系,这一类IMU/GNSS设备通过内部的紧耦合可以综合输出一系列校准后的位姿信息。同时IMU的输出频率是很高的,所以通过插值的形式可以有效地提高整体综合的频率输出。

为了去标定外参,一般的方法是获取位姿运动的位姿序列,并通过GNSS/IMU来观测车辆自身的运动(有的时候我们可以通过绕圈的形式+手持点测绘来对车辆自身坐标和GNSS坐标进行匹配计算)。通过获取很多个观测和gnss的转换可以得到cost fuction参与到里面去优化。

这里我们也给出了基于车体坐标系odom和IMU的位姿联合矫正的相关代码,考虑到IMU和轮速计的数据收集过程中本身在时间上就很难做到完全对齐,此时引入时间偏移(delta_t)用于表示两者采集时间片之间的误差,通过循环标定新产生的轮速计数据和原先的IMU 数据,选取误差最小的结果作为最终两者之间的标定,相应的(delta_t)即认为两者采集时间的偏差。

参考链接:https://github.com/smallsunsun1/imu_veh_calib

其实作为车辆来说,在平面测量后,其实只需要观测x,y,yawx,y,yawx,y,yaw即可。所以可以将用直线来做约束和校准,得到下图的公式:

1.2 Camera 与 Camera 外参标定

作为相机与相机之间的标定,其本质和双目摄像头的标定步骤类似,通过拿到的图像信息来还原点在3D空间下的位置。如果获取两个相机与点的转换关系就可以得到TcamacambT_{cam_a}^{cam_b}Tcama​camb​​的坐标系变换。

然后根据棋盘格的坐标系转换就可以得到同一个点通过内参+外参后转到的uvuvuv坐标系下的情况,然后利用PNP非线性优化得到旋转平移矩阵TcamerachessboardT_{camera}^{chessboard}Tcamerachessboard​。然后通过多帧来综合约束TcamacambT_{cam_a}^{cam_b}Tcama​camb​​。

这里是经常使用的方法,Opencv也有自带的方法,代码如下:

参考链接:https://github.com/sourishg/stereo-calibration

1.3 Lidar 与 Camera 外参标定

雷达和相机的校准作为自动驾驶中最为重要的部分,其主要分为雷达的三维点位姿估计和相机的像素点的三维点位姿估计。

这里我们可以看到其核心思想仍然是获取三维点的方式来完成对应。这里当然会因为Lidar存在扫描导致的误差造成的角点提取不准的原因,例如我们使用这类方法。可以看到不同的激光得到了不一样的角点提取效果,因此我们可以通过角点拟合的方法去实现,比如说我们可以通过Ransec提取出空间中的标定板的位置区域,并获得初步的位移量,然后在标定板中存在几个凸起,并通过分割和聚类的方法提取出凸起的中心点,并将点与最近的点进行映射,得到TlidarchessboardT_{lidar}^{chessboard}Tlidarchessboard​。然后摄像头可以通过标定板来预估出TcamerachessboardT_{camera}^{chessboard}Tcamerachessboard​,然后这两个通过chessboardchessboardchessboard的Lidar和Camera求得旋转的TF坐标系。

参考链接:

  1. 2D标定板:https://github.com/TurtleZhong/camera_lidar_calibration_v2

  2. 3D标定板:https://github.com/heethesh/lidar_camera_calibration

  3. 镂空标定板:https://github.com/beltransen/velo2cam_calibration

  4. 球体标定:https://github.com/545907361/lidar_camera_offline_calibration

  5. SLAM+无特征标定:https://github.com/AFEICHINA/extended_lidar_camera_calib

1.4 Lidar 与 Lidar 外参标定

Lidar与Lidar的标定其实就是两个点云校准配对的方式,一般使用PCL库即可。这个在之前的博客中已经详细说过了,这里也不再展开说了。

参考链接:

  1. 2D雷达:https://hermit.blog.csdn.net/article/details/120726065、https://github.com/ram-lab/lidar_appearance_calibration

  2. 3D雷达:https://github.com/AbangLZU/multi_lidar_calibration、https://github.com/yinwu33/multi_lidar_calibration

1.5 Lidar 与 IMU/GNSS 外参标定

Lidar和IMU/GNSS的外参标定和车体外参的外参标定类似,都可以通过相对位移来估算出位姿态变化,从而实现对齐。


当然近年来也有一些比较好的开源方案供我们参考和选择:

参考链接: https://github.com/APRIL-ZJU/lidar_IMU_calib、https://github.com/chennuo0125-HIT/lidar_imu_calib、https://github.com/FENGChenxi0823/SensorCalibration。

1.6 Lidar 和 Radar 外参校准

与其他不一样的是,Radar只有极坐标信息,没有高度信息。所以很多时候Radar和Lidar的标注只需要标定x,y,yawx,y,yawx,y,yaw信息。而Radar对三角锥标注更敏感,所以这也会导致我们的结果更准确一些。

当然也可以使用一些配准的方法来实现标定的功能。

参考链接:https://github.com/keenan-burnett/radar_to_lidar_calib、https://github.com/gloryhry/radar_lidar_static_calibration、

…详情请参照古月居

多传感器融合感知 --传感器外参标定及在线标定学习相关推荐

  1. 多传感器融合感知:传感器外参标定及在线标定算法详解

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[全栈算法]技术交流群 后台回复[相机标定]获取超详细的单目双目相机模型介绍.内外参标定 ...

  2. 摄像头和激光雷达都被蒙蔽?UCI首次提出针对自动驾驶多传感器融合感知的攻击...

    作者丨汪宁非 编辑丨机器之心 来自加州大学尔湾分校(UC Irvine)的研究者发现,L4 自动驾驶里用的最广泛的用来提高系统鲁棒性的多传感器融合感知(Multi-Sensor Fusion base ...

  3. 万字综述|自动驾驶多传感器融合感知

    原文地址:万字综述 | 自动驾驶多传感器融合感知 翻译:种争青 校稿:董亚微 00 摘要 多模态融合是自动驾驶系统感知的一个基本任务,最近引起了许多研究者的兴趣.然而,由于原始数据的噪声.信息的未充分 ...

  4. 0元包邮 | 多传感器融合感知知识导图

    "传感器融合技术"是自动驾驶的核心技术.传感器是汽车感知周围的环境的硬件基础,在实现自动驾驶的各个阶段都必不可少. 随着自动驾驶无人驾驶技术的应用落地,越来越多的伙伴们加入到研究学 ...

  5. 多传感器融合感知技术的前沿算法与应用,包括Pointpillars、spconv+、BEVDet、LSS等算法

    多传感器融合感知技术的前沿算法与应用,包括Pointpillars.spconv+.BEVDet.LSS等 2022年4月27日晚,由觉非科技算法总监郝爽带来的自动驾驶领域多传感器融合感知的技术算法解 ...

  6. 自动驾驶感知算法实战11——多传感器融合感知方案详解

    自动驾驶感知算法实战专栏:https://blog.csdn.net/charmve/category_12097938.html 目录 1 何为多传感器融合? 2 多传感器融合的优势 3. 多传感器 ...

  7. 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(3)

    实现功能:代码下载地址:下载地址 1)基于深度学习的目标检测:2)基于雷达的距离估计和预测:3)多传感器感知结果融合模块. 雷达感知模块解析 4. Run nodes: python3 fusion_ ...

  8. 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(2)

    实现功能:代码下载地址:下载地址 1)基于深度学习的目标检测:2)基于雷达的距离估计和预测:3)多传感器感知结果融合模块. 相机感知模块解析 4. Run nodes: python3 fusion_ ...

  9. 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(1)

    实现功能:代码下载地址:下载地址 1)基于深度学习的目标检测:2)基于雷达的距离估计和预测:3)多传感器感知结果融合模块. 环境配置.数据下载.节点启动 1. Install ROS melodic: ...

最新文章

  1. @所有粉丝,祝大家新春快乐!
  2. linux系列之-—04 自动删除n天前日志【转】
  3. 商用计算机工作温度,winxp嵌入式主板主机对工作环境温度有什么要求
  4. linux socket ip层配置,Linux下Socket通信(TCP实现)
  5. 上传图片和音频到Server,再转存到DB
  6. DevSecOps简介(二)
  7. C#LeetCode刷题之#434-字符串中的单词数​​​​​​​(Number of Segments in a String)
  8. 视觉SLAM笔记(65) 简约总结
  9. 19-random猜数
  10. 固态硬盘故障检测_有哪些好用的检测软件是用于判断固态硬盘故障的?
  11. CARBON X1 安装 chrome os
  12. python搬运youtube视频_使用Python将YouTube视频下载到某个目录
  13. 资深 iOS 开发工程师教你5 道题全面考察候选人
  14. [ICPC Asia Nanjing 2019] Holy Grail (spfa最短路)
  15. Linux内核延迟写机制学习
  16. 2021年9月国产数据库排行榜-墨天轮:达梦奋起直追紧逼OceanBase,openGauss反超PolarDB再升一位
  17. 什么是位域?位域如何定义?一般什么时候使用?
  18. 计算机辅助设计中图元单位,CAD图形单位快捷键
  19. OpenStack Placement部署(5)
  20. carla学习笔记(六)

热门文章

  1. MATLAB 2019 快速入门教程(官方手册翻译)(1/4)
  2. 2022-04-05 学习记录--React-React UI组件库-ant-design(蚂蚁金服)—— 按需引入样式 + 自定义主题
  3. openstack 中ovs-vlan 转换
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生签到管理系统
  5. C#打印PDF文档并实时监测打印进度
  6. Apache Log4j2漏洞复现
  7. 微信公众号绑定游戏中的安全问题
  8. 基于javaweb的毕设基于java的系统设计与开发
  9. 【全局规划】人工势场法(APF)
  10. ThinkPad 声卡出现未安装任何音频输出设备