PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ortung eines zweiten RP6



SpiderX47
28.02.2008, 19:12
Hallo zusammen!

Ich würde gerne mit meinem RP6 einen anderen RP6 orten und dann zu dem gefundenen RP6 fahren.

Die Rp´s befinden sich dabei in einem leeren ca. 3x3m großen Raum und der "gesuchte" RP6 bewegt sich nicht. Er soll aber in beliebiger Orientierung in diesem Raum stehen können ohne das es Schwierigkeiten bei der Ortung gibt.
Ist der RP6 dann gefunden, soll dieser angefahren werden und der "Suchende" soll feststellen können, ob er sich gerade seitlich neben, vor oder hinter dem "gesuchten" RP6 befindet.
Diese Bedingung ist für mich wichtig, weil einer der RP´s nachher dem anderen folgen soll und ich deshalb ja wissen muss, wie die Ausrichtung der Beiden zueinander ist.


Ich habe mir da jetzt schon mal Gedanken gemacht und folgende Lösungen angedacht:1. S/W-Kamera - der "gesuchte" RP6 müsste dann meiner Meinung nach vorne, hinten, links und rechts verschiedene schwarze Objekte auf weißem Grund haben, um zu verifizieren in welcher Orinetierung sie zueinander stehen.
2. Infrarot-Ortung - der "gesuchte" RP6 müsste ein IR-Signal senden und der zweite müsste dann feststellen, aus welcher Richtung dieses Signal kommt. Allerdings könnte ich mir vorstellen, dass diese Möglichkeit in dem relativ kleinen Raum zu häufigen Fehlerwerten führen könnte.
3. Ultraschallortung - Beide RP´s sind bereits mit US-Sensor SRF02 ausgestattet und der "Suchende" könnte sich dann um 360° drehen und dabei immer den Abstand messen. Theoretisch bekomme ich dann ja den Abstand zu allen 4 Seiten des Raumes. Ist diese Abstand dann kurzzeitig anders, steht in dieser Richtung der "gesuchte" RP6.
Dieses Verfahren scheidet aber meiner Meinung schon aus, da ich den RP6 in einer Ecke nämlich nicht finden kann und außerdem auch mit diesem Mittel ihre Orientierung zueinander nicht feststellen kann.
Vielleicht kann mir ja jemand zu meine Lösungsansätzen ein paar Tipps geben oder ggf. auch noch weitere Vorschläge machen, wie ich diese Aufgabe lösen könnte.

Vielen Dank in voraus
SpiderX47

-andi_007-
29.02.2008, 19:15
Hy!...SpiderX47

Ich finde die Nr.:1 am besten!!

Oder du köntest auch den gesuchten RP6 einen Sender verpassen, mit dem der andere RP6 ihn orten kann! ( So wie bei Lawienen-unfällen )

Leider hab ich so ein teil noch nicht gefunden!

MFG Andi

panzerkeks
29.02.2008, 22:16
Vielleicht ist es möglich, das der gesuchte RP6 Ultraschall nur sendet und der suchende RP6 nur empfängt.
Auf diese weise könnte man den Abstand der Roboter zueinander ebenfalls bestimmen, nur dass es bestimmt schwierig ist, beide zu synchronisieren...

Murdoc_mm
01.03.2008, 09:20
Hi,

ich würde die zweite Lösung versuchen.

Du musst halt den IR-Sender so einstellen das das Signal gut zu erkennen ist und nur wenig reflektiert. Über dieses IR-Signal kannst du dann auch die Verbindung zwischen den beiden RPs machen. Siehe: http://www.robotmaker.de/fernbed.html

Für die Winkelbestimmung gibts dann mehrere Wege. Der einfachste ist meiner Meinung nach eine genau Wegmessung. Beide RPs müssen genau festhalten wie viel Grad sie sich bei ihren Fahrten drehen und wie weit sie fahren. Damit hat man gleich die Genaue Position im Raum und die genaue Ausrichtung. Allerdings ist diese Methode sehr Störanfällig was die Genauigkeit angeht und setzt voraus das beide RPs am Start wissen wo und in welcher Richtung sie im Raum stehen.

Eine andere Möglichkeit ist zwei Baken an festen Positionen im Raum aufzustellen. Über diese zwei Baken können die RPs (auch noch mehr als 2) ihre Position und Ausrichtung feststellen. Allerdings ist hier dann die IR-Belastung in dem kleinen Raum sehr hoch (min. 4 Sender) was zu störungen führen kann.

Eine sehr interessante Möglichkeit den Winkel zu einer Bake festzustellen gibts hier: http://www.team-iwan.de/technik/elektronik/drehbake.php
(Damit sollten auch zwei möglich sein.)

Gruß

SpiderX47
05.03.2008, 19:28
Danke erstmal für die Antworten!

Ich denke ich werde mich jetzt vorerst mit dem Kameramodul beschäftigen und schauen, wie gut und genau der zweite RP auf die Entfernung erkannt wird.

Die Lösung vom Team-IWAN kommt auch in die nähere Auswahl. Da aber die Anforderungen an die Hardwareentwicklung/Aufbau bedeutend größer ist, werde ich mich wohl erst daran wagen wenn ich wirklich überzeugt bin, dass die Kamera keine guten Ergebnisse liefert. :wink:

Falls jemand noch weitere Ideen hat, bin ich aber auch für diese jederzeit offen!

efbrgn
06.03.2008, 10:43
Du könntest auch einfach ein Licht an den einen RP6 basteln und der andere Fährt dann zum Lich... =P~

Bloß weiß ich nich ob man dann sehen kann wie der Rp6 zum anderen steht...

mfg efbrgn

Roboman93
06.03.2008, 17:47
du könntest das mit den lichtsensoren und der ortung so machen, dass du die lichtsensoren eng aneinander setzt und dazwischen neine ca. 5cm lange pappe. wenn dann der rp6 scgräg zum licht steht, hat der eine sensor schatten und der andere ist hell. so kannst du den rp6 ausrichten. wenn beide sensoren hell sind, zeigt er auf den anderen.

Pr0gm4n
07.03.2008, 18:06
Hi,

find ich ne gute Lösung, man müsste ihm im Programm allerdings erstmal sagen, dass er um die eigene Achste drehen soll, bis er ein Licht sieht...

der andere RP6 muss solange nur gucken, ob er mehr als 30cm von einer Wand weg ist, um zu vermeiden, dass der andere ihn gar nicht sieht oder willst du die Lampe dabei ganz oben auf dem 2. RP6 montieren?

MfG Pr0gm4n

Roboman93
07.03.2008, 18:15
es darf natürlich nicht zu viel licht von den wänden reflektiert werden, sonst kanns net klappen

Pr0gm4n
07.03.2008, 18:21
Nee, ich mein das so, dass wenn du das Licht z.B. bei den Bumpern montierst und der Robby mit Licht gegen die Wand schaut, dann kann er ja auch nicht geortet werden oder?


MfG Pr0gm4n

Roboman93
08.03.2008, 14:07
ach so, ja klar würde ich das licht ca. 5cm über dem rp6 montieren. muss halt ne ziemlich starke lampe sein, die in alle richtungen strahlt, also keine led.

Pr0gm4n
08.03.2008, 17:20
Jop, ich finds ne echt interessante Lösung, hoffe auf Videos, die ich dann ansehen kann...

Baue ich dann evtl. mal auch, wenn mein Kumpel sich auch nen RP6 besorgt hat...


Also postest du dann auch mal den Code, den du dafür hernimmst, oder willst du den mit uns hier zusammenbasteln??


MfG Pr0gm4n

SpiderX47
09.03.2008, 18:26
Die Sache mit dem Licht hatte ich auch schon mal angedacht und schon mal mit dem werksseiteig am RP6 montierten Sensor und einer starken Lampe rumgepspielt.
Das Problem bei diesen Test war halt nur, dass das Areal (3x3m) für diese Art der Ortung zu groß und zu hell war. Er konnte im dunklen Raum zwar den Lichtkegel der Lampe finden, aber bei normalem Tageslicht stößt diese Methode klar an ihre Grenzen.

Wie gesagt, ich teste es dann erstmal mit der Kamera und eventuell muss ich dann auch meine Anforderungen an die Größe des Areals ein wenig einschränken um vernünftige Ergebnisse zu erhalten. Falls es dann erfolgreiche Fortschritte gibt, werde ich euch auf hier auf dem aktuellen Stand halten.

Pr0gm4n
09.03.2008, 18:58
Hi,

nochmal ne Idee, ich hab in nachrichten über Cebit ein System gesehen, das es erlaubt, eine Räumliche Ortung über 3 Sendestellen zu machen...

wenn jetzt 3 Säulen, die meinetwegen IR Senden aufgestell werden und die beiden RP6 nur analysieren wie stark das ankommende Signal ist und das wiederrum dem anderen mitteilen, dann könnten die errechnen, wie sie zueinander stehen...

Dann fährt schonmal der eine RP zum anderen hin...

Danach musst du halt über Kamera herausfinden wo der eine zum Anderen steht und wenn er dann richtig ist, dann sagst du ihm, er soll dem anderen mitteilen, dass der jetzt losfahren soll/kann und lässt ihn z.B. einem Licht am hinteren Teil des vorderen RP6 folgen....


Ich hoffe wir hatten die Lösung noch nicht, ich konnte es grad nichmehr ganz durchlesen, weil ich jetzt weg muss... (glaube mich aber nich dran erinnern zu können...)

MfG Pr0gm4n

Roboman93
11.03.2008, 17:58
vielleicht setze ich mich mal in den nächsren tagen an so ein projekt... kann dann mal code und nen video posten

pacer_one
11.03.2008, 18:33
Die Idee mit der Lampe finde ich auch nicht schlecht.

Auf dem Robby wird eine Strahlungsquelle angebracht, die nach allen Seiten gleichmäßig strahlt. Dies könnte vielleicht eine IR-Lampe sein. Auf dem anderen Robby befinden sich zwei Empfänger die nebeneinander angebracht sind und rotieren. Bei einer schmalbandigen Frequenz könnte man vielleicht Irritationen durch fremde Quellen vermindern. Mit einem 'Deckel' auf dem Empfänger könnte man auch Licht von oben abschatten.

Dadurch das Drehposition und und Fahrrichtung zueinander bekannt sind, dürfte es kein Problem sein, dem Robby die Fahrrichtung vorzugeben.

Eventuell, könnte man bei Ortung des Robbys, den Sensor in Fahrtrichtung anhalten un somit das Ziel anvisieren. Bei zwei Sensoren sollte dann klar, sein, wenn der Robby von seinem Ziel abweicht, in welche Richtung korrigiert werden muss.

Meiner Meinung ist der (finanzielle) Aufwand für solch eine Lösung relativ gering. Hat natürlich den Nachteil, dass immer 'Sichtkontakt' geben muss. Steht etwas dazwischen wird es wohl Probleme geben.

SpiderX47
10.04.2008, 12:18
Hi,
ich habe mich in letzter Zeit mal wieder ein wenig mit der Ortung auseinandergesetzt und bin zu dem Schluss gekommen, dass die Kamera für die Ortung in dem Maße wie ich sie benötige nicht ausreicht.
Die Werte sind nicht genau genug um ihn zu Orten, da ja über die Entfernung das Objekt verfälscht wird.

Ich habe also nochmal neu nachgedacht und in gewisser Weise einen Rückschritt im Lösungsansatz gemacht.
Der RP6 der gefunden werden soll steht jetzt an einer Stelle und sendet ganz normal über die IR-Leds seines ACS-Systems. Der Finder-RP hat sein ACS deaktiviert (damit er nicht sein eigenes Signal empfängt) und sucht nun über seinen IR-Empfänger das andere Signal. Er drehte sich also solange auf der Stelle bis er das Signal empfängt und fährt dann drauf zu. Er konnte jetzt schon relativ genau in dem Sendekegel der IR-Leds den anderen RP6 anfahren.
Als Erweiterung habe ist dann noch zwei TSOP1736 auf den Finder gebaut um noch besser zu verifizieren ob das Signal von links oder rechts kommt. Diese sind dann an zwei retriggerbare Monoflops mit dem NE555 angeschlossen die dann aus den gesendeten ACS-Signalen des gesuchten RP6 HIGH/LOW-Signale machen um dann mit diesen einen Transistor ansteuern, der dann den Eingang eines PCF8574 gegen GND schalten kann.

Nun wollte ich gerne noch eine Bake bauen, um auch andere Zielpunkte wie den zu suchenden RP6 zu markieren. Ich habe die Schaltung wie unter http://www.robotmaker.de/fernbed.html für 36kHz aufgebaut (Eingang gegen Masse). Mit den zusätzlichen TSOP1736 empfange ich das Signal auch einwandfrei und kann es auswerten aber der IR-Empfänger vom RP6 müsste ja, wenn ich das aus dem Code richtig verstehe, noch den ursprünglichen Takt des ACS bekommen um auf das Signal zu realisieren. Ich habe nur zur Zeit kein Ahnung wie ich diese Signal erzeugen kann.

Kann mir dort eventuell jemand mit einer guten Idee weiterhelfen?