經過一番搗鼓,終于實作了在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!