RoπLawnMow

Daran habe ich auch schon gedacht. Nur fehlt dann die z-Komponente. Wenn das Gelände eben ist, dann kann das funktionieren. Ist bei mir aber nicht so, daher habe ich das noch nicht probiert.
Ja Unebenheiten / Gefälle könntest Du ggf. mit einer Roll und Pitch korrektur ausgleichen. Schau dir mal diese tutorials an, falls Du sie noch nicht kennst.
Da ich selber mal Trainer für Elektrotechnik war, gefällt mir sehr gut seine Didaktische Aufbereitung
 
Ich habe gestern noch einen Fehler in meiner imu-Task gefunden. Meine Berechnung des Heading hatte einen Fehler in der Skalierung. Den code hatte ich zum Teil mbi-Sensor“ ist kein BNO085.
In den letzten Tagen habe ich meinen BNO085 in Betrieb genommen, aber ersteinmal nur indoor auf einem meiner kleinen TestModelle.
ich vewende Im Moment einen PiZero 2W, die adafruit_bno08x Library und natürlich python dann als Sprache. Ich bin über die Stabilität schon ziehmlich begeistert. Mit meinem Kompass-Modul bekam ich in meinem Zimmer immer eine gute Ost und West Ausrichtung, mit dem BNO klappen alle Himmelsrichtungen sehr gut. Auch die Kalibrierung ist super. Es gibt diese 4 Stufen, und durch "Stillstand" erreicht er schon bei mir die Stufe 2
Kalibriert-StufeBedeutungFür Gyro/Yaw im G-Modus wichtig?
0Nicht kalibriert❌ unsauber, driftet schnell
1Teilweise⚠️ besser als nix
2Gut✅ ist völlig ok
3Vollständig✅ Ideal

Ich habe ihn heute auf meine MINI PiMowBot befestigt und bei Bewegung erreicht er auch Stufe 3, und er kalibriert sich nach, soll heißen fällt er aus welchen Gründen auch immer in eine schlechtere Stufe zurück versucht er wieder besser zu werden. Man bekommt davon nichts mit.
Ich bin gespannt wie sich das im Garten verhält. Dann kann man den BNO in verschiedenen Modis betrieben, Magnetometer und Gyro Betrieb habe ich bisher getestet. Magnetometer ist wie ein Normales Kompass Modul, Anfällig auf megnetische Einflüsse in dem Modus habe ich ihn kalibriert. Dann kann man ihn in den Modus BNO_REPORT_GAME_ROTATION_VECTOR umschalten, das trennt dann den Gyro Wert von den Kompass einflüssen. Vorteil der Wert der Ausrichtung ändert sich nur nach der Drehung des Gyros und ist unabhängig von magnetischen einflüssen. Auch spielt die Neigung keine Rolle. Ein drift ist vorhanden, wird intern kompensiert hier eine Messung die ich vorhin angestoßen habe

📡 Starte BNO085 YAW/Kurs-System...
Modus: Kompass + Gyro (r)
⌛ Messung aktiv gestartet um 16:34:45
12-Jul-2025/16:34:45Magnet. Kalibrierung: 0
12-Jul-2025/16:34:46Magnet. Kalibrierung: 0
12-Jul-2025/16:34:47Magnet. Kalibrierung: 3
12-Jul-2025/16:34:47Kalibrierung beendet nach 2.04 Sekunden
Initial-Kurs: 17.86, Inital-Yaw: -60.46
🌀 Switched to GAME_ROTATION_VECTOR
Yaw-Gyro: 0.00° Gyro-Kurs: 17.86° Pitch: -3.6° roll: 7.8° Mag-Kurs = 17.86 Mag Status 3
...
...
Yaw-Gyro: 0.06° Gyro-Kurs: 17.92° Pitch: -3.6° roll: 7.8° Mag-Kurs = 16.51 Mag Status 3
👋 Beende Programm um 18:11:29
Da bin ich echt beeindruckt.

Viel Licht, aber auch Schatten.
Ich habe in dem GAME modus, also nur Gyro den BNO mit einem Magneten beeinflusst. Ergebnis: Der Mag-Kurs kommt wie erwartet aus dem Tritt und zeigt Blödsinn an, Der Gyro Wert belibt stabil. Dann versucht er intern neu zu kalibrieren, der Mag Status verändert sich von 3 auf 2 oder auf 0. Wird er 0, dann kommt auch der Gyro aus dem Tritt und er springt um einige Grad. Natürlich kann man das Abfangen, aber das hätte man vielleicht auch intern lösen können. So muss jetzt der Code ein wenig erweitert werden. Wenn Mag Status== 3 und Mag Status fällt unter 2 dann stoppe den Mäher und kalibriere neu. Wenn das das Einzige ist, wo er seine Schwächen hat, dann ist er auf alle Fälle seine ca. 25€ Wert. Ich werde gleich ein Verbindungskabel zusammen löten und versuche ihn in den nächsten Tagen mal im Garten an meinem RoπLawnMow zu testen.
Eines habe ich noch in der Beschreibung gelesen, dass seine I2C Bus Schnittstelle nicht gut mit einem ESP32 zusammen arbeitet, Aber man kann ihn auf UART oder SPI umschalten.
Soweit mein Status-Bericht Mein Fürst vielleicht hilft es Dir.
Gruß
Ulli
 
Last edited:
Sehr schöner Bericht !
Vom Preis her kann man ja nichts beanstanden, in der Größenordnung liegen die anderen Sensoren auch.
Ich bin gespannt, wie er auf dem größeren Mäher funktioniert.
Bei mir sind die Aussichten sehr ernüchternd. Ich habe dem Sensor jetzt eine Spannungsstabilisierung und 5V-Versorgung gegönnt, außerdem ein geschirmtes Kabel. Beim Kalibrieren liegen die ermittelten Werte immer in den selben Bereichen, wobei die Nullpunkt-Abweichungen sehr groß sind. Das veranschaulicht auch das Problem, da der eigentlich zu erwartende Magnetwert nicht signifikant größer ist als die Korrekturwerte.
Ein weiteres Problem ist bei mir die Anzahl der elektrischen Störer- /Verbraucher. Zudem kommen die diversen Antennen und die große Ground-Plane, in deren Umgebung der Sensor ebenfalls nicht funktioniert. Da stellt sich die Frage, wo überhaupt im Mäher ein geeigneter Platz sein kann. Kurzum, die Aussichten sind beschi…
Im Moment konzentriere ich mich auf die Alternativen. Das sinnvollste ist wohl die Nutzung des „genauen“ GPS-Wertes. Daraus will ich anhand von zwei Wegpunkten das Heading ableiten, korrigiert durch die Werte von den Radsensoren.
Ich habe auch festgestellt, daß mein Kalman-Filter sehr große Signale erzeugt, was erst einmal verwunderlich ist. Da fährt der Mäher sogar selbstständig rückwärts, unerwarteter Weise. Toll ist, daß er sich dabei weiter Richtung Ziel ausrichtet, was allerdings so gewollt war.
So langsam verliere ich den Spaß am vielen Testen. Eigentlich sollte er von selbst mähen. Schließlich gibt es zwei nahezu identisch Mäher, von denen der neuere es noch nie ins Grüne geschafft hat.
Morgen ist ein neuer Tag ..
Gruß Fürst Ruprecht
 
So nachdem ich einen Alfred günstig geschossen habe, habe ich mal versucht mit chatgtp den sunray Code auf den Raspberry Pi zu konvertieren. Nach Anpassung des System Prompt funktioniert das erstaunlich gut, zumindest eine gewisse Zeit, dann vergisst er immer wieder Teile die schon umgesetzt wurden. Mega Nervig
 
.. M
So nachdem ich einen Alfred günstig geschossen habe, habe ich mal versucht mit chatgtp den sunray Code auf den Raspberry Pi zu konvertieren. Nach Anpassung des System Prompt funktioniert das erstaunlich gut, zumindest eine gewisse Zeit, dann vergisst er immer wieder Teile die schon umgesetzt wurden. Mega Nervig
Wenn Du meinst das ChatGPT immer Teile vergisst, dann stelle ich das auch genauso fest. Ich teile daher die Konversation immer in kleine Abgeschlossene Segmente auf. Wenn ich dann auf was vorhandenem Aufsetze mache ich anfangs immer ein kleines Summary. Und was aus meiner Sicht gar nicht geht ist wenn Du einen von Chatgpt erstellten Code hast, der über die Projektlaufzeit modifiziert wurde, dann vergisst er die Modifizierungen. Also immer schön in Häppchen füttern. Dennoch finde ich es erstaunlich komfortavel, denn man braucht sich nicht mehr um Syntax Fehler zu kömmern, oder Suchen wie man ein replace richtig definiert. Das wird einem alles abgenommen. Also ist das schon ein Klagen auf hohem Niveau :-) was wir da machen oder?
Gruß
Ulli
 
Ich teile Eure Erfahrungen weitestgehend. Aber: ich hatte jetzt zwei Syntaxfehler an denen ich schier verzweifelt bin und die ChatGPT nicht gefunden hat, trotz vielfacher Überprüfungen auch aufgeteilt in kleine Code-Stücke. Beim Überarbeiten habe ich fälschlicher Weise Anweisungen zwischen die if/else Unterteilung geschoben, also if(){ } Anweisung else{ }.
Ich weise ChatGPT an, sich Umfänge zu merken und frage bei jedem neuen Start nach, ob er/sie/es sich erinnern kann. Wenn es Dinge vergisst, weise ich darauf hin, daß wir das bereits hatten und frage nach den Erinnerungen - das hilft.
 
Es kommt auch auf dem System Prompt an, was man da eingegeben hat.
Ich nehme mal an, das der bei euch leer oder original ist.
Bei mir ist er ein Senior Developer, der vorher den Code erklären soll.
Allerdings wechselt er ziemlich schnell zwischen den Modellen in der gratis Version
 
Ich habe in den letzten Tagen mein BNO085 Script noch verfeinert. Und ich denke ich kann den Sensor dann auch in den nächsten Tagen in den Mäher einbauen. Hier ein Video, das ich gestern zum #MakerMonday auf X gepostet habe. Zum Sensor hatte ich im Juli hier ja schon etwas gepostet. Mein Konzept in dem Script ist folgendes: Ich kalibriere den magnetischen Sensor mit einer Drehung des Mähroboters bis er "gut" oder "vollständig" Kalibriert ist. Danach stoppen die Motore. Nun wartet das Script, bis der Sensor erkennt dass er still steht, also nicht mehr in Bewegung ist. Dann wird der Wert des magnetischen Kompass auf den Gyro Kompass übertragen und zum Fahren nutzt er dann den Gyro Kompass. Das vermeidet die magnetische Ablenkung durch Störungen von Mähmotor oder Antriebsmotoren. Der Drift, wie er beim MPU auftritt wird hier von der BNO085 Firmware weitgehendst kompensiert. In dem Video sieht man auch sehr gut, wie der magnetische Kompass "zittert" hingegen der Gyro-Kompass sehr ruhig ist. Wenn ich die ersten Tests draußen absolviert habe, dann werde ich wieder berichten.
Hier das Script für alle interssierten, es ist aber noch nicht aufgeräumt.
Viel Spaß beim Video schauen :)
View attachment X_BNO085.mp4
 

Attachments

Hallo, gestern habe ich es dann geschafft, dass ich die gefahrene Strecke mittels XY Koordinaten aufgezeichnet und visualisiert habe. Das ergebnis in meinem kleinen Zimmer fand ich schon sehr ordentlich. Einmal habe ich mit meinem MINI-Modell ein Rechteck abgefahren, und einmal habe ich versucht Bahn für Bahn zu fahren. Der BNO liefert da schon sehr sehr gute / stabile Werte. Basis für die Aufzeichnung waren die Werte des Gyro-Kurses, nicht des Mag-Kurses. Was ich aber auch festgestellt habe, dass ich mit meinem MINI langsam an die Grenzen eines Entwicklungsmodelles komme. Die Packungsdichte von Sensoren / Aktoren ist einfach schon zu groß. Ich muss da schon sehen ( und das kann man an den Werten (Mag-Status)mit dem BNO sehr gut erkennen) wo ich den BNO Platziere, damit er sich Anfangs gut kalibieren kann.
Hier die Bilder, die ich aus den Koordinaten mit Matplotlib zeichnen konnte. Ich finde nab kann auch gut erkennen, dass Mein Arbeitszimmer fast in Nord Süd Richtung ausgerichtet ist :-)

entlangTeppich.png4Bahnen.png
 
Back
Top