Navigation allgemein

Warum Navigation? Wenn man alle Teile eines Gartens gleichmäßig mähen möchte, muss man wissen wo man ist bzw. wo man noch nicht häufig war...

Wie navigiert eigentlich ein Mensch? Eigentlich arbeiten alle herkömmlichen/ technischen Navigationssysteme völlig unmenschlich - Kein Mensch merkt sich die Route von Lidle zu Aral als GPS-Koordinaten!

Wenn ein Mensch eine neue Umgebung und deren Orte kennenlernt, macht er es doch ungefährt so: "nach Lidle weiter rechts über den Parkplatz, dort links die Straße abbiegen bis gegenüber zu Aral"
D.h. wir lernen wie die Orte zusammenhängen durch optische "Muster" ("...sieht so aus wie ein..."). Kommen neue Orte in dieser Umgebung hinzu, verknüpfen wir einfach diese Muster. Zu jedem Muster merken wir uns in welche Richtung es mit einem anderen Muster verknüpft ist.

Zum Beispiel:
Muster "Lidle" nordwestlich mit Muster "Parkplatz"
Muster "Lidle" nördlich mit Muster "Sparkassenfiliale"

Genau das könnte auch ein Mäh-Roboter. Er sieht die Umgebung (mit einer Webcam) und generiert laufend mathematische Muster/Erkennungsmerkmale eines Bildes (z.B. über " Feature Points "). Diese Muster könnte er verknüpfen und so eine Art Karte generieren (genauer: einen Graph ).

Das ganze könnte man "Vision based navigation with feature points" nennen. Es bräuchte auch etwas Rechenpower. Gesehen habe ich so etwas noch nicht, aber ich könnte mir vorstellen, dass es funktioniert. Nicht immer 100% perfekt, aber zumindest so gut wie bei einem Menschen :)

Evtl. werde ich so einen Prototypen mal mit Roborealm entwickeln (Computer Vision zum Zusammenklicken).
 
Roger schrieb:
Das ist mal ein interessanter und anspruchsvoller Ansatz!

Zu dem Thema "Navigation mit Graphen" gibt es einige lesenswerte Arbeiten und Dissertationen. Auffällige Gemeinsamkeit: 3D-Laserscanner.

Ich nenne mal beispielhaft ...

Viel zu kompliziert gedacht ;-) Mein Verfahren ist eher fliegen wie eine Biene! Völlig planlos aber mit Erkennung von Bekanntem. Wenn bekanntes gefunden wird, weiß die Biene in welche Richtung (ungefähr) der nächste bekannte Ort liegt, der auf der Zielroute liegt. Es muss gar nicht die exakte Route "abgeflogen" werden, nur ungefähr.

Die Erkennung der Gegenstände/Ort funktioniert z.B. über SIFT (scale-invariant feature transformation) bzw. schnellere Verfahren. Das funktioniert mit einer einfachen Webcam.

Im "Explorer"-Modus merken wir uns für jeden neuen Gegenstand/Ort in welche Richtung er mit dem vorigen verknüpft ist. Dadurch entsteht dann einen "Bienenkarte", sie gibt für jeden erkannten Ort an in welche Richtung andere bekannte Orte liegen. Evtl. auch noch mit einen Zeitstempel zu diesem (entspricht der ungefähren Entfernung).

Also nichts wo man exakte Messungen oder dergleichen benötigt. Es reicht das Erkennen von Orten. Da gibt es inzwischen gute optische Verfahren welche mit einer einfachen Webcam funktionieren...

Nachtrag: natürlich muss man "ferne" Objekte von "nahen" unterscheiden können (sonst weiss man nicht eindeutig wo man ist wenn sich z.B. "ferne" mit "nahen" Objekten in einem Bild vermischen). Dies könnte man z.B. beim SIFT-Verfahren machen, indem man solche Objekte als "fern" einstuft, dessen Feature-Points bei leichten Drehbewegungen des Robots stärkere Bewegungen aufweisen als andere Feature-Points im Bild. (So ähnlich wie ein Vogel mit seitlichen Augen nur die Entfernung zu Objekten einschätzen kann wenn er den Kopf leicht bewegt)
 
Zuletzt bearbeitet von einem Moderator:
Oben