Liike#
Johdanto#
VEX AIM -koodausrobotti käyttää holonomista voimansiirtoa liikkuakseen eteen- ja taaksepäin, vasemmalle, oikealle tai kulmassa ja samalla kääntyäkseen itsenäisesti. Liikemenetelmät ohjaavat robotin liikkeitä ja kääntymisiä, sen nopeutta ja sen x- ja y-asennon seurantaa.

Alla on luettelo käytettävissä olevista menetelmistä:
Toiminnot — Liikuta ja käännä robottia.
move_at— Liikuttaa robottia tietyssä kulmassa ikuisesti.move_for— Liikuttaa robottia tietyssä kulmassa tietyn matkan.move_with_vectors— Liikuttaa robottia käyttäen vektoripohjaisia x-, y- ja kiertoarvoja.turn— Kääntää robottia vasemmalle tai oikealle ikuisesti.turn_for— Kääntää robottia vasemmalle tai oikealle tietyn astemäärän.turn_to— Kääntää robotin tiettyyn suuntaan.stop_all_movement— Pysäyttää robotin kaikki liikkeet.
Mutaattorit — Aseta robotin liikearvot.
set_move_velocity— Kertoo robotille, kuinka nopeasti sen tulisi liikkua.set_turn_velocity— Kertoo robotille, kuinka nopeasti sen tulisi kääntyä.set_xy_position— Muuttaa robotin nykyisen x- ja y-sijainnin uusiin arvoihin.
Getterit — Palauttaa robotin tilan ja sijainnin.
get_x_position— Palauttaa robotin nykyisen x-koordinaatin.get_y_position— Palauttaa robotin nykyisen y-koordinaatin.is_move_active— Palauttaa, liikkuuko robotti.is_turn_active— Palauttaa, kääntyykö robotti.is_stopped— Palauttaa tiedon siitä, liikkuuko eikä kääntyisikö robotti.
Toiminnot#
move_at#
move_at liikuttaa robottia ikuisesti tietyssä kulmassa. Kulma on suhteessa robotin nykyiseen sijaintiin. Robotti jatkaa liikkumista, kunnes sille annetaan toinen toiminto, kuten liikkuminen eri kulmassa, kääntyminen tai pysähtyminen.
Käyttö:
robot.move_at(angle, velocity, units)
Parametrit |
Kuvaus |
|---|---|
|
Robotin liikkumiskulma asteina. Tämä voi olla kokonaisluku tai desimaaliluku väliltä -360 - 360. |
|
Valinnainen. Liikumisnopeus 0 %:sta 100 %:iin, kun käytössä on |
|
Valinnainen. Nopeuden yksikkö: |
# 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 liikuttaa robottia tietyssä kulmassa tietyn matkan. Kulma on suhteessa robotin nykyiseen sijaintiin. Projekti odottaa, kunnes robotti on liikkunut, ennen kuin seuraava koodirivi suoritetaan.
Käyttö:
robot.move_for(distance, angle, velocity, units, wait)
Parametrit |
Kuvaus |
|---|---|
|
Robotin liikkumamatka millimetreinä (mm). Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku). |
|
Robotin liikkumiskulma asteina. Tämä voi olla kokonaisluku tai desimaaliluku väliltä -360 - 360. |
|
Valinnainen. Liikumisnopeus 0 %:sta 100 %:iin, kun käytössä on |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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#
Vektori on tapa kuvata, kuinka nopeasti jokin liikkuu ja mihin suuntaan se liikkuu. move_with_vectors liikuttaa robottia vektoripohjaisella liikkeellä. Robotti yhdistää eteenpäin, oikealle ja pyörimisnopeusarvoja luodakseen tasaisen liikkeen. Robotti jatkaa liikkumista tämän vektorin avulla, kunnes sille annetaan toinen toiminto, kuten liikkuminen eri kulmassa, kääntyminen tai pysähtyminen.
Huomautus: Tämä metodi asettaa liike- ja kääntymisnopeusarvot suoraan, joten se ei käytä set_move_velocity tai set_turn_velocity -metodia.
Käyttö:
robot.move_with_vectors(forward, rightward, rotation)
Parametrit |
Kuvaus |
|---|---|
|
Robotin nopeus y-akselilla välillä -100 % - 100 %. Negatiiviset arvot liikuttavat robottia taaksepäin ja positiiviset arvot eteenpäin. |
|
Robotin nopeus x-akselin suuntaisesti välillä -100 % - 100 %. Negatiiviset arvot liikuttavat robottia vasemmalle ja positiiviset arvot oikealle. |
|
Robotin kääntymisnopeus väliltä -100 % - 100 %. Negatiiviset arvot kääntävät robottia vastapäivään ja positiiviset arvot myötäpäivään. |
# 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 kääntää robottia vasemmalle tai oikealle ikuisesti. Robotti jatkaa kääntymistä, kunnes sille annetaan toinen toiminto, kuten liikkuminen tai pysähtyminen.
Käyttö:
robot.turn(direction, velocity, units)
Parametrit |
Kuvaus |
|---|---|
|
Robotin kääntymissuunta: |
|
Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on |
|
Valinnainen. Nopeuden yksikkö: |
# 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 kääntää robottia vasemmalle tai oikealle tietyn astemäärän. Käännös on suhteessa robotin nykyiseen suuntaan. Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan.
Käyttö:
robot.turn_for(direction, angle, velocity, units, wait)
Parametrit |
Kuvaus |
|---|---|
|
Robotin kääntymissuunta: |
|
Robotin kääntymiskertojen määrä asteina, vaihdellen -360:stä 360 asteeseen. Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku). |
|
Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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#
Suunta on robotin suunta asteina. turn_to kääntää robotin tiettyyn suuntaan. Robotti kääntyy lyhintä suuntaa saavuttaakseen kohdesuunnan.
Robotin lähtösuunta on 0 astetta.
Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan.
Käyttö:
robot.turn_to(heading, velocity, units, wait)
Parametrit |
Kuvaus |
|---|---|
|
Robotin suunta, johon sen tulisi osoittaa, -360 - 360 astetta. |
|
Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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 pysäyttää robotin kaikki liikkeet.
Käyttö:
robot.stop_all_movement()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Mutaattorit#
set_move_velocity#
set_move_velocity kertoo robotille, kuinka nopeasti sen tulee liikkua. Suurempi prosenttiosuus saa robotin liikkumaan nopeammin ja pienempi prosenttiosuus hidastaa sitä.
Jokainen projekti alkaa robotin liikkuessa oletusarvoisesti 50 % nopeudella.
100 %:n liikkumisnopeus vastaa 200 millimetriä sekunnissa.
Käyttö:
robot.set_move_velocity(velocity, units)
Parametrit |
Kuvaus |
|---|---|
|
Liukunopeus 0 %:sta 100 %:iin käytettäessä arvoa |
|
Valinnainen. Nopeuden yksikkö: |
# 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 kertoo robotille, kuinka nopeasti sen tulee kääntyä. Suurempi prosenttiosuus saa robotin kääntymään nopeammin ja pienempi prosenttiosuus hitaammin.
Jokainen projekti alkaa robotin pyöriessä oletusarvoisesti 50 %:n nopeudella (75 astetta sekunnissa).
Käyttö:
robot.set_turn_velocity(velocity, units)
Parametrit |
Kuvaus |
|---|---|
|
Kääntymisnopeus välillä 0–100 %, kun käytetään arvoa |
|
Valinnainen. Nopeuden yksikkö: |
# 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 muuttaa robotin nykyisen x- ja y-sijainnin uusiin arvoihin.
Jos robotti on esimerkiksi siirtynyt pois lähtöpisteestään, x:n asettaminen arvoon 0 ja y:n arvoon 0 tekee robotin nykyisestä sijainnista uuden 0, 0-sijainnin. Tämän jälkeen robotti voi seurata tulevia sijainteja tämän uuden arvon perusteella.
Käyttö:
robot.set_xy_position(x, y)
Parametrit |
Kuvaus |
|---|---|
|
Robotille asetettava x-sijainnin arvo millimetreinä. Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku). |
|
Robotille asetettava y-sijainnin arvo millimetreinä. Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku). |
# 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())
Getterit#
get_x_position#
get_x_position palauttaa robotin nykyisen x-koordinaatin millimetreinä.
Projektin alussa robotin x-asemaksi asetetaan 0. X-asema muuttuu robotin liikkuessa vasemmalle tai oikealle, ja se voidaan asettaa set_xy_position-metodilla.
Käyttö:
robot.get_x_position()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# 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 palauttaa robotin nykyisen y-koordinaatin millimetreinä.
Projektin alussa robotin y-asema asetetaan arvoon 0. Y-asema muuttuu robotin liikkuessa eteen- tai taaksepäin, ja se voidaan asettaa set_xy_position-metodilla.
Käyttö:
robot.get_y_position()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# 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 palauttaa totuusarvona tiedon siitä, liikkuuko robotti. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen ohjaamiseen.
True— Robotti liikkuu.False— Robotti ei liiku.
Tämä metodi toimii yhdessä Motion-metodien kanssa, joilla on wait -parametri, kuten move_for.
Käyttö:
robot.is_move_active()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# 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 palauttaa totuusarvona tiedon siitä, kääntyykö robotti. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen ohjaamiseen.
True— Robotti kääntyy.False— Robotti ei käänny.
Tämä metodi toimii yhdessä Motion-metodien kanssa, joilla on wait -parametri, kuten turn_for ja turn_to.
Käyttö:
robot.is_turn_active()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# 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 palauttaa totuusarvona tiedon siitä, liikkuuko robotti vai eikö käänny. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen ohjaamiseen.
True— Robotti ei liiku tai käänny.False— Robotti liikkuu tai kääntyy.
Käyttö:
robot.is_stopped()
Parametrit |
Kuvaus |
|---|---|
Tällä menetelmällä ei ole parametreja. |
# 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()