c't

c't-Projekte - Mailinglisten


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

[ct-bot] Abstandssensoren kalibrieren

Absender: Frank Menzel
Datum: Mo, 02.07.2007 20:37:24
In-reply-to: <4F431FBA-2960-4043-B141-3836F0AFC52F@xxxxxxxxxxxxxxx>


Hallo,
nur noch mal zum Test, ob ich hier alles richtig verstanden habe:
Bei der Motorregelung ist es ja beim Kalibrierungsverhalten so, dass am
Ende die Reglerwerte direkt auf dem Bot-Screen ausgegeben werden und
einfach nur in die bot_local.h eingetragen werden müssen. Danach das
Verhalten via Define wieder ausschalten und alles ist gut-hat übrigens
prima bei mir geklappt.
Bei den Abstandssensoren ist es aber wohl scheinbar so, dass nach dem
normalen HEX-flashen die Sensoren nicht auf Entfernung reagieren und
beide 999 anzeigen. Da gibt es doch aber die unten erwähnte
sensor_correction.h, die zumindest bei mir zu Beginn nichts bewirkt.
Dann kann man wohl das Verhalten starten und diverse Male den bot auf
richtigen Abstand bringen. Danach werden per log die Daten ausgegeben,
die man wiederum in die sensor_correction.h eintragen kann. Habe leider
kein WLan und kein Kabel-da waren die Ausgaben der Motorregelung auf dem
Display prima. Warum greifen aber die Standardwerte in der Datei nicht
zu Beginn ? Jetzt muß ich also immer nach jedem flashen den bot
langwierig mit dem Verhalten auf die Abstände bringen und erst dann
kanns losgehen...

Gruß, Frank  Menzel

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Mittwoch, 13. Juni 2007 16:48
An: Entwicklung rund um den c't-bot
Betreff: Re: AW: AW: AW: AW: [ct-bot] devel-Version nicht mehr lauffähig
?

Hallo,

Am 13.06.2007 um 15:44 schrieb Menzel, Frank IT-OO4:

> Also das ist mir unklar, wie kann ich den die Sensordaten per  
> Programmer übertragen ?

in der Datei sensor_correction.h stehen Default-Werte, die der  
Compiler / Linker in die ct-Bot.eep übernimmt. So wie sich der  
Programmcode des ct-Bot.hex-Files ins Flash übertragen lässt, geht  
das auch mit dem ct-Bot.eep-File ins EEPROM. Z.b. für die Init-Werte  
von bot_turn() ist das ja schon lange so.

> Soll es denn in Zukunft immer so sein, daß die Entfernungssensoren  
> nichts anzeigen, wenn eben noch keine Referenzdaten vorliegen ? Da  
> hat man nach mühevoller Kleinarbeit endlich seinen bot  
> zusammengebaut und erstmalig geflasht und muß feststellen, daß die  
> Entfernungssensoren nicht funktionieren ? Da werden wohl die  
> wenigsten wissen, daß erst noch das Verhalten zum Kalibrieren  
> aufzurufen ist und Sensoren trotzdem ok sind auch wenn 999  
> angezeigt wird...

Na ja, das lässt sich ja dokumentieren. Es gab eine kurze Diskussion  
darüber, ob es Sinn macht per #define noch eine alte Sensorauswertung  
einschalten zu können bzw. das per default so zu machen, das Ergebnis  
war "nein".
Es gibt ja Vorgabewerte, s.o. die eigentlich nicht immer 999 liefern  
dürften. Obwohl die Entfernung damit wohl nicht stimmen dürfte, aber  
das war ja auch schon immer so.
Die alte Sensorauswertung war einfach und brauchbar, aber eben nicht  
so genau wie es möglich ist. Außerdem auch relativ langsam. Wenn man  
alles so lässt, wird man selten ein besseres Ergebnis bekommen, also  
ist es manchmal vielleicht durchaus sinnvoll, einmal eine Umstellung  
zu machen. Da das Ganze bisher als nur Testversion im devel-Zweig  
ist, fehlt nur leider ein bisschen erklärender Text dazu.

> Wäre es nicht besser bis zum Vorliegen der Refdaten auf die  
> Originalwerte der Sensoren zuzugreifen ?

Und was sind die "Originalwerte"? Um den knappen Flash-Speicher zu  
schonen sollen die Daten ja eben auch ins EEPROM und dafür gibt es  
Standardwerte in sensor_correction.h. Glücklich wird man damit  
natürlich noch nicht, weil sie für jeden Bot wohl etwas anders  
aussehen müssten.
Ob man nun das im ursprünglichen ct-Artikel beschrieben Verfahren zur  
Distanzsensorkalibrierung anwendet oder ein anderes, bei dem der Bot  
selbst die Daten errechnet und speichert, ist ja eigentlich nicht so  
der Unterschied. Letzteres ist imho nur genauer und auch schneller  
gemacht.

Gruß Timo

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