参考教程:主参考链接
在使用ros + kinect2过程中,遇到了各种各样的怪问题,谨以此博文供后来者少走点弯路~
友情提示:在我重装过多次ubuntu16和ros之后,发现这是一个艰辛的路,首先kinect2基本上停产了,国人也不多,能找到的资料就比较散,目前找到的一些标注为ubuntu16.04的要么是假的16,要么就是没有提及opencv的版本。
关于opencv版本的问题,github上有现成的解释,我当时没认真看,就知道在百度上瞎找~
它可以与OpenCV 3.0一起使用吗?
简单说:不。
详细回答:是的,可以用OpenCV 3.0编译这个包,但它不起作用。这是因为使用了cv_bridge,它本身是在ROS Indigo / Jade中用OpenCV 2.4.x编译的,并且不可能与两个OpenCV版本链接。OpenCV 3.0的工作支持可能与未来的ROS版本一起提供。
所以建议大家先在谷歌浏览器,打开https://github.com/code-iai/iai_kinect2
好好看看~常见的错误都有解释~
所以推荐大家直接卸载ubuntu16.04,重新安装ubuntu14.04,注意下面的问题,基本上就可以一次点亮~
第一个问题:假设你的系统是ubuntu16.04,按照上面教程里的步骤,在安装ros的过程中,你无法
sudo apt-get install ros-indigo-desktop-full
因为16只能安装这个版本:
sudo apt-get install ros-kinetic-desktop-full
第二个问题:在libfreenect2之前,主参考链接里没有提示——默认安装opencv!这个真是特别坑啊!
明明lsusb可以看到设备,但是./bin/Protoonect就是找不到设备,关键是不会报错,我都以为是我的相机坏了~
后来不死心,又重新找了一个教程,发现了其中细微的差别~
第三个问题:假设我们已经可以调用./bin/Protoonect,看到这张图——
但是无法编译下面这句话——
catkin_make -DCMAKE_BUILD_TYPE="Release"
提示什么j8-m8什么错误,然后往上翻看可以发现错误在于ros的opencv无法读取,应该是ros内部opencv版本的问题,应该将3.1的换成2.4.9的。但是这个问题以我简陋的ros知识是无法解决的,查看了一下教程,提供了一些安装opencv的方法,但是试过几次都无法成功,对我来说,这又是一条死路~
最后忠告:所以说还是换成ubuntu14.04版本的吧,一次性点亮,轻轻松松,第二篇博客介绍如何对kinect2中的图片,利用opencv进行简单的处理。
小技巧:在你编译完iai之后,你最好将路径写到bashrc文件中,这样就不用每次调用roslaunch 都先source一下路径了。
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
这样你就可以直接这样:
roslaunch kinect2_bridge kinect2_bridge.launch