gsgr.movement

Motorsteuerung und Bewegungsfunktionen.

gsgr.movement.check_battery()

Helper function to error out on low battery in debug mode.

This function is ran on all activities including motor movement. It will crash the run with the BatteryLowError if the battery capacity is reported to be below 100%. This is meant to force us to keep the robot charged when coding at all times to ensure consistant driving behavior.

Raises:

BatteryLowError

gsgr.movement.hold_attachment(target_gear, await_completion=True)

Ausgang wählen um Reibung anzuwenden, gedacht um Anbaute zu halten. Select gear to apply torque, meant to hold attachment in place.

Parameter:
  • target_gear (int) – Die Nummer des Ausgangs. Nutze am besten gsgr.enums.Attachment. [TODO: Read more]

  • prepare – Wenn True angegeben wird, wird der Umschaltprozess nur gestartet, ohne auf Fertigstellung zu warten.

Raises:

BatteryLowError (more: check_battery())

gsgr.movement.free_attachment(target_gear, await_completion=True)

Irgeneinen anderen Ausgang auswählen, um Reibung freizugeben, gedacht um Anbaute frei beweglich zu machen.

Wenn mehrerer Ausgänge zur gleichen Zeit frei beweglich sin sollen, nutze hold_attachment() um einen Ausgang auszuwählen, der nicht freigegeben werden soll.

Wenn alle Ausgänge zur gleichen Zeit freigegeben werden sollen, nutze free_attachemnts().

Parameter:

target_gear (int) – Die Nummer des Ausgangs. Nutze am besten gsgr.enums.Attachment. [TODO: Read more]

Raises:

BatteryLowError (more: check_battery())

gsgr.movement.free_attachments(await_completion=True)

Getriebewähler in eine Stellung bringen, in der in der Theorie Reibung an allen Ausgängen freigegeben wird.

Warnung

Mit Bedacht nutzen, dies kann Ausgänge in manchen Fällen immer noch teilweise blockieren. Nur wenn nötig! Nutze free_attachment() wann immer möglich.

Raises:

BatteryLowError (more: check_battery())

gsgr.movement.run_attachment(attachment, speed, duration=None, stall=False, untension=None, await_completion=True, when_i_say_duration_i_mean_degrees=False)

Bewege Ausgang zur angegebenen Zeit oder bis es gestoppt wird

Wenn mit duration aufgerufen, wird die Funktion ausgeführt, bis die Zeit um ist. Ansonsten wird der Motor nur gestartet.

Parameter:
  • attachment (int) – Die Nummer des Ausgangs. Nutze am besten gsgr.enums.Attachment. [TODO: Read more]

  • speed (int) – Geschwindigkeit, mit der die Anbaute bewegt werden soll. Wert von -100 bis 100.

  • duration (int | float | None) – Zeit in Sekunden, für die der Ausgang bewegt werden soll. Falls nicht angegeben, wird der Motor nur gestartet.

  • stop_on_resistance – Ob der Motor vorzeitig stoppen soll, wenn er blockiert wird.

  • untension (int | None) – Wie viel Grad der Motor nach dem Stoppen kurz in die entgegengesetzte Richtung laufen soll, um die Spannung zu lösen.

Raises:

BatteryLowError (more: check_battery())

Rückgabetyp:

None

gsgr.movement.stop_attachment(untension=False, await_completion=False)

Ausgangsbewegung stoppen.

Nur nötig, falls run_attachment() ohne Zieldauer aufgerufen wurde.

gsgr.movement.gyro_set_origin()

Gyro-Sensor Origin zurücksetzen

gsgr.movement.gyro_wall_align(wall_align_duration=1, backwards=False)
gsgr.movement.gyro_turn(target_angle, step_speed=120, pivot=0, min_speed=None, max_speed=None, pid=None, tolerance=None, timeout=0, brake=True, premature_ending_condition=None)

Drehe mithilfe des Gyrosensors in eine bestimmte Richtung

Parameter:
  • target_angle (int) – Zielgradzahl, auf die gedreht werden soll

  • step_speed (int | float) – Drehgeschwindigkeit im Verhältnis zum fehlenden Drehwinkel; wird multiplikativ angewandt

  • pivot (Pivot | int) – Drehpunkt, um den der Roboter dreht; entweder die Mitte des Roboters oder einer seiner Räder

  • min_speed (int | None) – Mindestgeschwindigkeit, damit der Roboter beim Drehen nicht stehen bleibt

  • max_speed (int | None) – Maximalgeschwindigkeit, damit der Roboter nicht zu langsam entschleunigt

  • pid (PID | None) – Die PID-Werte für die Bewegung; siehe PID

  • tolerance (int | None) – Toleranz beim Auslesen des Gyrosensors (Ziel erreicht wenn Gyro-Wert = Ziel-Wert +- Toleranz)

  • brake (bool) – Ob der Roboter nach der Bewegung bremsen soll

gsgr.movement.sign(n)
gsgr.movement.gyro_drive(target_angle, speed, ending_condition, pid=None, accelerate=0, decelerate=0, interpolators=(<function exponential>, <function linear>), brake=True)

Fahre mithilfe des Gyrosensors in eine bestimmte Richtung

Parameter:
  • target_angle (int) – Zielgradzahl; die Richtung in die gefahren werden soll

  • speed (int | float) – Fahrgeschwindigkeit; bei negativen Werten fährt der Roboter rückwärts; zwischen -100 und 100

  • ending_conditon – Zielbedingung; Bis wann/für wie lange die Bewegung ausgeführt werden soll

  • pid (PID | None) – Die PID-Werte für die Bewegung; siehe PID

  • accelerate (float) – Über welche Stecke der Roboter beschleunigen soll; in Prozent von der ending_condition

  • decelerate (float) – Über welche Stecke der Roboter entschleunigen soll; in Prozent von der ending_condition

  • brake (bool) – Ob der Roboter nach der Bewegung bremsen soll

gsgr.movement.start_with_naR(alpha, radius)