Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!
一、安装 Autoware & ZED 内参标定 & 外参标定准备
之前的这篇文章:Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定! 记录了我用 Autoware 标定相机和雷达的过程,虽然用的不是 Calibration Tool Kit 工具,但是博客里面的以下章节也适用本次的 Calibration Tool Kit :
- 一、编译安装 Autoware-1.10.0
- 二、标定 ZED 相机内参
- 3.1 联合标定准备
如果你是第一次看这篇 Calibration Tool Kit 联合标定的博客,建议先按照之前的博客安装 Autoware、标定 ZED 内参和做好外参标定的准备(标定板,录制标定包等),最好用上篇博客的方法标定一次。
这篇博客我就直接开始介绍使用 Calibration Tool Kit 标定雷达和相机外参的过程!
二、Calibration Tool Kit 联合标定雷达和 ZED 相机
2.1 启动 Autoware
先启动 Autoware-1.10.0,启动过程中可能需要输入 root 密码:
# 1. 进入 autoware 的 ros 目录下
cd autoware-1.10.0/ros
# 2. source 环境,zsh 或 bash
source devel/setup.zsh[.bash]
# 3. 启动主界面
./run
切换到 Sensing 选项卡:

2.2 回放雷达相机 Bag
这里回放时需要更改雷达的话题为 /points_raw,因为这个工具订阅的雷达主题是固定的:
rosbag play --pause xxx.bag /rslidar_points:=/points_raw
我用的 Robosense 雷达,发布的话题是 rslidar_points,这个回放默认暂停,防止跑掉数据,按空格继续或暂停。
2.3 启动 Calibration Tool Kit
点击 Calibration Tool Kit 启动标定工具:

选择图像输入话题,我只用的 ZED 的左图像话题,如果没有相机话题,确保前面你已经回放了 bag,选择好了点击 OK 确定:

选择标定类型为相机到 velodyne 雷达的标定(对 Robosense 雷达也适用,只不过需要更改点云的发布话题),点击 OK 确定:

进入标定主界面 MainWindow:

配置标定板棋盘格参数:
- Pattern Size(m):标定板中每个格子的边长,单位 m,我的标定板每个格子长 0.025 m
- Pattern Number:标定板长X宽的单元格数量 - 1,我的标定板是长有 12 个格子,宽有 9 个,所以填 11x8,减一是因为标定检测的是内部角点
设置好了后,重启 Calibration Tool Kit,点击左上角 Load 导入第一步标定的相机内参 YAML 文件,但是这个工具只能导入 YML 格式的文件:

因此需要把前面的内参标定文件拷贝一份,修改格式为 yml 即可,YAML 和 YML 其实是一样的:

修改好了之后,再点击 Load 加载 yml 格式的内参文件即可:

选择不加载相机和雷达的标定数据,因为我是直接回放 Bag 标定:


到这里都设置好了,下面开始外参标定过程!
2.4 标定过程
打开回放 bag 终端,按空格继续回放数据,主界面会显示相机图像:

但是右边的点云窗口没有显示数据,需要我们调整视角才可以,视角的调整方法如下(文末有个 pdf 专门介绍):

简单解释下,建议直接操作,很容易:
- 移动点云:上下左右方向键、PgUp、PgDn
- 旋转点云:a、d、w、s、q、e
- 切换模式:数字 1 和数字 2
- 视角缩放:减号缩小、加号放大
- 点云大小:o 键使用小点云、p 使用大点云
- 改变点云窗口背景颜色:b
我使用的使用直接按数字 2 切换模式就能看到点云了,其实这些模式我也不是很懂。。。:

如果需要更换背景,按 b 键改变为大致灰色即可:

我这里就不改背景了,黑色也挺好看出点云的,然后使用上面的视角操作方法,把点云中的标定板放大到中心位置:

之后点击右上角的 Grab 捕获当前帧的图像和点云,使用 - 和 + 缩放视角:

如果你点击 grab 没反应很正常,可能是棋盘格离得太远或者模糊了,你多试几个位置应该就能捕获到,我回放一个 Bag 也就捕获了 9 张左右。
然后把鼠标放到右下角捕获的点云窗口,选择一个棋盘格的中心位置区域,关于这个区域的选择,我是参考这个标定工具的文档例子(文末有链接)选择的,大概就是标定板的中心位置选择一个圆形的区域,尽量保证向外侧的平面法向量垂直于标定板平面:

鼠标左键点击选择,右键点击取消,我的选择如下,可以参考:

然后重复以上步骤,不断回放暂停,Grab 捕获单帧图像和点云(多选一些),选择点云区域,直到回放结束,接着就可以点击右上角的「Calibrate」按钮计算外参矩阵(左上角显示),然后再点击「Project」查看标定效果:

切换左下方的单帧图片和点云窗口,捕获的每一帧图像和点云都可以看到对齐效果,另外左边也能看到标定的误差,当然是越小越好,我目前的标定效果一般般,后续打算再标几次。
标定好之后,点击左上角「save」保存外参矩阵即可,文件名建议带上时间戳方便识别:

最后的外参数文件如下,这个文件包含了相机内参和相机到雷达的外参:

以上就是我的雷达相机联合标定过程!希望能帮助正在标定雷达和相机的同学 _!
三、标定结果测试
可以直接用之前博客 Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定! 中的「四、标定结果测试」一节介绍的步骤来测试融合效果:

前几天我把 ROS 的点云和图像的融合节点也调试好了,所以直接在程序里面加载了外参矩阵,然后做了个初步的融合,效果如下:

我也录了个融合视频,可以看看:B 站:Robosense-16 雷达与 ZED 相机数据融合。
五、标定资源
以下是我标定过程中收集的一些好的资料,这里也分享给大家:
- 标定工具的使用文档在这里:CalibrationToolkit_Manual.pdf
- 这里还有个视频,有条件的同学可以看看:Yutobe:Autoware 标定相机和雷达
另外 ROS 融合节点的程序我还在完善中,建议关注我的 Github 项目,后续会上传节点代码:AI-Notes: lidar_camera_fusion,如果标定遇到问题,可以公众号后台给我发消息,或者直接在博客平台留言,我看到会尽快回复的,不过公众号应该回复的快些,哈哈 :)

Autoware 标定工具 Calibration Tool Kit 联合标定 Robosense-16 和 ZED 相机!的更多相关文章
- Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定!
项目要标定雷达和相机,这里记录下我标定过程,用的速腾 Robosense - 16 线雷达和 ZED 双目相机. 一.编译安装 Autoware-1.10.0 我没有安装最新版本的 Autoware, ...
- matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正
matlab calibration toolbox -- matlab标定工具的使用方法--去畸变和双目校正 2015-04-06 22:45 5407人阅读 评论(2) 收藏 举报 分类: 机器 ...
- 基于2d Tool Kit 精灵合图,动作生成工具
http://blog.csdn.net/onerain88/article/details/18563687 2d Tool Kit 是一款出色的基于unity3d 开发2d游戏的工具,提供了丰富的 ...
- CocoStuff—基于Deeplab训练数据的标定工具【一、翻译】(未完)
一.CocoStuff简介 CocoStuff是一款为deeplab设计的,运行在Matlab中的语义标定工具,其标定结果和结合Deeplab训练出的结果均为mat文件格式,该项目源码已在github ...
- 相机标定(Camera calibration)
简单介绍 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程.也就是求终于的投影矩阵 P 的过程,以下相关的部分主要參考UIUC的计算机视觉的课件(网址Spr ...
- DX11 Without DirectX SDK--04 使用DirectX Tool Kit帮助开发
回到 DirectX11--使用Windows SDK来进行开发 DirectX Tool Kit下载 DirectX Tool Kit是一个包含许多类的集合,用于为公共Windows平台编写Dire ...
- DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发
前言(2018/11/4) DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中 但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进 ...
- Falcon Genome Assembly Tool Kit Manual
Falcon Falcon: a set of tools for fast aligning long reads for consensus and assembly The Falcon too ...
- Atitit s2018.5 s5 doc list on com pc.docx Acc 112237553.docx Acc baidu netdisk.docx Acc csdn 18821766710 attilax main num.docx Atiitt put post 工具 开发工具dev tool test.docx Atiitt 腾讯图像分类相册管家.docx
Atitit s2018.5 s5 doc list on com pc.docx Acc 112237553.docx Acc baidu netdisk.docx Acc csdn 1882 ...
随机推荐
- Solr-常见问题汇总(持续更新)
本文主要记录solr使用中遇到的一些常见问题及命令 关于solrConfig.xml的配置博客:https://blog.csdn.net/yuh_LLllccy/article/details/88 ...
- CDH6 高版本hbase+solr实现二级索引
之前的环境是单独下载的CDH组件包搭建的集群,但是因为hadoop版本过低导致漏洞无法修复,重新搭建高版本集群环境. 新集群环境: 主要组件:hadoop,hbase,zookeeper,Key-Va ...
- JavaScript事件坐标区别(offset,client,page)
学习笔记. 1. offset:其定位原点是当前元素左上角 2. client:其定位原点是当前窗口左上角 3. page:其定位原点是当前页面左上角 下面来验证一下. 先上代码: <!doct ...
- 使用脚手架 vue-cli 4.0以上版本创建vue项目
1. 什么是 Vue CLI 如果你只是简单写几个Vue的Demo程序, 那么你不需要Vue CLI:如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI. 使用Vue.js开发大型应 ...
- 启动独立的tomcat服务器,没有自动创建ServletContext,对Context生命周期的监听失败
1.可能web.xml文件里对ContextListener没有进行配置 2.web.xml文件有关对ContextListener的配置,出现了错误的单词拼写问题 比如 <listener&g ...
- Istio Gateway网关
Istio Ingress Gateway Istio 服务网格中的网关 使用网关为网格来管理入站和出站流量,可以让用户指定要进入或离开网格的流量. 使用网关为网格来管理入站和出站流量,可以让用户指定 ...
- 微信小程序开发 -- 通过云函数下载任意文件
微信小程序开发 -- 通过云函数下载任意文件 1.云开发介绍 微信小程序开发者众所周知,小程序开发拥有许多限制,当我还是一个菜鸟入门的时候,第一关就卡在了没有备案域名的HTTP请求上面,那时候云开 ...
- linux-offen-used-commands
文件系统 cd 进入目录 ls 列出目录信息,ls -al (或 ll)列出详细信息 touch 新建文件 mkdir 新建目录 rm 删除文件或目录 cp 复制 mv 移动(或重命名) 搜索.查找. ...
- 百度地图结合ECharts实现复杂覆盖物(Overlay)
先来看效果图 一 前置知识 官方Overlay-覆盖物的抽象基类 方法 返回值 描述 initialize(map: Map) HTMLElement 抽象方法,用于初始化覆盖物,当调用map.add ...
- [PHP学习教程 - 文件]001.高速读写大数据“二进制”文件,不必申请大内存(Byte Block)
引言:读写大“二进制”文件,不必申请很大内存(fopen.fread.fwrite.fclose)!做到开源节流,提高速度! 每天告诉自己一次,『我真的很不错』.... 加速读写大文件,在实际工作过程 ...