I have been struggling for a full week, 10 hours a day, trying to interpret the depth data from my D435, without success.
To try and identify the issue I performed an experiment, as follows.
The D435(which I have successfully calibrated using Intel.Realsense.DynamicCalibrator.exe) is mounted 420mm above the floor:
It is facing a door with markers 420mm above the floor, the left marker at 220mm left, right marker at 560mm right, there's a tape measure starting against the door:
The D435 front glass is 3840mm from the door (this picture is taken at an angle, looking vertically, it IS 3840mm):
My application reads depth at 848x480, colour at 1920x1080 and uses Align to make the colour frame line up with the depth:
I view the colour and depth streams and read off the depths of the 3 markers:
The results are (I count rows like a human, from the bottom: row 0 is at the BOTTOM of the images, row 479 it the topmost row):
Left marker: Row 237, column 388, depth 4147
Centre marker: Row 237, column 412, depth 4128
Right marker: Row 236, column 472, depth 4135
It's worth noting:
- The rows are almost at the vertical centre of the D435
- The centre column is almost at the horizontal centre of the D435
so it's fair to say that vertical errors are negligable.
I then drew this setup, here's the plan view.
Black are known measurements made with a ruler, Red is the right depth ray, blue is the centre depth ray and green is the left depth ray:
(The D435 is deliberately off-centre, 52.50mm is the distance from the edge of the 435 to the focal point of the depth map.)
The 3 depth measurements are consistent (there is only 17.42mm difference between the red and green arrow tips) with a point 285mm behind the D435.
Interestingly, at the face of the D435, the red and green rays are 53.51mm apart, which is awfully close the distance between the infrared cameras.
Now, this is all rather empirical and my measurements are probably no better than +/- 1mm, but 285mm is a relatively huge discrepancy.
Is this possible (if so, what is the EXACT value of my 285mm, to the µM?), or have I made a glaring blunder?
P.S. The Intel-RealSense-D400-Series-Datasheet says, table 4-4 on page 54, that the D430's HFOV is 86° and VFOV is 57° and adds "Due to mechanical tolerances of +/-5%, Max and Min FOV values can vary from lens to lens and module to module by ~ +/- 3 degrees.".
I'm assuming that by 430 they meant 435... How can I get the EXACT numbers?