【Autoware】激光雷达-摄像头联合标定2-autoware_camera_lidar_calibrator

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Autoware】激光雷达-摄像头联合标定2-autoware_camera_lidar_calibrator相关的知识,希望对你有一定的参考价值。

参考技术A roslaunch autoware_camera_lidar_calibrator camera_lidar_calibration.launch intrinsics_file:=/home/autoware/Experiments/right_6mm/intrinsic_calibration/1280x720/65mm/20210320_0144_autoware_camera_calibration.yaml image_src:=/usb_cam/image_raw
其中
intrinsics_file:为摄像头的内参矩阵yaml文件的绝对路径
image_src:为摄像头的话题

重复以上步骤,选择 9 个不同的像素-点云对,因为需要足够的数据才能计算外参矩阵,当第 9 个点选择完后,该工具会自动计算外参标定矩阵

红线都在标定板上,说明激光雷达摄像头联合标定生成的外参矩阵的重投影误差比较小,标定效果还可以,但还需要继续提升效果

激光雷达联合标定

好久没认真写博客了,动起手有点生疏,markdown都不会用了。。。哈哈。。。废话不说了,之后有时间专门写一篇从学生到工作的记录。



一.联合标定的由来

? 本文介绍激光雷达相机的联合标定,至于为什么要进行标定,简单的说就是:激光代表深度,图像代表细节。举个例子:假如对面行驶过来一辆车,单目相机只能判断那是一辆汽车,双目相机可以判断那是一辆汽车并且知道大概的位置信息。既然双目可以知道距离和三维重建,为什么需要雷达?精度 信息量 稳定性!当几十米的时候,双目相机根本不能准确的判断,同时给的信息也太少。本人使用雷达实测,100米左右都可以探测,对行人和车辆判断较为准确。

? 具体的生动有趣的案例可以参考这篇博文:标定缘由

二.标定方法

这是本文的重点了,这段时间就弄这些东西,很多东西想记录下来给后面的人看,写的有点乱。

本文基于读者有一定的基础之后,单目标定结果为焦距fc 焦点cc 畸变系数k,双目标定结果为旋转+平移矩阵,联合标定求解的结果为3x3旋转矩阵+1x3平移矩阵,这种比较简单的流程都已经了解。

具体求解方法较为复杂,其中最小二乘或L-M 多参数方程求解等,再matlab或者网上已经有开源代码,没必要自己开发。

(A)联合标定发展史

  • 使用点到点的标定方式

这种方式原理较为简单,和单目内参标定类似,寻找关键的点进行一一匹配。

技术图片

之前看到一篇是多个点进行匹配的文章,由于公司不给上传,现文章已经无法找到,在这给出类似的文章:Extrinsic Calibration of a Camera and Laser
Range Finder

雷达和相机外部参数关系

3D点到点的求解方法:最小二乘法

  • 使用线到线的标定方式

这种方法较为常用,其中KITTI数据集标定的方法与此类似,其增加了多张棋盘格,使用ransac软法进行匹配,原理基本一致。我就是使用此类方法,在这里简单描述一下原理:

技术图片

这里的三维直线描述方式使用(U,V)形式,具体参考:三维直线表述方式

这里矩阵形式基本表述为叉乘

论文中部分公式表述不严谨,比如:文中3.1节公式应该是转置,不然维度不统一。

核心思想

a.通过单目标定,得到相机内参。

b.通过内参计算标定板每个位置的外参矩阵,这里是针对相机的。

c.通过雷达找到每个标定板的位置,得到法向量和距离(点到平面距离)。具体怎么得到参考PCL的平面拟合,文末参考文献会给出。

d.通过线性结构得到初始解。

e.通过L-M优化得到最终解。

具体标定原理参考:A Comparative Analysis of Geometric and Image-Based Volumetric and
Intensity Data Registration Algorithms

  • 特征和差异性标定方式

本人非专业人士,使用语言可能不标准,且本人才疏学浅,所看论文量不够对英文翻译不准确,请各位大神批评海涵!

技术图片

这种方法看的比较少,因为太成熟了,基本被封装成模块直接使用,很难弄懂原理。这里的例子特别多了,比如Autoware

百度阿波罗。。。。。。github上很多,这里不做多讲解,官网给的readme很清楚。

(B)细说线性标定

这里介绍一个卡耐基梅隆大学开源的一款标定软件,使用离线方法,和单目和双目标定一样,直接再windows下面输入图片即可标定。

技术图片

卡耐基梅隆源代码下载地址:代码+文档(需FQ)

改进源代码下载地址:新增3D可视化操作

注意事项:

  1. 默认方向朝上,如果相反则需要更改。
  2. far和near是设置最远和最近距离,最好一次设置不要更改。
  3. 其使用matlab进行内参标定,且是原始方法。如果使用matlab自带的calibrator得自己手动输入T和R 图像数量等参数。
  4. 标定数据如果有太多噪声会导致很大误差,可以使用PCL去拟合平面再叠加回去。
  5. 其中涉及bin pcd xyz 等文件格式的转换,如果需要转换代码请私信我。
  6. 。。。。第一次使用较为繁琐,弄懂之后很简单。。。。

三. 参考文献

如果简单使用别人的工具很容易,自己动手操作一下,多看看原理也挺好的。

看了十几篇论文,懂了不难,难了不会。

A Comparative Analysis of Geometric and Image-Based Volumetric and
Intensity Data Registration Algorithms

Extrinsic Calibration of a Camera and Laser
Range Finder

http://www.cs.cmu.edu/~ranjith/lcct.html

大神博客

科普文

Calibration of RGB Camera With Velodyne LiDAR

Laser rangefinder calibration for a walking robot

还有很多参考文章已经忘记来源,如有侵权,劳烦告知

以上是关于【Autoware】激光雷达-摄像头联合标定2-autoware_camera_lidar_calibrator的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu20 autoware+carla联合仿真通过激光雷达制作点云地图

激光雷达联合标定

3d激光雷达开发(多雷达标定)

阿里巴巴开源:一次采集轻松解决多摄像机和3D激光雷达标定

radar毫米波雷达静态障碍物识别及其相关资料(仿真生成标定运动估计静态障碍物识别)

radar毫米波雷达静态障碍物识别及其相关资料(仿真生成标定运动估计静态障碍物识别)