PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Projekt Positionsbestimmung für ein Roboter (RP6)



Chevy
02.02.2012, 16:01
Hi!

Habe mal ein paar Fragen zu einem Projekt welches ich gerade angehe.

Ich möchte eine Positionserfassung realisieren. Ein Roboter z.B. der RP6 soll seine Position in einem freien (jedoch definierten) Raum erfassen (errechnen) und dann selbstständig definierte Positionen anfahren.

Das ganze sollte per Funk funktionieren.

Die Idee: In einem Rechteck von sagen wir mal 3m auf 2m befinden sich an den Eckpunkten jeweils eine Sender/Empfänger Einheit. Also 4 Stück. Der RP6 bekommt ebenfalls eine Sende/Empfangs Einheit. Der RP6 sendet nun eine ID an alle vier Eckeinheiten. Diese wiederum senden nach dem Empfang ihre ID zurück an den RP6. Da die Abstände der vier Ecken unverändert bleiben und diese somit feststehen sollte der RP6 über die Laufzeitunterscheidung und Dreiecksberechnung seine IST Position feststellen können und diese dann mit der SOLL Position vergleichen und dementsprechend dort hin fahren.

Hier mal ein Bild zum besseren Verständnis:

21395

Die Funkübertragung wollte ich mittels RFM12-433 bzw. RFM12-868 Modulen lösen.

Meine Fragen dazu:
1. Ist diese Idee im Prinzip überhaupt realistisch in der Durchführung?
2. Wenn Ja, kann ein Mikrocontroller überhaupt Laufzeitveränderungen in diesen Funkbereichen erfassen?
3. Wenn Ja, was müsste der RP6 bzw. Die Funktürme senden damit das überhaupt Funktioniert?
4. Und wie müsste die Rechnung aussehen damit der RP6 anhand dieser Laufzeitunterscheidung und den Positionen der Funktürme seine Position errechnen kann.
5. Würde eine solche Berechnung überhaupt eine Mikrocontroller eines ATmega32 mit 16Mhz Takt verarbeiten können.

Leider ist für mich die Mikrocontroller-Programmierung noch Neuland und mit den Funkmodulen RFM12 habe ich auch keine Erfahrung. Daher meine Fragen an die Experten bevor ich gegen eine Wand laufe.

Gruß Marco

o.g.1985
02.02.2012, 16:40
Hi,

Ich hätte da eine idee,
Ich würde es aber über die Signalstärke machen und nicht über laufzeit.
Problem 1: Amateurfunkdienst lizenz haben. ( Eftl geht es auch ohne ) aber dann nicht mit "Der Fuchsjagd-Sender "Foxy"
Problem 2: Es wird warscheinlich nur im Freien gehen wegen den signal reflektionen. ( Wie es bei deiner Idee auch der fall ist. )

OK In eine Viereck oder dreieck, sind sender Funktürme jeder hat eine andern Kanal.
Im RP6 sollte eine art Map sein als bezugspunkt ( Turm zu Kanal ) und je nach dem wie Stark das signal von jedem Turm ist kann sich der RP6 auf der Map Orientieren.
Der RP6 braucht eine Richtantenne er derht sich im Kreis und Scannt so die umgebung.
So hast du nicht das problem mit dem Timing der Laufzeitberchnung.
Ich hoff ich hab jetzt nichts falsches erzählt, denn so würde ich es angehn.

Denn das Empfangs teil Piepst umso stärker desto näher die quelle ist. Dann musst du Lautsprecher signal abgreifen un din den AD port des ATmega senden.
Eftl barchst du noch eine Operationsverstärke.

Edit:
Fuchsjagd-Sender fürs lizenzfreie 70-cm-ISM-Band (433,92MHz)
Die Sendefrequenz kann per Trimm-Kondensator um etwa +/-50KHz verändert werden. Das sind in der Regel 4 ISM-Kanäle, wenn man ein ISM-Funkgerät als Peilempfänger benutzt. Anders ausgedrückt: Man kann dann mit 4 Füchsen auf verschiedenen Frequenzen gleichzeitig arbeiten. Als AVR-Mikrocontroller habe ich den modernen und komfortabel ausgestatteten ATtiny45 ausgewählt. Damit wird es einfach, statt des vorhandenen (schon geladenen) Fuchsjagd-Programms eigene Projekte in schön einfachem Basic zu verwirklichen. Der ATtiny45 hat übrigens unter anderem einen echten 10-Bit-A/D-Wandler. Dazu unten mehr.

http://www.flohjagd.de/

MFG Oliver G

masasibe
02.02.2012, 17:18
Hallo,
ich hoffe ich verstehe das nicht falsch, aber möchtest du die Entfernung über die Laufzeit die die Funkwellen für diese Entfernung von 3m brauchen, messen?
Ich glaube nicht, dass das funktionieren kann. Die Funkwellen breiten sich ja mit einer Geschwindigkeit von 300 000km pro Sekunde aus und bräuchten für die 3m gerade mal 10ns. Da ein Avr-Takt bei 16MHz ca. 62ns dauert kann man das wohl kaum sinvoll messen.

Die Dreiecksberechnung prinzipiell müsste aber funktionieren.

mfg masasibe

o.g.1985
02.02.2012, 17:34
@masasibe

Triangulation geht aber nur über einen umweg.

RP6 ist auf Position X Antenne A und B Peilen den PR6 an. Dann muss die Position X die durch Antenne A und B ermittelt wurde. Zu den RP6 geschickt werden.
Das ist zu Umständlich ! Würde ich sagen.
Da ist das anpeln der 4 Antenne duch den RP6 mittels signalstärke besser.

MFG Oliver G

masasibe
02.02.2012, 17:51
Hallo Oliver,

RP6 ist auf Position X Antenne A und B Peilen den PR6 an.
Wie meinst du das genau mit dem Anpeilen? Per Ultraschall oder so könnte man die Entfernung messen und mit einem Laser ist Entfernungsmessung auch möglich, aber über Funkwellen?
Vielleicht sitze ich jetzt auf der Leitung, aber irgendwie verstehe ich noch nicht wie du das gemeint hast! ;-)

mfg masasibe

ePyx
02.02.2012, 17:59
Warum nicht gleich ein Radarmodul wie dieses hier (http://www.conrad.de/ce/de/product/502372/) ?

o.g.1985
02.02.2012, 18:17
Würde gehn, aber Radarmodul kann halt nur Bewegte Objekte erkennen.
Meist du 4 Türme mit je einen Modul ? Und diese geben die infos an den RP6 weiter ? Könnte gehn ob sie sich dann gegenseitig stören weiss ich nicht. Und wie gesagt es funzt nur bei bewegten objekten.
Abgesehn davon hätte ich keine lust die Strahlung ab zu bekommen. ( IF Signalspannung (AC): ca. 300 µV | 24,000 - 24,250 GHz ).
Und wenn man das mal 4 rechnet, Da ist dan Pary es konnte auch die Elektronik des RP6 beeinflussen. Bin mir aber nicht sicher.

@masasibe
Über Funkwellen, ( stärke des signals )

http://de.wikipedia.org/wiki/Triangulation_(Messtechnik)

Auszug aus Wiki:
Das Grundprinzip der Triangulation ist in der Abbildung rechts vereinfacht für den zweidimensionalen Fall dargestellt.
Von zwei verschiedenen Stationen an den Positionen http://upload.wikimedia.org/wikipedia/de/math/7/8/8/788d26cc55ecf83735be23720cbbe362.png und http://upload.wikimedia.org/wikipedia/de/math/d/4/c/d4cfcaf44460d8cea89b8ba2b1c0e71c.png wird der zu bestimmende Zielpunkt P angepeilt. Dabei erhält man die beiden Winkel α und β mit der Genauigkeit Δα und Δβ. Unter Kenntnis der Basislänge b kann man dann die Koordinaten von P relativ zum Koordinatenursprung bestimmen. Das Messvolumen des Gesamtsystems ist das Schnittvolumen der Messvolumina der Einzel-Messsysteme.
Vereinfacht könnte man auch sagen, dass von zwei Punkten auf einer Geraden, wobei der Abstand zwischen den beiden Punkten bekannt ist, Winkelmessungen zu beliebig anderen Punkten im Raum erfolgen, um deren Lage eindeutig zu bezeichnen.

ePyx
02.02.2012, 18:26
Naja mal vier kannst du es nur rechnen, wenn sie sich mit gleicher Phase konstruktiv überlagern. Ansonsten guck mal auf die Dächer der Großstädte bei den UMTS-Sendemasten. Die geben eine wesentlich höhere Strahlung ab und stehen in mitten von Wohngebieten.

Ansonsten sollte Radar auch bei stehenden Objekten funktionieren, da diese ja auch eine Reflexion verursachen. Die Einschränkung mit den bewegten trifft nur zu, wenn du den Doppler-Effekt nutzen möchtest um eine Richtung zu bestimmen.

Hab gerade geguckt, bei diesem Sensor geht es auf jeden Fall nicht. Der ist nur empfindlich auf bewegte Objekte und gibt auch nur den Frequenz hub aus den dieses verursachen. Ist also keine Laufzeitmessung oder Ähnliches enthalten.

*Allerdings wenn ich mich irren sollte, lass ich mich auch gern vom Gegenteil überzeugen.

o.g.1985
02.02.2012, 18:43
Ja du hast recht die arbeiten nach dem Doppler-Effekt aber aus gutem grund wie willst du das Nutzsignal von den Reflexion unterscheiden?
Zu Strahlung UMTS Sendet nicht auf 24 Ghz, sonder bei 1.900,1 Mhz bis 2.169,7 Mhz.
Und zu Hochfrequenz sendern sollte man eine mindest abstand halten.

MFG Oliver G

oberallgeier
02.02.2012, 19:49
Hi Marco.
... 3. Wenn Ja, was müsste der RP6 bzw. Die Funktürme senden damit das überhaupt Funktioniert?
4. Und wie müsste die Rechnung aussehen damit der RP6 anhand dieser Laufzeitunterscheidung und den Positionen der Funktürme seine Position errechnen kann ...Zu 3. Laufzeitunterschiede von Funktsignalen wirst Du mit "unseren" Mitteln, sprich: mit Mikrocontrollern, kaum messen können.

Zu 4. WENN Du die Laufzeitunterschiede hättest, könntest Du Dir daraus die Dreieck zwischen drei der Baken und dem Roboter errechnen. Daraus lässt sich die Position eindeutig ermitteln (klick hier).

(https://www.roboternetz.de/community/threads/36932-Navigation-mittels-Triangulation?p=351334&viewfull=1#post351334)Üblicherweise wird bei der terrestrischen Navigation der Winkel gemessen, unter dem jeweils zwei Baken einer Gruppe von drei Baken (mit genau bekannten Positionen) gesehen wird. Diese drei Baken dürfen nicht auf einer einzigen Geraden stehen. Anmerkung: es sind in der Geometrie der Ebene IMMER für die eindeutige Lösung nur drei Baken erforderlich, die auf sich kreuzenden Verbindungslinien stehen müssen. Aus zwei von diesen Winkeln lässt sich die Position errechnen (siehe Link oben). GPS macht so etwas auf verschiedene Weise (http://www.kowoma.de/gps/Signale.htm) mit speziellen ICs (klick wieder) und NICHT nach dem oben verlinkten Verfahren.

Chevy
02.02.2012, 20:53
Hi @all:

Danke für eure Ideen!
Ich sehe schon das Thema hat Potenzial. Stellt euch nur mal vor was, wenn es auf einfache weise funktioniert, man damit alles anstellen könnte. Im Bereich Roboter, Modellbau, RC-Modellbau, usw usw.

Bei mir ist das letztendlich (wenn es funktioniert) für Modellautos im Maßstab 1:24 bzw. 1:22,5 die sich dann selbstständig ohne Spurführung auf einer Modellanlage fortbewegen sollen.


Hi Marco.Zu 3. Laufzeitunterschiede von Funktsignalen wirst Du mit "unseren" Mitteln, sprich: mit Mikrocontrollern, kaum messen können.

Genau das sind meine Bedenken. Da in den Mhz Bereichen Laufzeiten von nur wenigen Nanosekunden ermittelt werden könnten. Aber dennoch möchte ich es mit Funk hin bekommen, da für Infrarot es schon so was ähnliches gibt diese jedoch zu viele Fehlerquellen besitzt das diese für mich nicht in Frage kommt. Dazu kommt noch das zwar im Bild oben die Fläche frei ist und nur 1 RP6 sich darin bewegen soll. Später würden aber noch Hindernisse (Gebäude) dazu kommen und es sollten 3 oder 4 RP6 gleichseitig Fahren können.



Daraus lässt sich die Position eindeutig ermitteln (klick hier).
(https://www.roboternetz.de/community/threads/36932-Navigation-mittels-Triangulation?p=351334&viewfull=1#post351334)

Danke für den Link! Jetzt muss dass ganze nur noch als Formel in C geschrieben werden und der Mikrocontroller soviel Platz bzw. Rechenleistung haben, diese Rechnung ständig zu wiederholen? Oder reicht durch die Trägheit auch nur alle 5sec. aus? Also ich wurde sagen das die Berechnung der Position bei 3 bzw. 4 Punkten (Höhere Genauigkeit) kein größeres bzw. unüberwindbares Problem darstellt. Im Gegensatz dazu die Funktechnik!

Mit dem Vorschlag diese über Radar zu lösen, muss ich sagen das es sich sehr interessant anhört, aber das ist mir eine Nummer zu Hoch. Mit Radar habe ich mich noch gar nicht beschäftigt und ich glaube das diese auch keine allgemein handhabbare Lösung sprich für jeden nachvollziehbar und nachbaubare Lösung ist. Oder täusche ich mich da?


GPS macht so etwas auf verschiedene Weise (http://www.kowoma.de/gps/Signale.htm) mit speziellen ICs (klick wieder) und NICHT nach dem oben verlinkten Verfahren.

Ja und GPS nutzt die Laufzeiten zur Berechnung daher kam ich auf die Idee, Nur das die Signale der GPS-Satelliten eine um weites größere Strecke durchlaufen und somit auch deutliche Zeitunterschiede zustande kommen. GPS wäre ja selbst auch schon eine Lösung leider aber für meine Zwecke extrem ungenau... mmmh

Gruß Marco

oberallgeier
02.02.2012, 23:02
... in C ... und der Mikrocontroller soviel Platz bzw. Rechenleistung haben ...Die transzendenten Funktionen sind zugegebenermaßen etwas länglich - platz- und zeitmäßig. Daher könnte man eigene, schnelle Näherungen schreiben. Für den atan, der in manchen Lösungen dieser Aufgabe verwendet wird, haben Sternthaler und ich eine Näherungslösung gefunden, die zeitlich und maschinencodemässig (gilt hier nur für A V R-mega) kürzer ist, als der in der G C C-Library verwendete Code. Beispiel hier (klick) (https://www.roboternetz.de/community/threads/50078-sinus-satz?p=482862&viewfull=1#post482862) und eine längere, dazugehörige Mathediskussion hier. (http://forum.diegeodaeten.de/index.php?id=2983)

Chevy
09.02.2012, 01:36
Hi,

Nach dem ich nun mit mehreren Fachleuten gesprochen habe, habe ich mich von der Umsetzung mittels Laufzeitberechnung verabschiedet. Diese ist einfach nicht Möglich und durch zu viele Störfaktoren auch noch sehr ungenau.

Daher habe ich mal die Idee vom User o.g.1985 (https://www.roboternetz.de/community/members/39108-o-g-1985) aufgegriffen und die Möglichkeit mittels Signalstärke in Betracht gezogen.

Diese Idee müsste eigentlich zu realisieren sein. Gerade die RFM Module die ich verwenden möchte, besitzen eine analoge und digitale Signalstärkeauswertung (ARSSI/DRSSI).

Vom Prinzip her so ähnlich wie die Funktionsweise eines Touchscreens nur das nicht die vier Ecktürme die Signalunterschiede auswerten sollen sondern der RP6 der sich durch das Feld bewegt.

Wer hat dazu noch Ideen zur Umsetzung bzw. Bedenken ?

Gruß Marco

JJ42
24.04.2012, 13:35
Hallo zusammen,
dies ist mein erstes Posting.
Ich verfolge die Diskussionen auf diesem Forum schon seit ein paar Jahren, da ich schon immer mein Rasenmähroboter-Projekt starten wollte.
Hier gibt es viele gute Bauvorschläge, so dass es für fast alle Probleme eine Lösung gibt.
Nur für die Positionsbestimmung gibt es aus meiner Sicht noch keine gute Lösung,
(da ich auf eine Induktionsschleife verzichten möchte).

Letzte Woche hatte ich aber einen interessanten Artikel bei Heise gelesen: „Der allwissende Chip“ (siehe Heise).
Es geht um einen GPS Chip für Smartphones der neben GPS auch WLAN und Bluetooth zur Positionsbestimmung nutzt.
Der BCM 4752 soll eine Positionsbestimmung bis in den cm Bereich möglich machen (siehe Broadcom).
Dies soll auch innerhalb Gebäuden funktionieren.
Der Chip ist noch nicht erhältlich (?) und es sollen erst in Q4 Smartphones mit diesem Chip erhältlich sein.
Bestehen aus eurer Sicht Chancen, dass wir diesen Chip auch im Roboterbereich verwenden können?

Heise: http://heise.de/-1518466
Broadcom: http://www.broadcom.com/products/GPS/GPS-Silicon-Solutions/BCM4752