Ubuntu16.04 配置kinect2 python接口

以下的操作是在一个全新安装的Ubuntu 16.04系统上进行的,目前已知在安装了ROS的系统上并且已经安装过ROS版本的Kinect V2驱动的,可能需要先移除以前安装的面向ROS编译的Kinect V2驱动才行。

首先是安装配置驱动程序以及运行依赖库

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo apt-get install python-opencv
$ sudo apt-get install python-dev
$ sudo apt-get install python-pip
$ sudo pip install openni
$ sudo apt-get install git

Download libfreenect2 source

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

 Install build tools

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

Install libusb. The version must be >= 1.0.20. 

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

Install TurboJPEG

sudo apt-get install libturbojpeg libjpeg-turbo8-dev

 Install OpenGL

sudo apt-get install libglfw3-dev

cd to libfreenect2 source path

$ mkdir build && cd build

##如果在安装过ROS的系统上执行,并且已经通过ROS安装过libfreenect2驱动,可能下面的要调整成“cmake .. -DCMAKE_INSTALL_PREFIX=/usr/” 才能成功覆盖已经安装过的文件,路径在usr下,方便寻找,装在home下,可能会导致找不到相关的头文件

eg:

In file included from pyfreenect2.cpp:1:0:
pyfreenect2.hpp:5:41: fatal error: libfreenect2/libfreenect2.hpp: 没有那个文件或目录

这个是我遇到的错,没事,重新安装一下就好

$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/

$ make

$ sudo make install

以上libfreenect的库装好。

安装Python接口

有两个库可以跑,但前提都是依赖libfreenect,一个是pyfreenect,一个是pylibfreenect,如果是python2的可以直接用pyfreenect的库,如果是python3的,最好还是pylibfreenect,因为虽然前者有python3的版本,但是我装上之后运行test只能显示第一帧图像就卡死了。

pyfreenect安装配置方法:

$ cd ~

$ sudo pip install cython

$ sudo pip install numpy

$ git clone https://github.com/remexre/pyfreenect2.git

$ cd pyfreenect2 

$ sudo python setup.py install

$ sudo apt-get install gfortran

$ sudo apt-get install libopenblas-dev

$ sudo apt-get install liblapack-dev

$ sudo pip install scipy 

安装路径自己定,我也不是安装在~目录下的

安装好测试一下:

$ cd ~/pyfreenect2
 
$ python test.py

可能会报错:

Traceback (most recent call last):
  File "test.py", line 66, in <module>
    bgr_frame_resize = scipy.misc.imresize(bgr_frame, size = .5)
AttributeError: 'module' object has no attribute 'imresize'


解决办法:pip install Pillow

 

最终运行成功:

pylibfreenect安装配置方法:

去github上下载pylibfreenect包,然后按照doc里面的安装教程进行安装即可,注意安装之前需要配置的库,比如cython等,安装好之后就可以用了。测验下example里面的例子,如果能跑,就说明配好了

这里除了教程里面的路径需要设置,还有可能遇到一个坑,

[Error] [Freenect2Impl] failed to open Kinect v2: @2:4 LIBUSB_ERROR_ACCESS Access denied (insufficient permissions)
 

提示你的usb权限不够,但是如果你加权限的sudo的话,就会报错:

Traceback (most recent call last):
  File "selective_streams.py", line 8, in <module>
    from pylibfreenect2 import Freenect2, SyncMultiFrameListener
  File "/home/jun/.local/lib/python3.5/site-packages/pylibfreenect2/__init__.py", line 108, in <module>
    from .libfreenect2 import *
ImportError: libfreenect2.so.0.2: cannot open shared object file: No such file or directory
 

这个让我郁闷了一个晚上,我以为是路径没有配置好,后来发现我直接在python里面import Freenect2是没有问题的,最后发现只需要执行一下:

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

就可以了,我记得这个官方的原版教程是有这个的,很奇怪,我之前安装的时候貌似没有执行这一部也过了,所以万事不能以网上的教程为主,还得看官方发布的教程。

 

note:如果你的libfreenect的库是装在home路径下的,那么可能会出现,利用/freenect2Config.cmake找不到库,直接cmake报错:

Please set them or make sure they are set and tested correctly in the CMake files: freenect2_LIBRARY

这样的话,就需要修修改一下freenect2Config.cmake

将里面的usr/local/lib替换成你home路径下的lib路径即可。

 

 

 

 

 

 

参考:

1.libfreenect  https://github.com/OpenKinect/libfreenect2/blob/master/README.md#libfreenect2

2 Kinect V2在Ubuntu 14.04系统上的驱动配置与安装  https://www.mobibrw.com/2017/8321

3 Python报错module 'scipy.misc' has no attribute 'imresize'

https://blog.csdn.net/qq1483661204/article/details/78155073#commentBox

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值