Frage:
Servo-Jitter an bestimmten Positionen, warum?
Moulde
2011-06-27 23:39:44 UTC
view on stackexchange narkive permalink

Ich habe einen Pololu Micro Maestro und es ist großartig. Aber wenn ich den Servos sage, dass sie sich in bestimmte Positionen bewegen sollen, macht es manchmal ein piependes Geräusch. Dies geschieht nur an bestimmten Positionen. Das liegt nicht daran, dass ich versuche, es weiter zu bringen, als es kann, sondern auch daran, dass es in der Mitte positioniert ist.

Dies geschieht, wenn ich einen Laptop verwende, um die Servos über eine geschriebene Anwendung zu steuern .NET

Ich habe nur versucht, sie entweder über meine eigene Anwendung oder das Maestro-Kontrollfeld zu steuern.

Gibt es eine Möglichkeit, dies zu vermeiden?

Ich hoffe Ihr versteht, was ich meine. Danke

Überprüfen Sie die Ausgabe des Micro Maestro und prüfen Sie, ob die Impulsbreite an diesen Positionen variiert. Tauschen Sie außerdem die Servos aus und verwenden Sie verschiedene Servomodelle, um festzustellen, ob das Problem mit dem Servo auftritt, an allen Ports oder nur an wenigen Ausgängen auftritt. Zusätzliche Tests sollten Ihnen mitteilen, ob es sich um ein Problem mit dem Servo, dem Servotreiber oder Ihrer Software handelt.
Wie steuert man eigentlich das Servo? Ein PWM-Signal? Wie wird es ausgegeben? Verwenden Sie eine dedizierte Hardware?
Ich denke, die beste Antwort, die Sie hier bekommen, ist "Es macht das, weil Hobby-Servos Mist sind". Haben Sie verschiedene Servos ausprobiert?
Sechs antworten:
John R. Strohm
2011-06-30 02:59:25 UTC
view on stackexchange narkive permalink

Das R / C-Servosteuersignal ist eine Impulsfolge. Es gibt zwei Parameter, die eine Impulsfolge beschreiben: Impulsbreite (PW) und Impulswiederholungsintervall (PRI). PW steuert die Servoposition. Es ist kritisch und muss stabil sein. PRI ist bei weitem nicht so kritisch, zumindest bei R / C-Servos: Sie sind im Allgemeinen mit einem PRI zwischen 20 und 50 ms zufrieden, und es macht ihnen nichts aus, wenn es etwas variiert. (Sie sehen auch PRF für die Pulswiederholungsfrequenz, normalerweise in Radarsystemen. PRI 20-50 ms entspricht einer PRF von 50 bis 20 Hz.)

Jede Art von Instabilität in der Pulsbreite (PW) ) bewirkt, dass das Servo "summt", während es das Steuersignal verfolgt. Eine solche Instabilität kann durch die RIESIGE Stromaufnahme eines in Bewegung befindlichen Servos ausgelöst werden, wenn die Stromversorgung am STEUERKREIS nicht über eine ausreichende Stoßkapazität verfügt. (Ein Standard-Servo in kontrollierter Bewegung kann leicht 250 mA ziehen. Ein "summendes" Servo kann Spitzen von einem halben Ampere ziehen. Ja, dies ist aus Erfahrung.)

Instabilität im PRI ist im Allgemeinen kein Problem für ein R / C-Servo.

Das allererste, was ich tun würde, ist, einen 250-uF-Kondensator direkt über die Servokabel zu hängen. Das zweite, was ich tun würde, ist, das Steuersignal zu erfassen, an der ansteigenden Flanke auszulösen und die Problembereiche zu untersuchen, um festzustellen, ob das Timing an der abfallenden Flanke überhaupt variiert.

Jeder, der spielen möchte Bei Servos sollte zunächst ein 555 und ein Ein-Transistor-Wechselrichter verkabelt werden, das Servosteuersignal vollständig in Hardware erzeugt und damit gespielt werden. Es ist ANLEITUNG, ein Servo dort sitzen zu sehen, zu summen, zu beobachten, wie Ihr Amperemeter für die Stromversorgung überall herumläuft und Spitzen mit einem halben Ampere registriert. Das Biest zu zähmen ist umso mehr. Hinweis: Diese Schaltung zeigt auch die Toleranz des Servos gegenüber variierenden PRI: Der einfachste 555-Impulsgenerator für diesen Zweck variiert PRI, wenn er PW variiert.

Olin Lathrop
2011-06-28 00:20:44 UTC
view on stackexchange narkive permalink

Führt der Laptop die Regelung durch? Wenn ja, liegt dies wahrscheinlich daran, dass versucht wird, eine Echtzeitsteuerung auf einem Betriebssystem durchzuführen, das nicht in Echtzeit ausgeführt wird. Ich habe gemessen, wie Windows jeweils einige 100 ms lang zum Mittagessen ausgeht, nur weil die Maus bewegt wurde. Wenn Ihre Steuerungsiterationen schneller sind, macht eine solche Verzögerung die Dinge instabil.

Wenn der Laptop nur Befehle auf hoher Ebene an einen dedizierten Controller sendet, der die eigentliche Steuerung durchführt, ist es schwer zu erraten, was los ist auf. Wie wird das Positionsrückmeldungssignal erzeugt? Wenn es aus einem Topf stammt, kann es kratzig werden.

Der Pololu Micro Maestro ist ein Servocontroller. Es tut mir leid, dass ich das nicht erwähnt habe, aber höchstwahrscheinlich müssten Sie noch eine einfache Suche durchführen, da ich nicht alle Details zum Gerät angeben kann. Ich vermute, dass dies die zweite Option ist, die Sie zum Senden von Befehlen an einen dedizierten Controller erwähnen.
Ich bezweifle, dass die Nicht-Echtzeitfunktion von Windows etwas mit "Dies geschieht nur an bestimmten Positionen" zu tun hat.
@kenny Wenn Windows die Schleife sehr gut schließen musste, könnte dies auch an bestimmten Positionen die Ursache sein. Ein Filter / Controller kann am Ende einige ungerade Pole oder Nullen haben, die aufgrund eines ungeraden Fenster-Timings auftreten, das nur bestimmte Positionen beeinflusst. Aber das scheint hier nicht das Problem zu sein.
@kennny, Ich glaube, ich habe den Teil mit den spezifischen Positionen verpasst. Wenn das wirklich stimmt, dann klingt schlechtes Feedback, wie ein kratziger Topf, wenn es das ist, was sie verwenden, wie ein wahrscheinlicherer Schuldiger.
@kenny, gibt es zwei Parameter, die eine Impulsfolge beschreiben: Impulsbreite (PW) und Impulswiederholungsintervall (PRI). PW steuert die Servoposition. Es ist kritisch und muss stabil sein. PRI ist bei weitem nicht so kritisch, zumindest bei R / C-Servos: Sie sind im Allgemeinen mit einem PRI zwischen 20 und 50 ms zufrieden, und es macht ihnen nichts aus, wenn es etwas variiert. (Sie sehen auch PRF für die Impulswiederholungsfrequenz, normalerweise in Radarsystemen. PRI 20-50 ms entspricht einer PRF von 50 bis 20 Hz.)
Tim Williscroft
2011-06-28 05:22:54 UTC
view on stackexchange narkive permalink

Unsere Erfahrung mit Modellfernbedienungsservos und Pololu-Karten zeigt, dass einige Servos Positionen haben, die laut sind.

Es ist das Servo, nicht die Steuerung. Tauschen Sie das Servo aus, wenn Sie eine bessere Leistung benötigen.

Ja, das sagt @Moulde. Sie geben keine Erklärung oder Vorschläge, um dies zu vermeiden. -1
@Federico: fügte eine Lösung hinzu.
Ich verstehe das nicht, weil das Servo ein ziemlich teurer Hitec HS-7950TH ist!?
Yann Vernier
2011-06-29 00:01:47 UTC
view on stackexchange narkive permalink

Es ist ein einzelner PIC, der mehr PWM-Kanäle als Timer hat. Wie gut es gelingt, hängt ganz davon ab, was das Programm im PIC macht. Bei diesem Design würde ich den Timer verwenden, um Impulslängen, Interrupts für das Umschalten des Ausgangs und Software-Polling für USB und seriell auszugeben, damit das Timing der Servoausgänge nicht unterbrochen werden kann. Viele andere Kombinationen stören das Timing von Servokanälen oder externe Aktualisierungen. Möglicherweise stimmen die spezifischen Positionen, die Sie sehen, mit den Herzschlägen auf USB überein.

user924
2011-06-30 21:52:33 UTC
view on stackexchange narkive permalink

Wenn Ihr Servo mit einer Amplitude von einer Encoder-Schrittgröße schwingt, überprüfen Sie, ob die Funktion "Dead Band Something" korrekt verwendet wird. Wenn nicht aktiviert, hat Ihr Servo immer die Möglichkeit, einen unsicheren Punkt in der Nähe der Encoderpositionen N und N + 1 oder N-1 zu treffen. Servo versucht, den kleinsten 1-Schritt-Fehler zu beseitigen und überschreitet einen weiteren Schritt, oder der Encoder reagiert empfindlich auf Magnetfeldgeräusche oder Licht und ändert ständig seine Meinung zwischen N und N + 1.

Unsicheres Lesen ist in allen Builds unvermeidbar egal wie gut und teuer die teile sind. Um dies zu beheben, muss das PID-Setup Positionsfehler ignorieren, die kleiner oder gleich 1 Geberschritt sind.

John R. Strohm
2011-09-14 09:35:41 UTC
view on stackexchange narkive permalink

Wenn dies ein herkömmliches R / C-Servo ist, verwendet es ein Potentiometer, um die Wellenposition zu erfassen und das interne Fehlersignal zu entwickeln, das den Motor antreibt. Potentiometer können verschmutzen. Sie KÖNNEN eine sorgfältige Operation am Servo versuchen und den Topf mit Kontaktreinigungslösung besprühen.

Oder versuchen Sie es mit einem anderen Servo.

Abhängig von der Mathematik Ihres Steuergesetzes in Ihrem PC (. NET -> PC-Controller), haben Sie möglicherweise eine mathematische Instabilität, die in den Befehlen zum Servo angezeigt wird.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...