0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种手动校准Livox雷达和相机之间外参的方法

3D视觉工坊 来源:古月居 作者:月照银海似蛟龙 2022-10-28 10:35 次阅读

功能包介绍

该功能包提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。

其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。

本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。

相机雷达的标定和融合也可以得到不错的结果。

功能包名称:livox_camera_lidar_calibration

功能包使用环境:Ubuntu 64-bit 16.04

使用步骤

采集数据

连接雷达检查标定板角点是否在点云中

输入点云可视化的命令查看点云

roslaunch livox_ros_driver livox_lidar_rviz.launch

这样就在rviz中显示了点云

连接相机检查标定板角点是否在照片中

打开相机,检查获取照片的质量,并检查标定板角点是否在照片中。具体方法根据相机型号来了。

采集照片和点云数据

拍摄照片运行指令录制点云

roslaunch livox_ros_driver livox_lidar_msg.launchrosbag record /livox/lidar

每个位置保存一张照片和10s左右的rosbag即可

数据采集完成后,将照片放在data/photo文件夹下; 雷达rosbag放在data/lidar文件夹下

以上步骤数据就采集好了,下面进行标定工作

标定角点

设置相机内参

首先需要把得到的内参和畸变纠正参数以下图的格式保存在data/parameters/intrinsic.txt文件下 。

distortion下面对应5个畸变纠正参数,按顺序是k1和k2 (RadialDistortion),p1和p2 (TangentialDistortion),最后一个是k3,一般默认是0

36dfca40-3b5a-11ed-9e49-dac502259ad0.png

获得照片中的角点坐标

配置cornerPhoto.launch文件中的照片路径,运行

roslaunch camera_lidar_calibration cornerPhoto.launch

程序会在UI中打开对应的照片。在这个UI界面上只要把鼠标移到标定板的各个角上,窗口左下角就会显示对应的坐标数据。

确定一个顺序,一般从左上角的角点开始,逆时针旋转按顺序记录下四个角点坐标。

记录完毕后选中显示的图片按任意键,进入坐标输入流程。

把记录下的四个坐标”x y”按顺序输入,x和y中间要有空格(比如: “635 487”),输入完成后输入”0 0”即可结束输入流程(如下图例所示)。

程序会算出四个更精确的float类型坐标显示出来,并保存在data/corner_photo.txt中。然后按任意键结束整个流程。

36ed0264-3b5a-11ed-9e49-dac502259ad0.png

更改cornerPhoto.launch文件中的照片路径,重复上述流程,直至获得所有照片的角点坐标。

获得雷达点云中的角点坐标

检查pcdTransfer.launch文件中的rosbag路径,设置rosbag的数量,并将rosbag以0.bag, 1.bag…命名。

运行指令将rosbag批量转化成PCD文件,PCD文件默认保存在data/pcdFiles文件夹中

roslaunch camera_lidar_calibration pcdTransfer.launch

使用pcl_viewer打开PCD文件,按住shift+左键点击即可获得对应的点坐标。注意和照片采用相同的角点顺序

pcl_viewer -use_point_picking xx.pcd

将xyz角点坐标按如下格式保存在data/corner_lidar.txt中,将所有PCD文件中雷达点云的角点坐标保存下来。

上面的步骤把相机和雷达角点获得了,也就是同名点,下面就是计算外参了

参数设置

外参计算节点会读取data/corner_photo.txt和data/corner_lidar.txt中的标定数据来计算外参,数据需要保存成特定的格式才能被外参计算节点正确读取。

参考以下格式,每行数据只有超过10个字母程序才会将其读取为计算的参数,比如下图用来编号的1234,lidar0和0.bmp这些标题不会被读取为计算参数。

程序读到空行就会停止读取参数开始计算,所以保存时不要空行。

37064512-3b5a-11ed-9e49-dac502259ad0.png

在计算前检查一下雷达和相机两个标定数据中是否每行对应的是同一个角点,并检查数据量是否相同

计算外参

外参计算getExt1节点

计算前在getExt1.launch文件中配置好外参初值

输入指令开始计算外参

roslaunch camera_lidar_calibration getExt1.launch

终端中可以看到每次迭代运算的cost,外参结果以齐次矩阵的格式保存到data/parameters/extrinsic.txt下。

37132de0-3b5a-11ed-9e49-dac502259ad0.png

可以根据优化后的残差和重投影误差评估一下得到的外参,重投影会把误差较大的数据打印在屏幕上,可以剔除异常标定数据后再重新进行优化计算。

外参计算getExt2节点

getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。

输入指令程序会得到一个新的内参和外参,并用新的参数来进行重投影验证。

roslaunch camera_lidar_calibration getExt2.launch

一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

使用的前提需要保证标定数据量较大,并且要充分验证结果。

如果经过验证getExt2计算的结果确实更好,那么把新的内参更新在data/parameters/intrinsic.txt中

通过上面步骤已经得到了外参的结果,结果的优略可以通过下面的验证方法

结果验证

获得外参后我们可以用两个方式看一下融合的效果。第一个是将点云投影到照片上,第二个是点云的着色。

投影点云到照片在projectCloud.launch文件中配置点云和照片的路径后,运行指令,将rosbag中一定数量的点投影到照片上并且保存成新的照片。

roslaunch camera_lidar_calibration projectCloud.launch

点云着色在colorLidar.launch文件中配置点云和照片的路径,运行指令,可以在rviz中检查着色的效果。

roslaunch camera_lidar_calibration colorLidar.launch





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PCL
    PCL
    +关注

    关注

    1

    文章

    31

    浏览量

    13597

原文标题:相机和livox激光雷达外参标定

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种AMR磁罗盘的误差建模与校准方法

    一种AMR磁罗盘的误差建模与校准方法
    发表于 08-17 12:10

    激光雷达相机之间标定

    lidar_camera_calibration项目——激光雷达相机联合标定
    发表于 04-12 09:27

    一种基于FPGA的DSU硬件实现方法

    摘要:为了实现对非相干雷达的接收相处理,基于数字稳定校正(DSU)的原理,采用ALTERA公司的StratixⅡ系列芯片和VHDL编程语言,设计了一种基于FPGA的DSU硬件实现方法
    发表于 06-28 08:27

    一种自主产生式的雷达回波模拟器中频部分的设计实现方法论述

    ,灵活性有所欠缺。本文论述一种自主产生式的雷达回波模拟器中频部分的设计实现方法,该模拟器可产生脉冲单频、脉冲线性调频、步进频、步进频+线性调频等多种波形的雷达回波信号,并可产生双目标和
    发表于 07-16 07:40

    一种雷达抓拍延时为对象的电子警察抓拍延时测量方法

    求大神分享一种雷达抓拍延时为对象的电子警察抓拍延时测量方法
    发表于 04-15 06:17

    怎么实现一种低成本微型测距雷达的设计?

    微型测距雷达主要用于哪些方面?微型测距雷达的原理及组成是什么?怎么实现一种低成本微型测距雷达的设计?
    发表于 05-12 06:45

    求大佬分享一种基于毫米波雷达和机器视觉的前方车辆检测方法

    为研究夜间追尾事故中本车智能防撞预警方法,本文提出了一种基于毫米波雷达和机器视觉的前方车辆检测方法。利用多传感器融合数据,检测前方车辆的距离、速度等。建立传感器
    发表于 06-10 10:23

    一种不依赖于棋盘格等辅助标定物体实现像素级相机和激光雷达自动标定的方法

    主要内容本文提出了一种不依赖于棋盘格等辅助标定物体,实现像素级相机和激光雷达自动标定的方法方法直接从点云中提取3D边特征,
    发表于 09-01 07:42

    小鹏官宣将由大疆孵化的Livox提供量产激光雷达

    小鹏官宣将由Livox提供量产激光雷达 2021年第一天,小鹏汽车官宣与大疆孵化的Livox览沃科技达成合作,将在2021年推出的全新量产车型上使用其生产的小鹏定制版车规级激光雷达
    的头像 发表于 01-04 10:45 3724次阅读

    Livox成为小鹏汽车在激光雷达领域的首家合作伙伴

    2021年1月1日,小鹏汽车发布了与Livox览沃科技达成合作的消息。据了解,Livox览沃科技是DJI大疆创新内部孵化成立的独立公司,致力于提供高性能、低成本的激光雷达传感器,并且应用于自动驾驶
    的头像 发表于 01-04 13:49 3437次阅读

    3D激光雷达相机校准是如何考虑传感器之间误差的?

    的误差的; 为了融合来自3D激光雷达相机的信息,需要知道传感器坐标系之间的外部校准。 传统的外部校准方案有三个缺点: 传统的
    的头像 发表于 05-26 09:15 4616次阅读
    3D激光<b class='flag-5'>雷达</b>和<b class='flag-5'>相机</b><b class='flag-5'>校准</b>是如何考虑传感器<b class='flag-5'>之间</b>误差的?

    Livox发布HAP激光雷达 速腾聚创与酷哇机器人达成战略合作

      面向汽车前装量产市场,Livox正式发布又一重磅级产品 — Livox首款车规级激光雷达HAP。
    的头像 发表于 03-16 08:58 3415次阅读

    一种基于毫米波雷达相机系统之间的在线无目标校准方法

    传感器融合对于自动驾驶和自主机器人是至关重要,毫米波雷达-相机融合系统由于其互补的传感能力而广受欢迎。
    的头像 发表于 10-09 14:17 339次阅读
    <b class='flag-5'>一种</b>基于毫米波<b class='flag-5'>雷达</b>和<b class='flag-5'>相机</b>系统<b class='flag-5'>之间</b>的在线无目标<b class='flag-5'>校准</b><b class='flag-5'>方法</b>

    基于激光雷达相机的在线外部标定算法

    本文提出了一种自动在线激光雷达相机自标定方法CFNet。CFNet是全自动的,不需要特定的校准场景、校准
    发表于 10-10 11:44 412次阅读
    基于激光<b class='flag-5'>雷达</b><b class='flag-5'>相机</b>的在线外部标定算法

    采集激光雷达相机的初始标定数据

    ROS功能包:livox_camera_lidar_calibration提供了一个手动校准Livox雷达
    的头像 发表于 11-28 11:09 246次阅读
    采集激光<b class='flag-5'>雷达</b>和<b class='flag-5'>相机</b>的初始标定数据