Mozgás#
Bevezetés#
A VEX AIR drón négy propellerrel rendelkezik, amelyek lehetővé teszik, hogy bármilyen irányba mozogjon és függetlenül forogjon. A mozgás módokat kínál a mozgásra, fordulásra, sebességállításra és pozíciókövetésre.

Az alábbiakban felsoroljuk az összes elérhető módszert:
Műveletek
take_off– Felemeli a drónt egy megadott magasságra.land– Leszállítja a drónt.hover- A drónt a pozíciójában tartja.climb– A drónt egy megadott függőleges irányba mozgatja.climb_for– A drónt egy megadott függőleges irányban, adott távolságon mozgatja.climb_to– A drónt egy megadott magasságra mozgatja.move_at– A drónt egy megadott irányban és sebességgel mozgatja.move_for– A drónt a megadott irányban, megadott távolságra mozgatja.move_to– A drónt egy megadott pozícióba mozgatja, miközben megtartja ugyanazt az irányt.turn– Balra vagy jobbra forgatja a drónt.turn_for– Beállított fokkal elfordítja a drónt.turn_to– A drónt egy adott irányba fordítja.move_with_vectors– Vektor alapú x, y, z és forgatási értékek használatával mozgatja a drónt.
Mutátorok
set_steering_mode– Beállítja a drón kormányzásának nézőpontját.set_movement_mode– Beállítja a drón mozgási stílusát.set_climb_velocity– Beállítja az alapértelmezett emelkedési sebességet.set_move_velocity– Beállítja az alapértelmezett mozgási sebességet.set_turn_velocity- Beállítja az alapértelmezett fordulási sebességet.set_max_z_height- Beállítja a drón repülési magasságának korlátját.set_xyz_position– Beállítja a drón aktuális pozícióját.
Getterek
get_max_z_height– Visszaadja a drón által elérhető maximális magasságot.get_flight_state– Visszaadja a drón aktuális állapotát.get_x_position– Visszaadja a drón x koordinátáját.get_y_position– Visszaadja a drón y koordinátáját.get_z_position– Visszaadja a drón z-koordinátáját.get_safe_mode– Visszaadja a drón propellerének zárolási állapotát.is_climb_active– Visszaadja, hogy a drón jelenleg emelkedik-e.is_move_active– Visszaadja, hogy a drón jelenleg mozog-e.is_turn_active– Visszaadja, hogy a drón jelenleg fordul-e.is_hovering- Visszaadja, hogy a drón jelenleg lebeg-e.is_taking_off– Visszaadja, hogy a drón jelenleg felszáll-e.is_landing– Visszaadja, hogy a drón jelenleg leszáll-e.is_landed- Visszaadja, hogy a drón jelenleg leszállt-e.
Műveletek#
take_off#
take_off beindítja a propellereket és a levegőbe emeli a drónt. Ezt a módszert minden más mozgás végrehajtása előtt alkalmazni kell.
Használat:
drone.take_off(climb_to, units, wait)
Paraméterek |
Leírás |
|---|---|
|
A drón z pozíciója (magassága) ahová repülni fog. |
|
A használandó mértékegység:
|
|
Opcionális. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land lépéssel a drón leereszthető. A propellerek a projekt leállításáig tovább forognak.
Használat:
drone.land(wait)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover leállítja a drón mozgását bármilyen irányba, és megtartja aktuális pozícióját a levegőben.
Usage:
drone.hover()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 a drónt egy megadott függőleges irányba mozgatja.
Usage:
drone.climb(direction, velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón repülési iránya: |
|
A drón emelkedési sebessége százalékban megadva. |
# 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 paraméterrel a drón egy megadott függőleges irányban, adott távolságon mozgatható.
Használat:
drone.climb_for(direction, distance, units, velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
A drón repülési iránya: |
|
A drón által megtett távolság. |
|
Opcionális. A távolságot jelző mértékegység:
|
|
Opcionális. A drón emelkedési sebessége százalékban megadva. Ha a sebesség nincs megadva, az alapértelmezett sebesség 50%. |
|
Opcionális. |
# 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 A drónt egy adott z pozícióba mozgatja.
Használat:
drone.climb_to(z, units, velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
A z pozíció egész vagy tizedes számként, ahová a drón fel fog emelkedni. |
|
Opcionális. A távolságot jelző mértékegység:
|
|
Opcionális. A drón emelkedési sebessége százalékban megadva. |
|
Opcionális. |
# 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 A drónt egy megadott szögben és sebességgel mozgatja.
Használat:
drone.move_at(angle, velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón mozgásának szöge egész számként vagy tizedes törtként, 0 és 359 fok között. |
|
A drón mozgási sebessége százalékban kifejezve. |
# 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 parancs a drónt egy adott irányba, egy adott távolságra mozgatja az aktuális set_move_velocity érték használatával.
Használat:
drone.move_for(angle, distance, units, velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
A drón mozgásának szöge egész vagy decimális (float) formában, 0 és 359 fok között. |
|
A drón által megteendő távolság egész vagy tizedes számként. |
|
Opcionális. A távolságot jelző mértékegység:
|
|
Opcionális. A drón mozgási sebessége százalékban megadva. |
|
Opcionális. |
# 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 A drónt egy megadott pozícióba mozgatja a levegőben, miközben megtartja ugyanazt az irányt.
Használat:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
Az x koordináta, ahová a drón mozogni fog. |
|
Az y koordináta, ahová a drón mozogni fog. |
|
A z koordináta, ahová a drón mozogni fog. |
|
Opcionális. A távolságot jelző mértékegység:
|
|
Opcionális. A drón mozgási sebessége százalékban megadva. |
|
Opcionális. A drón emelkedési sebessége százalékban megadva. |
|
Opcionális. |
# 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 A drónt egy adott irányba forgatja az aktuális set_turn_velocity érték használatával.
Használat:
drone.turn(direction, velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón fordulási iránya: |
|
Opcionális. A drón fordulási sebessége százalékban. |
# 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 paraméter a drónt a megadott irányba, a jelenlegi iránytól számított beállított távolságra forgatja a jelenlegi set_turn_velocity érték használatával.
Használat:
drone.turn_for(direction, angle, velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
A drón fordulási iránya: |
|
A drón fordulási szöge egész vagy decimális (float) formában, 0 és 359 fok között. |
|
Opcionális. A drón fordulási sebessége százalékban. |
|
Opcionális. |
# 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 paraméterrel a drón egy adott irányba fordul, a jelenlegi set_turn_velocity érték használatával.
Használat:
drone.turn_to(heading, velocity, wait)
Paraméterek |
Leírás |
|---|---|
|
Az az irány, amerre a drón 0 és 360 fok között fordul. |
|
Opcionális. A drón fordulási sebessége százalékban. |
|
Opcionális. |
# 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 A függvény vektor alapú mozgással mozgatja a drónt, kombinálva az x tengely (vízszintes) és az y tengely (függőleges) menti mozgást, miközben a drónt forgatja is.
Megjegyzés: Ez a metódus közvetlenül állítja be a mozgási és fordulási sebességértékeket, így nem használja a set_move_velocity vagy a set_turn_velocity metódusokat.
Használat:
drone.move_with_vectors(forward, rightward, upward, rotation)
Paraméterek |
Leírás |
|---|---|
|
A drón sebessége az Y tengely mentén (előre és hátra mozgás). -100 és 100 közötti értéket fogad el százalékként, ahol a negatív értékek hátra, a pozitív értékek pedig előre mozognak. |
|
A drón sebessége az X tengely mentén (oldalirányú mozgás). -100 és 100 közötti értéket fogad el százalékként, ahol a negatív értékek balra, a pozitív értékek pedig jobbra mozognak. |
|
A drón sebessége a Z tengely mentén (fel és le mozgás). -100 és 100 közötti értéket fogad el százalékként, ahol a negatív értékek lefelé, a pozitív értékek pedig felfelé mozognak. |
|
A drón forgási sebessége. -100 és 100 közötti értéket fogad el százalékként, ahol a negatív értékek az óramutató járásával ellentétes irányba, a pozitív értékek pedig az óramutató járásával megegyező irányba forognak. |
# 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)
Mutátorok#
set_steering_mode#
set_steering_mode beállítja a drón kormányzásakor használt nézőpontot.
Használat:
drone.set_steering_mode(style)
Paraméterek |
Leírás |
|---|---|
|
Beállítja a drón irányítására használt nézőpontot. |
# 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 beállítja a drón mozgási stílusát.
Ezt a mozgásstílust akkor használják, amikor a drónt vezérlővel reptetik.
Használat:
drone.set_movement_mode(style)
Paraméterek |
Leírás |
|---|---|
|
Beállítja a drón kormányzásához használt sebességet.
|
# 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 Az alapértelmezett mászási sebességet állítja be százalékban. Ez hatással lesz az összes további, mászással kapcsolatos metódusra. Az alapértelmezett emelkedési sebesség 50%.
Használat:
drone.set_climb_velocity(velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón emelkedési sebessége százalékban megadva. |
# 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 Az alapértelmezett mozgási sebességet állítja be százalékban. Ez hatással lesz az összes további, mozgással kapcsolatos metódusra. Az alapértelmezett mozgási sebesség 50%.
Használat:
drone.set_move_velocity(velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón mozgási sebessége százalékban kifejezve. |
# 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 Az alapértelmezett fordulási sebességet állítja be százalékban. Ez hatással lesz az összes további, fordulással kapcsolatos metódusra. Az alapértelmezett fordulási sebesség 50%.
Használat:
drone.set_turn_velocity(velocity)
Paraméterek |
Leírás |
|---|---|
|
A drón fordulási sebessége százalékban. |
# 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 paraméterrel korlátot állíthat be arra vonatkozóan, hogy a drón milyen magasra repülhet.
Használat:
drone.set_max_z_height(z_height, units)
Paraméterek |
Leírás |
|---|---|
|
A maximális z tengelyérték egész vagy tizedes számként, amely felett a drón nem repülhet, 1000 és 5000 mm vagy 40 és 196 hüvelyk közötti tartományban. |
|
Opcionális. A távolság mértékegységei:
|
# 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 A drón aktuális x, y vagy z koordinátáját egy megadott értékre állítja be.
Használat:
drone.set_xyz_position(x, y, z, units)
Megjegyzés: Minden paraméter opcionális, de legalább egyet (x, yvagy z) meg kell adni.
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A drón x koordinátája |
|
Opcionális. A drónhoz beállítandó y koordináta |
|
Opcionális. A drón z koordinátája |
|
Opcionális. A távolságot jelző mértékegység:
|
# 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()
Getterek#
get_max_z_height#
get_max_z_height Visszaadja a drón által elérhető maximális magasságot egész számként.
Használat:
drone.get_max_z_height(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. Mértékegység:
|
# 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 Visszaadja a drón aktuális repülési állapotát DroneFlightStateType-ként:
MOTOR_OFF- Egyetlen más repülési állapot sem igaz.CALIBRATION- A drón kalibrálja az érzékelőit.MOTOR_START- A drón beindítja a motorjait.FLIGHT_READY- A drón repülésre kész.FLIGHT- A drón repül.
Usage:
drone.get_flight_state()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 A drón x koordinátáját adja vissza decimális alakban (float).
Usage:
drone.get_x_position(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A pozíciót jelző mértékegység:
|
# 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 A drón y koordinátáját adja vissza decimális alakban (float).
Használat:
drone.get_y_position(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A pozíciót jelző mértékegység:
|
# 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 A drón z koordinátáját adja vissza decimális alakban (float).
Használat:
drone.get_z_position(units)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. A pozíciót jelző mértékegység:
|
# 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 Egy Boolean értéket ad vissza, amely azt jelzi, hogy a Propeller Lock engedélyezve van-e a drónon.
True– A légcsavar zárolása engedélyezve van.False– A légcsavarzár nincs engedélyezve.
Használat:
drone.get_safe_mode()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Egy Boolean as értéket ad vissza, amely azt jelzi, hogy a drón emelkedik-e.
True– A drón jelenleg emelkedik.False– A drón nem emelkedik.
Használat:
drone.is_climb_active()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Egy Boolean értéket ad vissza, amely azt jelzi, hogy a drón jelenleg használ-e move metódust.
True– A drón jelenleg mozgás metódust használ.False– A drón jelenleg nem használ mozgási metódust.
Használat:
drone.is_move_active()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Egy Boolean értéket ad vissza, amely azt jelzi, hogy a drón fordul-e.
True– A drón jelenleg fordul.False– A drón nem fordul.
Használat:
drone.is_turn_active()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Egy Boolean értéket ad vissza, amely azt jelzi, hogy a drón tartja-e a pozícióját (lebeg-e).
True– A drón jelenleg tartja a pozícióját (lebeg).False– A drón jelenleg változtatja a pozícióját.
Használat:
drone.is_hovering()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Egy Boolean értéket ad vissza, amely jelzi, hogy a drón felszállás folyamatban van-e.
True– A drón jelenleg a felszállás folyamatában van.False– A drón nem a felszállás folyamatában van.
Használat:
drone.is_taking_off()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Az 1-es paraméter egy Boolean értéket ad vissza, amely jelzi, hogy a drón leszállás alatt áll-e.
True– A drón jelenleg a leszállás folyamatában van.False– A drón nem leszállás közben van.
Használat:
drone.is_landing()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 egy Boolean értéket ad vissza, amely azt jelzi, hogy a drón jelenleg leszállt-e.
True– A drón leszállt.False– A drón nem leszállt.
Használat:
drone.is_landed()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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)