Ubuntu 18.04 Kinect v2 + iai_kinect2 运行多个Kinect和标定配准的正确姿势

前言

最近项目要使用到Kinect v2。在ubuntu 18.04下使用kinect v2,网上已经有很多教程了,总体来说还是挺简单的。这里我有空再补上了需要的库和安装教程吧。这里目前只补充下几样我觉得比较重要的东西。

iai_kinect2

这个库是一个基于ros运行的库,你可以使用iai_kinect2 连接kinect2,甚至可以连接多个kinect,很多博主说当一个电脑连接多个kinect时候,需要你的连接的这几个usb是属于独立的板子才行,也就是不同的usb bus才行,我没有验证过,反正我用lsusb -v 命令能够读到两个不同kinect串口号,然后打开对应串口的kinect。具体方法可以参考:

https://blog.csdn.net/zqxf123456789/article/details/52530189
https://github.com/code-iai/iai_kinect2/issues/77
https://github.com/code-iai/iai_kinect2/issues/43
https://www.gitmemory.com/issue/code-iai/iai_kinect2/476/490767609

你可以从中找出iai_kinect2运行多个kinect的方法。你可以很方便的运用topic来读取你所需要的数据,甚至进行进一步融合。

运用iai_kinect2进行标定

官方github已经给出方法了,具体可以参考官方教程。

https://gist.github.com/AminaKeldibek/fcd9234c116ad036d655

有些博主说到标定效果很差,而且还有人跟他一样,得到的标定效果不太好。

例如这位:https://blog.csdn.net/hehedadaq/article/details/79559310

一开始我也是按照官方教程,和官方给的几个模板进行标定的,效果非常差,而且在标定depth最后一步时还出现了
No distance sample data!
然后我谷歌了好久,发现需要将棋盘前后两个数在calibrate depth是调换才能解决这个bug也是醉了。

后来我尝试不用官方的板子,我用大的板子,因为官方给的打印出来都是A4纸大小,用官方板子标定时候,走远一点,ir的record就开始角点漂移了,要么然就识别不出来。

当我用更大的板子如4x6x0.05的,结果惊奇发现iai_kinect2 能识别出 chess4x6x0.05,原来并不是只是别在pattern里面存放的标定板,它是可以直接读取命令的。
用大的板子简直不要太舒服了,用大的板子在标定ir相机时候,当你离相机远点,它也能识别角点,而且比较稳定。当calibrate depth时候按照官方步骤也没有出现No distance sample data的bug。在标定sync的时候,一定要在不同的距离标定。

还有,我并没有按照官方每次拍100张图片,我只是每组拍了50张,当我标定完成的时候,惊奇的发现标定效果还不错!
Restart the kinect2_bridge and be amazed at the better data!!!

所以大家用iai_kinect2 进行标定的时候一定一定要用大大大的板子!!!

这位博主的博客描述了标定后数据的理解,大家可以看一下:

https://blog.csdn.net/qq_40234695/article/details/100142356

PS: 希望大家少踩雷吧。还有可能实验室会来一批azure kinect,到时候学习之后,分享经验给大家。

你可能感兴趣的:(Ubuntu 18.04 Kinect v2 + iai_kinect2 运行多个Kinect和标定配准的正确姿势)