7. ABSTRACT
A Quadrocopter, also called a Quadrotor Helicopter, is an aircraft that is lifted by
four rotors on a cross-shaped frame.
We succeeded in building a Quadrocopter with stiff and lightweight structure.
Our Quadrocopter in-flight dynamics was measured via an IMU (Inertial
Measurement Unit) which equipped with a dual-axis gyroscope and a three axis tilt-
sensor. A microcontroller took these sensor inputs and performed PID control
algorithm on the four motors by varying PWM signals sent to each of the motors.
vii
8. i
ii
iii
iv
v
vi
Abstract vii
viii
x
xiii
xiv
1.1 Quadrocopter 1
1
3
1.2 4
1.2.1 Quadrocopter 4
1.2.2 7
1.2.3 10
1.3 12
1.4 13
2:
2.1 Quadrocopter 14
2.2 Quadrocopter 17
2.2.1 17
2.2.2 20
2.2.3 -Euler 21
2.2.4 27
2.3 32
2.4 36
2.4.1 36
2.4.2 ? 36
2.4.3 38
viii
13. 57
58
-10T 59
HiModel GX-40A 60
A 61
74
75
xiii
14. I. :
X m xE
Y m yE
Z m zE
rad
rad
rad
u m/s xB
v m/s yB
w m/s zB
p rad/s xB
q rad/s yB
r rad/s zB
E
m E
E m E
E m/s2
E
rad E
E
rad/s E
rad/s2
VE m/s vector v E
VB m/s vector B
B
m/s2 v B
B
rad/s vector B
rad/s2
- E
-
- vector v theo
-
- vector v n t c t
-
xiv
15. -
E
F N theo
FB N theo
FGE N
B
F G N
GB ( ) -
GH -
UB -
U1 N
U2 Nm
U3 Nm
U4 Nm B
B
Nm moment theo
R -
T -
J -
EB - B
EH ( ) - H
MB -
MH - ma tr th ng uH
OB ( ) - B
OH ( ) - H
CB ( ) -
CH ( ) - H
S(... ) -
rad/s
1 rad/s
2 rad/s
3 rad/s
4 rad/s
TMT N
TBET N
xv
16. QBET Nm
A kg/s
p1 Pa
p2 Pa
p Pa
p- Pa
v1 m/s
v2 m/s
vI m/s
v m/s
v- m/s
vV m/s
vH m/s i t
P rad/s
dDBET N/ m
dLBET N/ m
dFBET N/ m c
dTBET N/ m
dHBET N/m
I rad
Io rad
Itw rad
I rad
II.
a rad-1 2
A m2 75.5 x 10-3
b N s2 54,2 x 10-6
bBET N s2 54,2 x 10-6
bMT N s2 54,2 x 10-6
c m 0.02
CD - 0.05
CL - 0.05 (lift)
xvi
17. d N m s2 1.1 x 10-6
g m/s 2 9.81 gia t
J TP Nms2 104x10-6
l m 0.22 Quad
m kg 1.365 Quadrocopter
NB - 2
A kg/m3 29
xvii
18. 1.1 nhau gi Quadrocopter [1]
(Quadrocopter, Quadrotor hay Quad
- - -
, gi
sau:
1.1.1
Quad
-rex 600
1
23. Quadrocopter
Quadrocopter
1956, Convertawings l t
Oemichen G. de Bothezat .
B theo
song song.
. hai
. hai
xoay .
Convertawings Model A
Quad
, Quadrocopter v
[14]
bay .
6
24. 1.2.2
Quadrocopter
a - anfly Innovations [1]
11 - Innovations
-
-
-
-
-
-
-
[1]
-
(Vertical Take Off and Landing Autonomous Unmanned Micro Aerial Vehicle) hay
AAHRS ( Altitude and Attitude and H
MD4-
7
27. 1.2.3 trong
a. Quadrocopter
t .HCM
- .HCM.
16 M -
Theo PGS- - .HCM,
[12]
b. Quadrocopter t
Quad
Quad
scope
10
28. 17
c. Quadrocopter
Quad
-
Quad
,
H cho
8 Quadroto H
scope
11
29. 9 Quad K Q
,
.
1.3
Quadrocopter
v.v Do trong
-
Quadrocopter.
-
-
-
12
30. c
- Quadrocopter l
PWM.
- (gyroscope accelerometer)
Quad
.
1.4
:
-
-
-T h
:
-
Quadrocopter.
- .
-
- LabVIEW.
13
31. 2.1 Quadrocopter [2]
Quadrocopter
(front) (back)
(right) (left)
oment 4
Quadrocopter
(throttle up/down) xoay (roll)
.
(yaw) i so v
sau Quadrocopter
.
, Quadrocopter
motor
Quadrocopter
Quadrocopter.
Quadrocopter:
14
32. Quad
2 Quadrocopter.
a. Hover: Quad
1 = 2 = 3 = 4 = H).
2 Hover
b. Throttle: Quad
Quad
3 Throttle
+ b.
H
A H Quad
A
Quadrocopter.
c. Roll: Quad
moment c Xb
15
33. 4 Roll
+ b.
H
A B A B H.
d. Pitch: Quadrocopter bay lui
b.
5 Pitch
+ : quanh b.
H
A B A B H.
e. Yaw: Quadrocopter b theo
sau 2 , 2
Quadrocopter quay quanh tr c Zb theo
quay)
quanh tr c Zb theo
16
34. 6 Yaw
:
+ b.
H
A B A B H.
2.2 Quadrocopter [2]
2.2.1
7
-
E E
[m] [rad] Quadrocopter.
- Quadrocopter, d
V B [m/s], v B
[rad/s], [N], v
moment [Nm] Quadrocopter.
17
35. OE: g c .
xE:
yE:
zE: (xE,yE
OB: g Quadrocopter.
xB: Quadrocopter.
yB: Quadrocopter.
zB:
E
- Vector v [m] E B:
T
E = [X Y Z ] (2.1)
E
- [rad]
T
E (2.2)
E E
=> :
=[ E E] T = [X Y Z ]T (2.3)
- V B [m/s]:
V B = [u v w ] T (2.4)
B
- [rad/s]:
B
= [p q r] T (2.5)
=> :
B T
= [V B ] = [u v w p q r] T (2.6)
-V
R , T
J .
- R
R = R( , z) R( , y) R( , x) = (2.7)
ck = cos k, sk = sin k, t k = tan k.
Xoay E (yaw): = (2.8)
18
36. 1 (pitch): R( , y)= (2.9)
2 (roll): R( , x)= (2.10)
- T :
T = (2.11)
- J :
J = (2.12)
3x3
-
J :
=J . (2.13)
-
VE = E = R .V B (2.14)
-
T :
B
=T . (2.15)
19
37. 2.2.2
Quadrocopter.
8 Quadrocopter
m. E = FE
=> m. = R .FB
=> m( ) = R .FB
=> m ( ) = R .FB
=> m( ) = FB (2.16)
m [kg] Quadrocopter.
FE [N] v
E [m/s2]
[m/s2]
[-]
I. =
=> I. =T .
=> I. + x (I. )= T . (2.17)
I [Nms2]
[rad/s2] vector
[rad/s2] vector
20
38. hai 2.16 2.17),
:
+ = (2.18)
I3 3 3x3.
FB ent
Quadrocopter.
2.2.3 Newton-Euler
:
.
.
2.13)
=J (2.13)
J
E E
Quadrocopter
=[ E E] T = [X Y Z ]T (2.3)
V B [m/s B
[rad/s
Quadrocopter
B T
= [V B ] = [u v w p q r] T (2.6)
nt J
J = (2.12)
Ma tr n quay R n chuy n v T
R = (2.7)
T = (2.11)
21
39. 2.18):
+ = (2.18)
OB
I
Quadrocopter
2.19):
=[ ] T = [Fx Fy Fz x y z]
T
(2.19)
2.18
MB + CB ( ) = (2.20)
MB
CB ( )
2.21
MB = = (2.21)
MB the
2.22
CB ( ) = =
(2.22)
k theo
2.23):
T
(k) = = (2.23)
2.20
Quad
Quadrocopter.
Quadrocopter.
22
40. GB (
2
(2.24)
GB ( ).
B 1 T
GB ( ) = FG = R FGE = R = (2.24)
FGB FGE
R R 1
RT .
hai
Quadrocopte
(2.25):
4
OB ( )
J TP
k 1
=
J TP
J TP (2.25)
OB ( J TP
104x10-6 Nms2)
(2.26) [rad/s]
[rad/s] 2.25):
= 1 + 2 3+ 4 = (2.26)
1 .
2 .
3 .
4
ba
23
41. moment
2
EB UB
2 2
b [Ns ] d [Nms ]
sau.
(2.27)
Quadrocopter:
2
UB EB = = (2.27)
Quadrocopter
, ,
moment .
EB (2.28):
EB = (2.28)
T 2.20 ng l c h c Quadrocopter
2.29):
2
MB + CB ( ) = GB ( ) + OB ( ) + EB (2.29)
S px pl 2.29 nt ct
theo h tr c B:
2
= MB ( CB ( ) + GB ( ) + OB ( ) + EB ) (2.30)
u th i d ng h
J TP
(2.31)
J TP
24
42. (2.32)
IXX, IYY , IZZ c c:
Id ch chuy n = I + MD2
v i M [Kg] ng c a v t th .
D [m] d ch chuy n c a v t th so v i tr .
=> IXX = M (W2/12 + H2/12) + M (DY2 + DZ2)
IYY = M (L2/12 + H2/12) + M (DX2 + DZ2)
IZZ = M (W2/12 + L2/12) + M (DX2 + DY2)
9
H th ng h c c a Quadrocopter h 2.31 c vi t trong
h tr c B c c p, tham chi c s d ng r
ng 6 b c t ng h h
ng l c h c n k t h p gi h tr
tr c bi u
di n trong h tr c m i, t m g tr um c
ch ng l c h c k t h p v u khi n (nh
th ng c a h tr (2.33) bi u di n vector v n t c t ng
tr c H :
B T
=[ E ] = [X Y Z ]T (2.33)
H th ng l c h tr c vi t l i d ng ma tr n theo
(2.34):
2
MH + CH ( ) = GH + OH ( + EH ( (2.34)
ct tr c H.
Ma tr th tr c H MH b ng v i ma tr
h tr 2.21 2.35):
25
43. M H = MB = = (2.35)
i, ma tr H CH ( ) ng v i ma
tr n Coriolis tr 2.36):
CH ( ) = = (2.36)
Vector h p d tr c H GH
(2.37 th nc
ng h c.
E
GH = FG = (2.37)
u ng con quay h i chuy i, b ch
tr c B. Ma tr t h i chuy
theo h tr 2.25 2.38).
OH ( = OB ( )
J TP
J TP (2.38)
Ma tr n chuy tr c H EH tr
nc n quay . K t qu c
ma tr n chuy ng v i t c ch 2.39):
2 2
EH ( = EB = (2.39)
S px pl 2.34 nt ct
theo h tr c H:
2
= MH ( CH ( ) + G H + OH ( ) + EH ( ) ) (2.40)
26
44. X
Y
Z
J TP (2.41)
J TP
-Euler c Quadrocopter.
qu tr c B,
c cho 2.32).
2.2.4
- - MT)
- - BET)
g
-
-
-
-
-
TMT [N]
v- [m/s]
v1 [m/s]
v2 [m/s]
v+ [m/s]
27
45. p- [Pa]
p1 [Pa] .
p2 [Pa]
p+ [Pa]
10
1 2).
TMT = A(p1 p2 )
TMT = A (v- - v+ ) = A A v1 (v- - v+ )
A [m2
A
A [kg/m3
1
v2 -
sau:
2 2
p- + A v- = p1 + A v1
2 2
p2 + A v2 = p+ + A v+
+ = p-
v1 = (v+ + v- )/2
vI = (v1 v- ) = (v+ v- )/2
28
46. TMT =2 A A v1 vI
v- = 0, suy ra v1 = vI
MT = Wp =
WP = 2 A A vI2 vI = [m/s]
[-
= vI / ( H RP).
H P
2.11
11
I [rad]
T
29
47. vT [m/s] H V
I t
dDBET
dLBET
dFBET [N/m] BET BET
dFBET
dTBET ngang dHBET[N/m].
v
H
vv = vI = P RP
vH = P r= P RP (r/ RP)
P
2
dLBET = 0.5 A vH CL c dr.
2
dLBET = 0.5 A vH CD c dr.
CL[- D[-
L a [rad-1
-1
a ].
CL = a =a ( I I)
Io
t Itw
I = Io - Itw
I:
I =
dLBET = A vH2a ( Io - Itw - ) c dr
theo dTBET
I
dTBET = dLBET cos I - dDBET sin I dLBET
TBET
dTBET B [-] l B
).
30
48. 2
TBET = NB (dTBET / dr)dr = NB Aa c P RP3 Io/6 - Itw/8 - /4).
ngang dHBET
I
dHBET = dDBET cos I + dLBET sin I dDBET + dLBET
BET
BET
QBET [Nm] = NB ((dBBET / dr) + (dLBET / dr) ) r dr
2
= NB Ac P RP4 (CD/8 +a Io/6 - Itw/8 - /4)
c. c
qua
12
.
.
31
53. g
moment
[5] [6]
2.4
2.4.1
X(k)=S(k)+N(k)
M
k 1
N (k )
0
M
M M
X (k ) S (k )
k 1 k 1
2.4.2
"A New Approach to Linear Filtering and Prediction Problems"
36
54. trong
.
.
accelerometer gyroscope.
2.20
:
2.21
37
55. 2.4.3
Kalman x
2.22
2.22
2.4.4
xk A * xk 1 B * uk 1 w k 1 (1)
z k H * xk vk (2)
A -
x
A
B u u
l.
38
56. w~N(0,Q)
v ~N(0,R)
.
tr
ek xk xk
ek xk xk
c:
Pk E ek ek T
T
Pk E ek ek
sau:
xk xk K * zk H * xk (3)
H * xk
ek K * z k H * x k
k k k theo K, ta
k
Kk Pk H T ( HPk H T R) 1
Kk
1-
2-
39
57. ta xk 1 -
uk 1
(g x0 H z0 ta
2.23.
2.23
2.4.5
2.24 Bode
40
82. 4.1.2 Kalman
: [11]
{
// Inputs
u = gyros;
y = angle;
// Update the state estimate
// x = A * x + B * u
x_00 += (A_01 * x_10) + (B_00 * u);
// Compute the innovation -- error between measured value and state
// inn = y - c * x
inn_00 = y - x_00;
// Compute the covariance of the innovation
// s = C * P * C' + Sz
s_00 = P_00 + Sz;
// Compute AP matrix for use below
// AP = A * P
AP_00 = P_00 + A_01 * P_10;
AP_01 = P_01 + A_01 * P_11;
AP_10 = P_10;
AP_11 = P_11;
// Compute the kalman gain matrix
// K = A * P * C' * inv(s)
K_00 = AP_00 / s_00;
K_10 = AP_10 / s_00;
// Update the state estimate
// x = x + K * inn
x_00 += K_00 * inn_00;
x_10 += K_10 * inn_00;
// Compute the new covariance of the estimation error
// P = A * P * A' - K * C * P * A' + Sw
APAT_00 = AP_00 + (AP_01 * A_01);
APAT_01 = AP_01;
APAT_10 = AP_10 + (AP_11 * A_01);
APAT_11 = AP_11;
KCPAT_00 = (K_00 * P_00) + (K_00 * P_01) * A_01;
KCPAT_01 = (K_00 * P_01);
KCPAT_10 = (K_10 * P_00) + (K_10 * P_01) * A_01;
KCPAT_11 = (K_10 * P_01);
P_00 = APAT_00 - KCPAT_00 + Sw_00;
P_01 = APAT_01 - KCPAT_01;
P_10 = APAT_10 - KCPAT_10;
P_11 = APAT_11 - KCPAT_11 + Sw_11;
// Output
return = x_00;
}
65
88. 4.12 Block Diagram c
i sub VI:
- VI Artificial Horizon /Roll
4.13 ial Horizon
71
89. -K : Quad
4.14
Node
rong LabVIEW c 3D
LabVIEW.
5 3D
72
90. 4.3.
4.3.1 Motor
Thrust
Motor Motor Motor
E-4 E-4 E-4
90o
1Kg
Balance
Scale
16
o
khung Quadrocopter .
HiModel GX-40A,
motor FC2835-10T GWS EP-1060Rx3. ATmega Timer 16-
Phase and Frequency Correct, gi
ESC. [15]
Hobbywing Pentium
30 sang EPP1045. ATmega Timer 16-
Fast PWM 2 4
.
Sau
73
103. [1]
,
TP.HCM, 10/2009.
[2] Tommaso Bresciani, Modelling, Identification and Control of a Quadrotor
Helicopter, Lund University, Sweden, 10/2008.
[3]
[4] BLDC Motor Modelling and Control A
Matlab/Simulink Implementation, Chalmers University, Sweden, 05/2005.
[5]
07/2009.
[6]
.
[7] Prentice Hall, LabVIEW for Everyone: Graphical Program Made Easy and
Fun, Third Edition, 27/07/2006.
[8] National Instruments, LabVIEW Basics I & II Course Manual version 6.0,
09/2010.
[9] RC Groups, Quadrocopter and Tricopter Info Mega Link Index, 12/2010.
URL http://www.rcgroups.com/forums/showthread.php?t=1097355
[10] Starlino, A Guide To using IMU (Accelerometer and Gyroscope Devices) in
Embedded Applications, 12/2010.
URL http://www.starlino.com/imu_guide.html
[11] SparkFun Electronics, Help with implementing Kalman filter for IMU 5?,
09/2010.
URL http://forum.sparkfun.com/viewtopic.php?t=6186
[12] .
URL http://www.clbmohinh.com/forum/
[13] MikroKopter, 01/2011.
URL http://www.mikrokopter.de/
https://www.mikrocontroller.com/
[14] Multicopter Wiki, Multicopter Table, 12/2010.
URL http://multicopter.org/wiki/Multicopter_Table
[15] Machine Intelligence Laboratory, Generating PWM signals using Timers in
the ATmega chip, 08/2010.
URL http://mil.ufl.edu/~achamber/servoPWMfaq.html
86
106. ATmega , -bit
ATmega128
B.1 ADC trong ATmega128
Trong ATmega -bit.
ADCL.
-
.
89
107. -
- - -bit
-700KHz - so
10-bit).
bit
B.2
- Free running: ,
- Single conversion:
1/ ADC Multiplexer Selection Register ADMUX: thanh ghi o analog.
2/ ADC Control and Status Register A ADCSRA:
3/ The ADC Data Register ADCL ADCH:
WizardAVR ,
-
- xung clock,
(8-bit, 10-bit)
90
108. B.2 USART trong ATmega128
B.2.1
USART (Universal Synchronous and Asynchronous serial Receiver and
Transmitter - b t n n t b v b b )
- : (Trans
-
B.2.2 ATmega128
ATmega
91
109. SART
Clock Generation, Transmitter, Receiver.
parity errors.
1/ Internal Clock Generation The USART Baud Rate Generator UBRR: thanh ghi
.
2/ USART I/O Data Register UDRn:
3/ USART Control and Status Register A UCSRnA
4/ USART Control and Status Register B UCSRnB
5/ USART Control and Status Register C UCSRnC
6/ USART Baud Rate Registers UBRRnL UBRRnH:
92
110. 5 UART
-
.
- /
.
B.3 PWM trong ATmega128
ATmega -bit
-bit.
(Timer/Counter).
- BOTTOM: b Timer/Counter
- MAX: Timer/Counter
Timer/Counter 8-bit MAX 16-bit MAX
- TOP: khi Timer/Counter
MAX, TOP thanh
ghi
93
111. Timer/Counter 1 (Timer/Counter 3 ):
1/ Timer/Counter 1 Control Register A TCCR1A:
Bit 7:2 COMnX1:0 (X= A,B,C): Compare Output Mode for channel X:
OCnB, OCnC (n=1,3).
Bit 1:0 WGMn1:0: Waveform Generation Mode: k
Timer/Counter 1.
2/ Timer/Counter 1 Control Register B TCCR1B:
Bit 2:0 CS12:0: Clock Select: imer/Counter.
94
112. 3/ Timer/Counter1 TCNT1H TCNT1L: t
16-bit thanh ghi TCNT1L. Thanh ghi
. (n=1,3)
ghi OCRnX (n=1,3. X=A,B,C)
4/ Output Compare Registers:
Output Compare Register 1 A OCR1AH OCR1AL
Output Compare Register 1 B OCR1BH OCR1BL
Output Compare Register 1 B OCR1CH OCR1CL
-
ng xung ng
5/ Input Capture Register 1 ICR1H ICR1L: thanh ghi Input C
TOP
6/ Timer/Counter Interrupt Mask Register TIMSK:
Ba (PWM) imer/Counter 1:
- Fast PWM: 1 BOTTOM
TOP BOTTOM
6
Fast PWM 1, 8, 64, 256, 1024):
- Phase Correct PWM: (hight resolution).
, BOTTOM TOP
BOTTOM. H
Fast PWM. ICRn X.
95
113. 7
Phase Correct PWM:
- Phase and Frequency Correct PWM
BOTTOM TOP
8
96
114. Phase Correct PWM:
- Hai c PWM .
-T
ast PWM.
- F thanh ghi ICRn, ta
.
CodeWizardAVR:
9 PWM
- .
- non- .
- 20ms (50Hz n=39999.
-
.
97