PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verhaltensbasierte Robotik, Subsumption Architecture... Frage...



SeveQ
12.03.2015, 13:34
Hi Leute,

ich hab gerade ein Semester (unter anderem) "Verhaltensbasierte Robotik" hinter mir (Masterstudiengang Systems Engineering) und Teil der Vorlesung war die sogenannte Subsumption Architektur nach Rodney Brooks. Ein, wie ich finde, sehr interessantes Konzept, um einem Roboter ein komplexes quasi-reaktives Verhalten beizubiegen.

Dabei wird das Gesamtverhalten des Roboters als Netzwerk aus Einzelverhalten ausgedrückt. Die Verhalten sind in Ebenen organisiert. Jede Ebene ist von der anderen unabhängig. Die unterste Ebene ist allein lauffähig und bildet einfache Verhalten ab. Darauf aufbauende Ebenen können diese einfachen Verhalten nutzen, um komplexere Verhalten zu erzielen. Verhalten höherer Ebenen können Verhalten niedrigerer Ebenen beeinflussen, indem sie deren Eingangsdaten unterdrücken (suppression) oder Ausgangsdaten modifizieren (inhibition). So weit, so verstanden...

Aber... ganz durchdrungen habe ich dieses Konzept wohl noch nicht, wie es scheint. Wenn ich mir dazu Beispiele im Web angucke, dann sehe ich dort zum Beispiel (http://en.wikipedia.org/wiki/Subsumption_architecture#/media/File:Subsumption_Architecture_Abstract_Diagram.png ) Verhaltensstrukturen, bei denen in der untersten Ebene Obstacle Avoidance implementiert ist. Dieses Avoid-Verhalten scheint in manchen Beispielen von übergeordneten Verhalten - beispielsweise zufälliges Umherwandern - beeinflusst zu werden. Das ergibt aber nach meinem (unvollständigen) Verständnis keinen großen Sinn. Warum sollte ich das Verhalten Obstacle Avoidance modifizieren oder gar überschreiben wollen? Obstacle Avoidance ist doch ein essentieller Mechanismus, der immer funktionieren muss, unabhängig davon, was andere Verhalten der Aktorik diktieren.

... wo liegt also mein Verständnisproblem? Kann mir da jemand den nötigen Schubs geben?

Danke!

Viele Grüße,
Hendrik

Manf
12.03.2015, 14:25
Wenn ein System in Ebenen getrennt ist dann doch dazu, um nicht in die andere Ebene einzugreifen.
Insofern nehme ich an dass die untere Ebene zwar ein Verhalten vorgibt, aber nur in Mindestanforderungen damit ein Spielraum bleibt den die höhere Ebene bedienen kann.
Wenn ich also rechts ein Hndernis habe dann sollte ich als höhere Ebene nicht nach rechts gehen, aber zwischen den verbleibenden Möglichkeiten auswählen.
Anders kann ich es mir nicht vorstellen.

HaWe
12.03.2015, 15:56
stell dir einen Fahrrroboter vor, der 4 ganz simple von einander verschiedene Verhaltenweisen hat:
1. normalerweise geradeausfahren
2. wenn er ein Objekt vor sich per Ultraschall entdeckt: Kurve fahren
3. wenn er an ein Objekt anstößt: anhalten, rückwärtsfahren, drehen, dann wieder vorwärtsfahren.
4. wenn jmand den Notaus-Schalter drückt: sofort alles stoppen.


Hier hast du deine hierarchische Subsumption-("Behaviour"-) Struktur, jede Ebene ist mit Sensor-Ereignissen verknüpft:

das Standardverhalten (niedrigste Priorität) "Geradeausfahren" wird duch "Kurvefahren" überschrieben, sobald ein bestimmtes Ereignis eintritt (Objekt von USS gemeldet"),
und wenn das Ereignis "Stoßstange meldet Anstoßen" eintritt, wird das momentane Verhalten durch "Zurückfahren und wenden" überschrieben,
und egal was gerade passiert, löst "Notaus gedrückt" ein Überschreiben aller anderen Verhaltensweisen aus, und sorgt für den Stopp aller Maschinen (höchste Priorität).

SeveQ
12.03.2015, 16:05
Ja, so verstehe ich das ja. Aber wenn ich mir das verlinkte Beispiel bei Wikipedia angucke, dann nehmen die Verhalten Wander und Explore Einfluss auf Avoid. Das ist es, was ich nicht verstehe. Wie wird dann noch eine Hindernisvermeidung erreicht, wenn Explore und Wander Einfluss auf Avoid haben?

i_make_it
12.03.2015, 20:07
Unter umständen lässt sich so auch feststellen, ob das Objekt ortsfest oder beweglich ist. Bei einem Roboter der alle beweglichen Objekte zu einer bestimmten Position bringen soll, würde das Überschreiben durchaus Sinn machen oder um festzustellen ob eine Wand nicht eine Tür ist die sich aufschieben lässt. Sozusagen eine Einfache Form von Tastsinn. Wobei man klassich aber tatsächlich Kollisionen eher vermeidet.

Und wenn man den Artilek liest kommt das auch raus:
http://en.wikipedia.org/wiki/Allen_%28robot%29
Der Allenbot versucht wohl tatsächlich damit ob er Hindernisse aus dem Weg schubsen kann.

SeveQ
13.03.2015, 14:49
Okay, das klingt plausibel als Begründung. Ist für das Anfahren von Objekten beispielsweise für Pick&Place ja vielleicht auch erforderlich.

Ich muss das ganze verstehen, weil ich vor habe, eine Subsumption Struktur für einen kleinen Roboter zu entwerfen, der bestimmte Aufgaben erledigen können soll:

* suche bestimmtes Objekt
* fahre Objekt an
* hebe Objekt auf
* fahre Ablage für Objekte Typ A an
* lege Objekt ab
* weiche währenddessen statischen und beweglichen Hindernissen aus
* wiederhole