Mozgás#
Bevezetés#
A VEX AIM kódolórobot holonomikus hajtásláncot használ az előre, hátra, balra, jobbra vagy szögben történő mozgáshoz, miközben önállóan is képes fordulni. A mozgásmódok szabályozzák, hogyan mozog és fordul a robot, milyen gyorsan mozog, valamint hogyan követi nyomon az x és y pozícióját.

Az alábbiakban felsoroljuk az elérhető módszereket:
Műveletek — A robot mozgatása és forgatása.
move_at— A robotot egy adott szögben mozgatja örökké.move_for— Meghatározott szögben, adott távolságra mozgatja a robotot.move_with_vectors— Vektor alapú x, y és forgatási értékek használatával mozgatja a robotot.turn— Örökké balra vagy jobbra forgatja a robotot.turn_for— Meghatározott fokkal balra vagy jobbra forgatja a robotot.turn_to— A robotot egy adott irányba fordítja.stop_all_movement— Leállítja a robot összes mozgását.
Mutátorok – Robotmozgási értékek beállítása.
set_move_velocity— Megadja a robotnak a mozgás sebességét.set_turn_velocity— Megadja a robotnak, hogy milyen gyorsan forduljon.set_xy_position— A robot aktuális x és y pozícióját új értékekre módosítja.
Getterek — Robot állapotát és pozícióját adják vissza.
get_x_position— Visszaadja a robot aktuális x koordinátáját.get_y_position— Visszaadja a robot aktuális y koordinátáját.is_move_active— Visszaadja, hogy a robot mozog-e.is_turn_active— Visszaadja, hogy a robot forog-e.is_stopped— Visszaadja, hogy a robot nem mozog-e vagy forog-e.
Műveletek#
move_at#
move_at A robotot egy adott szögben, örökké mozgatja. A szög a robot aktuális pozíciójához viszonyított. A robot addig mozog, amíg egy másik műveletet nem kap, például más szögben mozog, megfordul vagy megáll.
Használat:
robot.move_at(angle, velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A robot mozgásának szöge fokban megadva. Ez lehet egész vagy tizedes tört -360 és 360 között. |
|
Opcionális. A mozgási sebesség 0%-tól 100%-ig |
|
Opcionális. A sebesség mértékegysége: |
# 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 A „move_for” függvény paraméterrel a robot egy adott szögben, adott távolságra mozgatható. A szög a robot aktuális pozíciójához viszonyított. A projekt megvárja, amíg a robot befejezi a mozgást, mielőtt a kód következő sora lefutna.
Használat:
robot.move_for(distance, angle, velocity, units, wait)
Paraméterek |
Leírás |
|---|---|
|
A robot által megtett távolság milliméterben (mm). Ez lehet egész szám vagy decimális szám (float). |
|
A robot mozgásának szöge fokban megadva. Ez lehet egész vagy tizedes tört -360 és 360 között. |
|
Opcionális. A mozgási sebesség 0%-tól 100%-ig |
|
Opcionális. A sebesség mértékegysége: |
|
Opcionális. |
# 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#
A vektor egy módja annak, hogy leírjuk, milyen gyorsan mozog valami, és milyen irányba. move_with_vectors A robot vektor alapú mozgással mozgatja. A robot az előre, jobbra és forgási sebességértékeket kombinálja az egyenletes mozgás létrehozásához. A robot ezt a vektort használva tovább mozog, amíg egy másik műveletet nem kap, például más szögben mozog, fordul vagy megáll.
Megjegyzés: Ez a metódus közvetlenül állítja be a mozgási és fordulási sebességértékeket, így nem használja a set_move_velocity vagy a set_turn_velocity metódusokat.
Használat:
robot.move_with_vectors(forward, rightward, rotation)
Paraméterek |
Leírás |
|---|---|
|
A robot sebessége az y tengely mentén, -100%-tól 100%-ig. A negatív értékek hátrafelé, a pozitív értékek pedig előre mozgatják a robotot. |
|
A robot sebessége az x tengely mentén, -100%-tól 100%-ig. A negatív értékek balra, a pozitív értékek pedig jobbra mozgatják a robotot. |
|
A robot fordulási sebessége, -100%-tól 100%-ig. A negatív értékek az óramutató járásával ellentétes irányba, a pozitív értékek pedig az óramutató járásával megegyező irányba forgatják a robotot. |
# 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 A robotot örökre balra vagy jobbra forgatja. A robot addig forog, amíg egy másik műveletet nem kap, például mozgást vagy megállást.
Használat:
robot.turn(direction, velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A robot fordulási iránya: |
|
Opcionális. A fordulási sebesség 0% és 100% között |
|
Opcionális. A sebesség mértékegysége: |
# 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 paraméterrel a robot balra vagy jobbra forgatható egy megadott fokkal. A fordulat a robot aktuális fordulási irányához viszonyítva értendő. A projekt megvárja, amíg a robot befejezi a fordulást, mielőtt a következő kódsort futtatná.
Használat:
robot.turn_for(direction, angle, velocity, units, wait)
Paraméterek |
Leírás |
|---|---|
|
A robot fordulási iránya: |
|
A robot fordulatainak száma fokokban, -360 és 360 fok között. Ez lehet egész vagy decimális (lebegőpontos) szám. |
|
Opcionális. A fordulási sebesség 0% és 100% között |
|
Opcionális. A sebesség mértékegysége: |
|
Opcionális. |
# 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#
A haladási irány az az irány, amerre a robot néz, fokban mérve. turn_to : Az 1-es érték egy adott irányba fordítja a robotot. A robot a legrövidebb irányba fordul, hogy elérje a célirányt.
A robot kezdő iránya 0 fok.
A projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsort futtatná.
Használat:
robot.turn_to(heading, velocity, units, wait)
Paraméterek |
Leírás |
|---|---|
|
A robot iránya, amellyel szembe kell néznie, -360 és 360 fok között. |
|
Opcionális. A fordulási sebesség 0% és 100% között |
|
Opcionális. A sebesség mértékegysége: |
|
Opcionális. |
# 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 leállítja a robot összes mozgását.
Használat:
robot.stop_all_movement()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Mutátorok#
set_move_velocity#
set_move_velocity megmondja a robotnak, hogy milyen gyorsan mozogjon. Magasabb százalékos érték esetén a robot gyorsabban, alacsonyabb százalékos érték esetén pedig lassabban mozog.
Minden projekt azzal kezdődik, hogy a robot alapértelmezés szerint 50%-os sebességgel mozog.
A 100%-os mozgási sebesség 200 milliméter/másodpercnek felel meg.
Használat:
robot.set_move_velocity(velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A mozgás sebessége 0%-tól 100%-ig |
|
Opcionális. A sebesség mértékegysége: |
# 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 megmondja a robotnak, hogy milyen gyorsan forduljon. Magasabb százalékos érték esetén a robot gyorsabban, alacsonyabb százalékos érték esetén pedig lassabban fordul.
Minden projekt azzal kezdődik, hogy a robot alapértelmezés szerint 50%-os sebességgel (másodpercenként 75 fok) forog.
Használat:
robot.set_turn_velocity(velocity, units)
Paraméterek |
Leírás |
|---|---|
|
A fordulási sebesség 0%-tól 100%-ig |
|
Opcionális. A sebesség mértékegysége: |
# 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 A robot aktuális x és y pozícióját új értékekre módosítja.
Például, ha a robot elmozdult a kiindulópontjától, az x és y értékének 0-ra állítása a robot aktuális helyzetét az új 0, 0 pozícióvá teszi. Ezután a robot az új érték alapján követheti a jövőbeli pozíciókat.
Használat:
robot.set_xy_position(x, y)
Paraméterek |
Leírás |
|---|---|
|
A robothoz beállítandó x pozícióérték mm-ben. Ez lehet egész szám vagy decimális (lebegőpontos) szám. |
|
A robothoz beállítandó y-pozíció értéke mm-ben. Ez lehet egész vagy decimális (úszó) szám. |
# 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())
Getterek#
get_x_position#
get_x_position Visszaadja a robot aktuális x koordinátáját milliméterben.
Egy projekt elején a robot x pozíciója 0-ra van állítva. Az x pozíció a robot balra vagy jobbra mozgásával változik, és a set_xy_position metódussal állítható be.
Használat:
robot.get_x_position()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 visszaadja a robot aktuális y koordinátáját milliméterben.
Egy projekt elején a robot y-pozíciója 0-ra van állítva. Az y-pozíció a robot előre vagy hátrafelé mozgásával változik, és a set_xy_position metódussal állítható be.
Használat:
robot.get_y_position()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Logikai értékként adja vissza, hogy a robot mozog-e. Ez felhasználható más viselkedések időzítésének szabályozására a robot mozgása alapján.
True— A robot mozog.False— A robot nem mozog.
Ez a metódus együtt működik a wait paraméterrel rendelkező Motion metódusokkal, például a move_for metódussal.
Használat:
robot.is_move_active()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Logikai értékként adja vissza, hogy a robot forog-e. Ez felhasználható más viselkedések időzítésének szabályozására a robot mozgása alapján.
True— A robot forog.False— A robot nem forog.
Ez a metódus együtt működik a wait paraméterrel rendelkező Motion metódusokkal, mint például a turn_for és az turn_to metódusok.
Használat:
robot.is_turn_active()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Logikai értékként adja vissza, hogy a robot nem mozog vagy fordul-e. Ez felhasználható más viselkedések időzítésének szabályozására a robot mozgása alapján.
True— A robot nem mozog és nem fordul.False— A robot mozog vagy forog.
Használat:
robot.is_stopped()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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()