A drone is an aircraft that can fly without an onboard human pilot. In robotics, “drone” usually means a multirotor UAV, especially a quadcopter.
A quadcopter flies by changing the speed of its four propellers. The propellers create thrust, and differences in thrust create roll, pitch, yaw, and vertical motion.

Main components
- Frame
- Propellers
- Brushless DC motors
- Electronic Speed Controllers (ESCs)
- Battery
- Power distribution board
- Flight Controller
- Sensors: IMU, barometer, magnetometer, GPS, camera, lidar, or optical flow
- Radio receiver or onboard computer
The frame holds everything together, the battery provides power, the ESCs drive the motors, and the flight controller runs the control loop that keeps the drone stable.
Motors

A quadcopter has two clockwise motors and two counterclockwise motors.
Diagonal pairs spin in the same direction. This makes the torque generated by the spinning propellers cancel out during hover, enabling stable flight.
Typical X-frame motor layout:
Front
M1 CCW M2 CW
\ /
\ /
/ \
/ \
M4 CW M3 CCWEach motor produces upward thrust:
where:
is thrust from motor is a thrust coefficient is motor angular velocity
Motor torque also scales roughly with motor speed squared:
This is why small motor speed changes can create large control effects.
Control axes
A drone controls motion by changing relative motor speeds.
| Motion | How it happens |
|---|---|
| Throttle | Increase or decrease all motors together |
| Roll | Increase thrust on one side and decrease thrust on the other side |
| Pitch | Increase thrust in the back/front and decrease thrust in the opposite side |
| Yaw | Speed up one diagonal pair and slow down the other diagonal pair |
The drone does not directly “move forward.” It pitches forward, tilts its thrust vector, and part of the thrust pushes it forward.
Force intuition
In hover, total thrust equals weight:
If total thrust is greater than weight, the drone accelerates upward.
If the drone tilts, the thrust vector is no longer perfectly vertical:
- vertical component keeps it in the air
- horizontal component accelerates it sideways or forward
This is why aggressive forward flight usually requires more throttle than stationary hover.
Flight controller
The Flight Controller is the real-time computer that stabilizes the drone.
Basic loop:
- Read sensors
- Estimate current state
- Compare desired attitude/position to current attitude/position
- Use a controller such as PID to compute corrections
- Convert corrections into motor commands
- Send commands to ESCs
- Repeat hundreds or thousands of times per second
The flight controller usually runs nested loops:
- rate control: controls angular velocity
- attitude control: controls roll, pitch, yaw orientation
- velocity control: controls translational velocity
- position control: controls position in space
Lower-level loops run faster because stability depends on quick attitude correction.
State estimation
The drone needs to estimate its state:
- position
- velocity
- orientation
- angular velocity
- sensor biases
Common sensors:
| Sensor | Measures | Problem |
|---|---|---|
| Gyroscope | Angular velocity | Drifts over time |
| Accelerometer | Acceleration and gravity direction | Noisy during motion |
| Magnetometer | Compass heading | Disturbed by metal and current |
| Barometer | Altitude from air pressure | Noisy and weather dependent |
| GPS | Global position | Low update rate and poor indoors |
| Camera / optical flow | Visual motion | Needs texture and light |
Sensor fusion combines these imperfect measurements into a better estimate. A common method is the Extended Kalman Filter.
Attitude representation
Drone orientation can be represented with:
- Euler angles: roll, pitch, yaw
- rotation matrices using Transformation Matrices
- quaternions
Euler angles are intuitive, but quaternions are often used internally because they avoid gimbal lock and are numerically stable.
Motor mixing
Controllers usually output desired total thrust and torques:
The mixer converts this into four motor commands:
This depends on frame geometry, motor direction, propeller direction, and arm length.
Software stack
Typical drone software layers:
| Layer | Example | |
|---|---|---|
| Low-level firmware | PX4, ArduPilot, Betaflight | |
| Middleware | ROS 2 | |
| State estimation | Extended Kalman Filter | |
| Control | PID, MPC, geometric control | |
| Planning | trajectory generation, obstacle avoidance | |
| Perception | camera, lidar, optical flow, VIO |
For learning/research, the stack often looks like:
Sensors -> State Estimation -> Controller -> Motor Mixer -> ESCs -> MotorsImportant problems
- Stability: the drone must constantly correct attitude
- Latency: slow sensors or slow control loops cause oscillation
- Vibration: motor vibration corrupts IMU measurements
- Battery sag: available thrust changes as voltage drops
- Weight: every gram reduces flight time
- Prop wash: airflow from propellers affects nearby surfaces and sensors
- Localization: GPS is weak indoors, so drones often need visual-inertial odometry