On Thu, Nov 14, 2013 at 7:20 AM, Uli <ulrichlanig@gmx.de> wrote:
Have you already accessed the raw depth values? I tried to use Mono16 and to
access the image data using "camera-> image" I got values like this (a high
value followed by a low value):
156
3
156
3
156
3
156
3
156
3
255
7
255
7
255
7
255
7
255
7
255
7
255
7
255
7
I think the reason for the wrong values, is the fact that the camera
interface only supports uint8_t * image (so the values are automatically
destroyed).

I also can't use Mono8. Because the downsampling leads to a wrong point
cloud representation of the floor (values are "downsampled" from a range
between 0 and 2047 to a range between 0 to 255). I guess that the layers in
the picture below appear due to downsampling. The picture shows a floor
represented by a point cloud which is obtained by values of the Mono8 image
format:
<http://player-stage-gazebo.10965.n7.nabble.com/file/n19160/FloorCloud.png>

Can anybody help me? How can I access the raw depth values? Or in which way
I have to modify the driver and/ or the camera interface?

The uint16 values are packed into the uint8 array that the camera interface provides.  You need to either cast the data to uint16*, or copy the memory into a uint16 array.

The depth image is 11 bits (0-2047), you can see from the data above that there are bytes with 8 bits of precision (0-255) followed by bytes with 3 bytes of precision (0-7).  Once recombined to uint16 they'll provide the full 11 bit range.

Rich