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.

Pyöreä kompassin valitsin 0–315 astetta, joka ympäröi tummanharmaata näyttöä, jossa on tummansininen kuva. Robotin etuosa osoittaa 0 asteen kulmaan kompassin valitsimeen nähden.

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.

Getterit — Palauttaa robotin tilan ja sijainnin.

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

angle

Robotin liikkumiskulma asteina. Tämä voi olla kokonaisluku tai desimaaliluku väliltä -360 - 360.

velocity

Valinnainen. Liikumisnopeus 0 %:sta 100 %:iin, kun käytössä on PERCENT, tai 0–200 millimetriä sekunnissa, kun käytössä on MMPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku). Jos nopeutta ei anneta, robotti liikkuu nykyisellä liikenopeudella.

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus) tai MMPS (millimetriä sekunnissa).

# 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

distance

Robotin liikkumamatka millimetreinä (mm). Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku).

angle

Robotin liikkumiskulma asteina. Tämä voi olla kokonaisluku tai desimaaliluku väliltä -360 - 360.

velocity

Valinnainen. Liikumisnopeus 0 %:sta 100 %:iin, kun käytössä on PERCENT, tai 0–200 millimetriä sekunnissa, kun käytössä on MMPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku). Jos nopeutta ei anneta, robotti liikkuu nykyisellä liikenopeudella.

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus) tai MMPS (millimetriä sekunnissa).

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on liikkunut, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

# 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

forward

Robotin nopeus y-akselilla välillä -100 % - 100 %. Negatiiviset arvot liikuttavat robottia taaksepäin ja positiiviset arvot eteenpäin.

rightward

Robotin nopeus x-akselin suuntaisesti välillä -100 % - 100 %. Negatiiviset arvot liikuttavat robottia vasemmalle ja positiiviset arvot oikealle.

rotation

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

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

velocity

Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on PERCENT, tai välillä 0–150 astetta sekunnissa, kun käytössä on DPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku). Jos nopeutta ei anneta, robotti kääntyy nykyisellä kääntymisnopeudella.

units

Valinnainen. Nopeuden yksikkö: DPS (astetta sekunnissa, oletusarvo) tai 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 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

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

angle

Robotin kääntymiskertojen määrä asteina, vaihdellen -360:stä 360 asteeseen. Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku).

velocity

Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on PERCENT, tai välillä 0–150 astetta sekunnissa, kun käytössä on DPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku). Jos nopeutta ei anneta, robotti kääntyy nykyisellä kääntymisnopeudella.

units

Valinnainen. Nopeuden yksikkö: DPS (astetta sekunnissa, oletusarvo) tai PERCENT.

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

# 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

heading

Robotin suunta, johon sen tulisi osoittaa, -360 - 360 astetta.

velocity

Valinnainen. Kääntymisnopeus välillä 0–100 %, kun käytössä on PERCENT, tai välillä 0–150 astetta sekunnissa, kun käytössä on DPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku). Jos nopeutta ei anneta, robotti kääntyy nykyisellä kääntymisnopeudella.

units

Valinnainen. Nopeuden yksikkö: DPS (astetta sekunnissa, oletusarvo) tai PERCENT.

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

# 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

velocity

Liukunopeus 0 %:sta 100 %:iin käytettäessä arvoa PERCENTtai 0–200 millimetriä sekunnissa käytettäessä MMPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku).

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus) tai MMPS (millimetriä sekunnissa).

# 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

velocity

Kääntymisnopeus välillä 0–100 %, kun käytetään arvoa PERCENT, tai välillä 0–150 astetta sekunnissa, kun käytetään arvoa DPSTämä voi olla kokonaisluku tai desimaaliluku (liukuluku).

units

Valinnainen. Nopeuden yksikkö: DPS (astetta sekunnissa, oletusarvo) tai 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 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

x

Robotille asetettava x-sijainnin arvo millimetreinä. Tämä voi olla kokonaisluku tai desimaaliluku (liukuluku).

y

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