Ich sehe nicht, wo du da soviel Mathematik verbauen solltest.
Dein größeres Problem wird der eine Sensor sein, da der Rollstuhl seine Entfernung zum Auto nicht vernünftig bestimmen kann.
Ich sehe nicht, wo du da soviel Mathematik verbauen solltest.
Dein größeres Problem wird der eine Sensor sein, da der Rollstuhl seine Entfernung zum Auto nicht vernünftig bestimmen kann.
Also, ich habe das alles durchdacht, natürlich brauche ich 2 Sensoren damit das alles regelrecht funktioniert.
Den Regler brauche ich für die Abstandsregelung dachte ich mir.
Also kann ich das alles ohne Regler nur mit if und while schleifen lösen?
Was meinst du denn damit? Bestimmt kann man das irgendwie lösen, allerdings ist die Frage dann, wie gut das funktioniert. Läuft dann letztendlich auf einen Schaltregler hinaus, der je nachdem, was die Sensoren ausgeben, den Rollstuhl anders fahren lässt, was wahrscheinlich ein wenig ruckeln könnte, allerdings sollte es nicht instabil werden, sonst hängt die Kiste recht schnell im Kotflügel. Ich wär eigentlich eher für einen quasikontinuierlichen Regler.
was meinst du denn mit einem quasistationären regler?
Wo hab ich das denn bitte geschrieben?
Ich schrieb quasikontinuierlicher Regler, also ein Regler, der mit kontinuierlichen Werten arbeitet, nicht mit diskreten. Bei einer If-Verzweigung wird das Programm ja gucken, ob irgendwelche Werte über- oder unterschritten werden, wobei ein kontinuierlicher Regler direkt mit den Zahlenwerten vom Sensor arbeitet und daraus die neuen Stellgrößen für die Antriebe berechnet. Ich denk mal, du wirst nicht drum herum kommen, dir wenigstens ein paar Grundlagen zur Regelungstechnik anzulesen. Wenn du bei deinen if- und while-Schleifen bleiben willst, empfehle ich die Stichwörter Zweipunkt. bzw. Dreipunktregler.
Sorry habe mich verschrieben![]()
Die Seite für Regelungstechnik habe ich schon gelesen![]()
Ich weiß nur nicht, wie ich das mit dem arduino programmieren soll.
Vorallem habe ich ja zwei Sensoren, die messen und geben mir eine Entfernung in cm an. Dann gebe ich noch einen sollwert für die Entfernung an, und die Stellgrösse wird verändert (die Signale für servo-Motoren).
Ich komm aber nicht dahinter, wie die Stellgrössen je nach Entfernung gesetzt werden?! Wie programmiere ich das?
Wie sind denn die Sensoren angeordnet? Man könnte mittels der Differenz der Werte die Schrägstellung des Rollstuhls bestimmen und mitels Mittelwert ca. den Abstand. Man kann dann eine mittlere Geschwindigkeit für die Motoren vorgeben und je nachdem, wie groß jetzt die Werte für Schrägstellung und Abstand sind, wird bei einem Motor die Geschwindigkeit erhöht und bei dem anderen reduziert, damit der Rollstuhl beim fahren eine Kurve fährt. Wie sehr die Geschwindigkeitsänderung der Motoren aussieht kann man dann von den gemessenen Werten abhängig machen. Nehmen wir jetzt mal an, der Rollstuhl fährt an der linken Seite des Autos nach hinten, das Auto wäre also auf der linken Seite des Roboters. Nun lässt sich ja sagen, je mehr er nach links fährt (also Richtung Auto), soll sich das linke Rad schneller drehen und das rechte Rad langsamer. Für den Fall, dass er zu sehr nach rechts fährt, wärs dann umgekehrt. Mit dem Abstand wärs dann ähnlich, man legt einen Sollabstand fest und je mehr er davon in eine Richtung abweicht, desto mehr lenkt er die andere Richtung.
Um es mal in Form einer Formel darzustellen:
Motor_links = v_soll + a*Schrägungswinkel - b*(Istabstand-Sollabstand)
Motor_rechts = v_soll - a*Schrägungswinkel + b*(Istabstand-Sollabstand)
Wobei du jetzt nun noch herausfinden musst, wie du auf den Schrägungswinkel und den Istabstand kommst, sowie welche Werte am günstigsten für a und b sind. Das musst du wohl selber herausfinden, da braucht man dann die Daten vom Roboter, zB. wie die Sensoren angebracht sind, was sie für Werte liefern, Achsabstand der Räder usw. Am besten wäre es natürlich, wenn man das ganze schonmal in einem Programm simulieren könnte, bevor man anfängt, einen Prototypen nach dem anderen gegen ein Auto fahren zu lassen. Wenn man ganz genau gehen möchte, müsste man nämlich auch noch die Dynamik mit berücksichtigen, aber ich befürchte, dass du damit gerade überfordert wärst.
Nun möchte ich aber auch, dass du diese Gedanken dazu selber zuende führst. Ich hab eigentlich den Grundsatz, in Foren wie hier nur zu helfen, aber niemandem die eigentliche Arbeit abzunehmen.
Lesezeichen