Beweging#

Invoering#

De VEX AIM Coding Robot gebruikt een holonome aandrijving om vooruit, achteruit, naar links, naar rechts of onder een hoek te bewegen, en kan bovendien zelfstandig draaien. Bewegingsmethoden bepalen hoe de robot beweegt en draait, hoe snel hij beweegt en hoe zijn x- en y-positie worden bijgehouden.

Ronde kompaswijzerplaat van 0 tot 315 graden rond een donkergrijs display met een marineblauw scherm. De voorkant van de robot wijst naar 0 graden op de kompaswijzerplaat.

Hieronder vindt u een lijst met beschikbare methoden:

Acties — Beweeg en draai de robot.

  • move_at — Beweegt de robot permanent onder een specifieke hoek.

  • move_for — Verplaatst de robot onder een specifieke hoek over een specifieke afstand.

  • move_with_vectors — Verplaatst de robot met behulp van vectorgebaseerde x-, y- en rotatiewaarden.

  • turn — Draait de robot permanent naar links of rechts.

  • turn_for — Draait de robot naar links of rechts over een specifiek aantal graden.

  • turn_to — Draait de robot in een specifieke richting.

  • stop_all_movement — Stopt alle beweging van de robot.

Mutators — Stel de bewegingswaarden van de robot in.

Getters — Retourneer de status en positie van de robot.

Acties#

move_at#

move_at verplaatst de robot oneindig onder een specifieke hoek. De hoek is relatief ten opzichte van de huidige positie van de robot. De robot blijft bewegen totdat er een andere actie wordt uitgevoerd, zoals bewegen onder een andere hoek, draaien of stoppen.

Gebruik:

robot.move_at(angle, velocity, units)

Parameters

Beschrijving

angle

De hoek, in graden, waaronder de robot beweegt. Dit kan een geheel getal of een decimaal getal zijn tussen -360 en 360.

velocity

Optioneel. De snelheid waarmee de robot beweegt, van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 200 millimeter per seconde bij gebruik van MMPSDit kan een geheel getal of een decimaal getal (float) zijn. Als er geen snelheid wordt opgegeven, beweegt de robot met de huidige bewegingssnelheid.

units

Optioneel. De snelheidseenheid: PERCENT (standaard) of MMPS (millimeter per seconde).

# 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 verplaatst de robot onder een specifieke hoek over een specifieke afstand. De hoek is relatief ten opzichte van de huidige positie van de robot. Het project wacht totdat de robot klaar is met bewegen voordat de volgende regel code wordt uitgevoerd.

Gebruik:

robot.move_for(distance, angle, velocity, units, wait)

Parameters

Beschrijving

distance

De afstand die de robot aflegt, in millimeters (mm). Dit kan een geheel getal of een decimaal getal (float) zijn.

angle

De hoek, in graden, waaronder de robot beweegt. Dit kan een geheel getal of een decimaal getal zijn tussen -360 en 360.

velocity

Optioneel. De snelheid waarmee de robot beweegt, van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 200 millimeter per seconde bij gebruik van MMPSDit kan een geheel getal of een decimaal getal (float) zijn. Als er geen snelheid wordt opgegeven, beweegt de robot met de huidige bewegingssnelheid.

units

Optioneel. De snelheidseenheid: PERCENT (standaard) of MMPS (millimeter per seconde).

wait

Optioneel. wait=True (standaard) zorgt ervoor dat het project wacht totdat de robot klaar is met bewegen voordat de volgende regel code wordt uitgevoerd. wait=False zorgt ervoor dat de volgende regel code direct wordt uitgevoerd.

# 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#

Een vector is een manier om te beschrijven hoe snel iets beweegt en in welke richting. move_with_vectors beweegt de robot met behulp van vectorgebaseerde beweging. De robot combineert voorwaartse, rechtse en rotatiesnelheidswaarden om één vloeiende beweging te creëren. De robot blijft met deze vector bewegen totdat er een andere actie wordt gegeven, zoals bewegen onder een andere hoek, draaien of stoppen.

Opmerking: Deze methode stelt de waarden voor bewegings- en draaisnelheid direct in, dus er wordt geen gebruik gemaakt van set_move_velocity of set_turn_velocity.

Gebruik:

robot.move_with_vectors(forward, rightward, rotation)

Parameters

Beschrijving

forward

De snelheid van de robot langs de y-as, van -100% tot 100%. Negatieve waarden bewegen de robot achteruit en positieve waarden bewegen hem vooruit.

rightward

De snelheid van de robot langs de x-as, van -100% tot 100%. Negatieve waarden bewegen de robot naar links en positieve waarden naar rechts.

rotation

De draaisnelheid van de robot, van -100% tot 100%. Negatieve waarden zorgen ervoor dat de robot tegen de klok in draait en positieve waarden zorgen ervoor dat hij met de klok mee draait.

# 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 draait de robot oneindig naar links of rechts. De robot blijft draaien totdat er een andere actie wordt uitgevoerd, zoals bewegen of stoppen.

Gebruik:

robot.turn(direction, velocity, units)

Parameters

Beschrijving

direction

De richting waarin de robot draait: LEFT of RIGHT.

velocity

Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 150 graden per seconde bij gebruik van DPSDit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn. Als er geen snelheid wordt opgegeven, draait de robot met de huidige draaisnelheid.

units

Optioneel. De snelheidseenheid: DPS (graden per seconde, standaard) of 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 draait de robot naar links of rechts over een specifiek aantal graden. De draaiing is relatief ten opzichte van de huidige kijkrichting van de robot. Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.

Gebruik:

robot.turn_for(direction, angle, velocity, units, wait)

Parameters

Beschrijving

direction

De richting waarin de robot draait: LEFT of RIGHT.

angle

Het aantal graden dat de robot draait, variërend van -360 tot 360 graden. Dit kan een geheel getal of een decimaal getal (float) zijn.

velocity

Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 150 graden per seconde bij gebruik van DPSDit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn. Als er geen snelheid wordt opgegeven, draait de robot met de huidige draaisnelheid.

units

Optioneel. De snelheidseenheid: DPS (graden per seconde, standaard) of PERCENT.

wait

Optioneel. wait=True (standaard) zorgt ervoor dat het project wacht totdat de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd. wait=False zorgt ervoor dat de volgende regel code direct wordt uitgevoerd.

# 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#

Een koers is de richting waarin de robot kijkt, gemeten in graden. turn_to draait de robot in een specifieke richting. De robot draait in de kortste richting om de gewenste koers te bereiken.

De beginrichting van de robot is 0 graden.

Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.

Gebruik:

robot.turn_to(heading, velocity, units, wait)

Parameters

Beschrijving

heading

De richting waarin de robot moet kijken, van -360 tot 360 graden.

velocity

Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 150 graden per seconde bij gebruik van DPSDit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn. Als er geen snelheid wordt opgegeven, draait de robot met de huidige draaisnelheid.

units

Optioneel. De snelheidseenheid: DPS (graden per seconde, standaard) of PERCENT.

wait

Optioneel. wait=True (standaard) zorgt ervoor dat het project wacht totdat de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd. wait=False zorgt ervoor dat de volgende regel code direct wordt uitgevoerd.

# 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 stopt alle beweging van de robot.

Gebruik:

robot.stop_all_movement()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()

Mutators#

set_move_velocity#

set_move_velocity vertelt de robot hoe snel hij moet bewegen. Een hoger percentage zorgt ervoor dat de robot sneller beweegt en een lager percentage zorgt ervoor dat de robot langzamer beweegt.

Elk project begint standaard met de robot die op 50% van zijn maximale snelheid beweegt.

Een bewegingssnelheid van 100% komt overeen met 200 millimeter per seconde.

Gebruik:

robot.set_move_velocity(velocity, units)

Parameters

Beschrijving

velocity

De snelheid waarmee van 0% naar 100% wordt bewogen bij gebruik van PERCENT, of van 0 naar 200 millimeter per seconde bij gebruik van MMPSDit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn.

units

Optioneel. De snelheidseenheid: PERCENT (standaard) of MMPS (millimeter per seconde).

# 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 vertelt de robot hoe snel hij moet draaien. Een hoger percentage zorgt ervoor dat de robot sneller draait en een lager percentage zorgt ervoor dat de robot langzamer draait.

Elk project begint standaard met de robot die met 50% snelheid (75 graden per seconde) draait.

Gebruik:

robot.set_turn_velocity(velocity, units)

Parameters

Beschrijving

velocity

De draaisnelheid van 0% tot 100% bij gebruik van PERCENT, of van 0 tot 150 graden per seconde bij gebruik van DPSDit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn.

units

Optioneel. De snelheidseenheid: DPS (graden per seconde, standaard) of 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 verandert de huidige x- en y-positie van de robot naar nieuwe waarden.

Als de robot bijvoorbeeld van zijn startpunt is afgeweken, zorgt het instellen van x op 0 en y op 0 ervoor dat de huidige locatie van de robot de nieuwe positie 0, 0 wordt. De robot kan vervolgens toekomstige posities volgen op basis van die nieuwe waarde.

Gebruik:

robot.set_xy_position(x, y)

Parameters

Beschrijving

x

De x-positiewaarde die voor de robot moet worden ingesteld, in millimeters. Dit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn.

y

De y-positiewaarde die voor de robot moet worden ingesteld, in millimeters. Dit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn.

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

Getters#

get_x_position#

get_x_position retourneert de huidige x-coördinaat van de robot in millimeters.

Aan het begin van een project wordt de x-positie van de robot ingesteld op 0. De x-positie verandert wanneer de robot naar links of rechts beweegt en kan worden ingesteld met behulp van de methode set_xy_position.

Gebruik:

robot.get_x_position()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de huidige y-coördinaat van de robot in millimeters.

Aan het begin van een project wordt de y-positie van de robot ingesteld op 0. De y-positie verandert wanneer de robot vooruit of achteruit beweegt en kan worden ingesteld met behulp van de methode set_xy_position.

Gebruik:

robot.get_y_position()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 geeft als Booleaanse waarde aan of de robot beweegt. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.

  • True — De robot beweegt.

  • False — De robot beweegt niet.

Deze methode werkt samen met bewegingsmethoden die de parameter wait hebben, zoals move_for.

Gebruik:

robot.is_move_active()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 geeft als Booleaanse waarde aan of de robot aan het draaien is. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.

  • True — De robot draait.

  • False — De robot draait niet.

Deze methode werkt samen met bewegingsmethoden die de parameter wait hebben, zoals turn_for en turn_to.

Gebruik:

robot.is_turn_active()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert als Booleaanse waarde of de robot niet beweegt of draait. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.

  • True — De robot beweegt of draait niet.

  • False — De robot beweegt of draait.

Gebruik:

robot.is_stopped()

Parameters

Beschrijving

Deze methode heeft geen parameters.

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