- LiTime Speicher und Akkus         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Adafruit_PWMServoDriver

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Das die Servos sich je nach Preis auch qualitativ unterscheiden ist hier zu sehen.
    Ich hab mal 2 Servos extrem langsam laufen lassen.
    Hier sieht man deutlich das Stottern, des günstigeren rechten Servos

    https://www.dropbox.com/s/1m83yx3a4x...S306G.mp4?dl=0

    Ebenso werden sich die Servos auch verhalten beim direkten Anfahren einer festgelegten Position.
    Sie "treffen" dann nicht immer richtig- Je länger dein Hebelarm umso problematischer wird das ganze dann...

    den .ccp Code habe ich mir grad angesehen. Hätt ich mal vorher reingucken sollen, dann hätte ich mir viel Kopfzerbrechen erspart,
    ich musste ja mal wieder das Rad neu erfinden....

    Siro

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Zitat Zitat von Siro Beitrag anzeigen
    .. hab mal 2 Servos extrem langsam laufen lassen. Hier sieht man deutlich das Stottern, des günstigeren rechten Servos
    .. den .ccp Code habe ich mir grad angesehen. Hätt ich mal vorher reingucken sollen, dann hätte ich mir viel Kopfzerbrechen erspart ..
    Grübel - und was bedeutet das jetzt für uns? Ist der Servo am Stottern schuld oder der .ccp Code (bzw. der Mensch an der Tastatur) ?

    Bei meinem Code (ok, in "C" - das bei mir immer noch eher C-äh ist) hab ich kein Problem Servo, auch sehr billige, mit rund 2 sec von Anschlag zu Anschlag laufen zu lassen (zB hier).
    Ciao sagt der JoeamBerg

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    @oberallgeier:
    Das sieht bei deinem Video optisch sehr sauber aus.

    Das Stottern bei mir (bzw. beim Servo ) kommt tatsächlich vom Servo-
    Die PWM wurde nicht per Hand, sondern automatisiert per Software durchgefahren.
    Getestet hatte ich es mit einem PIC Controller auf dem nichts anderes lief,
    die PWM hatte eine zigmal feinere Auflösung als ein Servo es verarbeiten könnte.
    Also ein absolut gleichförmiges PWM Signal ohne Ausreißer.
    Nicht alle Billigservos sind schlecht, dieser war es aber...
    Nun haben alle Servos auch eine gewisse Hystere, sonst würden sie nie ruhig stehen sondern ständig nachlaufen.
    Das ist natürchlich auch abhängig von der gesamten Mechanik / Übersetzung / Poti usw.
    Es kommt vor, dass ein Servo kontinuierlich Geräusche von sich gibt weil er ständig nachregelt.
    Ungünstige Position, Schleiferkontakt....

    Bei den Billigstservos in meine Minihubschraubern (wobei die im Verhältnis Schweineteuer sind...) werden die Bewegungen im Laufe der Zeit immer schlechter.
    Die fangen immer mehr an zu stottern...
    Da hilft dann sie zu zerlegen und die Kohleschicht und Schleifer zu säubern und dann sind sie quasi wie neu.
    Geändert von Siro (03.05.2019 um 13:57 Uhr)

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Habe jetzt festgestellt, das die Servos nur auf alle 3 bis 4 Schritte, in der Pulslängenänderung, reagieren. Also bis sie die nächste Position anfahren. Das ist dann nat. schon ein ordentlicher Schritt.
    Jetzt ist es ja aber so, dass das der PCA9685 das Steuersignal dauernd weiter an den Servo sendet.
    Kann es möglich sein, dass das daran liegt?
    Anders herum muss ein Servo die Position halten, da kann man das Steuersignal wohl nicht einfach abschalten?

    Habe mir heute einen Servotester gebastelt:

    .....Klicke auf die Grafik für eine größere Ansicht

Name:	servotester.jpg
Hits:	7
Größe:	25,3 KB
ID:	34150


    MfG
    Geändert von Moppi (03.05.2019 um 21:53 Uhr)

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Moin Moppi,

    Servos haben eine "endliche" Auflösung und ja, es ist so, dass bei kleinsten Änderungen er irgendwann nicht mehr darauf reagiert
    bzw. mal mehr oder mal weniger Schritte benötigt bis er sich wieder bewegt.
    Das hängt jetzt aber vom Servo selbst ab wie fein er auflösen kann.

    Der Motor bewegt ja über die Zahnräder ein Poti und das Getriebe zieht sich sozusagen auf.
    So ist es möglich dass z.B. die ersten 5 Schritte nichts passiert und dann gehts aber bei jedem 2 Schritt weiter.
    Dreht man die Richtung um, kann es gut sein, dass wieder 5 oder sogar noch mehr Schritte nicht ausgeführt werden,
    die Getriebe muss nun das Zahnflankenspiel in die andere Richtung ausrichten.
    Auch die Qualität/Linearität des verwendeten Potentiometers spielt hier sicherlich eine Rolle.

    Wenn die Signale ausbleiben ist das theoretisch nicht schlimm, dann bleibt der Servo ja stehen wo er ist, aber
    wenn er nun mechanisch bewegt wird oder eine Kraft ihn aus der Position ziehen/drehen will, kann er das nicht mehr ausgleichen
    So gesehen ist es also Anwendungsspezifisch ob man die Impulse abschalten darf. Die Haltekraft ist dann weg.

    Siro
    Geändert von Siro (04.05.2019 um 07:52 Uhr)

  6. #16
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    .. Servos haben eine "endliche" Auflösung .. dass bei kleinsten Änderungen er irgendwann nicht mehr darauf reagiert ..
    Da ist ja einmal die zeitliche Auflösung des eingegebenen Stellsignals (der SignalPULS). Es ist unwahrscheinlich, dass die Servoelektronik bis herunter zu Femtosekunden und kürzer auflösen kann (kann!). Dazu sollte ne gute Stellungsregelung noch ein klitzekleines Toleranzband um den Sollwert haben in dem nicht geregelt wird - sonst schwingt der vom Regler beeinflusste Stellwert bei minimalsten Abweichungen um den "Nullpunkt" (den genauen Wert den er einhalten soll) rum. Und dabei schwingt der aus Trägheitsgründen theoretisch dauernd. Ein schmales Toleranzband verhindert dies.

    .. Servos haben eine "endliche" Auflösung .. Das hängt jetzt aber vom Servo selbst ab wie fein er auflösen kann ..
    Das sehen wir in einem zufällig herausgepickten Beispiel hier - unter "Device spezifications" .. resolution: 0.5 µs (about 0.05°). Diesen Wert um etwa 0,4 µs hatte ich selbst festgestellt. Für mich gilt daher, dass viele Servos theoretisch den Stellwert von 1 ms (also den "Standardwert", der auswertbare Unterschied von 1ms Puls bis 2 ms Puls) allenfalls in 1000µs/0,4µs = 2500 Schritten auflösen können - das ergibt knapp 11½ Bit Auflösung. Wenn ich in meiner Servoroutine den Stellwert in bis zu sechstausend Schritten auflöse (oder käufliche Servocontroller 12 Bit Auflösung nennen) dann kann der Servo erst nach ein paar Schritten reagieren. Aber erst damit kann ich die mit dem Servo erzielbare Auflösung voll ausnutzen.

    .. Wenn die Signale ausbleiben ist das theoretisch nicht schlimm, dann bleibt der Servo ja stehen wo er ist, aber ..
    Hier ist der Nachsatz extrem wichtig. Ein Servo mit Spannungsversorgung ohne Signal kann da kraftlos bis unangenehm unvorhersehbar reagieren. Ausnahmen gibts aber. So ist der Deckelantrieb meines MiniD0´s in aufgefahrener Stellung so fixiert, dass ich Signal und Spannung bei längeren Fahrten (mitunter) abschalte - der Servo hält dann trotzdem die Position.
    Ciao sagt der JoeamBerg

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Gut, Danke!

    Dann weiß ich jetzt, dass es nicht am PCA9685 liegt, sondern tatsächlich am Servo.


    MfG

  8. #18
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    .. Dann weiß ich jetzt, dass es nicht am PCA9685 liegt, sondern tatsächlich am Servo ..
    Du sprichst ein großes Wort gelassen aus ..

    Im Prinzip hast Du wohl Recht und kannst beruhigt sein. Aber solange nicht geklärt/gesichert ist, wie viele Interrupts im code herumwerkeln oder ob noch andere Störmöglichkeiten vorhanden sind hatte ich mir in ähnlichen Fällen kein abschließendes Urteil erlaubt.

    Eigentlich ist ja offen wozu Du eine ?absolute?, möglichst genaue Positionierung haben möchtest. Nur zum Erkenntnisgewinn solltestkönntest Du bei den eher bescheidenen Servoqualitäten mit dem Ruckeln leben. Bei real begründeten Anforderungen dürften "bessere" Servos helfen. Möglicherweise umsteigen auf Digitalservos und für die Servo-Periode und -Puls entsprechend anpassen. Und vielleicht auch mit nem guten Oszi mal die Steuerpulse genau ansehen (ich hab seit ner Weile ein tolles Ding - das kann sehr viel anzeigen und messen - und ich vertrödel damit sooo viel Zeit :-/ :-/ ).
    Ciao sagt der JoeamBerg

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Die üblichen Unterbrechungen, der der 328P so zwischendurch einschiebt. Da gibt es wohl so Kleinigkeiten.
    Aber das Ergebnis ist reproduzierbar und es handelt sich immer um 3 bis 5 Werte für die Pulslänge.

    Wozu genaue Positionierung:

    Ich gehe zunächst von der Theorie aus. Servos sollen eine Position anfahren, eigentlich eine genaue Position und diese halten.
    Also wäre es auch schön, wenn das möglichst genau funktioniert. Zumindest so gut, wie es - mit einem nicht zu großen Aufwand - möglich ist.
    Nicht zu vergessen, dass ich mich das erste Mal intensiv damit auseinandersetze, worauf man so achten muss und was es zu bedenken gibt, wenn man damit hantiert.

    Im nächsten Schritt habe ich schon gesehen, dass mir genaue Winkel so viel nicht bringen werden, für das was ich damit versuchen will. Genaue Winkelpositionen wären wichtig, wenn ganze Bewegungsabläufe, innerhalb eines Pfades, berechnet werden sollen. Aber das würde mit so Ungenauigkeiten am Ende unbefriedigende Ergebnisse liefern. Zumal äußere Einflüsse stören. Daher werde ich mich damit auseinandersetzen, Bewegungsabläufe zu erstellen und auf äußere Ereignisse mit Gegenbewegungen zu reagieren. Mal sehen ...

    Ein weiteres Problem, mit diesen kleinen Servos, ist das Aufschwingen (wenn der Servo versucht die Position zu finden), wenn sich ein längerer Hebel mit Gewicht (ein paar Gramm genügen) daran befindet.
    Code:
    
    |----------|          |----------|
    |servo#1 O#|##########|servo#2 O#|###############
    |----------|          |----------|
    
    Servo#1 würde evtl. die Position nie finden, sondern in gewissen Grenzen um die Sollposition schnell hin- und herschwingen.
    Auch hier müssen die Bewegungsabläufe entsprechend gestaltet sein, damit das dann weitgehend verhindert wird.


    MfG
    Geändert von Moppi (05.05.2019 um 16:19 Uhr) Grund: Kuddelmuddel

  10. #20
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    .. Ich gehe zunächst von der Theorie aus. Servos sollen eine Position anfahren, eigentlich eine genaue Position und diese halten ..
    Da bin ich nicht der gleichen Meinung. Was ich benutze sind Modellbauservos (allerdings gibts ja welche die speziell für Roboter sind - die hatte ich aus Preisgründen nie verwendet). Die sind ja dafür gebaut um z.B. Modellflieger über Funk zu steuern. Ohne es zu sehr auszubreiten und nur beispielhaft: wenn der Flieger dann statt auf Kurs 70° auf Kurs 68° ist, dann schwenkt der Pilot den Steuerhebel an der Fernsteuerung etwas zur Seite und alles ist ok. Positionen sehr genau und sehr gut reproduzierbar anzufahren ist ja eher nicht die Aufgabe.

    .. Ein weiteres Problem .. ist das Aufschwingen .. wenn sich ein längerer Hebel mit Gewicht (ein paar Gramm genügen) daran befindet ..
    Da bist Du jetzt bei der Theorie an der richtigen Stelle. Der Servo hat intern einen Stellungsregler. Der stellt mit einer begrenzten Kraft eine durch den Puls vorgegebene Position ein - mit einer bestimmten Geschwindigkeit. Die Variierbarkeit der Lastparameter hält sich in Grenzen. Und wenn Du eben einen längeren Hebel mit einem Gewicht hast, dann ist das Trägheitsmoment - auch bei kleinen Gewichten - teils weit über dem, was bei der Auslegung des Reglers zugrundegelegt wird. Fazit: die Regelung ist dann so verstimmt, dass Schwingen auftritt.

    Wenn Dich die Theorie "hinter" den Servos interessiert, könntest Du da sicher gut verschiedene Effekte sehen, wenn Du mal einen eigenen Servo baust: Motor mit Encoder, Motortreiber, Controller und Software. Und dann mal die Regelungsroutine dazu schreiben. Ich hatte das beim Hand-Drehgelenk meines Archie gemacht - dort ist ein kleiner Getriebemotor mit Encoder eingebaut mit einer eigenständigen Steuerung. Angeschlossen wird das Ganze an einen üblichen Servoanschluss - mit den üblichen Vorgaben. Und bei so etwas kann man dann an den Reglertypen rumspielen - P-Regler, PI, PD und PID, kann die verschiedenen Parameter selbst bestimmen und den Effekt bei Änderungen sehen.
    Ciao sagt der JoeamBerg

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus