Hier noch weitere Vorschläge zum Simulator:

- Jeder Roboter läuft in seinem eigenen Thread, unabhängig vom Simulator. Der Simulator selbst ist eine Art Server, der den Robotern auf Anfrage Sensorwerte liefert. In bestimmten Abständen (20 ms z.B.) liest er die aktuelle Geschwindigkeit aller Roboter aus und ändert entsprechend deren Koordinaten in der Umgebung. Der Roboter selbst müsste Interfaces wie getXPos(), getYPos(), draw(Graphics g) ... bereitstellen, die vom Sumulator aufgerufen werden.

- Wände bestehen nicht aus Pixeln bestimmter Farbe sondern sind eigenständige Objekte (Linien) in der Umgebung, z.B. von ( 10 | 10 ) nach ( 50 | 10 ). Die Umgebung würde also aus einer Liste von Wänden und einem Hintergrundbild für Linienverfolgung bestehen. Dadurch, dass dem Simulator die Anfangs- und Endkoordinaten bekannt sind, kann dieser die Steigung der Wände ausrechnen und somit auch Abrutschen an der Wand u.ä. simulieren, wie das in der echten Welt vorkommt, wenn ein Roboter gegen eine Wand fährt. Die Steigung kann man außerdem benutzen, um IR-Entfernungssensoren zu simulieren. Die Genauigkeit der Messung wird nämlich deutlich schlechter, wenn sich die Wand in einem zu geringen Winkel zum Sensor befindet.

- Es gibt zusätzliche verschiebbare Objekte (vorzugsweise rund, weil dadurch Berechnungen einfacher werden). Die könnten dann z.b. die Becher aus dem Video darstellen, oder auch Holzscheiben für den Robo Collect Wettbewerb usw.

MfG Mark