Kinect V2学习之Openi2,Nite2,Sensorkinect和Openni2_tracker编译安装来获取骨骼数据(ros)

平台:Ubuntu 14.04 LTS ros:indigo Kinect V2
如果还没有安装Kinect V2驱动的话,先看我的上一篇博客,保证能用Protonect和roslaunch kinect2_bridge kinect2_bridge获得点云图深度图等之后再看这一篇文章,这里是用kinect v2获取人体的骨骼信息。
这里是所需要的所有文件打包提供下载:
链接:> http://pan.baidu.com/s/1i5BI1Q9
密码:pa14
一、安装Openni2
最简单的安装方法是:

sudo apt-add-repository ppa:deb-rob/ros-trusty && sudo apt-get update
sudo apt-get install libopenni2-dev

然后指明libfreenerct的路径给第三方应用,运行:

cmake  ..  -Dfreenect2_DIR=$HOME/freenect2/lib/cmake/freenect2

注意:上面路径是在编译libfreenect2时生成freenect2文件夹的路径,按照实际情况修改。
安装完成之后,输入

NiViewer2

如果输出图像,则表示安装成功了。
注意:Openni2的安装也可以直接到官网上下载包然后进行编译,但是需要添加libfreenect2生成的driver到Openni2包里面,比较麻烦(我遇到的是sudo cmake .. -DBUILD_OPENNI2_DRIVER=ON编译各种出错,所以暂且放弃)

二、安装NITE2
解压NITE-Linux-X64-2.2后运行(optional):

sudo ./install.sh

生成NiTedevEnvironment文件
然后打开NiTE-Linux-x64-2.2/Samples/Bin/,输入:

vim OpenNI.ini

加上一句Repository=/usr/lib/OpenNI2/Drivers(就是安装openni2生成的driver路径),然后在Samples/Bin路径下运行:

./UserViewer

如果不出意外的话便可以看到骨骼图了。
Kinect V2学习之Openi2,Nite2,Sensorkinect和Openni2_tracker编译安装来获取骨骼数据(ros)_第1张图片

三、安装Sensorkinect(optional)
解压并运行运行:

 ./install.sh

即可完成安装。

四、编译并运行Openni2_tracker实现ros上面获取骨骼数据
在catkin_ws/src路径下,运行:

sudo git clone https://github.com/ros-drivers/openni2_tracker.git 

下载Openni2_tracker包,打开CMakeLists.txt文件,修改:

# Find Nite2
message(status $ENV{NITE2_INCLUDE})
message(status $ENV{NITE2_REDIST64})
find_path(Nite2_INCLUDEDIR
      NAMES NiTE.h
      HINTS $ENV{NITE2_INCLUDE})
find_library(Nite2_LIBRARY
         NAMES NiTE2
         HINTS $ENV{NITE2_REDIST64}
         PATH_SUFFIXES lib) 

里面的路径,根据自己的实际情况修改。我的路径修改如下

# Find Nite2
message(status $ENV{NITE2_INCLUDE})
message(status $ENV{NITE2_REDIST64})
find_path(Nite2_INCLUDEDIR
      NAMES NiTE.h
      HINTS /home/software/NiTE-Linux-x64-2.2/Include)
find_library(Nite2_LIBRARY
         NAMES NiTE2
         HINTS /home/software/NiTE-Linux-x64-2.2/Redist
         PATH_SUFFIXES lib) 

修改完成会后,在catkin_ws路径下输入:

catkin_make

完成OPenni2_tracker的编译之后,在/home/software/NiTE-Linux-x64-2.2/Redist路径下运行:
rosrun Openni2_tracker Openni2_tracker

即可获取到骨骼数据。

注意:作者是在Openni_tracker(即在1代的基础上修改的,看Openni_tracker.cpp文件就知道,里面用来显示图像的代码都被注释掉的,而我自己还没有仔细看程序),所以运行之后是没有画面的。

至此,整个流程结束,如果用kinect在ros上进行开发,获取骨骼数据是关键,所以,只要运行Openni2_tracker不出错,也就是成功获得了骨骼数据,后面的就是对获取到的数据进行处理了。

五、经验总结
我的台式机是AMD显卡,安装完驱动后还是不能正常显示骨骼图,虽然运行并没有报错,但是显示不了图像,后来换上了N卡的笔记本就正常了,AMD显卡驱动是在官网下载的最新驱动,但是就是显示不了,到现在还没有找到具体的原因以及解决的办法,如果有人遇到了跟我有一样的问题,并且找到了解决的办法,希望您能不吝赐教,谢谢!

你可能感兴趣的:(kinect学习,kinect)