0
$\begingroup$

Rosanswers logo

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.


Originally posted by Haikal Pribadi on ROS Answers with karma: 103 on 2012-03-26

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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/

Then do

cmake .
rosmake

and you should be able to run it with the included launch file

roslaunch cse_kinect cse_kinect.launch

or

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.


Originally posted by Thomas D with karma: 4347 on 2012-03-26

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by Haikal Pribadi on 2012-03-26:
thank you Thomas, I will get my hands on this works of yours today and will let get back to this forum. Thank you so much for the help. But in the mean time i'll leave this topic without any marked answer just to keep people coming, in case there are some other great resources out there. Cheers.

Comment by Haikal Pribadi on 2012-03-27:
Hi, thomas. Running it returns [ERROR] [1332848883.240844802]: Frame id /openni_depth_frame does not exist! Frames (6): Frame /camera_depth_frame exists with parent /camera_link. ......Do you think you might know what the problem is?

Comment by Thomas D on 2012-03-27:
I expect that to happen until you do the psi pose and the user is recognized. Look at http://www.ros.org/wiki/openni_tracker to see what the psi pose is and then you should see it print out 'New User 1' and some calibration messages. Or try http://answers.ros.org/question/12866/openni-tracker.

Comment by Haikal Pribadi on 2012-03-27:
Yes, it worked after i did a PSI position. I just didn't know I had to do that first. Thanks, Thomas. Oh, do you happen to remember the configs you have for rviz? cause i'm still learning that too, and dont fully understand it yet. Thanks, Thomas.

Comment by Thomas D on 2012-03-27:
I don't remember exactly how I set up RViz, but all I really show is a PointCloud2 with the Kinect data, then set up the Fixed Frame as openni_depth_optical_frame or openni_rgb_optical_frame and the Target Frame as . There isn't much more to it than that.

Comment by blackmamba591 on 2015-11-12:
The link does not exist anymore http://ibotics.ucsd.edu/svn/stingray/trunk/cse_kinect/

Comment by Thomas D on 2015-11-12:
I resurrected that package and put it at https://github.com/tdenewiler/cse_kinect. It has not been updated to work with catkin, and I haven't tried to run it in years, but maybe the example will help.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.