Lokalisierung mit Markern

nero76

Moderator
Hallo,

Idee: man installiere einen oder mehrere Marker deren Position man kennt und ermittle die aktuelle Kameraposition relativ zum Marker (genauer: Rotation und Translation des Kamerabildes relativ zum Markerbild) - damit ist der aktuelle Standort bekannt. Was meint ihr - Wäre das geeignet für uns?

Ein paar Tests im Garten:
markers.jpg


Hier einige fertige Lösungen: http://www.ignaciomellado.es/projects/Camera-localization-with-visual-markers http://dsynflo.blogspot.de/2014/08/openar-opencv-augmented-reality-program.html

Gruss,
Alexander
 
Hatte das auch schon überlegt und teilweise angefangen.
Mit einem Fischaugen Objektiv genügt eine starre Kamera. Die Marker könnte auch Infrarot Leuchten sein, klein, unauffällig, funktionieren im Dunkeln, brauchen aber Strom.

Probleme die ich sehe:
Erreichbare Genauigkeit: auf 10m Entfernung verursacht 1 Pixel schon einen großen Winkelfehler bei der Erkennung. So ein Marker belegt nur wenige Pixel. Eine HD Kamera erfordert wieder eine sehr große Rechenleistung.

Meine Idee (Software halbwegs fertig, Platine müsste wer machen)
Mit Kamera (ov5?) den Roboter erkennen, nur mit Atmega, also kein OpenCV.
Es wird Pixel für Pixel die Kamera ausgelesen, RGB nach HSV konvertiert und gezielt nach zB Rot gesucht.
Max 1000 roten Punkte (Limitiert durch Speicherplatz) werden gesammelt, der Schwerpunkt dieser Punktwolke soll die ermittelte Position sein.
 
Stromversorgung für jeden Marker möchte ich wenn möglich vermeiden. Wie wäre es wenn wir den Spieß umdrehen - der Roboter bekommt einen sichtbaren Marker, dann hoch oben (z.B. am Dach) eine Kamera (ggf. WLAN), hier wären es mindestens zwei Kameras (2 getrennte Rasenflächen). Sich bewegende Objekte (wie den Roboter) kann man auch gut detektieren. Wer keine gute Position findet, baut sich einen Kamera-Mast.

Prinzip-Demo: http://www.ignaciomellado.es/projects/Initial-MAVwork-release-for-the-Parrot-AR.Drone#video


roboter_garten2.jpg

Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/roboter_garten2.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Dem Roboter muss man ein Blinklicht verpassen, dann hat man auf einem Bild das Licht, am anderen nicht, und kann so Fehlortungen ausschließen.

Wie gesagt, hatte genau das geplant, angefangen, aber nie die Platine fertig gemacht. Liegt alles seit 2 Jahren herum. Der Code sollte für Tests einfach einen roten Farbpunkt erkennen und die Position auf einem LCD ausgeben.
Über Webcam und OpenCV geht es sicher auch, und sicher einiges genauer als meine Billig Lösung.
 
Und für den Nachtmodus blinkt man mit Infrarot und nimmt eine IR-fähige Kamera. In das Kamera-Bild legt man ein Rechteck welches passend die Fläche beschreibt (Transformation). Damit kann man dann Kartesische Koordinaten berechnen falls man möchte.

Eigentlich eine tolle Idee - warum hast Du das bloss nicht weiter verfolgt ;-)


roboter_garten3.jpg

Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/roboter_garten3.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Hatte damals Probleme, bzw keine Idee wie ich das Kamerabild scharf stelle. Hätte irgendwie die Daten zum PC und dort ein Bitmap basteln müssen.
Und dann ging am Rasenmäher durch Wasser die halbe Elektronik defekt und es dauerte seine Zeit bis alles auf die neue Hardware portiert war, da bliebt für die Kamera keine Zeit mehr übrig. Eigentlich wäre es in ca 2 Abenden fertig...

Hier der Code, war für Atmega32 oder größer gedacht, mit Kamera OV7670.

Kamera.zip

Koordinatentransformation ist nicht dabei, es war nur für Tests gedacht ob man Farbpunkte erkennen kann, und wie robust das Programm bei zB 2 Farbpunkten ist.
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/1260/Kamera.zip/
 
Zuletzt bearbeitet von einem Moderator:
Uns lässt die Idee mit Markern einfach nicht los (auch Jürgen ist von der Idee begeistert).

Wie wäre es wenn man die Idee mit den virtuellen DW1000-Randpunkten einfach auf das optische System überträgt.

Also:

1. Überall dort, wo sowieso Häuser, Zäune stehen braucht man sich nicht groß Gedanken machen - die Bumper oder Ultraschall erkennen dies.
2. Überall dort, wo der Roboter flüchten kann (bzw. wo man seine Position feststellen möchte), setzt man alle paar Meter einen passiven Marker (Randpunkt). Zwischen den Markern wird interpoliert. Das Gebiet der Randpunkte darf der Roboter dann nicht verlassen. Über die Räder weiss er auch wo ungefähr die Marker stehen müssen. Falls er dort mal keinen finden sollte (z.B. Marker zu stark verdreckt), geht er in Fehler-Modus.

Flexibler kann der Benutzer die zu mähende Fläche kaum eingrenzen.

marker_2016-02-04.jpg




marker2.jpg

Attachment: https://forum.ardumower.de/data/media/kunena/attachments/905/marker2.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Hm, wenn es nur um eine Alternative zum Draht geht ist das sicher eine Lösung.
Wobei bei kleinen Ecken usw. das ganze seine Grenzen hat. (wie kommt der Mäher nach Hause?)
Eine Karte bekommt man damit dann nicht hin und somit auch kein Systematisches Mähen der Fläche.
Das sieht beim UWB System anders aus, das halte ich für die Interessantere Lösung. :)
 
Brauchen wir denn cm genaue Ortung innerhalb des Mähbereichs? Ich denke nicht. Zum systematischen präzisen Mähen in Bahnen haben wir Gyro, Kompass und Räder wie Du schon schreibst. Das funktioniert gut (sieht man ja beim Indego) und das bekommen wir hin (mein "kleiner Prototyp" geht ja schon).

Es mag stellen geben wo eine absolute Ortung cm genau sein muss, z.B. wenn wir in die Ladestation einparken und halt an den "Arbeits-Rändern". Dort müssen dann Marker stehen. Dort wissen wir dann auch ziemlich genau wo wir sind (die Marker könnten identifiziert werden, z.B. über Anzahl Ringe).

Einen Prototyp könnten wir ja mal bauen - dann kann man hinterher die Lösungen vergleichen ;). Im Vergleich zu einer verlegten Schleife wären "Marker" (virtuell oder visuell) ein großer Fortschritt hinsichtlich Flexibilität.
 
AlexanderG schrieb:
Zum systematischen präzisen Mähen in Bahnen haben wir Gyro, Kompass und Räder wie Du schon schreibst. Das funktioniert gut (sieht man ja beim Indego) und das bekommen wir hin (mein "kleiner Prototyp" geht ja schon).
Ok dann bin ich gespannt. :)
 
Zuletzt bearbeitet von einem Moderator:
Danke Alexander die letzte Grafik ist super. Markus scheint nicht besonders begeistert zu sein. ;)

Wenn man die Optischen-Marken mit U-Schall-Marken kombiniert hätte man ein sehr genaues System das auch zur Ortung taugt.
Das Problem bei U-Schall schaut man sich die Arbeit von Hörmann UNI Kiel an, ist unter anderem die Reichweite und die Ausrichtung der US-Sender. Will man ein einfaches System auf dieser Basis erstellen ist das Outdoor nicht praktikabel. Hat man aber viele dieser Leuchtfeuer und kann diese gezielt aktivieren, lässt sich das Problem der Reichweite kompensieren auch der von Hörmann beschriebene Fehler in den Messungen kann damit unterdrückt werden, da man die Entfernung zu mehreren US-Sendern hat die in der "Nähe" liegen. Je Näher der Mower den Sendern kommt um so genauer wird die Messung, da sich Störungen wie z.B. die Lufttemperatur (Schallgeschwindigkeit) weniger bemerkbar machen würden, was sich natürlich mit einer Temperaturmessung noch weiter kompensieren ließe.
Problematisch ist bei diesem Verfahren auch die Verwaltung der vielen US-Sender. Hier käme jetzt die optische Erkennung ins Spiel. Über die Schachbrett Muster kann der Sensor die US-Sender-Nummer erkennen und aktiviert die für ihn sichtbaren Sender (US-Leuchtfeuer) mit einem z.B. Funk-Impuls oder einem modulierten IR-Impuls was bei geringer Entfernung auch bei Sonnenlicht geht. Aus den daraus resultierenden Messungen kann eine Positionsbestimmung erfolgen. Das System ist dann auch in der Lage eine Karte aufzubauen die mit jedem Durchgang immer genauer werden würde. Zudem kann es jederzeit erweitert oder verändert werden ohne das eine Kabel-Infrastruktur aufgebaut oder verändert werden muss. Zur Energieversorgung sind Solarzellen mit Akku oder einfach nur Akkus machbar, da die Sender sich die meiste Zeit im Powerdown befinden und nur in Abständen aufwachen um zu hören ob sie gerade angefragt werden (Eine Technik die bei bidirektionalen Sensoren üblich ist). Im Falle von IR wäre es sogar möglich nur dann "aufzuwachen" wenn der Impuls auch gesehen wird. Der U-Schall selbst verbraucht wenig Energie. Hier ist eher die Impuls-Spannung interessant da sich der abgegebene Schalldruck proportional verhält.
Vereinfacht ausgedrückt man baut einen Zaun der nur aus kleinen Pfählen besteht die wiederum ein einzelnes Leuchtfeuer darstellen. Als zusätzliche Maßnahme bestünde auch noch die Möglichkeit diese als Laser oder IR Barken zu verwenden. Mit einem zusätzlichen Detektor on TOP auf dem Mower wäre die Zuverlässigkeit annähernd der einer Perimeterschleife vorausgesetzt die Pfähle stehen nicht weiter wie 4m auseinander. Wobei die Abstände der US-Leuchtfeuer (Pfähle) ohnehin auf z.B. 2m definiert sein müssten, um Berechnungen der relativen Position anstellen zu können. Ob das so praktikabel ist ...... keine Ahnung. Der Hardware-Aufwand würde sich zumindest in einem überschaubaren Rahmen bewegen. Probleme wie das blenden der Kamera durch direkte Sonne etc. sehe ich da auf jeden Fall auch. Ich stelle das einfach mal zur Diskussion.
 
Mein Vorschlag: wenn schon Funktechnik bzw. aktive Marker im Einsatz, dann gleich 3x DWM1000 Module - fertig. Dann spart man sich den ganzen Rest ;) (die Kosten für die CE-Abnahme müssten auf die Kits umgelegt werden, z.B. zusätzliche 50 EUR pro Kit). Die funktionieren genauso wie Ultraschall, nur besser : das Modul wartet bis es ein Nachricht empfängt (z.B. Ranging-Aufforderung), erst dann schickt es eine Nachricht zurück (Ranging-Antwort). Der Empfänger empfängt dann Nachricht und Laufzeit.

Wenn man denn überhaupt aktive Marker haben möchte - Bei einem optischen Systemen käme man mit passiven Markern aus.

Ansonsten kann man auch optisch über Kamera sehr genau die Position der Kamera bestimmen. Das ist zwar etwas mehr 3D-Mathematik , aber der Aufwand wird mit guten Ergebnissen belohnt (und es gibt fertige Libraries wie OpenCV die einem dabei helfen).

Anschaulich ausgedrückt läuft der Algorithmus so ab:
1. Die Geometrie (Größe etc.) eines Objektes ist bekannt (z.B. unser Marker).
2. Es wird ein echtes Kamera-Bild der Szene gemacht wo das bekannte Objekt enthalten ist.
3. Im echten Kamera-Bild wird das Objekt gesucht und dessen markante Punkte werden bestimmt.
4. Eine virtuelle Kamera wird solange um die Geometrie des bekannten Objektes bewegt (d.h. CPU sucht Lösung) bis das Bild aus der virtuellen Kamera ziemlich genau dem der echten Kamera enstpricht (hierbei betrachtet man natürlich nur die Objekt-Punkte von echter und virtueller Kamera, den Rest kann man ja nicht vergleichen). Also ist die Kamera-Position relativ zum Objekt bestimmt worden.

Beispiel: anhand eines Bildes von zwei versetzten Markern wird die eigene Position auf ein paar cm genau bestimmt (im Umkreis bis ca 2m). Mit 3D-Geometrie und Markern wäre so einiges machbar (hier noch ein weiteres schönes Beispiel (Video weiter unten auf der Seite) ).

Es bleibt die Frage wie praktikabel optische Systeme überhaupt sind bei unseren erschwerten Bedingungen. Vielleicht einfach mal ausprobieren.
 
Hallo,
muß jetzt auch mal einen unfachmännischen Beitrag leisten!
Habt Ihr Frau und/oder Kind(er)? -Vorweg, ich liebe meine Frau, Kind und Hund(Reihenfolge ist wichtig)
Stelle mir gerade vor, wie meine Frau wiedermal die Arbeitswut packt und Sie den Garten "verschönert". Dabei wird nicht nur kurzerhand mal das Blumenbeet erweitert - nein, es werden auch Stöcker(Markierungen) aus dem Boden gezogen und nach dem Harken wieder ein Stückchen weiter in den Boden gesteckt. Und ich wundere mich, warum der geplante Holzschuppen so komische Ausmaße angenommen hat. Oder ich suche mir nen Wolf nach einer Markierung im Garten, die meine Frau kurzerhand mit ihren Gartenhandschuhen abgedeckt hat -zum Auslüften der Handschuhe, wie sie sagt. Ihr glaubt nicht wozu Frauen, fähig sein können (anwesende weibliche Leser ausgenommen). Oder der Hund, der grundsätzlich beim Stöckchenwerfen im Garten irgendwas anschleppt - nur nicht den geworfenen Stock. Kinder nutzen vorhandene Stöcker auch mal ganz gerne als Tormarkierungen.
Daher favorisiere ich die aktiven Marker(DWM1000-Module).Aktive Marker an je einem - im Boden ebenerdig eingelassenen Betonklotz- herausnehmbaren Wäschepfahl befestigen(absolute Position und im Winter herausnehmnbar zum Überwintern).Frau kann Pfahl rausziehen-Muss ihn aber genau wieder an die Stelle zurücksetzen. Wenn nicht, dann erfolgt Fehlermeldung im Ardumower, da das Signal fehlt. Hund kriegt den Pfahl nicht gezogen(hoffe ich).
Zu guter letzt: passive Marker am Rasen-Blumenbeetrand:"Wie sieht das denn aus, total unästhetisch" höre ich die Stimme meine Frau.
In diesem Sinne-immer schön munter bleiben!
Marco
 
AlexanderG schrieb:
Wenn man denn überhaupt aktive Marker haben möchte - Bei einem optischen Systemen käme man mit passiven Markern aus.

Um aktive Marker kommt man nicht herum, das System soll auch am Abend (vor allem im Herbst), Nacht und Schlechtwetter funktionieren.

Die Schleife wird bei Gartenarbeiten genauso schnell durchtrennt wie ein Marker verschwindet, das macht also keinen Unterschied. Nur erkennt man wenigstens leicht das die Schleife defekt ist.

Optische Systeme am Roboter werden leicht verschmutzen, nach ein paar Tagen Betrieb hat der Roboter eine dicke Staub und Schmutzschicht.
Daher wenn eine Kamera auf einem Mast / Hausdach die den Garten überblickt, und aktive Marker am Roboter um diesen zu erkennen.

Wenn wer mit Ultraschall testen will, habe günstig 3 Kegel abzugeben die nach den Angaben von Hörmann angefertig wurden.

Da gefallen mir die DW1000 noch am Besten, obwohl man mit diesen eine Menge Sender braucht und trotzdem Lücken bleiben werden.
 
Zuletzt bearbeitet von einem Moderator:
Schöne Beiträge

@Marco
am beten finde ich die Störfaktoren Frau und Hund :lol: das sind natürlich Größen die sich nicht so einfach weg diskutieren lassen.

Jedes System hat seine Vor- und Nachteile, dass steht fest. Eine perfekte Lösung die alles abdeckt oder jedes Detailproblem löst wird es nicht geben. Selbst der Mensch mit seiner sehr wirkungsvollen Sensorik, stößt z.B. bei Dunkelheit an seine Grenzen (ist mir gerade heute Nacht als ich um 4:00 Morgens aus dem Labor bin wieder schmerzhaft bewusst geworden). Aus diesem Grund ist es auch in der Natur die Kombination der Methoden die es macht.

@Werner
Ein System wie von der UNI Kiel kommt für Outdoor nicht infrage. Daher Danke für das Angebot der Kegel. :)

@Alexander
Ich wollte mit meinem Beitrag nur Raum für Diskussion schaffen. Die optische Methode hat ganz klar ihre Vorteile. Wir haben ja schon darüber gesprochen. Aber eben auch Ihre Nachteile. Dennoch bin ich der Meinung, dass so ein System durchaus Zukunft hat. Ein Aspekt ist meiner Meinung nach der wichtigste. Es muss auch für Laien handhabbar und auf den unterschiedlichen Geländen reproduzierbar sein. Das sind Gedanken die man im Vorfeld diskutieren und berücksichtigen sollte. Um eine Entwicklung schon von Anfang an in die richtige Richtung zu treiben. Das die Mathematik und Maschinen das mittlerweile hergeben ist klar, dass haben wir uns ja schon angeschaut.

Das Detailproblem auch Nachts arbeiten zu können ist absolut ernst zunehmen. Hier hatten wir ja schon über IR-Beleuchtung diskutiert. Auch das Blenden der Kamera ließe sich mit einer entsprechenden Kameraeinstellung (Neigung zum Boden) einschränken. Weiterhin gibt es auch die Möglichkeit WDR Kameras einzusetzen diese rechnen die Störungen schon selbst raus. Allerdings haben die auch Ihren Preis. Welche Sicherheiten kann man Einbauen damit das Blumenbeet der Frau nicht dem Mower zum Opfer fällt? Erhöht man mit der zusätzlichen Sicherheit die die Störungsquote etc. Fragen die noch eine Antwort brauchen.

Die CE für das DW1000 ist sicher nicht ein unlösbares Problem aber zumindest in Deutschland etwas aufwendiger. Hier stellt sich die Frage müssen wir uns mit sowas rumschlagen? Ist eigentlich Sache des Herstellers. Nach dem was ich mittlerweile alles gelesen habe, bin ich auch der Meinung, dass die Werte stimmig sind. Die DW1000 sind so breitbandig, dass ein schmalbandiger Empfänger die Abstrahlung als rauschen wahrnimmt. Also Störungen im Funk nicht zu erwarten sind. Eine EU Regelung scheint es in dieser Hinsicht bereits zu geben. Bei uns an der UNI in Karlsruhe am Institut für Nachrichtentechnik wird auch mit dieser Technik geforscht.
 
Zuletzt bearbeitet von einem Moderator:
Hallo Zusammen,

Ihr seid bestimmt schon weiter als ich... dennoch möchte ich hier auch was posten, evtl kann man hier auch Ideen holen.

Ich habe zu Hause einen Saugroboter der auch mit X-Sensoren und Kamera (Deckenerfassung) ausgestatet ist.

Und so wird zuverlässig eine Karte erstellt (die man auch einsehen kann).
Und die Funktioniert wirklich gut. Der Bot fährt alles ab. Und die Stellen die geblieben sind werden zuferlässig auch angefahren und gereinigt.

Es ist zwar ein Link in ein anderes Forum hoffe aber dennoch das ich es posten darf:
http://www.roboter-forum.com/showthread.php?10009-LG-Hombot-3-0-WLAN-Steuerung-per-Weboberfl%E4che
Gruß Nick
 
Hey Nick,

das mit der Decke geht auch Outdoor, da nimmt man stattdessen einfach den Himmel ;)

Spaß beiseite - es gibt ja schon ein paar Experimente die erfolgreich durchgeführt wurden:

1) Schleife zur Ortung: http://www.ardumower.de/index.php/de/forum/software/827-ardumower-software-sunray
2) UWB zur Ortung: http://www.ardumower.de/index.php/d...lisierung-mit-ultra-breitband-technologie-uwb
3) Lidar zur Ortung: http://www.ardumower.de/index.php/de/forum/navigation-odmetrie-gps/777-lidar
Gruss,
Alexander
 
Das Thema lässt einen einfach nicht los. Hat schon mal jemand einen Versuch mit der Pixy Cam gestartet? Die ist ja in der Lage Farb-Codes zu erkennen und liefert auch alle nötigen Daten. Indoor funktioniert das bei mir perfekt, nur Outdoor habe ich noch keine Tests gemacht. Hat da jemand schon Erfahrungswerte?

Gruß
Jürgen
 
Oben