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.

Apaļš kompasa ciparnīca no 0 līdz 315 grādiem, kas ieskauj tumši pelēku displeju ar tumši zilu ekrānu. Robota priekšpuse ir vērsta 0 grādu leņķī pret kompasa ciparnīcu.

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.

Ieguvēji — Atgriež robota stāvokli un pozīciju.

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

angle

Leņķis grādos, kādā pārvietojas robots. Tas var būt vesels skaitlis vai decimālskaitlis no -360 līdz 360.

velocity

Neobligāti. Pārvietošanās ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 200 milimetriem sekundē, izmantojot MMPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). Ja ātrums nav norādīts, robots pārvietojas ar pašreizējo kustības ātrumu.

units

Pēc izvēles. Ātruma mērvienība: PERCENT (pēc noklusējuma) vai MMPS (milimetri sekundē).

# 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

distance

Robota pārvietojuma attālums milimetros (mm). Tas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

angle

Leņķis grādos, kādā pārvietojas robots. Tas var būt vesels skaitlis vai decimālskaitlis no -360 līdz 360.

velocity

Neobligāti. Pārvietošanās ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 200 milimetriem sekundē, izmantojot MMPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). Ja ātrums nav norādīts, robots pārvietojas ar pašreizējo kustības ātrumu.

units

Pēc izvēles. Ātruma mērvienība: PERCENT (pēc noklusējuma) vai MMPS (milimetri sekundē).

wait

Neobligāti. wait=True (noklusējums) liek projektam gaidīt, līdz robots ir beidzis kustību, pirms tiek palaista nākamā koda rinda. wait=False liek nekavējoties palaist nākamo koda rindu.

# 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

forward

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.

rightward

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.

rotation

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

direction

Robota griešanās virziens: LEFT vai RIGHT.

velocity

Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 150 grādiem sekundē, izmantojot DPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). Ja ātrums nav norādīts, robots griežas ar pašreizējo pagrieziena ātrumu.

units

Neobligāti. Ātruma mērvienība: DPS (grādi sekundē, pēc noklusējuma) vai PERCENT.

# 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

direction

Robota griešanās virziens: LEFT vai RIGHT.

angle

Robota pagriezienu grādu skaits no -360 līdz 360 grādiem. Tas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

velocity

Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 150 grādiem sekundē, izmantojot DPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). Ja ātrums nav norādīts, robots griežas ar pašreizējo pagrieziena ātrumu.

units

Neobligāti. Ātruma mērvienība: DPS (grādi sekundē, pēc noklusējuma) vai PERCENT.

wait

Neobligāti. wait=True (noklusējums) liek projektam gaidīt, līdz robots ir pabeidzis pagriešanos, pirms tiek palaista nākamā koda rinda. wait=False liek nekavējoties palaist nākamo koda rindu.

# 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

heading

Virziens, ar kuru robotam jāgriežas, no -360 līdz 360 grādiem.

velocity

Neobligāti. Pagriešanas ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 150 grādiem sekundē, izmantojot DPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). Ja ātrums nav norādīts, robots griežas ar pašreizējo pagrieziena ātrumu.

units

Neobligāti. Ātruma mērvienība: DPS (grādi sekundē, pēc noklusējuma) vai PERCENT.

wait

Neobligāti. wait=True (noklusējums) liek projektam gaidīt, līdz robots ir pabeidzis pagriešanos, pirms tiek palaista nākamā koda rinda. wait=False liek nekavējoties palaist nākamo koda rindu.

# 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

velocity

Pārvietošanās ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 200 milimetriem sekundē, izmantojot MMPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

units

Pēc izvēles. Ātruma mērvienība: PERCENT (pēc noklusējuma) vai MMPS (milimetri sekundē).

# 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

velocity

Pagriešanas ātrums no 0% līdz 100%, izmantojot PERCENT, vai no 0 līdz 150 grādiem sekundē, izmantojot DPSTas var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

units

Neobligāti. Ātruma mērvienība: DPS (grādi sekundē, pēc noklusējuma) vai PERCENT.

# 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

x

Robotam iestatāmā x pozīcijas vērtība milimetros. Tā var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

y

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()