Werden Fremd-Motoren (Nicht-Ardumower) oder andere Motortreiber (Nicht-Ardumower) eingesetzt müssen in der Regel der PID-Regler und danach der Stanley-Regler neu eingestellt werden.
Für die Regler (PID für Geschwindigskeitsregelung der Räder, Stanley für Line Tracking) gehe ich so vor: Zunächst müssen die Räder optimal (schnell und flüssig) reagieren auf manuelle Steuerung (Roboter dafür aufbocken), d.h.:
1. der PID-Regler für die Geschwindigkeitsregelung der Räder sollte eine schnelle Geschwindigkeitsänderung durchführen können (schnelle Änderung bei manueller Steuerung, z.B. von 10% auf 100% Gas und wieder zurück auf 10% Gas )
2. aber auch ein flüssiges, langsames Fahren umsetzen können (z.B. 10% / wenig Gas bei manueller Steuerung)
3. kein "nachlaufen" etc. - das Rad sollte nicht nachlaufen und die Änderung über die manuelle Steuerung (10% Gas, 30% Gas, 50 Gas, 70% Gas, 100% Gas sofort umsetzen
Beim Alfred z.B. (welcher eine "Regelstrecke" mit relativ hoher Verzögerung hat aufgrund der Aufteilung mit Motortreiber über Low-Level PCB seriell angekoppelt an High-Level Linux hat) haben sich folgende PID-Parameter als gut erwiesen:
Zum Verständnis der Stanley-Parameter gibt es eine Darstellung wo lateraler Fehler, Winkelfehler und die Stanley-Formel erklärt werden:
Für die Regler (PID für Geschwindigskeitsregelung der Räder, Stanley für Line Tracking) gehe ich so vor: Zunächst müssen die Räder optimal (schnell und flüssig) reagieren auf manuelle Steuerung (Roboter dafür aufbocken), d.h.:
1. der PID-Regler für die Geschwindigkeitsregelung der Räder sollte eine schnelle Geschwindigkeitsänderung durchführen können (schnelle Änderung bei manueller Steuerung, z.B. von 10% auf 100% Gas und wieder zurück auf 10% Gas )
2. aber auch ein flüssiges, langsames Fahren umsetzen können (z.B. 10% / wenig Gas bei manueller Steuerung)
3. kein "nachlaufen" etc. - das Rad sollte nicht nachlaufen und die Änderung über die manuelle Steuerung (10% Gas, 30% Gas, 50 Gas, 70% Gas, 100% Gas sofort umsetzen
Beim Alfred z.B. (welcher eine "Regelstrecke" mit relativ hoher Verzögerung hat aufgrund der Aufteilung mit Motortreiber über Low-Level PCB seriell angekoppelt an High-Level Linux hat) haben sich folgende PID-Parameter als gut erwiesen:
Nachdem optimale PID-Reglerparameter gefunden worden (1-2h dafür einplanen!) kann man sich mit dem Stanley-Regler (Line Tracking) beschäftigen. Dafür den Roboter fahren lassen und in der App "DEBUG IS ON" im Menü einstellen. Dann erscheinen ganze unten im Menü die Tuning-Optionen für den Stanley-Regler. Diese werden nicht gespeichert und dienen nur zum Testen. Für den Alfred z.B. haben sich folgende Parameter als gut erwiesen:#define MOTOR_PID_KP 0.5
#define MOTOR_PID_KI 0.01
#define MOTOR_PID_KD 0.01
Hier sollte man nicht zu hoch einstellen weil es dann schnell zum Überschwingen kommt. Auch hierfür ausreichend Zeit einplanen#define STANLEY_CONTROL_P_NORMAL 1.1 // for path tracking control (angular gain) when mowing
#define STANLEY_CONTROL_K_NORMAL 0.1 // for path tracking control (lateral gain) when mowing
Zum Verständnis der Stanley-Parameter gibt es eine Darstellung wo lateraler Fehler, Winkelfehler und die Stanley-Formel erklärt werden:
Sunray/doc/Sunray_fsm.png at master · Ardumower/Sunray
Ardumower Sunray. Contribute to Ardumower/Sunray development by creating an account on GitHub.
github.com
Zuletzt bearbeitet: