Lokalisierung eines Roboterschwarms

9

Ich habe ein 300 cm x 300 cm großes Zimmer mit einer 25 cm hohen Decke (ja fünfundzwanzig Zentimeter). Es enthält 50 kleine Roboter mit Rädern (ca. 20 cm x 20 cm). Ein zentraler Computer koordiniert die Bewegungen der Roboter und sendet über ein drahtloses Netzwerk Positionsbefehle an sie. Die Roboter führen ihre eigene Positionssteuerung durch, um drahtlose Bandbreite zu sparen. Die Roboter verfügen über 32-Bit-ARM-Mikrocontroller. Sie haben Radpositionssensoren und die Fähigkeit, eine genaue Radsteuerung durchzuführen.

Problem: Die Roboter können dies noch nicht tun, da sie ihre Position im Raum nicht messen können.

Frage: Wie können die Roboter ihre Position und Ausrichtung mit einer Genauigkeit von besser als ± 5 mm messen? Ich suche nach einer genauen und robusten Lösung, die nicht von Okklusionen betroffen ist und nicht für jeden Roboter einen Hochleistungs-PC benötigt. Welche Sensoren für die Lokalisierung erforderlich sind, können den Robotern problemlos hinzugefügt werden. Die Mikrocontroller können leicht gegen leistungsstärkere ausgetauscht werden, wenn die Lokalisierungslösung dies erfordert.

Raketenmagnet
quelle
Welche Art von Sensoren haben die Roboter und welche Rechenleistung?
DaemonMaker
1
@DaemonMaker - Diese Informationen wurden hinzugefügt und versucht, die Frage zu klären.
Raketenmagnet
1
Das ist ein gutes Update @Rocketmagnet, aber die Frage ist noch ziemlich offen. Es gibt viele Tricks in der Lokalisierungsliteratur, die Ihnen möglicherweise zur Verfügung stehen, je nachdem, was Ihre Roboter über sich selbst, ihre Umgebung und einander beobachten können. Zum Beispiel gibt es eine Menge Arbeit im Zusammenhang mit der Kombination der Überzeugungen mehrerer Roboter, um die Genauigkeit der Überzeugungen eines bestimmten Roboters zu erhöhen. Dies kann erreicht werden, indem jedem Roboter eine kleine Kamera und ein Passermarkenmarker hinzugefügt werden, ohne die Verarbeitung erheblich zu erhöhen.
DaemonMaker
Blockieren Okklusionen die Sichtlinie xy oder auch z? Wenn Sie beispielsweise Linien, Laser oder Spiegel an der Decke haben, können Roboter diese normalerweise sehen?
James Waldby - jwpat7
@ jwpat7 - Da die Decke so niedrig ist und die Roboter sie praktisch berühren, gibt es im Grunde nie eine Sichtlinie in Z-Richtung.
Raketenmagnet

Antworten:

4

Einige Ideen aus meinem Kopf ... Im Allgemeinen können Sie entweder jeden Roboter seine eigene Position erkennen lassen oder ein System die Roboter finden lassen und ihnen Informationen über ihre Position (oder eine Kombination) senden. Möglicherweise ist die Verwendung anderer Roboterpositionen, um sich selbst zu lokalisieren, eine weitere Option, wenn sie kommunizieren können. Sie können auch Sensorinformationen von Robotern und anderen Quellen kombinieren.

Optisch

Sie können entweder die absolute Position oder die relative Position auf dem Boden oder der Decke codieren. Ein Sensor am Roboter kann diese anzeigen. Ein Sensor wie der in Ihrer optischen Maus kann auch ohne Muster Relativbewegungen von den meisten Oberflächen erhalten. Es gab ältere Mäuse, die ein gemustertes Gitter verwendeten.

Sie könnten zwei (oder mehr) Kameras an jedem Roboter haben, die in verschiedene Richtungen schauen. Wenn die Wände des Raums das richtige Muster haben, können Sie Ihren Standort anhand der Bilder bestimmen. Eine sich drehende Kamera ist eine weitere Option. Die Behinderung der Kamera durch andere Roboter kann ein Problem sein.

Ein Sensorarray oder eine Kamera im Boden oder in der Decke könnte die Roboter lokalisieren, und dann können Sie den Robotern ihren Standort senden.

Eine Art sich drehender optischer Sensor, der die Richtung eines optischen Beacons (z. B. einer LED) lokalisieren kann.

Klang

Sie könnten ein paar Leuchtfeuer haben, um Ultraschall-Zwitschern auszusenden. Wenn sie alle synchronisiert sind (z. B. eine feste Verzögerung zwischen ihnen), können Sie anhand ihres Standorts eine Flugzeitberechnung verwenden, um die Position des Roboters zu bestimmen. Vor vielen Jahren habe ich mit einem Ultraschall-Digitalisierer gearbeitet, der über eine Entfernung von ungefähr einem Meter auf ungefähr einen mm genau war, so dass es im Stadion zu sein scheint. Abhängig von der Form Ihres Roboters und der Konfiguration des Schwarms können Reflexionen und Hindernisse ein Problem sein oder auch nicht. Sie müssten experimentieren, aber mein Bauchgefühl ist, dass Sie mit genügend Beacons eine gute Leistung erzielen können.

Ultraschall-Entfernungsmesser an jedem Roboter. (dreht sich?) Könnte die Entfernung zu anderen Robotern oder den Wänden abbilden.

Wenn eines davon interessant klingt, kann ich versuchen, diese Ideen ein wenig weiterzuentwickeln.

Guy Sirton
quelle
Ich mag die Ultraschallmethode. Ich frage mich, ob ich es durch den Boden schicken könnte, damit es reisen kann, ohne vom Schwarm gestört oder reflektiert zu werden.
Raketenmagnet
@ Rocketmagnet: Du könntest es durch den Boden schicken. Das Problem besteht darin, den Wandler richtig zu koppeln, was normalerweise mit Gel erfolgt. Wäre wahrscheinlich etwas chaotisch für Ihre Anwendung. Ohne die richtige Kopplung würde der Ultraschall einfach von der Oberfläche abprallen. Vielleicht könnten die Räder Ihres Roboters den Trick machen.
Guy Sirton
@GuySirton Ich möchte die Erkennung von Ultraschall-Chirps von einem Gerät implementieren, das von einem anderen Gerät ausgestrahlt wird. Ich habe Mühe, dies zu tun, da alle verfügbaren Komponenten Entfernungsmesser sind, die das Echo aussenden und erkennen. Sie geben den Bereich aus und es ist schwierig, sie in Sende- und Empfangsteile zu unterteilen. Ich muss die Signale durch die Luft senden. Irgendwelche Hinweise oder Vorschläge? Vielen Dank!
Nekromant
@necromancer Sie sollten in der Lage sein, Sender / Empfänger zu kaufen, z. B. siehe digikey.ca/product-detail/de/MA40S4R/490-7706-ND/4358146 und mehr in derselben Kategorie ...
Guy Sirton
@ GuySirton vielen Dank. eine große Hilfe!
Nekromant
4

Wenn die Decke eine flache Oberfläche ist, die von der Oberseite der Roboter aus sichtbar ist, können Sie in regelmäßigen Abständen Markierungsstreifen (oder ein anderes bekanntes Bezugsmuster) an der Decke anbringen. Die Streifen können weiße oder schwarze Linien oder schmales reflektierendes Klebeband sein, die mithilfe von Fotosensoren auf Robotern erkannt werden.

Wenn Radpositionssensoren und eine genaue Radsteuerung gut genug sind, um die gewünschte Genauigkeit der Positionsdaten aufrechtzuerhalten, wenn sich ein Roboter nicht weiter als bis zur Entfernung d von einer genau bekannten Position bewegt hat , werden die Streifen (die weiße Streifen, schwarze Streifen oder schmales reflektierendes Band sein können) muss möglicherweise nicht weiter als etwa d / √2 voneinander entfernt platziert werden.

Die Bewegungsplanungssoftware müsste sich wahrscheinlich anpassen. Wenn die Position eines Roboters beim Überqueren eines Streifens durchweg falsch ist, passen Sie das Verhältnis der Anzahl der Radgeber zur zurückgelegten Strecke an. oder wenn ein Streifen zu sehen wäre, wenn ein Reisebein nur etwas länger wäre, strecken Sie das Bein aus, um den Streifen zu kreuzen; oder bewegen Sie sich, um kurz vor positionsempfindlichen Operationen gegen mehrere Streifen zu kalibrieren; oder führen Sie positionsempfindliche Operationen an einem Streifenkreuzungspunkt durch.

Es sind eine Vielzahl von Bezugsmustern möglich. Orthogonale Streifen, die parallel zur x- und y-Achse angeordnet sind, sind wahrscheinlich am einfachsten zu erstellen und zu bearbeiten. Aber auch Bullaugen, Fadenkreuz, Keile, Strichcodes und andere Muster sind eine Überlegung wert.

James Waldby - jwpat7
quelle
+1 Obwohl ich Ihre Antwort gelesen habe, bevor ich meine gepostet habe, habe ich immer noch die gleiche Antwort über Passermarken gepostet ... Ich beschuldige Schlafmangel.
ThomasH
@ ThomasH, danke! Ich bin überrascht , die OP hat gestimmt bis keine der Antworten, von denen alle bieten einige nützliche Informationen.
James Waldby - jwpat7
4

Der geringe Abstand zwischen der Oberseite des Roboters und der Decke schränkt Ihre Möglichkeiten wirklich ein. Es scheint so gut wie unmöglich, sich einen zentralen Überblick über den gesamten Raum zu verschaffen und von dort aus zu arbeiten.

Ich bin mir nicht sicher, um welche Art von "Raum" es sich handelt und wie viel Sie instrumentieren können, aber es könnte eine Option sein, Markierungen an der Decke anstatt an den Robotern anzubringen. Angesichts der kurzen Entfernung müssten Sie die Decke so gut wie vollständig mit winzigen Markierungen füllen, die von einer nach oben weisenden Kamera an jedem einzelnen Roboter vollständig beobachtet werden können, obwohl Sie diese Kamera möglicherweise tiefer auf dem Roboter positionieren können, beispielsweise dazwischen Die Vorder- und Hinterräder auf beiden Seiten sorgen für einen größeren Betrachtungswinkel. Die größte Herausforderung wäre jedoch, genügend eindeutige Markierungen zu drucken, um die gesamte Decke zu instrumentieren.

Alternativ könnte es denkbar sein, den Boden mit vielen RFID-Tags zu instrumentieren, vorausgesetzt, Sie finden Lesegeräte mit einer ausreichend kleinen Reichweite (AFAIK, RFID-Lesegeräte sagen Ihnen nur, dass sich ein bestimmtes Tag in Reichweite befindet, nicht dort, wo es sich befindet). Der Phidgets RFID-Leser hat bereits eine Reichweite von rd. Wenn Sie also nicht lokalisieren, indem Sie sehen, welche Gruppe von Tags Sie beobachten können (wenn es möglich ist, mehrere Tags gleichzeitig zu beobachten - können Sie sagen, dass ich keine tatsächliche Berufserfahrung mit RFID habe?), Müssen Sie experimentieren kleinere Tags erhalten und sie bis zu einem gewissen Grad vom Leser "abschirmen", so dass sie nur aus nächster Nähe gelesen werden können.

Alles in allem scheint es eine schwierige, aber sehr interessante Herausforderung zu sein. Wenn es für die Arbeit ist, können Sie uns den Zweck des Projekts vermutlich nicht mitteilen, aber es klingt auf jeden Fall faszinierend :)

ThomasH
quelle
Danke für die Antwort. Es ist frustrierend, dass ich so wenig über das Projekt verraten kann, dass es sehr schwierig ist, die Frage zu stellen.
Raketenmagnet
Ich habe das gleiche gedacht. Schwimmbäder haben die farbigen Flaggen oben und Linien unten, um dem Schwimmer seinen Standort in seiner Spur im Pool anzuzeigen. Gleiches Konzept, aber 2 Achsen statt einer.
zkent
3

Wenn ein Vicon-System nicht in Frage kommt, können Sie ein System kalibrierter Kameras verwenden, um Markierungen auf den Robotern zu lesen.

  1. Platzieren Sie die besten Kameras, die Sie in der Umgebung verwenden können. Ich benutze $ 20 Web-Cams von amazon.com
  2. Verwenden Sie die Kalibrierungswerkzeuge von OpenCV, um die Kameras zu kalibrieren.
  3. Platzieren Sie Markierungen auf den Robotern
  4. Die Kameras kennen ihre relativen Positionen in der Umgebung. Durch Triangulieren der Markierungspositionen können sie die Position und Ausrichtung der Markierungen genau ausgeben.

So ähnlich wie diese Forscher in diesem Artikel (siehe Seite 16)

Wie andere bereits bemerkt haben, haben Sie bei einer sehr niedrigen Decke keine gute Sichtlinie zur Oberseite der Roboter, und es wird Ihnen schwer fallen, diese Methode anzuwenden.

Josh Vander Hook
quelle
Danke für die Antwort. Das Problem bei so etwas wie Vicon ist die massive Okklusion, die auftritt, wenn 50 Roboter einen Raum mit einer so niedrigen Decke überfüllen. Ich denke, das macht eine solche Lösung unmöglich.
Raketenmagnet