Hallo Zusammen, ich baue für eine Studienarbeit einen roboter mit zwei Motoren. Dieser soll je nach Steuerung durch einen Joystick gelenkt werden. Vom Joystick bekomme ich Werte für die Auslenkung der X- sowie der Y-Achse. Anhand dieser Werte sollen die Motoren angesteuer werden. Nun ist das vorwärts und rückwärtsfahren sowie das auf der Stelle drehen kein Problem. Jedoch fehlt es mir an einer Formel für das Fahren nach z.B. recchts vorne, rechts hinten, links vorne oder links hinten. Hatte eventuell jemand hier schon einmal das selbe Problem und hat eine gute Formel als Lösung für das Problem des Lenkausschlags in relation zur Geschwindigkeit gefunden? Mit freundlichen Grüßen
Geschwindigkeit = Lenkauschlag * 42 Mehr Hilfe kanns nur mit mehr Infos geben. Evtl suchst du funktional etwas V-Mischer ähnliches, aber das ist mehr geraten...
Ja, ist relatif einfach : die Motoren werden normalerweise mit PWM angesteuert. Ihre dreh Radius wird dan prozentual bei diese PWM werten addiert : Drehrate = 10% = 0,1 PWM-basis = basis speed PWM_Links = PWM basis*(1+Drehrate) PWM_Rechts = PWM basis*(1-Drehrate) Idealerweise ergeben negative PWM-werte eine andere Drehrichtung.
Dein Problem kenne ich. Das hatte ich auch schon mal. Der Joystick hat 4 Mikroschalter, bei Rechtsanschlag dreht sich das Modell auf der Stelle rechts rum (die Motoren drehen gegenläufig), bei Linksanschlag dasselbe in Grün nur anders rum. Für rechts vorne, links vorne, links hinten und rechts hinten habe ich damals mit KV-Diagrammen eine Lösung mit mehreren Logikgattern ermittelt. Das erschien mir aber zu aufwendig und der Roboter flog langfristig in die Ecke. Heute kann man das Problem leicht mit einem µC lösen. Reine Software. Die Motoren müssen dann aber über Relais oder Transistorbrücken angesteuert werden, weil du die Mikroschalter im Joystick für die Eingabe benötigst!
Student schrieb: > Jedoch fehlt es mir an einer Formel für das Fahren nach > z.B. recchts vorne, rechts hinten, links vorne oder links hinten Wieso, Panzerfahren ist die simpelste der Fortbewegungsmethoden, beide Gleisketten folgen 2 parallelen Linien. In einer Kurve ist die äusser Linie länger als die Innere. Genau um diesen Betrag muss der äusserer Motor schneller laufen als der Innere, um diese Kurve zu fahren. Das Problem: Die Ketten rutschen in dem Moment, daher ist die Berechnung vielleicht genau, die Bewegung eher Zufall. Besser geht es mit 2 Rädern auf solidem Untergrund, Ballonreifen, und einem Spornrad.
Da wirst Du wohl experimentieren müssen. Den Ausschlag wirst DU wohl bewerten und in eine Drehzahldifferenz umsetzen müssen. Warum das kein anderer machen kann ist recht einfach. Es kommt auf das Fahrverhalten und den tatsächlichen Einsatz an. Stell Dir mal vor, bei einem Rennwagen "reißt" jemand das Steuer rum... Hoppla! Stell Dir mal vor, Du willst/musst ausweichen und nichts passiert... Noch mal Hoppla!
:
Bearbeitet durch User
Wird das nun ein Robotor - also etwas das weitestgehendst selbstständig irgendeine Aufgabe erfüllen soll (z.B. von Punkt A nach B kommen), oder "einfach" einem ferngesteuerten Fahrzeug? Da du die Frage so stellst, gehe ich mal von ersterem aus. Da wirst du leider zusätzliche Sensoren rbauchen (haben die allermeisten Roboter ja nicht umsonst) um sich irgendwie zu orientieren, denn physikalsiche Bewegung ohne fixen Referenzpunkt hat immer eine Zufallskomponente und die SUmmiert sich desto länger der Robotor selbstständig den einprogrammieren Weg fährt... Berechnen kann man natürlich. Für Kettenantrieb so wie laberkopp geschrieben hat. Für ein Fahrzeug mit Lenkstange wäre es am sinnvollsten, den Weg der Hinterreifen zu ermitteln mit einem Signalgeber o.ä. unabhängig vom Motor. Daraus kannst du wieder die Linie ableiten die die jeweiligen Räder zurückgelegt haben und entsprechend die Kurve.
Das Problem ist leider nicht so gut erklärt. Deswegen versuche ich jetzt mal zu raten, was du brauchen könntest. Um Kurven zu fahren, musst du die beiden Bewegungen überlagern, d.h. GeschwindigkeitLinkerMotor = Fahrt.LinkerMotor * Y.Auslenkung + Drehung.LinkerMotor * X.Auslenkung. Dabei sind Fahrt und Drehung feste Variablen für Maximalwerte. Um eine Abhängigkeit von der Geschwindigkeit einzuführen, wäre es möglich, den Wert GeschwindigkeitLinkerMotor zusätzlich zu begrenzen, z.B. auf maximale Beschleunigung. Dann heißt der zweite Teil des oberen Terms, mal linear approximiert, nun Drehung.LinkerMotor * X.Auslenkung - Drehung.LinkerMotor * X.Auslenkung * (Y.Auslenkung/(Y.MaxAuslenkung+MinLenkrate)) (angenommen, die Räder drehen nicht durch und bei maximaler Geschwindigkeit lässt es sich noch mit dem angepasstem Wert der MinLenkrate lenken). Hoffentlich konnte ich helfen. MfG, Viktor
Ein durchaus komplexes Problem, wenn Schlupf ins Spiel kommt.. Ich beobachte immer wieder ganz gebannt meinen Rasenmähroboter (Bosch Indego), der trotz mit dem Auge erkennbaren einseitigem Durchdrehen fast perfekte parallele Bahnen fährt. Wahrscheinlich eingebauter Kompass. Und der Staubsauger fährt auf perfektem Untergrund ganz leichte Kurven und meint er fährt geradeaus:-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.