Kamera Navigation

  • Hallo zusammen,


    hat jemand schon mal ausprobiert, bzw. einen Blog / Tutorial gelesen, ob man die Raspberry Pi Kamera zur Kamera Navigation nutzen kann? Ich würde mir etwas ähnliches vorstellen wie manche Staubsauger Roboter zur Navigation nutzen (Kamera senkrecht nach oben, zur Orientierung im Raum). Ich würde das gern per Python realisieren.


    Ich bin gerade erst dabei, mich in Kamera Navigation einzulesen, und wäre für den Anfang über ein paar Links / Quellen zu Tutorials / Beschreibungen der Technik etc. recht glücklich ;)

    LG
    Michi

  • Gehen tut das. Mit ein paar Links ist das aber nicht getan. Das Thema heißt SLAM (Self Lokalisation and Mapping) und auch wenn es a einiges an Code gibt - Plug und Play ist das nicht. Und mit Python ist zumindest für die Kernalgorithmen auch nicht so viel zu machen, dazu ist das zu langsam und speicherineffizient.


    Ich würde erstmal kleiner anfangen, und den Roboter einfach nur kontrolliert fahren. Schon das ist eine Herausforderung.

  • wie manche Staubsauger Roboter zur Navigation nutzen (Kamera senkrecht nach oben, zur Orientierung im Raum)

    Auf die schnelle fällt mir keiner ein, der diese Methode benutzt, weil diese auch nicht gerade praktikabel ist, wenn ich mir gerade so meine komplett weiße Decke ansehe. Beim Dyson 360 Eye mag es so aussehen, doch die Kamera schaut nicht an die Decke, sondern ist so gekrümmt, dass ein 360°-Bild der Umgebung geliefert wird.


    Hier ist ein Paper aus 2005, das dein Vorhaben beschreibt: https://ieeexplore.ieee.org/document/1545443

    Deren Decke hat viele Anhaltspunkte, wie mehrere Lampen und Kacheln.

    Kelvin

  • Hallo,


    @ __deets__: Danke für die Info. SLAM habe ich auch schon mehrmals gelesen und hatte auch hier einen entsprechenden anderen Thread gestartet. Ich hätte natürlich auch nichts gegen ein entsprechendes Modul, welches in Java / C++ oÄ geschrieben ist, solange ich das dann mit Python auswerten kann. Der restliche Code vom Robot (der inzwischen schon allein rumfährt und Hindernissen ausweicht) ist in Python, deswegen diese Limitierung (mal davon abgesehen, dass ich in Python leidlich programmieren kann, in maschinennäheren Sprachen bin ich nicht wirklich versiert). Hast Du eine Quelle zu entsprechendem Code?


    @ Kelvin: Danke für deine Nachricht. Laut dieser Website gibt es quasi drei Typen von Staubsauger Robotern, die entweder random herumfahren oder eben navigieren, entweder über entsprechende LiDAR Aufsätze oder eben per Kamera-Navigation. So etwas hätte ich mir vorgestellt. Und das scheint ja im Moment auch Stand der Technik zu sein, wenn ich mir das so ansehe. Deswegen hätte ich mir vorstellen können, dass da eine entsprechende Implementierung für den RPi evtl. schon vorhanden ist.
    Danke für das Paper, ich lese es mir mal durch.

    "Saugroboter mit Kamera-Navigation haben oben auf dem Gehäuse eine Kamera installiert. Die Kamera ist dabei nach oben ausgerichtet und kann nichts anderes als Deine Decke erfassen. Doch keine Sorge, es werden keine optischen Aufnahmen gemacht. Sprich: Der smarte Saugroboter erfasst den Grundriss Deiner Wohnung durch das Scannen Deiner Decke und navigiert sich dann systematisch durch Deine Räume."
    https://www.tink.de/blog/welch…besser-laser-oder-kamera/


    oder: https://www.smarthomeassistent…er-kamera-was-ist-besser/


    LG

  • Ich habe dazu keine anderen Links, als beim letzten Mal, als wir diskutiert haben.

  • Ah okay. Ich dachte, Du meintest Kamera-Navigation und nicht allgemein SLAM. Da habe ich die Links von Dir noch und bin fleißig am lesen (sofern das Arbeit etc. zulässt).


    Dann schau ich mal, vielleicht kennt noch jemand andere Projekte, bei denen speziell Kamera Navigation mit RPi benutzt wurde (erstmal unabhängig von der Sprache, auch wenn Python natürlich cool wäre weil verständlicher für mich).

  • Das ist nicht fundamental anders. Die benutzen auch nur einen SLAM, gepaart mit einer Kamera-basierten Landmarken Erkennung via zb SWIFT oder SURF. Da wirst du schon ein bisschen selbst Hand anlegen müssen.