Modul Menü

Wer ist online?

Insgesamt sind 4 Besucher online: 1 registrierter, 0 unsichtbare und 3 Gäste
Der Besucherrekord liegt bei 81 Besuchern, die am 10. Nov 2012, 16:28 gleichzeitig online waren.

Mitglieder: Google [Bot]

basierend auf den aktiven Besuchern der letzten 5 Minuten

Statistik

2 Beiträge


Neuestes öffentliches Bild

  • Bild Titel: Yeti_c't-Bot
    Autor: V2
    Verfasst am: 19. Okt 2012, 16:51
    Betrachtet: 61
    Bewertung: Nicht bewertet

Geburtstage

Heute hat kein Mitglied Geburtstag kein Mitglied hat in den nächsten 3 Tagen Geburtstag

Kalender

<< Mai 2013 >>
Mo Di Mi Do Fr Sa So
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Fest u. Feiertage Kalender-Ereignisse
01.05. - 1. Mai
09.05. - Christi Himmelfahrt
12.05. - Muttertag
19.05. - Pfingstsonntag
20.05. - Pfingstmontag
30.05. - Fronleichnam

Anstehende Termine:

Diskussion: ctSim-Erweiterungen

Die Programmierung des c't-Sim

Moderator: Moderatoren Team

Diskussion: ctSim-Erweiterungen

Beitragvon Eggi » 5. Feb 2008, 09:06

Hallo liebe ctSim-Entwickler. Mein derzeitiger Arbeitgeber möchte für verschiedene Studiengänge ein Robotik-KI-Praktikum anbieten, welches auf Basis eines simulierten ctBots stattfinden soll. Ziel das Praktikums soll der Entwurf und die Implementation verschiedener Bestandteile einer Bot-KI sein. Der Bot hat die Aufgabe in einem ihm unbekannten Terrain sämtliche Lichtquellen zu finden und diese mindest einmal besuchen. Dabei soll ein Missionmanagment über den Energiestatus des Bots wachen und gegebenfalls diesen zur letzten bekannten Lampe zum Laden seiner Akkus zurück schicken.

Da diese Erweiterung auch wieder in die Community als Patch oder integriertes Feature zurück laufen soll, möchte ich hier auf Ideensammlung gehen bzw. mit erfahreneren Entwicklern über die Änderungen diskutieren.
Grundlegend ergeben sich durch mich erstmal folgende Anforderungen, welche ich gerne noch durch weitere Vorschläge ergänzen möchte:
  • Überwachung, welche Lampen schon erreicht wurden/ welche noch anzufahren sind
  • Kostenbewertung der Sensor-/Aktortätigkeiten um Energiemanagment einzuführen


Da ich mir schon einen kleinen Überblick im derzeitgen Entwicklungscode verschafft habe, möchte ich auch gleich einige Vorschläge bieten, wo Änderungen einzupflegen sind.

Die Überwacher des "Simulationsfortschrittes" sind ja die Judge-Klassen, von welchen schon zwei existieren. Allerdings möchte ich anmerken, dass deren Implementierung eher rudimentär ist und man diese Klasse in der derzeitigen Version eigentlich auch weglassen könnte. Hinsichtlich des MCV-Patterns, wäre nun Wolrd das Modell und Judge eine der zugehörigen Controller Klassen. Um nun Judge eine Missionsüberwachung und -bewertung zu ermöglichen, müsste eine Schnittstelle geschaffen werden, über welche Judge Missionsparameter abfragen kann, z.B. zu erreichende Lampen, zu erreichende Zielpositionen. Hier sollte man nun Ideen sammeln, welche "Missionsziele" weiterhin interessant wären!
Der nächste Punkt ist das "Energiemanagment". Der reale Bot hat nur seine Akkus und diese verbrauchen sich bei jedem Sensorscann / Aktoreingriff. Um die nötigen Features für einen simulierten Bot implementieren zu können, hätte ich eine erweiterte ctBotSimTest-Klasse vorgeschlagen, welche den derzeitigen Energiestatus des Bots enthält und sämtlich Aktionen bewertet.

Wie gesagt ich möchte meine Vorschläge als Diskussionsgrundlage verstehen, allerdings soll das nicht heißen das man diese "Grundlage" nicht auch noch völlig anders gestalten kann :D
Eggi
Friends of Marvin
Friends of Marvin
 
Beiträge: 4
Registriert: 19. Jul 2006, 13:49
Wohnort: derzeit Stuttgart

Beitragvon eax » 6. Feb 2008, 00:48

Kurze Zusammenfassung unserer IRC-Diskussion dazu:
  • Judge fordert bei World eine Liste der aktiven Bots an und fragt pro Bot ab, ob ein Zwischen-Zielpunkt (z.B. eine Lampe) erreicht wurde, analog zu finishReached() beim Wettbewerbsjudge.
  • Die Koordinatenberechnungen laufen komplett in World ab, der Judge bekommt nur auf Anfrage zu Bot X zurück, welcher (Zwischen-)Zielpunkt erreicht wurde.
  • Außerdem kann der Judge abfragen, wie viel (Zwischen-)Ziele es gibt (z.B. Lampen).
  • Ob der Bot nur ein Ziel (ODER Verknüpfung) oder alle Ziele (UND) erreichen muss, wird komplett in der Judge-Klasse implementiert.
  • Für das Energiemanagement bekommen die Bots eine Komponente "Akku", deren Wert mit der Zeit um einen Betrag X abnimmt und je nach Motordrehzahl zusätzlich noch um Betrag Y.

Ich glaube das war alles ;-)
eax
Friends of Robby
Friends of Robby
 
Beiträge: 727
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe


Zurück zu Programmierung

Wer ist online?

Mitglieder: Google [Bot]

cron