ROSMower

Paddy

Well-known member
After several Ardumower, it was time to try new things. This time I build a mower based on ROS, Robot Operating System.

Currently I re-used a superseded robot platform I build a couple of years before.

The Robot use lots of parts taken from a hoverboard. These toys are dammned cheap in after market and you get them for free often.
They are build around a STM32 MCU which brings everything needed to run the two bldc hub motors. There is a small but growing community of robot enthusiasts around these boards and we provide firmware and ROS drivers for these. Motors can be controlled by simple UART interface, so Arduino, RaspberryPi or any other MCU can send commands.

My mower is also equipped with a ROS Perimeter receiver based on Ardumower Code, a LD06 Lidar, BNO085 IMU and a Intel Realsense D435 stereo depth camera. As main SBC it runs either on RaspberryPi or NVidia Jetson Nano (currently)

A first test with Joystick operation can be found here


Git repos can be found here
 
The lidar looks interesting.
Does it work outdoor, as you always read that there are problems outdoor in the sun?
 
The lidar is incredible small and works good from what I can tell. I didn't test outdoors and it will have trouble in direkt Sun like all others too. I'll try when Sun is shining again and let you know.
I hope that it will work on mid-range distance of 3-4m outside to be able to detect obstacles.
It will not work for slam outdoor as lidar in general is not a good choice for this.
 
For information.
In the past i tested 5 laser sensor .
They work perfectly indoor (really better than sonar) but always fail outdoor in full sun.:mad::mad::mad::mad:

Maybe the lidar is better ;);)

It was VL53L0X.vl53l0.jpg
 
After some development time, I finally got a LD06 360deg TOF Lidar and BNO085 IMU up and running. This video is a first outdoor test on a sunny day. Lidar works good so far even outdoor. The small dots displayed on the right side or area aren't noise, these are poles of my childrens playground.

Beside the test of LIDAR and IMU, one huge step for me was to get sensor fusion of Odometry and IMU working by using ROS robot_pose_ekf package, a kalman filter to fuse odometry with other sensors to determine robots pose and orientation.

The video sometimes hangs which was caused by poor wifi connection to robot. Robot gets controlled by Playstation4 bluetooth controller. Next step will be to set up robot navigation stack for amcl and slam. As well as to implement Intel Realsense D435 stereo depth camera. I'll try to add 3D Pointcloud of this camera to make Navigation even more robust. I'll also try to use OpenCV to detect and classify objects and landmarks.

 
Kann man damit nicht irgendwie eine Karte zeichnen und diese dann zum Mähen nehmen?
 
Darauf wird es am Ende hoffentlich hinauslaufen. Ich habe eine Stelle, wo der Rasen ebenerdig auf die Straße übergeht. Da ist kein Zaun oder so. Da wird es spannend, ob er im erlaubten Bereich bleibt.
 
Hallo Paddy,
Dein Konzept gefällt mir sehr gut und ich überlege nun bereits schon geraume Zeit, ob ich mich für den nächsten Mäher nicht daran orientieren sollte. Der Ansatz ein hoverboard als Teilespender oder Achse zu nehmen, läßt sich wohl von den Kosten her nicht toppen - super starker Antrieb, Räder samt Bereifung, Akku, Leistungselektronik.
Meine Rasenfläche erfordert leider einen Allrad-Mäher (zumindest hat der klassische Ardumower-Ansatz bei mir nicht zufriedenstellend funktioniert). Ich bin mit meinem heutigen Konzept und Mäher soweit zufrieden - er hält und mäht. Mein Hauptproblem ist die Lenkung - d.h. ein Antrieb der schnell und stark genug ist, die motorisierten Vorderräder zu bewegen. Da sehe ich den Nachteil des hoverboard-Teilespenders, nämlich das Gewicht. Evtl könnte man auch einen Traktor ohne Allradantrieb bauen - mal sehen.

Sehr interessant finde ich Deine Arbeit mit der Distanzmessung. Grundsätzlich stellt sich mir die Frage, ob die Positionsbestimmung auf/in dem Mäher der beste Ansatz ist. Ich sehe eine Alternative darin, den Mäher über verteilte Sensoren auf dem Grundstück zu "orten" und über Triangulation die Position zu bestimmen. Es gibt von Rui Santos ein esp32-Beispiel, in dem er Objekte anhand der Farbe erkennt (das könnte ein roter Tennisball auf dem Mäher sein) und die Bildposition ermittelt.
Würde man das perfektionieren können, ergäbe das eine sehr preisgünstige Lösung.
Mit TOF-Sensoren könnte man ebenfalls eine Punktewolke aufnehmen und die statischen Elemente (also das, was sich nicht bewegt) herausfiltern - dann verbleibt die Postition des Mähers (und des Hundes, der Katze, usw).
Also, es bleibt spannend ..

Gruß Fürst Ruprecht
 
Ja mir gefällt das Konzept auch ganz gut, wobei mich die Hoverboard Platine etwas stört, da scheinen nicht alle kompatibel zu sein.
Hat schon jemand die China Brushless Treiber mit Hall Anschlüssen getestet? Ich habe die zwar hier, aber ich komme einfach nicht dazu das mal ordentlich zu testen, da bei mir ständig irgendetwas nicht funktioniert :mad:
Bernard hatte die wohl mal zum testen an einen Hoverboard Motor angeschlossen, aber nur kurz und dann haben sie Rauchzeichen gegeben :oops:

Die neue Teensy Platine ist eigentlich perfekt, die in Verbindung mit einem Raspi/Jetson Nano, austauschbaren Motortreibern und man kann eigentlich alles damit bauen. Man konnte vielleicht auch Pixhawk nutzen als Mission Planer.

Als ich das letzte mal nach Outdoor Navigation gesucht habe, hatte ich etwas über Ultraschall Baken gelesen, wenn man die im Garten verteilt, könnte man über Triangulation die genaue Position bestimmen, aber mehr als eine Diskussion war das nicht. Ansätze gibt es viele aber leider auch 99% ohne Code.

@Paddy, wie hast du vor, den/die Mähmotoren einzubinden, schwebt dir da schon etwas vor?
 
Ich habe vor kurzem eine Diplomarbeit gelesen, in der per Ultraschall geortet wird. Fazit: machbar, aber hoher Aufwand bei der Signalvernetzung. Für die Laufzeitberechnung wurden die einzelnen Sensoren alle mit einem zentralen Trigger verkabelt. Wer will denn noch zusätzlich zum Perimeterdraht die Sensoren verkabeln?
Meine Überlegungen scheitern alle daran, daß mir nichts „Einfaches“ einfällt, wie man den Mäher “im Blick“ behalten kann um dann Sensoren auf ihn auszurichten. Oder umgekehrt, wie vom Mäher aus Fixpunkte angepeilt werden können. Meine Böschung ist da auch nicht hilfreich, da verschwindet jetzt schon der Mäher aus der Sicht.
 
Hallo Paddy,
Dein Konzept gefällt mir sehr gut und ich überlege nun bereits schon geraume Zeit, ob ich mich für den nächsten Mäher nicht daran orientieren sollte. Der Ansatz ein hoverboard als Teilespender oder Achse zu nehmen, läßt sich wohl von den Kosten her nicht toppen - super starker Antrieb, Räder samt Bereifung, Akku, Leistungselektronik.
Meine Rasenfläche erfordert leider einen Allrad-Mäher (zumindest hat der klassische Ardumower-Ansatz bei mir nicht zufriedenstellend funktioniert). Ich bin mit meinem heutigen Konzept und Mäher soweit zufrieden - er hält und mäht. Mein Hauptproblem ist die Lenkung - d.h. ein Antrieb der schnell und stark genug ist, die motorisierten Vorderräder zu bewegen. Da sehe ich den Nachteil des hoverboard-Teilespenders, nämlich das Gewicht. Evtl könnte man auch einen Traktor ohne Allradantrieb bauen - mal sehen.

Sehr interessant finde ich Deine Arbeit mit der Distanzmessung. Grundsätzlich stellt sich mir die Frage, ob die Positionsbestimmung auf/in dem Mäher der beste Ansatz ist. Ich sehe eine Alternative darin, den Mäher über verteilte Sensoren auf dem Grundstück zu "orten" und über Triangulation die Position zu bestimmen. Es gibt von Rui Santos ein esp32-Beispiel, in dem er Objekte anhand der Farbe erkennt (das könnte ein roter Tennisball auf dem Mäher sein) und die Bildposition ermittelt.
Würde man das perfektionieren können, ergäbe das eine sehr preisgünstige Lösung.
Mit TOF-Sensoren könnte man ebenfalls eine Punktewolke aufnehmen und die statischen Elemente (also das, was sich nicht bewegt) herausfiltern - dann verbleibt die Postition des Mähers (und des Hundes, der Katze, usw).
Also, es bleibt spannend ..

Gruß Fürst Ruprecht
Hallo,

Zunächst, kennen wir uns nicht aus der ROS2 Ecke für Mäher? Das Bild und der Name ist mir irgendwie vertraut.

Die Lokalisierung auf dem Rasen erfolgt mit einem LIDAR und einer Kamera. Fertig ist das alles nicht, nur geplant.
Als Fallback fahren noch Perimeter Empfänger mit. Wenn keiner mehr drin ist, muss gestoppt werden.

Mein Garten ist fast eben, da wird es mit Lidar hoffentlich klappen. Neigungen werden hier Probleme bereiten weil die Punktwolke sich deutlich ändert.

Es gibt ein paar Leute, die nutzen zwei Hoverboards und haben so Allrad. Andere haben die Reifen ersetzt um mehr Grip zu bekommen. Der größte Nachteil ist aber definitiv das Gewicht. Die Motoren sind sehr schwer.

Ich glaube zur wirklich optimalen Lokalisation ohne Perimeter führt kein Weg am GPS RTK vorbei. Das ist leider auch mit die teuerste Variante.
 
@Paddy, wie hast du vor, den/die Mähmotoren einzubinden, schwebt dir da schon etwas vor?
Der Mähmotor ist von JKongMotor. Dazu habe ich einen passenden Treiber von denen, den JKBLD300. Der ist sicher oversized, läuft aber sehr schön. Bremse klappt auch ordentlich, wie man es erwartet. Wird der Eingang beschaltet, stoppt der Treiber den Motor aktiv.

Leider ist das Ding groß und ich muss noch einen Platz dafür finden
 
Hallo zurück,
ja, wir haben uns schon an anderer Stelle getroffen. Ich habe mir ROS mal näher angesehen, was es da so gibt. Den Ansatz kann ich gut nachvollziehen, ist mir persönlich aber zu komplex. Da ähnlich wie bei Dir, bei mir auch ständig etwas anderes ansteht, will ich eigentlich den Mäher nicht weiter verkomplizieren. Das Haus mit KNX, vielen esp32 und esp8266 Sensoren und Aktoren, dem überdimensionierten Netzwerk usw. usw. bringt schon genug Pflegeaufwand. Da kippt die Stimmung schon, wenn am Abend 5 Minuten vor der Tagesschau der Raspi den Beamer nicht bespielen will.
Der Punkt bei den Punktewolken ist die anschließende Auswertung. Da muß man dann schon mit größerem Geschütz ran und da reicht es sicherlich nicht, irgend eine allgemein gültige Lösung aus dem Netz zu nehmen.
Eins muß man jedoch sagen: Der Unterschied zwischen Chaos mähen und geführten Bahnen ist riesig.

Würde man unsere eingesetzte Freizeit mit einem Ing.-Stundensatz berechnen, dann wäre wohl die richtige Lösung, den Perimeterdraht in Schleifen in den Rasen zu legen und den Mäher zu 100% im Perimeter-Folgemodus laufen zu lassen (wäre auf jeden Fall die günstigste).

Gruß Fürst Ruprecht
 
Back
Top