激光雷达(lidar)和相机(camera)联合标定调研(基于Autoware的详细步骤)

简单记录一下使用Autoware对lidar和cam联合标定的步骤和一些注意事项。

首先,开源的lidar和cam标定方案不多,花了一天查资料大概有以下几个:

but_velodyne

https://github.com/robofit/but_velodyne

https://github.com/robofit/but_velodyne_lib

https://blog.csdn.net/learning_tortosie/article/details/82385394

这是一个最简单、最单纯的lidar和cam联合标定的方案,但是需要openCV2.4.9,我的当前版本为3.2,懒得重新装而且看博客感觉别人也没有成功,所以放弃了。

lidar_camera_calibration

https://github.com/ankitdhall/lidar_camera_calibration

https://blog.csdn.net/a2281965135/article/details/79785784

仔细看了一下,这个是基于深度相机/双目的标定方案。

https://github.com/beltransen/velo2cam_calibration

这个也是。

Autoware

https://github.com/CPFL/Autoware/wiki

https://blog.csdn.net/learning_tortosie/article/details/82347694

https://blog.csdn.net/AdamShan/article/details/81670732

这是日本开源的一个自动驾驶平台,其中也包含了lidar和cam的联合标定,适合于velodyne,看博客感觉效果还不错,需要的数据和材料也不麻烦,但是标定过程需要不断的手动把cam中的标定板在lidar点云中的位置圈出来,有点麻烦(也有点蠢...)。

apollo

https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_0_sensor_calibration_guide.md

https://blog.csdn.net/learning_tortosie/article/details/82351553

http://apollo.auto/index_cn.html

这是百度的阿波罗自动驾驶平台,其中包含了lidar和cam的标定方案,仔细看完感觉要求过高,不但需要普通的数据,还需要IMU、里程计等传感器数据,不太适合单纯的lidar和cam标定。而且需要较为精确的lidar和cam相对的初始安装角和广角相机,可以尝试先用Autoware标定一遍之后再用这个标定使得结果更精确。

 

综上所述,最后采用Autoware的标定方案。在开始简述一下其基本原理:

首先和普通cam标定一样,通过标定板的变化算出cam的位姿矩阵;然后再手动用小圈把点云中对应的标定板框出来,看下文介绍可以理解,小圈最少包含了两条点云线,两条线即可构成一个面,就是标定板所在的平面。我们就能通过lidar相对于这个面的角度推算出lidar的姿态,通过这个面点云的距离算出其位置,再和cam相对比,就能得到cam_lidar的外参矩阵了。

 

在安装中,建议选用第二个,一般来说ROS和OpenCV都是有的,再安装个Qt就可以了,很简单的。官网推荐的第一种方案需要固定的硬件配置,很麻烦。

具体标定方法可以看这个视频(需要翻墙)

https://www.youtube.com/watch?v=pfBmfgHf6zg

没条件的可以认真的看这个操作说明

https://github.com/CPFL/Autoware/wiki/Calibration

说一下可能存在的疑惑:

其中提到了rosbag的制作,之前在用Kalibr标定IMU和cam时有明确要求制作的rosbag的格式,包括照片的格式、命名要求,IMU数据格式、频率等,就很好奇Autoware标定的rosbag要求是怎么样的,但是官网没有说明。尝试发现,使用ros格式数据就可以了,比如点云为ros的PointCloud2,直接发布话题,然后用rosbag record /image /point_cloud 记录下rosbag就可以了。

在之后的输出用rosbag play /image:=image_raw /point_cloud:=points_raw,就可以将自己的topic名转换成Autoware标定程序需要的image_raw和points_raw。在rosbag play时可以按空格暂停。

标定界面

需要手动在右下方的图中,不断的把标定板对应的点云图给框出来,为了达到比较好的标定效果,需要的数据量越多越好,图中大概选了100张图,然后project检查效果的时候把不好的十来张删了,最后用了90张图。(一个个框出来还是很累的...总共花了一个多小时roz。

这里说一下数据采集和标定的时候的注意事项:

建议标定至少两次,首先第一次得看最后的标定效果,如图:

这是一次标定结果不是很好的情况,看2处就很明显image和pointcloud就没有对齐。

先说一下1.标定板要注意的,首先最好用官网给的尺寸,质地要比较硬,拿起来才不会弯曲;然后其原理是默认点云全是打在标定板上的,所以拿标定板的人最好能藏在标定板背后而且如果使用标定纸贴在一个硬纸板上的,那硬纸板的大小得和标定纸一样大,才能保证点云是打在标定板而不是后面加固的硬纸板上。

2.最好选一个前面空旷但周围有一点背景,能识别标定效果的地方。前面空旷是为了保证没有和标定板相近的点云对标定效果的干扰。还要注意lidar的线的距离,尽量能标定到最上面的和最下面的,本文使用的是VLP16,相比32线的站在5m,16线的开始稍微往前站一点。

3.标定前要测出相机视野的两端的位置,才能最大限度的提高标定结果。

 

4.标定的时候要注意这个小圈的垂直方向,这是最重要的。务必保证小圈的垂直轴垂直于标定板平面。

 

最后标定的结果文件:最重要的就是外参矩阵

补上最后的结果:

参考文献:https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Calibration

附:标定板文件生成方式

使用的是Kalibr生成PDF的标定板的,kalibr_create_target_pdf --type checkerboard --nx 6 --ny 8 --csx 0.108 --csy 0.108

也可以直接从我的资源处下载,我设置的是0积分的,不知道为什么CSDN有时候会设置成需要积分才能下载

参考文献:https://github.com/ethz-asl/kalibr/wiki/calibration-targets

  • 22
    点赞
  • 258
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 61
    评论
为了联合标定激光雷达和IMU的外参,你可以使用由瑞士苏黎世联邦理工大学自动驾驶实验室开发的lidar_align标定工具。下面是操作步骤: 1. 首先,你需要在终端中创建一个目录并进入该目录: ``` mkdir -p lidar_align/src cd lidar_align/src ``` 2. 然后,你需要使用git命令将lidar_align工具下载并安装到该目录中: ``` git clone https://github.com/ethz-asl/lidar_align.git ``` 这将会下载lidar_align的源代码并将其保存在lidar_align/src目录中。 3. 安装完成后,你可以按照你的需求修改lidar_align的参数配置文件。你可以根据实际情况调整激光雷达和IMU之间的变换参数。一般来说,在匹配算法中,姿态比位置更重要,因此将位置设置为0通常是一个常见的做法。 4. 最后,你可以使用lidar_align工具运行标定程序,该程序会计算出激光雷达和IMU之间的外参变换矩阵。你可以根据具体的使用需求将标定结果应用到你的SLAM算法中。 总结一下,你可以使用lidar_align标定工具来联合标定激光雷达和IMU的外参。首先,你需要下载并安装lidar_align工具。然后,根据实际情况调整参数配置文件。最后,运行标定程序获取激光雷达和IMU之间的外参变换矩阵。这样,你就可以将标定结果应用到你的SLAM算法中了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用lidar_align联合标定lidar与imu的外参](https://blog.csdn.net/weixin_53073284/article/details/123337885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [lidar_imu_calib:自动校准3D激光雷达和IMU外在性](https://download.csdn.net/download/weixin_42106765/16292160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 61
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文锦渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值