Gleichlauf Servo Motoren bei Drehung nicht exakt

grafische Programmiersprachen für den EV3/NXT.
NXT-G, Robolab, LabView und was noch so schön bunt ist...

Moderator: Moderatoren

Thomasdr
Weniger als 15 Beiträge
Weniger als 15 Beiträge
Beiträge: 11
Registriert: 4. Jan 2013 22:26

Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon Thomasdr » 14. Jan 2013 10:28

Hallo,
wir betreiben den NXT mit Raupenketten.
Ziel ist es eigentlich ein Quadrat abzufahren. Wir bekommen aber über den MOVE Block keine genaue Drehung hin. Selbst ein Test mit identischer Gradzahl bei Rechts + Linksdrehung bringt den Roboter nicht in die Ausgangsrichtung zurück. Das Ergebnis ist beim nächsten Versuch auch wieder anders, so das man auch keine GradKorrekturen eigeben kann. Gefühlt habe ich den Eindruck das ein Motor unter Last verzögert anfährt.
Hat jemand Erfahrung mit dem Syncronlauf oder ähnliche Probleme beim Servo? Danke

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5235
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon HaWe » 14. Jan 2013 11:54

hallo,
Raupenketten lassen sich extrem schlecht für exakte Kurvenfahrten verwenden, weil bei der großen Boden-Kontaktfläche und insgesamt großem Schlupf kein exakter Drehpunkt pro Seite bzw. kein eindeutiges Rotationszentrum des Roboters an sich besteht.
Daneben wäre zu klären, wieviel Encoder-Ticks tatsächlich vom Motor gedreht werden, d.h. wie genau überhaupt der Zielwert approximiert wird (evtl. überschießend ?).

Bei Punkt 1 hilft nur eine Neukonstruktion mit Rädern statt Raupen, oder Zusatzsensoren wie z.B. einem Gyro-Sensor,
bei 2 müsst ihr euch mal die Rotationswerte nach Soll und Ist gegeneinander auf dem Display nach jeder Drehung und Stopp anzeigen lassen.

HTH!

Horst Spiegel
Neuer Schreiber
Neuer Schreiber
Beiträge: 1
Registriert: 25. Jan 2013 12:15

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon Horst Spiegel » 3. Feb 2013 13:41

Hallo zusammen,
ich habe ein ähnliches Problem mit der "Genauigkeit und Reproduzierbarkeit der Motoren bei Drehungen". Ich habe den Beitrag von meinem Thema (siehe links in Anführungszeichen) mal hierher kopiert:

Wir haben unserem Sohn zu Weihnachten den LEGO Mindstorms NXT 2 geschenkt und er hat auch schon eifrig gebaut und programmiert. Soweit, so schön.
Allerdings hatte er bei der Bauaufgabe 1 ("Der Explorer als Künstler" im Buch von Laurens Valk) Probleme, seinen Namen schreiben zu lassen: der Roboter läßt sich einfach nicht exakt um 90° auf der Stelle drehen, um z.B. zwei Linien senkrecht aufeinander stehen zu lassen. Mal dreht er zu weit, dann wieder zu wenig, die Drehung ist einfach zu ungenau und zudem nicht reproduzierbar.
Also habe ich mich mal der Sache angenommen und den Roboter auf eine Drehung auf der Stelle um 90° programmiert, wozu ich den Parameter "Dauer" im Konfigurationsbereich des Bewegungsblocks auf (in unserem Fall) 287 Grad einstellen mußte. Gleichzeitig habe ich mir über die Drehsensoren die Gradzahl der beiden Motoren (B und C) anzeigen lassen. Und siehe da: nur einer der beiden Motoren (B) zeigte nach der Drehung die gewünschte Gradzahl von 287 an, der andere Motor (C) zeigte immer wieder unterschiedliche Werte an (meistens um die -300)! Müßten das nicht ebenfalls und konstant -287 sein?
Mit anderen Worten: Motor B tut, was er soll, der andere Motor C läuft "irgendwie" ungesteuert mit - mal mit mehr, mal mit weniger Drehungen! Die Motoren laufen bei Drehungen "auf der Stelle" offenbar nicht synchron!
So läßt sich natürlich keine exakte 90°-Drehung ausführen und mithin kein Buchstabe schreiben!
Liegt hier ein Fehler der Hard- oder Software vor?
Gruß
Horst Spiegel

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5235
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon HaWe » 3. Feb 2013 15:23

hallo,
ich selber programmiere nicht mit der Lego-Bilder-Software (NXT-G), aber bei NXC mit der gleichen Grund-Firmware gibr es auch große Probleme bei sync-Gleichlauf von 2 Motoren.
(Ich verstehe ehrlich gesagt auch nicht, warum dir bisher noch keiner unserer vielen NXT-G-Nutzer geantwortet hat.)
Ich kann dir leider keine Lösung anbieten, vllt findet sich aber noch irgendwann ein NXT-G-User, der "die Lösung" gefunden hat.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5235
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon HaWe » 3. Feb 2013 15:41

p.s.
Hilfreich ist es allerdings immer, wenn du mal dein Programm als Bild mit dazu postet...

Justus
Mindstormsfreund
Mindstormsfreund
Beiträge: 8
Registriert: 30. Dez 2012 11:27

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon Justus » 4. Feb 2013 21:47

Ich bin zwar selbst noch Einsteiger bzgl. NXT, hatte aber bisher auch das Gefühl, daß Raupenfahrzeuge nicht so exakt "drehbar" sind, wie Roboter mit zwei Antriebsrädern und einem "Pivot"-Rad (so wie das Einstiegsmodell beim NXT 1).

Beim Geradeauslauf zieht so ein Robo trotzdem gerne mal leicht zu einer Seite. Ich will das Problem für mich lösen, indem ich den Robo mit einem Kompasssensor ausrichten will. Ist aber noch in der Forschungsphase :wink: .

Robärta
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 50
Registriert: 10. Jun 2010 21:24
Wohnort: Berlin

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon Robärta » 5. Feb 2013 14:23

Ja, ich habe auch festgestellt, dass die Roboter mit den Raupenketten ziemlich unpräzise fahren. Hast du es schon auf verschiedenen Untergründen ausprobiert - bei manchen geht es besser.

Ich finde aber auch bei den Rädermodellen lässt die Präzision teilweise zu wünschen übrig. Eine Gruppe von mir hatte mal den Auftrag mit dem Roboter "Das Haus vom Nikolaus" zu malen. Ich wusste nicht, dass der in so einer Bruchbude lebt...

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5235
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon HaWe » 5. Feb 2013 16:35

ich glaube, im TOP geht es nicht um Schlupf bei Raupen, sondern um die Approximationsgenauigkeit der Motoren selber.
Das ist kein Raupen-Problem (wobei ich im TOP sowieso nichts von Raupen gelesen habe - CMIIW).

Motor-Ziel-Approximation geht nur mit Reglern.
Die bekanntesten sind:
P-, D-, PD, PI, PID-Regler

Ein gut programmieter PID-Regler wird immer sein Ziel sehr genau finden, allerdings neigt er zu Oszillieren im Zielbereich, weil er meist zunächst "überschießt".
Der Regler der Lego-Firmware ist irgendwas in dieser Art, aber leider nicht besonders gut programmiert.
PID-Regler sind aber programmtechnisch sehr aufwändig und wegen der Abhängigkeit von der Zielplattform auch nicht universell lösbar für ihre Konstanten p, i, d - die muss man erst experimentell ermitteln.
Andere Ansätze sind z.B. PD-Regler mit Motor-Geschwindigkeitsüberwachung und -Anpassung in der Nähe des Zielbereichs (ich hoffe, ich gebe das richtig wieder).

Insgesamt aber alles höchst schwierig und nur für wirklich Fortgeschrittene IMO.
Für die Lego-Software NXT-G kommt erschwerend dazu:
die ist dermaßen unerträglich lahm, dass der beste PID-Regler damit wohl kaum sinnvoll selber zu programmieren ist.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Robärta
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 50
Registriert: 10. Jun 2010 21:24
Wohnort: Berlin

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon Robärta » 5. Feb 2013 20:16

Thomasdr hat geschrieben:Hallo,
wir betreiben den NXT mit Raupenketten.
Ziel ist es eigentlich ein Quadrat abzufahren. Wir bekommen aber über den MOVE Block keine genaue Drehung hin. Selbst ein Test mit identischer Gradzahl bei Rechts + Linksdrehung bringt den Roboter nicht in die Ausgangsrichtung zurück. Das Ergebnis ist beim nächsten Versuch auch wieder anders, so das man auch keine GradKorrekturen eigeben kann. Gefühlt habe ich den Eindruck das ein Motor unter Last verzögert anfährt.
Hat jemand Erfahrung mit dem Syncronlauf oder ähnliche Probleme beim Servo? Danke


Lieber HaWe,

ich versuche der Lösung des Problems - ein Quadrat fahren - näher zu kommen, nach der Beschreibung soll die Aufgabe ohne externe zusätzliche Sensoren gelöst werden.

Ja, ich kann mich jetzt auf den Standpunkt stellen, dass die Soft- oder die Hardware das nicht hergibt, ich kann zusätzliche (komplizierte) Sensoren verwenden, ich kann auf die Motorsteuerung schimpfen, aber das Problem habe ich damit nicht gelöst.

Und einen anderen Untergrund auszuprobieren, ist eine vergleichsweichsweise einfache Methode. Ingenieure bevorzugen einfache Lösungen.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5235
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: Gleichlauf Servo Motoren bei Drehung nicht exakt

Beitragvon HaWe » 5. Feb 2013 20:34

Liebe Robärta,
das mit den Raupenketten hatte ich tatsächlich bei meinem letzten Post gerade überlesen (da kamen die Posts von Horst Spiegel und Justus dazwischen).

Nun bin ich sicher kein Ingenieur.
Sicher gilt auch der alte Satz: "Keep it simple, stupid."

Ich betrachte die Sache eher aus mehreren grundsätzlichen - nennen wir sie: mathematisch-naturwissenschaftlichen - Blickwinkeln (das ist wschl durch meine Ausbildung bedingt):
1) wenn schon die Motoren eine genaue 90° Drehung nicht hergeben, wird es bereits mit Rädern ohne Schlupf und mit wohldefinierten Drehpunkten des Robots nicht genau funktionieren.
Das ist der 1. statistische Fehler.

2) Raupenketten haben aber ein weiteres grundsätzliches Problem: durch die große Auflagefläche gibt es keinen definierten Drehpunkt - nicht vorn, nicht in der Mitte, und hinten an den Ketten auch nicht - er dreht "irgendwo", mit verschiedenen Radien.
Das ist der 2. statistische Fehler, der den 1. auf undefinierte Weise vergrößert.

3) wenn ich jetzt noch unterschiedliche Unterlagen einführe, wird durch den undefinierten Schlupf der statistische Fehler eher noch größer.
Das erhöht den Gesamt-Fehler um einen 3. Faktor.

Wenn man also schon den ersten Fehler nicht im Griff hat, wird man es durch Hinzufügung weiterer statistischer Fehlerquellen sicher insgesamt nicht genauer machen.
;)
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E


Zurück zu „grafische Programmiersoftware“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss