Kustība#
Ievads#
VEX AIM kodēšanas robots izmanto holonomisku piedziņu, lai pārvietotos uz priekšu, atpakaļ, pa kreisi, pa labi vai leņķī, vienlaikus spējot arī patstāvīgi pagriezties. Kustību metodes kontrolē, kā robots pārvietojas un griežas, cik ātri tas pārvietojas un kā tiek izsekota tā x un y pozīcija.

Zemāk ir pieejamo metožu saraksts:
Darbības — Pārvietot un pagriezt robotu.
move_at— Pārvieto robotu noteiktā leņķī uz visiem laikiem.move_for— Pārvieto robotu noteiktā leņķī noteiktā attālumā.move_with_vectors— Pārvieto robotu, izmantojot uz vektoriem balstītas x, y un rotācijas vērtības.turn— Pagriež robotu pa kreisi vai pa labi uz visiem laikiem.turn_for— Pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu.turn_to— Pagriež robotu noteiktā virzienā.stop_all_movement— Aptur visu robota kustību.
Mutatori — iestatiet robota kustības vērtības.
set_move_velocity— Norāda robotam, cik ātri pārvietoties.set_turn_velocity— Norāda robotam, cik ātri griezties.set_xy_position— Maina robota pašreizējo x un y pozīciju uz jaunām vērtībām.
Ieguvēji — Atgriež robota stāvokli un pozīciju.
get_x_position— Atgriež robota pašreizējo x koordinātu.get_y_position— Atgriež robota pašreizējo y koordinātu.is_move_active— Atgriež, vai robots kustas.is_turn_active— Atgriež, vai robots griežas.is_stopped— Atgriež, vai robots nekustas un negriežas.
Darbības#
move_at#
move_at pārvieto robotu uz visiem laikiem noteiktā leņķī. Leņķis ir relatīvs attiecībā pret robota pašreizējo pozīciju. Robots turpinās kustēties, līdz tam tiks dota cita darbība, piemēram, pārvietošanās citā leņķī, pagriešana vai apstāšanās.
Lietojums:
robot.move_at(angle, velocity, units)
Parametri |
Apraksts |
|---|---|
|
Leņķis grādos, kādā pārvietojas robots. Tas var būt vesels skaitlis vai decimālskaitlis no -360 līdz 360. |
|
Neobligāti. Pārvietošanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība: |
# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()
# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()
# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()
move_for#
move_for pārvieto robotu noteiktā leņķī noteiktā attālumā. Leņķis ir relatīvs attiecībā pret robota pašreizējo pozīciju. Projekts gaidīs, līdz robots būs pabeidzis kustību, pirms tiks palaista nākamā koda rinda.
Lietojums:
robot.move_for(distance, angle, velocity, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota pārvietojuma attālums milimetros (mm). Tas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). |
|
Leņķis grādos, kādā pārvietojas robots. Tas var būt vesels skaitlis vai decimālskaitlis no -360 līdz 360. |
|
Neobligāti. Pārvietošanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība: |
|
Neobligāti. |
# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)
# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)
# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
move_with_vectors#
Vektors ir veids, kā aprakstīt, cik ātri kaut kas pārvietojas un kādā virzienā tas pārvietojas. move_with_vectors pārvieto robotu, izmantojot uz vektoru balstītu kustību. Robots apvieno kustības uz priekšu, pa labi un rotācijas ātruma vērtības, lai radītu vienmērīgu kustību. Robots turpinās kustēties, izmantojot šo vektoru, līdz tam tiks dota cita darbība, piemēram, kustība citā leņķī, pagriešana vai apstāšanās.
Piezīme: Šī metode iestata kustības un pagrieziena ātruma vērtības tieši, tāpēc tā neizmanto set_move_velocity vai set_turn_velocity.
Lietojums:
robot.move_with_vectors(forward, rightward, rotation)
Parametri |
Apraksts |
|---|---|
|
Robota ātrums pa y asi no -100% līdz 100%. Negatīvas vērtības pārvieto robotu atpakaļ, bet pozitīvas vērtības to pārvieto uz priekšu. |
|
Robota ātrums pa x asi no -100% līdz 100%. Negatīvas vērtības pārvieto robotu pa kreisi, bet pozitīvas vērtības – pa labi. |
|
Robota griešanās ātrums no -100% līdz 100%. Negatīvas vērtības griež robotu pretēji pulksteņrādītāja virzienam, bet pozitīvas vērtības - pulksteņrādītāja virzienā. |
# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()
# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()
# Scaling movement using the controller joystick
while True:
# Move forward (and backwards) slower than axis1 input
forward = controller.axis1.position() * 0.7
# Move right (and left) faster than axis2 input
rightward = controller.axis2.position() * 1.5
robot.move_with_vectors(forward, rightward, 0)
wait(5, MSEC)
turn#
turn pagriež robotu pa kreisi vai pa labi uz visiem laikiem. Robots turpinās griezties, līdz tam tiks dota cita darbība, piemēram, pārvietošanās vai apstāšanās.
Lietojums:
robot.turn(direction, velocity, units)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
|
Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot |
|
Neobligāti. Ātruma mērvienība: |
# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()
# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()
turn_for#
turn_for pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu. Pagrieziens ir relatīvs attiecībā pret pašreizējo virzienu, kurā robots ir vērsts. Projekts gaidīs, līdz robots būs pabeidzis pagriešanos, pirms tiks palaista nākamā koda rinda.
Lietojums:
robot.turn_for(direction, angle, velocity, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
|
Robota pagriezienu grādu skaits no -360 līdz 360 grādiem. Tas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). |
|
Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot |
|
Neobligāti. Ātruma mērvienība: |
|
Neobligāti. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)
# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
turn_to#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. turn_to pagriež robotu noteiktā virzienā. Robots pagriezīsies īsākajā virzienā, lai sasniegtu mērķa virzienu.
Robota sākuma virziens ir 0 grādi.
Projekts gaidīs, līdz robots būs pabeidzis griešanos, pirms tiks palaista nākamā koda rinda.
Lietojums:
robot.turn_to(heading, velocity, units, wait)
Parametri |
Apraksts |
|---|---|
|
Virziens, ar kuru robotam jāgriežas, no -360 līdz 360 grādiem. |
|
Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot |
|
Neobligāti. Ātruma mērvienība: |
|
Neobligāti. |
# Turn to face each cardinal directions.
robot.turn_to(90)
wait(2, SECONDS)
robot.turn_to(180)
wait(2, SECONDS)
robot.turn_to(270)
wait(2, SECONDS)
robot.turn_to(0)
# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)
# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
stop_all_movement#
stop_all_movement aptur visu robota kustību.
Lietojums:
robot.stop_all_movement()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Mutatori#
set_move_velocity#
set_move_velocity norāda robotam, cik ātri pārvietoties. Augstāka procentuālā vērtība liek robotam kustēties ātrāk, bet zemāka procentuālā vērtība liek robotam kustēties lēnāk.
Katrs projekts sākas ar robota pārvietošanos ar noklusējuma ātrumu 50%.
Kustības ātrums 100% ir līdzvērtīgs 200 milimetriem sekundē.
Lietojums:
robot.set_move_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Pārvietošanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība: |
# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)
set_turn_velocity#
set_turn_velocity norāda robotam, cik ātri griezties. Augstāka procentuālā vērtība liek robotam griezties ātrāk, bet zemāka procentuālā vērtība liek robotam griezties lēnāk.
Katrs projekts sākas ar robota griešanos ar noklusējuma ātrumu 50% (75 grādi sekundē).
Lietojums:
robot.set_turn_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Pagriešanas ātrums no 0% līdz 100%, izmantojot |
|
Neobligāti. Ātruma mērvienība: |
# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)
set_xy_position#
set_xy_position maina robota pašreizējo x un y pozīciju uz jaunām vērtībām.
Piemēram, ja robots ir attālinājies no sākuma punkta, iestatot x uz 0 un y uz 0, robota pašreizējā atrašanās vieta kļūst par jauno 0, 0 pozīciju. Pēc tam robots var izsekot turpmākajām pozīcijām, pamatojoties uz šo jauno vērtību.
Lietojums:
robot.set_xy_position(x, y)
Parametri |
Apraksts |
|---|---|
|
Robotam iestatāmā x pozīcijas vērtība milimetros. Tā var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). |
|
Robotam iestatāmā y pozīcijas vērtība milimetros. Tā var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). |
# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())
Getteri#
get_x_position#
get_x_position atgriež robota pašreizējo x koordinātu milimetros.
Projekta sākumā robota x pozīcija tiek iestatīta uz 0. X pozīcija mainās, robotam pārvietojoties pa kreisi vai pa labi, un to var iestatīt, izmantojot metodi set_xy_position.
Lietojums:
robot.get_x_position()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Print the start and end x-value
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())
get_y_position#
get_y_position atgriež robota pašreizējo y koordinātu milimetros.
Projekta sākumā robota y pozīcija tiek iestatīta uz 0. Y pozīcija mainās, robotam pārvietojoties uz priekšu vai atpakaļ, un to var iestatīt, izmantojot metodi set_xy_position.
Lietojums:
robot.get_y_position()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Print the start and end y-value
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())
is_move_active#
is_move_active atgriež, vai robots kustas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots kustas.False— Robots nekustas.
Šī metode darbojas kopā ar Motion metodēm, kurām ir parametrs wait , piemēram, move_for.
Lietojums:
robot.is_move_active()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, ORANGE)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_turn_active#
is_turn_active atgriež, vai robots griežas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots griežas.False— Robots negriežas.
Šī metode darbojas kopā ar Motion metodēm, kurām ir parametrs wait , piemēram, turn_for un turn_to.
Lietojums:
robot.is_turn_active()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False)
while robot.is_turn_active():
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_stopped#
is_stopped atgriež, vai robots nekustas un negriežas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots nekustas un negriežas.False— Robots kustas vai griežas.
Lietojums:
robot.is_stopped()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Blink all the LEDs while the robot is moving or turning
def light_show():
# Flash LEDs while the robot is moving or turning
while not robot.is_stopped():
robot.led.on(ALL_LEDS, GREEN)
wait(.5, SECONDS)
robot.led.on(ALL_LEDS, PURPLE)
wait(.5, SECONDS)
robot.led.off(ALL_LEDS)
robot.move_for(200, 0, wait=False)
light_show()
robot.turn_for(RIGHT, 180, wait=False)
light_show()