Velodyne Acoustics HDL-64E S2.1 Home Security System User Manual


 
[ 30 ]
HDL-64E S2 and S2.1 User’s Manual

D
y
= D
1y
+ (D
2
- D
1y
)
(x - 0)
_______
(x
2
- 0)
D
x
= D
1x
+ (D
2
- D
1x
)
(x - x
1
)
_______
(x
2
- x
1
)
Dual Two Point Calibration Methodology and Code Samples
Velodyne uses a dual point calibration methodology to calculate the values in the db.xml file. This section describes this calibration methodology.
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:
Where:
x
1
= 2.4 m
x
2
= 25.04 m
D
1x
= corrected X distance for near point
D
1y
= corrected Y distance for near point
D
2x
= corrected X distance for far point
D
2y
= corrected X distance for far point
Coordinate Calculation Algorithm Sample Code
firingData::computeCoords(guint16 laserNum, boost::shared_ptr<CalibrationDB> db,
GLpos_t &pos)
{
guint16 idx = laserNum % VLS_LASER_PER_FIRING;
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, distance1
float distance1 = db->getDistLSB() * (float)data->points[idx].distance;
// Corrected distance by distance calibration at 25.04m
float distance = distance1+ cal->getDistCorrection();
float cosVertAngle = cal->getCosVertCorrection();
float sinVertAngle = cal->getSinVertCorrection();