Konfiguration

Die Konfiguration des Roboters wird in einer Datei config.yaml gespeichert. Diese Datei wird beim Starten des Roboters geladen und die Werte werden im Code verwendet.

Die folgenden Optionen können in der Konfigurationsdatei eingestellt werden:

  • tire_diameter: Der Durchmesser der Räder in Zentimetern

  • loop_throttle: LEGACY, wird so gut wie nicht verwendet. Urspünglich: Verzögerung von Schleifen zum Verhindern von 100% CPU-Auslastung

  • gyro_tolerance: Die Toleranz des Gyrosensors in Grad

  • gyro_off: Die Abweichung des Gyrosensors nach einer Drehung um 360°. Dieser Wert wird verwendet, um den Fehler herauszurechnen. Siehe Ermittlung des Gyro-Offsets

  • gearbox:
    • drive_shaft: Der Port des Motors, der die Ausgänge am Ende drehen lässt

    • gear_selector: Der Port des Motors, der den Ausgang auswählt

    • offset: Die Position in Grad, auf der der erste Ausgang ausgewählt ist.

  • driving_motors:
    • left: Der Port des linken Fahrmotors

    • right: Der Port des rechten Fahrmotors

  • sensors:
    • left: Der Port des linken Sensors

    • right: Der Port des rechten Sensors

  • correctors:
    • gyro_drive: Korrekturwerte p, i und d für das normale Fahren

    • gyro_turn: Korrekturwerte p, i und d für das Drehen, sowie min_speed und max_speed um ein zu langesames Drehen (Roboter bleibt stehen) und zu schnelles Drehen (ungenau) zu verhindern

  • debugging:
    • no_autoscroll: Deaktiviert das automatische weiterscrollen nach Abschluss eines Runs

    • initial_focus: Der wievielte Run beim Start ausgewählt sein soll. Zählt ab 0, dh. 0 -> erster Run, 1 -> zweiter Run, etc.

    • require_full_battery: Aktiviert, dass der Hub den Akkustand überprüft und die Arbeit bei zu niedrigem verweigert.

    • display_errors: Aktiviert, dass Fehlernachrichten auf dem Display des Hubs angezeigt werden. Bei bestehender Bluetooth-Verbindung unnötig.

  • competition: Wenn ja werden Einstellungen aus debugging ignoriert und stattdessen für den Wettbewerb optimierte Einstellungen verwendet.

Hier ein Beispiel für eine Konfigurationsdatei:

tire_diameter: 6.24
loop_throttle: 0.025
landscape: yes
gyro_tolerance: 1
gyro_off: -4

gearbox:
    drive_shaft: A
    gear_selector: B
    offset: -7

driving_motors:
    left: D
    right: C

sensors:
    left: E
    right: F

correctors:
    gyro_turn:
        p: 1.6
        i: 0
        d: -1

        # In deg/s:
        min_speed: 5
        max_speed: 90

    gyro_drive:
        p: 1.3
        i: 0.001
        d: -1

competition: no
debugging:
    no_autoscroll: yes
    initial_focus: 0
    require_battery_full: no
    display_errors: no

Ermittlung des Gyro-Offsets

  1. Richte den Roboter an einer Wand aus.

  2. Starte bei laufender Bluetoothverbindung den Run run_calib.py, erkennbar an dem kleinen Kreis / O.

  3. Drehe den Roboter im Uhrzeigersinn um 360°

  4. Drücke noch einmal den mittleren Knopf

Jetzt kannst du in der Konsole den gemessenen Offset ablesen und kannst ihn in die Konfigurationsdatei eintragen.

Hinweis

Am besten wiederholst du den Prozess mehrmals und berechnest den ungefähren Mittelwert, um die Präzision zu maximieren.