相机与激光雷达标定:gazebo仿真livox_camera_lidar_calibration---相机内参标定

简介: ROS功能包:**livox_camera_lidar_calibration**提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。

前言

ROS功能包:livox_camera_lidar_calibration提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。

前一篇链接中在gazebo中搭建了ROS功能包(livox_camera_lidar_calibration)的仿真场景

本篇在gazebo中进行相机内参的标定

采集相机标定内参的棋盘标定板图像

要求:
要准备20张以上的照片数据,各个角度和位置都要覆盖

启动搭建的gazebo场景
在这里插入图片描述
通过rqt_image_view来保存获取的图像

rqt_image_view

在这里插入图片描述
点击那个保存的图标就行了.
在livox_camera_lidar_calibration文件夹下,新建data/camera/photos文件夹,在data/camera下新建in.txt文件
在这里插入图片描述
把图片保存在photos下面就行了
在这里插入图片描述
然后移动棋盘标定板

在gazebo中有个可以直接移动的图标,就是那个十字箭头,然后选中棋盘标定板,出现3个轴,然后拖动鼠标就可以移动
在这里插入图片描述
我在各个位置拍了8张

然后不同角度的拍照,旋转棋盘标定板,改变一定角度,不要太大也.
gazebo也有个图片可以改变物体姿态,
在这里插入图片描述
然后在改变3个轴的姿态,再拍几张
重复上面的过程,拍了21张图片

相机内参标定配置

编辑in.txt文件,写入所有需要使用的照片名称
在这里插入图片描述

然后编辑cameraCalib.launch文件,将里面的配置弄好

image.png

需要改的是
图片名称路径和文件路径
行数和列数 与每个格的尺寸

进行相机内参标定

修改好后输入指令开始标定

roslaunch camera_lidar_calibration cameraCalib.launch

其中有的图片运行会非常慢,或者找不到角点,经过调试发现
调用的节点的CPP中有这样一行

if (0 == findChessboardCorners(imageInput, board_size, image_points_buf)) {

这的检测时间和条件是很高的.

我一开始采的很多图片就识别不了.因为opencv的那个函数就是那样子的.

对于这个问题,可以使用 camera_calibration 这个功能包,在线的采集标定图像,方便一些

最后求到相机内参是这样的:
在这里插入图片描述

相关文章
|
编解码 前端开发 算法
基于OpenCV的双目摄像头测距(误差小)
首先进行双目摄像头定标,获取双目摄像头内部的参数后,进行测距;本文的双目视觉测距是基于BM算法。注意:双目定标的效果会影响测距的精准度,建议大家在做双目定标时,做好一些(尽量让误差小)。
11143 3
基于OpenCV的双目摄像头测距(误差小)
|
数据采集 数据可视化 Ubuntu
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法
该功能包提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法
|
4月前
|
存储 Ubuntu 计算机视觉
使用ros标定相机的内参和外参
使用ros标定相机的内参和外参
183 2
|
7月前
|
编解码 机器人
标定系列一、手眼标定基础介绍
标定系列一、手眼标定基础介绍
255 0
|
7月前
|
算法
[Halcon&标定] 相机自标定
[Halcon&标定] 相机自标定
177 1
|
7月前
|
编解码 对象存储 UED
[Halcon&标定] 单相机标定
[Halcon&标定] 单相机标定
270 1
|
传感器 编解码
在gazebo中进行相机标定
在gazebo中进行相机标定
在gazebo中进行相机标定
|
7月前
|
传感器 机器学习/深度学习 存储
使用激光雷达(LiDAR)和相机进行3D物体跟踪
使用激光雷达(LiDAR)和相机进行3D物体跟踪
|
机器学习/深度学习 Ubuntu 开发工具
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍
**什么是相机与激光雷达外参标定?** 就是相机坐标系和激光雷达坐标系的TF变化。位置x,y,z 欧拉角 roll,pitch,yaw,6个变量构成一个4*4的旋转变换矩阵 标定的就是这个4维的旋转矩阵。 标定的方法有: - 基于特征 - 基于运动观测 - 基于最大化互信息 - 基于深度学习 基于特征 的方法是根据对应特征点求解PnP问题,需要标定板来获取特征 基于运动观测可以看作手眼标定问题,精度决定于相机和雷达的运动估计 基于最大化互信息认为图像灰度于反射强度具有相关性 基于深度学习需要长时间的训练并且泛化能力不高
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍
相机和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激光雷达外参标定:在gazebo中搭建仿真场景