Ich möchte einen Roboter bauen, der einem virtuellen Pfad folgt (kein sichtbarer Pfad wie eine „schwarze Linie auf einer weißen Oberfläche“ usw.).
Ich bin einfach begeistert, wenn ich einige Science-Fiction-Videos sehe, die zeigen, wie Roboter Waren und Materialien an einem überfüllten Ort transportieren. Und sie folgen wirklich keiner physischen Linie. Sie spüren Hindernisse, Tiefe usw.
Ich möchte einen solchen Roboter bauen, der einem bestimmten (virtuellen) Pfad von Punkt A nach B folgt.
Ich habe ein paar Dinge ausprobiert:
Verwendung eines magnetischen "Hall-Effekt" -Sensors am Roboter und eines stromführenden Kabels (unter dem Tisch). Das Problem hierbei war, dass die Umgebung des Hall-Effekt-Sensors so klein ist (<2 cm), dass es sehr schwierig ist zu beurteilen, ob sich der Roboter in der Linie oder außerhalb der Linie befindet. Selbst die Verwendung einer Reihe von Magneten konnte dieses Problem nicht lösen, da mein Tisch 1 Zoll dick ist. Also floppte diese Idee: P.
Verwenden einer ultravioletten Farbe (auf einer Linie) und Verwenden von UV-LEDs am Roboter als Sensoren. Dies gibt dem Roboter mehr Zick-Zack-Bewegung. Und aufgrund möglicher Bedrohungen durch die Verwendung von UV-Lichtquellen ist sogar diese Idee gescheitert: P.
Ich dachte schließlich daran, eine Kamera oben zu haben und Bildverarbeitungsalgorithmen zu verwenden, um zu sehen, ob der Roboter in der Leitung ist oder divergiert.
Gibt es eine bessere Lösung als diese? Wirklich auf der Suche nach kreativen und einfachen Lösungen. :) :)
Antworten:
Es gibt viele Möglichkeiten, dieses Problem anzugehen, und alle hängen vom verfügbaren Material und dem Fachwissen des Roboterherstellers ab.
Kurz gesagt, das Kriterium ist:
Abhängig von der Länge des Pfades kann die Verwendung von Encodern ausreichend sein. Es sollte jedoch beachtet werden, dass aufgrund der physikalischen Ungenauigkeit die Drift die Kilometerzähler (was wir als Encoder zur Entfernungsmessung bezeichnen) für große Entfernungen unpraktisch macht. Dies ist jedoch für kurze Strecken einfach und sollte zumindest berücksichtigt werden.
Wenn die Entfernung nur für die Kilometerzähler zu groß ist, sollte ein Sensor zur Messung von Kurven verwendet werden (z. B. ein Gyroskop oder ein Kompass ). Kurven führen in der Regel zu den meisten Fehlern bei der Kilometerzähler (das Messen entlang einer geraden Linie weist nicht zu viele Fehler auf). Daher kann die Verwendung eines Sensors für Kurven manchmal die Kilometerzähler zu einer praktikablen Lösung machen.
Wenn Kilometerzähler oder Kilometerzähler + gefühltes Drehen nicht funktionieren, können wir kreativ sein. Wenn Sie möchten, dass der Roboter einem Pfad folgt, der hauptsächlich aus geraden Segmenten besteht, können Sie IR-LEDs an bestimmten "Wegpunkten" auf dem Tisch platzieren und den Roboter diese LEDs erkennen lassen und in Reihe zu jedem Wegpunkt fahren.
Dies hinterlässt jedoch immer noch einige visuelle Markierungen auf dem Tisch (obwohl dies bis zu einem gewissen Grad getarnt sein könnte), und es wäre großartig, darauf verzichten zu können. Ein anderer Ansatz wäre die Verwendung von Laserpointern, die parallel zur Oberfläche des Tisches leuchten, jedoch einige Zentimeter über dem Tisch. Der Roboter könnte einen Fotowiderstand verwenden, um zu erkennen, wann er einen Laser kreuzt, und dies könnte ihn wissen lassen, wann er sich drehen muss.
Alles in allem denke ich, dass die mit einem Winkelsensor erweiterte Kilometerzähler wahrscheinlich die beste Wahl für Ihren Roboter ist, zumindest so, wie Sie es beschrieben haben. Ich kann mir vielleicht mehr Optionen vorstellen, aber das ist alles, was ich gerade sehe.
Nur neugierig - warum soll die Linie unsichtbar sein? Zu wissen, warum, könnte weitere Möglichkeiten eröffnen.
quelle
Anki verwendet optische Sensoren in ihren Spielzeugautos, um Linienfolger zu implementieren. Die optischen Sensoren sind im IR-Bereich empfindlich. Die Tatsache, dass die Linien nicht sichtbar sind, lässt sich leicht erklären: Die Linien sind mit schwarzer Farbe beschichtet, die im IR-Bereich transparent ist. Paliogenschwarz L 86 oder Paliogenschwarz S 84 von BASF sind solche Farben. Wenn Sie Barcodes entlang der Linien platzieren, können Sie sogar absolute Positionsinformationen von den optischen Sensoren erhalten.
quelle
Ich habe eine kurze Antwort auf Ihre Frage. Dies gilt nur für einen ROS-fähigen Roboter. Es gibt viele Möglichkeiten, dies zu tun, aber so habe ich es getan. Ich habe ROS und Kuka Youbot benutzt. Es könnte jeder Roboter sein, der ROS verwendet. Es ist sehr hilfreich, ROS zu kennen, wenn Sie vorhaben, in der Robotik zu arbeiten.
ROS verwenden Verwenden Sie dann GMapping, um Ihre Umgebung abzubilden. Beispiel Zimmer oder Flur und speichern Sie die Karte. Geben Sie dann mit RVIZ die Zielposition in der Karte an.
quelle
Nun, Sie brauchen keine Leitung für diese Angelegenheit. Das einzige, was Sie wahrscheinlich brauchen würden, sind globale Koordinaten. Wenn Sie Ihren Roboter in einem durch globale Koordinaten definierten Feld platzieren und einfache Regeln der Newtonschen Physik anwenden können, kann der Roboter von einem Punkt zum anderen wechseln. Anhand des aktuellen Standorts werden der aktuelle Lenkwinkel, der gewünschte Lenkwinkel und die Zielkoordinaten (auch als "Pose" bezeichnet) ermittelt. Sobald Sie dem Roboter eine Geschwindigkeit geben, bewegt er sich in Richtung der Zielkoordinaten. Bei jeder Iteration wird die Pose neu berechnet und bei Bedarf angepasst.
quelle