Einfach entscheiden ob rechts oder links lenken?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einfach entscheiden ob rechts oder links lenken?

    Hallöchen,

    momentan an der Programmierung einer KI für Autos drann bin. Diese soll in meinem Fall einfach nur mal einen bestimmten Punkt (x,y-Koordinate anfahren. Jedoch möchte ich nicht einfach nur bei einer Richtungsänderung die Ausrichtung des Fahrzeugs mittels der Funktion "Point-direction" direkt machen,da ich ja hierbei keine Drehbewegung habe sondern der wagen dann auch 90 oder 270 grad haken schägt. Die Ansicht der Wagen ist von oben also Top-Down.

    Im Kopf hört sich meine idee ganz einfach an, die Fahrphysik ist bereits erstellt und mir fehlt einfach nur folgendes :


    Eine Abfrage soll einfach entscheiden ob die KI nach rechts lenkt oder nach links lenkt. Wenn der anvisierte Punkt IN FAHRTRICHTUNG rechts ist soll er nach rechts lenken und in FAHRTRICHTUNG links eben nach links.

    Hört sich eigentlich ganz einfach und logisch an gell ? Aber mein Problem hier ist nun, dass ausrichtung des Fahrzeugs und die Funktion "Point_direction" immer nur ABSOLUTE Werte sind also 0 Grad ist immer rechts. Einfacher wäre es wenn der Wert der Funktion "Point_Direction" relativ zur ausrichtung des Fahrzeugs wäre.


    Hat da jemand vielleicht ne Lösung ?

    Schöne Grüße,
    Heiko
  • Wenn ich das recht verstanden habe, willst du einfach, dass sich dein Auto nach rechts dreht, wenn der Punkt rechts ist und nach links umgekehrt.

    Ist eig. ganz simpel. Du musst imprinzip nur die Entfernung in X bzw. Y-Richtung herausbekommen (je nachdem, wie das Fahrzeug ausgerichtet ist) und dann schauen, ob der Wert positiv oder negativ ist. Du kannst es aber auch mit nem Winkel machen.

    Versuch mal selbst, auf den Code zu kommen. Ich hoffe, der Denkanstoß konnte dir helfen ;).
  • Hallo,

    ich habe mal einige Fallbeispiele dazu gemacht. Wie man sieht sind die Koordinaten vom Zielpunkt und des Fahrzeugs immer dieselben. auch der Winkel von fahrzeugposition zur Zielposition ist immer derselbe.

    Aufgrund der unterschiedlichen Möglichkeiten wie die momentane Fahrtrichtung des Fahrzeugs ist ergeben sich aber unterschiedliche Entscheidungen, damit das Fahrzeug immer den kürzesten Weg zum Zielpunkt findet. in den Beispielen sind die Fahrtrichtungen zufällig 90Grad Schritte. Ebenso kann das Fahrzeug aber auch eine Direction von 237, 46, 350 Grad oder sonstwas haben.

    Bisher hab ich dazu leider noch keine funktionierende Lösung gefunden.

    Aber ich bleib drann :)


    Gruß Heiko
    Bilder
    • beispiel.jpg

      20,58 kB, 500×500, 160 mal angesehen
  • Versuch's mit folgender Rechnung:

    GML-Quellcode

    1. //direction ist die Richtung des Autos
    2. //pointdirection ist die Richtung des Punktes zum Auto
    3. //direct_dif ist die Differenzen der beiden oben genannten Variablen
    4. pointdirection = point_direction(auto.x,auto.y,pinkt.x,punkt.y);
    5. direct_dif = pointdirection - direction;
    6. if (direct_dif < 0)
    7. direct_dif += 360;
    8. if (direct_dif >= 180 && direct_dif < 350)
    9. direction -= 10;
    10. else if (direct_dif >= 10 && direct_dif <180
    11. direction += 10;
    12. else
    13. direction = pointdirection;
    Alles anzeigen

    Hab's jetzt nicht überprüft, sollte aber klappen.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik