Makro#
Einführung#
VEX AIM Python-Makros sind vorgefertigte Codeblöcke, die per Drag & Drop in ein Python-Projekt eingefügt werden können. Jedes Makro besteht aus einer Gruppe von Python-Befehlen, die zusammenarbeiten, um den Roboter ein größeres Verhalten ausführen zu lassen.
Es handelt sich hierbei nicht um einzelne Methoden, die aus dem Code aufgerufen werden. Stattdessen wird jedes Makro als fertige Codesequenz eingefügt, die entweder direkt verwendet oder nach dem Hinzufügen zu einem Projekt bearbeitet werden kann.
Auf dieser Seite zeigt jeder Python-Codeblock die tatsächliche Codefolge, die beim Verwenden dieses Makros eingefügt wird.
Nachfolgend finden Sie eine Liste aller Makros:
Emotionen – Lassen Sie den Roboter ausdrucksstark agieren.
act happy— Lässt den Roboter glücklich handeln.act sad— Lässt den Roboter traurig wirken.act silly— Lässt den Roboter albern handeln.act angry— Lässt den Roboter wütend reagieren.act excited— Lässt den Roboter aufgeregt reagieren.
KI-Vision (Sportball) – Sportbälle anvisieren oder einsammeln.
turn right until sports ball— Rechts abbiegen, bis ein Sportball erkannt wird.turn left until sports ball— Biegen links ab, bis ein Sportball erkannt wird.get sports ball— Bewegt den Roboter, um einen Sportball einzusammeln.
KI-Vision (Oranges Fass) – Drehe dich zu den orangen Fässern oder sammle sie ein.
turn right until orange barrel— Rechts abbiegen, bis ein orangefarbenes Fass erkannt wird.turn left until orange barrel— Links abbiegen, bis ein orangefarbenes Fass erkannt wird.get orange barrel— Bewegt den Roboter, um ein oranges Fass einzusammeln.
KI-Vision (Blaues Fass) – Drehe dich zu blauen Fässern oder sammle sie ein.
turn right until blue barrel— Rechts abbiegen, bis ein blaues Fass erkannt wird.turn left until blue barrel— Nach links abbiegen, bis ein blaues Fass erkannt wird.get blue barrel— Bewegt den Roboter, um ein blaues Fass einzusammeln.
KI-Vision (AIM-Roboter) – Sich anderen AIM-Robotern zuwenden oder auf sie zusteuern.
turn right until AIM robot— Dreht sich nach rechts, bis ein weiterer AIM-Roboter erkannt wird.turn left until AIM robot— Dreht sich nach links, bis ein anderer AIM-Roboter erkannt wird.move to AIM robot— Bewegt sich auf einen anderen AIM-Roboter zu.
KI-Vision (AprilTag) – Sich AprilTags zuwenden oder sich ihnen zuwenden.
turn right until AprilTag— Rechts abbiegen, bis ein AprilTag erkannt wird.turn left until AprilTag— Biegen links ab, bis ein AprilTag erkannt wird.move to AprilTag— Bewegt sich auf ein AprilTag zu.
Emotionen#
act happy#
Dieses Makro bewirkt, dass der Roboter fröhlich wirkt, indem es fröhliche Gesichter zeigt, einen fröhlichen Ton abspielt, die LEDs blinken lässt und sich hin und her bewegt. Verwenden Sie es, wenn der Roboter fröhlich oder positiv reagieren soll.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# act happy
robot.screen.show_emoji(HAPPY)
wait(.5,SECONDS)
robot.sound.play(ACT_HAPPY)
wait(115, MSEC)
robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.led.on(ALL_LEDS, YELLOW)
robot.turn_for(RIGHT, 4, 100)
robot.led.on(ALL_LEDS, WHITE)
robot.screen.show_emoji(HAPPY, LOOK_LEFT)
robot.turn_for(RIGHT, -8, 100)
robot.led.on(ALL_LEDS, YELLOW)
robot.screen.show_emoji(HAPPY, LOOK_RIGHT)
robot.turn_for(RIGHT, 4, 100)
wait(100,MSEC)
for i in range(3):
robot.screen.show_emoji(QUIET)
robot.led.on(ALL_LEDS, WHITE)
robot.move_for(1,-90)
robot.screen.show_emoji(HAPPY)
robot.led.on(ALL_LEDS, YELLOW)
robot.move_for(1,90)
robot.stop_all_movement()
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)
act sad#
Dieses Makro lässt den Roboter traurig wirken, indem es traurige Gesichter zeigt, einen traurigen Ton abspielt, die LEDs dimmen lässt und ihn sich langsam in verschiedene Richtungen bewegt. Verwenden Sie es, wenn der Roboter enttäuscht oder energielos reagieren soll.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# act sad
robot.screen.show_emoji(SAD)
wait(.5,SECONDS)
robot.sound.play(ACT_SAD)
wait(115, MSEC)
robot.led.on(ALL_LEDS, Color(0, 0, 250))
robot.screen.show_emoji(SAD, LOOK_RIGHT)
robot.move_for(11, 135, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 100))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 315, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 50))
robot.screen.show_emoji(SAD, LOOK_LEFT)
robot.move_for(11, 225, 70)
robot.led.on(ALL_LEDS, Color(0, 0, 10))
robot.screen.show_emoji(SAD, LOOK_FORWARD)
robot.move_for(11, 45, 70)
wait(.5,SECONDS)
robot.led.off(ALL_LEDS)
act silly#
Dieses Makro lässt den Roboter alberne Aktionen ausführen, indem er sich dreht, Gesichtsausdrücke wechselt und verschiedene LED-Farben blinken lässt. Verwenden Sie es, wenn der Roboter eine verspielte oder überraschende Reaktion zeigen soll.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# act silly
robot.screen.show_emoji(SILLY)
wait(.5,SECONDS)
robot.sound.play(ACT_SILLY)
wait(115,MSEC)
robot.turn_for(RIGHT, 360, 100, wait=False)
face_list = [SILLY, HAPPY, EXCITED, PROUD, THRILLED, LAUGHING]
colors = [BLUE, CYAN, GREEN, ORANGE, PURPLE, RED, WHITE, YELLOW]
while robot.is_turn_active():
robot.screen.show_emoji(SILLY)
robot.led.on(ALL_LEDS, random.choice(colors))
wait(110,MSEC)
robot.screen.show_emoji(random.choice(face_list))
wait(110,MSEC)
robot.screen.show_emoji(SILLY)
robot.led.off(ALL_LEDS)
wait(.5,SECONDS)
act angry#
Dieses Makro lässt den Roboter wütend reagieren, indem es wütende Gesichter zeigt, einen wütenden Ton abspielt, die LEDs rot leuchten lässt und sich ruckartig bewegt. Verwenden Sie es, wenn der Roboter frustriert oder warnend reagieren soll.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# act angry
robot.screen.show_emoji(ANGRY)
wait(.5,SECONDS)
robot.sound.play(ACT_ANGRY)
wait(115,MSEC)
robot.led.on(ALL_LEDS, RED)
robot.move_for(25, 0, 50)
wait(50,MSEC)
for i in range(5):
robot.screen.show_emoji(ANNOYED)
robot.move_for(5, 180, 50)
robot.screen.show_emoji(ANGRY)
wait(50,MSEC)
wait(.5,SECONDS)
robot.led.off(ALL_LEDS)
act excited#
Dieses Makro lässt den Roboter aufgeregt wirken, indem es ein aufgeregtes Gesicht zeigt, einen aufgeregten Ton abspielt, sich schnell hin und her bewegt und orangefarbene LEDs blinken lässt. Verwenden Sie es, wenn der Roboter feiern oder mit viel Energie reagieren soll.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# act excited
robot.screen.show_emoji(EXCITED)
wait(.5,SECONDS)
robot.sound.play(ACT_EXCITED)
wait(115, MSEC)
for angle in [3,-3,2,-2,2,-2,2,-2,1,-1]:
if angle > 0:
robot.screen.show_emoji(EXCITED, LOOK_RIGHT)
robot.led.on(LED4, ORANGE)
robot.led.on(LED5, ORANGE)
robot.led.on(LED6, ORANGE)
robot.led.off(LED1)
else:
robot.screen.show_emoji(EXCITED, LOOK_LEFT)
robot.led.on(LED1, ORANGE)
robot.led.on(LED2, ORANGE)
robot.led.on(LED3, ORANGE)
robot.led.off(LED6)
robot.turn_for(RIGHT, angle)
robot.led.off(ALL_LEDS)
robot.screen.show_emoji(EXCITED, LOOK_FORWARD)
wait(.5,SECONDS)
KI-Vision (Sportball)#
turn right until sports ball#
Dieses Makro lenkt den Roboter nach rechts, bis der KI-Vision-Sensor einen Sportball erkennt. Anschließend dreht er sich zum erkannten Objekt. Verwenden Sie es, wenn der Roboter nach einem Sportball suchen muss, bevor er sich ihm nähert oder ihn aufnimmt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn right until sports ball is detected
robot.turn(RIGHT)
while True:
vision_data = robot.vision.get_data(SPORTS_BALL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
turn left until sports ball#
Dieses Makro dreht den Roboter nach links, bis der KI-Vision-Sensor einen Sportball erkennt. Anschließend dreht er sich zum erkannten Objekt. Verwenden Sie es, wenn der Roboter nach einem Sportball suchen muss, bevor er sich ihm nähert oder ihn aufnimmt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn left until sports ball is detected
robot.turn(LEFT)
while True:
vision_data = robot.vision.get_data(SPORTS_BALL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
get sports ball#
Dieses Makro bewegt den Roboter so lange auf einen erkannten Sportball zu, bis er ihn eingesammelt hat. Verwenden Sie es, nachdem der Roboter einen Sportball sehen kann oder nachdem Sie mit einem anderen Makro, das den Roboter bis zum Sportball dreht, einen gefunden haben.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Bewegungs- und Drehgeschwindigkeit des Roboters mit set_move_velocity und set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Get sports ball
while True:
vision_data = robot.vision.get_data(SPORTS_BALL)
if vision_data[0].exists:
if robot.has_sports_ball():
robot.stop_all_movement()
break
else:
robot.move_at(vision_data[0].bearing)
else:
robot.move_at(0)
wait(20, MSEC)
AI Vision (Orange Barrel)#
turn right until orange barrel#
Dieses Makro lenkt den Roboter nach rechts, bis der KI-Vision-Sensor ein orangefarbenes Fass erkennt. Anschließend dreht er sich in Richtung des erkannten Objekts. Verwenden Sie es, wenn der Roboter nach einem orangefarbenen Fass suchen muss, bevor er sich darauf zubewegt oder es einsammelt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn right until orange barrel is detected
robot.turn(RIGHT)
while True:
vision_data = robot.vision.get_data(ORANGE_BARREL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
turn left until orange barrel#
Dieses Makro dreht den Roboter nach links, bis der KI-Vision-Sensor ein orangefarbenes Fass erkennt. Anschließend dreht er sich in Richtung des erkannten Objekts. Verwenden Sie es, wenn der Roboter nach einem orangefarbenen Fass suchen muss, bevor er sich darauf zubewegt oder es einsammelt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn left until orange barrel is detected
robot.turn(LEFT)
while True:
vision_data = robot.vision.get_data(ORANGE_BARREL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
get orange barrel#
Dieses Makro bewegt den Roboter so lange auf ein erkanntes orangefarbenes Fass zu, bis er es eingesammelt hat. Verwenden Sie es, nachdem der Roboter ein orangefarbenes Fass sehen kann oder nachdem Sie mit einem anderen Makro, das den Roboter bis zum Erreichen eines orangefarbenen Fasses dreht, ein solches gefunden haben.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Bewegungs- und Drehgeschwindigkeit des Roboters mit set_move_velocity und set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Get orange barrel
while True:
vision_data = robot.vision.get_data(ORANGE_BARREL)
if vision_data[0].exists:
if robot.has_orange_barrel():
robot.stop_all_movement()
break
else:
robot.move_at(vision_data[0].bearing)
else:
robot.move_at(0)
wait(20, MSEC)
AI Vision (Blue Barrel)#
turn right until blue barrel#
Dieses Makro dreht den Roboter nach rechts, bis der KI-Vision-Sensor ein blaues Fass erkennt. Anschließend dreht er sich in Richtung des erkannten Objekts. Verwenden Sie es, wenn der Roboter nach einem blauen Fass suchen muss, bevor er sich darauf zubewegt oder es einsammelt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn right until blue barrel is detected
robot.turn(RIGHT)
while True:
vision_data = robot.vision.get_data(BLUE_BARREL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
turn left until blue barrel#
Dieses Makro dreht den Roboter nach links, bis der KI-Vision-Sensor ein blaues Fass erkennt. Anschließend dreht er sich in Richtung des erkannten Objekts. Verwenden Sie es, wenn der Roboter nach einem blauen Fass suchen muss, bevor er sich darauf zubewegt oder es einsammelt.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn left until blue barrel is detected
robot.turn(LEFT)
while True:
vision_data = robot.vision.get_data(BLUE_BARREL)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
get blue barrel#
Dieses Makro bewegt den Roboter so lange auf ein erkanntes blaues Fass zu, bis er es eingesammelt hat. Verwenden Sie es, nachdem der Roboter ein blaues Fass sehen kann oder nachdem Sie mit einem anderen Makro, das den Roboter zum Erreichen eines blauen Fasses bewegt, ein solches gefunden haben.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Bewegungs- und Drehgeschwindigkeit des Roboters mit set_move_velocity und set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Get blue barrel
while True:
vision_data = robot.vision.get_data(BLUE_BARREL)
if vision_data[0].exists:
if robot.has_blue_barrel():
robot.stop_all_movement()
break
else:
robot.move_at(vision_data[0].bearing)
else:
robot.move_at(0)
wait(20, MSEC)
AI Vision (AIM-Roboter)#
turn right until AIM robot#
Dieses Makro dreht den Roboter nach rechts, bis der KI-Vision-Sensor einen anderen VEX AIM-Codierungsroboter erkennt, und dreht ihn dann zu diesem hin. Verwenden Sie es, wenn der Roboter nach einem anderen Roboter suchen muss, bevor er sich ihm nähert.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn right until AIM robot is detected
robot.turn(RIGHT)
while True:
vision_data = robot.vision.get_data(AIM_ROBOT)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
turn left until AIM robot#
Dieses Makro dreht den Roboter nach links, bis der KI-Vision-Sensor einen anderen VEX AIM-Codierungsroboter erkennt, und dreht ihn dann zu diesem hin. Verwenden Sie es, wenn der Roboter nach einem anderen Roboter suchen muss, bevor er sich ihm nähert.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn left until AIM robot is detected
robot.turn(LEFT)
while True:
vision_data = robot.vision.get_data(AIM_ROBOT)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
move to AIM robot#
Dieses Makro bewegt den Roboter auf einen anderen VEX AIM-Codierungsroboter zu, bis er nahe genug ist, um anzuhalten. Verwenden Sie es, nachdem der Roboter einen anderen Roboter sehen kann oder nachdem Sie mit einem anderen Makro (Drehen bis AIM-Roboter) einen solchen gefunden haben.
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Bewegungs- und Drehgeschwindigkeit des Roboters mit set_move_velocity und set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Move to AIM robot
while True:
vision_data = robot.vision.get_data(AIM_ROBOT)
if vision_data[0].exists:
if vision_data[0].width >= 140:
robot.stop_all_movement()
break
else:
robot.move_at(vision_data[0].bearing)
else:
robot.move_at(0)
wait(20, MSEC)
AI Vision (AprilTag)#
turn right until AprilTag#
Dieses Makro dreht den Roboter nach rechts, bis der KI-Vision-Sensor die AprilTag-ID 0 erkennt. Anschließend dreht er sich in Richtung des erkannten AprilTags. Verwenden Sie es, wenn der Roboter nach einem AprilTag suchen muss, bevor er sich ihm nähert. Um den AprilTag zu ändern, zu dem der Roboter sich dreht, ersetzen Sie die 0 in TAG0 durch eine beliebige Zahl von 0 bis 37 (Die AprilTags 5 bis 37 können mit gedruckten AprilTags von AIM Printables verwendet werden.)
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn right until AprilTag ID 0 is detected
robot.turn(RIGHT)
while True:
vision_data = robot.vision.get_data(TAG0)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
turn left until AprilTag#
Dieses Makro dreht den Roboter nach links, bis der KI-Vision-Sensor die AprilTag-ID 0 erkennt. Anschließend dreht er sich in Richtung des erkannten AprilTags. Verwenden Sie es, wenn der Roboter nach einem AprilTag suchen muss, bevor er sich ihm nähert. Um den AprilTag zu ändern, zu dem der Roboter sich dreht, ersetzen Sie die 0 in TAG0 durch eine beliebige Zahl von 0 bis 37 (Die AprilTags 5 bis 37 können mit gedruckten AprilTags von AIM Printables verwendet werden.)
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Drehgeschwindigkeit des Roboters mit set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Turn left until AprilTag ID 0 is detected
robot.turn(LEFT)
while True:
vision_data = robot.vision.get_data(TAG0)
if vision_data[0].exists:
# Turn to the object by adding your current heading and the vision bearing offset
robot.turn_to(robot.inertial.get_heading() + vision_data[0].bearing)
break
wait(20, MSEC)
move to AprilTag#
Dieses Makro bewegt den Roboter in Richtung AprilTag ID 0, bis er nahe genug ist, um anzuhalten. Verwenden Sie es, nachdem der Roboter ein AprilTag erfasst hat oder nachdem Sie mit einem „Drehen bis AprilTag“-Makro ein solches gefunden haben. Um das AprilTag zu ändern, zu dem der Roboter fährt, ersetzen Sie die 0 in TAG0 durch eine beliebige Zahl von 0 bis 37 (AprilTags 5 bis 37 können mit gedruckten AprilTags von AIM Printables verwendet werden).
Hinweis: Falls der Roboter Schwierigkeiten hat, Objekte zu erkennen, versuchen Sie, die Bewegungs- und Drehgeschwindigkeit des Roboters mit set_move_velocity und set_turn_velocity zu verringern.
Der folgende Code zeigt die Python-Sequenz, die Ihrem Projekt hinzugefügt wird, wenn Sie dieses Makro aus der Toolbox ziehen. Sie können die Sequenz unverändert verwenden oder sie nach dem Hinzufügen bearbeiten.
# Move to AprilTag ID 0
while True:
vision_data = robot.vision.get_data(TAG0)
if vision_data[0].exists:
if vision_data[0].width >= 60:
robot.stop_all_movement()
break
else:
robot.move_at(vision_data[0].bearing)
else:
robot.move_at(0)
wait(20, MSEC)