Rörelse#
Introduktion#
VEX AIR-drönaren har fyra propellrar, vilket gör att den kan röra sig i alla riktningar och rotera oberoende av varandra. Motion erbjuder metoder för rörelse, vridning, hastighetsjusteringar och positionsspårning.

Nedan följer en lista över alla tillgängliga metoder:
Åtgärder
take_off– Lyfter drönaren till en specificerad höjd.land– Landar drönaren.hover- Håller drönaren på sin position.climb– Flyttar drönaren i en specificerad vertikal riktning.climb_for– Flyttar drönaren i en specificerad vertikal riktning över en specifik sträcka.climb_to– Flyttar drönaren till en specificerad höjd.move_at– Flyttar drönaren med en specificerad kurs och hastighet.move_for– Flyttar drönaren i en specifik kurs över ett specifikt avstånd.move_to– Flyttar drönaren till en specifik position samtidigt som den bibehåller samma kurs.turn– Svänger drönaren åt vänster eller höger.turn_for– Vrider drönaren ett visst antal grader.turn_to– Vrider drönaren mot en specifik kurs.move_with_vectors– Flyttar drönaren med hjälp av vektorbaserade x-, y-, z- och rotationsvärden.
Mutatorer
set_steering_mode– Ställer in perspektivet för att styra drönaren.set_movement_mode– Ställer in drönarens rörelsestil.set_climb_velocity– Ställer in standardklättringshastigheten.set_move_velocity– Ställer in standardhastigheten för rörelsen.set_turn_velocity- Ställer in standardvridhastigheten.set_max_z_height- Ställer in en gräns för hur högt drönaren kan flyga.set_xyz_position– Ställer in drönarens aktuella position.
Hämtarna
get_max_z_height– Returnerar den maximala höjden som drönaren kan nå.get_flight_state– Returnerar drönarens aktuella tillstånd.get_x_position– Returnerar drönarens x-koordinat.get_y_position– Returnerar drönarens y-koordinat.get_z_position– Returnerar drönarens z-koordinat.get_safe_mode– Returnerar drönarens propellerlåsningsläge.is_climb_active– Returnerar om drönaren för närvarande klättrar.is_move_active– Returnerar om drönaren för närvarande rör sig.is_turn_active– Returnerar om drönaren för närvarande roterar.is_hovering- Returnerar om drönaren för närvarande svävar.is_taking_off– Returnerar om drönaren lyfter för närvarande.is_landing– Returnerar om drönaren landar för närvarande.is_landed– Returnerar om drönaren för närvarande är landad.
Åtgärder#
take_off#
take_off startar propellrarna och lyfter drönaren upp i luften. Denna metod måste användas innan andra rörelser kan göras.
Användande:
drone.take_off(climb_to, units, wait)
Parametrar |
Beskrivning |
|---|---|
|
Z-positionen (höjden) som drönaren kommer att flyga till. |
|
Enheten att använda:
|
|
Valfritt. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land sänker drönaren till marken. Propellrarna fortsätter att gå tills projektet stoppas.
Användande:
drone.land(wait)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover stoppar drönaren från att röra sig i någon riktning och bibehåller sin aktuella position i luften.
Usage:
drone.hover()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 flyttar drönaren i en specificerad vertikal riktning.
Usage:
drone.climb(direction, velocity)
Parametrar |
Beskrivning |
|---|---|
|
Riktningen i vilken drönaren kommer att flyga: |
|
Hastigheten med vilken drönaren kommer att stiga i procent. |
# 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 flyttar drönaren i en specificerad vertikal riktning över en specifik sträcka.
Användande:
drone.climb_for(direction, distance, units, velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
Riktningen i vilken drönaren kommer att flyga: |
|
Avståndet som drönaren kommer att flyga. |
|
Valfritt. Enheten som representerar avståndet:
|
|
Valfritt. Hastigheten med vilken drönaren kommer att stiga i procent. Om hastigheten inte anges är standardhastigheten 50 %. |
|
Valfritt. |
# 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 flyttar drönaren till en specifik z-position.
Användande:
drone.climb_to(z, units, velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
Z-positionen, som heltal eller decimaltal, kommer drönaren att klättra till. |
|
Valfritt. Enheten som representerar avståndet:
|
|
Valfritt. Hastigheten med vilken drönaren kommer att stiga i procent. |
|
Valfritt. |
# 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 flyttar drönaren med en specificerad vinkel och hastighet.
Användande:
drone.move_at(angle, velocity)
Parametrar |
Beskrivning |
|---|---|
|
Vinkeln, som ett heltal eller decimaltal, med vilken drönaren rör sig, från 0 till 359 grader. |
|
Hastigheten med vilken drönaren kommer att röra sig i procent. |
# 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 flyttar drönaren i en specifik riktning ett specifikt avstånd med hjälp av den aktuella set_move_velocity.
Användande:
drone.move_for(angle, distance, units, velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
Vinkeln, som ett heltal eller decimaltal (flyttal), med vilken drönaren rör sig, från 0 till 359 grader. |
|
Avståndet, som heltal eller decimaltal, som drönaren kommer att förflytta sig. |
|
Valfritt. Enheten som representerar avståndet:
|
|
Valfritt. Hastigheten med vilken drönaren kommer att röra sig i procent. |
|
Valfritt. |
# 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 flyttar drönaren till en specificerad position i luften samtidigt som den bibehåller samma kurs.
Användande:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
X-koordinaten som drönaren kommer att röra sig till. |
|
Y-koordinaten som drönaren kommer att röra sig till. |
|
Z-koordinaten som drönaren kommer att röra sig till. |
|
Valfritt. Enheten som representerar avståndet:
|
|
Valfritt. Hastigheten med vilken drönaren kommer att röra sig i procent. |
|
Valfritt. Hastigheten med vilken drönaren kommer att stiga i procent. |
|
Valfritt. |
# 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 vrider drönaren i en specifik riktning med hjälp av strömmen set_turn_velocity.
Användande:
drone.turn(direction, velocity)
Parametrar |
Beskrivning |
|---|---|
|
Riktningen drönaren kommer att svänga: |
|
Valfritt. Hastigheten med vilken drönaren kommer att svänga i procent. |
# 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 vrider drönaren i en specificerad riktning ett visst avstånd i förhållande till dess nuvarande vändriktning med hjälp av den aktuella set_turn_velocity.
Användande:
drone.turn_for(direction, angle, velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
Riktningen drönaren kommer att svänga: |
|
Vinkeln, som ett heltal eller decimaltal (flyttal), vid vilken drönaren svänger, från 0 till 359 grader. |
|
Valfritt. Hastigheten med vilken drönaren kommer att svänga i procent. |
|
Valfritt. |
# 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 vrider drönaren så att den riktas mot en specifik kurs med hjälp av den aktuella set_turn_velocity.
Användande:
drone.turn_to(heading, velocity, wait)
Parametrar |
Beskrivning |
|---|---|
|
Kursen som drönaren kommer att vända mot från 0 till 360 grader. |
|
Valfritt. Hastigheten med vilken drönaren kommer att svänga i procent. |
|
Valfritt. |
# 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 flyttar drönaren med hjälp av vektorbaserad rörelse, som kombinerar rörelse längs x-axeln (horisontell) och y-axeln (vertikal) samtidigt som drönaren roteras.
Obs! Den här metoden ställer in värden för rörelse- och svänghastighet direkt, så den använder inte set_move_velocity eller set_turn_velocity.
Användande:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parametrar |
Beskrivning |
|---|---|
|
Drönarens hastighet längs Y-axeln (framåt- och bakåtrörelse). Accepterar ett värde från -100 till 100 som en procentandel, där negativa värden rör sig bakåt och positiva värden rör sig framåt. |
|
Drönarens hastighet längs X-axeln (rörelse från sida till sida). Accepterar ett värde från -100 till 100 som en procentandel, där negativa värden flyttas åt vänster och positiva värden flyttas åt höger. |
|
Drönarens hastighet längs Z-axeln (upp- och nedåtgående rörelse). Accepterar ett värde från -100 till 100 som en procentandel, där negativa värden rör sig nedåt och positiva värden rör sig uppåt. |
|
Drönarens rotationshastighet. Accepterar ett värde från -100 till 100 som en procentandel, där negativa värden roterar moturs och positiva värden roterar medurs. |
# 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)
Mutatorer#
set_steering_mode#
set_steering_mode ställer in perspektivet som används vid styrning av drönaren.
Användande:
drone.set_steering_mode(style)
Parametrar |
Beskrivning |
|---|---|
|
Ställer in det synvinkel som används för att styra drönaren. |
# 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 ställer in drönarens rörelsestil.
Denna rörelsestil används när man flyger drönaren med en handkontroll.
Användande:
drone.set_movement_mode(style)
Parametrar |
Beskrivning |
|---|---|
|
Ställer in hastigheten som används för att styra drönaren.
|
# 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 ställer in standardklättringshastigheten som en procentandel. Detta påverkar alla följande metoder relaterade till klättring. Standardklättringshastigheten är 50 %.
Användande:
drone.set_climb_velocity(velocity)
Parametrar |
Beskrivning |
|---|---|
|
Hastigheten med vilken drönaren kommer att stiga i procent. |
# 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 ställer in standardhastigheten för rörelsen som en procentandel. Detta påverkar alla följande metoder relaterade till rörelse. Standardhastigheten för rörelsen är 50 %.
Användande:
drone.set_move_velocity(velocity)
Parametrar |
Beskrivning |
|---|---|
|
Hastigheten med vilken drönaren kommer att röra sig i procent. |
# 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 ställer in standardhastigheten för svängning som en procentandel. Detta påverkar alla följande metoder relaterade till svängning. Standardhastigheten för svängning är 50 %.
Användande:
drone.set_turn_velocity(velocity)
Parametrar |
Beskrivning |
|---|---|
|
Hastigheten med vilken drönaren kommer att rotera i procent. |
# 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 anger en gräns för hur högt drönaren kan flyga.
Användande:
drone.set_max_z_height(z_height, units)
Parametrar |
Beskrivning |
|---|---|
|
Det maximala z-axelvärdet, som ett heltal eller decimaltal, som drönaren inte flyger över, inom ett intervall från 1000 till 5000 mm eller 40 till 196 tum. |
|
Valfritt. Avståndsenheterna är:
|
# 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 ställer in drönarens aktuella x-, y- eller z-koordinat till ett angivet värde.
Användande:
drone.set_xyz_position(x, y, z, units)
Obs! Alla parametrar är valfria, men minst en (x, yeller z) måste anges.
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. X-koordinaten som ska ställas in för drönaren i |
|
Valfritt. Y-koordinaten som ska ställas in för drönaren i |
|
Valfritt. Z-koordinaten som ska ställas in för drönaren i |
|
Valfritt. Enheten som representerar avståndet:
|
# 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 returnerar den maximala höjden som drönaren kan nå som ett heltal.
Användande:
drone.get_max_z_height(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Måttenhet:
|
# 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 returnerar drönarens nuvarande flygtillstånd som en DroneFlightStateType:
MOTOR_OFF- Inget annat flygtillstånd är sant.CALIBRATION- Drönaren kalibrerar sina sensorer.MOTOR_START- Drönaren startar sina motorer.FLIGHT_READY- Drönaren är klar att flyga.FLIGHT- Drönaren är i flygning.
Usage:
drone.get_flight_state()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar drönarens x-koordinat som ett decimaltal (float).
Usage:
drone.get_x_position(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Enheten som representerar positionen:
|
# 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 returnerar drönarens y-koordinat som ett decimaltal (float).
Användande:
drone.get_y_position(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Enheten som representerar positionen:
|
# 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 returnerar drönarens z-koordinat som ett decimaltal (float).
Användande:
drone.get_z_position(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Enheten som representerar positionen:
|
# 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 returnerar ett Boolean som anger om propellerlåset är aktiverat på drönaren.
True– Propellerlåset är aktiverat.False– Propellerlåset är inte aktiverat.
Användande:
drone.get_safe_mode()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som indikerar om drönaren klättrar.
True– Drönaren klättrar för närvarande.False– Drönaren klättrar inte.
Användande:
drone.is_climb_active()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som anger om drönaren för närvarande använder en förflyttningsmetod.
True– Drönaren använder för närvarande en förflyttningsmetod.False– Drönaren använder för närvarande ingen förflyttningsmetod.
Användande:
drone.is_move_active()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som indikerar om drönaren roterar.
True– Drönaren roterar just nu.False– Drönaren roterar inte.
Användande:
drone.is_turn_active()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som indikerar om drönaren bibehåller sin position (hovrar).
True– Drönaren bibehåller för närvarande sin position (hovrar).False– Drönaren ändrar just nu sin position.
Användande:
drone.is_hovering()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som indikerar om drönaren håller på att lyfta.
True– Drönaren håller just nu på att lyfta.False– Drönaren är inte i färd med att lyfta.
Användande:
drone.is_taking_off()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som anger om drönaren håller på att landa.
True– Drönaren håller just nu på att landa.False– Drönaren är inte i färd med att landa.
Användande:
drone.is_landing()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett Boolean som anger om drönaren för närvarande har landat.
True– Drönaren har landat.False– Drönaren har inte landat.
Användande:
drone.is_landed()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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)