Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a companion computer in drone systems?
A companion computer is a small, powerful computer like a Raspberry Pi that works alongside the drone's main flight controller to handle complex tasks such as image processing, navigation, and communication.
Click to reveal answer
beginner
How does a Raspberry Pi communicate with a drone's flight controller?
The Raspberry Pi usually communicates with the flight controller using serial connections like UART or USB, sending and receiving data such as commands and telemetry.
Click to reveal answer
intermediate
Why use a Raspberry Pi as a companion computer instead of the flight controller alone?
Because Raspberry Pi can run full operating systems and complex software, it can handle advanced tasks like computer vision or AI that the flight controller cannot do efficiently.
Click to reveal answer
intermediate
What software tools are commonly used on Raspberry Pi for drone companion computing?
Common tools include MAVLink for communication, ROS (Robot Operating System) for robotics control, and OpenCV for image processing.
Click to reveal answer
beginner
What is the role of MAVLink in companion computer integration?
MAVLink is a lightweight communication protocol that allows the Raspberry Pi to send commands and receive telemetry data from the flight controller, enabling coordinated control.
Click to reveal answer
What type of connection is commonly used between a Raspberry Pi and a drone's flight controller?
ASerial (UART or USB)
BWi-Fi only
CBluetooth only
DEthernet cable
✗ Incorrect
Serial connections like UART or USB are commonly used for reliable communication between Raspberry Pi and flight controllers.
Which software protocol helps the Raspberry Pi communicate with the flight controller?
AHTTP
BMAVLink
CFTP
DSMTP
✗ Incorrect
MAVLink is the standard protocol for communication between companion computers and flight controllers.
Why is a Raspberry Pi preferred for companion computing over the flight controller alone?
AIt is cheaper
BIt replaces the flight controller
CIt has a bigger battery
DIt can run complex software and handle advanced tasks
✗ Incorrect
Raspberry Pi can run full operating systems and complex programs, enabling advanced processing beyond the flight controller's capabilities.
Which of these is NOT a typical task for a Raspberry Pi companion computer on a drone?
AImage processing
BNavigation assistance
CFlight stabilization
DTelemetry data handling
✗ Incorrect
Flight stabilization is usually handled by the flight controller, not the companion computer.
What is ROS commonly used for in Raspberry Pi drone integration?
ARobot Operating System for control and communication
BOperating system for flight controllers
CImage editing software
DBattery management
✗ Incorrect
ROS stands for Robot Operating System and helps manage control, communication, and sensor data on companion computers.
Explain how a Raspberry Pi acts as a companion computer in a drone system and why it is useful.
Think about what the flight controller cannot do alone.
You got /4 concepts.
Describe the communication process between a Raspberry Pi and a drone's flight controller.
Focus on how data moves back and forth.
You got /4 concepts.
Practice
(1/5)
1. What is the main role of a Raspberry Pi when used as a companion computer in drone programming?
easy
A. To add smart features and process data alongside the drone's flight controller
B. To replace the drone's flight controller completely
C. To act as a remote control for the drone
D. To charge the drone's batteries during flight
Solution
Step 1: Understand the companion computer concept
A companion computer like Raspberry Pi works alongside the drone's flight controller to add extra processing power and smart features.
Step 2: Identify the Raspberry Pi's role
It does not replace the flight controller but supports it by handling tasks like image processing or advanced navigation.
Final Answer:
To add smart features and process data alongside the drone's flight controller -> Option A
Quick Check:
Companion computer = extra smart features [OK]
Hint: Remember: companion computer supports, not replaces flight controller [OK]
Common Mistakes:
Thinking Raspberry Pi replaces the flight controller
Confusing companion computer with remote control
Assuming it charges the drone
2. Which of the following is the correct way to import the DroneKit library in a Python script running on a Raspberry Pi?
easy
A. import DroneKit
B. from dronekit import connect
C. import dronekit
D. import drone_kit
Solution
Step 1: Recall DroneKit import syntax
The DroneKit library is imported using 'from dronekit import connect' to access the connect function directly.
Step 2: Check case sensitivity and module name
Python is case sensitive; 'DroneKit' or 'drone_kit' are incorrect module names.
Final Answer:
from dronekit import connect -> Option B
Quick Check:
Correct import syntax = from dronekit import connect [OK]
Hint: Use exact lowercase 'dronekit' and import needed functions [OK]
Common Mistakes:
Using wrong capitalization in module name
Trying to import the whole module without specifying functions
Misspelling the library name
3. Given the following Python code snippet on a Raspberry Pi connecting to a drone via UDP:
from dronekit import connect
vehicle = connect('udp:127.0.0.1:14550', wait_ready=True)
print(vehicle.mode.name)
What will this code output if the drone is in GUIDED mode?
medium
A. guided
B. Mode GUIDED not found
C. GUIDED
D. SyntaxError
Solution
Step 1: Understand vehicle.mode.name output
The mode name property returns the mode as an uppercase string, e.g., 'GUIDED'.
Step 2: Check the print output for GUIDED mode
Since the drone is in GUIDED mode, the output will be 'GUIDED' in uppercase.
Final Answer:
GUIDED -> Option C
Quick Check:
vehicle.mode.name returns uppercase mode [OK]
Hint: DroneKit mode names print in uppercase strings [OK]
Common Mistakes:
Expecting lowercase mode names
Confusing attribute access syntax
Assuming code causes syntax error
4. You wrote this code on your Raspberry Pi to connect to a drone via serial port:
from dronekit import connect
vehicle = connect('/dev/ttyUSB0', baud=57600, wait_ready=True)
print(vehicle.battery.level)
But you get an error: TypeError: connect() got an unexpected keyword argument 'baud'. What is the fix?
medium
A. Change 'baud' to 'baudrate' in the connect() call
B. Remove 'wait_ready=True' from connect()
C. Use 'baud' but set it to 115200 instead
D. Change '/dev/ttyUSB0' to 'udp:127.0.0.1:14550'
Solution
Step 1: Identify the correct parameter name for baud rate
The connect() function expects 'baudrate' not 'baud' as the keyword argument for serial speed.
Step 2: Fix the parameter name in the code
Replace 'baud=57600' with 'baudrate=57600' to fix the TypeError.
Final Answer:
Change 'baud' to 'baudrate' in the connect() call -> Option A
Quick Check:
Correct parameter name = baudrate [OK]
Hint: Use 'baudrate' keyword, not 'baud' in connect() [OK]
Common Mistakes:
Using 'baud' instead of 'baudrate'
Changing connection type unnecessarily
Removing wait_ready without cause
5. You want your Raspberry Pi companion computer to monitor the drone's battery and land the drone automatically if battery level falls below 20%. Which code snippet correctly implements this logic using DroneKit?
hard
A. if vehicle.battery.level < 20:
vehicle.mode = vehicle.mode.LAND
B. if vehicle.battery.level < 20:
vehicle.mode = vehicle.mode.name('LAND')
C. if vehicle.battery.level < 20:
vehicle.mode = vehicle.mode('LAND')
D. if vehicle.battery.level < 20:
vehicle.mode = 'LAND'
Solution
Step 1: Understand how to set vehicle mode
To change the drone mode, assign a string like 'LAND' directly to vehicle.mode.
Step 2: Check the battery level condition
If battery level is below 20%, set vehicle.mode = 'LAND' to command landing.
Final Answer:
if vehicle.battery.level < 20:
vehicle.mode = 'LAND' -> Option D
Quick Check:
Set mode by assigning string name directly [OK]
Hint: Assign mode as string like 'LAND' to vehicle.mode [OK]