Absender: Timo Sandmann
Datum: Do, 11.09.2008 13:14:31
In-reply-to:
<48C139945BA47F4DB4DE05DF62CD57AA03C520F864@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References:
<48C139945BA47F4DB4DE05DF62CD57AA03C520F864@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Hi, Am 10.09.2008 um 07:37 schrieb Menzel, Frank IT-OO4:
Hi,ich hatte die Idee, einen vorher erforschten Parcour als Karte abspeichern zu können, welche aber nur die Hindernisse beeinhalten soll. Also weder die eigene Spur noch die Sichtstrahlen.
ja, eine Funktion, die alle positiven Werte aus der Karte löscht, sollte kein Problem sein.
Eine solche Karte könnte man dann einfach wieder einladen (via Remotecall), bevor man z.B. drive_area startet. DieWände wären dann alle zum Startzeitpunkt des Verhaltens bekannt. Nach den jetzigen Routinen geht dies leider nicht ohne weiteres. Die bot bot erzeugte Karte kann zwar eingelesen werden aber dann nur umgewandelt und gespeichert werden als PGM-Datei. Wie wäre es mit dem umgedrehten Weg ?
Aus einer PGM-Datei eine Map erstellen?Sinnvoll wäre erstmal eine Funktion, die eine Map aus dem PC-RAM in eine Datei schreibt, die der Bot lesen kann (MiniFAT). Das ist ziemlich einfach, weil man lediglich den RAM-Inhalt in eine Datei schreiben muss und den Header dazu packen. Sehr cool wäre es, wenn der Sim aus einer Parcours-Datei eine Map mit den entsprechenden Hindernissen erstellen könnte. Das ist aber wohl ein bisschen aufwändiger, weil der Sim den Map-Code nicht besitzt. Alternativ könnte auch der PC-Code eine Parcours-Datei einlesen, dann muss man aber das XML in C parsen (Libs?).
Was ich sowieso vor habe ist, dass der Bot nicht nur (MiniFAT) Dateien von der MMC lesen kann, sondern auch selbst welche anlegen, löschen, kopieren usw. Dann ist es z.B. möglich von einer Rohkarte (nur im Voraus bekannte Hindernisse der Umgebung) eine Arbeitskopie zu erstellen, die der Map-Code verwendet. So kann man auch jederzeit wieder zur Ausgangskarte zurückkehren. Es gibt natürlich noch viele weitere Anwendungsmöglichkeiten. Außerdem soll es möglich sein, jede Dateioperation auch remote (per LAN / WLAN oder USB) ausführen zu können (--> so was wie NFS). Damit sollten die angesprochenen Map-Funktionen dann alle möglich sein. Der Code ist aber noch nicht ganz fertig.
Voraussetzung für vorgegebene Karten ist aber, dass sich der Bot in der Welt lokalisieren kann, also seine globale Position in der Welt kennt und seine Lokale danach korrigieren kann, sonst macht das Ganze wenig Sinn. Dass der Bot seine globale Position nur anhand der Karte findet, ist für den Anfang glaube ich zu kompliziert. Vielleicht sollten wir daher zunächst erstmal das Lokalisierungsproblem angehen.
Grüße, Timo