Seit langem möchte ich meinen Ardumower auf ein anderes Level heben und mit dem Robot Operating System (ROS) ausstatten. Das bedeutet eine irre steile Lernkurve für mich und die Notwendigkeit unzähliger Tests im kleinen, bevor es jemals raus auf den Rasen geht. Eine geeignete Testplattform musste folglich her. Wer sich mit ROS beschäftigt, kommt an den unzähligen Turtlebot Varianten nicht vorbei. Die haben mir alle nicht so recht gefallen (anderer Fokus), sind teuer und verwenden eine völlig andere Hardware. Der Ardumower Mini aus dem Shop gefällt mit ebenfalls nicht, die Platine sitzt da schlecht drauf, Odometrie hat wenige Ticks und alles sieht so gebastelt aus.
Zudem tummeln sich im Haushalt zwei neugierige Kinder, da müssen alle Kabel, Stecker usw. sicher sein.
Kurzum, ich entwerfe eine eigene Variante des Turtlebot, welcher mit der Ardumower Hardware (altes PCB1.2) arbeitet. Zunächst war die Überlegung, es komplett selbst zu drucken. Ich habe bei der Recherche nach einem schönen Design die Turtlebot3 Waffles für mich entdeckt. Die sind wie Lego und lassen sich in verschiedene Formen zusammen stecken. Außerdem gibt es unzählige Befestigungslöcher, für jeden was dabei. Bei 16€ für 8 Stück inkl. Schrauben lohnt es nicht, diese selbst zu drucken (was aber möglich ist, der Hersteller bietet ein CAD zum ausdrücklichen selbstdrucken an)
Hier nun die ersten Eindrücke und Bilder es ArdumowerTurtlebot
Das ist die Ansicht von vorne rechts. Die Antriebsräder sitzen wie bei den meisten Mowern und dem Arctic Hare hinten, vorne kommt ein Stützrad dran. Viele Teile fehlen noch.
Rein passt ein komplett bestücktes Ardumower PCB (1.2 oder 1.3)
Die Rückseite ist soweit fertig und druckt gerade. Dort ist Platz für ein Ladeanschluss, Hauptschalter und sicherlich einiges mehr
ROS soll später auf einem Raspberry PI laufen, der mit dem Roboter unterwegs ist. Der PI wird auf den Mower geschraubt und bekommt eine Schutzhaube.
Da das PCB länger ist als die 6 Turtlebot Waffles, habe ich eine kleine Verlängerung entworfen. Die passt super auf die gekauften Waffles
So sieht es mit PCB aus, rechts und links ist Platz für weitere Sensoren. Ebenfalls oben auf dem Mower und unten drunter.
Als Motoren kommen 24V Motoren mit Encoder aus Fernost für 12€ pro Stück rein. Für einen echten Mower sind die sicherlich viel zu schwach, aber der Roboter wird recht klein und leicht, da werden die genug Leistung bringen. Mähmotor entfällt natürlich.
Geplant sind außerdem:
- 3x US Sensoren vorne
- Bumper per Mikroschalter
- Kompass
- IMU
- 2x Perimeter Empfänger
- 24V Akku (7S1P)
- LM298N als Motortreiber
Mein Fahrplan für ROS sieht so aus:
1. zunächst bestehende Azurit mit ROS verwenden (danke Alexander für den ROS Treiber)
2. simple Fahrkommandos, manuelle Steuerung
3. autonome Fahrweise über Perimeter, chaotisches Muster (wie heute)
4. autonome Fahrweise mit Karte und Pfadplanung
5. OpenCV zur Hinderniserkennung
6. SLAM, wie auch immer das realisierbar ist
Beginnen werde ich mit der aktuellen Azurit, mittelfristig möchte ich die Firmware aber stark vereinfachen und auf ROS spezialisieren. Die Firmware soll später nur die Kommandos ausführen, Sensordaten senden sowie Ereignisse melden. Zur Sicherheit wird die Firmware bei Bumper oder verlassen des Perimeter immer stoppen, an ROS melden und die Entscheidung abwarten.