[ 32 ]

HDL-64E S2 and S2.1 User’s Manual
aPPendix f: duaL tWo Point caLiBration MethodoLoGy
Intensity Compensation vs Distance
Intensity compensation is done in the software for different channels by changing a parameter in the calibration window until the measurement
gets to a uniform intensity for a reference target.
Here K is the slope from the calibration data. Intensity gets to its maximum at the focal distance for different channels and from
its calibration data.
Calibration Window
The following new intensity parameters have been added in the db.xml calibration file
• focal distance: At this distance, the intensity goes to max. The focal distance is different from laser to laser. On the upper block,
it averages 1500cm. On the lower block, it averages 800cm.
• focal slope: This parameter controls intensity compensation. Min and Max Intensity are used to scale and offset intensity.
Intensity Value Corrected by Distance Code
for (guint i=0; i< VLS_LASER_PER_FIRING; i++) {
guit laser = i + base;
if (!db->getEnabled(laser))
continue;
bool intensity =db->getIntensity(laser);
if (!intensity: {
glColor3fv(db->getDisplayColor(laser).rgb);
} else {
guchar minIntensity = 0, maxIntensity = 0;
float intensityScale = 0;
minIntensity = db->getMinIntensity(laser);
maxIntensity = db->getMaxIntensity(laser);
//Get intensity scale
intensityScale = (float)(maxIntensity - minIntensity);
// Get firing “i” intensity
guchar intensityVal = it->getPoint(i)->intensity;
// Get firing “i” distance, here unit is 2mm
float distance = it->getPoint(i)->distance;
// Calculate offset according calibration
float focaloffset= 256*(1-db->getFocalDistance(laser)/13100)*(1-db-
>getFocalDistance(laser)/13100);
// get slope from calibration
float focalslope = db->getFocalSlope(laser);
focalOffset = 256 ( )21 - focalDistance______________13100focalOffset - 256 ( )21 - distance__________65535intensityVal = intensityVal + K [ ]