Makro#
Ievads#
VEX AIM Python makro ir iepriekš izveidoti koda bloki, kurus var ievilkt Python projektā. Katrs makro ir Python komandu grupa, kas darbojas kopā, lai liktu robotam veikt plašāku darbību.
Tās nav atsevišķas metodes, kas tiek izsauktas no koda. Tā vietā katrs makro tiek ievietots kā gatava koda secība, ko var izmantot tādu, kāda tā ir, vai rediģēt pēc pievienošanas projektam.
Šajā lapā katrs Python koda bloks parāda faktisko koda secību, kas tiek ievietota, kad tiek izmantots šis makro.
Zemāk ir visu makro saraksts:
Emocijas — Lieciet robotam rīkoties izteiksmīgi.
act happy— Liek robotam uzvesties laimīgi.act sad— Liek robotam uzvesties skumji.act silly— Liek robotam uzvesties muļķīgi.act angry— Liek robotam izlikties dusmīgam.act excited— Liek robotam rīkoties satrauktam.
AI redze (sporta bumba) — pagriezieties sporta bumbu virzienā vai savāciet tās.
turn right until sports ball— Pagriežas pa labi, līdz tiek atrasta sporta bumba.turn left until sports ball— Pagriežas pa kreisi, līdz tiek atrasta sporta bumba.get sports ball— Pārvieto robotu, lai savāktu sporta bumbu.
AI redze (oranža muca) — pagriezies pret oranžām mucām vai savāc tās.
turn right until orange barrel— Pagriežas pa labi, līdz tiek atrasta oranža muca.turn left until orange barrel— Pagriežas pa kreisi, līdz tiek atrasta oranža muca.get orange barrel— Pārvieto robotu, lai savāktu oranžu mucu.
AI redze (zilā muca) — pagriezies pretī vai savāc zilās mucas.
turn right until blue barrel— Pagriežas pa labi, līdz tiek atrasts zils stobrs.turn left until blue barrel— Pagriežas pa kreisi, līdz tiek atrasta zilā muca.get blue barrel— Pārvieto robotu, lai savāktu zilu mucu.
Mākslīgā intelekta redze (AIM robots) — pagriezieties vai pārvietojieties citu AIM robotu virzienā.
turn right until AIM robot— Pagriežas pa labi, līdz tiek atklāts vēl viens AIM robots.turn left until AIM robot— Pagriežas pa kreisi, līdz tiek atklāts cits AIM robots.move to AIM robot— Pārvietojas cita AIM robota virzienā.
AI vīzija (AprilTag) — pagriezieties vai virzieties AprilTag virzienā.
turn right until AprilTag— Pagriežas pa labi, līdz tiek noteikts AprilTag.turn left until AprilTag— Pagriežas pa kreisi, līdz tiek noteikts AprilTag.move to AprilTag— Pārvietojas AprilTag virzienā.
Emocijas#
act happy#
Šis makrokomands liek robotam rīkoties laimīgi, rādot laimīgas sejas, atskaņojot priecīgu skaņu, mainot gaismas diodes un pārvietojoties uz priekšu un atpakaļ. Izmantojiet to, ja robotam ir jāreaģē priecīgā vai pozitīvā veidā.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro liek robotam uzvesties skumji, parādot skumjas sejas, atskaņojot skumju skaņu, izbalējot gaismas diodes un lēnām pārvietojoties dažādos virzienos. Izmantojiet to, ja robotam ir jāizrāda vīlusies vai zema enerģijas līmeņa reakcija.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro liek robotam uzvesties muļķīgi, griežoties, mainot sejas un mirgojot dažādās LED krāsās. Izmantojiet to, ja robotam ir jāveic rotaļīga vai pārsteidzoša reakcija.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro liek robotam rīkoties dusmīgi, parādot dusmīgas sejas, atskaņojot dusmīgu skaņu, iedegot sarkanās gaismas diodes un strauji pārvietojoties. Izmantojiet to, ja robotam ir jāizrāda neapmierinātības vai brīdinājuma reakcija.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makrokomands liek robotam rīkoties satrauktam, parādot satrauktu seju, atskaņojot satrauktu skaņu, ātri pārvietojoties no vienas puses uz otru un mirgojot oranžām gaismas diodēm. Izmantojiet to, ja robotam ir jāgaida vai jāreaģē ar lielu enerģiju.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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)
AI redze (sporta bumba)#
turn right until sports ball#
Šis makro pagriež robotu pa labi, līdz mākslīgā intelekta redzes sensors atrod sporta bumbu, pēc tam pagriežas pret atrasto objektu. Izmantojiet to, ja robotam ir jāmeklē sporta bumba, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pagriež robotu pa kreisi, līdz mākslīgā intelekta redzes sensors atrod sporta bumbu, pēc tam pagriežas pret atrasto objektu. Izmantojiet to, ja robotam ir jāmeklē sporta bumba, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pārvieto robotu uz atrasto sporta bumbu, līdz robots to savāc. Izmantojiet to pēc tam, kad robots ir ieraugis sporta bumbu vai pēc tam, kad esat izmantojis makro “apgriezties līdz sporta bumbai”, lai to atrastu.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota kustības un pagrieziena ātrumu, izmantojot set_move_velocity un set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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 redze (oranžā muca)#
turn right until orange barrel#
Šis makro pagriež robotu pa labi, līdz mākslīgā intelekta redzes sensors nosaka oranžu mucu, pēc tam pagriežas pret noteikto objektu. Izmantojiet to, ja robotam ir jāmeklē oranža muca, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pagriež robotu pa kreisi, līdz mākslīgā intelekta redzes sensors nosaka oranžu mucu, pēc tam pagriežas pretī noteiktajam objektam. Izmantojiet to, ja robotam ir jāmeklē oranža muca, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pārvieto robotu uz noteiktu oranžu mucu, līdz robots to savāc. Izmantojiet to pēc tam, kad robots ir ieraugis oranžu mucu vai pēc tam, kad esat izmantojis makro “pagriez, līdz oranžā muca” tās atrašanai.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota kustības un pagrieziena ātrumu, izmantojot set_move_velocity un set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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 redze (zilā muca)#
turn right until blue barrel#
Šis makro pagriež robotu pa labi, līdz mākslīgā intelekta redzes sensors nosaka zilu mucu, pēc tam pagriežas pret noteikto objektu. Izmantojiet to, ja robotam ir jāmeklē zila muca, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pagriež robotu pa kreisi, līdz mākslīgā intelekta redzes sensors nosaka zilu mucu, pēc tam pagriežas pret noteikto objektu. Izmantojiet to, ja robotam ir jāmeklē zila muca, pirms tas virzās uz to vai to savāc.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pārvieto robotu uz noteiktu zilu mucu, līdz robots to savāc. Izmantojiet to pēc tam, kad robots ir ieraugis zilu mucu vai pēc tam, kad esat izmantojis makro “pagriezies līdz zilai mucai”, lai to atrastu.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota kustības un pagrieziena ātrumu, izmantojot set_move_velocity un set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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)
Mākslīgā intelekta redze (AIM robots)#
turn right until AIM robot#
Šis makro pagriež robotu pa labi, līdz AI redzes sensors atrod citu VEX AIM kodēšanas robotu, pēc tam pagriežas tā virzienā. Izmantojiet to, ja robotam ir jāmeklē cits robots, pirms tas virzās uz to.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pagriež robotu pa kreisi, līdz AI redzes sensors atrod citu VEX AIM kodēšanas robotu, pēc tam pagriežas tā virzienā. Izmantojiet to, ja robotam ir jāmeklē cits robots, pirms tas virzās uz to.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pārvieto robotu cita VEX AIM kodēšanas robota virzienā, līdz tas ir pietiekami tuvu, lai apstātos. Izmantojiet to pēc tam, kad robots ir ieraugis citu robotu vai pēc tam, kad esat izmantojis makro “apgriezies, līdz AIM robots”, lai to atrastu.
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota kustības un pagrieziena ātrumu, izmantojot set_move_velocity un set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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 vīzija (AprilTag)#
turn right until AprilTag#
Šis makro pagriež robotu pa labi, līdz AI redzes sensors nosaka AprilTag ID 0, pēc tam pagriežas noteiktā AprilTag virzienā. Izmantojiet to, ja robotam ir jāmeklē AprilTag, pirms tas virzās uz to. Lai mainītu, līdz kuram AprilTag robots griezīsies, nomainiet 0 TAG0 ar jebkuru skaitli no 0 līdz 37 (AprilTags no 5 līdz 37 var izmantot ar izdrukātiem AprilTags no AIM Printables.)
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pagriež robotu pa kreisi, līdz AI redzes sensors nosaka AprilTag ID 0, pēc tam pagriežas noteiktā AprilTag virzienā. Izmantojiet to, ja robotam ir jāmeklē AprilTag, pirms tas virzās uz to. Lai mainītu, līdz kuram AprilTag robots griezīsies, nomainiet 0 TAG0 ar jebkuru skaitli no 0 līdz 37 (AprilTags no 5 līdz 37 var izmantot ar izdrukātiem AprilTags no AIM Printables.)
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota pagrieziena ātrumu ar set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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#
Šis makro pārvieto robotu AprilTag ID 0 virzienā, līdz tas ir pietiekami tuvu, lai apstātos. Izmantojiet to pēc tam, kad robots ir redzējis AprilTag vai pēc tam, kad esat izmantojis makro “turn-until-AprilTag”, lai to atrastu. Lai mainītu, uz kuru AprilTag robots pārvietosies, nomainiet 0 iekš TAG0 ar jebkuru skaitli no 0 līdz 37 (AprilTags no 5 līdz 37 var izmantot ar izdrukātajām AprilTags vērtībām no AIM Printables.)
Piezīme: Ja robotam ir grūtības noteikt objektus, mēģiniet samazināt robota kustības un pagrieziena ātrumu, izmantojot set_move_velocity un set_turn_velocity.
Zemāk redzamajā kodā ir parādīta Python secība, kas tiek pievienota jūsu projektam, kad šis makro tiek vilkts no rīklodziņa. Varat izmantot secību tādu, kāda tā ir, vai rediģēt to pēc pievienošanas.
# 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)