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
BatteryLowErrorif 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:
- 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 bestengsgr.enums.Attachment. [TODO: Read more]prepare – Wenn
Trueangegeben 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 bestengsgr.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
durationaufgerufen, 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 bestengsgr.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:
- 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 sollstep_speed (
int|float) – Drehgeschwindigkeit im Verhältnis zum fehlenden Drehwinkel; wird multiplikativ angewandtpivot (
Pivot|int) – Drehpunkt, um den der Roboter dreht; entweder die Mitte des Roboters oder einer seiner Rädermin_speed (
int|None) – Mindestgeschwindigkeit, damit der Roboter beim Drehen nicht stehen bleibtmax_speed (
int|None) – Maximalgeschwindigkeit, damit der Roboter nicht zu langsam entschleunigtpid (
PID|None) – Die PID-Werte für die Bewegung; siehePIDtolerance (
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 sollspeed (
int|float) – Fahrgeschwindigkeit; bei negativen Werten fährt der Roboter rückwärts; zwischen -100 und 100ending_conditon – Zielbedingung; Bis wann/für wie lange die Bewegung ausgeführt werden soll
pid (
PID|None) – Die PID-Werte für die Bewegung; siehePIDaccelerate (
float) – Über welche Stecke der Roboter beschleunigen soll; in Prozent von derending_conditiondecelerate (
float) – Über welche Stecke der Roboter entschleunigen soll; in Prozent von derending_conditionbrake (
bool) – Ob der Roboter nach der Bewegung bremsen soll
- gsgr.movement.start_with_naR(alpha, radius)