Die zentrale Frage für jeden robby ist "Wo bin ich ?". Schau doch mal dort, da ist eniges zusammengetragen worden.
http://www.rn-wissen.de/index.php/Navigation
Hallo Leute,
im Zuge der Entwicklung unseres Otter 2 für die dieses Wochenende stattfindende Eurobot Qualifikation sind wir auf ein... nein, eigentlich sind wir auf etliche Probleme/Herausforderungen gestoßen, aber diese eine würde ich hier gerne nochmal diskutieren. Nur der Neugier wegen. Ein Konzept haben wir schon, das einigermaßen funktioniert.
Also... ein zweirädriger Roboter soll an einen bestimmten Zielpunkt auf einer Ebene fahren. Dazu bekommt er einen Vektor, der von seiner Startposition zum Zielpunkt weist.
Welche Kriterien nimmt man gemeinhin an, um sagen zu können, ja, jetzt hat der Roboter seinen Zielpunkt erreicht?
Unsere Lösung sieht derzeit folgendermaßen aus:
Die Kraftsteuerung der Motoren erfolgt über einen Regelkreis mit PID-Regler. Im ersten State erhält der Regelkreis die Winkeldifferenz zwischen Blick- und Zielvektor als Regeldifferenz. Im zweiten State erhält er die Differenz aus zurückgelegter relativer Distanz und Betrag des Zielvektors. Überschwinger versuchen wir zu vermeiden, indem die Regelparameter P, I und D so "ausgelegt" (rumprobiert, bis es akzeptabel war) wurden, dass ein sanftes Anfahren und Stoppen erfolgt. Den Augenblick des Erreichen des Zielpunktes ermitteln wir, indem wir schauen, ob der Betrag der Stellgrößen beider Motoren in Summe einen gewissen Wert unterschreitet und auch der Betrag der zuletzt erfassten Fahr- und Drehgeschwindigkeit unter einem bestimmten Wert liegt. Dann geben wir das Signal "Ziel erreicht".
Das funktioniert, ist aber nicht gerade sehr genau und schön. Leider haben die Getriebe unserer Motoren ein bisschen Spiel, sodass ein exaktes Ausregeln der Position und des Winkels nur schwer zu erreichen ist. Die Strecke selbst ist also leider nicht stationär genau. Da würde ich evtl. noch gerne irgendwie gegenregeln.
Insgesamt wüsste ich gerne, ob dieses Vorgehen schon der Königsweg ist, oder ob es da noch bessere Algorithmen zur Erfassung des Ereignisses "Ziel erreicht" gibt.
Danke
Viele Grüße,
Hendrik
"Gute Autofahrer haben die Fliegen an der Seitenscheibe" (Walter Röhrl)
Die zentrale Frage für jeden robby ist "Wo bin ich ?". Schau doch mal dort, da ist eniges zusammengetragen worden.
http://www.rn-wissen.de/index.php/Navigation
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Das ist auch schon implementiert. Die Verortung geschieht über zwei Inkrementalgeber, sprich Odometrie. Das funktioniert auch ziemlich genau. Die Frage ist halt, nach welchen Kriterien der jeweilige Regler merkt, wann das System den stationären Endwert erreicht und sich darauf eingeschwungen (!) hat - und das frühestmöglich.
"Gute Autofahrer haben die Fliegen an der Seitenscheibe" (Walter Röhrl)
Ich bin nicht sicher, ob ich den Kern der Frage richtig verstanden habe. Beim klassischen Regler ist das Kriterium, dass die Differenz zwischen Ist- und Sollwert Null ist (= steht auf Sollwert) und dass die zeitliche Änderung dieser Differenz ebenfalls Null ist (= stationär). Dabei ist zu beachten, dass der Sollwert zwar meist mit mathematischer Genauigkeit vorgegeben werden kann, der Istwert beruht typischerweise auf Messung, mit den dazugehörigen Ungenauigkeiten. Demzufolge ist "Null", wie ich es oben geschrieben habe in der Praxis nicht unbedingt mathematisch genau zu nehmen.Die Frage ist halt, nach welchen Kriterien der jeweilige Regler merkt, wann das System den stationären Endwert erreicht und sich darauf eingeschwungen (!) hat - und das frühestmöglich.
Lesezeichen