PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multi-Robot Localization



Pumpenpeter
17.03.2014, 15:48
Hallo,

ich arbeite an folgendem Problem:
In einer Umgebung, die bekannt ist befinden sich mehrere mobile Roboter. Die Roboter können nur anhand der Information über die Sichtbarkeit anderer Roboter ihre Position bestimmen. Das wurde bereits simuliert und funktioniert, ich soll es nun bauen. Ich brauche von den Robotern also nur die Information welche der anderen Roboter sie sehen können und welche nicht. Also in dem beigefügten Bild kann R1 den R2 sehen und umgekehrt. Alle anderen können sich nicht sehen.

27795

Ich hatte gedacht Infrarot LEDs an jedem Roboter anzubringen und Photodioden. Dann die selbe Technik wie bei Fernbedienungen zu benutzen, ein IR Träger mit 38kHz mit De- und Modulation. Gibt es da vlt eine wesentlich einfachere Möglichkeit? Ich habe nicht besonders viel Erfahrung beim Auslegen von solchen Systemen und bin über jede Hilfe dankbar.

Die Randbedingungen:

Im Gebäude also mit dem künstlichen Licht was man dort so vorfindet findet: Glühbirnen, Leuchtstoffröhren, Energiesparlampen....
Auf einer Fläche von ca2x2m bis 3x3m ist die Umgebung verteilt. Also die maximale Entfernung von zwei Robotern wäre ca. 4,3m.
Es sind kleine Roboter, habe aber noch keine ausgewählt.
Jeder Roboter weiß seine ungefähre Position und seine ungefähre Orientierung. Er weiß zwar wo die anderen Roboter sich ungefähr befinden sollte diese Information aber nicht nutzen. Er sollte also in jede Richtung senden und aus jeder Richtung empfangen.
Der Ablauf wäre wie folgt: Die Roboter bekommen ihre Bewegungsbefehle und fahren los. Nach einem Zeitschritt (der vorher definiert ist) bleiben sie stehen überprüfen wen sie sehen und wen nicht. Diese Informationen werden von einem Rechner ausgewertet und anschließend fahren sie weiter. Dieser Vorgang wiederholt sich dann.
Die Hindernisse werden auf jeden Fall aus nicht Lichtdurchlässigem Material hergestellt. Wahrscheinlich ist es Pappe.

Besserwessi
17.03.2014, 17:07
So ein Moduliertes IR Signal ist schon eine gute Lösung. Für einen 360 Grad Blick wird man eine extra Optik oder wohl einfach mehrere Empfänger / Sender brauchen. Damit bekommt man ggf. noch ein kleine Zusatzinformation, also etwa Sichtbar durch welchen Sensor. Eine kleine Schwierigkeit wäre ggf. noch zu erreichen, das nicht mehr als 1 Bot gleichzeitig Sendet - aber auch das ist zu lösen.

Pumpenpeter
18.03.2014, 10:52
Hallo,

erstmal danke für die zügige Antwort.
Ich denke dass ich mich für mehrere Sender und Empfänger an einem Roboter entscheiden werde.

Das ganze soll so einfach wie möglich aufgebaut werden, da es nur ein Projekt an einer Universität ist und ich alleine daran arbeite. Ich muss zusätzlich noch eine Hausarbeit und eine Präsentation zu diesem Thema abgeben also habe ich nicht sonderlich viel Zeit für den technischen Teil. Ich habe nun im Internet IR-Receiver gefunden, die bereits einen Filter und eine Abschirmung gegen elektromagnetische Wellen mit anderer Wellenlänge haben. Das Ausgangssingnal ist dann bereits Demoduliert und muss nur noch decodiert werden. Das problem an der ganzen Sache ist dass ich nirgends einen fertigen Sender gefunden habe. Wie ich schon gesagt habe, habe ich nicht sonderlich viel Erfahrung in dem Gebiet. Ich müsste dann eine Sendeeinheit bauen die zunächst codiert dann moduliert und dann sendet. Ich bin mir da nicht sicher ob es vlt einfach zu lange dauert wird so etwas zu bauen. Es soll zunächst so einfach wie möglich gehalten werden, es würde also theoretisch ausreichen wenn die IR-LED einfach einen kurzen Lichtblitz loslässt und jeder der ihn empfängt meldet sich. Dann der nächste Roboter. Wie ist es bei nur einem Lichtblitz mit der Anfälligkeit gegen Störungen? Wäre das eine Alternative?
Vlt könnt ihr mir auch ein paar Vorschläge für Hardware machen?

Edit: Wenn jemand noch ne Ahnung hat wo man mobile Roboter kaufen kann? Die chassis für arduino finde ich wirklich haufenweise aber gibt es schon fertige? Mit controller? Denen man nur sagen muss: Fahre ... nach vorne, drehe dann..... Und so weiter? Wäre auch sehr hilfreich.

Valen
18.03.2014, 22:46
Naja, den Mikrocontroller auf dein (bis jetzt unbekannte) kleine Robotern kann fast einfach ein 38 kHz pegel machen mit einer von seiner Timer/Counters. Und das dann mittels ein Transistor mehrere IR LEDs treiben. (zbs. wie Asuro, oder Probot 128.)

Thoralf
31.03.2014, 12:47
1. also irgenwie sehe ich einen Widerspruch: So wie oben beschrieben funktioniert keine Lokalisation. Anhand der reinen Sichtbarkeit kann ein Roboter lediglich bestimmen, ob er dort ist, wo auch der andere ist. Aber ob dir das was nützt? oder es fehlen in der Aufgabenbeschreibung essentielle Informationen.

2. Ich denke, du mußt auch bestimmen, in welchem Winkel der Robot A den Robot B sieht usw.
Wenn du alle Winkel bestimmt hast, weißt du die Position von A noch nicht, da alle Winkel linear voneinander abhängig sind. Es müßten daher auf jeden Fall 3 Robotpositionen bekannt sein um eine Lokalisation eines Vierten vorzunehmen.

3. Infrarot ist kaum geeignet zumindest mit den üblichen Empfängern, da diese im gewissen Grade um die Ecke gucken können (Reflexionen + hohe Empfängerempfindlichkeit. Das wird schwierig, da ja auch die Abstände der Robbis zueiender sich ändern können.

4. ansonsten kannst du mit IR omnidirectional view machen und zwar total easy:
du richtest den Empfänger nach oben. In einem bestimmten Anstand dazu klebst du eine Weihnachtskugel drüber. Der Öffnungswinkel des Empfängers wird dadurch nach allen Seiten gerichtet. Und wenn du eine breit strahlenden IRLED direkt neben den Empfänger auch mit Blick nach oben anordnest, leuchtet die auch nach allen Seiten gleichmäßig.