Arexx RP6 V2 Build your own robot kit RP6 V2 User Manual

Product codes
RP6 V2
Page of 141
RP6 ROBOT SYSTEM -   ANHANG
B – Encoder Kalibrierung
Die Auflösung der Encoder (Drehgeber) ist vom tatsächlichen Durchmesser der An-
triebsräder und der Gummiketten abhängig. Die Gummiketten drücken sich in den Un-
tergrund ein und werden auch selbst etwas eingedrückt. Zusätzliche gibt es natürlich 
Fertigungsschwankungen. Daher kann man den Durchmesser nicht genau berechnen 
und muss Messreihen durchführen um die tatsächliche Encoderauflösung etwas ge-
nauer zu ermitteln. 
Nur um Missverständnisse zu vermeiden: Hier geht es NICHT darum mit den 
Potis die Drehgeber zu justieren
 damit ein gutes Signal erzeugt wird – das ist 
ein völlig anderes Thema. Hier geht es um die Auflösungs-Kalibration.
Die Auflösung ist die Distanz, die der Roboter pro Encoderzählschritt zurücklegt. Theo-
retisch sind das 0.25mm pro Zählschritt. Aber in der Praxis liegt die tatsächliche Auf-
lösung eher im Bereich von 0.23 bis 0.24mm. Um die Auflösung zu bestimmen, müs-
sen Sie den Roboter eine möglichst große Distanz geradeaus fahren lassen (z.B. einen 
Meter oder mehr) und mit einem Maßband genau messen wie weit er tatsächlich ge-
fahren ist. Der Roboter sollte dabei mit dem PC verbunden bleiben und die gezählten 
Encoderschritte anzeigen. Das USB Kabel und das Flachbandkabel muss locker über 
dem Roboter hergeführt werden – nicht dran ziehen oder das Kabel zu fest halten! Die 
vordere Kante der Bumper Platine sollte zu beginn genau auf den Anfang des Maßban-
des zeigen. Der Roboter sollte möglichst genau ausgerichtet werden, damit er gerade-
aus neben dem Maßband herfahren kann. 
Man kann (als kleine Übung) z.B. ein Programm schreiben in dem der Roboter genau 
einen Meter weit fährt. Oder 2m oder eine andere Distanz. Das Programm kann man 
immer neu kompilieren und wieder in den Roboter laden wenn man die Distanz geän-
dert hat. Das Programm sollte auch in regelmäßigen Intervallen die bereits zurückge-
legte Distanz in Encoder Zählschritten  ausgeben.  Ein Meter entspricht bei 0.25mm 
Auflösung genau 4000 Zählschritten. Fährt der Roboter bei dem Test nun aber z.B. 
nur 96.5cm also 965mm und zählt dabei 4020 Encoderschritte, entspräche das einer 
Auflösung von etwa 0.24mm. Man teilt hier einfach 965mm durch 4020. Diese Mess-
werte notieren Sie sich dann in einer Tabelle. Wiederholen Sie den Test noch zwei mal 
und tragen Sie auch diese Werte in die Tabelle ein. Dann trägt man den Mittelwert 
daraus in die Datei RP6Lib/RP6Base/RP6Config.h bei ENCODER_RESOLUTION ein (relati-
ver  Pfad  vom  Hauptverzeichnis   der  Beispielprogramme   aus  gesehen   –  abspeichern 
nachher nicht vergessen!), kompiliert  das Programm erneut und lädt es in den Robo-
ter. Dann wiederholt man den Test wieder dreimal. Es sollte jetzt schon etwas besser 
klappen, einen Meter weit zu fahren. Falls nicht, muss man den neu ermittelten Wert 
wieder in die Datei eintragen. Perfekt bekommt man das allerdings nur schwer hin – 
jedenfalls nicht ohne zusätzliche Sensoren.
Beim Rotieren auf der Stelle wird die Sache viel komplizierter. Hier rutschen die Ket-
ten während der Drehung nämlich über den Boden und die tatsächlich zurückgelegte 
Strecke ist kürzer, als die gemessene Strecke. Zudem ist das sehr stark vom Unter-
grund abhängig, da die Ketten auf Teppichboden „anders rutschen“ als z.B. auf Par-
kett. Von daher muss man immer mit gewissen Ungenauigkeiten von bis zu 10° rech-
nen. Auch driftet der Roboter auf einigen Untergründen zur Seite weg. Hier muss man 
ein paar mehr Versuche durchführen.
Wenn man während einer Rotation den Roboter vorne an der Bumperplatine leicht an-
hebt, so dass er nur noch auf den Hinterrädern dreht, sieht man wie weit er sich ei-
gentlich bei der Drehung bewegen müsste! 
- 136 -