-
-
Neuer Benutzer
Öfters hier
Intelligenter Servo-Treiber für Regelungsaufgaben
hallo zusammen,
ich bin neu hier im forum aber nach ein bißchen durchforsten muss ich sagen, dass hier echt einige sehr kompetente leute aktiv sind. deswegen möchte ich mich gerne beteiligen und meine Projekte mit euch diskutieren.
ein sehr fernes ziel von mir ist ein zweibeiniger laufroboter der dynamische bewegungen ausführen kann (d.h. nicht nur den statischen schwerpunkt über der fußfläche hält, sondern auch ausfallschritte machen kann). mir ist durchaus bewusst, dass sich daran weltweit schon etliche institute die zähne ausgebissen haben. jedoch gibt es auch schon einige hobbybastler die durchaus ansehliche Projekte "auf die beine" gestellt haben (www.austrobots.com zum beispiel). zudem kann man auch aus gescheiterten projekten einiges lernen.
während ich momentan am mechanischen aufbau des roboters plane, bin ich durch Bluesmash vorstellung seines laufroboters (https://www.roboternetz.de/phpBB2/vi...c.php?p=139831) auf die idee eines ersten teilprojekts gekommen. für die regelung eines roboters mit solch einer komplizierten dynamik benötigt man genaue informationen über den momentanen zustand aller gelenke. zudem sollen die Servos auf keinen fall ins schwingen geraten. deshalb der vorschlag zunächst einen eigenen servotreiber zu bauen, der etwas mehr kann als nur eine position zu halten.
was mir vorschwebt ist ein servotreiber mit folgenden eigenschaften:
- I2C ansteuerbar
- Auslesen der momentaner Position und Geschwindigkeit des Servos
- Einfaches Anpassen der Regelparameter
- Verschiedene Regelmodi (Positionsregelung / Geschwindigkeitsregelung / Kraftregelung)
und das ist der plan:
zunächst muss der servo teilweise gehackt werden: den poti elektronisch vom integrierten servotreiber abklemmen und durch festverdrahtete wiederstände ersetzen, die dem treiber vorgaukeln, der poti sei ständig in mittelstellung. der analogausgang des potis wird aus dem servo rausgeführt.
regelungstechnisch gesehen öffnet man dadurch den regelkreis. nun ist es sinnvoll das übertragungsverhalten der messstrecke und der steuerstrecke zu ermitteln, aber das erklär lieber später, sollte aber kein problem sein.
so, nun kommt der knifflige part für mich, da ich mich mit controlern wie atmel und pic bisher nur wenig ausgekenne. aber ein mega8 müsste doch in der lage sein das pwm signal für den servo zu erzeugen und auch das analogsignal des potis einzulesen. zudem lässt sich dieser auch als I2C slave verwenden. da es die dinger ja recht günstig gibt, wäre es verkraftbar jedem servo einen eigenen zu spendieren. dadurch wäre es möglich einen intelligenten controler für jeden servo zu programmieren, der zb mit hilfe eines kalmanfilters das messrauschen des potis kompensiert und die geschwindigkeit schätzt. per I2C könnte dann auch zu jeder zeit die genaue position und geschwindigkeit des Servos ausgelesen werden. zur regelung kann dann auch ein zustandsregler verwendet werden der für alle drei größen (pos., geschw. und kraft) entworfen werden kann.
was meint ihr?
gruß,
taser
-
Hi,
ein I2C-Servo ist m.E. der richtige Ansatz. Besser ist es aber, wenn die ganze Steuerung im Servo realisiert wird. D.h., die normale Servoelektronik muss raus und durch eine I2C-Steuerung ersetzt werden. Idealerweise sieht es am Ende aus wie ein normaler Servo, nur dass er vier statt drei Anschlüsse hat (Vcc, SCL, SDA, Gnd).
Habe neulich auf einer anderem Mailingliste diesen Link gefunden: http://home.comcast.net/~michael.p.thompson/ultraservo/ . So oder ähnlich könnte man es machen.
Gruß, Achim.
-
Neuer Benutzer
Öfters hier
Hi Achim,
danke für den Link, das sieht echt mal gut aus was der da gemacht hat. Werd ihm gleich mal ne Mail schreiben und meine Mithilfe bei der Weiterentwicklung anbieten. Wenns weitere Erfolge gibt, werde ich hier berichten.
Gruß,
Taser
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen