운동#
소개#
VEX AIR 드론은 4개의 프로펠러를 탑재하여 모든 방향으로 이동하고 독립적으로 회전할 수 있습니다. 모션 기능을 통해 이동, 회전, 속도 조절 및 위치 추적이 가능합니다.

아래는 사용 가능한 모든 방법의 목록입니다.
행위
take_off– 드론을 지정된 높이로 들어 올립니다.land– 드론을 착륙시킵니다.hover- 드론을 제자리에 유지합니다.climb– 드론을 지정된 수직 방향으로 이동시킵니다.climb_for– 드론을 지정된 수직 방향으로 지정된 거리만큼 이동시킵니다.climb_to– 드론을 지정된 고도로 이동합니다.move_at– 드론을 지정된 방향과 속도로 이동시킵니다.move_for– 드론을 지정된 방향으로 지정된 거리만큼 이동시킵니다.move_to– 드론을 동일한 방향을 유지하면서 지정된 위치로 이동합니다.turn– 드론을 왼쪽 또는 오른쪽으로 돌립니다.turn_for– 드론을 설정된 각도만큼 회전시킵니다.turn_to– 드론을 특정 방향으로 향하게 합니다.move_with_vectors– 벡터 기반 x, y, z 및 회전 값을 사용하여 드론을 이동합니다.
변이 유발인자
set_steering_mode– 드론 조종을 위한 POV를 설정합니다.set_movement_mode– 드론의 이동 스타일을 설정합니다.set_climb_velocity– 기본 등반 속도를 설정합니다.set_move_velocity– 기본 이동 속도를 설정합니다.set_turn_velocity- 기본 회전 속도를 설정합니다.set_max_z_height- 드론이 비행할 수 있는 최대 높이를 설정합니다.set_xyz_position– 드론의 현재 위치를 설정합니다.
게터
get_max_z_height– 드론이 도달할 수 있는 최대 높이를 반환합니다.get_flight_state– 드론의 현재 상태를 반환합니다.get_x_position– 드론의 x좌표를 반환합니다.get_y_position– 드론의 y 좌표를 반환합니다.get_z_position– 드론의 z 좌표를 반환합니다.get_safe_mode– 드론의 프로펠러 잠금 상태를 반환합니다.is_climb_active– 드론이 현재 상승 중인지 여부를 반환합니다.is_move_active– 드론이 현재 이동 중인지 여부를 반환합니다.is_turn_active– 드론이 현재 회전 중인지 여부를 반환합니다.is_hovering- 드론이 현재 호버링 중인지 여부를 반환합니다.is_taking_off– 드론이 현재 이륙 중인지 여부를 반환합니다.is_landing– 드론이 현재 착륙 중인지 여부를 반환합니다.is_landed- 드론이 현재 착륙했는지 여부를 반환합니다.
행위#
take_off#
take_off 프로펠러를 작동시켜 드론을 공중으로 띄웁니다. 이 방법은 다른 동작을 수행하기 전에 반드시 사용해야 합니다.
용법:
drone.take_off(climb_to, units, wait)
매개변수 |
설명 |
|---|---|
|
드론이 비행할 z축 위치(높이)입니다. |
|
사용할 단위:
|
|
선택 사항입니다. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land 을 누르면 드론이 지면으로 내려옵니다. 프로펠러는 프로젝트가 종료될 때까지 계속 회전합니다.
용법:
drone.land(wait)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover 드론의 움직임을 모든 방향에서 멈추게 하고 현재 위치를 공중에 고정시킵니다.
Usage:
drone.hover()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Hold current position for 3 seconds after moving forward
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
wait(1, SECONDS)
drone.hover()
wait(3, SECONDS)
drone.land()
climb#
climb 드론을 지정된 수직 방향으로 이동시킵니다.
Usage:
drone.climb(direction, velocity)
매개변수 |
설명 |
|---|---|
|
드론이 비행할 방향: |
|
드론이 상승하는 속도를 백분율로 나타낸 것입니다. |
# Climb upwards for 2 seconds
drone.take_off(climb_to=500)
wait(2, SECONDS)
drone.climb(direction=UP)
wait(2, SECONDS)
drone.land()
climb_for#
climb_for 은 드론을 지정된 수직 방향으로 특정 거리만큼 이동시킵니다.
용법:
drone.climb_for(direction, distance, units, velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 비행할 방향: |
|
드론이 비행할 수 있는 거리. |
|
선택 사항입니다. 거리를 나타내는 단위는 다음과 같습니다.
|
|
선택 사항입니다. 드론이 상승할 속도를 백분율로 지정합니다. 속도를 지정하지 않으면 기본값인 50%가 사용됩니다. |
|
선택 사항입니다. |
# Lower drone before landing
drone.take_off(climb_to=700)
wait(2, SECONDS)
drone.climb_for(direction=DOWN, distance=300)
wait(2, SECONDS)
drone.land()
climb_to#
climb_to 은 드론을 특정 z 위치로 이동시킵니다.
용법:
drone.climb_to(z, units, velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 상승할 z축 위치(정수 또는 소수)입니다. |
|
선택 사항입니다. 거리를 나타내는 단위는 다음과 같습니다.
|
|
선택 사항입니다. 드론의 상승 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. |
# Reach 500 mm after takeoff
drone.take_off(climb_to=300)
wait(1, SECONDS)
drone.climb_to(z=500)
wait(1, SECONDS)
drone.land()
move_at#
move_at 드론을 지정된 각도와 속도로 이동시킵니다.
용법:
drone.move_at(angle, velocity)
매개변수 |
설명 |
|---|---|
|
드론이 움직이는 각도를 정수 또는 소수로 나타내며, 0도에서 359도 사이의 값을 가집니다. |
|
드론이 이동할 속도를 백분율로 나타낸 것입니다. |
# Move left for 2 seconds
drone.take_off(climb_to=500)
drone.move_at(angle=270)
wait(2, SECONDS)
drone.land()
move_for#
move_for 은 현재 set_move_velocity를 사용하여 드론을 특정 방향으로 특정 거리만큼 이동시킵니다.
용법:
drone.move_for(angle, distance, units, velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 움직이는 각도는 정수 또는 소수 (float)이며 0~359도 범위입니다. |
|
드론이 이동할 거리(정수 또는 소수). |
|
선택 사항입니다. 거리를 나타내는 단위는 다음과 같습니다.
|
|
선택 사항입니다. 드론의 이동 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. |
# Move forward for 200 mm
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_for(direction=0, distance=200, velocity=50, units=MM)
wait(1, SECONDS)
drone.land()
move_to#
move_to 은 드론을 동일한 방향을 유지하면서 공중의 지정된 위치로 이동시킵니다.
용법:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 이동할 x 좌표입니다. |
|
드론이 이동할 y 좌표입니다. |
|
드론이 이동할 z 좌표입니다. |
|
선택 사항입니다. 거리를 나타내는 단위는 다음과 같습니다.
|
|
선택 사항입니다. 드론의 이동 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. 드론의 상승 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. |
# Move diagonally to (300, 300, 800)
drone.take_off(climb_to=300)
wait(2, SECONDS)
drone.move_to(x=300, y=300, z=800)
wait(2, SECONDS)
drone.land()
turn#
turn 현재 set_turn_velocity를 사용하여 드론을 특정 방향으로 회전시킵니다.
용법:
drone.turn(direction, velocity)
매개변수 |
설명 |
|---|---|
|
드론이 회전할 방향: |
|
선택 사항입니다. 드론이 회전할 속도를 백분율로 나타냅니다. |
# Turn to the right for 2 seconds
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.turn(RIGHT, 50)
wait(2, SECONDS)
drone.land()
turn_for#
turn_for 은 현재 set_turn_velocity를 사용하여 현재 향하는 방향을 기준으로 설정된 거리만큼 드론을 지정된 방향으로 회전시킵니다.
용법:
drone.turn_for(direction, angle, velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 회전할 방향: |
|
드론이 회전하는 각도는 정수 또는 소수 (float)이며 0~359도 범위입니다. |
|
선택 사항입니다. 드론이 회전할 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. |
# Turn around, then land
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.turn_for(RIGHT, 180)
wait(1, SECONDS)
drone.land()
turn_to#
turn_to 현재 set_turn_velocity를 사용하여 드론을 특정 방향으로 돌립니다.
용법:
drone.turn_to(heading, velocity, wait)
매개변수 |
설명 |
|---|---|
|
드론이 향할 방향은 0도에서 360도까지입니다. |
|
선택 사항입니다. 드론이 회전할 속도를 백분율로 나타냅니다. |
|
선택 사항입니다. |
# Turn to face each of the cardinal headings
drone.take_off(climb_to=500)
drone.turn_to(heading=90, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=180, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=270, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=0, velocity=50)
wait(3, SECONDS)
drone.land()
move_with_vectors#
move_with_vectors 벡터 기반 모션을 사용하여 드론을 이동시키며, x축(수평) 및 y축(수직)을 따라 이동하는 동시에 드론을 회전시킵니다.
참고: 이 방법은 이동 및 회전 속도 값을 직접 설정하므로 set_move_velocity 또는 set_turn_velocity를 사용하지 않습니다.
용법:
drone.move_with_vectors(forward, rightward, upward, rotation)
매개변수 |
설명 |
|---|---|
|
드론의 Y축 방향 속도(전진 및 후진)입니다. -100에서 100까지의 값을 백분율로 입력하며, 음수 값은 후진, 양수 값은 전진을 나타냅니다. |
|
드론의 X축 방향 속도(좌우 이동). -100에서 100까지의 값을 백분율로 입력하며, 음수 값은 왼쪽으로, 양수 값은 오른쪽으로 이동합니다. |
|
드론의 Z축 방향 속도(상하 이동). -100에서 100까지의 값을 백분율로 입력하며, 음수 값은 하강, 양수 값은 상승을 나타냅니다. |
|
드론의 회전 속도. -100에서 100까지의 값을 백분율로 입력받으며, 음수 값은 반시계 방향으로 회전하고 양수 값은 시계 방향으로 회전합니다. |
# Move with controller
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
돌연변이체#
set_steering_mode#
set_steering_mode 드론 조종 시 사용되는 시점을 설정합니다.
용법:
drone.set_steering_mode(style)
매개변수 |
설명 |
|---|---|
|
드론 조종에 사용되는 시점(POV)을 설정합니다. |
# Steer based on the drone's starting orientation
# until button 7 is pressed
drone.take_off(climb_to=500)
drone.set_steering_mode(HEADLESS)
while not controller.button7.pressing():
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
drone.land()
set_movement_mode#
set_movement_mode 드론의 이동 스타일을 설정합니다.
이 조작 방식은 컨트롤러를 사용하여 드론을 조종할 때 사용됩니다.
용법:
drone.set_movement_mode(style)
매개변수 |
설명 |
|---|---|
|
드론 조종에 사용되는 속도를 설정합니다.
|
# Control the drone with the balanced movement style
drone.take_off(climb_to=500)
drone.set_movement_mode(BALANCED)
while not controller.button5.pressing():
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
drone.land()
set_climb_velocity#
set_climb_velocity를 설정하면 기본 등반 속도가 백분율로 지정됩니다. 이는 이후 등반 관련 모든 메서드에 영향을 미칩니다. 기본 등반 속도는 50%입니다.
용법:
drone.set_climb_velocity(velocity)
매개변수 |
설명 |
|---|---|
|
드론이 상승하는 속도를 백분율로 나타낸 것입니다. |
# Raise the drone quickly before landing
drone.take_off(climb_to=300)
wait(1, SECONDS)
drone.set_climb_velocity(100)
drone.climb_for(direction=UP, distance=500)
wait(1, SECONDS)
drone.land()
set_move_velocity#
set_move_velocity를 설정하면 기본 이동 속도가 백분율로 지정됩니다. 이는 이동과 관련된 모든 후속 메서드에 영향을 미칩니다. 기본 이동 속도는 50%입니다.
용법:
drone.set_move_velocity(velocity)
매개변수 |
설명 |
|---|---|
|
드론이 이동할 속도를 백분율로 나타낸 것입니다. |
# Move forward quickly, then reverse slowly
drone.take_off(climb_to=500)
drone.set_move_velocity(100)
drone.move_for(direction=0, distance=500)
wait(3, SECONDS)
drone.set_move_velocity(20)
drone.move_for(direction=180, distance=500)
wait(5, SECONDS)
drone.land()
set_turn_velocity#
set_turn_velocity 기본 회전 속도를 백분율로 설정합니다. 이는 회전과 관련된 모든 후속 메서드에 영향을 미칩니다. 기본 회전 속도는 50%입니다.
용법:
drone.set_turn_velocity(velocity)
매개변수 |
설명 |
|---|---|
|
드론이 회전하는 속도를 백분율로 나타낸 것입니다. |
# Turn clockwise quickly, then counterclockwise slowly
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn_for(RIGHT, 360)
wait(3, SECONDS)
drone.set_turn_velocity(20)
drone.turn_for(LEFT, 360)
wait(5, SECONDS)
drone.land()
set_max_z_height#
set_max_z_height 드론의 비행 높이 제한을 설정합니다.
용법:
drone.set_max_z_height(z_height, units)
매개변수 |
설명 |
|---|---|
|
드론이 비행하지 않는 최대 z축 값(정수 또는 소수)이며, 범위는 1000~5000mm 또는 40~196인치입니다. |
|
선택 사항입니다. 거리 단위는 다음과 같습니다.
|
# Fly with controller under 1000 mm
drone.set_max_z_height(1000, MM)
drone.take_off(climb_to=500)
while not controller.button7.pressing():
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
drone.land()
set_xyz_position#
set_xyz_position 드론의 현재 x, y 또는 z 좌표를 지정된 값으로 설정합니다.
용법:
drone.set_xyz_position(x, y, z, units)
Note: All parameters are optional, but at least one (x, y, or z) must be specified.
매개변수 |
설명 |
|---|---|
|
선택 사항. 드론에 대해 설정할 x 좌표는 |
|
선택 사항. 드론에 대해 설정할 y 좌표는 |
|
선택 사항. 드론에 대해 설정할 z 좌표는 |
|
선택 사항입니다. 거리를 나타내는 단위는 다음과 같습니다.
|
# Set a new z position, then fly to z position -300
drone.take_off(climb_to=800)
drone.set_xyz_position(z=0)
wait(1, SECONDS)
drone.climb(DOWN, 50)
while not drone.get_z_position() < -300:
wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()
게터스#
get_max_z_height#
get_max_z_height 드론이 도달할 수 있는 최대 높이를 정수로 반환합니다.
용법:
drone.get_max_z_height(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 측정 단위:
|
# Display the new z height limit
controller.screen.print(drone.get_max_z_height(MM))
controller.screen.next_row()
drone.take_off(climb_to=500)
drone.set_max_z_height(1000)
controller.screen.print(drone.get_max_z_height(MM))
wait(1, SECONDS)
drone.land()
get_flight_state#
get_flight_state 은 드론의 현재 비행 상태를 DroneFlightStateType으로 반환합니다.
MOTOR_OFF- 다른 비행 상태가 참이 아닙니다.CALIBRATION- 드론이 센서를 보정하고 있습니다.MOTOR_START- 드론이 모터를 시동하고 있습니다.FLIGHT_READY- 드론이 비행 준비가 완료되었습니다.FLIGHT- 드론이 비행 중입니다.
Usage:
drone.get_flight_state()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Report the flight status as the drone takes off
controller.screen.print("Preparing for flight!")
controller.screen.next_row()
drone.take_off(climb_to=800, wait=False)
while not drone.get_flight_state() == MOTOR_START:
wait(5, MSEC)
controller.screen.print("Motors starting...")
controller.screen.next_row()
while not drone.get_flight_state() == FLIGHT:
wait(5, MSEC)
controller.screen.print("Take off!")
get_x_position#
get_x_position 드론의 x 좌표를 소수점(float)으로 반환합니다.
Usage:
drone.get_x_position(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 위치를 나타내는 단위는 다음과 같습니다.
|
# Move to (200, 0, 500)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_at(direction=90, velocity=50)
while not drone.get_x_position() > 200:
wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()
get_y_position#
get_y_position 은 드론의 y 좌표를 소수점(float)으로 반환합니다.
용법:
drone.get_y_position(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 위치를 나타내는 단위는 다음과 같습니다.
|
# Move to (0, 200, 500)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_at(direction=0, velocity=50)
while not drone.get_y_position() > 200:
wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()
get_z_position#
get_y_position 은 드론의 z 좌표를 소수점(float)으로 반환합니다.
용법:
drone.get_z_position(units)
매개변수 |
설명 |
|---|---|
|
선택 사항입니다. 위치를 나타내는 단위는 다음과 같습니다.
|
# Move to (0, 0, 800)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.climb(UP, 50)
while not drone.get_z_position() > 800:
wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()
get_safe_mode#
get_safe_mode 드론에서 프로펠러 잠금이 활성화되었는지 여부를 나타내는 Boolean 반환합니다.
True– 프로펠러 잠금 기능이 활성화되었습니다.False– 프로펠러 잠금 기능이 활성화되어 있지 않습니다.
용법:
drone.get_safe_mode()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Change the sound by enabling the Propeller Lock
while True:
if drone.get_safe_mode():
controller.sound.play(FAULT)
while controller.sound.is_active():
wait(50, MSEC)
else:
controller.sound.play(SUCCESS)
while controller.sound.is_active():
wait(50, MSEC)
wait(5, MSEC)
is_climb_active#
is_climb_active 드론이 상승 중인지 여부를 나타내는 Boolean 반환합니다.
True– 드론이 현재 상승 중입니다.False– 드론이 상승하고 있지 않습니다.
용법:
drone.is_climb_active()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# After the drone starts to climb, play a sound and land
drone.take_off(climb_to=500)
drone.climb(UP, 50)
wait(3, SECONDS)
if drone.is_climb_active():
controller.sound.play(SUCCESS)
drone.land()
is_move_active#
is_move_active 은 드론이 현재 이동 방식을 사용하고 있는지 여부를 나타내는 Boolean 반환합니다.
True– 드론이 현재 이동 방식을 사용하고 있습니다.False– 드론은 현재 이동 메서드를 사용하고 있지 않습니다.
용법:
drone.is_move_active()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# After the drone starts to move, play a sound and land
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
wait(2, SECONDS)
if drone.is_move_active():
controller.sound.play(SUCCESS)
drone.land()
is_turn_active#
is_turn_active 드론이 회전 중인지 여부를 나타내는 Boolean 을 반환합니다.
True– 드론이 현재 회전 중입니다.False– 드론이 회전하지 않습니다.
용법:
drone.is_turn_active()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# After the drone starts to turn, play a sound and land
drone.take_off(climb_to=500)
drone.turn(RIGHT)
wait(2, SECONDS)
if drone.is_turn_active():
controller.sound.play(LOOPING)
while controller.sound.is_active():
wait(50, MSEC)
drone.land()
is_hovering#
is_hovering 드론이 제자리를 유지하고 있는지(호버링 중인지)를 나타내는 Boolean 반환합니다.
True– 드론이 현재 제자리에 머물러 있습니다(호버링).False– 드론이 현재 위치를 변경하고 있습니다.
용법:
drone.is_hovering()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Play a sound after the drone has finished taking off
drone.take_off(climb_to=700)
while not drone.is_hovering():
wait(5, MSEC)
controller.sound.play(PAUSE)
wait(2, SECONDS)
drone.land()
is_taking_off#
is_taking_off 은 드론이 이륙 중인지 여부를 나타내는 Boolean 반환합니다.
True– 드론이 현재 이륙 중입니다.False– 드론이 이륙 중이 아닙니다.
용법:
drone.is_taking_off()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Play sounds while the drone is taking off
drone.take_off(700, wait=False)
wait(1, SECONDS)
while drone.is_taking_off():
controller.sound.play(LOOPING)
wait(5, MSEC)
is_landing#
is_landing 은 드론이 착륙 중인지 여부를 나타내는 부울 값을 반환합니다. Boolean
True– 드론이 현재 착륙 중입니다.False– 드론이 착륙 중이 아닙니다.
용법:
drone.is_landing()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Play sounds while the drone is landing
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land(wait=False)
wait(1, SECONDS)
while drone.is_landing():
controller.sound.play(LOOPING)
wait(5, MSEC)
is_landed#
is_landed 은 드론이 현재 착륙했는지 여부를 나타내는 Boolean 을 반환합니다.
True– 드론이 착륙했습니다.False– 드론이 착륙하지 않았습니다.
용법:
drone.is_landed()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
# Celebrate a successful landing
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
wait(1, SECONDS)
if drone.is_landed():
controller.sound.play(SUCCESS)