Hallo Richard,
erst einmal schöne Weihnachten. Natürlich für alle Leser.
Ich bin auch fürs Lügen.
Sinn macht das Ganze ja auf alle Fälle dann, wenn eine Kurve z.B. so gefahren werden soll, so das ein Rad die doppelte Strecke gegenüber dem anderen fahren soll. Klar, dass ich dann bei den Tiks lüge und dem Regler etwas vom Pferd erzähle.
Der hier von waste entwickelte PID läßt sich auch für solche Dinge hervoragend nutzen und in einen Kurven-Regler (eine Gerade ist nur ein Sonderfall einer Kurve) umbauen.
Ist bei mir schon 'etwas' länger im Betrieb.
Hier mal meine vom Baron erzählte Lügengeschichte mitten im waste-Code:Der Regler nutzt dann die beiden Variablen LWert und RWert um 'seiner' Meinung nach geradeaus zu fahren. In sens.rad_tik [..] stehen bei mir die gemessenen Tiks. Und dann wird gelogen auf float komm raus.Code:case PID_ODOMETRIE: if (links == 0 || rechts == 0) use_regler = FALSE; else { absLinks = abs (links); absRechts = abs (rechts); /* Odometrie-Zaehler so justieren, dass fuer eine Kurvenfahrt die Tic-Anzahl auf beiden Seiten identisch aussehen. Die Seite auf der weniger Tic's zu fahren sind wird auf die hoehere Anzahl 'hochgerechnet'. */ if (absLinks < absRechts) { faktor = (float)absRechts / (float)absLinks; LWert = sens.rad_tik [LINKS] * faktor; RWert = sens.rad_tik [RECHTS]; } else { faktor = (float)absLinks / (float)absRechts; LWert = sens.rad_tik [LINKS]; RWert = sens.rad_tik [RECHTS] * faktor; } kp = g_kp; ki = g_ki; kd = g_kd; } break;
@oberallgeier
Lügen kann in der heutigen Zeit einfach hilfreich sein um die Kurve zu kratzen. Außer man fährt AC-Schnitzer getunetes. Da wird natürlich rechtwinklig abgebogen
. (Schau bitte nicht auf die Uhrzeit. Ist Urlaub.)
Gruß und guten Rutsch ins Neue Jahr an alle.
Sternthaler
Lesezeichen