- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Probleme mit A Star, wenn Objekt größer ist als eine Nodepunkt

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Interessant wäre fürs Debugging eine Darstellung der untersuchten Felder (ähnlich der Animation im A*-Artikel in der deutschen Wikipedia)

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hi,
    das werde ich dann wohl heute abend mal eo erweitern.

    Interessant ist aber, das diese besagte Ecke eigentlich der kürzstes Weg ist,
    wenn ich den Weg nur in einer Breite von einem Kästchen sehen.

    Also ohne mein zusätzliches Quadrat um den Robotermittelpunkt,
    was ich als nicht begehbar ansehe um den Roboter
    nicht gegen Wände fahren zu lassen.

    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Ohne es auszurechnen: Das kann nicht sein (oder anders formuliert: Ich kann es nicht glauben ...).
    Nach meinem Verständnis geht der kürzeste Weg diagonal zum ersten Tor. Ich hätte übrigens auch eine diagonale Verbindung vom Wegpunkt nach dem ersten Tor zum Wegpunkt vor dem zweiten Tor erwartet.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Bedenke, das ich ein Quadrat von der Kantenlänge 16 um den Mittelpunkt gezogen habe. Hierdurch will er
    immer 8 Kästchen vom Rand (links & rechts) entfernt entlang fahren.

    Ich erweitere die Grafik mit weiteren Information und werde einfach mal das gespannte Quadrat weglassen und
    das Ergebnis hiervon auch mal zeigen.

    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von Ritchie Beitrag anzeigen
    Bedenke, das ich ein Quadrat von der Kantenlänge 16 um den Mittelpunkt gezogen habe. Hierdurch will er
    immer 8 Kästchen vom Rand (links & rechts) entfernt entlang fahren.
    Schon klar, aber der erste Wegpunkt (der "Haken") ist komplett überflüssig. Nach der Karte könnte der Roboter auch direkt zum zweiten Punkt fahren. Genauso könnte der vierte Wegpunkt (der vor der Schräge zum zweiten Durchgang) übersprungen werden, um direkt vom Ende des ersten Durchganges zum Eingang des zweiten Durchganges zu fahren.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    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.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Astar2.JPG   Astar1.jpg  
    Geändert von Ritchie (21.09.2012 um 18:45 Uhr)
    Kaum macht man es richtig, schon funktioniert's ...

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    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.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Astar3.jpg  
    Kaum macht man es richtig, schon funktioniert's ...

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    In der Tat. Wie bereits erwähnt, könntest du dir die Arbeit einfacher machen, wenn du den Radius des Roboters als 1 festlegst und stattdessen die Hindernisse vergrößerst. Da dein Roboter ja annähernd quadratisch zu sein scheint, dürfte der entstehende Verschnitt sich in einem akzeptablen Rahmen bewegen.

    mfG
    Markus

    Edit: Nachtrag zu deinem zweiten Post: Sieht besser aus, ja. Aber der Weg vom ersten zum zweiten Durchgang geht besser ... Und auch der Anfang ist komisch. Was meinst du eigentlich mit dynamischen Kosten?
    Tiny ASURO Library: Thread und sf.net Seite

  9. #19
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hallo,

    ich gebe Dir recht, das die ganze Sache noch nicht wirklich sauber ist.
    Die Wegberechnung ist jetzt besser, aber gefallen tut sie mir noch nicht.
    Deine Einwände sind korrekt. Hier scheint noch was faul zu sein.

    Auch will der Sucher -Algo. plötzlich wieder in die Ecke fahren, wenn ich das Ziel oberhalb der linke Ecke setze.

    Ich habe derzeit nur eine einfach Kostenrechnung, da ich mich gestern nicht mehr darum kümmern konnte.
    Schliesslich hat man doch hierbei eine Menge zu lesen, bevor ich an den Code gehen kann. Ich bin nämlich erst
    in den Anfängen von A*.

    Code:
            inline int    CostValue(int xo, int yo, int x, int y)
                {
                    if (xo - x != 0 && yo - y != 0)
                        return        2;
                    else    
                        return        1;
                }
    Wobei Xo,Yo die alte Position und X,Y die neue Position ist. Hier wird nur geprüft, ob er diagonal fahren will.

    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Die Kostenfunktion erklärt zumindest einige Irrwege (und macht, davon abgesehen, den A* obsolet weil ohne die Richtungsinformation eine vollständige Suche durchgeführt wird). Da die Kosten für eine diagonale Bewegung gleich den Kosten einer Bewegung entlang beider Koordinatenachsen gesetzt werden, kann der Algorithmus die Richtung frei wählen! Davon abgesehen erfüllt diese Kostenfunktion die A*-Bedingungen nicht mehr, da sie die Distanz überschätzt: sqrt(1² + 1²) < 1 + 1

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Fernsteuerung Simprop Star 8
    Von holzi im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 10.10.2010, 11:10
  2. ref: pathfinder mit a*star-algorithmus
    Von nomad im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 18.06.2010, 09:20
  3. Mein STAR²
    Von Spion im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 16
    Letzter Beitrag: 12.10.2006, 22:12
  4. Vergleich in ASM, wenn gleich oder größer gehe zu....
    Von Thomass im Forum Assembler-Programmierung
    Antworten: 7
    Letzter Beitrag: 20.06.2006, 16:34
  5. Antworten: 7
    Letzter Beitrag: 11.02.2006, 19:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests