Professional Documents
Culture Documents
Abstractions Quad PDF 160818031405
Abstractions Quad PDF 160818031405
QUADCOPTER
FLIGHT CONTROLLER
from scratch
I’m Ryan Boland
Web Developer
@ Tanooki Labs
$55 $5 $20
GY-87
$8
Safety checks
Output to motors
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
Gyroscope data
Actual rotational rate in °/sec
Error
Difference between actual and desired rotational rate
e = gyro_rate - rc_rate
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
3 errors to correct
PID Controllers
(proportional, integral, derivative)
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
PID Controllers
(proportional, integral, derivative)
Pilot
RC
error
input e(t)
Motor Output
http://www.csimn.com/CSI_pages/PIDforDummies.html
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
Maneuvering
Flight Controller Code
Safety checks
Output to motors
Safety & Handling Failure
Stale IMU values
Watchdog
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
Flight Loop (1000 Hz)
Wait for data ready interrupt
Safety checks
Output to motors
Some Takeaways
Be Safe
@bolandrm