Ich würd um so stärker einschlagen, je größer die Abweichung ist...
Hallo Leute
Ich habe folgendes Problemchen:
Mein Roboterfahrzeug soll in einem Abstandsbereich zwischen 20 und 30 cm zur linken Wand sich forwärts fahren. Die Distanzmessung erfolgt mittels Sharp GP2D12 Distanzsenoren die direkt an den A/D Wandler meines ATmega 32 angeschlossen sind.
Nun ich lese zuerst die Messwerte vorne und links ein und verarbeite sie.
Wird der Wert 20 cm unterschritten soll nach rechts korrigiert werden und wird der Wert 30 cm überschrieten soll nach rechts korrigiert werden.
Nun zu meiner Frage:
Soll während der ganzen Korrekturphase die Räder je nach dem eingeschlagen werden, oder nur kurzzeitig. Was heisst, messen wenn unterschirtten oder überschritten nur kurz korrektur und dann wieder geradeaus???
Oder eben die andere Methode: Während der ganzen Korrektur die Räder eingeschlagen haben?
Was ist besser???
Mein Problem ist jetzt, dass sich das Fahrzeug aufschauckelt mit der Korrektur. Das heisst, er korrigiert wahrscheinlich immer ein bisschen später und so mit werden die Kurven immer grösser.
Danke für eure Hilfe!!!
Ich würd um so stärker einschlagen, je größer die Abweichung ist...
Du meinst also, dass solange der Wert überschritten oder unterschritten ist, die Räder eingeschlagen lassen und nicht wieder gerade stellen?!
Einzig noch ein weiters Problem ist ja, die Sensoren sind langsam und ich habe ja nicht beliebig viele Stellungen der Räder.
Sonst müsste ich ja ein grosse IF-Schleife programmieren die alle Werte dem entsprechend ausliest und die Räder stellet. Oder wie würdest du das realisieren? Anders als mit IF-Abfragen???
Andere Frage: Wie könnte ich das realisieren mit der Möglichkeit, dass die Ränder mehr eingeschlagen werden umso grösser die Abweichung? Es ist noch in einer verhältnismässig kurzen Zeit möglich und wäre das überhaupt mittels If-Abfrage möglich??
Hi,
anstatt if-Abfragen könnte man doch einen versuchen einen Regler einzusetzen.
Beschreibung dazu gibst im Wiki:
https://www.roboternetz.de/wissen/in...gelungstechnik
mfg
Thorsten
Open Minds. Open Sources. Open Future
ok an das habe ich auch schon mal gedacht. Aber ich bin nicht so gewahnt in Sachen Regeltechnik. Doch eigentlich schon, aber was nicht welchen Regler ich verwenden müsste und wie ich dann das genau im Code umsetzen kann. Genau dort ist meine Schwierigkeit. Hast du vielleicht noch eine kleine weiter Hilfe auf Lager?
Unter digitale Regler ist ein bischen Code wie man so einen Regler in Software aufbaut.
Selbst habe ich noch keine Erfahrungen damit gemacht, jetzt in den Semesterferien will
ich aber damit einen Linienfolger programmieren, dauert aber bestimmt noch ne Woche
bis ich da weiterbin.
Der Code der da steht muss rythmisch aufgerufen werden.
Zum Anfang werd ich wohl die Reglerfunktion
alle 10ms aufrufen, die Parameter selber durch probieren nach dem Regeln
im Text ermitteln.
mfg
Thorsten
Open Minds. Open Sources. Open Future
ok danke trotzdem für deine Hilfe. Irgendwie werde ich mich schon noch durchkämpfen. Einzig den Unterschied zwischen einer IF-Abfrage und dem Regeler sehe ich noch nicht ganz aber das wird noch.
Lesezeichen