Nachdem ich unzählige Stunden mit micro-ros auf dem ESP32 verbracht habe, bin ich um einige Erkenntnisse reicher. Meine Idee war, viele Dinge direkt auf dem ESP32 erledigen zu lassen und einzelne Nachrichten an andere ROS 2 Nodes zu senden. Nach diversen Problemen mit dem Build System (gruselig) und nachdem ich endlich eigene Nachrichtendefinitionen ins micro-ros gebracht hatte, kam der nächste Rückschlag. Es werden im Standard nur sehr wenige publisher/subscriber ermöglicht (2). Man kann dies zwar in der Konfiguration des Build Systems anpassen, dies sind aber weitere Hürden, die nicht leicht zu erklären sind. Zudem ist die Dokumentation sehr lückenhaft und setzt viele Kenntnisse voraus, die mir fehlen.
Kurzes Update von meiner Seite zum Stand der Ardumower Turtle Bot Version.
Nachdem eine minimale ROS2 Implementierung fertig war (Ardumower <-USB-> RPI) habe ich mich länger mit micro-ros und dem ESP32 beschäftigt. Beides neue Welten für mich, da hat es etwas gedauert.
Der ESP32 hängt nun an der Stelle, wo früher das WLAN Modul auf dem PCB1.2 untergebracht war. Der Mower kommuniziert nun nicht mehr über den USB Port, sondern über eine andere serielle Schnittstelle. Dies hat den Vorteil, dass USB für Debugging und Konfiguration frei bleibt. Der ESP32 betreibt zwei Tasks, einer der UART überwacht und ankommende Daten in eine Queue schreibt. Ein zweiter Task führt micro-ros aus und sendet aktuell die Daten einfach als String Nachricht ins ROS2 Universum.