Skip to content

Commit 0500f0f

Browse files
authored
Merge pull request #239 from janphkre/AIMA3e
Bugfix in the MCL-Algorithm
2 parents 0f9f73d + e5e75a8 commit 0500f0f

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

aima-core/src/main/java/aima/core/robotics/MonteCarloLocalization.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void setWeightCutOff(double cutOff) {
9393
protected Set<P> applyMove(Set<P> samples, M move) {
9494
Set<P> newSamples = new LinkedHashSet<P>();
9595
for(P sample: samples) {
96-
newSamples.add(sample.applyMovement(move));
96+
newSamples.add(sample.applyMovement(move.generateNoise()));
9797
}
9898
return newSamples;
9999
}

aima-gui/src/main/java/aima/gui/swing/demo/robotics/GenericMonteCarloLocalization2DApp.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ public void actionPerformed(ActionEvent arg0) {
428428
}
429429
});
430430
enableButtons(buttonStateStart);
431-
localizationResult = new JLabel("<HTML>Result: <BR><BR></HTML>");
431+
localizationResult = new JLabel("<HTML>Result: <BR><BR><BR></HTML>");
432432

433433
JPanel leftPanel = new JPanel();
434434
leftPanel.setBorder(GuiBase.getClearanceBorder());
@@ -649,6 +649,7 @@ protected void displayMove(final M move) {
649649

650650
/**
651651
* Displays the sample cloud on the map.
652+
* @param samples the set of samples to be displayed.
652653
*/
653654
protected void displaySamples(Set<P> samples) {
654655
md.drawParticles(samples);
@@ -661,7 +662,7 @@ protected void displaySamples(Set<P> samples) {
661662
*/
662663
protected void displayResult(P result) {
663664
if(result != null) {
664-
String resultOutputString = "( " + GuiBase.getFormat().format(result.getX()) + " | " + GuiBase.getFormat().format(result.getY()) + " )";
665+
String resultOutputString = "X: " + GuiBase.getFormat().format(result.getX()) + ",<BR>Y: " + GuiBase.getFormat().format(result.getY());
665666
localizationResult.setText("<HTML>Result: <BR>" + resultOutputString + "</HTML>");
666667
md.showResult(result);
667668
} else {
@@ -674,7 +675,7 @@ protected void displayResult(P result) {
674675
*/
675676
protected void clearResult() {
676677
md.clearResult();
677-
localizationResult.setText("<HTML>Result: <BR><BR></HTML>");
678+
localizationResult.setText("<HTML>Result: <BR><BR><BR></HTML>");
678679
}
679680

680681
/**

aima-gui/src/main/java/aima/gui/swing/demo/robotics/components/Settings.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,9 @@ protected void showGui() {
484484
this.setVisible(true);
485485
}
486486

487+
/**
488+
* Enables all buttons that are registered in the Settings.
489+
*/
487490
protected void enableButtons() {
488491
btnSave.setEnabled(true);
489492
btnAbort.setEnabled(true);
@@ -493,6 +496,9 @@ protected void enableButtons() {
493496
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
494497
}
495498

499+
/**
500+
* Disables all buttons that are registered in the Settings.
501+
*/
496502
protected void disableButtons() {
497503
btnSave.setEnabled(false);
498504
btnAbort.setEnabled(false);

aima-gui/src/main/java/aima/gui/swing/demo/robotics/simple/SimpleSettingsListener.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ public void setRobot(VirtualRobot robot) {
4545
public void createSettings() {
4646
settingsGui.registerSetting(PARTICLE_COUNT_KEY, "Particle count", "2000");
4747
settingsGui.registerSetting(MIN_WEIGHT_KEY, "Min. particle weight", "0.0");
48-
settingsGui.registerSetting(MAX_DISTANCE_KEY, "Max. particle distance", "25.0");
48+
settingsGui.registerSetting(MAX_DISTANCE_KEY, "Max. particle distance", "35.0");
4949
settingsGui.registerSetting(SENSOR_RANGE_KEY, "Max. sensor range", "800.0");
5050

51-
settingsGui.registerSetting(MOVE_ROTATION_NOISE_KEY, "Move rotation noise (rad)", "0.3647");
52-
settingsGui.registerSetting(MOVE_DISTANCE_NOISE_KEY, "Move distance noise", "20.7188");
53-
settingsGui.registerSetting(RANGE_READING_NOISE_KEY, "Range reading noise", "0.4486");
51+
settingsGui.registerSetting(MOVE_ROTATION_NOISE_KEY, "Move rotation noise (rad)", "0.12");
52+
settingsGui.registerSetting(MOVE_DISTANCE_NOISE_KEY, "Move distance noise", "3.0");
53+
settingsGui.registerSetting(RANGE_READING_NOISE_KEY, "Range reading noise", "1.0");
5454
settingsGui.registerSetting(MIN_MOVE_DISTANCE_KEY, "Min. move distance", "10.0");
55-
settingsGui.registerSetting(MAX_MOVE_DISTANCE_KEY, "Max. move distance", "40.6");
56-
settingsGui.registerSetting(BAD_DELTA_KEY, "Bad range delta", "100.0");
55+
settingsGui.registerSetting(MAX_MOVE_DISTANCE_KEY, "Max. move distance", "40.0");
56+
settingsGui.registerSetting(BAD_DELTA_KEY, "Bad range delta", "35.0");
5757

5858
registerAbstractListener();
5959
registerSimpleListener();

aima-gui/src/main/java/aima/gui/swing/demo/robotics/simple/VirtualRobotGui.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import aima.gui.swing.demo.robotics.components.AnglePanel;
55
import aima.gui.swing.demo.robotics.components.IRobotGui;
66
import aima.gui.swing.demo.robotics.components.Settings;
7-
import aima.gui.swing.demo.robotics.components.AnglePanel.ChangeListener;
87
import aima.gui.swing.framework.util.GuiBase;
98

109
/**

0 commit comments

Comments
 (0)