Forum: HF, Funk und Felder Positionsbestimmung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

wir arbeiten gerade an unserem Robotor und benötigen nun eine 
Positionsbestimmung.

Folgendes Problem:
Unser Robotor besitzt Ultraschallsensoren und soll einen Kompass 
bekommen. Außerdem wird eine Karte in ihm gespeichert sein des Gebäudes.

Wenn man jetzt die Anfangsposition des Roboters weiß, ist der Rest kein 
Problem, da mit Hilfe der Räder und Ultraschallsensoren die Strecke etc. 
gemessen werden kann.

Aber genau da liegt das Problem. Wie bekommen wir die Startposition. Die 
Position sollte auf ca. 1m genau sein (mehr oder weniger ist auch egal, 
da die Ultraschallsensoren Korrektur über nehmen können)

Dies sollte möglichst nicht zu teuer sein, da wird ein begrenztes Budget 
haben.

Wie sollte man dies am besten umsetzten?

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Wie bekommen wir die Startposition.

Das Problem hatten andere auch schon.

> Wie sollte man dies am besten umsetzten?

Eine Möglichkeit wäre, feste Baken aufzustellen, die der Roboter kennt.
http://www.miniatur-wunderland.de/anlage/technik/schiff-system/steuerung/

von Mani W. (e-doc)


Bewertung
-2 lesenswert
nicht lesenswert
GPS einsetzen ist nicht erlaubt?


Mani

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mani W. schrieb:
> GPS einsetzen ist nicht erlaubt?

Im Innenraum?  Da misst du bestenfalls die Koordinaten des Fensters …

von Mani W. (e-doc)


Bewertung
-1 lesenswert
nicht lesenswert
Sorry! Die Weite meiner Gedanken ist beschränkt...


Laser-Abtastung!

Wenn schon ein Plan des Gebäudes eingegeben werden muss, und dann mit
Ultraschallsensoren dann mühsam abgeklappert, dann müsste die Elektronik
mittels der US-Sender-Empfänger immer wissen, wo sie sich befindet.

Alleine eine Fliege kann US-Diagnose zu nichte machen.
Oder ein schöner Schmetterling,
Besser noch, eine Fledermaus...

Also, wenn nicht irgend wo her ein eine Positionsbestimmung erfolgt, 
dann
wird das System irgendwann im Gebäude umherirren.

Laser? Nicht im Budget!


Liebe Grüsse
Mani

von lrep (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kannst du die Koordinaten nicht als Barcode oder QR-Code auf Papier 
drucken und an die Türen hängen, die der Roboter erkennt?

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@e-doc

Die USensor Daten werden nur zur Unterstützung genutzt um zu wissen, 
wann sich eine Wand vor dem Robotor befindet bzw. der Robotor soll sich 
immer ca. 20cm von der Wand entfernt fortbewegen.

Die restliche Kontrolle soll über einen Kompass sowie die Meterangaben 
der Räder gemessen werden und die USensoren nur die "Tolleranz" der 
Räder ausgleichen, da sonst jeder Fehler wieder auf sich aufbaut.

@lrep

Genau diese Idee hatten wir auch und ist grundsätzlich eine sehe gute 
Idee, allerdings will man auch keine 100 Türen mir QR-Codes versehen.

Die einzige absolute Identifikation, die sich im Gebäude nicht 
wiederholen sind die Türennummern. Das Problem: Diese befinden sich oben 
an der Tür, wenn jetzt ein Robotor aus ca. 150cm Entfernung von der 
Nummer in einen Winkel von 70 Grad ein Foto in der Auflösung von 
1280x720 macht, wie viel ist durch die Verzerrung noch zu sehen? Ich 
weiß nicht wieweit man mit Trapezkorrektur (wie bei Beamern) dagegen 
wirken kann.

Die Idee mit den QR-Codes wäre natürlich weniger Fehleranfällig als OCR, 
was würdet ihr bevorzugen?

von lrep (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Die Idee mit den QR-Codes wäre natürlich weniger Fehleranfällig als OCR,
> was würdet ihr bevorzugen?

Einen waagerecht angebrachten Barcode, denn der ist schmal und dann 
brauchst du keine Rücksicht auf Trapezverzerrung zu nehmen und kannst 
ihn über die gesamte Breite der Tür anbringen.
Oder senkrecht in Augenhöhe des Robbi am Türrahmen anpappen.

Außerdem gibt es unsichtbare Farben, die nur im IR absorbieren oder 
solche die bei UV-Bestrahlung fluoreszieren.
Das wäre dann etwas für den Tintenstrahldrucker und Selbstklebefolien.

von lrep (Gast)


Bewertung
0 lesenswert
nicht lesenswert
P.S.:

Waishon B. schrieb:
> da die Ultraschallsensoren Korrektur über nehmen können

Imho ist eine optische Triangulation eines Laserpunktes sinnvoller, denn 
US funktioniert nur senkrecht zu einer Fläche, und bei schrägen Flächen 
können durch Mehrfachreflexion gravierende Fehlmessungen passieren.

Ich bin auch skeptisch, ob US die Kante eines Türrahmens oder den Rahmen 
selbst überhaupt erkennen kann, wenn der Robbi 1m vor einer offenen Tür 
steht.

von Daniel A. (daniel-a)


Bewertung
0 lesenswert
nicht lesenswert
Die einzige zuverlässige art, die Position zu bestimmen, ist 
Triangulation, wenn du die Empfernung zu mehreren Fixpunkten mit 
bekannten Positionen kennst, kennst du deine eigene Position. Mit den 
sensoren, die du hast, ist dass aber nicht möglich. Muss der Roboter 
wirklich wissen, wo er ist? Dann könnte man versuchen, einen grossen 
buffer mit booleans zu erstellen:
bool map[HEIGHT][WIDTH] = {0};
Danach speichert man darin Umgebungsinformationen
int mapPos[2] = {WIDTH/2,HEIGHT/2};
double realStartpoint[2]; // unbekannt
double movement[2] = {0};
double rotation; // sensor kompass daten
double distance; // sensor ultraschall daten
void setPoint(){
  int x = mapPos[0] + movement[0] + sin(rotation) * distance;
  int y = mapPos[1] + movement[1] + cos(rotation) * distance;
  mapPos[x][y] = 1;
}
Dann braucht man noch einen mustererkennungsalgorithmus der mit der 
Messungenauigkeit klarkommt, um die angabe realStartpoint zu erraten.

von lrep (Gast)


Bewertung
0 lesenswert
nicht lesenswert
P.P.S::
Waishon B. schrieb:
> allerdings will man auch keine 100 Türen mir QR-Codes versehen.

Das ist ja auch nicht nötig, denn wie du schreibst, koppelt der Robbi ja 
mit.
Um eine Kumulation der bei der Koppelnavigation auftretenden Fehler zu 
vermeiden, reicht es ja aus, die Lage von Ecken und Türen mit dem 
gespeicherten Gebäudeplan in Übereinstimmung zu bringen.

Um aber einen Wiederanlauf nach einem Kaltstart zu ermöglichen sind ein 
paar  Stützwerte, z.B. in jedem zweiten Raum, zweckmäßig.

von Stefan M. (derwisch)


Bewertung
0 lesenswert
nicht lesenswert
Wie machen das denn die kleinen Staubsaugroboter für zu Hause?
Die finden ja auch präzise zur Ladestation zurück, wenn die Energie 
nachlässt.

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip sollte das Geraet sich selbst zurechtfinden. Die Daten, die 
es nicht selbst erkennen kann, wie zB das Stockwerk muss man eben per 
Tag (Barcode, QR, Transponder...) von extern fuer das Geraet lesbar 
machen.

Der Staubsaugroboter muss sich den Grundriss auch immer von Neuem 
erlernen. Denn es kann ja mal ein Stuhl im Weg stehen, oder eine Tuere 
geschlossen sein, ..

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
Was haltet ihr von RFID Tags an jeder Tür?

Welche würdet ihr empfehlen? Die sollten möglichst billig, aber eine 
gute Reichweite haben. (max. 1m) und möglichst nicht zu groß.

So weiß der Robotor beim vorbeifahren immer genau, wo er sich befindet.

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
RFID Tags... Die Reichweite bei passiven Tags entspricht dem 
Antennendurchmesser des Transceivers. Ob das praktisch ist ?

von Daniel A. (daniel-a)


Bewertung
0 lesenswert
nicht lesenswert
Könnte man aus der Signalstärke von 3 W-Lans durch Triangulation die 
Position bestimmen?

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@jetztnicht

So kurz? Dann brauche ich ja ne 1m Antenne?! Das kann ja nicht sein, da 
es auch kleiner geht

von Alex W. (a20q90)


Bewertung
0 lesenswert
nicht lesenswert
Nimm doch eine kleine IR-Bake die eine eigene Positionscodierung hat!
Sobald der Robo an dieser ankommt, weis er wo er sich befindet!
Mit dem Ultraschall weis wer wie weit er von der Bake weg ist!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Daniel A. schrieb:
> Könnte man aus der Signalstärke von 3 W-Lans durch Triangulation die
> Position bestimmen?

Mit miserabler Genauigkeit.  Stichwort: destruktive Interferenz.
Durch Reflektionen an den Wänden gibt es „Löcher“, bei denen die
Signalstärke massiv einbricht.  Du würdest in diesen Löchern daher
eine viel größere Entfernung zur Basisstation schätzen, als sie
tatsächlich ist.

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@a20q90 Ja dann müsste der Robotor aber genau da lang fahren. Mit RFID 
Tags hat man einen Radius, der abgedeckt ist. Und IR Funktioniert ja nur 
bei Sichtkontakt

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Bei passiven RFID Tags muss man den Tag erst speisen. Und das geht nur 
ueber magnetische Kopplung. Dort ist die Feldstaerke gesetzlich 
begrenzt, daher die Reichweite begrenzt. Mit aktiven Tags, sprich, 
solchen mit eigener Speisung schaut's besser aus. viel besser. Wir reden 
von 13MHz Tags, mit Mikrowellen Tags.

: Bearbeitet durch User
von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@jetztnicht

Ja aktive RFID Tags wäre schon schön, müssen allerdings auch gewartet 
werden, oder gibt es da eine andere Möglichkeit als alle paar Monate 
eine Batterie zu wechseln und diese kosten auch mal ein paar mehr als 
50ct

: Bearbeitet durch User
von Florian S. (fcs)


Bewertung
0 lesenswert
nicht lesenswert
Ein komplett anderer Ansatz ohne neue Sensoren oder Landmarken wäre die 
Monte Carlo Lokalisation:

Direkt nach dem Einschalten ist die Position unbekannt, aber durch den 
Vergleich der aktuellen Situation während der Bewegung werden 
verschiedene Positionen wahrscheinlicher, bis sich langsam eine 
eindeutige Position auf der Karte ergibt.

http://www2.informatik.uni-freiburg.de/~stachnis/pdf/zitterell04master.pdf
http://robots.stanford.edu/papers/thrun.pf-in-robotics-uai02.pdf
http://ais.informatik.uni-freiburg.de/publications/papers/pfaff06euros.pdf


Ist natürlich von der Programmierung her etwas aufwändig, gibt es aber 
in Robotik-Frameworks auch schon fertig:

http://wiki.ros.org/amcl

von Amateur (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ist es denn ein Beinbruch, wenn der Roboter, auf Verdacht, nach dem 
Einschalten, eine Testfahrt hinlegt.

Natürlich gibt es viele "Ecken" die eine Doppeldeutigkeit ergeben, aber 
wenn man sich das Umfeld, nach dem Start, einmal "ansieht", sollten nur 
noch wenige Positionsalternativen offenbleiben.

Eine Fahrt in irgendeine Richtung, schafft dann leicht Klarheit.

Eine Kollision ist ja, dank Ultraschall, ausgeschlossen.

Die Anzahl an Positionsduplikaten lässt sich ebenfalls reduzieren, indem 
man bestimmte Bereiche bzw. Räume markiert.

Eine einfache Möglichkeit wäre bestimmte Räume/Positionen farblich oder 
frequenzmäßig zu markieren. Eine einfache LED mit einer gepulsten 
Frequenz, montiert in einem existenten Leuchtkörper sowie eine Farb- 
oder Frequenzerkennung und die Anzahl an Positionsduplikaten reduziert 
sich beträchtlich.

Deckenlampen haben die Angewohnheit nach unten zu leuchten – da wo auch 
der Roboter rumhängt – also braucht’s nur ein nach oben gerichtetes 
Sens-Ohr .

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
Kennt jemand billige Aktive RFID Transponder?
Nicht teurer als 10€?

Kann man sich nicht so ein "GPS-System" selber aufbauen, indem man im 
Gebäude 3 Sender verteilt und so die Position ortet?

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Die restliche Kontrolle soll über einen Kompass sowie die Meterangaben
> der Räder gemessen werden

Was nützt es dem Roboter, wenn er weiss, wo die Eisenarmierung im Boden 
liegt. Da wird er zumindest eine Karte der lokalen Missweisung des 
Magnetfeldes brauchen, ähnlich wie jedes Schiff sie benutzt, dass über 
größere Strecken nach einem Magnetkompass fährt.

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
Warum ist das alles so kompliziert :D

Es gibt ja auch RTK, allerdings wird sowas wohl kaum Indoor 
funktionieren, oder? Wenn man sich eine Referenzstation selber bauen 
würde

von Mani W. (e-doc)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht habe ich etwas überlesen, aber was ist, wenn irgendwelche
Lautsprecher im Raum sind (Magnetfeld)?


Mani

von Daniel A. (daniel-a)


Bewertung
0 lesenswert
nicht lesenswert
Mani W. schrieb:
> was ist, wenn irgendwelche Lautsprecher im Raum sind (Magnetfeld)?

Das sollte keine grossen Probleme bereiten: Der rfid technik sind 
Statische Magnetfelder egal, und dass Magnetfeld der kleinen Magnete im 
Lautsprecher verliert mit der Entfernung so schnell an Stärke, dass es 
ausserhalb der Lautsprecherbox den Kompass sowiso nichtmehr stark 
ablenken kann. Wen natürlich am roboter ein Lausprecher und ein Kompass 
nebeneinander Montiert würden, wäre das Problematisch, aber 
glücklicherweise gibt es ja noch piezos als ersatz zu Lautsprechern.

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@daniel-a

Die Frage ist ja auch, ob auf dem Mainboard noch andere Teile sind, die 
das Magnetfeld beinflussen.

von Frank (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> @daniel-a
>
> Die Frage ist ja auch, ob auf dem Mainboard noch andere Teile sind, die
> das Magnetfeld beinflussen.

z.B Motoren.

Für noch stellt sich auch die Frage, ob eine sporadische Stützung mit 
RFID ausreicht um den integralen Fehler von Kompass, Ultraschall und 
Drehgeber aus zu gleichen...

von F. F. (foldi)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Genau diese Idee hatten wir auch und ist grundsätzlich eine sehe gute
> Idee, allerdings will man auch keine 100 Türen mir QR-Codes versehen.

Was ist denn mit Magneten?

Wir haben bei unseren Hochregalstaplern zur Gangendeerkennung Magnete im 
Boden.

von Pandur S. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Auch waeren bestromte Leiter in Fugen denkbar. Mit einem codierten Strom 
koennte man Referenz Positionen kennzeichnen.

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@jetztnicht

Sollen wir unsere Schule umgraben :D

Ja Motoren haben wir, kann man statt einem Kompass nicht auch einen Gyro 
nutzen, der kennt doch die Lage im Raum, oder?

von hahamm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
https://m.youtube.com/watch?v=7rEzS-JQ58A

der kehrt bei mir?

die Basis hat drei Infrarotlicht Strahlen, die V-Förmig in den Raum 
strahlen. Der Roboter hat ein 180 Grad Sichtfenster ...

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
Wie hätten noch eine Idee:

Wir benutzen 3 Arduinos mit RFID Readern/ 433Mhz Empfängern etc. der 
Robotor sendet eine Antwort an die Reader und berechnet die 
Zeitdifferenz. Damit kann man den Abstand berechnen.

Problem: Lichtgeschwindigkeit ist vermutlich zu schnell um 
Zeitdifferenzen zu messen, oder?

Gibt es dazu sonst eine alternative?

von HF-Werkler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
https://de.wikipedia.org/wiki/Photogrammetrie wäre auch noch eine 
Möglichkeit

von F. F. (foldi)


Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht ob man das hin bekommt (ich könnte so was nicht 
programmieren), aber mir fällt noch was ein.
Jeder Raum hat (in den allermeisten Fällen) bei geschlossener Tür 
verdeckt, eine Dehnungsfuge. Wenn eine Kamera die erkennen könnte, dann 
wäre das auch schon eine gute Möglichkeit. Man kann dann ja eine 
Testfahrt machen und alle falsch erkannten Fugen (die von Fliesen) 
löschen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Kann man sich nicht so ein "GPS-System" selber aufbauen, indem man im
> Gebäude 3 Sender verteilt und so die Position ortet?

Willst du im Gebäude drei Cäsium-Normale dafür installieren? ;-)

Ja, es gibt auch Techniken, mit denen man aufgrund der Laufzeit von
UHF-Signalen orten kann, aber es steckt etwas Aufwand dahinter.

von hp-freund (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es optisch sein darf:

http://www.sebulli.com/campos/index.php?lang=de

Würde mich auch genauer interessieren.

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Problem: Lichtgeschwindigkeit ist vermutlich zu schnell um
> Zeitdifferenzen zu messen, oder?

Das kommt drauf an, wie schnell du messen kannst. Einem Arduino wirst du 
da allerdings mit kräftiger Hardwareunterstützung unter die Arme greifen 
müssen. Die Lichtgeschwindigkeit kannst du bei Wikipedia nachlesen und 
wie groß die Räume sind, weißt du selbst am besten.

Jeder Laserentfernungsmesser aus dem Baumarkt, bestimmt die Entfernung. 
Allerdings wird da die Hochfrequenz nicht über einen Sender abgestrahlt, 
sondern auf den Laser draufmoduliert und der Abstand wird meist aus der 
Phasenlage des reflektierten Signales bestimmt, was aber eigentlich auch 
eine Laufzeitmessung ist.

von Sören W. (waishon_b)


Bewertung
0 lesenswert
nicht lesenswert
@dl8dtl

UHF hört sich interessant an, entsprechende Sender mit frei nutzbaren 
Frequenzen sollte es doch eig auch geben. Was ist denn das besondere an 
UHF? Mal angesehen von der Wellenlänge. Wo liegt der Vorteil im 
Vergleich zu z.B. HF?

Die laufen ja nicht langsamer :D

Was wäre, wenn wir Raspberrys nutzen würden? z.B. das A bzw B Modell 
(ca. 700MhZ.) können diese Nanosekunden messen?

: Bearbeitet durch User
von Hein (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Waishon B. schrieb:
> Wo liegt der Vorteil im Vergleich zu z.B. HF?

In der höheren Frequenz, da ein Empfänger dort schneller ist.

von Frank E. (Firma: Q3) (qualidat)


Bewertung
0 lesenswert
nicht lesenswert
An die Decke der jeweilgen Räume eine optische Marke, über die der 
Roboter per Kamera den Raum und seine Ausrichtung erkennt. Feintunig 
über Ultraschall ...

Übrigens: Wenn Räume renoviert werden und auch der Fußboden neu gemacht 
(Teppich oder Laminat): Gitter aus Induktionsleitungen verlegen. Dann 
kann sich in Zukunft jeder Roboter nach Art eines Grafiktabletts 
orientieren :-)

: Bearbeitet durch User
von N. K. (bennjo)


Bewertung
0 lesenswert
nicht lesenswert
Schon UHF RFID in Erwägung gezogen?

Gute Tags kosten ein paar Cent. Dogbone mit UCode7 kann ich z.B. 
empfehlen.

Reader gibt es auch günstig, z.B. hier:
http://store.linksprite.com/cottonwood-long-range-uhf-rfid-reader-uart-iso18000-6c-epc-g2/


Ich würde eine Patch-Antenne (20x20cmx5cm) nach oben ausrichten und je 
einen Tag pro Zimmer nahe der Tür an die Decke/Wand kleben. 3m 
Entfernung sind bei nichtmetallischem Untergrund kein Thema.

Gruß,
Nikias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.