
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
’
Dual Two Point Calibration Methodology and Code
Samples
elodyne uses a dual point calibration methodology to
calculate
the
values
in
the
db.xml
file.
This
section
describes this calibration
methodolog
.
The steps for the calibration are as follows:
1: Perform far point calibration at 25.04m
2: Perform near point X calibration at 2.4m
3: Perform near point Y calibration at 1.93m
4: Perform linear interpolation to get distance correction for X and Y (Nearer than 25.00m only)
The formula for the calibration value is as follows:
(
–
1
)
D
x
= D
lx
+ (D
2x
- D
lx
)
(
2
–
1
)
(y – y
1
)
D
y
= D
ly
+ (D
2y
- D
ly
(
2
-
1
)
Where:
x
1
= 2.4 m
x
2
= 25.04 m
y
1
= 1.93 m
D
lx
= distance corrected X distance for near point
D
ly
= di s ta n ce corrected Y distance for near point
D
2x
= D
2y
= distance correction for far point
Coordinate Calculation Algorithm Sample Code
laserNum, boost::shared_ptr<CalibrationDB> db,
firingData::computeCoords(guintl6
GLpos_t &po
s)
{
guintl6 idx = laserNum % VLS_LASER_PER_F1R1NG;
boost::shared_ptr<CalibrationPoint> cal = db—>getCalibration(laserNum);
if (data—>points[idx].distance == 0) {
coords[idx].setX(0.0);
coords[idx].setY(0.0);
coords[idx].setZ(0.0);
return;
}
// Get measured distance, distancel
float distancel = db—>getDistLSB() * (float)data—>points[idx].distance;
// Corrected distance by distance calibration at 25.04m
float distance = distancel+ cal—>getDistCorrection();
float cosVertAngle = cal—>getCosVertCorrection();
float sinVertAngle = cal—>getSinVertCorrection();
[
30
]
Comentarios a estos manuales