最近在弄摄像头雷达的联合标定,一开始参考的是我师兄的博客,写的非常好:

无人驾驶汽车系统入门(二十二)——使用Autoware实践激光雷达与摄像机组合标定

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/AdamShan/article/details/81670732

大概总结一下标定的流程和我踩过的坑吧。

1.安装autoware

既然用的autoware那就先下载autoware咯。

这个过程我记得也挺痛苦的,途中报了不少错,最后好像是在gitee下的。另外我是用的虚拟机,跟双系统的安装还不太一样。而且很多东西虚拟机是不适用的,比如说cuda和eigen,不过这两个似乎在标定过程用不上。

不管怎样最后还是安好了。顺便说一下我的虚拟机是Ubuntu18.04的环境。

当时参考了很多博客,这里就不列举了。

(后来我师弟也要安装autoware,也是各种问题,气的血压上来砸桌子2333)

2.调试外接摄像头

这个环节也是巨多问题,什么timeout,process died…这两行字现在看着就想吐。

首先搜索ubuntu外接摄像头等关键字,相信不管怎样你最后都会回到一个叫:usb_cam-develop的包,我当时是在git下载的。(什么?你问我怎么知道?别问,问就是下了无数次…)

这里有几个细节:

1./dev/video*

*是几,自己查(插拔对比),我的是0:

ls /dev/video*

哦,如果你发现你只能调出笔记本的内置摄像头,多半是没有在“虚拟机-可移动设备”里面开启外接摄像头。准确来说,是它没有接入虚拟机,而是接入的windows系统。

2.Usb 3.0和接口问题

我的虚拟机可以在usb兼容性里面设置成usb3.1,双系统的我目前没有找到在哪设置。

还有很迷惑的是我发现不管是笔记本还是台式,它的几个插口还真的不一样,比如我的笔记本插左边就可以,右边就不行…反正每个插口都试一下吧。

3.image尺寸

这个好像是我的个人问题,它的launch文件设置的图片原尺寸好像是640x480?忘记了。但是我的图像显示出来以后,是灰色的。当时困惑了好久,网上也没有找到解决办法。

最后无聊试着改成了1920x1080,然后就好了。。真的很无语。

如果你尝试了所有方法仍然无法正常开启(我师弟就这么惨2333至今无法正常打开),那就换亿台电脑吧。

3.调试激光雷达

这部分还算顺利。

要注意的是一定要下好对应的驱动,我们的小车用的是Velodyne的雷达,当时下好了以后,打开rviz,发现:诶,好像有点不对劲,点云虽然能显示出来但是断断续续的。

后来才发现,我们是32线的但我用的16线的launch文件。。

4.录制标定包

当你确认设备没问题了以后,准备好标定板,就可以开始录制了。录制的流程其实不复杂:

  1. 启动Autoware,打开ROSBAG,Autoware下用来录包的一个工具
  2. 勾选usb_cam/image_raw和/velodny_points两个话题
  3. start启动
  4. 录制,保存(我保存的位置在autoware.ai/install/runtime_manager/share/runtime_manager/scripts/autowarexxxx.bag)

我给虚拟机分了12g内存,8核处理器,然并卵,录制的过程还是很卡,没有一次是顺畅的录完的。 而且录个短短十几秒就1、2个G了。。我还一度因为录了太多导致我存储空间不足无法正常开机。。

5.使用Calibration Tool Kit标定

当你录好了包以后,就可以开始标定工作了。这也是我认为最最最痛苦的过程。而且我目前还卡在这里没有进展。

之前说一开始参考我师兄的博客,为什么说是“一开始”,因为看到Calibration Tool Kit这里,我在autoware界面怎么也找不到,后来查到是因为autoware版本高了以后就没有自带标定工具了…

于是又参考了另一篇博客,同样非常感谢:

【Autoware】激光雷达-摄像头联合标定1- Calibration Tool Kit

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

该博客详细列出了下载标定包的流程和一些报错解决办法,我就不赘述了。

当我满心欢喜的下好了以后,打开Calibration Tool Kit,然后发现苦难生活才刚刚开始。(微笑脸)

最开始遇到的问题是:点击grab毫无反应。查到是因为识别不出棋盘格,我们拍的视频里面棋盘格明明那么清晰…Fine,于是又录了几个,还是没反应!

我开始怀疑人生了,抱着快要放弃的心态又录了一次,终于!终于截取到帧了!后来思考了一下,要么是光线太暗了要么是离的太远了。

很快又出现了另一个问题:截取到的帧数量太少。有时候一段视频只截取到了7、8帧,但是说是最好15帧,我上哪给你找15帧去!鼠标都点烂了!没办法,可能是我视频录的太短了(主要视频后半段一般都会卡死,激光雷达没有卡死一般都是摄像头卡死,但是只要有一个卡住了就不能用了),但是录太长了我又担心存储不够。目前就将就着标吧。

接着是困扰最久的问题:标定结果太差。我们前后试了差不多5段视频(还不包括废掉用不了的)吧,反正标定完以后,点击calibrate,点击project,左下角的棋盘格上理应出现红色的雷达点云分布。但是,我们要么就是压根啥也没有,要么就是没落在板子上。

最好的时候也是难得有几张是正常的,但剩下的几张又不行了。

我又认真看了看博客,注意到了一个细节:

标定板的中心位置选择一个圆形的区域,尽量保证向外侧的平面法向量垂直于标定板平面

又是一个小细节.jpg

可是,哪个才是向外侧的平面法向量呢,我观察了一下他博客里的图:

图源: 【Autoware】激光雷达-摄像头联合标定1- Calibration Tool Kit - 简书

然后立马自己试了一下,果然没那么顺利。

按照图示,我理解的垂直应该是这样的:

可是这样的话,不就偏离标定板中心了吗?可如果我标定在中心位置的话,就会变成这样:

我不太明白这两根绿线到底应该怎样才是正确的角度。

希望有大佬能为我指点迷津,感谢。

(本博客持续更新进度)


2021.7.15更:

叒心血来潮标了一次,好不容易截取到了11帧,标定结果为:6帧无点云,5帧的点云长这样:

或者这样:

为什么点云分布这么奇怪?到底哪里出问题了。。

刚刚去油管找了一个视频看,人家就很随意的标了然后就可以了…我们标的这么细心都不行,无语。


2021.7.15二更:

和师兄讨论了一下,想到了一些问题和改进方案:

1.录制的包是否过大

师兄说十几秒的bag不应该有1、2个G,但查看了一下topic list,确实只录了2个主要的topic:

考虑了可能是1080p的画质过高,尝试调低画质为720p,但是一调低画面就会出现重影(鬼影重重):

不清楚是不是autoware的问题,下次不启动autoware直接用命令来录制试试吧。

2.相机内参未标定

上文提到的博客有写:

source /home/autoware/Autoware/install/setup.bash
#使用autoware自带的相机内参标定工具cameracalibrator.py
rosrun  autoware_camera_lidar_calibrator cameracalibrator.py --square 0.092 --size 6x8 image:=/usb_cam/image_raw camera:=/usb_cam

根据自己的标定板修改一下参数。

3.环境光线太暗

太暗了可能识别不出棋盘格,导致截取的帧数不够


2021.7.28 更:

为啥拖更了这么久呢,因为好长一段时间没心情搞这个。那为什么昨天又开始搞了呢,因为……老板开始催了啊啊啊啊!

1.首先尝试标定摄像头内参

根据博客提到的方法,我们进行到了下面这一步:

图源: 单目摄像头的内外参标定_火种源码的博客-CSDN博客

众所周知,如果你觉得一切顺利的时候那么很可能就会出问题。

在点击“calibrate”按钮之前你必须使右上角的四个参数都变成绿色才行。

通过晃动棋盘格使得右边的Calibrate按钮变绿。把棋盘格拿到相机前,看到棋盘格上有了mark并且右上方出现了四个滑动条类似的东西,分别表示X、Y、尺度与俯仰,根据提示哪一个自由度完成度不足来移动棋盘格。

下面两个比较容易,但是X和Y,不知道它是怎么判断的,反正我们两个人当时你换我,我换你,轮流拿着标定板晃来晃去,走来走去(真的很zz)。最后,我搞定了Y,师弟搞定了X。。可能这就是玄学吧。

不管怎样,我们最后的标定结果是这样的:

哦对了,别忘了把文件后缀.yaml改成.yml,待会load的时候会用到。

2.录制rosbag

嗯,老问题,光线不足+卡顿。

因为是阴天,所以光线更暗了,而且录的时候还是卡的不行。

我们也尝试单独通过rosbag record命令去录制,发现文件大小还是一样大,没啥区别。

3.grab

老样子,grab不到多少有用的帧,没事,都习惯了。

目前想到的解决办法:换个双系统的笔记本录bag试试,希望可以避免卡顿。

另外购买了我师兄的新博客:

自动驾驶系统进阶与项目实战(一)激光雷达-相机外参自动化标定算法及项目实战

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/AdamShan/article/details/105736726


2021.7.30更:

今天再次尝试老方法,这次加上了内参.yml文件,出现了一个奇怪的问题:

原本在这个雷达正视图上是可以点击的(红色圆圈),但现在不行了

但现在只能按1之后再点击,然后按2切换回来看:

我也不知道怎么形容,反正很怪就是了…

然后发现当我标定5张左右,project点云图的分布还可以,但当我增加标定数量到10张左右的时候,点云反而没有了。

我们决定下周在室外录制一次视频试试。


2021.8.5 更

更换了师兄的ThinkPad,录起来一点也不卡…好吧,果然是设备问题。

这次我们把车放到了室外,一口气录了三个40秒的bag。

然后一口气grab了20帧,尝试了两次以后,终于:

OHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!

虽然,还是有那么几张不太理想,但是我觉得能做到大部分合理就行了,我们已经尽力了。

这是我们的标定结果:

至此,痛苦的标定总算完了。

无人驾驶学习笔记——摄像头雷达联合标定相关推荐

  1. 【camera-radar】相机-毫米波雷达联合标定方案介绍+实现

    [camera-radar]相机-毫米波雷达联合标定方案介绍+实现代 代码下载地址:下载地址 部分代码: #include "typedef.h" #include <ope ...

  2. 物联网外设学习笔记-摄像头(一)

    物联网外设学习笔记-摄像头(一) Camera 简介 摄像头(CAMERA)又称为电脑相机.电脑眼等,它作为一种视频输入设备,在过去被广泛的运用于视频会议.远程医疗及实时监控等方面.近年以来,随着互联 ...

  3. 无人驾驶学习笔记--路径规划(二)【Dubins曲线和Reeds-Shepp曲线】

    路径规划(二) -- Dubins曲线和Reeds-Shepp曲线 I. Dubins 曲线 1. 基本理论 2. 曲线计算 2.1 坐标转换 2.2 LSL 2.3 LRL 2.4 RSR 2.5 ...

  4. Tableau学习笔记①②(雷达图、凹凸图)

    一.雷达图 雷达图主要是用来进行多个维度的比较和分析. 1. 数据表处理 步骤: 原始数据: 在Excel表中是有两个进攻能力的,但是在导入Tableau时,为了区分方便,自动转换成上图所示. Exc ...

  5. RPG黑暗之光学习笔记 摄像头设置

    using System.Collections; using System.Collections.Generic; using UnityEngine;public class CamFolRol ...

  6. 车载前置摄像头学习笔记 ———— 摄像头输出数据格式(JPEG)

    文章目录 介绍 类型 标准JPEG 渐进式JPEG JPEG2000 压缩类型 顺序式编码(SequentialEncoding) 递增式编码(ProgressiveEncoding) 无失真编码(L ...

  7. 1. 相机标定原理(学习笔记)

    相机标定(Camera Calibration)-学习笔记 文章目录 相机标定(Camera Calibration)-学习笔记 一.简介 二.原理 1. 坐标系 *coordinates* 2. 相 ...

  8. 书评学习笔记《自动驾驶汽车环境感知》

    随笔 我读这本书是希望能对自动驾驶感知有一个框架式的了解. 优点: 专门介绍感知的书很少,这本书填补了这一块空白.做到了对感知有一个全方位的介绍.追求更详细的感觉可以直接看论文. 编排结构合理. 成书 ...

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

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

最新文章

  1. 编译GCC4.8.2
  2. Hadoop1 Centos伪分布式部署
  3. 009_Redis的事物
  4. 成功解决TypeError: take() got an unexpected keyword argument ‘fill_value‘
  5. pycharm2017.2.1中的修改工程文见列表的名字的字体大小以及文件列表的背景颜色
  6. jenkins X 和k8s CI/CD
  7. Android Volley教程
  8. ROS的学习(五)在工作空间中构建和使用catkin包
  9. Mac 10.12安装迅雷2.7.2
  10. elasticsearch6.x.x logstash6.x.x kibana6.x.x Filebeat6.x 配置及安装 CentOS7.3或更高
  11. 计算机工程 学什么,依然很火的计算机工程专业学什么?
  12. js读取服务器xml文件,js读取XML文件 JS读写XML文件
  13. 中介管理系统php源代码,PHP房产中介管理系统小程序源码8.0.5 后台+前端
  14. DIV+CSS图片和文字如何显示同一行
  15. 计算机切换到桌面,电脑桌面切换软件 电脑桌面快速切换
  16. [unreal] 切换关卡
  17. PHP微信公众号开发接口封装
  18. pdo mysql 教程_PDO入门教程
  19. 【LaTeX】子图和图片并排
  20. 可视化分析工具Qlik进阶

热门文章

  1. 微信小程序wxml如何判断字符串中汉语某字符_程序设计基础
  2. 全程免费 - 挖矿转录组学大数据,中科院胡松年、方向东等开讲
  3. 基于Asterisk的VoIP开发指南…
  4. PLC与单片机的区别
  5. go语言01SDK、GoLand开发工具下载和安装
  6. java修改成绩_javaweb修改数学成绩
  7. 关于PLC的结构和工作原理
  8. 使用matlab进行数据标准化的两种方法
  9. Unity 安卓环境下保持设备屏幕唤醒
  10. 实训项目:基于Springboot框架开发的知识库系统