相机和livox激光雷达外参标定:在gazebo中搭建仿真场景

简介: 前两篇介绍了相机和livox激光雷达外参标定:ROS功能包的livox_camera_lidar_calibration 和使用方法.具体链接:- [链接1](https://www.guyuehome.com/38522)- [链接2](https://www.guyuehome.com/38524)本篇在gazebo中搭建可以模拟产生livox_camera_lidar_calibration功能包需要的数据的仿真场景.

前言

前两篇介绍了相机和livox激光雷达外参标定:ROS功能包的livox_camera_lidar_calibration 和使用方法.
具体链接:

本篇在gazebo中搭建可以模拟产生livox_camera_lidar_calibration功能包需要的数据的仿真场景.

场景搭建要求

下面总结下,针对livox_camera_lidar_calibration功能包仿真都需要哪些内容:

  • livox 激光雷达,可以产生livox激光雷达这种的固态雷达的数据
  • 相机,生成图像
  • 棋盘标定板
  • 矩形标定板
  • 激光雷达和相机可以一起改变角度和位置(世界坐标系下)

这个场景要求想起了之前搭建的一个无人机云台,那么在上面再装一个livox avia 和 一个 carema就OK了

云台装在一个无人机上,刚好可以移动及改变 雷达和相机的姿态.

场景搭建

创建一个云台挂在无人机上

这个是之前搭建好的,不重点说了,直接上图,就是下面这个样子
在这里插入图片描述
其中无人机和云台的尺寸比较小,和livox和camera的比例不太一致,不过仿真就不那么追求完美了,可以用就行.

云台是这样的:
在这里插入图片描述
灰色的是云台的gimbal_base_link,用于与无人机的连接,连接方式是固定的,所以云台的航向是完全锁定机头方向的
image.png

蓝色的是link1,向下延伸杆.与gimbal_base_link为固定连接.

红色的是云台平台的主体link2 , 与link1, 连接一个joint,用于俯仰的控制

image.png

创建一个livox 和camera 挂在云台上

上面说了尺寸问题,为了避免数据被遮挡,需要将雷达和相机往前放

雷达和相机放在 link2 上, 为了标定外参,设置两者的位置不重合,当然实际也不可能重合. 先设置一个简单的位置

雷达与x轴偏-0.1 相机与x轴偏0.1,所以两者仅在y方向上偏0.2.之后在进行外参标定的时候再把各方向的偏差加上

在这里插入图片描述

image.png

image.png

相机与激光雷达视野匹配

我们知道激光雷达是没有镜头的,所以激光雷达的视场角是多少就是多少,无法改变.(实际场景中)

那么想让相机与激光雷达的视野匹配,只能选择相机的镜头,让水平视场角和垂直视场角两者更为接近.

激光雷达仿真对应的具体型号是livox avia ,该雷达的视野如下:
非重复式扫描 70.4° * 77.2°
在gazebo中也是这样设置的

image.png

所以在gazebo中设置相机的参数如下:(水平角是70.4,像素是4096*3000)

image.png

rviz中检查成像效果

在云台前,放一个墙
在这里插入图片描述
看激光雷达的点云和相机的图像的墙的占幅比,如果上面调的视野一致的化,那么应该不会差太多.
在这里插入图片描述
墙横过来的效果
在这里插入图片描述

创建标定棋盘

编辑一个棋盘的sdf文件,这种文件太长了,就不在这放了. 展示下想让棋盘待在空中不掉下来的关键部分:
(要原始sdf文件的可以留言留下邮箱)
在这里插入图片描述

static 为true 则不受重力影响
pose 就是 在world 的位置 x y z 和三个姿态角
在这里插入图片描述
在rviz中检查下标定棋盘别太小就行.
在这里插入图片描述

创建标定板

标定板最好可以设置大点的,矩形板就行

在这里插入图片描述

image.png

场景效果检测

最后控制无人机飞起来,然后看标定板在相机和雷达里的视野情况
在这里插入图片描述
在这里插入图片描述

没毛病,这样就仿真场景就搭建完毕了!

相关文章
|
4月前
|
传感器 机器学习/深度学习 存储
使用激光雷达(LiDAR)和相机进行3D物体跟踪
使用激光雷达(LiDAR)和相机进行3D物体跟踪
|
4月前
|
传感器 开发工具 C#
[3D&Halcon] SmartRay激光3D传感器Halcon采集
[3D&Halcon] SmartRay激光3D传感器Halcon采集
38 0
|
4月前
|
资源调度 算法 C++
[Halcon&测量] 测量助手详解
[Halcon&测量] 测量助手详解
44 1
|
4月前
|
算法
[Halcon&标定] 相机自标定
[Halcon&标定] 相机自标定
63 1
|
7月前
|
机器学习/深度学习 传感器 算法
【红外图像】利用红外图像处理技术对不同制冷剂充装的制冷系统进行性能评估(Matlab代码实现)
【红外图像】利用红外图像处理技术对不同制冷剂充装的制冷系统进行性能评估(Matlab代码实现)
|
8月前
|
传感器 算法 机器人
获取机器人turtlebot3 在gazebo 中仿真导航时的位姿真值
获取机器人turtlebot3 在gazebo 中仿真导航时的位姿真值
201 0
|
传感器 人工智能 算法
Feat-Calibr | 一款实用的开源激光雷达到车体外参的标定工具
对于拥有惯导的自动驾驶车辆而言,激光雷达到惯导/车体(以下简称激光雷达外参自标定)的方法对后续的感知、定位等下游应用具有非常重要的意义。对于这一问题,最容易想到的办法是同时跑激光里程计与惯导的里程计,并使用手眼标定的方法寻找这外参。这个方法最主要的问题是标定精度受制于激光雷达里程计的精度,对于当前量产的固态激光雷达而言,受制于有限的FOV,测距精度较差,抖动,以及多变的标定场景等问题,难以适配鲁棒且高精度的激光里程计用于外参标定。
Feat-Calibr | 一款实用的开源激光雷达到车体外参的标定工具
|
传感器 机器学习/深度学习 编解码
激光雷达与视觉联合标定综述!(系统介绍/标定板选择/在线离线标定等)
由于2D识别的成功,论文引入了一个大型基准,称为OMNI3D,重新审视了3D目标检测的任务。OMNI3D对现有数据集进行了重新利用和组合,生成了234k张图像,标注了300多万个实例和97个类别。由于相机内参的变化以及场景和目标类型的丰富多样性,这种规模的3D检测具有挑战性。论文提出了一个名为Cube R-CNN的模型,旨在通过统一的方法在摄像机和场景类型之间进行泛化。结果表明,在更大的OMNI3D和现有基准上,Cube R-CNN优于先前的工作。最后,论文证明了OMNI3D是一个强大的3D目标识别数据集,表明它提高了单个数据集的性能,并可以通过预训练加速对新的较小数据集的学习。
激光雷达与视觉联合标定综述!(系统介绍/标定板选择/在线离线标定等)
|
数据采集 传感器
相机与激光雷达标定:gazebo仿真livox_camera_lidar_calibration---标定数据采集与处理
ROS功能包:**livox_camera_lidar_calibration**提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。
相机与激光雷达标定:gazebo仿真livox_camera_lidar_calibration---标定数据采集与处理
|
C++ 计算机视觉
相机与激光雷达标定:gazebo仿真livox_camera_lidar_calibration---相机内参标定
ROS功能包:**livox_camera_lidar_calibration**提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。
相机与激光雷达标定:gazebo仿真livox_camera_lidar_calibration---相机内参标定