Autonomer Roboter soll zweiten Roboter finden

Hi zusammen,

ich habe mir einen kleinen, autonomen Roboter gebaut.

Hardware:

  • Arduino Duemilanove
  • 2 DC Motoren
  • PING Ultraschall-Sensor
  • Diverse Plastikbauteile

Mit Hilfe des Ultraschall-Sensors kann der Roboter Hinternisse erkennen und versucht entsprechend meinem Algorithmus einen Alternativweg zu suchen. Im Prinzip fährt der Robot zufällig durch einen Raum :wink:

Nun möchte ich einen zweiten Roboter bauen. Eine neue Anforderung wäre, dass der eine Roboter den anderen Roboter sucht und auch findet bzw. mehrere Roboter andere Roboter sauber finden und unterscheiden können. Mein Ziel wäre, dass ein Roboter vorweg läuft und die anderen folgen.

Ich habe mir schon einige Gedanken gemacht wie man das realisieren könnten bin mir aber noch unsicher.

GPS:
Mit einem GPS Module könnten die Roboter ihre Position angeben. Auf Basis der Koordinaten wäre ich in der Lage von Punkt A (Roboter 1) zu Punkt B (Roboter 2) zu gelangen. Das ist zwar nicht ganz so einfach aber sollte klappen. Das Problem was ich sehe ist, der Raum in dem sich die Roboter bewegen ist gerade mal ca. 10m2. Vermutlich sind die Low-Budget GPS Module gar nicht in der Lage sinnvolle Positionen zu bestimmen. Weiterhin können die Robotos nicht kommunizieren.

XBee:
Mesh-Netzwerk mit Hilfe des Pro-Modules. Jedoch löst das nicht das Problem der räumlichen Ortung. Die Robots könnten aber untereinander kommunizieren. Gibt es irgendwie eine Möglichkeit über den XBee Stack auch auf die Position im Raum zu schließen? Irgendwie Signal-Richtung und Signal-Geschwindigkeit auswerten?

GPRS/GSM:
Kommunikation nur über SIM d.h. die Robots müssten hardcodiert die Nummern der anderen Robots kennen. Räumlichen Ortung ungenau.

Pattern Recognition mit Kamera:
Vermutlich gar nicht realisierbar auf einem so kleinen Microcontroller.

Ich denke mit GPS + XBee könnte man etwas hinbekommen aber gibt es keine einfachere Möglichkeit? Gibt es keinen Sensor der ein gewisses Signal ausstrahlt und ich darauf auf die Positon des Senders schließen kann? Wie erkennen sich Roboter?

Vielen lieben Dank

Mit GPS in einem Raum könntest du noch Probleme haben, sofern du kein Glasdach hast.
Vorschlag: Wenn der Roboter die Raumgrösse ermittelt (abtasten) hat, dann sollte er die Position per Funk senden können. Somit könnte der 2. Roboter, welcher sein Standort auch kennt, den 1. lokalisieren.
Nachteil dieser Variante wäre die eher längere Anlaufzeit, bis sich 2 oder mehr Roboter finden können. Dafür funktioniert dieses System sicherlich in jedem Raum, in welchem deine Roboter navigieren können. Dies ist nur eine Idee auf die schnelle, es gibt sicherlich noch bessere Ansätze.

Mit Licht.
Der eine Roboter sendet ein Infrarotlicht (ZB 38kHz und TSOP) und der andere sucht die Richtung indem er sich dreht oder indem er den Empfänge dreht.
Alles andere ist komplizierter bzw (gps) nicht machbar weil zu ungenau oder gar keinen Empfang vor allem in Gebäuden.
Grüße Uwe

Licht würde aber auch nur gehen, wenn zwischen den beiden Roboter ein freies Sichtfeld besteht und weitere Störungen, z.B. Sonnenlicht, effektiv herausgefiltert werden.

Kein Freies Sichtfeld behindert; Sonnenlicht nicht, wenn Du IR frequenzmoduliert nimmst. Der Empfänger kann auch so abgeschattet weren daß Sonnenlicht von oben nichts ausmacht.
Grüße Uwe

Zu GPS: Wen ich mich nicht irre kann GPS sich
doch um bis zu mehrere Meter verpeilen, oder?
Ist dann etwas ungenau und evtl. etwas teurer als
Infrarot.

Addi

Hallo,

ich hatte auch sowas in Planung. Ich hätte da an eventuell an Ultraschall gedacht. Aber da gibts dann Probleme mit den Reflektierungen im Raum, außer man lässt ihn zur lautesten Quelle fahren.