最近在弄摄像头雷达的联合标定,一开始参考的是我师兄的博客,写的非常好:
无人驾驶汽车系统入门(二十二)——使用Autoware实践激光雷达与摄像机组合标定
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/AdamShan/article/details/81670732
大概总结一下标定的流程和我踩过的坑吧。
既然用的autoware那就先下载autoware咯。
这个过程我记得也挺痛苦的,途中报了不少错,最后好像是在gitee下的。另外我是用的虚拟机,跟双系统的安装还不太一样。而且很多东西虚拟机是不适用的,比如说cuda和eigen,不过这两个似乎在标定过程用不上。
不管怎样最后还是安好了。顺便说一下我的虚拟机是Ubuntu18.04的环境。
当时参考了很多博客,这里就不列举了。
(后来我师弟也要安装autoware,也是各种问题,气的血压上来砸桌子2333)
这个环节也是巨多问题,什么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至今无法正常打开),那就换亿台电脑吧。
这部分还算顺利。
要注意的是一定要下好对应的驱动,我们的小车用的是Velodyne的雷达,当时下好了以后,打开rviz,发现:诶,好像有点不对劲,点云虽然能显示出来但是断断续续的。
后来才发现,我们是32线的但我用的16线的launch文件。。
当你确认设备没问题了以后,准备好标定板,就可以开始录制了。录制的流程其实不复杂:
- 启动Autoware,打开ROSBAG,Autoware下用来录包的一个工具
- 勾选usb_cam/image_raw和/velodny_points两个话题
- start启动
- 录制,保存(我保存的位置在autoware.ai/install/runtime_manager/share/runtime_manager/scripts/autowarexxxx.bag)
我给虚拟机分了12g内存,8核处理器,然并卵,录制的过程还是很卡,没有一次是顺畅的录完的。 而且录个短短十几秒就1、2个G了。。我还一度因为录了太多导致我存储空间不足无法正常开机。。
当你录好了包以后,就可以开始标定工作了。这也是我认为最最最痛苦的过程。而且我目前还卡在这里没有进展。
之前说一开始参考我师兄的博客,为什么说是“一开始”,因为看到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
可是,哪个才是向外侧的平面法向量呢,我观察了一下他博客里的图:
然后立马自己试了一下,果然没那么顺利。
按照图示,我理解的垂直应该是这样的:
可是这样的话,不就偏离标定板中心了吗?可如果我标定在中心位置的话,就会变成这样:
我不太明白这两根绿线到底应该怎样才是正确的角度。
希望有大佬能为我指点迷津,感谢。
(本博客持续更新进度)
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!
虽然,还是有那么几张不太理想,但是我觉得能做到大部分合理就行了,我们已经尽力了。
这是我们的标定结果:
至此,痛苦的标定总算完了。