Bird
Raised Fist0
Drone Programmingprogramming~20 mins

What is DroneKit in Drone Programming - Practice Questions & Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
DroneKit Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is DroneKit used for?

DroneKit is a popular tool in drone programming. What is its main purpose?

AIt is a hardware component that powers drones.
BIt is a drone model designed for racing.
CIt helps developers write software to control drones easily.
DIt is a cloud service for storing drone videos.
Attempts:
2 left
💡 Hint

Think about software tools that help programmers control drones.

❓ Predict Output
intermediate
2:00remaining
DroneKit Python Script Output

What will this DroneKit Python script print?

Drone Programming
from dronekit import connect
vehicle = connect('udp:127.0.0.1:14550', wait_ready=True)
print(vehicle.mode.name)
ASTABILIZE
BNone
CLAND
DGUIDED
Attempts:
2 left
💡 Hint

Consider the default mode in a standard DroneKit SITL simulation.

🔧 Debug
advanced
2:00remaining
Identify the error in DroneKit connection code

What error will this code raise?

Drone Programming
from dronekit import connect
vehicle = connect('tcp:127.0.0.1:5760')
print(vehicle.location.global_frame.lat)
ANo error, prints latitude
BTypeError: connect() missing 1 required positional argument
CAttributeError: 'NoneType' object has no attribute 'lat'
DTimeoutError: Connection to drone timed out
Attempts:
2 left
💡 Hint

Think about what happens if the drone is not reachable at the given address.

📝 Syntax
advanced
1:30remaining
Correct syntax to arm a drone using DroneKit

Which code snippet correctly arms a drone using DroneKit?

A
vehicle.armed = True
vehicle.flush()
Bvehicle.armed = True
Cvehicle.arm = True
Dvehicle.arm(True)
Attempts:
2 left
💡 Hint

Check the correct attribute name and method to arm the drone.

🚀 Application
expert
2:00remaining
How to change drone mode to GUIDED using DroneKit?

You want to change the drone's mode to GUIDED. Which code snippet will do this correctly?

Avehicle.mode = VehicleMode('GUIDED')
Bvehicle.mode.name = 'GUIDED'
Cvehicle.mode = 'GUIDED'
Dvehicle.set_mode('GUIDED')
Attempts:
2 left
💡 Hint

Remember that mode is an object, not a string.

Practice

(1/5)
1. What is the main purpose of DroneKit in drone programming?
easy
A. To control drones using code easily
B. To design drone hardware parts
C. To create drone flight manuals
D. To repair drone mechanical issues

Solution

  1. Step 1: Understand DroneKit's role

    DroneKit is a software tool that helps programmers control drones by writing code.
  2. Step 2: Compare options with DroneKit's purpose

    Only To control drones using code easily describes controlling drones with code, which matches DroneKit's main use.
  3. Final Answer:

    To control drones using code easily -> Option A
  4. Quick Check:

    DroneKit = Easy drone control with code [OK]
Hint: DroneKit is about coding drone control, not hardware [OK]
Common Mistakes:
  • Confusing DroneKit with hardware design tools
  • Thinking DroneKit is for drone repair
  • Assuming DroneKit writes flight manuals
2. Which of the following is the correct way to import DroneKit in a Python script?
easy
A. import dronekit
B. import DroneKit
C. from dronekit import connect
D. import drone_kit

Solution

  1. Step 1: Recall DroneKit import syntax

    DroneKit is imported in Python using lowercase 'dronekit' and often 'connect' is imported for connection.
  2. Step 2: Check options for correct syntax

    from dronekit import connect uses 'from dronekit import connect' which is the standard and correct way.
  3. Final Answer:

    from dronekit import connect -> Option C
  4. Quick Check:

    Correct import = from dronekit import connect [OK]
Hint: DroneKit module is lowercase and uses 'connect' function [OK]
Common Mistakes:
  • Using uppercase letters in module name
  • Adding underscores incorrectly
  • Importing the whole module without needed functions
3. What will the following Python code print when using DroneKit?
from dronekit import connect
vehicle = connect('udp:127.0.0.1:14550', wait_ready=True)
print(vehicle.mode.name)
medium
A. An error because 'connect' is not defined
B. The current flight mode name of the drone
C. The IP address 'udp:127.0.0.1:14550'
D. Nothing, it will hang forever

Solution

  1. Step 1: Understand the code's purpose

    The code connects to a drone using DroneKit and prints the drone's current mode name.
  2. Step 2: Analyze the print statement

    vehicle.mode.name accesses the current flight mode as a string, so it prints that mode's name.
  3. Final Answer:

    The current flight mode name of the drone -> Option B
  4. Quick Check:

    vehicle.mode.name prints mode name [OK]
Hint: vehicle.mode.name shows drone's current flight mode [OK]
Common Mistakes:
  • Thinking connect is undefined
  • Confusing printed output with connection string
  • Assuming code hangs without reason
4. Identify the error in this DroneKit Python snippet:
from dronekit import connect
vehicle = connect('udp:127.0.0.1:14550')
vehicle.mode = 'GUIDED'
vehicle.armed = True
medium
A. vehicle.mode should be set using a Mode object, not a string
B. connect function is missing required parameters
C. vehicle.armed cannot be set to True
D. The IP address format is incorrect

Solution

  1. Step 1: Review how to set flight mode in DroneKit

    Flight mode must be set using a Mode object, e.g., vehicle.mode = VehicleMode('GUIDED'), not a plain string.
  2. Step 2: Check other lines for errors

    connect usage and IP format are correct; arming with True is allowed.
  3. Final Answer:

    vehicle.mode should be set using a Mode object, not a string -> Option A
  4. Quick Check:

    Set mode with VehicleMode('GUIDED') [OK]
Hint: Use VehicleMode() to set mode, not plain strings [OK]
Common Mistakes:
  • Assigning mode as a string directly
  • Thinking connect needs more parameters
  • Believing arming is disallowed by assignment
5. You want to write a DroneKit script that connects to a drone, changes its mode to 'GUIDED', arms it, and then takes off to 10 meters altitude. Which sequence of commands is correct?
hard
A. vehicle.mode = VehicleMode('GUIDED') -> connect -> vehicle.armed = True -> vehicle.simple_takeoff(10)
B. connect -> vehicle.armed = True -> vehicle.mode = 'GUIDED' -> vehicle.simple_takeoff(10)
C. connect -> vehicle.simple_takeoff(10) -> vehicle.mode = VehicleMode('GUIDED') -> vehicle.armed = True
D. connect -> vehicle.mode = VehicleMode('GUIDED') -> vehicle.armed = True -> vehicle.simple_takeoff(10)

Solution

  1. Step 1: Understand the correct order of drone commands

    First, connect to the drone, then set the mode to 'GUIDED', arm the drone, and finally command takeoff.
  2. Step 2: Check each option's sequence

    connect -> vehicle.mode = VehicleMode('GUIDED') -> vehicle.armed = True -> vehicle.simple_takeoff(10) follows the correct logical order. Others set mode or arm before connecting or call takeoff too early.
  3. Final Answer:

    connect -> vehicle.mode = VehicleMode('GUIDED') -> vehicle.armed = True -> vehicle.simple_takeoff(10) -> Option D
  4. Quick Check:

    Connect, set mode, arm, takeoff [OK]
Hint: Connect first, then mode, arm, and takeoff last [OK]
Common Mistakes:
  • Trying to set mode or arm before connecting
  • Calling takeoff before arming
  • Setting mode as string instead of VehicleMode
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard