Velodyne Acoustics HDL-64E S2 User Manual

Page 33

Advertising
background image

[ 30 ]

HDL-64E S2 and S2.1 User’s Manual

aPPendix f: duaL tWo Point caLiBration MethodoLoGy

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();

Advertising
This manual is related to the following products: