Software zu aktuellen Standortsbestimmung gesucht.

OP #2783435
Lesenswert?

Ich muss im Zusammenhang einer Projektarbeit über einen 
Staubsaugrobotter, die Spur aufzeichnen, in dem der Staubsauger den zu 
reinigenden Raum abarbeitet.
D.h. es soll mit einer Kamera aufgezeichnet werden wie der Raum vom 
Staubsaugrobotter abgearbeitet worden ist. Gibt es dazu ein Programm 
welches den Aktuellen Standpunkt es Roboters erkennt und die Spur 
aufzeichnet?
Gast #2783440
Lesenswert?

Ein komplett fertiges Programm kenn ich so nicht und für mögliche 
Software Lösungen fehlen noch eine Menge an Informationen:

- Kann auf den Roboter eine Markierung befestigt werden?
- Wie groß ist die Fläche, die überwacht wird und wie genau soll die 
Position bestimmt werden?
- Wo ist die Kamera befestigt?
- Wie schnell und wie lange bewegt sich der Roboter?
- und wahrscheinlich noch vieles mehr, wenn wir mehr über die Situation 
Wissen.
OP #2783464
Lesenswert?

- Kann auf den Roboter eine Markierung befestigt werden?
  Ja am Roboter kann eine Makierung befestigt werden

- Wie groß ist die Fläche, die überwacht wird und wie genau soll die
Position bestimmt werden?
Die Fläche ist 4x4 m und die Genauigkeit liegt bei ca.+/- 20 cm

- Wo ist die Kamera befestigt?
  Die Kamera ist an der Decke befestigt (senkrecht auf die Fläche)

- Wie schnell und wie lange bewegt sich der Roboter?
Der Roboter bewegt sich mit 0,3 m/s vorwärts und max. 45 min.
Persönliche Seite #2783493
Lesenswert?

Andreas S. schrieb:
> Das die c't so etwas getestet hat brigt mich nicht weiter, den genau so,
> etwas soll ich selber erstellen.

Doch, das kann Dich weiterbringen, indem Du Dir ansiehst, wie die c't 
das getestet hat -- ist ja nicht auszuschließen, daß die ihre Methodik 
beschrieben haben.

> Zu der Software VacuCleanVisiLog 2.4

Das dürfte ein Trollposting gewesen sein, wo Dich jemand verarschen 
wollte.
Gast #2783499
Lesenswert?

Wenn du den Raum einigermaßen kontrollieren kannst, würde ich das mit 
openCV machen.

Allerdings ist das kein Programm, sondern nur eine Library.

Die simple Methode wäre:

- Auf dem Roboter ist oben eine orangfarbene Platte / orange LED 
befestigt. Ansonsten gibt es im Raum nichts Orangefarbenes.
- Die Kamera wird mit einem Computer verbunden, auf dem das 
Trackingprogram läuft. OpenCV hat direkt die Unterstützung für Webcams 
eingebaut. Ich würde hierzu Linux nehmen, aber Windwos sollte genauso 
gut gehen.
- Das Programm selbst wandelt das Bild in HSV um und filtert alle Punkte 
raus, die vom Hue her passen und ein gewisses Minimum an Saturation und 
Value erfüllen.
- Je nach Rauschen lässt man noch ein morphologisches Öffnen / Schließen 
drüber laufen
- Für alle übrigbleibenden Flecken werden die Boundig Circles berechnet, 
es sollte nur ein Kreis übrigbleiben, ansonsten nimmt man den größten 
Kreis.
- Jetzt müssen nur noch die Pixel Koordinaten in Raum Koordinaten 
umgewandelt werden. bei 5% Genauigkeit sollte hier ein einfach 
Pythagoras reichen.

Das ganze klingt aufwendig, aber ist effektiv ein ~30 zeiliges C 
Programm. Ich hab sowas ähnliches schon mal als "Follow Me" für einen 
kleinen Flugroboter gebaut, ich könnte nochmal nach den Code suchen.
Gast #2784778
Lesenswert?

Ohne irgendwelche C Kenntnisse wird dass in der Tat etwas schwer.

Ich hab mal ein Beispielprogramm angehängt. Das Programm sucht nach der 
größten zusammenhängenden Fläche in der vorher festgelegten Farbe und 
gibt die Koordinaten auf der Kommandozeile aus. Von da müsste man dann 
das Ganze noch in die Raumkoordinaten umwandeln.

Das Programm ist mit allem drumherum jetzt leider doch 101 Zeilen lang 
geworden.
Angehängte Dateien:
Gast #2784779
Lesenswert?

Sharping schrieb:
> Scheinbar kann Andreas aber garnicht programmieren!?

Dann wird es schwierig bis unmöglich. Mir wäre nicht bekannt, dass es 
irgendwelche fertigen Lösungen gibt, um eine Position in einem Raum 
festzustellen. Die Anforderungen dazu sind einfach zu verschieden.

Ich frage mich gerade, ob da wohl mal jemand ein Startup gründen 
sollte...
Gast #2784786
Lesenswert?

Lukas K. schrieb:
> Einfacher wird es, wenn man auf dem Roboter eine IR-Led befestigt und
> vor die Kamera einen nur für IR durchlässigen Filter pappt. Dann sollte
> sich die Positionsbestimmung auf 'Maximum finden' reduzieren lassen.

Oder per Wiimote tracken, die nimmt einen dann gleich die ganze 
Bildverarbeitung ab.
Gast #2785240
Lesenswert?

Kennst du denn irgendwelche Programmiersprachen?
Und falls nicht, wie willst du die Positionsdaten nacher 
weiterverarbeiten?
Bei 1h Aufzeichnung mit 10 fps sind das immerhin 36 000 Koordinaten.
Gast #2785804
Lesenswert?

Mein Roomba verschwindet auch mal unter Sessel und Liege - da ist mit 
optical tracking nix zu machen. Da wäre höchstens ein Abgleich zwischen 
optical tracking UND acoustic tracking (gepulster Ultraschallsender auf 
dem Bot und fixe US-Empfänger in den Raumecken) eine einigermaßen 
sichere Methode.

Blackbird

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren