CS 371 - Robotics - Augmented Monte Carlo Localization (aMCL)

Area of focus

Our area of focus was implementing Augmented Monte Carlo Localization (aMCL) and parameter tuning.

Augmented Monte Carlo Localization

Augmented Monte Carlo Localization (aMCL) is a Monte Carlo Localization (MCL) that introduces random particles into the particle set based on the confidence level of the robot's current position.

Hypotheses

Testing Metric

We would conduct five trials each for MCL and aMCL and keep track of the number of times they successfully localize. For the instances where localization was successful, we would kidnap the robot and see if could successfully localize. If more localization were successful, we would consider the changes to have improved the algorithm.

Raw test data

Map:


Number of particles : 200

Monte Carlo (Not augmented)
Video Result: Failed to localize
Trial 1: Failed
- Started from a symetric location
Trial 2: Success, when kidnapped failed to localize
- Started from the most distinct location
Trial 3: Success, when kidnapped failed to localize
- Started from the middle
Trial 4: Failed
- Started from a symetric location
Trial 5: Failed
- Started with sensor facing straight wall

Augmented Monte Carlo
- alpha_slow = .4
- alpha_fast = .7
Video Result:
Trial 1: Success, when kidnapped successfully localized
- Started from a symetric location
Trial 2: Success, when kidnapped failed to localize for a while, but then localized
- Started from the most distinct location
Trial 3: Success, when kidnapped successfully localized
- Started from the middle
Trial 4: Success, when kidnapped successfully localized
- Started from a symetric location
Trial 5: Success, when kidnapped successfully localized
- Started with sensor facing straight wall

Side-by-side video Comparision:

MCL:

aMCL:

Data interpretation

MCL: Original version could localize 2 out of 5 times. The successes happened in the instances when the robot's start position was distinct in the map. The failures happened when the robot's start position was a symmetric part of the map. The robot failed 2 out of 2 times to localize when kidnapped.

aMCL: Robot was able to localize 5 out of 5 times. The robot was also able to localize after being kidnapped 5 out of 5 times. An important note is that the robot took much longer to localize with this method. But once localized it tended to stay localized although there was still a possibility that it could lose localization. It was also harder to decide if or when the robot correctly localized by only looking at the particles.

Algorithm and parameters

We implemented aMCL (algorithm described on page 218 of Probabilistic Robotics) in file pf.py.
Augmented Monte Carlo pseudocode from Probalistic Robotics Book
For this algorithm, we set αslow to 0.4 and αfast to 0.7.

Conclusions

We saw a significant improvement in performance in terms of localization and re-localization. MCL was overly confident about its position, even if it was incorrect, while aMCL can detect the change of confidence level and add random particles accordingly to compensate for this. As a note, aMCL's confidence level decreased near the open and symmetric part of the map. However, this algorithm takes longer to localize and when the robot is uncertain about its location, the algorithm overly adds in random particles. We addressed this problem by tuning αslow and αfast and by thresholding the maximum proportion of random particles to 25%.

Future ideas