Elektronische Achse realisieren

Hallo allerseits!

Ich möchte eine elektronische Achse realisieren. Das steht seit Monaten auf meiner Liste. Eine el. Achse ist ein Konstrukt, das zwei mechanisch getrennte (angetriebene [?]) Räder so synchronisiert, als säßen sie auf einer gemeinsamen „echten“ Achse.

Wie das von der Logik her funktioniert, ist relativ einfach: Beide Räder haben eine Kodierscheibe, die abgelesen wird. Wenn es am schneller drehenden Rad eine Änderung gibt, wird es so lange gebremst, bis auch am anderen Rad eine Änderung gemeldet wird. Der Teufel steckt allerdings im Detail: Die Erkennung der Flanke einer Kurve, die sich durch ein sich änderndes Signal ergibt, ist intuitiv zwar einfach, algorithmisch aber nicht trivial.

Nun kam ich auf die Idee, dass dieses Problem in vielen Zusammenhängen auftritt und es daher wahrscheinlich schon hundertmal gelöst wurde. Kennt jemand einen Algorithmus, der eine derartige Synchronisierung bewirkt? IMO müsste man das so allgemein formulieren können, dass man den Code immer wieder einsetzen kann.

Kennt jemand einen solchen Algorithmus? Ist das Problem nicht auch durch eine relativ simple Schaltung ohne Arduino lösbar?

Vielen Dank vorweg!

Gruß

Gregor

Nachtrag: Man kann auf die Idee kommen, einfach nur „über/unter einem Wert“ zu unterscheiden. Also z. B. „Analog-In ist größer oder kleiner 512“.
Das funktioniert aber nicht, wenn es z. B. durch gewellte Kodierscheiben oder eiernde Räder zu Schwankungen kommt. Ein schon vor längerer Zeit durchgeführter Test von Kodierscheiben ergab das hier. Ein simpler Pegelvergleich bringt hier nichts.

Interessantes Thema.
Die Frage die mir gleich in den Sinn kommt....... Werden beide Räder mit einem Sollwert angesteuert und bei Versatz wird gegen gesteuert oder bekommt nur ein Rad den Sollwert vorgegeben und das andere Rad orientiert sich an der Istgeschwindigkeit des "Master Rads"?

Gruß

Scherheinz:
Die Frage die mir gleich in den Sinn kommt....... Werden beide Räder mit einem Sollwert angesteuert und bei Versatz wird gegen gesteuert oder bekommt nur ein Rad den Sollwert vorgegeben und das andere Rad orientiert sich an der Istgeschwindigkeit des "Master Rads"?

Die Räder werden über ein Motor-Shield angesteuert. Sie bekommen lediglich entweder Energie oder nicht (ggf. verpolt für Vorwärts- oder Rückwärtslauf). Der gleiche Arduino liest auch die Kodierscheiben (Taster sind zwei CNY70, IR-Diode und IR-Fototransistor in einem Gehäuse).

Gruß

Gregor

PS: Dass Du das als interessantes Thema bezeichnest, ist schonmal beruhigend. Mit Banalitäten möchte ich hier niemand belästigen.

Banal ist das mit Sicherheit nicht wenn man eine flüssige Bewegung erreichen will. Aber mit Algorithmen kenne ich mich überhaupt nicht aus.
Gibt es schon eine konkrete Anwendung?

Scherheinz:
Gibt es schon eine konkrete Anwendung?

Naja, die Anwendung ist eben die el. Achse. Wenn Du meinst, was ich bastle, siehe hier. Das Ding soll gerade (!) geradeaus fahren und sich auf der Stelle drehen können.

Gruß

Gregor

Hallo,
rollt gerade-aus, dreht auf der Stelle.
Da gibt es bestimmt Info über die Steuerung der Motoren...
Gruß und Spaß
Andreas

Für Geradeausfahrt muß die Synchronisation schon sehr genau sein. Wenn z.B. das linke Rad x Schritte macht, dann das rechte Rad, dann fährt das ganze Ding schräg! Dann reicht es nicht, einfach nur für die gleiche Anzahl von Schritten an beiden Rädern zu überwachen, sondern auch noch den genauen zeitlichen Abstand der Schritte zu verfolgen, um den tatsächlichen Kurs zu ermitteln, bzw. das Fahrzeug auf einer Geraden zu halten. Deshalb würde ich Schrittmotoren nehmen, von denen man annehmen kann, daß sie bei gleichzeitiger Ansteuerung die Schritte auch tatsächlich gleichzeitig ausführen. Dann bleibt nur noch der Schlupf, wenn das Fahrzeug auf einem glatten oder flexiblen Boden (Gras, Teppich...) fährt.

Zudem reicht eine Achse normalerweise nicht, irgendetwas fahren zu lassen, dazu gehören meist 3 oder 4 Räder bzw. 2 Achsen. Bei einer Drehung wird die Sache dann kompliziert, da sich das Fahrzeug dann nicht um die Mitte einer Achse dreht. Treibt man das linke Vorderrad und das rechte Hinterrad an, dann kann man immerhin eine Drehung um die Mitte zwischen beiden Rädern ausführen.

Wie soll denn das "Ding" unten aussehen? Mit einem Schlepprad wird die Angelegenheit noch komplizierter :frowning:

DrDiettrich:
Wie soll denn das "Ding" unten aussehen? Mit einem Schlepprad wird die Angelegenheit noch komplizierter :frowning:

Evtl könnte man den Anstellwinkel des Schlepprades auswerten, allerdings könnte das in einer Schlangenlinien Fahrt enden

Hallo,
ein Stützrad vorne, eines hinten. In die Mitte seine Achse...
Etwas Info über den Antrieb wäre nicht schlecht. MotorShield ist ein wenig zu wenig.
Gruß und Spaß
Andreas

DrDiettrich:
Für Geradeausfahrt muß die Synchronisation schon sehr genau sein.

Was meinst Du? Wenn beide Räder Kodierscheiben haben (meine sehen aus wie ein Siemensstern mit 5°-Strahlen) gibt es etweder synchron oder nicht. Wenn beide Räder synchron laufen, fährt das Ding geradeaus (von Schlupf oder so abgesehen). Wenn die Räder nicht synchron laufen, dann fährt das Ding eine Kurve. Ein „mehr oder weniger genau“ gibt es da IMO nicht.

DrDiettrich:
Deshalb würde ich Schrittmotoren nehmen,

Daran habe ich auch schon gedacht. Es gibt da allerdings zwei Punkte, die ein „no-go“ mit Schrittmotoren ergeben:

  • Schrittmotoren ziehen irre Strom, auch wenn sie sich nicht bewegen.
  • Das Haltemoment von Schrittmotoren ist nur brauchbar, wenn sie unter Spannung stehen.

Folge ist, dass ich DC-Getriebemotoren verwenden möchte. Deren Haltemoment ist dem von Schrittmotoren um ein Vielfaches überlegen.

DrDiettrich:
Wie soll denn das "Ding" unten aussehen? Mit einem Schlepprad wird die Angelegenheit noch komplizierter :frowning:

Das Ding besitzt zwei angetriebene Räder und ein Schlepprad. Warum das komplizierter sein soll, will sich mir jetzt nicht erschließen.

Gruß

Gregor

SkobyMobil:
Etwas Info über den Antrieb wäre nicht schlecht. MotorShield ist ein wenig zu wenig.

Siehe #9 und hier.

Fehlt noch Info?

Gruß

Gregor

Hallo,
wie darf man sich das vorstellen?
Vorne Deine Achse und hinten das Schlepprad? Steht also auf drei Punkten?
Gruß und Spaß
Andreas
P.S. ich sehe da nur ein Foto, dreh das Ding mal um 180°. Mache Foto

SkobyMobil:
wie darf man sich das vorstellen?
Vorne Deine Achse und hinten das Schlepprad? Steht also auf drei Punkten?

Ja, genau.

Das Ding hat von oben betrachtet die Form eines Kreises.

Die Räder sitzen auf den Achsen von zwei DC-Getriebemotoren, der Drehpunkt soll sich im Idealfall genau in der Mitte zwischen den Rädern befinden. Das Ding soll am Ende nur zwei Bewegungen ausführen können: Vorwärts fahren und drehen. Mehr nicht (nix rückwärts).

Gruß

Gregor

Also ich als Nichtprogrammierer würde die beiden Motoren mit einem Sperrdifferential aus dem Modellbau verbinden und bei Geradeausfahrt sperren. Aber ist wohl nicht so dein Lösungsweg und hat auch nichts mit Regelungstechnik zutun.

Hallo,
mal darüber nachgedacht, das Schlepprad auszuwerten...
Bei gerade-aus Fahrt steht es doch im rechten Winkel zu der Antriebsachse?
Wird nun links mehr angetrieben als rechts, dann dreht sich das Schlepprad doch nach rechts.
Diese Winkelabweichung läßt sich doch auch mit dem CNY70 feststellen?
Du müßtest dann nicht so schnell auswerten... denke ich mir so.
Gruß und Spaß
Andreas

Ich weiß nicht warum, aber ich konnte den Fischertechnik-Roboter (mit Schlepprad) nicht mal dazu bringen, einer Linie zu folgen. Weder nach der vorgegebenen Lösung, noch nach meiner eigenen. Am ekelhaftesten war die Steuerung der Encoder-Motoren, die bei zu wenig Saft einfach stehen blieben, und bei zu viel ist das Gefährt unbeherrschbar davongeschossen. Deshalb mein Vorschlag zur Umstellung auf Schrittmotoren.

Nach einer Drehung steht das Schlepprad schräg, was zu einem unterschiedlichen Drehmoment an den Antriebsrädern führt. Bis die dann wieder auf gleicher Drehzahl sind, ist die Bewegung ziemlich undefiniert bis überraschend. Deshalb wird oft eine Kugel statt eines Schlepprads empfohlen, hab's aber nicht selbst probiert, ob das viel hilft.

Mal ein extremes Beispiel, was die Geradeausfahrt betrifft: Wenn das linke Rad steht, und das rechte dreht, dann rotiert die Achse um das linke Rad, die Achse ändert also ihre Richtung. Macht man das anschließend umgekehrt, dann stimmt zwar die Himmelsrichtung wieder, aber das Gefährt steht seitlich versetzt neben der ursprünglichen Spur. Allgemein fährt das Gefährt in Schlangenlinien, wenn die Drehung beider Antriebsräder nicht exakt synchron läuft. Und dann kommt es drauf an, ob sich die Schlangenlinien zu einer Geraden ausgleichen oder eine bleibende Abweichung ergeben.

Die Idee mit der Winkelauswertung des Schlepprads hab ich auch vorgebracht und gleich revidiert. Das Ding fährt dann Schlangenlinien weil erst gegengesteuert wird wenn die Kurve schon begonnen hat

Hallo,
genau so würde es doch funktionieren...
Du stellst das ganze Ding für gerade-aus-fahrt ein.
Die beiden Motoren laufen in der Grundeinstellung so, das das Ding z.B. 2m gerade-aus kann.
Am Schlepprad wertes Du den Winkel aus. Gerade-aus 90°, nach 2m 88°.
Gegensteuern bis wieder 90°, 2m fahren- von vorne anfangen.
Das Schlepprad macht nicht anderes al die Jungs am Sender ihrer Modelle. Die fahren einige Meter,
dann steuern sie mit dem Knüppel gegen.
Gruß und Spaß
Andreas

das stimmt, aber die Winkelmessung müsste extrem genau sein damit die Abweichung beim Fahren nicht erkennbar ist. Und wenn jetzt eine Fuge oder ein Belagwechsel das Rad verdreht stimmt nichts mehr.

SkobyMobil:
P.S. ich sehe da nur ein Foto, dreh das Ding mal um 180°. Mache Foto

Dein PS kam nach meinem letzten Posting. Gut, dass ich das noch gesehen habe.

Statt eines Fotos habe ich etwas Besseres: Einen Film (ca. 3 MB).

Gruß

Gregor