Velodyne DIGITAL DRIVE - REV G Instrucciones de operaciones Pagina 34

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 43
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 33
APPENDIX F: DUAL TWO POINT CALIBRATION METHODOLOGY
H
D
L
-
64
E
S2
and
S
2
.1
U
s
e
r
s
M
a
nu
a
float cosRotCorrection = cal—>getCosRotCorrection();
float sinRotCorrection = cal—>getSinRotCorrection();
float cosRotAngle = rotCosTable[data—>position]*cosRotCorrection +
rotSinTable[data—>position]*sinRotCorrection;
float sinRotAngle = rotSinTable[data—>position]*cosRotCorrection —
rotCosTable[data—>position]*sinRotCorrection;
float hOffsetCorr = cal—>getHorizOffsetCorrection()/VLS_DIM_SCALE;
float vOffsetCorr = cal—>getVertOffsetCorrection()/VLS_DIM_SCALE;
; //Convert distance to X—Y plane, formular is: xyDistance = distance * cosVert
A
ngle
float xyDistance = distance * cosVertAngle
// Calculate temporal X, use absolute value.
float xx = xyDistance * sinRotAngle — hOffsetCorr * cosRotAngle + pos.getX();
// Calculate temporal Y, use absolute value
float yy = xyDistance * cosRotAngle + hOffsetCorr * sinRotAngle + pos.getY();
if (xx<O) xx=—xx;
if (yy<O) yy=—yy;
//Get 2points calibration values,Linear interpolation to get distance
correction for X and Y, that means distance correction use different value at
different distance
float distanceCorrX = (cal—>getDistCorrection()—cal—>getDistCorrectionX())*(xx—
24O)/(25O4—24O)+cal—>getDistCorrectionX();
float distanceCorrY = (cal—>getDistCorrection()—cal—>getDistCorrectionY())*(yy—
l93)/(25O4—l93)+cal—>getDistCorrectionY(); //fix in V2.O
// Unit convert: cm converts to meter
distancel /= VLS_D/M_SCALE;
distanceCorrX /= VLS_D/M_SCALE;
distanceCorrY /= VLS_D/M_SCALE;
// Measured distance add distance correction in X.
distance = distancel+distanceCorrX;
xyDistance = distance * cosVertAngle; // Convert to X—Y plane
// Calculate X coordinate
coords[idx].setX(xyDistance * sinRotAngle — hOffsetCorr * cosRotAngle +
pos.getX()/VLS_D/M_SCALE);
// Measured distance add distance correction in Y.
distance = distancel+distanceCorrY;
xyDistance = distance * cosVertAngle; //Convert to X—Y plane
// Calculate Y coordinate
coords[idx].setY(xyDistance * cosRotAngle + hOffsetCorr * sinRotAngle +
pos.getY()/VLS_D/M_SCALE);
//Calculate Z coordinate, formula is : setZ(distance * sinVertAngle +
vOffsetCorr
coords[idx].setZ(distance * sinVertAngle + vOffsetCorr +
pos.getZ()/VLS_D/M_SCALE);
}
[
31
]
Vista de pagina 33
1 2 ... 29 30 31 32 33 34 35 36 37 38 39 ... 42 43

Comentarios a estos manuales

Sin comentarios