PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Allgemeine Frage zu balancierenden Robotern



th0m_h
20.01.2019, 18:13
Hallo,

nachdem das mit den Kerzen erledigt ist, möchte ich noch folgendes gerne wissen: Kann man einen balancierenden Roboter nur mit MPU-6050 und Getriebemotoren bauen? Also ohne Schrittmotoren, Servos oder Wegsensoren? Cool wären praktische Erfahrungen, wie "ja, hab ich schon gemacht" oder "nein, ich probier's seit Jahren, es klappt nicht" (wäre meine Meinung).

Schöne Grüße

Thomas

HaWe
20.01.2019, 18:29
Hallo,

nachdem das mit den Kerzen erledigt ist, möchte ich noch folgendes gerne wissen: Kann man einen balancierenden Roboter nur mit MPU-6050 und Getriebemotoren bauen? Also ohne Schrittmotoren, Servos oder Wegsensoren? Cool wären praktische Erfahrungen, wie "ja, hab ich schon gemacht" oder "nein, ich probier's seit Jahren, es klappt nicht" (wäre meine Meinung).

Schöne Grüße

Thomas

ja, habe ich schon ausprobiert, man bracht nur noch eine PID-Steuerung über pwm. Encoder muss man dazu nicht unbedingt auslesen.
Es ist aber kein Kinderspiel, das PID-Tuning ist extrem zeitaufwändig, wenn man es selber programmieren will (mein Programm war bereits fix und fertig, für Lego Mindstorms: da wurden zwar grundsätzlich Encodermotoren benutzt, aber die Encoder wurden nicht ausgelesen).

th0m_h
20.01.2019, 18:30
Die Lego-Motoren haben aber Rotationssensoren. Die wurden nicht benutzt?

HaWe
20.01.2019, 18:34
nein, schrieb ich doch. Es geht uU einfacher, aber nicht zwingenderweise.

th0m_h
20.01.2019, 18:38
Ja, hab nicht zuende gelesen. Gibts das Programm irgendwo? Oder ist es nur eine Standard-PID-Regelung und man muss die Parameter hinbekommen?

HaWe
20.01.2019, 18:42
Nein, ich habe leider keinen Zugriff mehr auf das Prrogramm, es hat mich auch ncht so sonderlich interessiert um es für mich zu archivieren. Ein Trick war: man hat die Gyrowinkel über die ganze Zeit hinweg aufsummiert (integriert), und solange er ziemlich aufrecht stand oder fuhr, war das Integral immer näherungsweise null (Tiefpassfilter): dadurch konnte man diie GyroDrift herausrechnen 8)

th0m_h
20.01.2019, 18:45
OK, schade. Bis zur Gyro-Drift bin ich noch gar nicht gekommen. Dann würde ich das jetzt gerne als erledigt markieren, ich weiß aber nicht, wie. Ach doch, habs gefunden. Danke.

HaWe
20.01.2019, 18:47
was gefunden - und wo?

th0m_h
20.01.2019, 18:56
Nein, nichts gefunden. Ich denke, ich bau irgendwann noch sowas (https://www.robocore.net/upload/attachments/readingps2mouseoutputwithanarduinofinal_769.pdf) ein und schau, ob ich's dann hinbekomme, weil PID sind nicht die einzigen Parameter, da die Wegstrecke bei solchen Motoren überhaupt nicht proportional mit (PWM-Verhältnis mal Zeit) geht.

Andere Idee wäre, die PID-Parameter vom PC aus im Betrieb mittels Bluetooth zu variieren. Mal sehen.

HaWe
20.01.2019, 19:01
Linearität ist für PID-Regler keine notwendige Bedingung: du veränderst pwm je nach den PID-Regel-Werten, vergleichst die Änderung des Gyrowinkels zum Gyro-Zielwert, und je nach Schnelligkeit der Änderung gibst du noch mehr oder wieder weniger pwm. Dazu braucht man auch keine Encoder, denn die Zielgröße ist ja der Gyrowert, nicht die Encoder.

th0m_h
20.01.2019, 19:04
Dann ist es ja nur eine D-Regelung, ohne P und I?

HaWe
20.01.2019, 19:09
nein, PID, denn es werden nicht nur die reine proportionale Differenz (P), sondern auch die bisherigen Fehlersummen (I) und die Schnelligkeit der Änderung (D) betrachtet und ausgewertet. Daher schrieb ich ja: PID.
Allerdings funktioniert uU durchaus auch PD.

th0m_h
20.01.2019, 19:12
OK, danke.

Ich seh schon ich hab einfach noch nicht die richtigen PID-Parameter gefunden. Das wird wider eine Tüftelei, wenn ich dann mal Zeit hab.

oberallgeier
21.01.2019, 08:53
.. ich hab einfach noch nicht die richtigen PID-Parameter gefunden. Das wird wider eine Tüftelei ..Na ja, sooo aufwendig ist die Balanciererei doch nicht. Ich hatte das (wie so manches ...) etwas simpel/primitiv gelöst (https://www.roboternetz.de/community/threads/43015-Balance-halten?p=411231&viewfull=1#post411231). Erstmal war ich natürlich beschäftigt mit der Motorenregelung: zwei von einander völlig unabhängig laufende und geregelte Motörchen in meinem MiniD0. Das kostete ein paar Stunden über dem wirklich lehrreichen, ausführlichen und gut verständlichen RN-Wissen-Beitrag zu Regelungstechnik (https://rn-wissen.de/wiki/index.php?title=Regelungstechnik), in dem sich waste sehr verdient gemacht hatte.

Also: Sprungantwort aufnehmen (siehe z.B. hier (https://rn-wissen.de/wiki/index.php?title=Regelungstechnik#Dimensionierung_n ach_Einstellregeln) und mit dessen Hilfe meine Bemühungen hier (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=398840&viewfull=1#post398840) oder z.B. hier mit Beispielen (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=427784&viewfull=1#post427784)). Daraus wird - wieder mit dem RNWissen-Regelungstechnik in diesem Abschnitt hier (https://rn-wissen.de/wiki/index.php?title=Regelungstechnik#Realisierung_mit_ digitalem_Regler) - der digitale Regler dimensioniert. Bei mir war das recht schnell erledigt, etwas mehr zu einen Abläufen z.B. hier (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=404730&viewfull=1#post404730). Als Bestätigung für die s..gute Regelung fand ich den guten Geradauslauf der Dose z.B. hier (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=495507&viewfull=1#post495507).

Und als ich diese Werte hatte, war die Auslegung der MOTORREGELUNG schnell gebacken - leichte Variationen waren möglich, die Bandbreite der Werte war (!! bei meinem Gefährtchen !!) recht angenehm breit. Das Balanceprojektchen nannte ich oben simpel/primitiv weil ich einfach aus dem Bodenabstand des Entfernungsmessers am Ausleger die Vorgaben für die Motoren genommen hatte. Immerhin - es hatte nicht schlecht funktioniert.

Also - nur Mut.