운동#
소개#
VEX AIM 코딩 로봇은 홀로노믹 구동계를 사용하여 전진, 후진, 좌회전, 우회전 또는 각도 방향으로 이동할 수 있으며, 독립적으로 회전할 수도 있습니다. 모션 제어 방식은 로봇의 이동 및 회전 방식, 이동 속도, 그리고 x축 및 y축 위치 추적 방식을 제어합니다.

다음은 사용 가능한 방법 목록입니다.
동작 — 로봇을 이동시키고 회전시키세요.
move_at— 로봇을 특정 각도로 영원히 이동시킵니다.move_for— 로봇을 특정 각도로 특정 거리만큼 이동시킵니다.move_with_vectors— 벡터 기반 x, y 및 회전 값을 사용하여 로봇을 이동합니다.turn— 로봇을 왼쪽 또는 오른쪽으로 계속 회전시킵니다.turn_for— 로봇을 특정 각도만큼 왼쪽 또는 오른쪽으로 회전시킵니다.turn_to— 로봇을 특정 방향으로 향하게 합니다.stop_all_movement— 로봇의 모든 움직임을 중지합니다.
뮤테이터 — 로봇의 이동 값을 설정합니다.
set_move_velocity— 로봇에게 얼마나 빨리 움직여야 하는지 알려줍니다.set_turn_velocity— 로봇에게 회전 속도를 알려줍니다.set_xy_position— 로봇의 현재 x 및 y 위치를 새 값으로 변경합니다.
게터 — 로봇의 상태와 위치를 반환합니다.
get_x_position— 로봇의 현재 x 좌표를 반환합니다.get_y_position— 로봇의 현재 y 좌표를 반환합니다.is_move_active— 로봇이 움직이는지 여부를 반환합니다.is_turn_active— 로봇이 회전하는지 여부를 반환합니다.is_stopped— 로봇이 움직이지도 않고 회전하지도 않는지 여부를 반환합니다.
행위#
move_at#
move_at 로봇을 특정 각도로 계속 이동시킵니다. 각도는 로봇의 현재 위치를 기준으로 합니다. 로봇은 다른 각도로 이동하거나, 회전하거나, 정지하는 등의 추가 동작이 주어질 때까지 계속 이동합니다.
용법:
robot.move_at(angle, velocity, units)
매개변수 |
설명 |
|---|---|
|
로봇이 움직이는 각도(도 단위). 이 값은 -360에서 360 사이의 정수 또는 소수일 수 있습니다. |
|
선택 사항입니다. 이동 속도는 0%에서 100%까지 |
|
선택 사항입니다. 속도 단위: |
# 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 로봇을 특정 각도로 특정 거리만큼 이동시킵니다. 각도는 로봇의 현재 위치를 기준으로 합니다. 프로젝트는 로봇의 이동이 완료될 때까지 기다린 후 다음 코드를 실행합니다.
용법:
robot.move_for(distance, angle, velocity, units, wait)
매개변수 |
설명 |
|---|---|
|
로봇의 이동 거리(밀리미터, mm). 정수 또는 소수(float)일 수 있습니다. |
|
로봇이 움직이는 각도(도 단위). 이 값은 -360에서 360 사이의 정수 또는 소수일 수 있습니다. |
|
선택 사항입니다. 이동 속도는 0%에서 100%까지 |
|
선택 사항입니다. 속도 단위: |
|
선택 사항입니다. |
# 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#
벡터는 물체의 이동 속도와 방향을 나타내는 방법입니다. move_with_vectors 사용하면 로봇은 벡터 기반 움직임을 사용하여 이동합니다. 로봇은 전진, 우회전, 회전 속도 값을 조합하여 부드러운 움직임을 만들어냅니다. 로봇은 다른 각도로 이동하거나, 회전하거나, 정지하는 등의 추가 동작이 주어질 때까지 이 벡터를 사용하여 계속 이동합니다.
참고: 이 방법은 이동 및 회전 속도 값을 직접 설정하므로 set_move_velocity 또는 set_turn_velocity를 사용하지 않습니다.
용법:
robot.move_with_vectors(forward, rightward, rotation)
매개변수 |
설명 |
|---|---|
|
로봇의 y축 방향 속도는 -100%에서 100%까지의 범위를 갖습니다. 음수 값은 로봇을 뒤로 이동시키고, 양수 값은 앞으로 이동시킵니다. |
|
로봇의 x축 방향 속도는 -100%에서 100%까지의 범위를 갖습니다. 음수 값은 로봇을 왼쪽으로 이동시키고, 양수 값은 오른쪽으로 이동시킵니다. |
|
로봇의 회전 속도는 -100%에서 100%까지의 범위를 갖습니다. 음수 값은 로봇을 시계 반대 방향으로 회전시키고, 양수 값은 시계 방향으로 회전시킵니다. |
# 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 턴은 로봇을 왼쪽 또는 오른쪽으로 계속 회전시킵니다. 로봇은 이동이나 정지와 같은 다른 동작을 명령받을 때까지 계속 회전합니다.
용법:
robot.turn(direction, velocity, units)
매개변수 |
설명 |
|---|---|
|
로봇이 회전하는 방향: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
선택 사항입니다. 속도 단위: |
# 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 로봇을 지정된 각도만큼 왼쪽 또는 오른쪽으로 회전시킵니다. 회전은 로봇이 현재 바라보고 있는 방향을 기준으로 합니다. 프로젝트는 로봇이 회전을 완료할 때까지 기다린 후 다음 코드를 실행합니다.
용법:
robot.turn_for(direction, angle, velocity, units, wait)
매개변수 |
설명 |
|---|---|
|
로봇이 회전하는 방향: |
|
로봇이 회전하는 각도(도)는 -360도에서 360도 사이의 값을 가집니다. 정수 또는 소수(부동 소수)로 입력할 수 있습니다. |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
선택 사항입니다. 속도 단위: |
|
선택 사항입니다. |
# 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#
헤딩은 로봇이 향하는 방향을 도 단위로 나타낸 것입니다. turn_to 은 로봇을 특정 방향으로 회전시킵니다. 로봇은 목표 방향에 도달하기 위해 가장 짧은 경로로 회전합니다.
로봇의 초기 진행 방향은 0도입니다.
이 프로젝트는 로봇이 회전을 완료할 때까지 기다린 후 다음 코드 줄을 실행합니다.
용법:
robot.turn_to(heading, velocity, units, wait)
매개변수 |
설명 |
|---|---|
|
로봇이 향해야 할 방향은 -360도에서 360도 사이입니다. |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
선택 사항입니다. 속도 단위: |
|
선택 사항입니다. |
# 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 로봇의 모든 움직임을 멈춥니다.
용법:
robot.stop_all_movement()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
돌연변이체#
set_move_velocity#
set_move_velocity 로봇이 얼마나 빠르게 움직여야 하는지를 알려줍니다. 백분율이 높을수록 로봇은 더 빠르게 움직이고, 백분율이 낮을수록 로봇은 더 느리게 움직입니다.
모든 프로젝트는 로봇이 기본적으로 50% 속도로 움직이는 것으로 시작합니다.
이동 속도 100%는 초당 200밀리미터에 해당합니다.
용법:
robot.set_move_velocity(velocity, units)
매개변수 |
설명 |
|---|---|
|
0%에서 100%까지 이동할 때 |
|
선택 사항입니다. 속도 단위: |
# 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 로봇이 회전하는 속도를 지정합니다. 백분율이 높을수록 로봇은 더 빠르게 회전하고, 백분율이 낮을수록 로봇은 더 느리게 회전합니다.
모든 프로젝트는 로봇이 기본적으로 50% 속도(초당 75도)로 회전하는 것으로 시작합니다.
용법:
robot.set_turn_velocity(velocity, units)
매개변수 |
설명 |
|---|---|
|
0%에서 100%까지 회전하는 속도( |
|
선택 사항입니다. 속도 단위: |
# 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 은 로봇의 현재 x 및 y 위치를 새로운 값으로 변경합니다.
예를 들어, 로봇이 시작 지점에서 벗어났을 경우, x축과 y축을 0으로 설정하면 로봇의 현재 위치가 새로운 기준점(0, 0)이 됩니다. 그러면 로봇은 이 새로운 값을 기준으로 향후 위치를 추적할 수 있습니다.
용법:
robot.set_xy_position(x, y)
매개변수 |
설명 |
|---|---|
|
로봇의 x축 위치 값을 mm 단위로 설정합니다. 정수 또는 소수(float) 값을 사용할 수 있습니다. |
|
로봇의 y축 위치 값을 mm 단위로 설정합니다. 정수 또는 소수(float) 값을 사용할 수 있습니다. |
# 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())
게터스#
get_x_position#
get_x_position 로봇의 현재 x 좌표를 밀리미터 단위로 반환합니다.
프로젝트 시작 시 로봇의 x 위치는 0으로 설정됩니다. 로봇이 왼쪽이나 오른쪽으로 이동함에 따라 x 위치가 변경되며 set_xy_position 메서드를 사용하여 설정할 수 있습니다.
용법:
robot.get_x_position()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# 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 은 로봇의 현재 y 좌표를 밀리미터 단위로 반환합니다.
프로젝트 시작 시 로봇의 y 위치는 0으로 설정됩니다. y 위치는 로봇이 전진 또는 후진할 때 변경되며 set_xy_position 메서드를 사용하여 설정할 수 있습니다.
용법:
robot.get_y_position()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# 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 로봇이 움직이는지 여부를 부울 값으로 반환합니다. 이 값은 로봇의 움직임에 따라 다른 동작의 타이밍을 제어하는 데 사용할 수 있습니다.
True— 로봇이 움직이고 있습니다.False— 로봇이 움직이지 않습니다.
이 방법은 move_for와 같이 wait 매개변수를 갖는 모션 메서드와 함께 작동합니다.
용법:
robot.is_move_active()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# 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 로봇이 회전 중인지 여부를 부울 값으로 반환합니다. 이 값은 로봇의 움직임에 따라 다른 동작의 타이밍을 제어하는 데 사용할 수 있습니다.
True— 로봇이 회전하고 있습니다.False— 로봇이 회전하지 않습니다.
이 방법은 turn_for 및 turn_to과 같이 wait 매개변수를 갖는 모션 메서드와 함께 작동합니다.
용법:
robot.is_turn_active()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# 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 로봇이 움직이지도 않고 회전하지도 않는지 여부를 부울 값으로 반환합니다. 이 값은 로봇의 움직임에 따라 다른 동작의 타이밍을 제어하는 데 사용할 수 있습니다.
True— 로봇이 움직이거나 회전하지 않습니다.False— 로봇이 움직이거나 회전하고 있습니다.
용법:
robot.is_stopped()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# 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()