Der Thread ist nun schon etwas in die Jahre gekommen. Da das Thema in der Robotik immer wieder auftaucht, habe ich mir auch schon so meine Gedanken gemacht.
Das Problem ist ja klar, laufen die Motoren nicht gleich, so fährt der Roboter eine Kurve. Die Motoren müssen dann synchronisiert werden. Will man hingegen eine Kurve fahren, so Würde man gerne Winkel, Radius und Geschwindigkeit vorgeben. Im Asuro wurde ja bereit eine Kurvenfunktion implementiert. In diesem Thread ging es aber darum: Wer was machen sollte.
Ganz rechts sind die Motoren mit den Encodern zur Messung der Drehzahl. Bei mir sind die Encoder an den Motoren, weshalb das Getriebe und so erst dahinter kommt. Jeder Motor hat eine eigene Drehzahlregelung, die aus der Differenz von Soll-Drehzahl und Encoderwerten den neuen Motorstellwerten generiert.
Bei dem Differential muss ich immer an mein LEGO-Auto denken, es kann zum einen die Gesamtgeschwindigkeit des Roboters übertragen und zum anderen das Verhältnis von linken zu rechten Motor bestimmen (Drehung um die eigene Achse / Gear). Deswegen sollte das Soft-Differential auch zwei Regler enthalten: den Gear-Regler und den Speed-Regler. Der Speed-Regler bezieht sich hierbei auf die Geschwindigkeit des gesamten Roboters (Robotermittelpunkt). Diese Vergleichen wieder die jeweiligen Sollwerte, mit den aus den Encodern ermittelten Ist-Werten.
Diese Sollwerte (Soll-Radius und Soll-Geschwindigkeit) sollten von einem übergeordneten Controller (z.B. Tabelle für das Haus vom Nicolaus) erstellt werden.
Bild hier
Ein schones Beispiel von diese Gedanke ist der RP6. Die basiscontroller (AVRmega32) steurt die 2 Motoren ueber PWM. Ruckmeldung von encoder geht ueber INT0/1. Auflosung von Encoder ist ca 0.25 mm. Eine ganse SW bibliotheek in C ist schon forhanden mit die genannte Auftragen (Fahre mit konstant speed, Abstand, Winkel drehen, stop). Die Regelung von der Strecke/Geschwindigkeit ist eine I-Regelung. Jeden 200 mS wirden mit die Pulsen von Interrupts Speed und Distance berechnet, und der PWM wird angepasst. Odometrie idn die Sinne das immer die genaue Position in Raum bekannt ist, wird nicht gemacht. Da ist der mega32 ueberfoerdert. Aber auch die genauigkeit von eine "Tracks" robot beim drehen verhindert eine langere Erfassung von Position. Siehe auch mal die Beschreibung von der RP6 in RN-Wissen
Lesezeichen