12 Replies Latest reply on Sep 21, 2018 7:14 AM by MartyG

    D435 systematically over-estimates Z-Depth

    smirkingman

      I am trying to calibrate my D435 by measuring the range to targets (Y=100mm, 200mm, 300mm and 390mm) at a known distances:

      Setup.png

      The camera is 390mm from the ground plane, horizontal (the top target is pixel row 240 at all distances), my spirit level tells me that my floor is flat and the targets are perpendicular.

      I take the Z distance (the raw range from the camera depthmap, no post-processing) to each of the 4 targets, averaged over 100 measurements, for Z=500mm, 1m, 1.5m, 2m, 2.5m and 3m.

      This is the Z-Y plot of the results (2'200 measurements):

      plot.png

      The Y error is due due to the published +-3% tolerance in the vertical FOV (which I estimate by linear regression to be 56.1739°).

      The true Z distance roughly follows the quadratic a*Z*Z+b*Z+c for a=-0.000039 b=0.0375 and c=-6.531 (which interestingly is the 7mm mentioned in this thread  https://communities.intel.com/thread/128141 and I have no problem applying that to get a more accurate result.

      Now my setup may be a little off-kilter, but the Z error is consistently some +300mm (+10%) at 3 metres.

       

      That the error increases as a square of the distance, I fully understand, but assuming that the error is gaussian it should average out over 100 measurements and not systematically increase as a function of Z.

      Have I made another glaring blunder?

       

       

       

       

       

       

      -0.000039497035