1
$\begingroup$

I'd like to extract "features" of an environment scanned with a 2D LiDAR.

I tried to create a temporary occupancy map to extract "corners" with the Harris Corner Detector. However LiDAR data is noisy, it creates false corners even after applying a Gaussian filter on the map. I wonder if there are more reliable algorithms for this.

Another method I tried is to use raw data output of the LiDAR, i.e. the $(r,\theta)$ vector, and calculate its first and second derivatives and choose "abrupt changes" as landmarks. This has a major drawback, it is harder to track landmarks when LiDAR position changes since $(r,\theta)$ vectors are totally different.

I appreciate any help. Thanks.

$\endgroup$
0
$\begingroup$

In general you have to assign some probability distribution to your map or cells individually and update them iteratively.

In the very simple case you can just apply a low-pass filter to each of your cells. Like that: $p[t] = a*p[t-1] + (1-a)*I(occupied)$ where I is an indicator function which is set to 1 if current lidar measurement shows that cell is occupied and to 0 otherwise.

Better way is to look at SLAM methods like FastSLAM. Which use particles and Kalman filters underneath. Comparing to the case I described above, Kalman filter will produce better estimates, because it is optimal in the sense that it minimizes variances thus giving you as precise estimate of a mean as possible.

$\endgroup$
0
$\begingroup$

You need to use something like RANSAC or Hough line detectors.

$\endgroup$
1
  • $\begingroup$ Thanks for your answer FourierFlux but we are looking for comprehensive answers that provide some explanation and context. Very short answers cannot do this, so please edit your answer to explain why it is right, ideally with citations. Answers that don't include explanations may be removed. See How to Answer for more info. $\endgroup$ – Ben Mar 14 at 22:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.