Drone Types and Classifications
Not all drones are created equal. The type of drone you choose depends entirely on the mission. In this lesson, we'll classify drones by their airframe design and understand the pros and cons of each.
Classification Overview
Multirotor Drones
Multirotor drones are the most common type. They use multiple rotors (typically 4, 6, or 8) for lift and maneuverability.
How Multirotors Fly
A multirotor controls flight by varying the speed of individual motors:
# Motor mixing for a quadcopter (X configuration)
# Motors: 0=Front-Left, 1=Front-Right, 2=Rear-Right, 3=Rear-Left
def mix_motors(throttle, roll, pitch, yaw):
"""
Compute motor outputs from pilot commands.
throttle: 0-1000 (up/down)
roll: -500 to 500 (left/right tilt)
pitch: -500 to 500 (forward/back tilt)
yaw: -500 to 500 (rotation)
"""
motors = [0, 0, 0, 0]
# Motor mixing
motors[0] = throttle + roll - pitch + yaw # Front-Left
motors[1] = throttle - roll - pitch - yaw # Front-Right
motors[2] = throttle - roll + pitch + yaw # Rear-Right
motors[3] = throttle + roll + pitch - yaw # Rear-Left
# Clamp values to valid range
return [max(0, min(1000, m)) for m in motors]
# Example: hovering
print(mix_motors(500, 0, 0, 0))
# Output: [500, 500, 500, 500] — all motors equal = hover
# Example: move forward
print(mix_motors(500, 0, -200, 0))
# Output: [700, 700, 300, 300] — front motors slower, rear faster
Multirotor Configurations
| Config | Motors | Pros | Cons |
|---|---|---|---|
| Quadcopter (X) | 4 | Simple, affordable | Limited payload |
| Hexacopter | 6 | Redundancy, more payload | Heavier, more complex |
| Octocopter | 8 | Maximum payload, redundancy | Expensive, heavy |
Fixed-Wing Drones
Fixed-wing drones look like traditional airplanes. They generate lift through their wings and are propelled forward by a motor.
Key Characteristics
- Cannot hover — must maintain forward motion
- Much longer flight times — energy-efficient gliding
- Cover large areas — ideal for mapping and surveying
- Need runway or launcher — can't take off vertically
class FixedWingDrone:
def __init__(self, wingspan=2.0, weight=3.0):
self.wingspan = wingspan # meters
self.weight = weight # kg
self.wing_area = wingspan * 0.3 # simplified
self.lift_coefficient = 1.2
self.air_density = 1.225 # kg/m³ at sea level
def calculate_lift(self, velocity):
"""Lift = 0.5 * Cl * rho * V² * A"""
lift = 0.5 * self.lift_coefficient * self.air_density * (velocity ** 2) * self.wing_area
return lift
def minimum_speed(self):
"""Speed needed to generate lift equal to weight"""
import math
v_min = math.sqrt((2 * self.weight * 9.81) / (self.lift_coefficient * self.air_density * self.wing_area))
return v_min
drone = FixedWingDrone(wingspan=2.0, weight=3.0)
print(f"Minimum flight speed: {drone.minimum_speed():.1f} m/s")
for speed in [10, 15, 20, 25]:
lift = drone.calculate_lift(speed)
print(f" At {speed} m/s: Lift = {lift:.2f} N")
VTOL Drones
Vertical Take-Off and Landing (VTOL) drones combine the hover capability of multirotors with the forward flight efficiency of fixed-wing aircraft.
VTOL Transition Phases
Choosing the Right Drone for AI Applications
def recommend_drone(mission_type, range_km, hover_needed, payload_kg):
"""Recommend drone type based on mission requirements"""
if hover_needed and range_km < 5 and payload_kg < 10:
return "Multirotor", "Best for short-range hovering missions"
if not hover_needed and range_km > 10:
return "Fixed-Wing", "Best for long-range area coverage"
if hover_needed and range_km > 5 and payload_kg < 20:
return "VTOL Hybrid", "Combines hover with range"
if payload_kg > 15:
return "Heavy-Lift Multirotor (Hex/Octo)", "Maximum payload capacity"
return "Multirotor", "Default choice for flexibility"
# Test scenarios
scenarios = [
("Building inspection", 0.5, True, 2),
("Agricultural mapping", 50, False, 5),
("Package delivery", 15, True, 3),
("Search and rescue", 5, True, 4),
]
for name, rng, hover, payload in scenarios:
drone_type, reason = recommend_drone(name, rng, hover, payload)
print(f"Mission: {name}")
print(f" → Recommend: {drone_type}")
print(f" → Reason: {reason}\n")
Hands-On Project: Drone Selection Tool
Build a Python tool that helps users select the right drone type based on their mission parameters.
class DroneSelector:
def __init__(self):
self.drone_types = {
"quadcopter": {"max_range": 5, "max_payload": 5, "hover": True,
"cost": "$500-$3000", "flight_time": "25-40 min"},
"hexacopter": {"max_range": 5, "max_payload": 10, "hover": True,
"cost": "$3000-$10000", "flight_time": "20-35 min"},
"fixed_wing": {"max_range": 500, "max_payload": 20, "hover": False,
"cost": "$2000-$20000", "flight_time": "2-6 hours"},
"vtol": {"max_range": 100, "max_payload": 15, "hover": True,
"cost": "$10000-$50000", "flight_time": "1-2 hours"},
}
def evaluate(self, mission):
results = []
for dtype, specs in self.drone_types.items():
score = 0
if mission["range_km"] <= specs["max_range"]:
score += 30
if mission["payload_kg"] <= specs["max_payload"]:
score += 30
if mission["hover_needed"] == specs["hover"]:
score += 40
if score > 0:
results.append((dtype, score, specs))
results.sort(key=lambda x: x[1], reverse=True)
return results
def display(self, mission):
print(f"\n{'='*50}")
print(f"Mission: {mission['name']}")
print(f" Range: {mission['range_km']} km")
print(f" Payload: {mission['payload_kg']} kg")
print(f" Hover needed: {mission['hover_needed']}")
print(f"{'='*50}")
results = self.evaluate(mission)
for rank, (dtype, score, specs) in enumerate(results, 1):
print(f" #{rank} {dtype.upper()} (Score: {score}/100)")
print(f" Flight time: {specs['flight_time']}")
print(f" Cost range: {specs['cost']}")
selector = DroneSelector()
missions = [
{"name": "Rooftop Inspection", "range_km": 1, "payload_kg": 2, "hover_needed": True},
{"name": "Forest Mapping", "range_km": 30, "payload_kg": 5, "hover_needed": False},
{"name": "Medical Delivery", "range_km": 10, "payload_kg": 3, "hover_needed": True},
]
for m in missions:
selector.display(m)
Summary
- Multirotors: Best for short-range, hover-dependent missions (inspection, photography)
- Fixed-wing: Best for long-range, large-area missions (mapping, survey)
- VTOL: Combines both capabilities but adds complexity and cost
- Hybrid: Emerging designs pushing the boundaries of both approaches
- The choice depends on range, payload, hover capability, and budget
Next, we'll dive deep into drone hardware components.