[PARTLY UNSOLVED] Raw Kinect Depth Data
I'd like to get the raw depth data off of the Kinect on my Turtlebot, using ROS.
What I've been doing is running roslaunch openni_camera openni_node.launch
, and then looking at the published /camera/depth/image_raw
.
Online research has indicated that the Kinect should spit out 11-bit values. However, it seems this topic spits out something like 14-bit values...
I made a histogram of all the depth values in 183 random depth images I collected with all sorts of varying depths in them, and I found that the array of 16-bit values which come out of the /camera/depth/image_raw
topic (actually 8-bit values which I have to put together into 16-bit) range over the values zero and a seemingly logarithmic distribution of exactly 799 values between 342 and 9757 -- exactly 800 values in total.
So I'm confused about whether the values I'm getting are actually the "raw" output from the Kinect (which I want), or if something between me and the Kinect is doing some processing to it that I don't want done. (I'm using it for some very specific scientific mapping applications, and I want to know exactly what is happening to my data.)
What I've found online says that the values should range from 0 to 2^11.
If the data is straight off the Kinect, then it's odd that 2^13 < 9757 < 2^14.
If the data is simply being scaled or something, then I'd think that there'd be somewhere between 2^10 and 2^11 different values, instead of exactly 800.
Can anyone explain to me how to get the real raw data off the Kinect using OpenNI through ROS, or if I'm doing it correctly, can you explain what's going on and why it's not coming out as I would expect?
Thank you so much!
Update: sebsch answered the first part -- No, the OpenNI driver doesn't publish what I want. But it seems the suggested package won't work for my needs either. Still searching for a way to do it.