PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC-Servo Position bestimmen



Jared
15.05.2005, 21:04
Erstes Post und ich bin mir nichteinmal sicher, ob das wirklich das richtige Forum ist.

Ich will einen 6-Beinigen Roboter baue, der auf unbenem Gelände gehen können soll. Ich kann die Servos einwandfrei ansprechen und das Auslesen der Drucksensoren auf den Beinen sollte eigentlich leicht sein.
Jetzt habe ich aber das Problem, daß ich die aktuelle Position des Servos wenn der Drucksensor anspricht nicht kenne, sondern nur die gewünschte Endstellung (PWM-Wert).
Habe ich etwas übersehen, oder muß ich das Poti im Servo anzapfen?
Würde es eventuell Sinn machen, dann gleich die ganze Servoelektronik selbst zu basteln?
Ich habe keine Projekte Gefunden, wo explizit auf dieses Problem eingegangen wird, kennt jemand eventuell so ein Projekt?

ICH_
16.05.2005, 08:07
Hallo Jared

Du kannst dein Bein ja in mehreren Schritten bewegen. Also du sendest zB. 10 Stellungen wenn das bein von ganz oben nach unten bewegt werden soll und wartest zwischendrin so lange, dass das Bein die Position erreicht hat. Dann weißt du in welcher Höhe der sensor etwas merkt.

Jared
16.05.2005, 09:26
Soetwas habe ich mir auch schon überlegt, aber dann würden die Bewegungen viel langsamer werden, schon alleine deshalb, weil die Stellgeschwindigkeit der Servos ja stark von der Differenz der wirklichen zur gewünschten Position abhängt (ganz abgesehen davon, daß sie dann eventuell kleine Pausen in der Bewegung machen würden)

Außerdem und das ist mir fast wichtiger habe ich dann Angst um meine Servos, wenn sie zu der gewünschten Position "hinzuckeln", das kann nicht gut fürs Getriebe sein.

Wie schlimm ist der Verschleiß bei den Servos eigentlich wirklich? Ich habe auch irgendwie Angst davor die Beine direkt an den Servos zu befestigen, andererseits macht fast jedes Modell das so.

ICH_
16.05.2005, 09:49
So Servos sind schon recht stabil. Ich hab an diese 5€ Servos vom Konrad schon die ganze Gondel für einen motorisierten rc-Gleitschirm mit 500g Gewicht gehängt. Damit bin ich dann loopings und sonstwas geflogen. Noch leben sie ;-). Und das obwohl das ganze gewicht an einer Servoachse hängt!

binaer
16.05.2005, 10:22
Die Position der Servos direkt auszulesen ist nicht Möglich, da der Servo ja nichts zurücksendet. Ich kann mir auch nicht vorstellen, dass man das Poti im Servo anzapfen kann, ohne dabei die Servosteuerung zu beeinträchtigen.
Was man sicher machen könnte, wäre ein zweites Poti in den Gelenken zu verbauen und diese mittels A/D Wandler auszuwerten.

lg binaer

MrNiemand
17.05.2005, 11:05
Wieso sollte die Elektronik im Servo beinflusst werden wenn ich vom Mittelabgriff am Poti einfach die Spannung gegen Masse messe? Ein Spannungsmesser ist hochohmig => scheiß egal für die Elektronik

Den Abgriff schließte einfach an einem AD Wandler an (oder auch uC mit AD) und dann haste schön ne bestimmte Spannung für jede Servopsition, die auch bei schwankender Versorungssapnnung des Servos recht konstant bleibt!

James
18.05.2005, 10:14
Du kannst auch die Stromstärke messen, die der sevo braucht. daraus könnte man auch rückschlüsse ziehen, ob der servo die gewünschte position schon angefahren hat und nun versucht die zu halten, oder ob er gar nicht so weit kommt. hab aber keine ahnung wie genau man das machen kann. am sichersten ist aber wenn du das poti ausliest.

mfg
Bernhard

PicNick
18.05.2005, 10:17
Ich glaub', da könnt' sich einer eine goldene Nase verdienen, wenn er fertige Servos mit Positions-Feedback anbietet. Das Problem taucht offensichtlich öfter auf.

MrNiemand
18.05.2005, 10:39
Naja auser bei Ebay oder so wird es wohl kaum so dämliche Leute geben, die sich nen Servo extrateuer kaufen nur weil eine Leitung am Poti angelötet ist oder???

PicNick
18.05.2005, 11:16
... wird es wohl kaum so dämliche Leute geben,..
*räusper* nun, ja, ähh, .. :oops:
Trotzdem, fix und foxi, professionell gemacht, rückwirkungsfrei, ready-to-go ? Immerhin ist durch das knacken die Garantie futsch, und wiederverkaufstwert nur an Gleichgesinnte

Jared
18.05.2005, 18:26
Vielen Dank für die Antworten, sowas habe ich mir (leider) schon gedacht.

Die "goldene Nase" wären meiner Meinung nach Servos mit I2C Bus und Positionsfeedback. Das würde ich mir jedenfalls bauen, wenn ich die ganze Servoelektronik selbstaufbauen würde.

PicNick
18.05.2005, 18:33
... Servos mit I2C Bus und Positionsfeedback. ...

Vielleicht gar keine schlechte idee. Ein Mini-Controller müßte das ja schließlich locker schaffen.

vern_da_coda
10.07.2015, 10:32
Hallo Ihr,

gabs hier mal ein Ergebnis?

Ich habe exakt die gleiche Situation.

Alternativ wäre ja auch ein Extra Poti auf der Servoachse denkbar.
Auslesen wäre dann hiermit möglich: https://www.adafruit.com/products/1085

Freue mich auf Antworten.

PICture
10.07.2015, 10:59
Hallo!


Die Position der Servos direkt auszulesen ist nicht Möglich, da der Servo ja nichts zurücksendet.

Ich denke, dass es unnötig ist, weil wenn der Servo i.O. ist, dann erreicht er genau die an ihm von der Steuerung gesendete soll-Position. :confused:

vern_da_coda
10.07.2015, 11:27
Die Motivation der Aktion, jedenfalls für mich, ist ja auch nicht, dass der Servo die Position erreicht sondern wann er die Postion erreicht.

Alle momentanen zeitlichen Werte sind Annahmen.

PICture
10.07.2015, 11:35
Das weißt man doch von einem Drucksensor am Bein, falls vorhanden. :confused:

vern_da_coda
10.07.2015, 13:02
Für Tibia korrekt.

Es geht mir aber nicht nur um den Kontakt zum Untergrund.

Ich kann ohne Feedback vom Servo nur annehmen, dass sich die Bewegung in x Sekunden abspielt.
Diese Annahme kann aber durch diverse Gründe abweichen.

Die Bewegungsabläufe stehen alle untereinander in Abhängigkeit.

Passiert ein Bewegungsablauf nicht wie angenommen, scheitern alle Folgenden bzw. laufen nicht wie angenommen ab.

Wenn die Position hingegen bekannt ist, sind die folgenden Prozessen anpassbar.

PICture
10.07.2015, 14:48
Dann kann ich dir nur noch Motorstrom uberwachen lassen, weil ich kein Servoexperte bin ._.

So weit ich weiß nimmt der Motor selber nach erreichen der soll-Position kein Strom mehr.

oberallgeier
10.07.2015, 16:14
... Wenn die Position hingegen bekannt ist, sind die folgenden Prozessen anpassbar.
... ohne Feedback vom Servo nur annehmen ...Na ja, beides klingt eigentlich trivial, aber so isses nun mal.


... Bewegungsabläufe stehen alle untereinander in Abhängigkeit ...Bei ein und demselben Servo? Nein (obwohl ich diese Aussage wohl nicht verstehe). Nicht wirklich. Da gibts im Servo einen Regler. Und zwar in jedem Servotyp einen anderen. Teils ziemlich steife Regler - bis eher unsteif :.-./ . GENAU das hatte ich - unter anderem - mit meinem Servotestaufbau untersucht (https://www.roboternetz.de/community/threads/62904-Servomesstester-%28Servotester-und-%C2%96messaufbau%29). Die Regler sind bei den wenigen von mir untersuchten Servos z.T. schrecklich ausgelegt. So hatte ich beim ziemlich billigen und schlecht beleumundeten Servo RS-2 bei Vollast nach Datenblatt eine Regelabweichung von 60° festgestellt (SECHZIG Winkelgrad !!). Diese Abweichung geht zwar mit fallender Last ziemlich schnell zurück, aber der Schleppfehler kann grauslich hoch sein. Im MOdellbaubereich - z.B. bei ailerons oder Rudern kann das mitunter toleriert werden - wenn die Ruderwirkung gering ist, wird eben nachgedrückt.


.. Motorstrom uberwachen .. nimmt der Motor .. nach erreichen der soll-Position kein Strom ..Stimmt nicht. Siehe Anmerkung oben zum Reglerverhalten unter Last. Und es stellt sich da die Frage: wie soll der Servo ohne Stromaufnahme ne Last halten? Und lastlos ist ja nun eher ohne reale Bedeutung bei unseren und anderen Anwendungen. Aber für einen speziellen Servotyp kann man - nach eigenen Messungen - diesen Wert für gewisse, knappe Aussage nehmen. Keinesfalls als Anhalt für die Auslenkung. Eigene Messungen? Klar, die Hersteller nennen meist die Drehgeschwindigkeit bei bestimmten Spannungen und maximales Moment. Schon der Strom in Abhängigkeit von der Last wird meist dezent verschwiegen.

Klebwax
10.07.2015, 18:21
Die Regler sind bei den wenigen von mir untersuchten Servos z.T. schrecklich ausgelegt. So hatte ich beim ziemlich billigen und schlecht beleumundeten Servo RS-2 bei Vollast nach Datenblatt eine Regelabweichung von 60° festgestellt (SECHZIG Winkelgrad !!). Diese Abweichung geht zwar mit fallender Last ziemlich schnell zurück, aber der Schleppfehler kann grauslich hoch sein

Hallo oberallgeier,

an der Messung will ich nicht zweifeln, an deiner Schlußfolgerung wohl. Wenn du 60° Abweichung hast, also ca 50% vom gesamten Stellweg, würde ich das nicht "Fehler" nennen, sondern in diesem Fall einfach Überlastbetrieb. Das Servo funktioniert bei dieser Last garnicht. Wenn du genauer hinsiehst, wirst du herausfinden, daß der Servomotor in diesem Betriebszustand mit 100% PWM läuft, mehr ist einfach nicht drin. Selbst die beste Regelung holt aus einem Ochsen keine Milch. Die Reglung mag zwar nicht doll sein, es ist ja auch nur ein simpler P-Regler gebaut aus zwei Monoflops, schau dir mal die Innenschaltung der gängigen Chips an, aber das Datenblatt (mit der Angabe des maximalen Drehmoments) scheint mir noch viel schlechter zu sein.

MfG Klebwax

vern_da_coda
10.07.2015, 21:20
Na ja, beides klingt eigentlich trivial, aber so isses nun mal.

Stimmt, aber ohne Feedback ist es unmöglich...

- - - Aktualisiert - - -



Bei ein und demselben Servo? Nein

Der Ersteller des Threads beschreibt das Problem an seinem Hexapod.

Ich auch. Ich meine Bewegungen innerhalb eines Beines bzw. mehrerer Beine.

Geistesblitz
11.07.2015, 09:55
Hmm, also ich glaube, dass das Problem nur auftaucht, wenn man die Beine sehr schnell bewegen lassen möchte. Wenn man die Servos mit einer kontinuierlichen Bahn füttert anstelle von einzelnen Positionen, können die auch ganz gut flüssige Bewegungen ausführen, die dann auch synchron sein sollten. Dazu sollte die maximale Geschwindigkeit aber nicht überschritten werden, sonst kommt der Servo halt nicht hinterher.