Beweging#
Invoering#
De VEX AIR-drone is voorzien van vier propellers, waardoor hij in elke richting kan bewegen en onafhankelijk kan roteren. De bewegingsmogelijkheden omvatten functies voor beweging, draaien, snelheidsaanpassing en positiebepaling.

Hieronder vindt u een lijst met alle beschikbare methoden:
Acties
take_off– Tilt de drone naar een bepaalde hoogte.land– Laat de drone landen.hover- Houdt de drone op zijn positie.climb– Verplaatst de drone in een gespecificeerde verticale richting.climb_for– Verplaatst de drone in een gespecificeerde verticale richting over een specifieke afstand.climb_to– Verplaatst de drone naar een opgegeven hoogte.move_at– Verplaatst de drone met een opgegeven koers en snelheid.move_for– Verplaatst de drone in een opgegeven richting over een opgegeven afstand.move_to– Verplaatst de drone naar een opgegeven positie met behoud van dezelfde koers.turn– Draait de drone naar links of rechts.turn_for– Draait de drone een vast aantal graden.turn_to– Draait de drone in een specifieke richting.move_with_vectors– Beweegt de drone met behulp van vectorgebaseerde x-, y-, z- en rotatiewaarden.
Mutators
set_steering_mode– Stelt het gezichtspunt (POV) in voor het besturen van de drone.set_movement_mode– Stelt de bewegingsstijl van de drone in.set_climb_velocity– Stelt de standaard klimsnelheid in.set_move_velocity– Stelt de standaard bewegingssnelheid in.set_turn_velocity- Stelt de standaard draaisnelheid in.set_max_z_height- Stelt een limiet in voor hoe hoog de drone kan vliegen.set_xyz_position– Stelt de huidige positie van de drone in.
Verdieners
get_max_z_height– Geeft de maximale hoogte terug die de drone kan bereiken.get_flight_state– Geeft de huidige status van de drone terug.get_x_position– Retourneert de x-coördinaat van de drone.get_y_position– Retourneert de y-coördinaat van de drone.get_z_position– Retourneert de z-coördinaat van de drone.get_safe_mode– Geeft de propellervergrendelingsstatus van de drone terug.is_climb_active– Geeft aan of de drone momenteel aan het klimmen is.is_move_active– Geeft aan of de drone momenteel beweegt.is_turn_active– Geeft aan of de drone momenteel aan het draaien is.is_hovering- Geeft aan of de drone momenteel zweeft.is_taking_off– Geeft aan of de drone momenteel aan het opstijgen is.is_landing– Geeft aan of de drone momenteel aan het landen is.is_landed- Geeft aan of de drone momenteel is geland.
Acties#
take_off#
take_off start de propellers en tilt de drone de lucht in. Deze methode moet worden gebruikt voordat andere bewegingen kunnen worden uitgevoerd.
Gebruik:
drone.take_off(climb_to, units, wait)
Parameters |
Beschrijving |
|---|---|
|
De z-positie (hoogte) waarnaar de drone zal vliegen. |
|
De te gebruiken eenheid:
|
|
Optioneel. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land laat de drone op de grond zakken. De propellers blijven draaien totdat het project wordt gestopt.
Gebruik:
drone.land(wait)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover zorgt ervoor dat de drone in geen enkele richting meer kan bewegen en op zijn huidige positie in de lucht blijft.
Usage:
drone.hover()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 beweegt de drone in een bepaalde verticale richting.
Usage:
drone.climb(direction, velocity)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de drone zal vliegen: |
|
De snelheid waarmee de drone zal klimmen, uitgedrukt als percentage. |
# 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 verplaatst de drone in een bepaalde verticale richting over een bepaalde afstand.
Gebruik:
drone.climb_for(direction, distance, units, velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de drone zal vliegen: |
|
De afstand die de drone zal afleggen. |
|
Optioneel. De eenheid die de afstand aangeeft:
|
|
Optioneel. De snelheid waarmee de drone klimt, uitgedrukt als percentage. Indien geen snelheid is opgegeven, is de standaardsnelheid 50%. |
|
Optioneel. |
# 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 verplaatst de drone naar een specifieke z-positie.
Gebruik:
drone.climb_to(z, units, velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De z-positie, als geheel getal of decimaal getal, waarnaar de drone zal klimmen. |
|
Optioneel. De eenheid die de afstand aangeeft:
|
|
Optioneel. De snelheid waarmee de drone zal klimmen, uitgedrukt als percentage. |
|
Optioneel. |
# 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 verplaatst de drone onder een opgegeven hoek en met een opgegeven snelheid.
Gebruik:
drone.move_at(angle, velocity)
Parameters |
Beschrijving |
|---|---|
|
De hoek, als geheel getal of decimaal getal, waaronder de drone beweegt, variërend van 0 tot 359 graden. |
|
De snelheid waarmee de drone zich zal bewegen, uitgedrukt als een percentage. |
# 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 verplaatst de drone in een specifieke richting over een specifieke afstand met behulp van de huidige set_move_velocity.
Gebruik:
drone.move_for(angle, distance, units, velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De hoek, als geheel getal of decimaal getal (float), waaronder de drone beweegt, variërend van 0 tot 359 graden. |
|
De afstand die de drone aflegt, als geheel getal of decimaal getal. |
|
Optioneel. De eenheid die de afstand aangeeft:
|
|
Optioneel. De snelheid waarmee de drone zich zal bewegen, uitgedrukt als percentage. |
|
Optioneel. |
# 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 verplaatst de drone naar een opgegeven positie in de lucht, terwijl de koers behouden blijft.
Gebruik:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De x-coördinaat waarnaar de drone zich zal bewegen. |
|
De y-coördinaat waarnaar de drone zich zal bewegen. |
|
De z-coördinaat waarnaar de drone zich zal bewegen. |
|
Optioneel. De eenheid die de afstand aangeeft:
|
|
Optioneel. De snelheid waarmee de drone zich zal bewegen, uitgedrukt als percentage. |
|
Optioneel. De snelheid waarmee de drone zal klimmen, uitgedrukt als percentage. |
|
Optioneel. |
# 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 draait de drone in een specifieke richting met behulp van de huidige set_turn_velocity.
Gebruik:
drone.turn(direction, velocity)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de drone draait: |
|
Optioneel. De snelheid waarmee de drone draait, uitgedrukt als percentage. |
# 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 draait de drone in een gespecificeerde richting over een ingestelde afstand ten opzichte van zijn huidige kijkrichting met behulp van de huidige set_turn_velocity.
Gebruik:
drone.turn_for(direction, angle, velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de drone draait: |
|
De hoek, als geheel getal of decimaal getal (float), waaronder de drone draait, variërend van 0 tot 359 graden. |
|
Optioneel. De snelheid waarmee de drone draait, uitgedrukt als percentage. |
|
Optioneel. |
# 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 draait de drone om in een specifieke richting te kijken met behulp van de huidige set_turn_velocity.
Gebruik:
drone.turn_to(heading, velocity, wait)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de drone zal draaien, van 0 tot 360 graden. |
|
Optioneel. De snelheid waarmee de drone draait, uitgedrukt als percentage. |
|
Optioneel. |
# 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 beweegt de drone met behulp van vectorgebaseerde beweging, waarbij beweging langs de x-as (horizontaal) en de y-as (verticaal) wordt gecombineerd en de drone tegelijkertijd roteert.
Opmerking: Deze methode stelt de waarden voor bewegings- en draaisnelheid direct in, dus er wordt geen gebruik gemaakt van set_move_velocity of set_turn_velocity.
Gebruik:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parameters |
Beschrijving |
|---|---|
|
De snelheid van de drone langs de Y-as (voorwaartse en achterwaartse beweging). Accepteert een waarde van -100 tot 100 als percentage, waarbij negatieve waarden achterwaarts en positieve waarden voorwaarts bewegen. |
|
De snelheid van de drone langs de X-as (zijwaartse beweging). Accepteert een waarde van -100 tot 100 als percentage, waarbij negatieve waarden naar links bewegen en positieve waarden naar rechts. |
|
De snelheid van de drone langs de Z-as (op- en neerwaartse beweging). Accepteert een waarde van -100 tot 100 als percentage, waarbij negatieve waarden neerwaarts en positieve waarden opwaarts bewegen. |
|
De rotatiesnelheid van de drone. Accepteert een waarde van -100 tot 100 als percentage, waarbij negatieve waarden tegen de klok in draaien en positieve waarden met de klok mee draaien. |
# 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)
Mutators#
set_steering_mode#
set_steering_mode stelt het gezichtspunt in dat wordt gebruikt bij het besturen van de drone.
Gebruik:
drone.set_steering_mode(style)
Parameters |
Beschrijving |
|---|---|
|
Hiermee wordt het gezichtspunt (POV) ingesteld dat wordt gebruikt om de drone te besturen. |
# 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 stelt de bewegingsstijl van de drone in.
Deze bewegingsstijl wordt gebruikt bij het besturen van de drone met een controller.
Gebruik:
drone.set_movement_mode(style)
Parameters |
Beschrijving |
|---|---|
|
Hiermee wordt de snelheid ingesteld waarmee de drone wordt bestuurd.
|
# 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 stelt de standaard klimsnelheid in als percentage. Dit heeft invloed op alle volgende methoden die verband houden met klimmen. De standaard klimsnelheid is 50%.
Gebruik:
drone.set_climb_velocity(velocity)
Parameters |
Beschrijving |
|---|---|
|
De snelheid waarmee de drone zal klimmen, uitgedrukt als percentage. |
# 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 stelt de standaard bewegingssnelheid in als een percentage. Dit heeft invloed op alle volgende methoden die met bewegen te maken hebben. De standaard bewegingssnelheid is 50%.
Gebruik:
drone.set_move_velocity(velocity)
Parameters |
Beschrijving |
|---|---|
|
De snelheid waarmee de drone zich zal bewegen, uitgedrukt als een percentage. |
# 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 stelt de standaard draaisnelheid in als percentage. Dit heeft invloed op alle volgende methoden die met draaien te maken hebben. De standaard draaisnelheid is 50%.
Gebruik:
drone.set_turn_velocity(velocity)
Parameters |
Beschrijving |
|---|---|
|
De snelheid waarmee de drone draait, uitgedrukt als percentage. |
# 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 stelt een limiet in voor hoe hoog de drone kan vliegen.
Gebruik:
drone.set_max_z_height(z_height, units)
Parameters |
Beschrijving |
|---|---|
|
De maximale waarde op de z-as, als geheel getal of decimaal getal, waarboven de drone niet zal vliegen, in een bereik van 1000 tot 5000 mm of 40 tot 196 inch. |
|
Optioneel. De afstandseenheden zijn:
|
# 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 stelt de huidige x-, y- of z-coördinaat van de drone in op een opgegeven waarde.
Gebruik:
drone.set_xyz_position(x, y, z, units)
Let op: Alle parameters zijn optioneel, maar minstens één (x, yof z) moet worden opgegeven.
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De x-coördinaat die voor de drone moet worden ingesteld in eenheden van |
|
Optioneel. De y-coördinaat die voor de drone moet worden ingesteld in eenheden van |
|
Optioneel. De z-coördinaat die voor de drone moet worden ingesteld in eenheden van |
|
Optioneel. De eenheid die de afstand aangeeft:
|
# 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 retourneert de maximale hoogte die de drone kan bereiken als een geheel getal.
Gebruik:
drone.get_max_z_height(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De meeteenheid:
|
# 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 retourneert de huidige vliegstatus van de drone als een DroneFlightStateType:
MOTOR_OFF- Geen andere vluchtstatus is waar.CALIBRATION- De drone kalibreert zijn sensoren.MOTOR_START- De drone start zijn motoren.FLIGHT_READY- De drone is klaar om te vliegen.FLIGHT- De drone is in de lucht.
Usage:
drone.get_flight_state()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert de x-coördinaat van de drone als een decimaal (float).
Usage:
drone.get_x_position(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De eenheid die de positie aangeeft:
|
# 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 retourneert de y-coördinaat van de drone als een decimaal (float).
Gebruik:
drone.get_y_position(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De eenheid die de positie aangeeft:
|
# 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 retourneert de z-coördinaat van de drone als een decimaal (float).
Gebruik:
drone.get_z_position(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De eenheid die de positie aangeeft:
|
# 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 retourneert een Boolean die aangeeft of de propellervergrendeling op de drone is ingeschakeld.
True– Propellervergrendeling is ingeschakeld.False– Propellervergrendeling is niet ingeschakeld.
Gebruik:
drone.get_safe_mode()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone aan het klimmen is.
True– De drone klimt momenteel.False– De drone klimt niet.
Gebruik:
drone.is_climb_active()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone momenteel een bewegingsmethode gebruikt.
True– De drone gebruikt momenteel een bewegingsmethode.False– De drone gebruikt momenteel geen bewegingsmethode.
Gebruik:
drone.is_move_active()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone draait.
True– De drone draait momenteel.False– De drone draait niet.
Gebruik:
drone.is_turn_active()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone zijn positie behoudt (zweeft).
True– De drone behoudt momenteel zijn positie (zweeft).False– De drone verandert momenteel van positie.
Gebruik:
drone.is_hovering()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone bezig is met opstijgen.
True– De drone is momenteel bezig met opstijgen.False– De drone is niet bezig met opstijgen.
Gebruik:
drone.is_taking_off()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone bezig is met landen.
True– De drone is momenteel aan het landen.False– De drone is niet aan het landen.
Gebruik:
drone.is_landing()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 retourneert een Boolean die aangeeft of de drone momenteel is geland.
True– De drone is geland.False– De drone is niet geland.
Gebruik:
drone.is_landed()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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)