Ardumower Turtlebot Status die 2te

Ardumower Mini Zugriffe: 88

Kleiner Zwischenstand von meiner Seite.
Ich habe ein ROS Paket soweit entwickelt, dass die Kommunikation mit dem Ardumower gut läuft. Das Paket besteht aus einem Treiber (Kommunikation mit dem Arduino), einem Base Controller (Übersetzen der Arduino Nachrichten in ROS Standard Nachrichten und zurück) sowie einem einfachen Ardumower node. Dieser kommuniziert mit dem Base Controller und übernimmt weitere Aufgaben, etwa das Auslesen der Sensoren.



An diesem Punkt habe ich die Entwicklung in ROS (Noetic) eingestellt und bin auf ROS2 (Foxy) gewechselt. Hauptgrund dafür war, ich habe einige interessante ROS2 Implementierungen (micro-ROS auf ESP32) gesehen und wollte mir diese Option offen halten. Zudem ist ROS2 besser für Szenarien geeignet, in denen mehrere PCs oder MCUs zusammen arbeiten. Auch kooperatives Zusammenarbeiten mehrerer Roboter wird bei ROS2 unterstützt.

Daher habe ich die bisherigen Resultate auf ROS2 portiert und habe nun einen ähnlichen Stand wie zuvor.
- Ein Ardumower Treiber, der die Kommunikation mit dem Arduino übernimmt und Custom Messages erstellt
- ein Base Controller, der die Custom Nachrichten in ROS2 Nachrichten transferiert und darüber hinaus auch Frame Transformationen mit tf2 übernimmt (aktuell für odom realisiert)

In beiden Entwicklungszweigen ist eine tf für odom enthalten. ebenfalls sind cmd_vel Subscriber implementiert. Teleop ist also in beiden Versionen möglich.

Nachdem die IMU nun auch angebunden ist und die Daten in Quaternions für Standard IMU Nachrichten übersetzt sind, werde ich im nächsten Schritt die tf2 Transformation der IMU vornehmen. Aktuell arbeite ich noch mit dem GY-801, überlege aber auf den BNO055 umzusteigen. Es wird also Zeit, ein URDF Modell zu definieren.

Anschließend werde ich einen ROS2 Node erstellen, der zunächst einfach wie Azurit durch die Gegend fährt und agiert. Ist dies geschafft, werde ich Versuche unternehmen, eine Karte basierend auf den bisherigen Daten zu realisieren. Da mir RTK GPS gegenwärtig zu teuer ist, wird der Perimeter erhalten bleiben. Vor langer Zeit gab es mal Versuche mit Sunray, eine Karte basierend auf dem Perimeter zu erstellen. Ich werde zunächst in diese Richtung weiter machen und hoffe, eine Genauigkeit von 1m zu erhalten. Mal schauen, was es wird.

Mittelfristig werde ich Versuche unternehmen, Teile des Azurit Codes auf ESP32 zu verlagern und dazu eine Adapterplatine für die PCB 1.3 basteln. Ein ESP32 Modul mit Kamera (dafür ggf. einen dedizierten) vereinfacht aus meiner Sicht den Aufbau deutlich, da einige Dinge wegfallen können:
- Raspberry PI für ROS2 nodes nicht mehr notwendig. Entweder Daten direkt per WLAN an zentralen PC, oder Micro ROS auf ESP32
- Wegfall einer seriellen Kommunikation über USB
- keine zusätzlichen Adapter für WLAN oder Bluetooth
- kein Herunterfahren des Mowers mehr nötig (bedingt durch den RPI)

Auch wenn die Fortschritte kleiner sind als ich erhofft habe, aufgegeben habe ich das Projekt nicht.

Drucken

Related Articles

ArdumowerTurtlebot, erste Eindrücke

ArdumowerTurtlebot

Minimalistischer Mini Mower