THIS REPOSITORY IS CURRENTLY UNDER DEVELOPMENT AND SOME INFORMATION MAY CHANGE
Filter algorithm that works with two dimensional pointclouds in polar coordinates (LIDAR-readout filter)

This algorithm takes lidar-readout data in polar coordinates (closed circle) and returns a filtered dataset in polar coordiantes. Features include:
- aligning lines to the coordinate axes
- smoothes uneven scans
- discards error measurements that are too far off the nearest points, to improve the scan quality by filtering out measurements caused by reflections, etc.
Caution: it is the user's responsibility to rotate the input data in such a way that most lines are roughly parallel to the coordinate axes (only needed when filter threshold is greather than zero), doesn't matter when smoothing is the only needed operation
Comparison RAW / FILTERED (Low threshold value here):

The following data is a readout of a living room using a very cheap 2D-Lidar module:

After filtering, the plot looks the following:

I build an example device and .net Interface to demonstrate how the algorithm behaves under real-world-conditions:

A ST VL53L1X Time-Of-Flight Sensor is the heart of this lidar implementation: