Sensoren für Differentialantrieb


7

Ich habe das folgende Chassis zusammen mit einem Arduino und einem Motorschild. Roboterchassis

Ich bin gerade dabei, einen Nachführmechanismus für die Verwendung mit Differentialantrieb zu entwickeln.

Normalerweise kann ein Fotoreflektor neben dem Rad platziert werden, der reflektiert, wenn jede Speiche durchläuft, wodurch Code geschrieben werden kann, der die Position jeder Räder genau misst.

Das Problem, das ich habe, ist, dass Sie die Räder im Inneren des Chassis nicht sehen können, nur kleine Löcher für die Antriebswelle. Das Anbringen von Sensoren an der Außenseite würde lächerlich aussehen und ein Wandcrash würde Chaos verursachen.

Wäre es mir möglich, einen Fotoreflektor an den Zahnrädern (wie gezeigt) zu verwenden, wenn ich ihn genau platziere, um jede Speiche am Zahnrad selbst zu zählen? Ich bin allerdings etwas zögerlich, da selbst eine kleine Beule den Sensor falsch ausrichten kann - was wiederum zu Chaos führt.

Hat jemand eine Idee, wie man die Radbewegungen verfolgt?


Ist das Ziel der Verfolgung, festzustellen, wie weit Sie gereist sind, oder etwas Einfacheres, wie sicherzustellen, dass beide Motoren mit der gleichen Geschwindigkeit drehen?
Ian

Gibt es irgendwo im Inneren, dass die Drehung der Zahnräder gemessen werden kann?
Andrew

@ Ian, es ist, Entfernung, Richtung zu messen und es für autonomes Fahren zu verwenden.
Marko

@ Andrew gibt es Platz, aber nicht viel. Ich sehe mir jetzt auch diese Option an. Grundsätzlich könnte ich einen Aufkleber wie auf diesen Link kleben und das messen? Let'smakerobots.com
Marko

Wenn Sie den Hack-it-yourself- Weg gehen möchten , kann der erste Teil meiner Antwort auf das Erstellen eines steuerbaren „Knopfs“ von Nutzen sein.
Mark Booth

Antworten:


5

Ich habe Encoder für genau dieses Chassis zusammengestellt. Anstatt diejenigen zu reflektieren, habe ich Slot verwendet. Ich dachte, ich könnte das Loch im weißen Zahnrad abarbeiten, aber es stellt sich heraus, dass der Kunststoff für IR ziemlich transparent ist, und so habe ich ein schwarzes elektrisches Klebeband (Hightech, ich weiß) verwendet, um undurchsichtige Bereiche auf dem Zahnrad zu erzeugen.

Nachdem ich zwei Encoder gebaut hatte, stellte ich fest, dass ein ähnliches Produkt online ist: LightBeam OptoInterrupter Module

Für meinen ersten Roboter verwende ich nur einen groben Encoder mit 4 Zählungen pro Radumdrehung. Hier ist meine Beschreibung aus meinem Blog :

Beim Blick in das Chassis ist nicht viel Platz. Aus diesem Grund habe ich beschlossen, anstelle eines reflektierenden Sensors einen kleinen durchlässigen Sensor zu verwenden. Beide haben einen IR-Emitter und einen IR-Fotodetektor. Bei reflektierenden Einheiten zeigen beide in die gleiche Richtung, und der Detektor misst die zum Sensor zurückreflektierte IR. Bei einem Transmissions- oder Interrupt-Sensor sind die beiden Einheiten durch eine Lücke getrennt, und der Detektor nimmt IR auf, das durch die Lücke geht. So weit, ist es gut.

Am Ende habe ich durchlässige optische Vishay-Sensoren (Modell TCST1202) verwendet, die ich bei DigiKey gekauft habe. Ich habe sie basierend auf der von Aniss1001 im Thread „ Homemade Wheel Encoder “ im Arduino-Forum veröffentlichten Schaltung verkabelt .

Encoder-Schaltplan - für einen anderen Encoder, aber es hat gut funktioniert

Ich baute die Schaltung zum Testen auf einem Prototyping-Steckbrett und bekam eine Überraschung. Die Schaltung hat gut funktioniert, aber das Getriebe ist für IR transparent! Es stellt sich heraus, dass Nylon und die meisten Kunststoffe, die für preiswerte Zahnräder verwendet werden, für IR ziemlich transparent sind. Ich habe zuerst versucht, einen undurchsichtigen Abschnitt mit einem schwarzen Stift zu erstellen, aber während das auf Papier funktionierte, haftete es nicht gut genug an der Ausrüstung. Am Ende habe ich ein Stück schwarzes Klebeband verwendet. Sobald das funktioniert hat, habe ich einige kleine Leiterplatten zugeschnitten und die Encoder gebaut, um meine Lötfähigkeiten zu üben.

Ich habe nur Heißkleber verwendet, um die Encoder zu montieren. Die Encoderplatinen ragen über die Chassisbasis hinaus, daher verwende ich Abstandshalter, um die Kunststoffplatte mit dem Romeo-Controller und anderen Geräten anzuheben. Hier ist ein Bild von einem der Encoder vor der Montage und der Montage am Chassis:

Selbst gemachter Radgeber

Montierter Encoder

Hoffe das hilft!


Das hilft definitiv. Ich kann es kaum erwarten, die Arbeit zu beenden und sie zu bauen !! Akzeptiere das, vielen Dank!
Marko

Nur um zu bestätigen, dass das IR-Licht durch den weißen Teil der gedruckten Grafik, aber nicht durch den schwarzen Teil hindurchtreten kann, da die Zahnräder transparent sind.
Marko

In meinem Fall habe ich keine gedruckte Grafik verwendet, sondern schwarze Klebebandstücke, bei denen nur das weiße Zahnrad übrig blieb. Papier blockiert je nach Art und Dicke einen Teil des IR, selbst wenn es weiß ist (die Encoderradmuster, die Sie gesehen haben, gelten für reflektierende Sensoren, wie Sie ursprünglich gedacht haben). Ich weiß nicht, ob eine einzelne Schicht weißes Papier (plus den von Ihnen verwendeten Klebstoff) den größten Teil des IR blockieren würde. Ich ging auf Nummer sicher, indem ich Klebebandstreifen abschnitt.
WienMike

OK, dass ich testen kann - nur um zu bestätigen, dass das IR-Signal durch die Zahnräder geht und vom Empfänger aufgenommen wird. Selbst wenn ich es ausdrucken würde, könnte ich immer den weißen Teil ausschneiden, um sicherzustellen, dass das Signal durchgeht.
Marko

Entschuldigen Sie die Verwirrung - ich dachte, Sie verwenden einen dieser Sensoren, aber ich habe gerade das verknüpfte Produkt überprüft und es scheint, dass es anders ist. Ich habe mir das angeschaut
Marko

5

In der Regel wird die Verfolgung der Position und Ausrichtung eines Fahrzeugs nicht durch Betrachten der Räder erreicht, sondern mit Navigationssensoren. Wenn Sie versuchen, Ihre Motoren über einen Regelkreis (dh eine Servosteuerung) zu steuern, sind möglicherweise am Rad montierte Positionssensoren geeignet. Aber wenn das Ziel darin besteht, "autonomes Fahren" zu unterstützen, dann denke ich nicht, dass Positionssensoren ausreichen werden.

Einfach ausgedrückt, würde jedes nicht flache Gelände oder Verrutschen der Gleise Ihre Genauigkeit beeinträchtigen.

Stattdessen würde ich einen oder mehrere der folgenden Navigationssensoren vorschlagen:

  • Kompass
  • Geographisches Positionierungs System
  • Trägheitsnavigationssystem
  • Akustik- oder Laser-Entfernungsmesser
  • Akustische Leuchtfeuer und Triangulation

Der Bot wird definitiv irgendwann GPS haben, aber ich sehe mir zuerst ein einfaches Mittel an, um den Bot zu navigieren und die Richtung mithilfe der Eingaben der Encoder zu steuern. Wenn ich einen Kompass verwenden kann, um Fehler zusammen mit den GPS-Daten zu erkennen und zu korrigieren, wäre dies die optimale Lösung. Aber ich denke, Encoder sind ein guter Ausgangspunkt. +1
Marko

Ich denke, "Navigation" ist ein starkes Wort für das, was Sie versuchen. Vielleicht wäre "Manövrieren" ein besseres Wort, weil Sie nur grobe Schätzungen Ihrer Bewegungen vornehmen können. Anders ausgedrückt (analog): Wenn die Navigation eine Illustration war, können Sie blind Konturen zeichnen - erinnernd, aber nicht genau.
Ian

4

Eine Alternative zum Erfassen der Radbewegung besteht darin, die Fahrzeugbewegung über dem Boden tatsächlich zu verfolgen. Ich weiß, dass einige Leute es mit optischen Maussensoren gemacht haben . Die Ergebnisse hängen von der Art des Untergrunds ab, den Sie erwarten. Der Vorteil ist jedoch, dass Sie die tatsächliche Fahrzeugbewegung verfolgen, woran Sie wirklich interessiert sind.


Gute Idee @Jakob, aber der Roboter wird über alle Arten von Gelände fahren, so dass ein optischer Maussensor nicht funktionieren würde :(
Marko

Es ist eine Schande, dass das mit Board verknüpfte Board aus dem Sparkfun-Katalog entfernt wurde (und auch anderswo nach einer schnellen Suche).
Mark Booth

3

Sind die Räder bis auf die Speichen im Wesentlichen hohl? Wenn dies der Fall wäre, wäre es für mich ein guter Ort, um einen Lichtdetektor anzubringen, wenn ein kleines Loch etwas versetzt von der Vorderachse (das Rad ohne Zahnräder) hinzugefügt würde. Natürlich würde das im Dunkeln nicht so gut funktionieren.

Jede Speiche oder besser gesagt Zahn am Zahnrad wäre zwar technisch korrekt, wie Sie angegeben haben, kann jedoch aufgrund der Größe schwierig zu erreichen sein.

Kommt die Achse ohne Zahnräder in das Fahrgestell? Könnten Sie dort einen optischen Encoder hinzufügen? Möglicherweise, indem die Achse am Rad befestigt wird, aber durch eine Art Lager geführt wird.

Ich habe noch nie mit Kilometerzählern mit Ketten experimentiert, aber ich gehe davon aus, dass Sie aufgrund des erhöhten Schlupfes in Kurven mit größeren Fehlern als mit einfachen Rädern umgehen müssen. Hast du das bedacht?

Ich denke auf jeden Fall, dass Sie einige "Anpassungen" vornehmen müssen, um das zu bekommen, was Sie wollen.

Ich konnte dieses Chassis bei Pololu nicht finden. Ist es ein älteres Modell?

Ah, ich sehe jetzt, wo es ersetzt wurde. Das neuere Chassis verfügt optional über Encoder .

Geben Sie hier die Bildbeschreibung ein


1
Vielen Dank für Ihre ausführliche Antwort. Ich habe nicht wirklich viel über das Problem des Ausrutschens nachgedacht und beginne erst mit Robotik / Elektronik, also habe ich diese Chassy in einem örtlichen Elektronikgeschäft abgeholt. Die Achse der Rückseite Räder kommt durch so konnte ich möglicherweise eine nahe beieinander liegenden Propeller hinzufügen? zusammen mit einem IR-Fotoreflektor. Nicht ganz sicher, dass es funktionieren würde, aber es könnte einen Versuch wert sein. Eine andere Alternative, an die ich gerade gedacht habe: Kannst du das kleine Schraubenloch an der oberen rechten Stoßstange sehen ? Würde ein IR-Sensor, der auf die Schienen gerichtet ist, die Laufflächen aufnehmen können?
Marko

Sie wollen etwas wie hinzufügen dies , aber es muss eine weniger teure Version einige , wo sein.
Spiked3

Das Zeigen eines IR-Sensors könnte funktionieren, aber es würde einige Programmier- (und Prozessorzeit) erfordern, um dies zu erreichen. Wie viel von der Spurbewegung ist Vibration gegen Bewegung? Die Programmierung wäre viel einfacher, wenn Sie ein Loch platzieren würden, das die Schienenzähne abwechselnd verdecken und dann freilegen, und nur Licht durch dieses Loch erkennen würden. Sie müssen noch einige programmieren, aber ich würde denken, dass es viel weniger kompliziert wäre. Es wird nicht so genau sein wie ein speziell gebauter Encoder, sollte aber nur zum Lernen in Ordnung sein.
Spiked3

Ich stecke immer LEGO ein, wenn ich kann. LEGO Mindstorms sind perfekt für diese Art von Dingen und kosten 250 US-Dollar. Jetzt, da für Mitte des Jahres eine neue Version angekündigt wurde, wahrscheinlich weniger als 250 US-Dollar. Zu ihren Motoren gehören Encoder.
Spiked3
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.