一、配置

硬件配置:

速腾聚创激光雷达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)

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

  1. Ubuntu18.04中搭建事件相机模拟器rpg-esim环境

    Ubuntu18.04中搭建事件相机模拟器rpg-esim环境 esim 是 ETH 开发的一款的模拟事件相机工作原理的仿真器,其是基于ROS环境的,在安装esim环境之前,需要先安装ROS.在官方给 ...

  2. yolov4直接调用zed相机实现三维测距(免标定)

    此项目直接调用zed相机实现三维测距,无需标定,相关内容如下: 1. yolov5 + 双目测距(标定测距) 2. yolov5直接调用zed相机实现三维测距 3. 具体实现效果已在哔哩哔哩发布,点击 ...

  3. 相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍

    相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 相机与激光雷达外参标定 功能包介绍 环境配置及功能包安装 功能包节点 准备内容 1 l ...

  4. 相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法

    相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 使用方法 livox_camera_lidar_calibration 功能包介绍 使 ...

  5. Ubuntu18.04+ROS Melodic+RealsenseD435i+Robotiq-2F-85+UR5真实机械臂手眼标定(眼在手外)

    一.配置环境 操作系统:Ubuntu 18.04 机械臂型号:UR5 :polyscope 3.14 夹爪型号:Robotiq 2F-85 深度相机:Intel RealSense - D435i 二 ...

  6. 相机和雷达外参联合标定

    内容: 关于雷达和相机外参联合标定的踩坑纪录. Date: 2023/03/19 硬件: 上位机: Jetson ORIN (Ubuntu 20.04, ROS noetic) 雷达: Ouster ...

  7. 使用Autoware标定工具包进行相机和激光雷达的联合标定

    前提摘要:我用的雷达和相机分别是镭神C16型激光雷达和免驱动摄像头 一.编译标定程序 1.创建工作空间 mkdir -p ~/CL_calibration_ws/src 2.下载安装包 cd ~/CL ...

  8. 【关于ubuntu18.04及使用mindvision相机遇到的问题】

    1.终端修改文件保存 先按ESC,再按 :wq,保存并退出. 2.用QT软件连接不上相机并exited with code 1 QT权限问题,使用sudo qtcreator打开即可. 3.相机丢帧, ...

  9. autoware 激光-相机联合标定

    autoware进行激光-相机联合标定 ~~~ 刚开始进行激光-相机联合标定的时候,出现了不少问题,在此记录一下整体标定流程,以防忘记.在此,特别感谢佳明师弟,在录制数据集时提供的帮助. ~~~ 0. ...

  10. yolov5直接调用zed相机实现三维测距(python)

    此项目直接调用zed相机实现三维测距,无需标定,相关内容如下: 1. YOLOV5 + 双目测距 2. yolov4直接调用zed相机实现三维测距 3.具体实现效果已在哔哩哔哩发布,点击此链接跳转 相 ...

最新文章

  1. 【学习笔记】Silverlight框架:Jounce(4)——事件通信
  2. oracle 11g 逻辑备库,通过Oracle 11g 逻辑standby实现BI的需求
  3. 微信跳转手机默认浏览器打开的实现方式
  4. python守护进程_Python实现守护进程
  5. MyEclipse/Eclipse中properties文件中文乱码问题解决
  6. android怎么打开wifi的组播功能
  7. android 选座,机票在线选座 Android 开源库
  8. [Leetcode][第841题][JAVA][钥匙和房间][DFS][BFS]
  9. 路由器mysql密码重置密码_【验证】mysql root密码恢复
  10. 阿里一面,说说你了解zookeeper的应用场景有哪些?
  11. 学校技能节计算机专业方案,第十九届技能节展示方案
  12. 第一次有人把小米9快充讲的这么简单明了qc3.0 usb pd
  13. java好听的名字_(张天爱)女孩好听的名字又有内涵 - Java3y - 宝宝起名网
  14. 【历史上的今天】5 月 11 日:Dijkstra 算法开发者诞生;电子表格软件的开山鼻祖;机器狗 AIBO 问世
  15. 《PaddlePaddle从入门到炼丹》十一——自定义图像数据集识别
  16. QQ被盗后被敲诈500元怎么办
  17. 某Y易盾滑块acToken、data逆向分析
  18. 在word的文字右上角添加符号(插入上标)?
  19. 一篇文章让你彻底明白区块链有哪些应用场景
  20. Google 规避账户关联

热门文章

  1. 制作一个简单HTML公司官网网页设计(HTML+CSS)
  2. 南大计算机课程,南京大学 计算机系统基础 课程实验 2018(PA0-1)
  3. 关于js函数传参的问题
  4. f(x)的泰勒(Taylor)展开式
  5. 大数据处理技术与人工智能技术
  6. win10虚拟机连接不上内网服务器,win10系统虚拟机无法连接网络的解决方法
  7. php导出excel处理微信昵称emoji表情符号和特殊颜文字符
  8. 利用python转载朋友微信表情包
  9. 2020.8.28丨转录组、全转录组方案设计和案例解析
  10. 真核有参转录组测序标准分析-3