17. Stabilization
Rate mode - gyroscopes only
Remote control determines the rate at which the
quadcopter is rotating on any given axis.
Also known as Acro or Manual.
Attitude mode - accelerometers & gyros
Remote control determines the desired angle of the
quadcopter.
Also known as self-level or auto-level.
18. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
19. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
20. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
21. Gyroscope data
Actual rotational rate in °/sec
Remote control data
Pilot’s desired rotation rate in °/sec
Error
Difference between actual and desired rotational rate
e = gyro_rate - rc_rate
22. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
25. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
26. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
27. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
28. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
29. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
30. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
31. PID Controllers
(proportional, integral, derivative)
PID for dummies:
http://www.csimn.com/CSI_pages/PIDforDummies.html
Motor Output
Rotational rate (from gyro)
error
e(t)
Pilot
RC
input
3 constants - Kp, Ki, Kd
32. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
38. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
39. Safety & Handling Failure
Stale IMU values
Stale remote control values
Angles too high?
Motor outputs too high? (indoor safe mode)
Watchdog
40. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)
41. Wait for data ready interrupt
Read & filter gyroscope data
Read remote control data (user input)
Use PID (proportional, integral, derivative) algorithm
to compute required adjustment for each axis
Map adjustment for each axis to motors (Mixer)
Safety checks
Output to motors
Flight Loop (1000 Hz)