Kinect on Ubuntu with OpenNI2.2

接上文KinectV2+Ubuntu 14.04+Ros 安装教程本文考虑的是KinectV1的情况

 


安装

首先安装依赖项

sudo apt-get install g++

sudo apt-get install cmake cmake-gui

sudo apt-get install doxygen

sudo apt-get install mpi-default-dev openmpi-bin openmpi-common

sudo apt-get install libflann1 libflann-dev

sudo apt-get install libeigen3-dev

sudo apt-get install libboost-all-dev

sudo apt-get install libvtk5.8-qt4 libvtk5.8 libvtk5-dev

sudo apt-get install libqhull*

sudo apt-get install libusb-dev

sudo apt-get install libgtest-dev

sudo apt-get install git-core freeglut3-dev pkg-config

sudo apt-get install build-essential libxmu-dev libxi-dev

sudo apt-get install libusb-1.0-0-dev graphviz mono-complete

sudo apt-get install qt-sdk openjdk-7-jdk openjdk-7-jre

然后下载安装Kinect1的破解驱动,分为两部分。OpenNI和SensorKinect

首先安装OpenNI

mkdir ~/kinect

cd ~/kinect

git clone https://github.com/OpenNI/OpenNI.git

cd OpenNI

git checkout unstable

cd Platform/Linux/CreateRedist/

chmod +x RedistMaker

./RedistMaker

cd ../Redist/OpenNI-Bin-Dev-Linux-x64-v1.5.8.5

sudo ./install.sh

然后安装SensorKinect

cd ~/kinect/

git clone https://github.com/ph4m/SensorKinect.git

cd SensorKinect

git checkout unstable

cd Platform/Linux/CreateRedist/

chmod +x RedistMaker

./RedistMaker

cd ../Redist/Sensor-Bin-Linux-x64-v5.1.2.1/

chmod +x install.sh

sudo ./install.sh

sudo sh ./install.sh


  • ROS:kinect-on-ubuntu-with-openni(ASUS Xtion Por Live)

    参考:古月居的博客

    1.安装

    wikiROS官方提供的安装方法:(openni_camera)

    http://www.20papercups.net/programming/kinect-on-ubuntu-with-openni/

    方法二:

    sudo apt-get install ros-indigo-openni-camera

    sudo apt-get install ros-indigo-openni-launch

    lsusb | grep ASUS

    2.图像显示

     

    运行以下节点:

     

    roslaunch openni_launch openni.launch camera:=camera depth_registration:=true load_driver:=true publish_tf:=true

     

    rosrun image_view image_view image:=/camera/rgb/image_color

     

    查看话题的消息类型:rostopic type /camera/rgb/image_color

     

    我们可以使用如下的命令来查看节点之间发送的图像消息是什么样的:

     

    rostopic echo /camera/rgb/image_color

     

    然后就会看到数据刷刷的在显示,有没有感觉看不清楚,我们使用终端的重定向功能将数据全部存储到文件中:

     

    rostopic echo /camera/rgb/image_color > test

     

     

    或者

    rosrun rviz rviz

     

    然后修改“Fixed Frame”/camera_rgb_color,修改“Target Frame”<Fixed Frame>,接着点击add,选择camera类型。添加成功后选择camera菜单下的Iamge Topic选项,选择/camera/rgb/image_color,确定后下面的显示框内就显示图像了。

     

    .深度显示

     

    运行以下节点:

     

    roslaunch openni_launch openni.launch

     

    rosrun image_view disparity_view image:=/camera/depth/disparity 

    或者

     

    rosrun rviz rviz

  • OpenNI-Linux-x64-2.2 安装:

    Openni2:从官网下载linux用zip压缩包,解压再解压
    终端转到解压目录下,找到install.sh文件,执行
    $sudo ./ install.sh

    执行后,生成OpenNIDevEnvironment文件,再执行
    $cat OpenNIDevEnvironment >> ~/.bashrc

    这样就把解压文件夹下的Include和Redist路径分别添加给了 环境变量OPENNI2_INCLUDE和OPENNI2_REDIST(需要重启,之后可以用echo指令查看)

    ……总之和常用的cmake,make, sudo make install流程完全不同,是非常手工的安装方式--b
  • . OpenNI2 的安装

       我把下载的openn2放在了home文件夹下,下载的网页网上很多,安装过程很简单:

    cd OpenNI2.2-Linux-x86

    然后运行install.sh   

    sudo  ./install.sh

    生成的环境变量拷到.bashrc 

    cd  ~

    sudo gedit .bashrc

    copy进去之后保存退出就ok了。至此完成了OpenNI2的安装。

    然后是usbrules修改,其实freenect自带的有一个,在libfreenect/platform/linux/udev/51-kinect.rules 直接拷到  etc/udev/rules.d/下,没有找到的话在etc/udev/rules.d 下新建一个51-kienct.rules,把以下内容考进去:

    UBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02b0", MODE:="0666"

    SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ad", MODE:="0666"

    SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02ae", MODE:="0666"

    SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02c2", MODE:="0666"

    SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02be", MODE:="0666"

    SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02bf", MODE:="0666"

    保存退出就好了,到现在还剩下最后一步:把freenect驱动拷进来,参数 –L 要记得

    cp -L ${HOME}/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so   OpenNI-Linux-x86-2.2/Redist/OpenNI2/Drivers

    如果要使用里面的例程 记得拷到Tools下,如下

    cp -L ${HOME}/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so   OpenNI-Linux-x86-2.2/Tools/OpenNI2/Drivers

    至此完成了所有步骤,如果顺利的话,NiViewer是可以运行的,我在第一次安装的时候是不成功的,具体原因是插上kinect后 ,使用lsusb查看的时候没有Xbot Camera 只有另外两个Motor Audio,换了一台电脑就好了,具体原因我也没该清楚,希望能够得到大家的帮助,把这个疑惑解开。所以插上kinect后,使用lsusb命令查看确保有以下三个:

    Xbot camera

    Xbot motor

    Xbot audio

    如果没有的话,检查一下是不是2.0端口,或者反复多插拔几次,这些只是经验,希望对大家有用。都有的话,运行以下命令

    cd  OpenNI-Linux-x86-2.2/Tools 

    ./NiViewer

    会出现rgb和深度图,错误的话会出现opendevice failed

    3NiTE的安装

    过程很简单,还是把安装包拷到home文件夹下,运行install.sh,拷贝环境变量到.bashrc中,拷贝libfreenectDriver.so NiTE-2.0.0/Samples/Bin/OpenNI2/Drivers

    cp  ${HOME}/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.so   NiTE-2.0.0/Samples/Bin/OpenNI2/Drivers,

    然后关键的一步,我当时运行UserViewer也是打不开设备,所以才想到这一步的,cdNiTE-2.0.0/Samples/Bin/下,看到有一个libOpenNI2.so,这是安装包自带的一个当然不行,于是我把OpenNI-Linux-x86-2.2/Redist下的libopenNI.so考过来replace掉原来的那个文件,在进到NiTE-2.0.0/Samples/Bin/下跑UserViewer时出现了想要的深度图,在前面移动一下还有Tracking的标签。


    然后是 libfreenect,下载:https://github.com/OpenKinect/libfreenect
    其实OpenNI2-FreenectDriver下的Readme文档说得很清楚

    export OPENNI2_INCLUDE=/home/mpkuse/Downloads/OpenNI-Linux-x64-2.2/Include
    export OPENNI2_REDIST=/home/mpkuse/Downloads/OpenNI-Linux-x64-2.2/Redist
    

    Additionally the site says no additional driver required. How should I proceed?

    I tried setting the ${LD_LIBRARY_PATH} I get the following error :

    After initialization:
    
    SimpleViewer: Device open failed:
        DeviceOpen using default: no devices found
    

    Tried to do everything as root. Still same issue.

    $ lsusb
    Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 004: ID 1d27:0601 ASUS 
    Bus 003 Device 003: ID 046d:c534 Logitech, Inc. 
    Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    I can confirm that the install script adds the rules to /etc/udev/rules.d

    $ ls -l /etc/udev/rules.d/
    total 12
    -rw-r--r-- 1 root root 1541 Oct 27 15:51 557-primesense-usb.rules
    -rw-r--r-- 1 root root  628 Oct 23 18:18 70-persistent-net.rules
    -rw-r--r-- 1 root root 1157 Apr 15  2014 README
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值