3dtof / voxelsdk

VoxelSDK - an SDK supporting TI's 3D Time of Flight cameras
BSD 3-Clause "New" or "Revised" License
108 stars 71 forks source link

How many parameters will affect "point cloud"? #20

Closed Yorkland closed 9 years ago

Yorkland commented 9 years ago

Up to now, I knew some parameters will mainly decide X,Y,Z of "point cloud". (1) lens parameters (fx, fy, cx, cy, k1, k2...) in conf, (2) parameter: [mod_freq1], (3) parameter: [phase_corr1], (4) parameter: [pixelwise offset, *.bin], (5) temperature curve: I don't set this item temporarily, Are there other key parameters ignored by me?

Is my understanding right about the 4 types data? raw -> raw_processed -> depth -> point_cloud

  1. raw: real raw, don't involve any parameter,
  2. raw_prcessed: make raw apply "phase_corr1" + "pixelwise offset",
  3. depth: make raw_processed apply "lens parameter", transfer phase to depth,
  4. point cloud: involve depth and adjust X,Y by "lens parameter",

Concern1: Is "pixelwise offset, *.bin" involved from "raw_processed" or "depth"? Concern2: Is "lens parameters" involved from "depth"?

A further question is, During VoxelViewer calibration flow, it said temperature calibrate is necessary, should I give it a default value before we got the real temperature factor? How to set for this item? I see a parameter "tsensor_calib" to be set to -1, if I bypass temperature item in calibration flow, I must remark (disable) "tsensor_calib" in conf, then VoxelViewer will keep workable.

bharathpatil commented 9 years ago

You understanding is almost right.

  1. depth is only conversion from phase to depth. This involves only a multiplication of constant factor. distance = phase*R/4096. Here depth is actually a misnomer. It should be called distance. There is no involvement of lens parameter here.
  2. point cloud involves conversion of distance to x,y,z based on lens parameters. For temperature calibration, if you dont have the temperature chamber data, you can enter same value of phase for multiple tillum, tsensor values so that coefficient is calculated to be zero. This will help you to proceed for now.

Two calibrations are not covered in your list - Phase to distance non-linearity - This data needs to be obtained by using an accurate moving setup. Phase (not offset corrected) has to be obtained and used for linearity correction. Also, it may not be very important for most applications, pixel cross talk calibration may be needed.

Yorkland commented 9 years ago

Thanks for the information.