您的位置:首页 > 其它

Ubuntu16.04+gcc5.4+g++5.4+ROS运行kinect

2018-01-31 13:22 429 查看
Ubuntu16.04+gcc5.4+g++5.4+ROS运行kinect
一、libfreenect2驱动安装:

1. 下载libfreenect2 驱动

 git clone https://github.com/OpenKinect/libfreenect2.git

 cd libfreenect2

2. 下载升级deb文件

 cd depends

 ./download_debs_trusty.sh

3. 下载工具

 sudo apt-get install build-essential cmake pkg-config

4. 安装libusb

 sudo apt-add-repository ppa:floe/libusb

 sudo apt-get update

 sudo apt-get install libusb-1.0-0-dev

5. 安装TurboJPEG

 sudo apt-get install libturbojpeg libjpeg-turbo8-dev

6. 安装OpenGL

 sudo dpkg -i debs/libglfw3*deb; sudo apt-get install -f; sudo apt-get install libgl1-mesa-dri-lts-vivid freeglut3-dev libxrandr-dev libxi-dev

7. 安装openni2(可选)

 sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2

8. 编译libfreenect2

 cd ..

 mkdir build && cd build

 cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2

 make

 sudo make install



假如你把这个libfreenect2的包直接gitclone到了工作空间下的src里边,要注意新建的build不是在catkin_kinect下边,跟src在同一级目录下的build是catkin_make生成的,现在新建的这个build是在git的libfreenect2下边新建的

假如说之前cmake的时候路径不是$HOME/freenect2的话,可以使用下边的命令指定路径

catkin_make -Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2 -DCMAKE_BUILD_TYPE="Release"

9. 获得设备udev权限

 sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

10. 测试驱动是否安装好

 sudo chmod +x ./bin/Protonect

 ./bin/Protonect



或者分别执行

 ./bin/Protonect cpu

 ./bin/Protonect gl

 ./bin/Protonect cl

 

二、iai_kinect2安装(ROS):

1. iai_kinect2安装

https://github.com/code-iai/iai_kinect2

默认前提已经装好ROS,我用是的Ubuntu16.04,ROS是Kinetic版的

 cd ~/catkin_kinect/src/

 git clone https://github.com/code-iai/iai_kinect2.git

 cd iai_kinect2

 rosdep install -r --from-paths .    (注意最后边的 . )

 cd ~/catkin_kinect

 catkin_make -DCMAKE_BUILD_TYPE="Release"

在rosdep install这一步出现cannot find的问题,然后经查阅,这个问题好像是正常的,没有什么影响



2. 测试(USB3.0)

先source一下devel/setuo.zsh (博主用的zsh)

 roslaunch kinect2_bridge kinect2_bridge.launch

然后重新开一个新的终端

 rosrun kinect2_viewer kinect2_viewer





三、遇到的错误

1.直接git clone 的iai_kinect到了src下然后catkin_make,出错显示缺少库



然后apt-get到了只是freenect,没有2,于是去github上找,后来查阅才找libfreenect这个库

2.由于之前装cuda的时候,有的教程说需要对gcc和g++进行降级,不支持5.0+的版本,于是乎就降到了4.9版本,然后在对iai_kinect包进行catkin_make的时候,出现出错,对ros库的未定义引用



查了好多地方,也给出了几种解决方案,但是对我这个错误均无用。

然后想到了去之前的工作空间也catkin_make一下,果不其然,同样的错误,所以怀疑是当时对gcc降级的原因,然后把个gcc和g++的版本升回了5.4,在对其编译,问题解决了。

如何对gcc和g++版本进行调整选择,请看我的另一篇博文

参考文章
http://blog.csdn.net/Lottie_yx/article/details/78360852 https://www.cnblogs.com/kunyuanjushi/p/5204436.html http://blog.csdn.net/sunbibei/article/details/51594824 http://blog.csdn.net/lvchunlin1996/article/details/78302791
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kinect ROS