相机与激光雷达标定: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 这个功能包,在线的采集标定图像,方便一些

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

相关文章
|
传感器 C++ 计算机视觉
【opencv3】详述PnP测距完整流程(附C++代码)
【opencv3】详述PnP测距完整流程(附C++代码)
1227 0
|
数据采集 数据可视化 Ubuntu
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法
该功能包提供了一个手动校准Livox雷达和相机之间外参的方法,已经在Mid-40,Horizon和Tele-15上进行了验证。其中包含了计算相机内参,获得标定数据,优化计算外参和雷达相机融合应用相关的代码。本方案中使用了标定板角点作为标定目标物,由于Livox雷达非重复性扫描的特点,点云的密度较大,比较易于找到雷达点云中角点的准确位置。相机雷达的标定和融合也可以得到不错的结果。
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法
|
消息中间件 监控 Kafka
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
【8月更文挑战第13天】Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
992 3
|
机器学习/深度学习 数据采集 自动驾驶
深度学习之相机内参标定
相机内参标定(Camera Intrinsic Calibration)是计算机视觉中的关键步骤,用于确定相机的内部参数(如焦距、主点位置、畸变系数等)。传统的标定方法依赖于已知尺寸的标定板,通常需要手动操作,繁琐且耗时。基于深度学习的方法则通过自动化处理,提供了一种高效、准确的内参标定方式。
709 13
|
人工智能 UED
提升5.69倍,高效RAG上下文压缩方法COCOM
【8月更文挑战第7天】在AI领域,大型语言模型(LLMs)展现出了强大的计算与知识处理能力,但也面临着处理复杂任务时因上下文信息激增而导致生成时间延长的问题。为解决这一挑战,研究人员开发了COCOM上下文压缩方法,该方法通过将冗长的上下文信息压缩成简洁的上下文嵌入,有效提升了RAG系统的解码速度。实验表明,COCOM能在不牺牲答案质量的前提下,将解码时间最多提升5.69倍,极大改善了用户体验。然而,该方法也可能存在信息损失的风险,且在特定任务上的效果可能受限,因此在实际应用中需综合考量压缩率与答案质量的平衡。论文详情参见:https://arxiv.org/abs/2407.09252。
428 3
|
安全 Ubuntu Linux
在Linux中,如何实现安全的密码策略?
在Linux中,如何实现安全的密码策略?
|
存储 JavaScript Java
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
175 0
相机和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中搭建仿真场景