【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优化得到最终解。
- 特征和差异性标定方式
本人非专业人士,使用语言可能不标准,且本人才疏学浅,所看论文量不够对英文翻译不准确,请各位大神批评海涵!
这种方法看的比较少,因为太成熟了,基本被封装成模块直接使用,很难弄懂原理。这里的例子特别多了,比如Autoware
百度阿波罗。。。。。。github上很多,这里不做多讲解,官网给的readme很清楚。
(B)细说线性标定
这里介绍一个卡耐基梅隆大学开源的一款标定软件,使用离线方法,和单目和双目标定一样,直接再windows下面输入图片即可标定。
卡耐基梅隆源代码下载地址:代码+文档(需FQ)
改进源代码下载地址:新增3D可视化操作
注意事项:
- 默认方向朝上,如果相反则需要更改。
- far和near是设置最远和最近距离,最好一次设置不要更改。
- 其使用matlab进行内参标定,且是原始方法。如果使用matlab自带的calibrator得自己手动输入T和R 图像数量等参数。
- 标定数据如果有太多噪声会导致很大误差,可以使用PCL去拟合平面再叠加回去。
- 其中涉及bin pcd xyz 等文件格式的转换,如果需要转换代码请私信我。
- 。。。。第一次使用较为繁琐,弄懂之后很简单。。。。
三. 参考文献
如果简单使用别人的工具很容易,自己动手操作一下,多看看原理也挺好的。
看了十几篇论文,懂了不难,难了不会。
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联合仿真通过激光雷达制作点云地图