Differentialantrieb für schwere Roboter

Ich stelle hier eine andere Frage in Bezug auf meine vorherige .

Ich würde gerne wissen, wie man vorgehen würde, wenn man einen schweren Roboter mit Differentialradantrieb steuern möchte. Beim Senden von PWM-Werten kann ich den Roboter nicht steuern, dh ich kann den Roboter nicht auf eine gerade Linie bringen.

Ein weiteres Problem wäre, den Roboter zu bremsen. Stellen Sie sich 100 kg bei seinem maximalen Gewicht vor, damit es viel Schwung und Trägheit hat. Wenn Sie dies wissen, was würden Sie tun, um seine Bewegung mit einem Differentialantriebssystem zu kontrollieren, und wie würden Sie das Brechen kontrollieren?

Hinweis: Dies ist nicht als Hobbyprojekt zu betrachten. Betrachten Sie dies als den besten Weg, es zu implementieren.

Antworten (1)

Eine Antwort: Closed-Loop-Systeme und/oder Sensorfusionen

Sie können nicht einfach die richtigen Befehle an den Motor senden und erwarten, dass der Roboter genau so reagiert, wie Sie es erwarten. Denken Sie an einen sehr sehr kleinen Unterschied im Drehmoment Ihrer beiden Motoren, die zwei identische PWM-Signale erhalten haben (aufgrund von Toleranzen bei der Motorherstellung). Einer geht etwas schneller als der andere und der Roboter läuft auf einem Kreis (sehr groß, aber immer noch ein Kreis) statt auf einer geraden Linie. Die Antwort auf dieses Problem ist die Regelung mit geschlossenem Regelkreis. Ihre Motoren oder Ihre Räder haben Encoder. Und Ihr Steuerungssystem empfängt die Signale von den Encodern und reagiert so, dass sichergestellt ist, dass Ihre Räder genau das tun, was Sie von ihnen erwarten.

Aber im Falle eines autonomen Roboters reicht das nicht aus. Denken Sie daran, ein Rad zu haben, das aufgrund von Verschleiß oder einfach aufgrund von Fertigungstoleranzen etwas größer ist als das andere. Oder denken Sie an ein Rad, das auf dem Boden ein wenig rutscht. In diesem Fall wissen Sie nicht mehr genau, wo Sie sich befinden. Diese Methode wird Odometrie oder Koppelnavigation genannt. Um dies zu lösen, müssen Sie Sensoren verwenden, die Ihrem System Wissen über Ihre Umgebung hinzufügen. (Vision, Näherungssensor, Stoßstangen, Magnetometer, Gyroskope usw.). Dann werden fortschrittliche Algorithmen verwendet, um in jedem Zeitschritt das Beste aus jedem Sensor zu nutzen.

Welche möglichen Nachteile kann ich durch die Verwendung von Encodern bekommen? Ich nehme an, es wird eine Verzögerung bei der Reaktion des Roboters geben, da die Motor-PIDs die PWM auf die gewünschte Geschwindigkeit einstellen müssen, richtig?
Der Nachteil ist die erhöhte Komplexität: Sie müssen die Encoder verdrahten und die Quadratursignale decodieren (normalerweise hat der Mikrocontroller dafür ein eigenes Modul). Es gibt immer eine Verzögerung: Auch die Berechnung dauert einige Zeit! Die Kontrolltheorie ist nicht so einfach. Vor allem, wenn man sich auf diskrete Systeme konzentriert (keine einfache analoge PID, die in die digitale Welt übersetzt wird, sondern Algorithmen, die die volle Leistung digitaler Berechnungen nutzen). Sie könnten dort die verschiedenen Verzögerungen berücksichtigen und dies wird kein Problem mehr sein. Das Werfen einer PID und das manuelle Einstellen von 3 Werten wird es hier nicht schaffen.