c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Peter Jonas
Datum: Mi, 29.03.2006 08:49:08
Hallo Herr Thiele,
zunächst einmal vielen Dank für Ihre Bemühungen, den Sensorproblemen auf die
Spur zu kommen. Dazu einige Bermerkungen:
1. Spikes im Ausgang
Hier wäre es interessant, das Ausgangssignal der Sensoren in realer
Bot-Umgebung zu sehen, und zwar für unterschiedliche Abstände und für
reflektierenden Boden (Parkett) und nicht reflektierenden Boden (Teppich).
2. Betrieb über BS250
Mich würde interessieren, ob es überhaupt einmal eine sinnvolle Anwendung
geben wird, bei der die Sensoren ein- und ausgeschaltet werden (soweit ich
mich erinnere, benötigen die Sensoren deutlich mehr als 50 ms, um zu
?booten?). Ansonsten ist das Überbrücken des BS250 eine wirkungsvolle
Maßnahme, die bei meinem Bot auch in Ergänzung zu den 100 uF-Elkos noch eine
deutliche Verbesserung brachte.
3. Messzyklen
Ich gehe davon aus, dass das PSD-Element aufgrund der Scheibendrehung eine
Rechteckspannung liefert, deren Flanken nicht steil, sondern schräg sind.
Wenn der Sensor dieses empfangene Signal abtastet, wird es auch
Abtastzeitpunkte während dieser Flanken geben. Dadurch entstehen dann die
schmalen Stufen zwischen den eigentlichen breiteren Werten. Da die Drehung
der Scheibe und die Taktung des Sensors asynchron zueinander sind, variiert
der Meßwert dieser zusätzlichen Stufe in der Höhe natürlich.
Schaltungstechnisch könnte man das evt. in den Griff kriegen, indem man am
Sensor detektiert, wann die LED pulst, und davon abhängig dann den
AD-Wandler des Bots steuert, so dass Messungen nur während der richtigen
Sensorwerte stattfinden. Dafür könnte man am Sensor den Meßpunkt verwenden,
der im Steckerbereich neben dem Vcc-Anschluß liegt (siehe hierzu
http://people.ee.ethz.ch/~althaufe/robots/8bit/) . Ich bezweifele jedoch,
dass im realen ?Botleben? diese Zwischenwerte eine Rolle spielen, denn die
zappelnden Messwerte treten ja auch auf, wenn sich der Abstand nicht ändert.
4. Abstrahlwinkel (und optische Interferenzen)
Dies scheint mir der wichtigste Einflußfaktor zu sein, wenn man bereits die
Versorgungsspannung durch die einschlägigen Maßnahmen geeignet geglättet
hat. Hier spielt ein evt. stark reflektierender Boden (Parkett) eine große
Rolle:
So weisen linker und rechter Sensor z.B. unterschiedliche maximal messbare
Distanzen auf, weil das Licht des linken Sensors auf dem Parkettboden
reflektiert wird und in einem anderen Winkel am PSD-Element auftrifft als es
beim rechten Sensor der Fall ist. Hier hilft es, den linken Sensor um 180
Grad zu drehen, und evt. (wie ich es gemacht habe) den Anschlußstecker und
dazugehörendes Platinenstückchen vom Sensor zu entfernen, damit diese nicht
ins Transportfach des Bots hineinragen.
Auch die Wirkung der ?Scheuklappen? hängt stark von der Umgebung und dem
Boden ab. Ich konnte die Störungen z.B. deutlich vermindern, indem ich auf
der einen Seite einen Pappstreifen oberhalb des Sensors und auf der anderen
Seite unterhalb des Sensors anbrachte. Wenn ich dann allerdings den Sensor
drehte, waren die Störungen wieder da, weil nun das Streulicht von ganz
anderer Seite kam.
Die unregelmäßigen niederfrequenten Störungen haben m.E. die Ursache darin,
dass das Licht des einen Sensors den jeweils anderen Sensor beeinflußt. Da
beide Sensoren asynchron zueinander arbeiten, gibt es Zeitpunkte, wo der
andere Sensor blind für dieses Streulicht ist, und andere Zeiten, wo er es
als Messwert interpretiert. Man erhält eine Schwebung, die von der
Frequenzdifferenz beider Sensoren abhängt. Denkbar ist, dass bei manchen
Anwendern diese Schwebungen weniger störend sind, weil hier die Differenz
der Frequenzen anders ist.
Hier müsste man also einen Weg finden, die beiden Sensoren zu synchronieren.
Evt. könnte man auch hier den oben beschriebenen Messpunkt beider Sensoren
verwenden, um zumindest ?unschöne? Messungen zu verwerfen, die sich aus
einer bestimmten Lage der Sendeimpulse zueinander ermitteln lassen.
Da Sie ja die technischen Meßmöglichkeiten haben, würde mich interessieren,
wie sich diese Störungen über die Zeit (abhängig vom Boden und Distanz)
zeigen (Speicheroszilloskop).
Eine weitere unschöne Wirkung hat auch die Linearisierung der
Sensorkennlinie: Da die Kennlinie ja gerade bei größeren Distanzen deutlich
abflacht, muss hier durch einen entsprechend großen Korrekturfaktor versucht
werden, die Kurve zu begradigen. Dass heißt aber auch, dass die Störsignale
gerade in diesem Bereich zusätzlich verstärkt werden. Der Störabstand bei
großen Distanzen ist ja besonders klein, weil der Sensor hier sowieso die
kleinste Ausgangsspannung liefert und alle Störungen relativ stark wirken
können.
Beim weiteren Vorgehen sollte man sich vielleicht mit einer empfindlichen
Infrot- oder SW-Kamera mal die Reflexionen anschauen, die auf die Sensor
zurückfallen. Evt. kann man dadurch die Scheuklappen weiter optimieren.
Ausgehend von den diversen Oszilloskopmessungen und -aufzeichnungen sollte
man dann gezielt in der Software versuchen, das Preoblem zu mindern.
Ganz interessant in diesem Zusammenhang ist übrigens der Thread im
ctbot-Forum (insbesondere die Bilder):
http://www.ctbot.de/forum/probleme-mit-den-sharp-gp2d12-t115.html
http://www.ctbot.de/forum/linker-abstandssensor-umgebaut-t295.html
Beste Grüße
Peter Jonas
--
Bis zu 70% Ihrer Onlinekosten sparen: GMX SmartSurfer!
Kostenlos downloaden: http://www.gmx.net/de/go/smartsurfer