Advertisement

在ubuntu16.04+ROS下安装Kinect V2驱动

阅读量:

在ubuntu16.04下安装Kinect V2驱动

创建工作空间

由于我是将这个驱动安装在工作空间下的,因此首先就需要创建一个工作空间:
详细的可以去查找资料,这就把全部过程代码放上就是了

复制代码
    mkdir  -p ~/catkin_ws/drive/src
    cd catkin_ws/drive/src/
    catkin_init_workspace 
    cd ..
    catkin_make
    sudo gedit ~/.bashrc
    最后一行添加:source ~/catkin_ws/drive/devel/setup.bash
    source ~/.bashrc

安装驱动

该部分是根据github上的资料整理得来,可以需要看完整版本的可以通过这个进入git去查看
以下是整理的在ubuntu16.04的环境下安装的指令

复制代码
    cd ~/catkin_ws/drive/src
    git clone https://github.com/OpenKinect/libfreenect2.git
    cd libfreenect2
    sudo apt-get install build-essential cmake pkg-config
    sudo apt-get install libusb-1.0-0-dev
    sudo apt-get install libturbojpeg libjpeg-turbo8-dev
    sudo apt-get install libglfw3-dev
    mkdir build && cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
    make
    make install

若是想用第三方的程序来查找使用libfreenect2的话需要执行下列指令:

复制代码
    cmake -Dfreenect2_DIR=$HOME/freenect2/lib/cmake/freenect2

然后设置运行规则

复制代码
    sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

测试

连接好kinect,运行下列命令进行测试

复制代码
    sudo ./bin/Protonect

注意这条指令需要以超级用户的权限运行(官网没说,害得找问题找了半天),如果不以该方式运行,直接运行./bin/Protonect指令,则会报错如下:

复制代码
    ~/catkin_ws/drive/src/libfreenect2/build$ ./bin/Protonect
    Version: 0.2.0
    Environment variables: LOGFILE=<protonect.log>
    Usage: ./bin/Protonect [-gpu=<id>] [gl | cl | clkde | cuda | cudakde | cpu] [<device serial>]
        [-noviewer] [-norgb | -nodepth] [-help] [-version]
        [-frames <number of frames to process>]
    To pause and unpause: pkill -USR1 Protonect
    [Info] [Freenect2Impl] enumerating devices...
    [Info] [Freenect2Impl] 8 usb devices connected
    [Error] [Freenect2Impl] failed to open Kinect v2: @3:3 LIBUSB_ERROR_ACCESS Access denied (insufficient permissions)
    [Info] [Freenect2Impl] found 0 devices
    no device connected!

但是每次都这么使用root权限启动,会很麻烦,而且在后面使用设备的时候会经常出错。
通过分析是由于ubuntu下,对于硬件设备的读取都需要root权限。因此可以考虑将该设备的USB口的权限赋予最大。实际实现过程如下:
首先进入之前操作过程中添加的设备启动规则文件中去:

复制代码
    cd /etc/udev/rules.d/

然后修改90-kinect2.rules文件中的USB接口的权限(MODE)为最高权限0777,然后保存,重新插上USB接头就可以了。以后就不用使用root权限启动了。

测试结果:
在这里插入图片描述

安装与ROS的接口工具与库

该部分即安装iai-kinect2包,可以参考github上的readme。为的是使在ROS上方便使用,这是kinect2与ROS的接口。

安装IAI Kinect2

执行代码如下:

复制代码
    cd ~/catkin_ws/src/
    git clone https://github.com/code-iai/iai_kinect2.git
    cd iai_kinect2
    rosdep install -r --from-paths .
    cd ~/catkin_ws
    catkin_make -DCMAKE_BUILD_TYPE="Release"

而在执行rosdep install -r --from-paths .该代码的时候常常会出现以下报错
注意 :该命令最后有个点 “ . ”。

复制代码
    ~/catkin_ws/drive/src/iai_kinect2$ rosdep install -r --from-paths .
    ERROR: the following packages/stacks could not have their rosdep keys resolved
    to system dependencies:
    kinect2_viewer: Cannot locate rosdep definition for [kinect2_bridge]
    iai_kinect2: Cannot locate rosdep definition for [kinect2_registration]
    kinect2_calibration: Cannot locate rosdep definition for [kinect2_bridge]
    kinect2_bridge: Cannot locate rosdep definition for [kinect2_registration]
    Continuing to install resolvable dependencies...
    #All required rosdeps installed successfully

只要把该命令更换为以下命令就可以了

复制代码
    rosdep install --from-paths ~/catkin_ws/drive/src/iai_kinect2 --ignore-src -r

最后运行下列指令就可以看到图像了:

复制代码
    roslaunch kinect2_bridge kinect2_bridge.launch
    rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~