28.02.2014 Aufrufe

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6.1 A* 55<br />

A* operiert auf zwei Listen, die zu Beginn beide leer sind und in die offene Liste (engl. open set)<br />

kommt die Startkonfiguration. Das Open Set stellt die Menge aller noch möglichen Konfigurationen<br />

dar, die noch nicht untersucht wurden und aus denen das kostengünstigste Element ausgewählt wird.<br />

Ist das Open Set leer, so wurden alle Möglichkeiten untersucht und es existiert k<strong>ein</strong> Pfad zur Endkonfiguration.<br />

Dieser Fall ist sehr unwahrsch<strong>ein</strong>lich, da in der Einleitung bereits erklärt wurde, dass die<br />

Anzahl der Konfigurationen exponentiell wächst und schnell den Rahmen sprengt, es ist nur möglich<br />

wenn der befahrbare Bereich stark <strong>ein</strong>geschränkt ist und k<strong>ein</strong>e Lücken aufweist. In der geschlossenen<br />

Liste (engl. closed set) befinden sich Elemente, die bereits untersucht wurden oder Elemente, wo Kollisionen<br />

mit der Umgebung erkannt wurden, so dass diese nicht mehr untersuch werden. Dadurch dass<br />

immer das kostengünstigste Element aus dem Open Set ausgewählt wird, breitet sich A* zielgerichtet<br />

aus. Da aber die Anzahl der Nachfolgekonfigurationen begrenzt ist und diese nicht immer perfekt in<br />

Zielrichtung zeigen, untersucht A* mit euklidischer Distanz als Heuristikfunktion auch nahegelegene<br />

Nachbarn, da diese oft Kostengünstiger wegen den Kurven werden (Abb. 6.2).<br />

(Abb. 6.2): A* mit euklidischem Abstand als Heuristikfunktion. Grau (open set), rot (closed set), grün (Pfad)<br />

Der Algorithmus (6.1) zeigt auf, wie der A*-Algorithmus arbeitet. Dazu sei angemerkt, dass die<br />

Methode public Node GetNode(List set, Node node) den Knoten zurückliefert,<br />

der nach Parameter<strong>ein</strong>stellungen nah genug am übergebenen Knoten ist und nahezu die gleiche<br />

Orientierung hat. Aufgrund mathematischer Ungenauigkeit und Fehlerfortpflanzung beim Rechnen<br />

werden so ähnliche Knoten unifiziert. Wird k<strong>ein</strong> ähnlicher Knoten in der Menge gefunden, so wird<br />

null geliefert.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!