Movimiento#
Introducción#
El dron VEX AIR cuenta con cuatro hélices que le permiten moverse en cualquier dirección y girar de forma independiente. El sistema de movimiento permite controlar el movimiento, los giros, la velocidad y el seguimiento de la posición.

A continuación se muestra una lista de todos los métodos disponibles:
Comportamiento
take_off– Lifts the drone to a specified height.land– Lands the drone.hover- Keeps the drone at its position.climb– Moves the drone in a specified vertical direction.climb_for– Moves the drone in a specified vertical direction for a specific distance.climb_to– Moves the drone to a specified altitude.move_at– Moves the drone at a specified heading and velocity.move_for– Moves the drone at a specified heading for a specified distance.move_to– Moves the drone to a specified position while maintaining the same heading.turn– Turns the drone left or right.turn_for– Turns the drone a set number of degrees.turn_to– Turns the drone to face a specific heading.move_with_vectors– Moves the drone using vector-based x, y, z, and rotation values.
Mutadores
set_steering_mode– Sets the POV for steering the drone.set_movement_mode– Sets the movement style of the drone.set_climb_velocity– Sets the default climbing speed.set_move_velocity– Sets the default movement speed.set_turn_velocity- Sets the default turning speed.set_max_z_height- Sets a limit to how high the drone will fly.set_xyz_position– Sets the drone’s current position.
Conseguidores
get_max_z_height– Returns the maximum height that the drone can reach.get_flight_state– Returns the current state of the drone.get_x_position– Returns the drone’s x-coordinate.get_y_position– Returns the drone’s y-coordinate.get_z_position– Returns the drone’s z-coordinate.get_safe_mode– Returns the drone’s propellor lock state.is_climb_active– Returns whether the drone is currently climbing.is_move_active– Returns whether the drone is currently moving.is_turn_active– Returns whether the drone is currently turning.is_hovering- Returns whether the drone is currently hovering.is_taking_off– Returns whether the drone is currently taking off.is_landing– Returns whether the drone is currently landing.is_landed- Returns whether the drone is currently landed.
Comportamiento#
take_off#
take_off starts the propellers and lifts the drone into the air. This method must be used before other movements can be made.
Uso:
drone.take_off(climb_to, units, wait)
Parámetros |
Descripción |
|---|---|
|
La posición z a la que volará el dron. |
|
The unit to use:
|
|
Optional.
|
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land lowers the drone to the ground. The propellers will continue to run until the project is stopped.
Uso:
drone.land(wait)
Parámetros |
Descripción |
|---|---|
|
Optional.
|
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover stops the drone from moving in any direction and holds its current position in the air.
Usage:
drone.hover()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 moves the drone in a specified vertical direction.
Usage:
drone.climb(direction, velocity)
Parámetros |
Descripción |
|---|---|
|
The direction in which the drone will fly:
|
|
La velocidad a la que el dron ascenderá expresada como porcentaje. |
# 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 moves the drone in a specified vertical direction for a specific distance.
Uso:
drone.climb_for(direction, distance, units, velocity, wait)
Parámetros |
Descripción |
|---|---|
|
The direction in which the drone will fly:
|
|
La distancia que volará el dron. |
|
Optional. The unit that represents the distance:
|
|
Opcional. La velocidad a la que ascenderá el dron, expresada en porcentaje. Si no se especifica, la velocidad predeterminada es del 50 %. |
|
Optional.
|
# 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 moves the drone to a specific z position.
Uso:
drone.climb_to(z, units, velocity, wait)
Parámetros |
Descripción |
|---|---|
|
La posición z, como número entero o decimal, a la que ascenderá el dron. |
|
Optional. The unit that represents the distance:
|
|
Opcional. La velocidad a la que ascenderá el dron, expresada en porcentaje. |
|
Optional.
|
# 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 moves the drone at a specified angle and velocity.
Uso:
drone.move_at(angle, velocity)
Parámetros |
Descripción |
|---|---|
|
El ángulo, en número entero o decimal, en el que se mueve el dron, que va de 0 a 360 grados. |
|
La velocidad a la que se moverá el dron como porcentaje. |
# 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 moves the drone in a specific direction for a specific distance using the current set_move_velocity.
Uso:
drone.move_for(angle, distance, units, velocity, wait)
Parámetros |
Descripción |
|---|---|
|
El ángulo, como número entero o flotante, en el que se mueve el dron, que varía de 0 a 360 grados. |
|
La distancia, en número entero o decimal, que se moverá el dron. |
|
Optional. The unit that represents the distance:
|
|
Opcional. La velocidad a la que se moverá el dron como porcentaje. |
|
Optional.
|
# 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 moves the drone to a specified position in the air while maintaining the same heading.
Uso:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parámetros |
Descripción |
|---|---|
|
La coordenada x a la que se moverá el dron. |
|
La coordenada y a la que se moverá el dron. |
|
La coordenada z a la que se moverá el dron. |
|
Optional. The unit that represents the distance:
|
|
Opcional. La velocidad a la que se moverá el dron como porcentaje. |
|
Opcional. La velocidad a la que ascenderá el dron, expresada en porcentaje. |
|
Optional.
|
# 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 turns the drone in a specific direction using the current set_turn_velocity.
Uso:
drone.turn(direction, velocity)
Parámetros |
Descripción |
|---|---|
|
The direction the drone will turn:
|
|
Opcional. La velocidad a la que girará el dron como porcentaje. |
# 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 turns the drone in a specified direction for a set distance relative to its current facing direction using the current set_turn_velocity.
Uso:
drone.turn_for(direction, angle, velocity, wait)
Parámetros |
Descripción |
|---|---|
|
The direction the drone will turn:
|
|
El ángulo, como número entero o flotante, en el que gira el dron, que varía de 0 a 360 grados. |
|
Opcional. La velocidad a la que girará el dron como porcentaje. |
|
Optional.
|
# 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 turns the drone to face a specific heading using the current set_turn_velocity.
Uso:
drone.turn_to(heading, velocity, wait)
Parámetros |
Descripción |
|---|---|
|
El rumbo hacia el que girará el dron varía de 0 a 360 grados. |
|
Opcional. La velocidad a la que girará el dron como porcentaje. |
|
Optional.
|
# 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 moves the drone using vector-based motion, combining movement on the X-axis, Y-axis, and Z-axis while having the drone rotate at the same time.
Uso:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parámetros |
Descripción |
|---|---|
|
Velocidad del dron en el eje Y (movimiento hacia adelante y hacia atrás). Acepta un valor de -100 a 100 como porcentaje, donde los valores negativos indican retroceso y los positivos avance. |
|
Velocidad del dron en el eje X (movimiento lateral). Acepta un valor de -100 a 100 como porcentaje, donde los valores negativos se mueven a la izquierda y los positivos a la derecha. |
|
Velocidad del dron en el eje Z (movimiento ascendente y descendente). Acepta un valor de -100 a 100 como porcentaje, donde los valores negativos indican una disminución y los positivos una disminución. |
|
Velocidad de rotación del dron. Acepta un valor de -100 a 100 como porcentaje, donde los valores negativos giran en sentido antihorario y los positivos en sentido horario. |
# 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)
Mutadores#
set_steering_mode#
set_steering_mode sets the viewpoint that is used when steering the drone.
Uso:
drone.set_steering_mode(style)
Parámetros |
Descripción |
|---|---|
|
Sets the POV that is used to steer the drone.
|
# 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 sets the drone’s movement style.
Este estilo de movimiento se utiliza cuando se vuela el dron con un controlador.
Uso:
drone.set_movement_mode(style)
Parámetros |
Descripción |
|---|---|
|
Sets the speed that is used to steer the drone.
|
# 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 sets the default climbing speed as a percentage. This will affect any following methods related to climbing. The default climb velocity is 50%.
Uso:
drone.set_climb_velocity(velocity)
Parámetros |
Descripción |
|---|---|
|
La velocidad a la que el dron ascenderá expresada como porcentaje. |
# 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 sets the default movement speed as a percentage. This will affect any following methods related to moving. The default move velocity is 50%.
Uso:
drone.set_move_velocity(velocity)
Parámetros |
Descripción |
|---|---|
|
La velocidad a la que se moverá el dron como porcentaje. |
# 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 sets the default movement speed as a percentage. This will affect any following methods related to turning. The default turn velocity is 50%.
Uso:
drone.set_turn_velocity(velocity)
Parámetros |
Descripción |
|---|---|
|
La velocidad a la que girará el dron expresada en porcentaje. |
# 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 sets a limit to how high the drone will fly.
Uso:
drone.set_max_z_height(z_height, units)
Parámetros |
Descripción |
|---|---|
|
El valor máximo del eje z, como número entero o decimal, que el dron no volará por encima, en un rango de 1000 a 5000 mm o de 40 a 196 pulgadas. |
|
Optional. The distance units are:
|
# 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 sets the drone’s current x, y, or z coordinate to a specified value.
Uso:
drone.set_xyz_position(x, y, z, units)
Note: All parameters are optional, but at least one (x, y, or z) must be specified.
Parámetros |
Descripción |
|---|---|
|
Optional. The x coordinate to set for the drone in |
|
Optional. The y coordinate to set for the drone in |
|
Optional. The z coordinate to set for the drone in |
|
Optional. The unit that represents the distance:
|
# 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()
Captadores#
get_max_z_height#
get_max_z_height returns the maximum height that the drone can reach as an integer.
Uso:
drone.get_max_z_height(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit of measurement:
|
# 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 returns the drone’s current flying state as a DroneFlightStateType:
MOTOR_OFF- No other flight state is true.CALIBRATION- The drone is calibrating its sensors.MOTOR_START- The drone is starting its motors.FLIGHT_READY- The drone is ready to fly.FLIGHT- The drone is in flight.
Usage:
drone.get_flight_state()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns the drone’s x coordinate as a float.
Usage:
drone.get_x_position(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns the drone’s y coordinate as a float.
Uso:
drone.get_y_position(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns the drone’s z coordinate as a float.
Uso:
drone.get_z_position(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns a Boolean indicating whether the Propeller Lock is enabled on the drone.
True– Propeller Lock is enabled.False– Propeller Lock is not enabled.
Uso:
drone.get_safe_mode()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is climbing.
True– The drone is currently climbing.False– The drone is not climbing.
Uso:
drone.is_climb_active()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is currently using a move method.
True– The drone is currently using a move method.False– The drone is not currently using a move method.
Uso:
drone.is_move_active()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is turning.
True– The drone is currently turning.False– The drone is not turning.
Uso:
drone.is_turn_active()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is maintaining its position (hovering).
True– The drone is currently maintaining its position (hovering).False– The drone is currently changing its position.
Uso:
drone.is_hovering()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is in the process of taking off.
True– The drone is currently in the process of taking off.False– The drone is not in the process of taking off.
Uso:
drone.is_taking_off()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is in the process of landing.
True– The drone is currently in the process of landing.False– The drone is not in the process of landing.
Uso:
drone.is_landing()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 returns a Boolean indicating whether the drone is currently landed.
True– The drone is landed.False– The drone is not landed.
Uso:
drone.is_landed()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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)