PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO - Ododmetrie



luma
11.08.2005, 13:52
Hio alle zusammen. Ich schreibe dieses Posting, weil mir in diesem Forum viel zu wenig über die Odometrie von Asuro geredet wird. Ich will hier also ne kleine Diskussion starten. Ich finde nämlich das die beiden Odometer (oder wie man das nennt)eines der kompliziertesten Bauteile (nicht aus elektronischer Sicht) am Asuro sind. Besonders das Auswerten der gemessenen Impulse (und das sinnvolle Verwenden). Deswegen will ich mal nen kleines Posting anfangen. Jeder der noch was zum Thema weiß, kann das ja dann hier posten.

Durch Versuche habe ich herausgefunden, dass wenn sich der Asuro um seine eigene Achse um 360° (eine ganze Umdrehung) dreht (linker Reifen läuft vorwärts, rechter rückwärts) insgesamt etwa 160 Impulse gemessen werden. Als Impuls definiere ich den Wechsel von schwarz nach weiß oder andersherum, auf der Geberscheibe (da sind diese schwarz-weiße Streifen aufgemalt). Um ganz genau sagen zu können wie viele Impulse das mathematisch sein müssen, hab ich das alles ausgerechnet (korrigiert mich, wenn ich falsch bin).

Hier einige Messdaten oder andere Hinweise zu Asuro (d: Durchmessern, u: Umfang):
dReifen = 3,8197 cm (gerundet 3,9 cm)
uReifen = 12 cm
Abstand von Reifen zu Reifen (jeweils in der Mitte des Reifens gemessen) = 10,5 cm
und damit der Radius von der Mitte Asuros bis zur Mitte eines Reifens = 10,5 cm / 2 = 5,25 cm
Wenn sich der Reifen einmal dreht, so wird die Geberscheibe insgesamt fünf mal gedreht.
Insgesamt befinden sich sechs schwarze und sechs weiße Streifen auf der Geberscheibe und daraus ergeben sich 12 Impulse pro Umdrehung. Wenn sich der Reifen nun ein mal dreht, ergeben das 5 * 12 = 60 Impulse pro Reifenumdrehung.


Nun zurück zu meiner vorigen Aussage mit den 160 Impulsen. Wir lassen den Asuro wie beschrieben ein mal drehen (360°). Wir wissen das der Umfang des Reifen 12 cm ist und wir wissen, dass wenn sich der Reifen ein mal dreht 60 Impulse entstehen. Jetzt müssen wir nur noch herausfinden, wie oft sich der Reifen bei einer 360°-Umdrehung dreht um dann auszurechnen wie viele Impulse entstehen. Um das auszurechnen muss man die 10. Klasse im Gymnasium (bei der Realschule weiß ich das nicht) beendet haben. (Juhu das hab ich). Es gibt da mehrere nützliche Formeln mit ? (Pi). So gibt es eine Formeln, die lautet: u = ? * d. Diese eine Formel reicht schon völlig aus. Wir brauchen in dem Fall den Umfang. Jetzt müssen wir nur noch einsetzen. d ist ja 10,5 cm und ? eine feste Konstante die man mit jedem einigermaßen guten Taschenrechner erfragen kann (? = 3,141592654 sagt mir mein Rechner). Als Umfang kommt dann ungefähr 32,9867 cm raus. Jetzt ist es einfach. Wir wissen der Reifen hat einen Umfang von 12 cm. Daher müssen wir nur noch schauen wie oft dieser Umfang in den Umfang des gefahrenen Kreises reinpasst. Das wären dann 32,9867 cm / 12 cm = 2,75 cm (gerundet). D. h. der Reifen dreht sich 2,75 mal wenn Asuro eine Umdrehung von 360° vornimmt. Wie vorhin erwähnt dreht sich die Geberscheibe ja fünf mal wenn sich der Reifen ein mal dreht. In unserem Falle aber dreht sich der Reifen 2,75 mal. Das wären dann 2,75 * 5 = 13,74 Umdrehungen von der Geberscheibe, wenn sich der Asuro um 360° dreht. Und das wären dann 13,74 * 12 Impulse = 165 Impulse (gerundet). Der Wert kommt dem Wert von meinem Versuch doch recht nahe.


Jetzt habe ich noch eine Frage an die Experten unter uns. Wäre es nicht äußerst sinnvoll, die beiden für die Odometrie zuständigen Fototransistoren T11 und T12 gegen Infrarottranistoren auszutauschen? Wir haben ja auch Infrarotleds die die Geberscheibe bestrahlen. Die schon aufgebrachten Transistoren können ja bei normalen Lichtverhältnissen oder gar bei direkt Sonneneinstrahlung nie und nimmer was richtiges messen. Die Messen ja die Sonne, nicht die Reflektionen... Ich hab mir als erste Gegenmaßnahme gegen dieses Problem einfach bischen geschwärzten Tesa über die Transistoren geklebt und für dunkelheit gesorgt. Hat einige bei der Genauigkeit gebracht!


So, ich denke ich hab jetzt erstmal genug geschrieben. Jetzt seit ihr dran... :)

Andun
11.08.2005, 14:08
Hi

Also genau deine Berechnungen hab ich auch schon gemacht. Ich komm auf einen Radius von 21.06 für die Räder und hab dann einen Umfang von 12,06 cm. Weil ich das halt mit den Kommazahlen gerechnet habe, komm ich bei 360° auf 166,315 Ticks. (Also 166) Achja, als Radius der Drehung vom Asuro nehm ich 5,15, also Durchmesser 10,3 du hast da 10,5 also weicht das alles nur ein bisschen ab. :D Da ich das alles aber nur mit nem Messschieber gemacht habe, den ich dran gehalten habe (und vielleicht auch gewackelt) kann es gut sein, dass meine Ergebnisse nicht stimmen.

Wegen dem Abdecken: Das muss ich eigentlich auch noch machen, weil manchmal fährt der Asuro mit der Go() Funktion komischerweise manchmal ne extreme Kurve, was ich nur darauf zurückführen kann, dass er Impulse verliert oder zu viele bekommt.

Klebeband oder so, wollte ich auch noch drüber machen, aber das steht jetzt mit auf meiner Asuro Mod List: (1. Weitere Verbesserung der Liniensensoren 2. IR-Abstand 3. Das hier)

so long

Andun

luma
11.08.2005, 16:07
Hio. So ich hab jetzt ein bisschen weiter gemacht und eine neue Funktion für den Asuro geschrieben. Sie nennt sich TurnDegrees. Wer Englisch beherrscht weiß das Turn drehen heißt und Degrees Grad. Man übergibt der Funktion einfach die gewünschten Grad die er sich drehen soll. Allerdings ist sie noch mit Vorsicht zu betrachten. Denn sie ist nicht sonderlich genau. Das ist auch das Problem. Schaut auch das ganze einfach mal an und sagt mir dann was falsch ist. Mathematisch gesehen muss allerdings alles korrekt sein (hab's ja oben berechnet). Wahrscheinlich liegt es an der Vorgehensweise in der SIG_ADC-IRS. Es werden höchst wahrscheinlich einfach zu viele doppelte Werte geliefert.
Hinweis: Ihm Anhang befindet sich gleich die ganze Asurobibliothek. Sie basiert auf der erweiterten Bibliothek von Weja. Ich musste allerdings noch ein paar Änderungen vornehmen. In dieser Bibliothek befindet sich dann natürlich auch meine neue Funktion.

Gruß,
Lutz

EDIT: Negative Gradzahlen sind noch NICHT möglich!

stochri
11.08.2005, 18:33
@luma
die Funkttion Turn und Go gibt es schon, wenn auch mit kleinem Verbesserungsbedarf:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=11256&sid=6ae50f0da33658625135447571264fe2
und es wird auch noch ständig an der Odometrie gearbeitet. Vielleicht hilft es Dir, wenn Du das Forum genauer verfolgst.

stochri

luma
11.08.2005, 19:00
@ storich: Ich verfolge das Forum so gut es geht, mit meim ISDN-Anschluss...
Der Thread hört sich interessant an.

Andun
11.08.2005, 19:35
Ja. Auf den wollte ich auch schon verweisen. :D Da hab ich mich ja auch schon beteiligt. :D Deswegen hatte ich die Berechnungen auch durchgeführt und hatte die Zahlen oben sofort zur Verfügung.

Ich werd mir deins, aber auch mal ansehen. ;)

Andun

Nachtrag: Was ich grad sehe: Du fährst sobald du weißt wie weit auch einfach los und misst es an einer seite. Das hatte stochri in seiner 1. Version auch so. Da mein linkes Rad aber merklich schwerer dreht, gibt das bei mir immer fehler. Deswegen hab ich dort(im oben verlinkten Thread) die Turn() um die Odometer für beide Seiten erweitert. Auf jeden Fall ist es dann bei mir viel besser.

luma
12.08.2005, 18:37
Hat irgendwer mal mein Mini-Programm aus dem Anhang getestet?