ros+kinetic16.04配置kinect2_tracker详解

ros+kinetic16.04+kinect2_tracker配置详解

  • 下载libfreenect2
    • 安装libfreenect2驱动:
    • 测试libfreenect2:
  • 安装kinect2的ros接口iai kinect2
    • 安装iai kinect2:
    • 测试kinect2:
  • 安装NiTE2
    • 下载编译kinect2_tracker包:
    • 修改OpenNI.ini文件:
    • 测试kinect2_tracker:

下载libfreenect2

下载连接:
(https://github.com/OpenKinect/libfreenect2.git)

git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2
#可以打开libfreenect2包中的readme文件,按照步骤安装,可跳过以下步骤

安装libfreenect2驱动:

也可参照此教程:
ubuntu1604安装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
#本机之前自己安装了cuda,下两条安装cuda的命令未经过博主测试,请根据自己需要安装,在libfreenect2中是可选选项
#(Nvidia/Intel dual GPUs) After apt-get install cuda, use sudo prime-select intel to use Intel GPU for desktop.
sudo apt-get install cuda
sudo prime-select intel
#Install VAAPI
sudo apt-get install libva-dev libjpeg-dev
#install oopenni2 此选项是运行kinect2_tracker包的必选项
sudo apt-get install libopenni2-dev
####cd … back to the libfreenect2 root directory first
mkdir build && cd build
cmake … -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 #本人将freenect2安装在了~/主目录下,也就是没有直接复制命令进行安装,
##没有调整路径,也可以安装在其他路径,但是请记住之后这个路径会有用,因为kinect2_tracker启动需要启动这个驱动
make
make install
#报错请尝试sudo
sudo cp …/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

测试libfreenect2:

重新插拔kinect2,运行:

./bin/Protonect

不出意外应该可以看到图像输出,就不放图了

安装kinect2的ros接口iai kinect2

iai kinect2包提供了以下功能:

a calibration tool for calibrating the IR sensor of the Kinect One to the RGB sensor and the depth measurements
a library for depth registration with OpenCL support
the bridge between libfreenect2 and ROS
a viewer for the images / point clouds
从以上功能中可以看出,IAI Kinect2包的使用,需要在系统中安装libfreenect2,就是我们第一步中所安装的驱动包

安装iai kinect2:

cd ~/catkin_ws/src/ #与上面的libfreenect2放在在同一个工作空间中的src目录下
git clone https://github.com/code-iai/iai_kinect2.git
cd iai_kinect2
rosdep install -r --from-paths .
cd ~/catkin_ws
catkin_make
source devel/setup.bash

测试kinect2:

编译成功后,重新插拔kinect2设备,进行测试:

roslaunch kinect2_bridge kinect2_bridge.launch
rosrun kinect2_viewer kinect2_viewer

如果出现cloud_viewer窗口,说明以上驱动安装成功,可以继续一下步骤,如果以上驱动有问题,请先解决问题在进行以下步骤。

安装NiTE2

此处下载NITE2
将下载的压缩包解压到~/$HOME/your_worksapce/src/目录中,也就是和iai kinect驱动包一个工作空间

$ cd ~/your_workspace/src
$ cd NiTE-Linux-x64-2.2
$ chmod 777 install.sh
$ sudo sh install.sh

此时该目录下会生成 NiTedevEnvironment 文件,然后添加环境变量

cat NiTedevEnvironment >> ~/.bashrc

此时,你的~/.bashrc文件中末尾应该出现了两个export开头的命令

gedit ~/.bashrc #可用此命令进行查看

Include: 存放该库的头文件
Redist: 是一个高性能的key-value数据库,用于补充依赖的关系数据库

下载编译kinect2_tracker包:

cd ~/your_workspace/src
git clone https://github.com/mcgi5sr2/kinect2_tracker.git
cd kinect2_tracker

修改setup_nite.bash文件
改为:

ln -s ~/your_workspace/src/NiTE-Linux-x64-2.2/Samples/Bin/NiTE2/ ~/.ros/NiTE2
#并执行以下命令
cd ~/your_workspace/src/kinect2_tracker
source setup_nite.bash

修改CMakeList.txt文件:
找到set(NITE2_DIR )和set(NITE2_LIB )两行,改为:

set(NITE2_DIR ~/your_workspace/src/NiTE-Linux-x64-2.2/)
set(NITE2_LIB ~/your_workspace/src/NiTE-Linux-x64-2.2/Redist/libNiTE2.so)

到自己的工作空间执行编译命令,此时编译应该没问题,出问题的话请先按照提示解决问题,此处容易找不到NiTE.h文件,建议查找cmakelist文件和package.xml文件问题,或者在terminal中执行“env”命令检查环境变量(之前写入~/.bashrc文件中的两条变量)是否被加载成功,博主之前就因为先安装了conda的原因没有加载成功,在bashrc文件中将两条export命令调整到conda环境配置之前就可以成功加载了。

修改OpenNI.ini文件:

此时还不能成功运行kinect2_tracker节点,当然可以尝试运行,万一见鬼了呢:

roslaunch kinect2_tracker kinect2_tracker.launch

如果正常运行,则万事大吉了啊,万一没见鬼,出现can’t open the device错误,请执行以下步骤
此部分是成功运行人体追踪节点的重要部分:

cd ~/your_workspace/src/NiTE-Linux-x64-2.2/Samples/Bin
gedit OpenNI.ini
将最后一行注释先去掉,修改为:
Repository=~/freenect2/lib/OpenNI2/Drivers#也可以使用绝对路径

进入kinect2_tracker包

cd ~/your_workspace/src/kinect2_tracker/include/Openni2/Bin
gedit OpenNI.ini
将最后一行注释先去掉,修改为:
Repository=~/freenect2/lib/OpenNI2/Drivers#也可以使用绝对路径

现在执行最重要的一步(执行前请确认有这个目录/usr/lib/OpenNI2/Drivers/):

sudo cp ~/freenect2/lib/OpenNI2/Drivers/libfreenect2-openni2.so /usr/lib/OpenNI2/Drivers/
sudo cp ~/freenect2/lib/OpenNI2/Drivers/libfreenect2-openni2.so.0 /usr/lib/OpenNI2/Drivers/

测试kinect2_tracker:

现在如果一切正常,重新插拔kinect2设备后运行:

roslaunch kinect2_tracker tracker.launch
rosrun rviz rviz

不出意外应该可以正常运行,在rviz中根据topic可以调出maker点和image彩色图像
ros+kinetic16.04配置kinect2_tracker详解_第1张图片
上图中红色的点就是检测到的人的质心位置,旁边people_points::point结构中显示的是相对于kinect2设备的位置,没有做任何矫正。

如果还有问题无法解决请尝试运行一下命令挣扎一下:
sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2

有不妥之处欢迎指正交流

你可能感兴趣的:(people_track)