camera-based lane mowing (cm-precise)

Auch mit dem VSLAM (also kamera-basierter 3D-Ortung) geht es weiter :) (und mit Hilfe von Codex/Claude kann man solche Sachen nun auch relativ schnell bauen und testen...) -
Folgende Problematik entsteht bei VSLAM: mit direktem Sonnenlicht wurde z.B. mit den Kamera-Bildern antrainiert ("VSLAM Mapping")- Bei Bewölkung soll nun gegen diese trainierten Bilder lokalisiert werden ("VSLAM Lokalisierung").

vslam1.jpeg


Erstmalig ist es mir gelungen dies zu bewerkstelligen (Cross Daytime-/Cross Season-VSLAM mit HFNet-SLAM , realtime - getestet mit einer einzelnen Fischaugenkamera ):


Einziges Problem: es läuft noch auf NVidia/CUDA :)- Aktuell lasse ich mir von der KI erklären wie alles funktioniert und wie wir z.B. mit einem alternativem "Feature-Netzwerk" (z.B. R2D2, MLD2, xfeat) die Ansätze auf einem OrangePI ans Laufen bringen könnten... (z.B. VINS-MLD2, xfeatSLAM )

Feature Netzwerke Benchmark (Quelle: Why Not Replace? Sustaining Long-Term Visual Localization via Handcrafted-Learned Feature Collaboration on CPU)

1780579923320.png
 
Zuletzt bearbeitet:
Gute Neuigkeiten: ich konnte die Kamera-Lokalisierungs-Konzepte inzwischen umsetzen, d.h. Kamera-basierte cm-genaue (Re-)Lokalisierung über Tages- und Jahreszeiten hinweg (wir nennen es mal "LiveTime SLAM") auf einem OrangePI. GPS kann optional verwendet werden (RTK wird hiermit nicht mehr gebraucht für cm-genaue Lokalisierung). Damit kann man dann einen Roboter bauen der auch unter Bäumen, neben Wänden, zwischen Häuserschluchten, Indoor etc. fahren kann (wo kein RTK möglich ist).
Aktuell läuft die Software im Simulator (Browser simuliert 3D-Umgebung mit Stereo-Kamera und OrangePI-Lokalisierungs-Netze etc. werden mit WebGPU ausgeführt - ein Simulator hat den großen Vorteil dass in kurzer Zeit sehr viel automatisiert Code damit getestet werden kann). Es folgen jetzt noch Navigations-Code und dann natürlich der Lauf am echten Roboter... :)

Screenshot 2026-10-11 at 10.43.47.png
Screenshot 2026-10-11 at 11.14.36.pngScreenshot 2026-10-11 at 22.00.23.png
 
Zuletzt bearbeitet:
Ich habe noch einen Alfred, den ich als Versuchskaninchen einsetzen würde! Oder noch meinen zweiten Huskvarna :)
Wann kann ichs testen und was benötige ich? Einen OrangePi habe ich noch rumliegen ;)
 
Zuletzt bearbeitet:
ein Simulator hat den großen Vorteil dass in kurzer Zeit sehr viel automatisiert Code damit getestet werden kann
extrem cool, was du da machst. :love: Das hat das Potential mein nächstes Projekt zu werden....

Kann der Simulator auch Verschmutzungsgrade der Linse simulieren? Oder ist das ggf. gar nicht erforderlich, weil der Code solche Dinge rausrechnet?
Grüße
Jürgen
 
I'm just as eager to test it; for me, this is the major evolution the project needs so that our robots can operate in all conditions.
 
extrem cool, was du da machst. :love: Das hat das Potential mein nächstes Projekt zu werden....

Kann der Simulator auch Verschmutzungsgrade der Linse simulieren? Oder ist das ggf. gar nicht erforderlich, weil der Code solche Dinge rausrechnet?
Grüße
Jürgen
Ja, richtig. Der Code bewertet ob Messungen (Markante Punkte in Bildern = Landmarks) plausibel sind (eine Kamera-Position ergeben) und verwirft ungültige Messungen. Wenn nicht genug Landmarks gefunden werden, müssen bereits gespeicherte Landmarks gesucht werden.
Das Prinzip ist grob so:
1. Markante Punkte ("Landmarks") werden im Bild gesucht und dieselben Punkte werden weiterverfolgt in den Kamerabildern. Landmarks die aus dem Bild verschwinden werden durch neue aufgefüllt. Die Landmarks sieht man in meinem vorigen Beitrag im ersten Screenshot und auch in den Kamerabildern.
2. Aus den Punktbewegungen wird die Kamera-Lage und Bewegung rekonstruiert.
3. Falls alle Landmarks aus dem Bild verschwinden müssen die Landmarks aus der Datenbank wiedergefunden werden (damit die Position wieder bekannt ist und die Landmarks weiterverfolgt werden können). Hierbei muss die Wiedererkennung der Landmarks auch in der Lage sein die Tageszeiten und Jahreszeiten zwischen aktuellen Kamera-Daten und Datenbankdaten zu tolerieren. Gerade dieser Punkt war bisher ungelöst und ist jetzt gelöst. Der Roboter dreht und fährt dafür etwas umher bei Verlust aller aktueller Landmarks und sucht bereits gespeicherte Landmarks.


Anhang anzeigen slam-gesamt-mit-ton-7MB.mp4
 
Zuletzt bearbeitet:
Danke für die Erläuterungen. Das hat ja inzwischen einen erstaunlichen Reifegrad. Ich bin sehr gespannt auf die ersten Outdoor-Ergebnisse.
 
Ehrlich gesagt warte ich genau darauf! Gibt es dafür einen Leitfaden oder eine Anleitung, wie ich das alles umsetzen kann? also welche hardware (Pi 4 oder 4, mit oder ohne AI Hat, welche Kamera/Kameras gehen dafür), welche Software und wie richte ich das alles ein? wie kann das in das bestehende system integriert werden - weiter mit sunray bzw cassandra oder muss ich dafür eine komplett neue Software nutzen? d.h. eine Anleitung oder vllt einen Wiki eintrag würde ich mir wünschen. Mit anderen Worten: Ich möchte das gern ausprobieren :)
 
Zuletzt bearbeitet:
Ich werde noch ein paar Wochen benötigen bis ich alles online stellen kann - aktuell ist es ein Prototyp wo noch Navigations-Code fehlt. Soviel kann man sagen: es wird auf folgenden Komponenten laufen (mit diesen arbeiten wir seit einigen Jahren: https://smartmow.de/collections/smartmow-diy-komponenten):
- OrangePi5Pro (Rockchip RK3588S mit 4 GB RAM - die 3 eingebauten NPU's werden alle benötigt) - z.B. im SMARTMOW-PCB2.0 mit zugehörigen Motortreibern
- es wird eine neue Firmware benötigt (das Roboter-Verhalten ist abgestimmt auf Kamera-basiertes Mähen etc.)
- es wird ein neues User Interface geben weil die Bedienung sehr anders ist wie bei RTK - man legt keine festen Ränder mehr fest (die sieht die Kamera automatisch), es gibt nur noch "no-go-zones" wo man erkannte Bereiche absperren kann etc.
 
Zuletzt bearbeitet:
aus preisgründen drängt sich mir die Frage auf: hältst du es für realistisch, dass das auf einem raspberry pi 5 (bereits vorhanden) ggf mit ai hat laufen kann oder muss ich mir einen supergünstigen orange pi 5 4gb für aktuell 204€ kaufen? Mir ist natürlich bewusst, dass ich mit meinem Alfred-Ardumower-Hybrid-Clone etwas exotisch bin, aber per se nicht der einzige mit einem Raspberry Pi als Plattform.
 
Realistisch ist es, allerdings kann ich es erst sagen wenn konkret getestet (ich habe einen Hailo-8L zum Testen, mit Hilfe von KI-Coding bekommen wir das vermutlich portiert - ich hatte damals auch mit Hailo und dem Pi5 "gespielt", beide fand ich aber nicht so ausgereift wie den RK3588S - duzende Pi5 sind uns einfach so kaputt gegangen und wir haben mit dem OrangePi5 dann eine gute Alternative gefunden). Falls die Daten stimmen sind die AI HAT's genauso leistungsstark und nutzen den Pi-Speicher mit etc.

Bildschirmfoto 2026-10-18 um 20.20.07.png
 
Zuletzt bearbeitet:
Eine wichtige Einschränkung sollte man wohl noch erwähnen: der Kamera-basierte SLAM ist nicht in der Lage ohne Gegenstände in der nahen Umgebung cm-genau zu lokalisieren, d.h. im Umkreis bis ca. 20m benötigt das System "Landmarks" (so wie ein Mensch in der Nähe Referenzpunkte braucht um präzise Distanzen abzuschätzen). Bei einem grünen Fussballplatz (100x70m) oder noch größeren Freiflächen wird man sehr wahrscheinlich nach wie vor RTK benötigen und die zu entwickelnde Firmware wird daher RTK zusätzlich zur Kamera unterstützen für solche Fälle.
 
Zuletzt bearbeitet:
Eine weitere Herausforderung ist gelöst: die Software kann jetzt auch mit einer einzigen Standard-RGB-Kamera arbeiten (anstatt mit einer Stereo-Kamera). Damit kann man nun praktisch jede beliebige Kamera einsetzen um cm-genau zu lokalisieren. Im Kamera-Simulator läuft alles, Tests mit der echten Kamera müssen noch folgen. Gelöst wurde es mit einem neuronalen Netz ("Depth Anything 3") welches mit aufeinanderfolgenden Bildern die Tiefe der Punkte schätzt (so wie der Vergleich zwischen linker und rechter Kamera bei einem Stereo-System die Tiefe der Punkte schätzt). D.h. die Kamera muss in Bewegung sein um Tiefe schätzen zu können, aber das ist ja bei einem Roboter kein Problem :) ...

Bildschirmfoto 2026-10-23 um 20.42.39.png
 
Zuletzt bearbeitet:
Sehr schön! Inzwischen habe ich mir auch einen Orange Pi 5 mit 8GB geholt. Eine Kamera habe ich noch nicht, welche Kamera sollte ich kaufen? Ich habe keine Ahnung, worauf ich da achten muss…
 
Oben