asked 2012-03-26 10:22:10 -0500Haikal Pribadi
Hi everybody.. I'm quite new to ROS - well not completely new, i've done some development with ROS and grasp the basics. But i'm completely new to Kinect. I've checked out all the Kinect drivers in ROS, installed them, run them (e.g. rviz ). But I still dont have a complete understanding on how to develop programs for Kinect with ROS, i.e. using the Kinect drivers programmatically. Does anybody know any good programming tutorial for ROS-Kinect? I've searched all over the internet for the last 2 days (or I might have just been looking in the wrong places).
My specific task i'm trying to accomplish is to locate a person in a room (e.g. raising a hand, or something) then start tracking the person - and perhaps following them. I've seen a similar demo of this from MIT's ros package, but I don't see any tutorial. Furthermore, MIT's packages are all from the diamondback distribution, while all my packages are build from electric.
Thank you, everyone.
The answer from @dlaz is correct in the general case, but based on your comment about just wanting to use the skeletal tracker you can check out a project that some students worked on for me. They took the output of the Kinect skeletal tracker and added the ability to parse out some new poses other than the default psi pose. When a new pose is detected they simply print out to the screen what pose the user is doing and publish the name of the pose. There is also the beginnings of a node that will take the pose topic and try to determine if a gesture is being performed by the user based on a sequence of poses with time constraints.
You can check out the code using
svn co http://ibotics.ucsd.edu/svn/stingray/trunk/cse_kinect/
cmake . rosmake
and you should be able to run it with the included launch file
roslaunch cse_kinect cse_kinect.launch
rosrun cse_kinect cse_kinect rosrun cse_kinect cse_gestures
You still have to perform the psi pose at the beginning, but after that new poses should be detected. One caveat is that it only works for User1, so if you start, go out of range, then come back in the Kinect skeletal tracker may think you are User2 and these nodes will stop detecting new poses. Hope that helps.
In ROS, working with Kinect data is no different from working with any other point cloud data. PCL (http://pointclouds.org/) is probably the best way to work with this data. the pcl_ros wiki page has an example of how to subscribe to point clouds (such as those from the Kinect).
Asked: 2012-03-26 10:22:10 -0500
Seen: 2,516 times
Last updated: Mar 26 '12