Makro#
Įvadas#
„VEX AIM Python“ makrokomandos yra iš anksto sukurti kodo blokai, kuriuos galima nuvilkti į „Python“ projektą. Kiekviena makrokomanda yra „Python“ komandų grupė, kurios veikia kartu, kad robotas atliktų platesnį veiksmą.
Tai nėra pavieniai metodai, iškviečiami iš kodo. Vietoj to, kiekviena makrokomanda įterpiama kaip paruošta kodo seka, kurią galima naudoti tokią, kokia yra, arba redaguoti ją pridėjus prie projekto.
Šiame puslapyje kiekvienas „Python“ kodo blokas rodo faktinę kodo seką, kuri įterpiama, kai naudojama ta makrokomanda.
Žemiau pateikiamas visų makrokomandų sąrašas:
Emocijos – Priverskite robotą elgtis išraiškingai.
act happy— Priverčia robotą elgtis laimingai.act sad— Priverčia robotą elgtis liūdnai.act silly— Priverčia robotą elgtis kvailai.act angry— Priverčia robotą elgtis piktai.act excited— Priverčia robotą elgtis susijaudinusį.
DI vizija (sportinis kamuolys) – pasisukite link sportinių kamuolių arba juos surinkite.
turn right until sports ball— Sukasi į dešinę, kol aptinkamas sportinis kamuolys.turn left until sports ball— Sukasi į kairę, kol aptinkamas sportinis kamuolys.get sports ball— Judina robotą, kad paimtų sportinį kamuolį.
AI regėjimas (oranžinė statinė) – pasisukite link oranžinių statinių arba jas surinkite.
turn right until orange barrel— Sukasi į dešinę, kol aptinkamas oranžinis statinės gabalas.turn left until orange barrel— Sukasi į kairę, kol aptinkamas oranžinis statinės gabalas.get orange barrel— Perkelia robotą, kad surinktų oranžinę statinę.
DI regėjimas (mėlyna statinė) – pasukite link mėlynų statinių arba surinkite jas.
turn right until blue barrel— Sukasi į dešinę, kol aptinkamas mėlynas vamzdis.turn left until blue barrel— Sukasi į kairę, kol aptinkamas mėlynas vamzdis.get blue barrel— Perkelia robotą, kad surinktų mėlyną statinę.
DI regėjimas (AIM robotas) – pasisukti arba judėti link kitų AIM robotų.
turn right until AIM robot— Sukasi į dešinę, kol aptinkamas kitas AIM robotas.turn left until AIM robot— Sukasi į kairę, kol aptinkamas kitas AIM robotas.move to AIM robot— Juda link kito AIM roboto.
DI vizija (AprilTag) – pasukti arba judėti AprilTag link.
turn right until AprilTag“ — Sukasi į dešinę, kol aptinkamas „AprilTag“.turn left until AprilTag— Sukasi į kairę, kol aptinkamas „AprilTag“.move to AprilTag— Pereina link „AprilTag“.
Emocijos#
act happy#
Ši makrokomanda priverčia robotą elgtis laimingai rodydama laimingus veidus, grodama linksmą garsą, keisdama šviesos diodus ir judėdama pirmyn ir atgal. Naudokite ją, kai robotas turi reaguoti linksmai arba teigiamai.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda priverčia robotą elgtis liūdnai, rodydama liūdnus veidus, leisdama liūdną garsą, pritemdydama šviesos diodus ir lėtai judėdama skirtingomis kryptimis. Naudokite ją, kai robotas turėtų parodyti nusivylimą arba mažos energijos reakciją.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda priverčia robotą elgtis kvailai – jis sukasi, keičia veidus ir mirksi skirtingų spalvų LED šviesos diodais. Naudokite ją, kai reikia, kad robotas atliktų žaismingą ar netikėtą reakciją.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda priverčia robotą elgtis piktai, rodydama piktus veidus, leisdama piktą garsą, įjungdama raudonus šviesos diodus ir staigiai judėdama. Naudokite ją, kai robotas turėtų parodyti susierzinimą ar įspėjamąją reakciją.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda priverčia robotą elgtis susijaudinusį, rodydama susijaudinusią veidą, leisdama susijaudinimo garsą, greitai judėdama iš vienos pusės į kitą ir mirksėdama oranžiniais šviesos diodais. Naudokite ją, kai robotas turi švęsti arba reaguoti su didele energija.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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 vizija (sportinis kamuolys)#
turn right until sports ball#
Ši makrokomanda suka robotą į dešinę, kol dirbtinio intelekto regos jutiklis aptinka sportinį kamuolį, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti sportinio kamuolio prieš judant link jo arba jį paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda suka robotą į kairę, kol dirbtinio intelekto regos jutiklis aptinka sportinį kamuolį, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti sportinio kamuolio prieš judant link jo arba jį paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda judina robotą aptikto sportinio kamuolio link, kol robotas jį paima. Naudokite ją po to, kai robotas pamato sportinį kamuolį arba panaudojus „suk-iki-sportinio-kamuolio“ makrokomandą jam surasti.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo judėjimo ir posūkio greitį naudodami set_move_velocity ir set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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 vizija (oranžinė statinė)#
turn right until orange barrel#
Ši makrokomanda suka robotą į dešinę, kol dirbtinio intelekto regos jutiklis aptinka oranžinį statinę, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti oranžinės statinės prieš judant link jos arba ją paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda suka robotą į kairę, kol dirbtinio intelekto regos jutiklis aptinka oranžinį statinę, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti oranžinės statinės prieš judant link jos arba ją paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda judina robotą aptiktos oranžinės statinės link, kol robotas ją paima. Naudokite ją po to, kai robotas pamato oranžinę statinę arba panaudojus „suk-kol-oranžinė-statinė“ makrokomandą jai rasti.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo judėjimo ir posūkio greitį naudodami set_move_velocity ir set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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 vizija (mėlyna statinė)#
turn right until blue barrel#
Ši makrokomanda suka robotą į dešinę, kol dirbtinio intelekto regos jutiklis aptinka mėlyną statinę, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti mėlynos statinės prieš judant link jos arba ją paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda suka robotą į kairę, kol dirbtinio intelekto regos jutiklis aptinka mėlyną statinę, tada pasisuka aptikto objekto link. Naudokite ją, kai robotui reikia ieškoti mėlynos statinės prieš judant link jos arba ją paimant.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda judina robotą aptiktos mėlynos statinės link, kol robotas ją paima. Naudokite ją po to, kai robotas pamato mėlyną statinę arba panaudojus „suk-kol-mėlyna-statinė“ makrokomandą jai rasti.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo judėjimo ir posūkio greitį naudodami set_move_velocity ir set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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)
Dirbtinio intelekto vizija (AIM robotas)#
turn right until AIM robot#
Ši makrokomanda suka robotą į dešinę, kol DI regos jutiklis aptinka kitą VEX AIM kodavimo robotą, tada pasisuka link jo. Naudokite ją, kai robotui reikia ieškoti kito roboto prieš judant link jo.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda suka robotą į kairę, kol dirbtinio intelekto regos jutiklis aptinka kitą VEX AIM kodavimo robotą, tada pasisuka link jo. Naudokite ją, kai robotui reikia ieškoti kito roboto prieš judant link jo.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda judina robotą link kito VEX AIM kodavimo roboto, kol šis priartėja pakankamai arti, kad sustotų. Naudokite ją, kai robotas pamato kitą robotą arba panaudoję „apsuk, kol bus nukreiptas robotas“ makrokomandą jam surasti.
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo judėjimo ir posūkio greitį naudodami set_move_velocity ir set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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 vizija (AprilTag)#
turn right until AprilTag#
Ši makrokomanda suka robotą į dešinę, kol DI vaizdo jutiklis aptinka „AprilTag“ ID 0, tada pasisuka aptikto „AprilTag“ link. Naudokite ją, kai robotui reikia ieškoti „AprilTag“ prieš judant link jo. Norėdami pakeisti, iki kurio „AprilTag“ robotas suksis, pakeiskite 0 lauke TAG0 bet kokiu skaičiumi nuo 0 iki 37 (AprilTags nuo 5 iki 37 galima naudoti su atspausdintais „AprilTags“ iš AIM Printables.)
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda suka robotą į kairę, kol dirbtinio intelekto vaizdo jutiklis aptinka „AprilTag“ ID 0, tada pasisuka aptikto „AprilTag“ link. Naudokite ją, kai robotui reikia ieškoti „AprilTag“ prieš judant link jo. Norėdami pakeisti, iki kurio „AprilTag“ robotas suksis, pakeiskite 0 lauke TAG0 bet kokiu skaičiumi nuo 0 iki 37 (AprilTags nuo 5 iki 37 galima naudoti su atspausdintais „AprilTags“ iš AIM Printables.)
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo posūkio greitį naudodami set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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#
Ši makrokomanda judina robotą link „AprilTag“ ID 0, kol jis priartės prie jos pakankamai arti, kad sustotų. Naudokite ją, kai robotas pamatys „AprilTag“ arba kai panaudosite „turn-until-AprilTag“ makrokomandą jai surasti. Norėdami pakeisti, į kurią „AprilTag“ robotas judės, pakeiskite 0 lauke TAG0 bet kokiu skaičiumi nuo 0 iki 37 (AprilTags nuo 5 iki 37 galima naudoti su atspausdintomis „AprilTags“ iš AIM Printables.)
Pastaba: Jei robotui sunku aptikti objektus, pabandykite sumažinti jo judėjimo ir posūkio greitį naudodami set_move_velocity ir set_turn_velocity.
Žemiau pateiktame kode rodoma Python seka, kuri pridedama prie jūsų projekto, kai ši makrokomanda nuvelkama iš įrankių rinkinio. Galite naudoti seką tokią, kokia ji yra, arba redaguoti ją pridėję.
# 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)