Universal-Board konfigurieren

So richtest du das Universal-Board für eigene Mäher-Umbauten ein: Parameterübersicht, Vorlagendatei und Kalibrierung der Radencoder.

Diese Anleitung gilt für eigene Mäher-Umbauten mit dem OpenMower-Universal-Board. Bei solchen Aufbauten musst du mehrere hardwarespezifische Parameter selbst messen und einstellen, damit der Mäher korrekt funktioniert. Bei unterstützten Modellen sind diese bereits vorgegeben.

Alle individuellen Parameter gehören in ~/params/custom_params.yaml auf dem Mäher.

Konfigurationsvorlage

Lade die Vorlage als Ausgangspunkt herunter und speichere sie auf dem Mäher unter ~/params/custom_params.yaml:

custom_params.yaml herunterladen

Die folgenden Abschnitte erklären alle mit # TODO markierten Parameter.


Differentialantrieb

ll:
  services:
    diff_drive:
      wheel_distance_m: 0.325
      ticks_per_m: 1600.0
ParameterEinzustellender Wert
wheel_distance_mAbstand in Metern zwischen den Mitten des linken und rechten Antriebsrads. Mit einem Maßband messen.
ticks_per_mEncoderimpulse pro gefahrenem Meter. Muss gemessen werden; siehe Radencoder kalibrieren weiter unten.

IMU-Ausrichtung

    imu:
      axis_config: "+X-Y-Z"
ParameterEinzustellender Wert
axis_configAusrichtung des Mainboards relativ zum Mäher-Chassis. +X-Y-Z passt bei flacher, waagerechter Montage mit der X-Achse der Platine nach vorne. Passe den Wert an, wenn dein Mainboard schräg oder gedreht eingebaut ist.

Akkuspannungen

    power:
      battery_full_voltage: 20.0
      battery_empty_voltage: 18.5
      battery_critical_voltage: 16.5
      battery_critical_high_voltage: 21.0
      charge_critical_high_voltage: 30.0
      charge_critical_high_current: 1.5

Lies die Spannungsangaben deines Akkupacks nach und trage die passenden Werte ein.

ParameterEinzustellender Wert
battery_full_voltageSpannung des vollständig geladenen Akkupacks laut Spezifikation.
battery_empty_voltageSpannung, bei der der Mäher zur Ladestation zurückkehrt.
battery_critical_voltageNotabschaltung bei Unterspannung. Unterhalb der Rückkehrschwelle (battery_empty_voltage) einstellen, aber so hoch, dass keine schädliche Tiefentladung eintritt.
battery_critical_high_voltageÜberspannungsschutz. Etwas oberhalb der Spannung bei voller Ladung einstellen.
charge_critical_high_voltageHöchste zulässige Ausgangsspannung des Ladegeräts.
charge_critical_high_currentHöchster zulässiger Ladestrom in Ampere.

GPS-Antennenversatz

xbot_positioning:
  antenna_offset_x: 0.3
  antenna_offset_y: 0.0

Die Positionsbestimmung muss wissen, wo die GPS-Antenne relativ zum Drehmittelpunkt des Mähers sitzt, also zur Mitte zwischen den beiden Antriebsrädern.

ParameterEinzustellender Wert
antenna_offset_xVersatz nach vorne/hinten in Metern. Positiv bedeutet: Antenne vor dem Drehmittelpunkt. Von der Mitte zwischen den Rädern bis zur Antenne messen.
antenna_offset_yVersatz nach links/rechts in Metern. Positiv bedeutet: Antenne links. Bei mittig montierter Antenne normalerweise 0.

GPS-Kartenursprung

    gps:
      datum_lat: 53.457452
      datum_long: 10.014737

Diese Werte sind in der Vorlage nicht mit TODO markiert. Du musst sie trotzdem ändern. Trage Koordinaten nahe deiner Ladestation ein. Dieser Punkt wird zum Ursprung der Mäherkarte. Die Koordinaten kannst du mit einem GPS- oder Kartenwerkzeug ermitteln.


NTRIP-Zugangsdaten

ntrip_client:
  host: "www.your-ntrip-caster.de"
  port: 2101
  username: "ntripuser"
  password: "ntrippass"
  mountpoint: "ntripmount"

Trage die Zugangsdaten deines RTK-Korrekturdienstes ein.


Sicherheitssensoren

Bevor du den Mähmotor aktivierst, konfiguriere und prüfe alle Sicherheitssensoren: Hebeerkennung, Neigungserkennung und Stopptasten. Das erfolgt über die GPIO-Eingabekonfiguration. Die vollständige Anleitung findest du unter GPIO-Eingänge konfigurieren .

Mähmotor aktivieren

mower_logic:
  enable_mower: false

Setze den Wert erst auf true, wenn alle Sicherheitssensoren angeschlossen und konfiguriert sind und ihre korrekte Funktion geprüft wurde. Der Betrieb ohne funktionierende Sicherheitssensoren ist unsicher.


Radencoder kalibrieren

Mit diesem Verfahren ermittelst du ticks_per_m für die Radencoder deines Mähers.

Voraussetzungen

  • OpenMower läuft
  • Zugriff per SSH oder Webterminal
  • Eine ebene Fläche mit etwa 10 m freier, gerader Strecke
  • Etwas zum Markieren von Start- und Endposition, etwa Klebeband oder Kreide

Schritt 1: Aufzeichnungsmodus aktivieren

Öffne die OpenMower-App und aktiviere den Modus zur Flächenerfassung. So sind Fahrmotoren und Radencoder aktiv und veröffentlichen Odometriedaten.

Schritt 2: Anfangswerte der Encoderzähler notieren

Öffne die ROS-Shell:

openmower shell

Abonniere das Status-Topic des linken ESC und notiere den Wert von tacho:

rostopic echo /ll/diff_drive/left_esc_status

Schreibe den Wert auf und drücke Strg+C. Wiederhole das für das rechte Rad:

rostopic echo /ll/diff_drive/right_esc_status

Schritt 3: Zehn Meter geradeaus fahren

Markiere die aktuelle Position des Mähers und fahre genau 10 Meter geradeaus. Fahre langsam und gleichmäßig. Je gerader die Strecke, desto genauer das Ergebnis.

Schritt 4: Endwerte der Encoderzähler notieren

Abonniere beide Topics erneut und notiere die neuen tacho-Werte:

rostopic echo /ll/diff_drive/left_esc_status
rostopic echo /ll/diff_drive/right_esc_status

Schritt 5: ticks_per_m berechnen

Berechne die Differenz für jedes Rad. Ist sie negativ, ändere das Vorzeichen:

left_diff  = |tacho_end_left  - tacho_start_left|
right_diff = |tacho_end_right - tacho_start_right|

Die beiden Werte sollten ungefähr gleich sein. Bilde den Mittelwert und teile ihn durch 10:

ticks_per_m = (left_diff + right_diff) / (2 * 10)

Schritt 6: Wert übernehmen

Bearbeite custom_params.yaml direkt:

nano ~/params/custom_params.yaml

Trage den berechneten Wert ein:

ll:
  services:
    diff_drive:
      ticks_per_m: <your_value>

Speichere die Datei und starte OpenMower neu, um den Wert zu übernehmen.