Liste der Anhänge anzeigen (Anzahl: 1)
Probleme mit A Star, wenn Objekt größer ist als eine Nodepunkt
Hallo Zusammen,
ich habe folgendes Problem mit meinem A-Star Verfahren.
Ich habe eine Matrix angelegt, welche deutlich keiner ist, als mein eigentlicher Roboter.
Die einfache Suche ohne Hindernis arbeitet ohne Probleme.
Nur wenn ich Hindernisse einfüge, so werden die Hindernisse nicht korrekt umfahren, da die Größe des Roboters nicht korrekt
vorgesehen wird.
Ich habe hierbei auch die Routine, welche für die Funktion "Feld Frei" dahingehend erweitert, das in einem Radius
in der Größe des Roboters die Felder (in Fahrtrichtung) geprüft werden. Nur rechnet sich hierbei mein Roby zu tode.
Hat hier jemand eine Idee, wie ich das weiter angehe sollte.
Die beigefügte Grafik zeigt ein Beispiel einer meiner letzten Versuche. Hierbei sind die gelben Punkte, die untersuchten Punkte.
Die grünen Punkte sind Stützpunkte welche angefahren werden sollen. Diese sind auch noch suboptimal.
Rot ist der Startpunkt und Blau der Zielpunkt.
Wäre der Roby nur so gross wie eine Karteneinheit, würde das ganze korrekt arbeiten. Die Karte ist aus dem Grund kleiner, da ich Objekte in einer entsprechenden Auflösung darstellen und umfahren kann.
Gruss R.
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
so, die Route wird jetzt schon besser berechnet.
Die Zeit hierfür ist derzeit noch nicht die nächste Aufgabenstellung, sondern immer noch der Weg der gefahren wird.
Wir bekomme ich die Hacken aus der Routine raus ?
Warum will er nicht direkt nach unten fahren und fährt anstelle dessen weiter in Richtung Ziel?
Hilft mir hier eine bessere/andere Heuristik ?
http://theory.stanford.edu/~amitp/Ga...euristics.html
Hier meine derzeitige Formel:
Code:
newnode->h = (Position.Low_x()-m_iDestination.Low_x())*(Position.Low_x()-m_iDestination.Low_x()) +
(Position.Low_y()-m_iDestination.Low_y())*(Position.Low_y()-m_iDestination.Low_y());
Gruss R.
Liste der Anhänge anzeigen (Anzahl: 2)
Du hast recht.
Ich habe jetzt nur die Standard "frei" routine aktiviert und hier sieht das ganze genauso "seltsam" aus.
Ich habe hier die Felder gelb markiert, welche die Routine auf Frei geprüft hat.
Meine Kostenroutine gibt immer 1 zurück, für eine Bewegung auf ein anderes Feld.
Edit 2: Ich vermute hier den Fehler.
Edit:
Und das zweite Bild zeigt, wie es eigentlich aussehen sollte.
Jetzt habe ich was zu tun :-)
Gruss R.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
nachdem ich dynamische Kosten eingefügt habe, zeigt sich das Suchergebenis schon deutlich besser.:)
Aber 100% optimal ist der immer noch nicht ...
Gruss R.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
so, ich habe das ganze nochmals überarbeitet. :rolleyes: Jetzt hoffe ich doch, das jetzt auch die A* Funktionen besser durchkommt und keine reine Suchfunktion über alle Felder vorhanden ist.
Edit:
Nochmals viele Dank an Markus für die Hilfe.
Gruss R.