PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Differentiallenkung über zwei Schrittmotoren



Gildraths
21.05.2016, 21:05
Hallo zusammen

In einem kleinen Team haben wir einen Roboter für einen Wettbewerb konzipiert.
Dieser soll einen Kurs in Form einer 8 abfahren. Wir haben uns für ein Fahrzeug mit Gelenk entschieden, wobei die Hinterachse verbunden ist und nachgezogen wird. Die Steuerung ist über eine Differential-Lenkung realisiert.

Durch Beschleunigung eines Schrittmotors fahren wir wie gewollt eine Kurve nach Links oder Rechts. Dies funktioniert wie es sollte. Unser Problem ist nun, dass der eingeschlagene Winkel beibehalten wird falls wir gerade aus fahren möchten. Dies war angedacht mit gleicher Geschwindigkeit auf beide Motoren zu geben.

Wie können wir das Verhalten Kurve zu Gerade umsetzen mit unserer Problematik?

Ich stehe gerade ziemlich auf dem Schlauch, bin für jede Hilfe bzw. Hinweis dankbar!

Peter(TOO)
21.05.2016, 21:29
Hallo,

Unser Problem ist nun, dass der eingeschlagene Winkel beibehalten wird falls wir gerade aus fahren möchten. Dies war angedacht mit gleicher Geschwindigkeit auf beide Motoren zu geben.

WENN beide Motoren gleich schnell drehen geht es nur geradeaus!

Also drehen aus irgendwelchen Gründen nicht beide Motoren gleich!

Was passiert wenn ich z.B. von Linkskurve auf Rechtkurve umschaltet?

Entweder klemmt die Mechanik irgendwie oder ihr habt einen Fehler in der Software.

Wie wird eigentlich die Drehzahl geändert? Bei einem Schrittmotor kann man nicht einfach die Frequenz umschalten, diese muss man langsam ändern (Rampe fahren). Wie schnell man die Frequenz ändern kann hängt vom Motor und der bewegten Masse ab.

MfG Peter(TOO)

i_make_it
22.05.2016, 09:43
Durch Beschleunigung eines Schrittmotors fahren wir wie gewollt eine Kurve nach Links oder Rechts. Dies funktioniert wie es sollte. Unser Problem ist nun, dass der eingeschlagene Winkel beibehalten wird falls wir gerade aus fahren möchten. Dies war angedacht mit gleicher Geschwindigkeit auf beide Motoren zu geben.
Wie können wir das Verhalten Kurve zu Gerade umsetzen mit unserer Problematik?


Also ich verstehe das so: Der Roboter fährt gradeaus, und dann erhöht Ihr die Drehzahl eines Motors damit der Roboter in die Kurvenfahrt geht.
Wenn er dann wieder in Gradeausfahrt gehen soll, sinkt die Drehzahl nicht mehr ab.
Oder habe ich das falsch verstanden?

Sollte es so sein, müsste man mal einen Blick auf den Programmcode sehen um die Fehlerursache zu finden.

Gildraths
22.05.2016, 11:10
Also ich verstehe das so: Der Roboter fährt gradeaus, und dann erhöht Ihr die Drehzahl eines Motors damit der Roboter in die Kurvenfahrt geht.
Wenn er dann wieder in Gradeausfahrt gehen soll, sinkt die Drehzahl nicht mehr ab.
Oder habe ich das falsch verstanden?

Sollte es so sein, müsste man mal einen Blick auf den Programmcode sehen um die Fehlerursache zu finden.

Wenn der Roboter aufgebockt ist ändert sich die Drehzahl korrekt , auch wenn wir eine lange Strecke (ca. 0.5m) fahren wird das Model immer mehr gerade. Kann es sein, dass der langsamere Motor mitgeschleift wird?

Unregistriert
22.05.2016, 11:27
Fotos? Schaltplan? Programm? So kann man doch gar nicht wissen, was ihr wie da zusammengebaut habt. Vielleicht hakt auch nur das Gelenk.

Gildraths
22.05.2016, 11:39
Hallo,


WENN beide Motoren gleich schnell drehen geht es nur geradeaus!

Also drehen aus irgendwelchen Gründen nicht beide Motoren gleich!

Was passiert wenn ich z.B. von Linkskurve auf Rechtkurve umschaltet?

Entweder klemmt die Mechanik irgendwie oder ihr habt einen Fehler in der Software.

Wie wird eigentlich die Drehzahl geändert? Bei einem Schrittmotor kann man nicht einfach die Frequenz umschalten, diese muss man langsam ändern (Rampe fahren). Wie schnell man die Frequenz ändern kann hängt vom Motor und der bewegten Masse ab.

MfG Peter(TOO)

Wenn wir von Links nach Rechts umschalten passiert folgendes:
Es wird noch etwas links gefahren, anschliessend gibt es einen "Ruck" und es wird der andere Winkel gefahren.

Von unserem Elektroniker habe ich folgende Liste erhalten:
http://www.filedropper.com/timerfrequenz

Für die Kurve sende ich beispielsweise Geschwindigkeitswert 26 (77.31692308mm/sec) und Geschwindigkeit 28 (71.79428571mm/sec). Sobald ich nur noch gerade aus fahren will würde ich 28 senden an beide Räder. Jedoch haben wir das in der Fragestellung festgestellte Verhalten.

Ich bin der Software-Entwickler und sende die Befehle von einem Raspberry Pi 2B über eine USB-Schnittstelle an ein FRDM-KL25Z (falls dies hilft).

Vielen Dank für eure bisherige Hilfe!

Unregistriert
22.05.2016, 11:52
Fotos? Schaltplan? Programm? So kann man doch gar nicht wissen, was ihr wie da zusammengebaut habt. Vielleicht hakt auch nur das Gelenk.

Hier unsere relevante Dokumentation:
http://www.filedropper.com/elektronikdokumentation

Ich werde das Problem noch filmen und später hochladen

Gildrahts
22.05.2016, 12:11
Hier noch wie versprochen ein Video des Problemes:
http://www.filedropper.com/fehlverhaltenfahrzeug

Dabei ist anzumerken, dass die Schrittmotoren hier immer gleich schnell drehen.
An was könnte das Problem liegen?

Ich persönlich hätte auf das Gelenk getippt, jedoch ist mir versichert worden, dass es sich dabei um ein Kugellager-Gelenk handelt

i_make_it
22.05.2016, 13:10
Wenn ich das im Video richtig sehe, sind die Motoren hinten und im eingelenkten Zustand schiebt das sichtbare (linke Vorderrad) über den Boden.
Lass das Teil mal testweise Rückwärts fahren. Das Gelenk sollte sich rein von der Physik nämlich nur wenn es gezogen wird von alleine grade ausrichten.
So wie es für mich im Video aussieht, verhällt es sich normal. Genau das Verhalten das auch ein Auto mit einem Einachsanhänger zeigt wenn der Fahrer bei Rückwärtsfahrt nicht durch entsprechende Steuerbewegung ein Ausbrechen verhindert.

Um aus der Kurve raus zu kommen und ohne aktives Stellglied an der Lenkung (Knickstelle) muß man eine Gegenlenkbewegung ausführen.

Gildraths
22.05.2016, 13:17
Wenn ich das im Video richtig sehe, sind die Motoren hinten und im eingelenkten Zustand schiebt das sichtbare (linke Vorderrad) über den Boden.
Lass das Teil mal testweise Rückwärts fahren. Das Gelenk sollte sich rein von der Physik nämlich nur wenn es gezogen wird von alleine grade ausrichten.
So wie es für mich im Video aussieht, verhällt es sich normal. Genau das Verhalten das auch ein Auto mit einem Einachsanhänger zeigt wenn der Fahrer bei Rückwärtsfahrt nicht durch entsprechende Steuerbewegung ein Ausbrechen verhindert.

Um aus der Kurve raus zu kommen und ohne aktives Stellglied an der Lenkung (Knickstelle) muß man eine Gegenlenkbewegung ausführen.

Die beiden Schrittmotoren sind vorne, sprich der Roboter sollte gezogen werden und das Gelenk gerade gestellt werden (wenn ich dich richtig verstanden habe)

i_make_it
22.05.2016, 13:59
OK, dann stellt sich die Frage was wir im Video sehen.
Bis Sekunde 6 fährt er grade.
Dann wird manuell eingegriffen und die Hintere Sektion nach links umgehoben.
Von Sekunde 13 bis zum Ende in Sekunde 26 fährt er eine Linkskurve.
Das linke Vorderrad scheint wie schon gesagt zu schieben.

Pack doch zuerst mal mehr Gewicht auf die Antriebsachse, um zu sehen ob es da an Traktion fehlt.
Dann, Wie viele Lager hat das Knickgelenk, bzw. wie hoch ist das Knickgelenk?
Das Gelenk kann nämlich auch blockieren, wenn die Biegekräfte Quer zur Drehachse zu hoch sind.
Bei Baumaschinen, sind deshalb gegeneinader verspannte Kegelrollenlager verbaut.
Bei So einem kleinen Gefährt, dürfte ein zweites Lager ziemlich weit oben reichen.

31628
Links mal grob schematisch wie vermutlich bei Euch der Fahrzeugaufbau ist. und rechts wie es Belastungsgerecht ist.

Das Fahrzeug stellt von der Statik her einen Biegeträger dar, dessen Länge der Achsabstandt ist.
Die Räder sind die Lagerpunkte.
Die Masse des Fahrzeugs ergibt die Gewichtskraft, die rechnerich als im Fahrzeugschwerpunkt vereint zu betrachten ist.
Da dieser nicht genau über einem Rad liegt, ergeben sich Drehmomente um die Lagerpunkte.
Wenn also wie im linken Bild eine Kraft nach unten wirkt, versucht diese das Fahrzeug und somit die Lagerstelle durchzubiegen.
Je nach Lager kann es sein, das dieses nur sehr geringe Achsiallasten übertragen kann. Damit wird der Innenring des Lagers gegen den Außenring verkantet und und die notwendigen Kräfte um drehen des Lagers steigen expotentiell an (kann bis zur Zerstörung des Lagers gehen)

Ein einfaches Experiment sind zwei Küchenrollen als Räder und zwei Getränkekartons oder Müslipackungen als die beiden Fahrzeugteile.
Zwei Pappdreiecke und ein Zahnstocher als Lagerzapfen die an die Unterseite der Kartons geklebt werden, so das man die beiden Kartons zueinander drehen kann.
Legt man das flach auf eine Fläche klappt das drehen wunderbar. Legt man das ganze auf die Küchenrollen und zieht diese auseinander werden sich die Karton irgendwann oben berühren, da das Gelenk nicht die Biegesteifigkeit hat.
Bringt man oben ein zweites solches Gelenk so an das die Achsen fluchten, bleibt der Abstand gleich und man kann problemlos drehen (Lenken)

Unregistriert
22.05.2016, 14:54
Wie ist denn das Gelenk aufgebaut? Das Vorderteil und das Hinterteil des Fahrzeugs müssen sich auch in der horizontalen gegeneinander verwinden können. Wenn die Fahrbahn nicht absolut eben ist und das Gelenk nicht auch noch absolut vertikal ausgerichtet ist, werden nicht alle Räder gleichmäßigen Bodenkontakt haben. Ein Antriebsrad wird dann früher oder später einen Schlupf entwickeln.

i_make_it
22.05.2016, 15:00
Wie ist denn das Gelenk aufgebaut? Das Vorderteil und das Hinterteil des Fahrzeugs müssen sich auch in der horizontalen gegeneinander verwinden können. Wenn die Fahrbahn nicht absolut eben ist und das Gelenk nicht auch noch absolut vertikal ausgerichtet ist, werden nicht alle Räder gleichmäßigen Bodenkontakt haben. Ein Antriebsrad wird dann früher oder später einen Schlupf entwickeln.

Bei dem im Video zu sehenden Aufbau kann man das erst mal vernachlässigen.
Wenn man mehr Masse auf die Antribsachse packt und ggf. die Schleppachse als Pendelachse aufhängt, geht das auch bei unebenem Untergrund noch halbwegs gut.
Bei richtig unebenem Boden stimmt das allerdings, da müssen sich die Sektionen auch in der Rollachse gegeneinander verdrehen können.

malthy
22.05.2016, 16:58
Hallo,

nur kurz vorweg: ich hab den Thread nur kurz überflogen ...

wenn ich es richtig sehe sitzen die Räder ununtersetzt direkt auf den Schrittmotoren, richtig? Bei dem Raddurchmesser könnte das Drehmoment, das die Motoren aufbringen, evnt zu knapp sein. Das würde dann einfach dazu führen, das der mechanisch stärker belastete Motor Schritte verliert und das entsprechende Rad dann eben nicht mehr die gleiche Umfangsgeschwindigkeit hat wie das andere. Kannst Du das ausschließen?

Gruß
Malte