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?
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/
Mani W. schrieb: > GPS einsetzen ist nicht erlaubt? Im Innenraum? Da misst du bestenfalls die Koordinaten des Fensters …
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
Kannst du die Koordinaten nicht als Barcode oder QR-Code auf Papier drucken und an die Türen hängen, die der Roboter erkennt?
@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?
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.
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.
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:
1 | bool map[HEIGHT][WIDTH] = {0}; |
Danach speichert man darin Umgebungsinformationen
1 | int mapPos[2] = {WIDTH/2,HEIGHT/2}; |
2 | double realStartpoint[2]; // unbekannt |
3 | double movement[2] = {0}; |
4 | double rotation; // sensor kompass daten |
5 | double distance; // sensor ultraschall daten |
6 | void setPoint(){ |
7 | int x = mapPos[0] + movement[0] + sin(rotation) * distance; |
8 | int y = mapPos[1] + movement[1] + cos(rotation) * distance; |
9 | mapPos[x][y] = 1; |
10 | }
|
Dann braucht man noch einen mustererkennungsalgorithmus der mit der Messungenauigkeit klarkommt, um die angabe realStartpoint zu erraten.
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.
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.
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, ..
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.
RFID Tags... Die Reichweite bei passiven Tags entspricht dem Antennendurchmesser des Transceivers. Ob das praktisch ist ?
Könnte man aus der Signalstärke von 3 W-Lans durch Triangulation die Position bestimmen?
@jetztnicht So kurz? Dann brauche ich ja ne 1m Antenne?! Das kann ja nicht sein, da es auch kleiner geht
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!
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.
@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
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
@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
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
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 .
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?
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.
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
Vielleicht habe ich etwas überlesen, aber was ist, wenn irgendwelche Lautsprecher im Raum sind (Magnetfeld)? Mani
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.
@daniel-a Die Frage ist ja auch, ob auf dem Mainboard noch andere Teile sind, die das Magnetfeld beinflussen.
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...
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.
Auch waeren bestromte Leiter in Fugen denkbar. Mit einem codierten Strom koennte man Referenz Positionen kennzeichnen.
@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?
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 ...
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?
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.
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.
Wenn es optisch sein darf: http://www.sebulli.com/campos/index.php?lang=de Würde mich auch genauer interessieren.
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.
@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
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.
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.