Mouvement#
Introduction#
Le drone VEX AIR est équipé de quatre hélices, lui permettant de se déplacer dans toutes les directions et de pivoter indépendamment. Il offre des fonctions de déplacement, de virage, de réglage de la vitesse et de suivi de position.

Vous trouverez ci-dessous la liste de toutes les méthodes disponibles :
Actes
take_off– Lève le drone à une hauteur spécifiée.land– Fait atterrir le drone.hover- Maintient le drone à sa position.climb– Déplace le drone dans une direction verticale spécifiée.climb_for– Déplace le drone dans une direction verticale spécifiée sur une distance spécifique.climb_to– Déplace le drone à une altitude spécifiée.move_at– Déplace le drone selon un cap et une vitesse spécifiés.move_for– Déplace le drone dans une direction spécifiée sur une distance spécifiée.move_to– Déplace le drone vers une position spécifiée tout en conservant le même cap.turn– Fait tourner le drone à gauche ou à droite.turn_for– Fait tourner le drone d’un nombre défini de degrés.turn_to– Tourne le drone pour faire face à une direction spécifique.move_with_vectors– Déplace le drone en utilisant des valeurs vectorielles x, y, z et de rotation.
Mutateurs
set_steering_mode– Définit le POV pour diriger le drone.set_movement_mode– Définit le style de mouvement du drone.set_climb_velocity– Définit la vitesse d’escalade par défaut.set_move_velocity– Définit la vitesse de déplacement par défaut.set_turn_velocity- Définit la vitesse de virage par défaut.set_max_z_height- Définit une limite à la hauteur à laquelle le drone volera.set_xyz_position– Définit la position actuelle du drone.
Attrapeurs
get_max_z_height– Renvoie la hauteur maximale que le drone peut atteindre.get_flight_state– Renvoie l’état actuel du drone.get_x_position– Renvoie la coordonnée x du drone.get_y_position– Renvoie la coordonnée y du drone.get_z_position– Renvoie la coordonnée z du drone.get_safe_mode– Renvoie l’état de verrouillage de l’hélice du drone.is_climb_active– Renvoie si le drone est actuellement en train de grimper.is_move_active– Renvoie si le drone est actuellement en mouvement.is_turn_active– Renvoie si le drone est actuellement en train de tourner.is_hovering- Renvoie si le drone est actuellement en vol stationnaire.is_taking_off– Renvoie si le drone est actuellement en train de décoller.is_landing– Renvoie si le drone est actuellement en train d’atterrir.is_landed- Renvoie si le drone est actuellement posé.
Actes#
take_off#
take_off : les hélices se mettent en marche et le drone décolle. Cette méthode doit être utilisée avant tout autre mouvement.
Usage:
drone.take_off(climb_to, units, wait)
Paramètres |
Description |
|---|---|
|
La position z (hauteur) vers laquelle le drone volera. |
|
Unités de mesure :
|
|
Optionnel. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
La touche land permet de poser le drone au sol. Les hélices continueront de tourner jusqu’à l’arrêt du projet.
Usage:
drone.land(wait)
Paramètres |
Description |
|---|---|
|
Optionnel. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover empêche le drone de se déplacer dans n’importe quelle direction et maintient sa position actuelle dans les airs.
Usage:
drone.hover()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 déplace le drone dans une direction verticale spécifiée.
Usage:
drone.climb(direction, velocity)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le drone volera : |
|
La vitesse à laquelle le drone montera, exprimée en pourcentage. |
# 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#
La commande climb_for déplace le drone dans une direction verticale spécifiée sur une distance spécifique.
Usage:
drone.climb_for(direction, distance, units, velocity, wait)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le drone volera : |
|
La distance que parcourra le drone. |
|
Facultatif. Unité de distance :
|
|
Facultatif. Vitesse ascensionnelle du drone, exprimée en pourcentage. Si aucune vitesse n’est spécifiée, la vitesse par défaut est de 50 %. |
|
Optionnel. |
# 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#
La commande climb_to déplace le drone vers une position z spécifique.
Usage:
drone.climb_to(z, units, velocity, wait)
Paramètres |
Description |
|---|---|
|
La position z, sous forme d’entier ou de décimal, jusqu’à laquelle le drone montera. |
|
Facultatif. Unité de distance :
|
|
Facultatif. La vitesse ascensionnelle du drone, exprimée en pourcentage. |
|
Optionnel. |
# 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 déplace le drone selon un angle et une vitesse spécifiés.
Usage:
drone.move_at(angle, velocity)
Paramètres |
Description |
|---|---|
|
L’angle, sous forme d’entier ou de décimal, selon lequel le drone se déplace, allant de 0 à 359 degrés. |
|
La vitesse à laquelle le drone se déplacera, exprimée en pourcentage. |
# 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 déplace le drone dans une direction spécifique sur une distance spécifique en utilisant la vitesse actuelle set_move_velocity.
Usage:
drone.move_for(angle, distance, units, velocity, wait)
Paramètres |
Description |
|---|---|
|
L’angle, sous forme d’entier ou de décimal (float), selon lequel le drone se déplace, allant de 0 à 359 degrés. |
|
La distance, sous forme d’entier ou de décimal, que parcourra le drone. |
|
Facultatif. Unité de distance :
|
|
Facultatif. La vitesse de déplacement du drone, exprimée en pourcentage. |
|
Optionnel. |
# 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#
La commande move_to déplace le drone vers une position spécifiée dans les airs tout en conservant le même cap.
Usage:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Paramètres |
Description |
|---|---|
|
La coordonnée x vers laquelle le drone se déplacera. |
|
La coordonnée y vers laquelle le drone se déplacera. |
|
La coordonnée z vers laquelle le drone se déplacera. |
|
Facultatif. Unité de distance :
|
|
Facultatif. La vitesse de déplacement du drone, exprimée en pourcentage. |
|
Facultatif. La vitesse ascensionnelle du drone, exprimée en pourcentage. |
|
Optionnel. |
# 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 fait tourner le drone dans une direction spécifique en utilisant le courant set_turn_velocity.
Usage:
drone.turn(direction, velocity)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le drone tournera : |
|
Facultatif. La vitesse à laquelle le drone tournera, exprimée en pourcentage. |
# 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 fait tourner le drone dans une direction spécifiée sur une distance définie par rapport à sa direction actuelle en utilisant la set_turn_velocity.
Usage:
drone.turn_for(direction, angle, velocity, wait)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le drone tournera : |
|
L’angle, sous forme d’entier ou de décimal (float), auquel le drone tourne, allant de 0 à 359 degrés. |
|
Facultatif. La vitesse à laquelle le drone tournera, exprimée en pourcentage. |
|
Optionnel. |
# 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 oriente le drone vers un cap spécifique en utilisant la set_turn_velocity.
Usage:
drone.turn_to(heading, velocity, wait)
Paramètres |
Description |
|---|---|
|
Le cap que le drone suivra, de 0 à 360 degrés. |
|
Facultatif. La vitesse à laquelle le drone tournera, exprimée en pourcentage. |
|
Optionnel. |
# 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 déplace le drone en utilisant un mouvement basé sur les vecteurs, combinant le mouvement le long de l’axe x (horizontal) et de l’axe y (vertical) tout en faisant pivoter le drone.
Remarque : Cette méthode définit directement les valeurs de vitesse de déplacement et de rotation, elle n’utilise donc pas set_move_velocity ni set_turn_velocity.
Usage:
drone.move_with_vectors(forward, rightward, upward, rotation)
Paramètres |
Description |
|---|---|
|
Vitesse du drone sur l’axe Y (mouvement avant et arrière). Accepte une valeur comprise entre -100 et 100 en pourcentage, les valeurs négatives indiquant un déplacement vers l’arrière et les valeurs positives un déplacement vers l’avant. |
|
Vitesse du drone selon l’axe X (mouvement latéral). Accepte une valeur comprise entre -100 et 100 en pourcentage, les valeurs négatives correspondant à un déplacement vers la gauche et les valeurs positives à un déplacement vers la droite. |
|
Vitesse du drone selon l’axe Z (mouvement vertical). Accepte une valeur comprise entre -100 et 100 (en pourcentage), les valeurs négatives correspondant à un déplacement vers le bas et les valeurs positives à un déplacement vers le haut. |
|
Vitesse de rotation du drone. Accepte une valeur comprise entre -100 et 100 en pourcentage, les valeurs négatives correspondant à une rotation antihoraire et les valeurs positives à une rotation horaire. |
# 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)
Mutateurs#
set_steering_mode#
set_steering_mode définit le point de vue utilisé lors du pilotage du drone.
Usage:
drone.set_steering_mode(style)
Paramètres |
Description |
|---|---|
|
Définit le point de vue utilisé pour piloter le 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 définit le style de mouvement du drone.
Ce style de mouvement est utilisé lors du pilotage du drone avec une télécommande.
Usage:
drone.set_movement_mode(style)
Paramètres |
Description |
|---|---|
|
Définit la vitesse de pilotage du 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 définit la vitesse d’escalade par défaut en pourcentage. Ceci affectera toutes les méthodes suivantes liées à l’escalade. La vitesse d’escalade par défaut est de 50 %.
Usage:
drone.set_climb_velocity(velocity)
Paramètres |
Description |
|---|---|
|
La vitesse à laquelle le drone montera, exprimée en pourcentage. |
# 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 définit la vitesse de déplacement par défaut en pourcentage. Ceci affectera toutes les méthodes suivantes liées au déplacement. La vitesse de déplacement par défaut est de 50 %.
Usage:
drone.set_move_velocity(velocity)
Paramètres |
Description |
|---|---|
|
La vitesse à laquelle le drone se déplacera, exprimée en pourcentage. |
# 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 définit la vitesse de virage par défaut en pourcentage. Ceci affectera toutes les méthodes suivantes liées au virage. La vitesse de virage par défaut est de 50 %.
Usage:
drone.set_turn_velocity(velocity)
Paramètres |
Description |
|---|---|
|
La vitesse à laquelle le drone tournera, exprimée en pourcentage. |
# 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 définit une limite à la hauteur à laquelle le drone volera.
Usage:
drone.set_max_z_height(z_height, units)
Paramètres |
Description |
|---|---|
|
La valeur maximale de l’axe z, sous forme d’entier ou de décimal, que le drone ne dépassera pas, dans une plage de 1000 à 5000 mm ou de 40 à 196 pouces. |
|
Optionnel. Les unités de distance sont :
|
# 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 définit les coordonnées x, y ou z actuelles du drone à une valeur spécifiée.
Usage:
drone.set_xyz_position(x, y, z, units)
Remarque : Tous les paramètres sont facultatifs, mais au moins un (x, y, ou z) doit être spécifié.
Paramètres |
Description |
|---|---|
|
Facultatif. La coordonnée x à définir pour le drone en unités |
|
Facultatif. La coordonnée y à définir pour le drone en unités |
|
Facultatif. La coordonnée z à définir pour le drone en unités |
|
Facultatif. Unité de 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()
Getters#
get_max_z_height#
get_max_z_height renvoie la hauteur maximale que le drone peut atteindre sous forme d’entier.
Usage:
drone.get_max_z_height(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de mesure :
|
# 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 renvoie l’état de vol actuel du drone sous la forme d’un DroneFlightStateType :
MOTOR_OFF- Aucun autre état de vol n’est vrai.CALIBRATION- Le drone est en train d’étalonner ses capteurs.MOTOR_START- Le drone démarre ses moteurs.FLIGHT_READY- Le drone est prêt à voler.FLIGHT- Le drone est en vol.
Usage:
drone.get_flight_state()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie la coordonnée x du drone sous forme décimale (float).
Usage:
drone.get_x_position(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de mesure de la 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 renvoie la coordonnée y du drone sous forme décimale (float).
Usage:
drone.get_y_position(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de mesure de la 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 renvoie la coordonnée z du drone sous forme décimale (float).
Usage:
drone.get_z_position(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de mesure de la 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 renvoie un Boolean indiquant si le verrouillage de l’hélice est activé sur le drone.
True– Le verrouillage de l’hélice est activé.False– Le verrouillage de l’hélice n’est pas activé.
Usage:
drone.get_safe_mode()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone est en train de grimper.
True– Le drone est actuellement en train de monter.False– Le drone ne monte pas.
Usage:
drone.is_climb_active()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone utilise actuellement une méthode de déplacement.
True– Le drone utilise actuellement une méthode de déplacement.False– Le drone n’utilise actuellement aucune méthode de déplacement.
Usage:
drone.is_move_active()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone est en train de tourner.
True– Le drone est actuellement en train de tourner.False– Le drone ne tourne pas.
Usage:
drone.is_turn_active()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone maintient sa position (en vol stationnaire).
True– Le drone maintient actuellement sa position (en vol stationnaire).False– Le drone est en train de changer de position.
Usage:
drone.is_hovering()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone est en train de décoller.
True– Le drone est actuellement en cours de décollage.False– Le drone n’est pas en train de décoller.
Usage:
drone.is_taking_off()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone est en cours d’atterrissage.
True– Le drone est actuellement en cours d’atterrissage.False– Le drone n’est pas en cours d’atterrissage.
Usage:
drone.is_landing()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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 renvoie un Boolean indiquant si le drone est actuellement posé.
True– Le drone a atterri.False– Le drone n’a pas atterri.
Usage:
drone.is_landed()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
# 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)