经过一番捣鼓,终于实现了在ubuntu14.04和ROS indigo下使用kinectV1实现骨骼点检测,整理如下:
首先把kinectV1的驱动装好,参考上一篇blog:http://blog.csdn.net/zqxf123456789/article/details/52015850
为了使用OpenNI实现骨骼点检测,还需要进行以下步骤:
删除这个库,不然后面会带来以下问题:
sudo apt-get remove libopenni-sensor-pointclouds0
再安装两个库:
sudo apt-get install ros-indigo-openni-launch
sudo apt-get install ros-indigo-openni-camera
下面安装openni_tracker,实现骨骼点检测功能的关键库:
cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/openni_tracker.git
cd ..
catkin_make
需要安装的就这些,在实现之前还有3个地方需要检查一下:
1.检查一下openni_tracker这个package所在的路径是否已经添加到ROS_PACKAGE_PATH中,如果没有后面会报错找不到openni_tracker这个package
在终端中输入:echo $ROS_PACKAGE_PATH,如果没有显示openni_tracker这个package所在的路径,则在终端中输入:
export ROS_PACKAGE_PATH=/home/user_name/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks(具体内容是在原来ROS_PACKAGE_PATH值的基础上加上openni_tracker的路径,以“:”分隔)
2.source /home/user_name/catkin_ws/devel/setup.bash,也可以把这句话加到.bashrc中,这样就不必每次打开终端都输一遍了
3.rosrun rqt_reconfigure rqt_reconfigure
打开设置窗口,在camera下选择driver,然后勾选depth_registration。具体过程和作用可以参考官网说明:http://wiki.ros.org/openni_launch/Tutorials/QuickStart
以上步骤都做好后,下面就是实现功能了:
roslaunch openni_launch openni.launch camera:=openni ……………………………………(1)
rosrun openni_tracker openni_tracker ……………………………………………………………(2)
rosrun rviz rviz…………………………………………………………………………………………(3)
在rviz中,把Global Options > Fixed Frame 改成openni_depth_optical_frame(如果没有在(1)指令最后添加camera:=openni,那么Fixed Frame只有camera_depth_optical_frame可选);
点击Add(左下角),选择PointCloud2,确定;
把 PointCloud2 >Topic改成/openni/depth_registered/points;
再点击Add,选择TF;
适当调整可视框中的角度和放大倍数,站在kinect前面,不一会就能看到骨骼点数据了
参考链接:
weewqrer的博客:http://blog.csdn.net/weewqrer/article/details/48183969
https://github.com/ros-drivers/openni_tracker/issues/9
enjoy!