You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: aima-core/src/main/java/aima/core/robotics/MonteCarloLocalization.java
+16-7Lines changed: 16 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -34,9 +34,19 @@
34
34
* Figure 25.9 A Monte-Carlo-Localization algorithm using a range-scan sensor model with independent noise.
35
35
* The Monte-Carlo-Localization is an extension of a {@link ParticleFiltering} as stated on page 982.
36
36
* This is true for the functionality but this implementation can not extend the implementation of the ParticleFiltering
37
-
* as both implementations only contain the actual algorithm as a single method.
38
-
*
39
-
* It is possible to reduce the steps needed for the localization by tweaking the parameters {@code particleCount}, {@code weightCutOff} and {@code maxDistance}.
37
+
* as both implementations only contain the actual algorithm as a single method.<br/>
38
+
* <br/>
39
+
* The update cycle of the algorithm is executed by the method {@code localize} for the given set of samples, move and vector of range readings.
40
+
* Before calling this method, a set of samples can be generated through the method {@code generateCloud}, which represents the initialization phase of the pseudocode, for the given size N.
41
+
* This removes the need of specifying the size N on every call of {@code localize} as this information is already contained in the set itself.
42
+
* The method {@code localize} is divided into these three parts implemented each by a single method:
43
+
* <ol>
44
+
* <li>{@code applyMove} represents the first line of the update cycle. It moves all samples according to the move / motion model.</li>
45
+
* <li>{@code weightSamples} represents the second to second last line of the update cycle. A vector of weights is created by this method for the given range scans by comparing every range scan to a ray cast with the correspondent sample through the range sensor noise model.</li>
46
+
* <li>{@code extendedWeightedSampleWithReplacement} represents the last line of the update cycle. It is a WEIGHTED-SAMPLE-WITH-REPLACEMENT with the addition of a cutoff value. All particles having a weight below this cutoff are ignored.</li>
47
+
* </ol>
48
+
* <br/>
49
+
* It is possible to reduce the steps needed for the localization by tweaking the sample count and the parameter {@code cutOff}.
0 commit comments