Pohyb#
Zavedení#
Dron VEX AIR je vybaven čtyřmi vrtulemi, které mu umožňují pohyb v libovolném směru a nezávislé otáčení. Pohyb umožňuje metody pro pohyb, otáčení, úpravu rychlosti a sledování polohy.

Níže je uveden seznam všech dostupných metod:
Akce
take_off– Zvedne dron do zadané výšky.land– Přistane s dronem.hover- Udrží dron na jeho pozici.climb– Pohybuje dronem ve specifickém vertikálním směru.climb_for– Pohybuje dronem v daném vertikálním směru na určitou vzdálenost.climb_to– Přesune dron do zadané výšky.move_at– Pohybuje dronem zadaným směrem a rychlostí.move_for– Pohybuje dronem v zadaném směru na zadanou vzdálenost.move_to– Přesune dron na určenou pozici a zároveň si zachová stejný směr.turn– Otočí dron doleva nebo doprava.turn_for– Otočí dron o nastavený počet stupňů.turn_to– Otočí dron tak, aby letěl určitým směrem.move_with_vectors– Pohybuje dronem pomocí vektorových hodnot x, y, z a rotace.
Mutátory
set_steering_mode– Nastaví úhel pohledu pro řízení dronu.set_movement_mode– Nastaví styl pohybu dronu.set_climb_velocity– Nastaví výchozí rychlost stoupání.set_move_velocity– Nastaví výchozí rychlost pohybu.set_turn_velocity- Nastaví výchozí rychlost otáčení.set_max_z_height- Nastaví limit, jak vysoko dron poletí.set_xyz_position– Nastaví aktuální polohu dronu.
Získávači
get_max_z_height– Vrátí maximální výšku, které může dron dosáhnout.get_flight_state– Vrátí aktuální stav dronu.get_x_position– Vrátí souřadnici x dronu.get_y_position– Vrátí souřadnici y dronu.get_z_position– Vrátí souřadnici z dronu.get_safe_mode– Vrátí stav uzamčení vrtule dronu.is_climb_active– Vrací, zda dron aktuálně stoupá.is_move_active– Vrací, zda se dron aktuálně pohybuje.is_turn_active– Vrací, zda se dron aktuálně otáčí.is_hovering- Vrátí, zda se dron aktuálně vznáší.is_taking_off– Vrátí, zda dron aktuálně vzlétá.is_landing– Vrací, zda dron aktuálně přistává.is_landed- Vrátí, zda dron aktuálně přistál.
Akce#
take_off#
take_off spustí vrtule a zvedne dron do vzduchu. Tuto metodu je nutné použít před provedením dalších pohybů.
Používání:
drone.take_off(climb_to, units, wait)
Parametry |
Popis |
|---|---|
|
Pozice Z (výška), do které dron poletí. |
|
Použité jednotky:
|
|
Volitelné. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land spustí dron k zemi. Vrtule budou pokračovat v chodu, dokud nebude projekt zastaven.
Používání:
drone.land(wait)
Parametry |
Popis |
|---|---|
|
Volitelné. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover zastaví dron v pohybu v jakémkoli směru a udrží jeho aktuální pozici ve vzduchu.
Usage:
drone.hover()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 pohybuje dronem ve specifickém vertikálním směru.
Usage:
drone.climb(direction, velocity)
Parametry |
Popis |
|---|---|
|
Směr, kterým bude dron letět: |
|
Rychlost, s jakou bude dron stoupat, v procentech. |
# 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 pohybuje dronem ve specifickém vertikálním směru na určitou vzdálenost.
Používání:
drone.climb_for(direction, distance, units, velocity, wait)
Parametry |
Popis |
|---|---|
|
Směr, kterým bude dron letět: |
|
Vzdálenost, kterou dron uletí. |
|
Volitelné. Jednotka, která představuje vzdálenost:
|
|
Volitelné. Rychlost, s jakou bude dron stoupat, v procentech. Pokud rychlost není zadána, výchozí rychlost je 50 %. |
|
Volitelné. |
# 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 přesune dron do určité pozice na ose Z.
Používání:
drone.climb_to(z, units, velocity, wait)
Parametry |
Popis |
|---|---|
|
Pozice z, jako celé číslo nebo desetinné číslo, do které bude dron stoupat. |
|
Volitelné. Jednotka, která představuje vzdálenost:
|
|
Volitelné. Rychlost, s jakou bude dron stoupat, v procentech. |
|
Volitelné. |
# 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 pohybuje dronem pod zadaným úhlem a rychlostí.
Používání:
drone.move_at(angle, velocity)
Parametry |
Popis |
|---|---|
|
Úhel, v celém nebo desetinném čísle, pod kterým se dron pohybuje, v rozsahu od 0 do 359 stupňů. |
|
Rychlost, s jakou se dron bude pohybovat, v procentech. |
# 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 pohybuje dronem v určitém směru na určitou vzdálenost s využitím aktuální set_move_velocity.
Používání:
drone.move_for(angle, distance, units, velocity, wait)
Parametry |
Popis |
|---|---|
|
Úhel, jako celé číslo nebo desetinné číslo (float), pod kterým se dron pohybuje, v rozsahu od 0 do 359 stupňů. |
|
Vzdálenost, vyjádřená celým nebo desetinným číslem, kterou dron urazí. |
|
Volitelné. Jednotka, která představuje vzdálenost:
|
|
Volitelné. Rychlost, s jakou se dron bude pohybovat, v procentech. |
|
Volitelné. |
# 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 přesune dron do určené pozice ve vzduchu a zároveň si zachová stejný kurz.
Používání:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parametry |
Popis |
|---|---|
|
Souřadnice x, na kterou se dron přesune. |
|
Souřadnice y, na kterou se dron přesune. |
|
Souřadnice z, na kterou se dron přesune. |
|
Volitelné. Jednotka, která představuje vzdálenost:
|
|
Volitelné. Rychlost, s jakou se dron bude pohybovat, v procentech. |
|
Volitelné. Rychlost, s jakou bude dron stoupat, v procentech. |
|
Volitelné. |
# 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 otáčí dron určitým směrem pomocí aktuální set_turn_velocity.
Používání:
drone.turn(direction, velocity)
Parametry |
Popis |
|---|---|
|
Směr, kterým se dron otočí: |
|
Volitelné. Rychlost, s jakou se dron bude otáčet, v procentech. |
# 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 otočí dron v daném směru o nastavenou vzdálenost vzhledem k jeho aktuálnímu směru otáčení s využitím aktuální set_turn_velocity.
Používání:
drone.turn_for(direction, angle, velocity, wait)
Parametry |
Popis |
|---|---|
|
Směr, kterým se dron otočí: |
|
Úhel, jako celé číslo nebo desetinné číslo (float), o který se dron otočí, v rozsahu od 0 do 359 stupňů. |
|
Volitelné. Rychlost, s jakou se dron bude otáčet, v procentech. |
|
Volitelné. |
# 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 otočí dron tak, aby směřoval do určitého směru s využitím aktuální hodnoty set_turn_velocity.
Používání:
drone.turn_to(heading, velocity, wait)
Parametry |
Popis |
|---|---|
|
Směr, kterým se dron otočí, od 0 do 360 stupňů. |
|
Volitelné. Rychlost, s jakou se dron bude otáčet, v procentech. |
|
Volitelné. |
# 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 pohybuje dronem pomocí vektorového pohybu, kombinuje pohyb podél osy x (horizontálně) a osy y (vertikálně) a zároveň dron otáčí.
Poznámka: Tato metoda nastavuje hodnoty rychlosti pohybu a otáčení přímo, takže nepoužívá set_move_velocity ani set_turn_velocity.
Používání:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parametry |
Popis |
|---|---|
|
Rychlost dronu podél osy Y (pohyb vpřed a vzad). Přijímá hodnotu od -100 do 100 jako procento, kde záporné hodnoty slouží k posunu dozadu a kladné hodnoty k posunu dopředu. |
|
Rychlost dronu podél osy X (pohyb ze strany na stranu). Přijímá hodnotu od -100 do 100 v procentech, kde záporné hodnoty se posouvají doleva a kladné hodnoty doprava. |
|
Rychlost dronu podél osy Z (pohyb nahoru a dolů). Přijímá hodnotu od -100 do 100 v procentech, kde záporné hodnoty znamenají pohyb dolů a kladné hodnoty pohyb nahoru. |
|
Rychlost otáčení dronu. Přijímá hodnotu od -100 do 100 v procentech, kde záporné hodnoty se otáčejí proti směru hodinových ručiček a kladné hodnoty se otáčejí ve směru hodinových ručiček. |
# 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átory#
set_steering_mode#
set_steering_mode nastavuje úhel pohledu, který se použije při řízení dronu.
Používání:
drone.set_steering_mode(style)
Parametry |
Popis |
|---|---|
|
Nastavuje úhel pohledu, který se používá k řízení dronu. |
# 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 nastavuje styl pohybu dronu.
Tento styl pohybu se používá při létání dronu s ovladačem.
Používání:
drone.set_movement_mode(style)
Parametry |
Popis |
|---|---|
|
Nastavuje rychlost, která se používá k řízení dronu.
|
# 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 nastavuje výchozí rychlost stoupání v procentech. Toto ovlivní všechny následující metody související se lezením. Výchozí rychlost stoupání je 50 %.
Používání:
drone.set_climb_velocity(velocity)
Parametry |
Popis |
|---|---|
|
Rychlost, s jakou bude dron stoupat, v procentech. |
# 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 nastavuje výchozí rychlost pohybu v procentech. Toto ovlivní všechny následující metody související s pohybem. Výchozí rychlost pohybu je 50 %.
Používání:
drone.set_move_velocity(velocity)
Parametry |
Popis |
|---|---|
|
Rychlost, s jakou se dron bude pohybovat, v procentech. |
# 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 nastavuje výchozí rychlost otáčení v procentech. Toto ovlivní všechny následující metody související s otáčením. Výchozí rychlost otáčení je 50 %.
Používání:
drone.set_turn_velocity(velocity)
Parametry |
Popis |
|---|---|
|
Rychlost, s jakou se dron bude otáčet, v procentech. |
# 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 nastavuje limit, jak vysoko dron poletí.
Používání:
drone.set_max_z_height(z_height, units)
Parametry |
Popis |
|---|---|
|
Maximální hodnota osy z, jako celé číslo nebo desetinné číslo, nad kterou dron nepřeletí, v rozsahu od 1000 do 5000 mm nebo od 40 do 196 palců. |
|
Volitelné. Jednotky vzdálenosti jsou:
|
# 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 nastaví aktuální souřadnici x, y nebo z dronu na zadanou hodnotu.
Používání:
drone.set_xyz_position(x, y, z, units)
Poznámka: Všechny parametry jsou volitelné, ale musí být zadán alespoň jeden (x, ynebo z).
Parametry |
Popis |
|---|---|
|
Volitelné. Souřadnice x, která se má nastavit pro dron, v jednotkách |
|
Volitelné. Souřadnice y, která se má nastavit pro dron, v jednotkách |
|
Volitelné. Souřadnice z, která se má nastavit pro dron, v jednotkách |
|
Volitelné. Jednotka, která představuje vzdálenost:
|
# 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()
Gettery#
get_max_z_height#
get_max_z_height vrací maximální výšku, které může dron dosáhnout, jako celé číslo.
Používání:
drone.get_max_z_height(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka měření:
|
# 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 vrací aktuální stav letu dronu jako DroneFlightStateType:
MOTOR_OFF- Žádný jiný letový stav není platný.CALIBRATION- Dron kalibruje své senzory.MOTOR_START- Dron spouští své motory.FLIGHT_READY- Dron je připraven k letu.FLIGHT- Dron je ve letu.
Usage:
drone.get_flight_state()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací souřadnici x dronu jako desetinné číslo (float).
Usage:
drone.get_x_position(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka, která představuje polohu:
|
# 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 vrací souřadnici y dronu jako desetinné číslo (float).
Používání:
drone.get_y_position(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka, která představuje polohu:
|
# 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 vrací souřadnici z dronu jako desetinné číslo (float).
Používání:
drone.get_z_position(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka, která představuje polohu:
|
# 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 vrací booleovskou hodnotu Boolean , která indikuje, zda je na dronu povolen zámek vrtule.
True– Zablokování vrtule je povoleno.False– Zámek vrtule není povolen.
Používání:
drone.get_safe_mode()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která označuje, zda dron stoupá.
True– Dron aktuálně stoupá.False– Dron nestoupá.
Používání:
drone.is_climb_active()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která označuje, zda dron aktuálně používá metodu pohybu.
True– Dron aktuálně používá metodu pohybu.False– Dron aktuálně nepoužívá žádnou metodu pohybu.
Používání:
drone.is_move_active()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která indikuje, zda se dron otáčí.
True– Dron se právě otáčí.False– Dron se neotáčí.
Používání:
drone.is_turn_active()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která indikuje, zda dron udržuje svou pozici (vznáší se).
True– Dron si aktuálně udržuje svou pozici (vznáší se).False– Dron aktuálně mění svou polohu.
Používání:
drone.is_hovering()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean , která indikuje, zda dron právě vzlétá.
True– Dron se právě vzlétá.False– Dron se nevzlétá.
Používání:
drone.is_taking_off()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která indikuje, zda dron právě přistává.
True– Dron právě přistává.False– Dron se nepřistává.
Používání:
drone.is_landing()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu Boolean která označuje, zda dron aktuálně přistál.
True– Dron přistál.False– Dron nepřistál.
Používání:
drone.is_landed()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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)