ethz-asl/wavemap

Multiresolution scan integration

astumpf opened this issue · 3 comments

Context
Currently, wavemap is updated with a fixed min cell size.

Requested feature
Scan integration with multiple resolutions depending on the distance of the endpoints. The goal would be to use CPU resources for near field integration while saving on long distance updates as these are less informative and generally less dense/accurate.

(Optional) Suggest a solution
Maybe just handle the max tree height for the integrator dynamically?

Additional context

Hi @astumpf,

To be sure there's no misunderstanding, the settings specify a min_cell_width, but wavemap does not update the map at this fixed maximum resolution everywhere. The update resolution is adapted based on the state of the map and an estimate of the measurement update's worst-case approximation error. I recommend checking our RSS paper for a complete explanation of how this is done. The worst-case error computation for the continuous_beam model, for example, is implemented here.

For LiDAR sensors, however, the (laser) beams are sharp and only very slowly smooth out with range. So unless you use a small min_cell_width (< 5cm) and/or use a high max_range, the resolution will be close to the chosen min_cell_width throughout the entire LiDAR frustum.

If you want to drop the update resolution as the distance to the sensor increases and don't mind losing the guarantee that the update error stays below a threshold, the easiest way to achieve this is probably to modify the return values from ContinuousBeam::computeWorstCaseApproximationError(...). For example, by dividing them by cell_to_sensor_distance.

Ok, thanks for your comprehensive feedback. I will check the details.

I'll close this issue assuming it's resolved. Feel free to reopen it if/when you have more questions.