## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### AW: [ct-bot] Erweiterung Pfadplanung

Absender: Frank Menzel
Datum: Sa, 28.03.2009 14:12:27
In-reply-to: <D44EF5BD-7CCD-408E-A31A-E68A6FFD45C4@xxxxxxxxxxxxxxx>

    Hallo Timo,
    zu 1.)
    Die Planung findet ja nicht den kürzesten Weg sondern eben nur einen
    Weg. Die Logausgabe ist da eigentlich nicht viel aussagekräftiger, um
    diesem auf die Spur zu kommen. Eine Welle geht ja von einer Zelle aus,
    wobei alle Nachbarzellen den gleichen erhöhten Wellenwert bekommen. So
    geht?s weiter bis zum Ziel. Wenn dann die Pfadrückverfolgung losgeht,
    dann wird immer in gleicher Richtung rund um die Zelle der jeweils
    kleinere Wellenwert genommen und dieser weiter rückverfolgt, wobei immer
    der zuerst gefundene genommen wird-also auch wenn alle anderen identisch
    sind. So muss diese Zelle nicht unbedingt die in Richtung Ziel naheste
    sein. Prinzipiell muesste man auch die Distanzfunktion einbringen
    koennen, um eben genau diese Zelle zu nehmen. Jedenfalls denke ich, dass
    eben dadurch die Richtung, die nicht unbedingt die zum Ziel kürzeste
    ist, verfolgt wird, bis ein kleinerer Wellenwert wieder die Richtung zum
    Ziel weist.
    Die Verteilung der Wellenwerte auf die niedrigauflösende Planungsmap
    (Taste 6) sollte da aussagekräftiger sein.

    Zu 2.)
    Die rote Linie geht ja oben durch die Mauer. Was ist oberhalb? Soll der
    Weg rechts der 2. Teil des Weges sein? Wo ist das Planungsziel?
    Mit welcher Taste hast Du geplant, also nur auf befahrenem Gebiet (Taste
    4) oder 5? Bei 4 sollte eigentlich alles nicht befahrene auf Hindernis
    stehen und die Planung da nicht langgehen, bei Taste 5 würde man die
    Welelnwerte direkt sehen...

    Erst mal so weit...

    Gruß, Frank

    -----Ursprüngliche Nachricht-----
    Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
    [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
    Sandmann
    Gesendet: Freitag, 27. März 2009 20:13
    An: Entwicklung rund um den c't-bot
    Betreff: Re: [ct-bot] Erweiterung Pfadplanung

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Hi Frank,

    Am 27.03.2009 um 13:24 schrieb Frank Menzel:
    > Hallo,
    > habe das Pfadplanungsverhalten erweitert um die Möglichkeit, nur auf
    > bereits befahrenem Gebiet zu planen. Ebenfalls habe ich dieses
    > erweitert
    > um die 8er-Nachbarschaft, d.h. der bot kann nun auch schräge Wege
    > fahren. Ist MAP_2_SIM_AVAILABLE eingeschaltet, wird nun ebenfalls
    > mittels roter Linien der berechnete Pfadweg in der Map visualisiert.

    sehr gut, ich habe das auch gerade mal ausprobiert und bin dabei auf
    zwei Dinge gestoßen:
    1.) Warum plant das Verhalten hier:
    http://www.heise.de/ct/projekte/machmit/ctbot/attachment/wiki/MLAttachme
    nts/Pfadplanung_debug_1.jpg

    so einen Umweg? Ich meine die dritte Planung, die in der Karte zu
    sehen ist, die beiden kurzen Geraden sind ja klar.
    Die Debug-Ausgabe des Planungsverhaltens sieht bis zu diesem Zeitpunkt
    so aus:
    http://www.heise.de/ct/projekte/machmit/ctbot/attachment/wiki/MLAttachme
    nts/Pfadplanung_debug_1.txt

    2.) Wenn der Bot nun weiterfährt, kommt es zu folgender Planung durch
    eine (bekannte) Wand:
    http://www.heise.de/ct/projekte/machmit/ctbot/attachment/wiki/MLAttachme
    nts/Pfadplanung_debug_2.jpg

    Die Log-Ausgabe hierzu:
    http://www.heise.de/ct/projekte/machmit/ctbot/attachment/wiki/MLAttachme
    nts/Pfadplanung_debug_2.txt

    Da läuft doch irgendwie etwas falsch, oder?

    Außerdem noch zwei andere Sachen:
    Im Code des Planungsverhaltens stehen ja noch einige ToDo-Punkte (ich
    glaube teilweise sind sie von mir), inwieweit sind die eigentlich noch
    aktuell bzw. überhaupt sinnvoll? Ich habe da nicht mehr so den
    Überblick. Einiges waren glaube ich nur so Dinge, die mir auffielen,
    als ich den Code durchgelesen hatte, unter Umständen sind die längst
    überholt oder von vorn herein unsinnig gewesen?

    Du hattest (nur zu Debug-Zwecken denke ich) im Planungsverhalten
    access_field() vom Map-Code benutzt. Es hat aber durchaus seinen
    Grund, warum diese Funktion eigentlich nicht von außen zugänglich ist:
    Die Funktion ändert globale Variablen und darf deshalb nicht parallel
    aufgerufen werden, sonst kann es zu erheblichen Inkonsistenzen in der
    Map kommen. Auf einem Einprozessorsystem ist das recht
    unwahrscheinlich, aber möglich und auf einem Mehrprozessorsystem sehr
    wahrscheinlich. Wenn man mit solchem Debug-Code die eigentlichen
    Datenstrukturen zerstört, bekommt man durch das Debugging anstatt der
    gewünschten zusätzlichen ganz schnell falsche Informationen. Wie
    gesagt, ist inzwischen überholt, weil es jetzt ja die Visualisierung
    mit den roten Linien gibt (sehr praktisch, dass du das in die
    Pfadplanung eingebaut hast!), ich wollte nur darauf hinweisen, weil
    das schnell zu unerklärlichen Bugs führt.

    Grüße,
    Timo

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.9 (Darwin)

    iEYEARECAAYFAknNJUcACgkQDH/BX4067fJt1ACdFqneuimW/7CjFXweaX7zEo6j
    NlEAoIWgcJeQAZZf2H875/aIpdBWWb4q
    =qhrM
    -----END PGP SIGNATURE-----

    _______________________________________________
    ct-bot-entwickler Mailingliste
    ct-bot-entwickler@xxxxxxxxxxxxxxxxx
    http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler

- Antworten:
  - Re: [ct-bot] Erweiterung Pfadplanung
    - From: Timo Sandmann

- Referenzen:
  - Re: [ct-bot] Erweiterung Pfadplanung
    - From: Timo Sandmann

- Voriger (Datum): Re: [ct-bot] Erweiterung Pfadplanung, Timo Sandmann
- Nächster (Datum): Re: [ct-bot] Erweiterung Pfadplanung, Timo Sandmann
- Voriger (Thread): Re: [ct-bot] Erweiterung Pfadplanung, Timo Sandmann
- Nächster (Thread): Re: [ct-bot] Erweiterung Pfadplanung, Timo Sandmann
- Indizes:
  - Datum
  - Thread