Hallo Sportsfreund,
es wird jetzt notwendig, dass ich Dir sage, dass meine Linienverfolgungstheorie noch nicht durch eigene Erfahrung belegt ist (bis auf ein paar wenige Experimente mit dem asuro).
Aber - doch, Du hast es doch ziemlich verstanden!
Für mein Selbstbewusstsein wär es hilfreich, wenn Du den code wenigstens nach der Lektüre der RN-Regelungs-Tutorials verstehst.Zitat von BlackDevil
Schön, danke.Zitat von BlackDevil
NEIN, NEIN, NEIN. "l", "m" und "r" sind Sensorwerte - keine Stellgrössen.Zitat von BlackDevil
Die Stellgröße ist der Wert, mit dem die P WM für die Motoren eingestellt wird, im obigen Code der Wert iy12, der in OCR0A geschrieben wird. Schau doch mal oben in meine handschriftlich verunzierte Skizze. Diese Größe wird vom "Regler" errechnet, das ist das, was in meinem code von "iesum12 = iesum12 + ie_mot12" bis "// daher wird hier alles integer gerechnet" steht. Dieser Code gilt nur für einen Motor (hier den rechten), der linke hat fast den gleichen code, natürlich mit anderen Indizes für die verschiedenen Werte.Zitat von RN-Tutorial Regelungs technik
Die Vorgabe der beiden Antriebsräder wird durch die "lmr"-Information gesteuert. Das ist keine Regelung mehr! ! ! !
000 > Doch das geht. Beispielsweise, wenn das Followline von der Piste total weg ist. Hier wäre es hilfreich zu wissen, nach welcher Seite das Ding wegfuhr - und das musst Du Dir merken (das Teil muss es sich merken) um wieder zur Linie zurück zu finden . . . . . eine hübsche Aufgabe für "später", wenn das Teil wenigstens halbwegs vernünftig der Linie folgt. Also zweite Ausbaustufe!Zitat von BlackDevil
010 > genau - Gummi! Gummi! Gummi!
011 > na ja, bei einer breiteren Fahrlinie kommt das vor. Stimmt - Linksdrift.
110 > wie eben, aber für Rechtsdrift.
111 > Followline steht quer auf der Linie (z.B. vom Wiedereinfahren nach dem Verlassen, siehe oben) - und muss irgendwie zurück. Eine hübsche Aufgabe für "später".
001 und 100 ist ja klar!?!?!??
2 ms? Kommt darauf an, wie schnell das Teil fahren soll. Aber 2 ms ist ein guter Wert. Mein kleiner Roboter fährt 60..80 mm/s und wird alle 10 ms geregelt. Wie gesagt, 011 und 110 sind für breite Linien - oder für enge Sensorabstände. Das ist sozusagen der Übergang von 010 nach 001 - und eine Auskunft darüber, dass Du mal entsprechend gegensteuern sollst. Bei 001 bzw. 100 wird dann voll gegen gesteuert.Zitat von BlackDevil
Steuerung: Du gibst für den linken oder den rechten Motor (verschiedenen) Sollgeschwindigkeiten vor (oder Drehzahlen oder so). Die Steuerung ist meist eine Routine die eher im main bzw. in dort aufgerufenen Routinen läuft.
Regelung: Die erzielte Motorgeschwindigkeit (Rad-Ist-Geschwindigkeit oder Motordrehzahl - ein ISTwert) wird so lange "nachgeregelt" durch den Regelalgorithmus, bis die Abweichung vom Sollwert möglichst Null ist. Die Regelung läuft am Besten natürlich in einer Interruptroutine, dann stimmt das Zeitraster!
Lesezeichen