helios icon indicating copy to clipboard operation
helios copied to clipboard

Osclillating scanner does not use acceleration

Open lwiniwar opened this issue 4 years ago • 4 comments

Oscillating scanners should slow down (decrease) the angular step width at the extremes of the swath. Currently, the change in angle is calculated in OscillatingMirrorBeamDeflector::currentScanLinePulse (line 56):

int bla = std::min(currentScanLinePulse, cached_pulsesPerScanline / 2) - std::max(0, currentScanLinePulse - cached_pulsesPerScanline / 2);

state_currentBeamAngle_rad = -this->cfg_setting_scanAngle_rad + cached_angleBetweenPulses_rad * bla;

lwiniwar avatar Jan 22 '21 09:01 lwiniwar

This issue has been addressed. Please, don't close the issue until new implementation has been exhaustively tested because this is a significative update.

albertoesmp avatar Mar 02 '21 15:03 albertoesmp

@albertoesmp I tested the implementation and while the pattern looks realistic now, the simulated swath width is too small.

(Altitude a.g.l: 1000 m, scan angle: 20°, expected swath width: ~728 m, actual swath width: ~425 m.)

This figure shows a simulated wath with the old implementation (correct swath width) in red and the new implementation in blue image

han16nah avatar Mar 29 '21 12:03 han16nah

Some python code how to solve for the turning points is included here: oscillating.zip

Results look like this: image

image

Note the name of variables used in the script: image

lwiniwar avatar May 17 '21 13:05 lwiniwar

This issue has been solved in pull request https://github.com/3dgeo-heidelberg/helios/pull/171

It has not been merged yet because there is a test case which is not passed. But I think it is because changing the OscillatingMirrorBeamDeflector changed the size of the output point cloud. Please, confirm it and merge the pull request if it is okay for you too.

The output point cloud with new implementation looks like this: OMBDpcloud

The plots monitoring simulation look like this: OMBDplots

albertoesmp avatar Feb 06 '22 17:02 albertoesmp