⽆⼈驾驶学习笔记——摄像头雷达联合标定
最近在弄摄像头雷达的联合标定,⼀开始参考的是我师兄的博客,写的⾮常好:
⽆⼈驾驶汽车系统⼊门(⼆⼗⼆)——使⽤Autoware实践激光雷达与摄像机组合标定
王传君是日本人吗
⼤概总结⼀下标定的流程和我踩过的坑吧。
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尺⼨我是歌手第8期
这个好像是我的个⼈问题,它的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
该博客详细列出了下载标定包的流程和⼀些报错解决办法,我就不赘述了。
当我满⼼欢喜的下好了以后,打开Calibration Tool Kit,然后发现苦难⽣活才刚刚开始。(微笑脸)
最开始遇到的问题是:点击grab毫⽆反应。查到是因为识别不出棋盘格,我们拍的视频⾥⾯棋盘格明明那么清晰…Fine,于是⼜录了⼏个,还是没反应!
我开始怀疑⼈⽣了,抱着快要放弃的⼼态⼜录了⼀次,终于!终于截取到帧了!后来思考了⼀下,要么是光线太暗了要么是离的太远了。
很快⼜出现了另⼀个问题:截取到的帧数量太少。有时候⼀段视频只截取到了7、8帧,但是说是最好15帧,我上哪给你15帧去!⿏标都点烂了!没办法,可能是我视频录的太短了(主要视频后半段⼀般都会卡死,激光雷达没有卡死⼀般都是摄像头卡死,但是只要有⼀个卡住了就不能⽤了),但是录太长了我⼜担⼼存储不够。⽬前就将就着标吧。
接着是困扰最久的问题:标定结果太差。我们前后试了差不多5段视频(还不包括废掉⽤不了的)吧,反正标定完以后,点击calibrate,点击project,左下⾓的棋盘格上理应出现红⾊的雷达点云分布。但是,我们要么就是压根啥也没有,要么就是没落在板⼦上。
最好的时候也是难得有⼏张是正常的,但剩下的⼏张⼜不⾏了。
我⼜认真看了看博客,注意到了⼀个细节:
标定板的中⼼位置选择⼀个圆形的区域,尽量保证向外侧的平⾯法向量垂直于标定板平⾯⼜是⼀个⼩细节.jpg
可是,哪个才是向外侧的平⾯法向量呢,我观察了⼀下他博客⾥的图:
图源:
然后⽴马⾃⼰试了⼀下,果然没那么顺利。
按照图⽰,我理解的垂直应该是这样的:
可是这样的话,不就偏离标定板中⼼了吗?可如果我标定在中⼼位置的话,就会变成这样:
我不太明⽩这两根绿线到底应该怎样才是正确的⾓度。
希望有⼤佬能为我指点迷津,感谢。
(本博客持续更新进度)
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.环境光线太暗
入伏是哪一天开始2022太暗了可能识别不出棋盘格,导致截取的帧数不够
2021.7.28 更:
为啥拖更了这么久呢,因为好长⼀段时间没⼼情搞这个。那为什么昨天⼜开始搞了呢,因为……⽼板开始催了啊啊啊啊!
1.⾸先尝试标定摄像头内参。