- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Robo mit Knicklenkung: Radgeschwindigkeiten berechnen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449

    Robo mit Knicklenkung: Radgeschwindigkeiten berechnen

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich bin gerade an der Programmierung der Motorsteuerplatine meines Roboters dran:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Robo2.jpg
Hits:	48
Größe:	61,4 KB
ID:	27017Klicke auf die Grafik für eine größere Ansicht

Name:	Robo1.jpg
Hits:	47
Größe:	85,0 KB
ID:	27018
    (Morgen kann ich bei Tageslicht bessere Bilder machen)
    Wie man auf den Bildern sehen kann besitzt er eine Knicklenkung. Dabei wird jedes Rad einzeln angetrieben und der Knickwinkel mithilfe eines Potis gemessen. Die Motorregelung funktioniert auch schon sehr gut: Für jedes Rad kann eine Geschwindigkeit festgelegt werden, die dann via PWM gehalten wird.

    Was jetzt tatsächlich schwieriger ist als ich gedacht habe, ist:
    Wenn der Roboter fährt soll als "Hauptpunkt" der Mittelpunkt zwischen den beiden Vorderrädern genommen werden, d.h. die Motorsteuerplatine bekommt den Befehl den Hauptpunkt zu einer bestimmten relativen Koordinate unter einem bestimmten Winkel heranzufahren. Davon lässt sich dann ableiten, wie sich die Vorderräder zu drehen haben. Was sich jetzt ableiten lassen sollte ist, wie sich die Hinterräder zu drehen haben; nämlich so, als würde sie sich frei drehen können.

    Geradeaus ist einfach: Alle gleich schnell
    Im Kreis ist auch einfach, da kann man die einzelnen "Bahngeschwindigkeiten" herausrechnen:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Screenshot from 2013-12-27 00:36:39.jpg
Hits:	44
Größe:	34,0 KB
ID:	27019

    Aber das schwierige sind alle anderen Möglichkeiten:
    • Vom Geradeausfahren in eine Kurve übergehen
    • Die Vorderräder können sich in unterschiedliche Richtungen drehen


    Im Endeffekt braucht man also eine Funktion, der man Übergibt:
    • Geschwindigkeit linkes Vorderrad
    • Geschwindigkeit rechtes Vorderrad
    • Knickwinkel

    und die errechnet
    • Geschwindigkeit linkes Hinterrad
    • Geschwindigkeit rechtes Hinterrad


    Aber daran scheitert es bei mir Zwar habe ich es hinbekommen, dass es ungefähr passt, aber eben nicht genau -> Die Konstruktion schiebt sich teilweise über den Boden, reifen Quitschen und die Motoren freuts auch nicht...

    Hätte den jemand von euch eine Idee wie man da dran gehen könnte? Oder einen Link der irgendwie weiterhelfen könnte?

    Viele Grüße und vielen Dank im vorraus
    schumi

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    526
    Poste doch bitte mal die Funktion, die du bisher gefunden hast und die nur ungefähr passt. Sonst fangen wir hier ja völlig bei Null an.

    Die einfache Lösung wäre, alle vier Motoren in Reihe zu schalten, dann regelt sich das von selbst, Stichwort "elektrisches Differential", ist dann nur nicht so geländegängig, und das ist ja vermutlich das Ziel.

    Du sagst für stationäre Kurvenfahrt hast du das Problem schon gelöst.
    Für die Transitionsfälle musst du jetzt noch berechnen, um wieviel sich jedes Rad dreht, wenn das Fahrzeug nicht fährt, sondern nur lenkt. Dazu hältst du wie gehabt deinen Referenzpunkt fest, knicktst im Geiste dein Fahrzeug und berechnest die Bewegung jedes Radaufstandspunktes. Dann kommt z.B. raus 1° Lenkwinkel = 3 mm vorwärts rechts vorne usw., und das bedeutet dann auch Lenkgeschwindigkeit 1°/s = 3 mm/s zusätzliche Geschwindigkeit für rechts vorne.
    Die Zusatzgeschwindigkeite infolge Lenkbewegung musst du dann den stationären Geschwindigkeiten hinzufügen. d.h. du überlagerst einfach die beiden Geschwindigkeiten. Dann sollte es klappen.

    Viel Erfolg!

    Nils

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    ... Programmierung ... Knicklenkung ... wie sich die Hinterräder zu drehen haben ...
    Hallo schumi, das Stichwort heißt Traktrix. Siehe z.B. Wikipedia und andere Quellen.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    30
    Beiträge
    449
    Zitat Zitat von hbquax Beitrag anzeigen
    Poste doch bitte mal die Funktion, die du bisher gefunden hast und die nur ungefähr passt. Sonst fangen wir hier ja völlig bei Null an.
    Also ich hab jetzt nochmal richtig aufgeräumt, bzw. mehr oder weniger von vorne angefangen. Ich berechne das ganze über Vektoren und eigentlich sieht es jetzt ganz gut aus, d.h. die ausgegebenen Werte scheinen über den Daumen gepeilt richtig zu sein. Habe meinen Test-Code mal angehangen (Ich habe das ganze erst am PC programmiert und über Printf auch die ganzen Zwischenergebnisse ausgegeben. Wer das also testen möchte kanns einfach so kompilieren)

    Die einfache Lösung wäre, alle vier Motoren in Reihe zu schalten, dann regelt sich das von selbst, Stichwort "elektrisches Differential", ist dann nur nicht so geländegängig, und das ist ja vermutlich das Ziel.
    Richtig, zudem habe ich meine Motorsteuerplatine schon (4 einzelne H-Brücken mit BackEMF-Messung)

    Für die Transitionsfälle musst du jetzt noch berechnen, um wieviel sich jedes Rad dreht, wenn das Fahrzeug nicht fährt, sondern nur lenkt. Dazu hältst du wie gehabt deinen Referenzpunkt fest, knicktst im Geiste dein Fahrzeug und berechnest die Bewegung jedes Radaufstandspunktes. Dann kommt z.B. raus 1° Lenkwinkel = 3 mm vorwärts rechts vorne usw., und das bedeutet dann auch Lenkgeschwindigkeit 1°/s = 3 mm/s zusätzliche Geschwindigkeit für rechts vorne.
    Die Zusatzgeschwindigkeite infolge Lenkbewegung musst du dann den stationären Geschwindigkeiten hinzufügen. d.h. du überlagerst einfach die beiden Geschwindigkeiten. Dann sollte es klappen.
    Das war auch mein erster Ansatz, allerdings hatte ich da noch Fehler drin ist mir aufgefallen. Jetzt mache ich es etwas anders:
    • Bekannt sind Knickwinkel und die Geschwindigkeiten der beiden Vorderräder
    • Berechnung, wohin und unter welchem Winkel sich der vordere Teil bewegt
    • Berechnung, wohin sich das Gelenk hinbewegt
    • Daraus schließen, wie sich der hintere Teil bewegt (ohne Traktrix [Aber in diesem Moment fällt mir ein, dass es damit noch besser sein könnte])
    • Und dann die Bewegung der Hinterräder herleiten


    Viel Erfolg!
    Danke

    Zitat Zitat von oberallgeier Beitrag anzeigen
    Hallo schumi, das Stichwort heißt Traktrix.
    Vielen Dank für den Tipp, kannte ich noch nicht


    Ich werde jetzt erst mal meinen "Mastercontroller" (kleiner Router mit OpenWRT) auf den Robo bauen, damit ich an ein paar Debug-Ausgaben komme. Denn ganz flüssig läuft es noch immer nicht (Ich habe das Gefühl, dass die Geschwindigkeitsmessung der Räder nicht nur von der tatsächlichen Geschwindigkeit abhängt, sondern auch die PWM-Regelung da reinfunkt)
    Angehängte Dateien Angehängte Dateien

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo!

    Bei 4WD Autos ist angeblich alles rein mechanisch per drei Differs gelöst.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    ... Tipp, kannte ich noch nicht ...
    Kennt man als Segler (Boot), Kiter, Flieger und so als Hundekurve. Selbst manche Mathefreaks kennen die *ggg*.

    ... Geschwindigkeitsmessung ... von der tatsächlichen Geschwindigkeit abhängt ... die PWM-Regelung da reinfunkt)
    Uuuups! Hast Du schon beschrieben wie Du die Geschwindigkeit misst (oder hab ich den Thread nicht ordentlich gelesen?) Könnte da etwas im Argen liegen ?

    ... Die Motorregelung funktioniert auch schon sehr gut: Für jedes Rad kann eine Geschwindigkeit festgelegt werden, die dann via PWM gehalten wird. ... Wenn der Roboter fährt soll als "Hauptpunkt" der Mittelpunkt zwischen den beiden Vorderrädern genommen werden, d.h. die Motorsteuerplatine bekommt den Befehl den Hauptpunkt zu einer bestimmten relativen Koordinate unter einem bestimmten Winkel heranzufahren ...
    Und da verstehe ich es so, dass Du einmal den Regelungskreis "Sollwert Motor" zu Stellgröße PWM hast - und dann drüber noch einen Offset (+/-) für unterschiedliche Kurvengeschwindigkeitsunterschiede legst. Ist das nicht etwas problematisch - oder ? Wie ist das denn gelöst?
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Wird eigentlich der Winkel im Knickgelenk gemessen? Würde ich zumindest zum Nachprüfen der Plausibilität der Rechenergebnisse einbauen, Stichwort Redundanz. Vielleicht ließe sich der Gelenkwinkel sogar über die Antriebe regeln. Ich nehme mal an, dass es nicht direkt angetrieben wird?
    Ansonsten denke ich, dass es bei solchen Konzepten ganz praktisch wäre, mit flachheitsbasierter Regelung zu arbeiten, allerdings wird es da wirklich komplex.

  8. #8
    Benutzer Stammmitglied Avatar von Ryoken
    Registriert seit
    18.12.2008
    Ort
    bw
    Beiträge
    84
    Zitat Zitat von PICture Beitrag anzeigen
    Hallo!

    Bei 4WD Autos ist angeblich alles rein mechanisch per drei Differs gelöst.
    Bei mechanisch angetriebenen Autos funktioniert auch ein mechanisches Differential.
    Und wenn der "Antriebsstrang" elektrisch ist...
    A mistake is evidence that someone tried to do something.
    It`s not impossible - it just costs more

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Das mit den Differentialen bringt übrigens nur was, wenn die Lenkung auch aktiv ist. So, wie ich das jetzt aber mitbekommen habe, wird die Knickachse nicht gelenkt, sondern bewegt sich indirekt dadurch, dass sich die Räder unterschiedlich schnell drehen. Wäre der Antrieb dann über Differentiale gelöst, würde sich das Fahrzeug zwar vorwärts bewegen, die Lenkrichtung wäre aber völlig willkürlich.

    Bei indirekter Lenkung bin ich mir eigentlich schon sicher, dass man da irgendwie die Gelenkstellung der Achse messen muss, sonst driftet einem der Roboter extrem umher, wenn man diese nur irgendwie abschätzt, vor allem, weil es sonst auch schon schwierig wird, eine definierte Ausgangsstellung zu schaffen.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Bei indirekter Lenkung bin ich mir eigentlich schon sicher, dass man da irgendwie die Gelenkstellung der Achse messen muss, sonst driftet einem der Roboter extrem umher, wenn man diese nur irgendwie abschätzt, vor allem, weil es sonst auch schon schwierig wird, eine definierte Ausgangsstellung zu schaffen.
    Schon im Eingangspost steht es:

    Dabei wird jedes Rad einzeln angetrieben und der Knickwinkel mithilfe eines Potis gemessen.
    Dabei ist offenbar kein extra Stellglied für die Lenkachse vorhanden. Trotzdem hat man immer noch zuviele Freiheitsgrade für die Eingabe, nämlich 4 Raddrehwinkel, die unabhängig angesteuert werden können. Das gesamte Fahrzeug hat aber nur 2 Freiheitsgrade, Geschwindigkeit und Lenkwinkel. Damit ist es schon irgendwie klar, dass nicht jede mögliche Eingabekombination schlupffrei möglich ist. In diesem Sinne ist es durchaus sinnvoll nicht an allen Rädern Wege (Raddrehwinkel) sondern statt dessen Antriebsmoment (Motorstrom) vorzugeben. Die Vorschläge zu Differenzialgetrieben gehen genau in diese Richtung.
    Vorstellbar wäre ein Konzept in dem man nur die beiden Vorderräder nach Radenkodern steuert (damit sind Geschwindigkeit und Lenkwinkel des Fahrzeugs bereits eindeutig definiert). Die hinteren Motoren steuert man über den Motorstrom so, dass sie etwa das selbe Antriebsmoment wie die vorderen erbringen (gleiche Radlast für alle 4 Räder angenommen). Damit bekommt man die gewünschte Traktion, ohne zusätzliche Freiheitsgrade in die Ansteuerung zu bringen. Die Radencoder an der Hinterachse kann man trotzdem brauchen um zu prüfen ob die Winkelgeschwindigkeiten plausibel sind für schlupffreie Fahrt.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Vierrad m. Knicklenkung u. Selbstbaudiff. -abgeschlossen
    Von Searcher im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 57
    Letzter Beitrag: 24.05.2010, 21:30
  2. Knicklenkung mit Servo und Zahnrädern
    Von Searcher im Forum Mechanik
    Antworten: 22
    Letzter Beitrag: 14.05.2010, 21:57
  3. [ERLEDIGT] Wendekreis bei Knicklenkung [gelöst]
    Von Searcher im Forum Kopfnüsse / Wissensquiz
    Antworten: 17
    Letzter Beitrag: 25.03.2010, 21:38
  4. Robo mit Verbrennungsmotor
    Von Ganxta2 im Forum Elektronik
    Antworten: 48
    Letzter Beitrag: 29.03.2006, 12:13
  5. Mein 1. Robo mit MODs
    Von REX im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 12
    Letzter Beitrag: 31.08.2004, 16:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus