Kinematics and Dynamics: Beard & Mclain, "Small Unmanned Aircraft," Princeton University Press, 2012 Chapter 3: Slide1
Kinematics and Dynamics: Beard & Mclain, "Small Unmanned Aircraft," Princeton University Press, 2012 Chapter 3: Slide1
Kinematics and Dynamics: Beard & Mclain, "Small Unmanned Aircraft," Princeton University Press, 2012 Chapter 3: Slide1
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide1
Aircraft State Variables
r ib u
jb q roll axis
kb
v
<latexit sha1_base64="QZSVJGewF2upclPoXo7Ovq/bU+g=">AAAHt3iclZVtb9MwEIDD2CiU1wESH/hi6ECbhKamH3j5gMSbePkAGogNpKZUjnNJzBw7s52VKs0f4B/yM/gHnLNqIy0vraVKF9/dc77z+Rrmghvb7f44tXJ6de1M6+y59vkLFy9dvrJ+dc+oQjPYZUoo/TmkBgSXsGu5FfA510CzUMCncP+50386BG24kh/tOIdBRhPJY86oxa3h+ur3IISEy9JSdKnaAQNpQXOZtE8UhaC6KidsIiZokbpY7Xc0A3KXvADDNM8djATBVEmmNhv5UG6g0RsJ2nIqiFTapiRXhtcOKiZvn+4R+IZHNgYiQoWSCdkIMmrTMC559YVvEC6nO4yK8qXbCgLyWwhohABq7OIRvi4UIWpEiNRILh5hf4EIheO/0qqQETkEoRi3439WJZwnhg3i4VLErwsQR0sR9xcgBnnKHfSDEoJQmQggEcSoisiIY5sgOQdmiVVNSnnYq5ogm4KlDrXDLUuXY/kzrNzUh3oNNMJHQDbHdLS1DBEr32geB3umorFjuHdENjXmu0U0tbD8HTfYB/Ps3BXgf/C/XXcDrufhdSn+jf7bvZ/MhnYAMjoeKsdfbvYMr3S62916kXnBnwodb7p2husr14NIsSLDmcUENabvd3M7KCk+VFZPs8JATtk+TaAvwOJgy2kO+h7JqMbZ9ri33eVyUCagMrB63HRAUeKQM4OyHrMVuVO4jGOl8SctqXd/9yhpZsw4C9HSJW9mdW7zT7p+YeOHg5LLvLAg2VGguBCut9zMJhHX2GpijALFaYvJEZZSTRkmhCQJI6ayjGIlgzyCqt8blEGMavyk9czq+NWJ3Kuqpg/2NRyggbF4Hg2iDKzmdctX5eNZ4wzLXJX17Zq4zGbVGn2OtGFYfqhm1fgHkFV9H88nILbBpOMHmicpSlWzWiJRmGiacXbvWJ5h0dCcoI5Jk7qP/NmumRf2etv+/e3e+17nSW/aUWe9m95tb9PzvQfeE++1t+Ptemz159qNNbJ2q/WoNWzFrfTIdOXU1Oea11itg198kZ9P</latexit>
Name Description
w
pitch axis pn Inertial north position of MAV expressed along ii in F i
yaw axis
pe Inertial east position of MAV expressed along ji in F i
pd Inertial down position of MAV expressed along ki in F i
u Ground velocity expressed along ib in F b
v Ground velocity expressed along jb in F b
w Ground velocity expressed along kb in F b
Roll angle defined with respect to F v2
✓ Pitch angle defined with respect to F v1
Heading (yaw) angle defined with respect to F v
p Body angular (roll) rate expressed along ib in F b
q Body angular (pitch) rate expressed along jb in F b
r Body angular (yaw) rate expressed along kb in F b
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide2
Translational Kinematics
0 1 0 1
ṗn pn
4
@ ṗe A = d @ pe A = vv = Rbv vb
dt
ṗd pd
0 1
u
= Rbv @ v A
w
0 1
u
= (Rvb )> @ v A
w
0 10 1
c✓ c s s✓ c c s c s✓ c + s s u
= @ c✓ s s s✓ s + c c c s✓ s s c A @v A
s✓ s c✓ c c✓ w
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide3
Rotational Kinematics
0 1 0 1 0 1 0 1
p ˙ 0 0
@q A = @0A b
+ Rv2 ( ) @✓˙A + Rv2
b v2
( )Rv1 (✓) @ 0 A
r 0 0 ˙
| {z } | {z } | {z }
˙ is defined in F b ✓˙ is defined in F v2 ˙ is defined in F v1
0 1 0 10 1 0 10 10 1
˙ 1 0 0 0 1 0 0 cos ✓ 0 sin ✓ 0
= @ 0 A + @0 cos sin A @✓˙A + @0 cos sin A @ 0 1 0 A @0A
0 0 sin cos 0 0 sin cos sin ✓ 0 cos ✓ ˙
0 1 0 ˙1
1 0 sin ✓
= @0 cos sin cos ✓ A @ ✓˙ A
0 sin cos cos ✓ ˙
<latexit sha1_base64="(null)">(null)</latexit>
r ib u
jb q roll axis
Inverting gives: kb
v
w
pitch axis
yaw axis
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide4
Kinematic Equations of Motion
Six of the 12 state equations for the MAV come from the kinematic
<latexit sha1_base64="WGDJF3nxQrGZwI/AzepqIfEeWsg=">AAALv3iclVbdb+NEEJ8rB7QJH1fgBfHAiojTAdcqjhAgpEp34gUeQAdceyfFUbVerx2r9trd3TQXGf+h/Cm8Mbt2HX81zdmKPZ6P3/5mdjyOl8WR0tPpvw8O3nn47nvvHx6Nxh98+NHHj44/uVDpSjJ+ztI4la89qngcCX6uIx3z15nkNPFi/sq7+sXYX91wqaJUvNSbjC8SGoooiBjVqEqPH/4GLgjgsAYGKSR4Unz2IUe9Ag1LKKys0ecNXnPUFnBpNUvUafQvYLQDhQ2isLdEUZDt4GJs0b08hhDYWyAYDmoHB7UXhz4C6yGUp8FJUWOiOV41EPgbn9/gPYUAr2X1CDgww6uyddRWw+EaVvYpQl+BNoIRKchG1O/wHC7wXvLk1kNaeetzZdfnNguDxVDn4jkaXEGiNq50AkLUZGgzWTW9ynoQuLHeKWKWdo7Wn6vMPXwKLUqO/jFKIcrfVvVtWrOKm7SVKSw/H1G1tZnKiopz38LvtPhWx6ud66/xGM6sx31Myu4n9d6bSFL3M6nfsqbHSf20rH0V5v24p+9GftfDLvXljjXZqAabu/ioFup2XVbxIXU2Q5xUKxvViSY1q5NGVLc2rKVnHf1oxw7d3yWreu9vamm9c9dHdR337b/tXOn3WXv2Ddlv58FuTvt0YrlXTqPCxu+WnWs5iBajbc3N+7vbs6yKWWF6R1ypPemtPBzbZadwJbYXu77nqOq0u+tH9niPs3p/rmvJTNL70EmrR7tzbGjCj+BlNXllNXWN9Xaaqmr6D83eNcoxnsPznCK3DK2bGusP+43SJp58bhFm1Vw2E3yNTIxt+yUwWVG7VtxYmdoVbye6tL3btSZWW2q6Xy6Tn0TGBjuw+Y8uH02mp1N7kL7gVMIEquPF5fHBZ66fslXChWYxVWruTDO9yKnUEYt5MXJXimeUXdGQz2OuNZcZzbh8ShIqw0iczU6nkVjkIU8TruWmHYCioAlXi9z+3SrI16jxSZBK/AlNrLYZkdNEqU3ioWdC9VJ1bUY5ZJuvdPDTIo9EttJcsHKhYBUTnRLz3434keRMxxsUKJMRJkfYkkrKMCFEEnzN0iShws/dzOfFfLbI3QDN+GhKQeOJU2zlWVG0Y3we8Gt0UBr5SB7nrpYRFSFWMD/rOidY5sLcMIkgT7pmiTGl1fPyv4quWaQyKeYO8ot5oN1/Jo4ro3CJUtGuVhymmOgyidjTWu5gUU9toWokBMI+crpd0xcuZqfOD6ezP2eTZ99XHXUIX8BX8ATn5Y/wDH6FF3AO7PC/oy+Pnhx9M34+DsdinJWuBw+qmE+hdYw3/wPh55mM</latexit>
0 1 0 10 1
ṗn c✓ c s s✓ c c s c s✓ c + s s u
@ ṗe A = @c✓ s s s✓ s + c c c s✓ s s c A @v A
ṗd s✓ s c✓ c c✓ w
0 ˙1 0 10 1
1 sin tan ✓ cos tan ✓ p
@ ✓˙ A = @0 cos sin A @q A
˙ 0 sin sec ✓ cos sec ✓ r
The remaining six equations will come from applying Newton’s 2nd law to
the translational and rotational motion of the aircraft
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide5
Differentiation of a Vector in Two Reference Frames
p = px i b + py j b + pz k b .
Frame F b rotating wrt frame F i
Di↵erentiation with respect to the inertial frame gives Vector p moving in F b
d d b d b d
p = ṗx ib + ṗy jb + ṗz kb + px i + py j + pz k i b ,
dti dti dti dt
b/i
where
dpb⇤
ṗb⇤ = .
dt
Let
d
p = ṗx ib + ṗy jb + ṗz kb .
<latexit sha1_base64="(null)">(null)</latexit>
dtb
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide6
Differentiation of a Vector in Two Reference Frames
Recall from physics that for any vector v fixed in F b we have
b/i
d
v = ! b/i ⇥ v.
dti
Frame F b rotating wrt frame F i
Therefore Vector p moving in F b
d b
i = ! b/i ⇥ ib
dti
d b
j = ! b/i ⇥ jb
dti
d b
k = ! b/i ⇥ kb .
dti
Therefore
d b d b d b
px i + py j + pz k = px ! b/i ⇥ ib + py ! b/i ⇥ jb + pz ! b/i ⇥ kb
dti dti dti
= ! b/i ⇥ px ib + py jb + pz kb
= ! b/i ⇥ p,
resulting in
d d
p= p + ! b/i ⇥ p.
<latexit sha1_base64="(null)">(null)</latexit>
dti dtb
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide7
Translational Dynamics
Newton’s 2nd Law:
<latexit sha1_base64="Yp9qKghyyhGgjjvmx11MgyJRi/0=">AAAGRXicrVTNbhMxEN42BEr4a4EDEheLBAGiKkmQACFVVOLCAaGCmrZSNoq83tmN1V3vYjttg2vxNFzhMXgGHoIb4grjTdpkE+CElWhHnm8+z8w3dpAnXOlm89vScuVc9fyFlYu1S5evXL22unZ9V2VDyaDDsiST+wFVkHABHc11Avu5BJoGCewFBy+df+8QpOKZ2NGjHHopjQWPOKMat/prlVu+gCOWpSkVofGVHljjazjWRtm+rwegqa2VIGwKYX+BqLzEkg/4PEde4lgEqFyVGNQigyoxLAB2gwgBKdWDIDK71tbQnXERgtDkDRzpTNxTpC1C8poePSe4an63hniliB9JykzoKPqxNaHuI7mDbJJTwghP681S7g2oJlyRxvTIftx4gZAAYi4M15DyD4BhziJTXGQbLg7bSNQwJVlEaJIQrAukoAmJMtRZkUlYo0jwLKDIFiOcTblkkkb6FLrDUyAhSH6ISh8C0fQABOHuB1JzRy0pQhAP2K+z/GZq6igu4oIcjnGolBuiokv/6M/ENdOEAhBY8rCA+EGWhGqU4sf4WQoxtX0TPOLW15iwmg10HY4xdTWjTAKRvv8/DyG+5PFAP1jUtr9ab240i0UWjdbEqHuTtd1fW77phxkbptg7lmC63VYz1z1Dsd0scdIPFeSUHdAYugloVDinOch11FHijGw+3mhy0TMxYMpajsoBaArUS/VMcektuYs7oZsP/KNYxe5shKGpcj1ApCtMzfvc5p983aGOnvUMF/lQg2Djg6JhQnRG3AtCQi6B6WSEBmWSY3GEDShKggWp8iXMQ7Ddds+MFfNzWkxevWWndtvOXdwQInhv3VOE+UhABbXkVMTYQbM5D3ZTMbnmKjLpvFtizOQRCMw7O+8WmUxtt4X5ubnyT+qt8TT4J7bcrSTOsNBBytn6mT3HRQM1pTpjQiKco9b81Cwau+2N1pON9tt2fas9magV77Z3x7vvtbyn3pb3ytv2Oh6rfKx8qnyufKl+rX6v/qj+HEOXlyYxN7zSqv76DUjGNDA=</latexit>
dVg
m =f
dti
p
u
What is Vg ?
r ib
jb q roll axis
kb • f is the sum of all external forces
v
w
pitch axis
yaw axis
• m is the mass of the aircraft
• Time derivative taken in inertial frame
⇣ ⌘
dVg
Expressing m dtb + ! b/i ⇥ Vg = f in the body frame gives
!
dVgb
m + ! bb/i ⇥ Vgb = fb
dtb
where 0 1 0 1 0 1
u p fx
Vg = @ v A
b
! b/i = @q A
b
f = @ fy A
b
w r fz
0 1
u̇
dVgb
Since dtb = @ v̇ A we have that
ẇ
0 1 0 1 0 1 0 1 0 1 0 1
u̇ p u fx rv qw fx
@ v̇ A = 1
@q A ⇥ @ v A + @fy A = @pw 1
ruA + @fy A
m m
ẇ r w fz qu pv fz
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide9
Rotational Dynamics
Newton’s 2nd Law:
<latexit sha1_base64="jvrOMYxvfxr/6PC1eOtSGNrE/Qg=">AAAGcHichVTrahtHFN5YjZqotzglEOiPTCuHlja4kkouBAwhIdAfpaTFdgJaWczMnt0dPJfNzEiKMp0H6tP0b/MafYKelTeWV3LTAaHDOd/5zn1ZJYXzg8G7Kzudj652P752vffJp599/sWN3ZvHzswshyNupLGvGHUghYYjL7yEV5UFqpiEl+z0WW1/OQfrhNGHflnBRNFCi1xw6lE13e08TS1oWHCjFNVZSD288QuR+TKGn4SOvV560epq/QoTXJymvgRPYxvC1xD+HxBXtViqUmxyVC2ObYCrXIvBbTO4FkMNuNtCKOpqiKK+dHlQcYPgmOWNleXhOK4aYYTOQHvyKyy80d86MtIZ+YUuHhN8vXTcS3NLecjeu5UxhsxPRSQH5L1OYZxJL2VQCB2EByXeAqpqiZC9teceEY5g8wjVxUxSS5RRGHumyBy4N5Y0Pntr4nMXhyiTEyolwQaA1VQ27q7xOhQKSAZWzHEP5kA8PQVNFtYT3CPrBTpgKYjBMIDtOE/0QhcOS7CQGwtkAaSkc/hQB3rYgUtNLJIfSMqMzNxS4V9IMdGCxmlgP4qYekzUrV22Gvn8Da67c0IXmPmqeGayZZN8gaW5S7M6YR8MfsIuD3/CSO9iBieszmF6oz/YH6we2RaGjdBPmvdiurtzK80Mn9UT4RL3cDwcVH4SKHaey3odZg4qyk9pAWMJHkdY0QrsPaKoxb05GO0/vC/0JBSA+Xq7bHugqLF8Nwmr70Mkd1GTERwV/nBwK+1Fj0CVqxuAyNU5bNpq5WW28cznjyZB6GrmQfOzQPlMEm9I/bEhmbC4rHKJAuVWYHWElxRngRW59r1VGcTxaBLORpVWdLWF/WFcy6PNG80gh9ex/iphPhZwfN4KvBdsYTjYBP/PvVv0ae6dhd/jplkbq+J4iPlJyH36R3+YWlGUKMV2t2RhsNBSCX7vXN7gosytqc6ZkAgXabi5NtvC8Wh/+GB/9Nuo/2TUrNS15Kvkm+S7ZJg8TJ4kPycvkqOEd/7s/NX5u/Pu6j/d29073a/PoDtXGp8vk9brfv8v8vFLTw==</latexit>
dh
p =m
dti
r ib u
jb q roll axis • h is the angular momentum vector
kb
v
pitch axis
w • m is the sum of all external moments
yaw axis
dhb
+ ! bb/i ⇥ hb = mb
dtb
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide10
Rotational Dynamics
For a rigid body, angular momentum is defined as the product of the inertia
<latexit sha1_base64="gYoxV2Px6U3x7UQg/PVu2a/IzX4=">AAAIOniclVVNj9xEEHWWLBMcIFk4cmkxySrA7jAzEh+KtFJQIoRyISB2N9J4dtRul+3Wdrud7vZmPKav8Kf4I1y5IS4c+AEpez49swuiL1OuevX6dXV1TZgLbmy///utvbdu77/dufOOf/fd996/d//ggzOjCs3glCmh9MuQGhA8g1PLrYCXuQYqQwHn4eXTOn5+Bdpwlf1kyxzGkiYZjzmjFl2Tg9t/Bxm8ZkpKmkVVYGzqqsDC1FbGTQKbgqXOb0HYGsJugJi8xZKnfJsjb3HsAkxuWgxml8G0GGrAwxZCUlNDJLWpiSvptgjOwngRDePqzG1nRxDDK1cXhLJLDQL30pxmiQBXnSAayRTPIsgs+VZpQonmCY9IqKLyiCCuEFQTqSQCCkm4IUiIVxQRagiWjORaRQWzRMXNJ4a05dRHPZpPkSBq3EuiKxCKcVuiwazSj/1g5C+1p+4iJHO9ZOl77oJQiciUEn+qAGUk1E2q8HOOYD8Yb6h/nYIGPwgh4VlFBU+yT52/5iGHJz7BtQDkc4Fu7uOY/6i8GJLPyOxi+ElwFDVVJ4fkuIlNy5VruVah2SoUBA3bv6TMN5pet9EirbyJbnajgvK60OZO5cZO8/MCdsayAiQQNMS+gFePL/H20MuZOcbCB/7h/DZurNvzSYX5jZLaLN3SmrmV+lUAjXINLrcgM7cRaMAzt6vVb76Wl7tx+c84TVRGBQEBdasaQjUQRoXATp13r6lbdNGePUK+j+PjaJnlX5e26OzNPNzyyuSUQdX7gsmWggfrVnuAsiOwoGXzUGKtJGmuBxnzmgcMEpKn3zyrPYmmkuDLk0BNoSHyYYogXstBHSUpDM8SfJchDrv6CeVYgkIU0p/c7/Z7/WaRXWOwMLreYr2YHOwNgkixoqZmAgWNBv3cjiuKkhjOAz8oDODpLmkCIwEWT5BT1HKE6jVe/smw1+fZuEoAC2p12U5AM6MSzLhqhrkjD9GDp8ejxQoL1Hg3MyoqTf2wEdnMtu1Y7bwuNips/PW44lleWMjYfKO4EMQqUv8zkIhrnC5YOrxfpjkejrCUasrwQKY9PPMI3Gg4roIYw/hZl4KK7sCt7eH2wP2vifp/hrfGnMXwDqsf3XY4U1q60QD1CYht8HN3EOB4TtFy7WqJROFBU8nZ0cre4qKhWVOtmNpEo0xlMK7SMk/xMi02ODbZYLuldo2zYW/wZW/4w7D7ZLhotzveR97H3iNv4H3lPfG+8154px7bP993+7/s/9r5rfNH58/OX3Po3q1Fzodea3X+eQNX79dR</latexit>
where
0R R R 1
(y 2R+ z 2 ) dm R 2 xy 2dm R xz dm
J=@ R xy dm (x R+ z ) dm R 2 yz 2dm
A
xz dm yz dm (x + y ) dm
0 1
Jx Jxy Jxz
4
= @ Jxy Jy Jyz A
Jxz Jyz Jz
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide11
Rotational Dynamics
Recalling that
<latexit sha1_base64="ypun8Mq688/626uaIVyLoz+siYQ=">AAAGPXicjVTLbtNAFHUbAsW8WliyGZEiFbUNcSQem0gVbFBXpaIPYbvV2L6xR7XH7nhCiaYjsYWf4jv4AHaIDQu2XNt5OS1VR4pyM/d1zr1n4mUxy2Wn82NhsXGjefPW0m3zzt179x8srzzcz9OB8GHPT+NUHHo0h5hx2JNMxnCYCaCJF8OBd/K28B98ApGzlH+QwwzchIac9ZlPJV4dryz+cXjKeABckl3waYyFQiIjKk3HNp2+oL4KnITKyOurSB95WgXy2NNknTheGgf5MMEv5aQJhBTdx8p7zrQjWQL5bBoxe2T8Oyl/O645bf0GWw9yIKvjmG29SlhOBtyPKA8LTIwjLCBeGgwJwkpgA6Pr+Lb1GF2PdFYJ5QEpWUzcZJxwEXoFfMLPJOW5BkvixNCXa2S2y//LE0ewMJLPRvXrQ6nPZBeoECPyZ0BCqFYSpFJd0mDaoTcD5UhtWroEaJubV8AaLaxkMs2+KmFEY72+1eraLYicRSDgmohxGtfeTBXtAc5FZdhbsM+6bJHh4B1SmqdTU6AJPJiEFtCOl1uddqc85KJhjYyWMTo7+EwsLOYPEtyLH9M8t61OJl1FhWR+DFgUxZtR/4SGYMcgJYiMZiA2SEIFAu112y8Yd1UISEmKYT0BTY56zl1VvmdNnuJNQPqpwA8KobydzVA0yYsZYWQx/HzeV1xe5rMHsv/aVYxnAwncrxr1BzGRKSn+HEjABPgyHqJBfcGQHMH3h4tBQliJw5mfJgm+K+VkAWi766pqb05WjILGLUtP7a7W9ZwA+nCKAblEPAJww7gSVDhOUPXmgxMcs1aluvJCXXNugTmV1/PUrp5381Qk2rYQX6Fp57xlVdJ0znV9WnGYItEoYf7GxJ6rRb18WmpSqV7I5ikHV0XDLMJlSm0WIrPmJXXR2O+2rZft7vtua6s7ktuS8dh4YqwZlvHK2DLeGTvGnuE3Pja+NL42vjW/N382fzV/V6GLC6OcR0btNP/+A6I2MbA=</latexit>
dhb
+ ! bb/i ⇥ hb = mb
dtb
dJ
Because J is unchanging in the body frame, dtb = 0 and
d! bb/i ⇣ ⌘
J + ! bb/i ⇥ J! bb/i = mb
dtb
Rearranging we get
h ⇣ ⌘ i
!˙ bb/i =J 1
! bb/i ⇥ J! bb/i +m b
where 0 1
d! bb/i ṗ
!˙ bb/i = = @q̇ A
dtb
ṙ
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide12
Rotational Dynamics
<latexit sha1_base64="55f1gpNGg+z/zCj64R/13t9Oa7c=">AAAHBHiclVRLk9tEEFY2xgTzysKRy4AdV6B2XZYPCRdXpYpDYE8bKpukyuPdGkkta1hpJGbGxPIwV34NN4oLB/4H/4YePfxQlgNTpVKru79u9dfdExQpV3o6/efeyf3ee/33H3ww+PCjjz/59OHpZ69UvpYhXIV5mss3AVOQcgFXmusU3hQSWBak8Dq4/c7ZX/8CUvFcvNRlAcuMrQSPecg0qm5O7//1iAp4G+ZZxkRkaAQx/GwNVZqFtxJSQ7XkTKxSsGZu7WBARc5FBEKTH2KiEyCMy1CyWBOuiCqzDBAQEhbka13ZRzRjOgliw+11QDVstDm3re4WdSNSpEzAmfMWZHRxYzalneOr3Nr5dETwv8iALgYt5sKS+YDgoQGsuDAF6iXf2Ern0BbfYzIl9RmTc6fcWkJp5bI3uBytc2NsfcfHbts6OgXkaJePLg/YeJns6y8JU2qdFY5ikkBaKKJzoniGHY3LmjXB0lJxNSGIBMKFaxKQPN7zdWFHJADsDKhBUypL+Up8Yw+ouDbnfv1v4zmhsWShqTlm0U/28d7va9voI9DH+gq8w95BaU1ric+2omXcfB1yWvPqLBt0a0i8nh0y23Znax28DbRxwRr7EbttbtM6VfnPyS60U+3yu+L/49frwhCMDDxnOOa2Sd4aXLy9rVNQ7eRb9Cttt5y7I3Sj700tsDNG7qvt7NsEJFTTXkFIvZANrwflu+G7eTicTqbVIe8KfiMMveZc3pye+DTKw3WGAxumOKMLf1ropWFS8xA3fEDXCgpcfLaCRQpagyxYAfKMZEwiufPZZMrF0qwgr8b8GICiYDisS1NdS5Y8Qk1E4lzigxtSaQ8RhmUKNyZATzePqmtzyrtsi7WOv10aLoq1BhHWieJ16pbM3XEk4hJCnZYosFByLI6ECcN+YEEY6fC+KyKwi9nSNONfOCpYOsSG7+QZzuL/uiOPnDOk2Zpq4VRssq5ZIqa2BoH50XbNIpeZXfj4fynEmv469KnkqwQle8xWusqx0CTj4dlO7sRigdqH2kU6DrQQuYClScoC72Km8b7HIfO7I/Wu8Go28Z9MZi9mw2ezZtweeF94X3mPPd976j3zvvcuvSsv7H3Ze9677L3o/9b/vf9H/8/a9eReg/ncOzr9v/8FZWZKdA==</latexit>
If the aircraft is symmetric about the ib -kb plane, then Jxy = Jyz = 0 and
0 1
Jx 0 Jxz
J=@ 0 Jy 0 A
Jxz 0 Jz
where
4 2
= Jx Jz Jxz
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide13
<latexit sha1_base64="FjXmD/oECzBhBldiVhZ+OFSWrJ0=">AAAKinic3RbbjttE1F0uKaZAlz7yMiLtkmWbJfb2hlCklagE6lNB3bZSJhuNnXFi1R474zFNMp3v4Wt4BfE3nJmxk9jZRfDACyMlc+bcb54zQZ7EhRgM/rxx8N77H3zYufmR+/GtTz797Pbh5y+LrOQhvQizJOOvA1LQJGb0QsQioa9zTkkaJPRV8OZ7TX/1C+VFnLEXYpXTcUpmLI7ikAhATQ475/cwo2/DLE0Jm0o8pRFdKIkLQcI3nCYSCx4TNkuokkOlXBePXCzoUvBUPqURWEUKp0TMg0im6jJAVgPCAZ3FTOZA4vFSoQRhjFL9xxCmYGlDwYuSTDc6wQnEaUiSBIk5ERUZ1SYIIESc0mKDCRQaIrdlzkWwBugI9cnkDDYy8cG0wVpERfMqbF8zaDZP09yGg23dKDBisPl2O0Mt/rH7Yk6ZydQ0ExIHWTItVilsEmcpnRGlJjL4JtbpGm4CeaYuZd9TOKGRGLn9K6RqIZsBw9jbSv+dAI9nc3HsnqBmqQx6rB0OCUMBRXQJzVMUdIpIUcdNknjGvt5Pg4ktVzoHBlxsQa5aKTkathvC1EIvHHESymeTNTTdDwS6UFXlqQlyuVZbWlXFur6WyVPAt7KCOwxXa2hr35KMYNNxg7EVMeA1QWiNXLfUYtd+n1fG8l3sQvPlps+usXeFEeMo7FqfXaDERlbr3hIAv6qZK2LNe9RkW18bc6vYOgKkg4Mw97lP/vnnbrXbxkOYZaxMA8q1m//vHrEW8gXkqgd+QD3Wxwu+9cTSe/zS7+eX/rFlWwPb8jjfYQPkEpCrY9DUr4QW/Bqn/suy2HTATWgcqU4+gpBO6tMZmNscHmiLeFf0IYLANqKPUA/i7nMbe7NkaUvyccOo1zD6YNfoE8TcvcyYU32pvZ1TTtFdy3/3qwIROEYlC/V0LFAWoRSuUiaAAIMp59m0DIXBw+TjIiauO7ndHZwOzEL7gFcBXadazyeHBx7ckmGp9YYJKYqRN8jFWBLQF8KcdXFZ0BzGL5nRUUKFoDwnOeX3UUo4FGLonw5iNpYzCq4JvmoKAMgIjIexNI8Dhe6V+j6PMg4/JpDB7kpIkhZ6bACnHg5Fm6aRV9FGpYiejGXM8lJQFlpDUQlzO0P6pYGmMQxykawAICGPITgUzgkUFgICTbuvjnxK1cgfS1t3nOtUkKQLDbCBfXh8/KuXSoM5hTQraaZfoadfi8xBxlKDQP6s2mSW8VSNPPBPf+b4Xdeznwp+p5rZSmYZBDpP4/D+Bm7pIkGxVbXR1FQ0gg+QjuV8lcM7Ah5Bpsm8dkvtAy/9U+/Rqf+T3z33q3a76XzhfOn0HM957Jw7PzrPnQsn7Pza+a3ze+cP95bru9+631nWgxuVzB2nsdynfwH34254</latexit>
0 1
Rotational Dynamics
0 10 1
l 0 a3 a2 b1
b 4 @ A
Define m = m and recall that a ⇥ b = @ a3 0 a 1 A @b 2 A
n a2 a1 0 b3
Then h ⇣ ⌘ i
!˙ bb/i =J 1
! bb/i ⇥ J! bb/i +m b
can be expressed as
0 1 0 Jz Jxz 1 20 10 1 0 1 0 13
ṗ 0 0 r q Jx 0 Jxz p l
@q̇ A = @ 0 1
Jy 0 A 4@ r 0 p A@ 0 Jy 0 A @q A + @mA5
ṙ Jxz Jx q p 0 Jxz 0 Jz r n
0
0 Jz 1 20 1 0 13
0 Jxz Jxz pq + (Jy Jz )qr l
1
=@ 0 Jy 0 A 4@Jxz (r2 p2 ) + (Jz Jx )prA + @mA5
Jxz Jx (Jx Jy )pq Jxz qr n
0
0 1
1 pq 2 qr + 3 l + 4 n
= @ 5 pr 6 (p
2
r2 ) + J1y mA
7 pq 1 qr + 4 l + 8 n
0 1 0 10 1
ṗn c✓ c s s✓ c c s c s✓ c + s s u
@ ṗe A = @c✓ s s s✓ s + c c c s✓ s s c A @v A
ṗd s✓ s c✓ c c✓ w
0 1 0 1 0 1
u̇ rv qw fx
@ v̇ A = @pw ruA + @fy A 1
m
ẇ qu pv fz
0 ˙1 0 10 1
1 sin tan ✓ cos tan ✓ p
@ ✓˙ A = @0 cos sin A @q A
˙ sin cos
0 cos ✓ cos ✓
r
0 1 0 1 0 1
ṗ 1 pq 2 qr 3l + 4n
@q̇ A = @ 5 pr 6 (p
2
r2 )A + @ J1y m A
ṙ 7 pq 1 qr 4l + 8n
where
2
Jxz (Jx Jy + Jz ) Jz (Jz Jy ) + Jxz Jz
1 = 2 = 3 =
Jxz Jz Jx Jxz
4 = 5 = 6 =
Jy Jy
2
(Jx Jy )Jx + Jxz Jx 2
7 = 8 = = Jx Jz Jxz
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide15
Quaternions
The attitude of a rigid body can be represented by a unit quaternion, which is
<latexit sha1_base64="Q2pYD8V6JsJO4BhA5uPRDeSPVg4=">AAADeHicdVJNb9NAEHUcPor5SuHYy4ikopVCZDsguFSqxIVjkZq2Uhyi9XoSr2qvze66JaT5C/w4bvwQLpyYjQ2FFPbgeXoz8/bNrOMyE9r4/reW2751+87drXve/QcPHz3ubD850UWlOI54kRXqLGYaMyFxZITJ8KxUyPI4w9P4/K3Nn16g0qKQx2ZR4iRncylmgjND1HS79SWShZAJSuMdpwjMkEiVIBQzYKDEXCQQF8kCOJMQIygkeU3VSPyCSiopDHysmEElSbEPl6ngKQhNuZcvLpCbQnnR2EM4gCjGuZDLMmdGiU8rwKkPUUQhqENYhyFEKJPrMi+aeJcpKoQedfT6NgR1CCkwmVg47AGjEs1ZxpSu6aYrusLo6iDoeZ7XWBAGc/EZV15kUa1rPVNzRpOZtBZCBSVTxi7DUtdj/urbIyd969x+hvsfIlOUm0L1Dv4rZEf9bcebdrr+wF8fuAmCBnSd5hxNO1+jpOBVTk/CM6b1OPBLM1nSZYJndsBKY8n4OZvjmKBkOerJcv3jrGCXmARm5G5WSANr9s+OJcu1XuQxVdJjpHozZ8l/5caVmb2ZLIUsK4OS1xfNqgxMAfYvhEQo2kq2IMC4EuQVeMoU47QWbZcQbI58E5yEg+DVwH8fdg/DZh1bzo7zzNlzAue1c+i8c46ckcNb390dt+fuuj/a0H7e3q9L3VbT89T567TDn31rENs=</latexit>
a 4-vector 0 1
e0
Be1 C
e=B @e2 A
C
e3
where e0 , e1 , e2 , and e3 are scalars, and where kek = 1
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide16
Quaternions
✓ ◆
⇥
e0 = cos
2
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide17
Quaternions
Conversion Between Euler Angles and Quaternions
<latexit sha1_base64="mzoW2Oub0g8w1mB2rsRrL2EMe24=">AAAFuXicjVRdb9MwFM1YC6N8bfDIyxUrqGNtlaTiQ0JIgwnE4yaxD2npKse5acwcJ9gOo4r6G5F4499gp6Ur7RC1lOTm2vecc48ThzlnSrvur7Ub67X6zVsbtxt37t67/2Bz6+GxygpJ8YhmPJOnIVHImcAjzTTH01wiSUOOJ+HFvp0/+YZSsUx81qMc+ykZChYzSrRJDbbWf5RBGEOQqJxQLN1uj4kx7GdiWgTvUV8iCvhQcJTwTgw5KiAigsOCaJTCrFHjRhDikImScDYUz81rnjB49hYCjd91STQR/hgCjrFugd/CgYsDD3YBBz4OejttsKlzf9e8nPsdM1fd/XN/BwLJhok2z6AR6AQ1mYNVVuoU9Q+sDx0D61nYWW1VnKv/KepVikypP69opqVTqZuhNgIU0azhRiAyJiIUuvFRZikYqTAil23ImaZJuzJMZpxPbSQTG1tNK6vZhqY1rHpWPTaNAItAMylR5ZmImBiaLuDrzHNAjqmhM3shcdF+o73qlWYqiCWhpaUZl/54LlMRLeSMCJvZDYyzC4VXmavCuVWTQmu03dnVuZcgOityL4mecPv/4F4J4rq+VxI94e5V3KtBLHF3VhS9zL3wIQ42t92uWw1YDrxpsO1Mx8Fg82cQZbSwHxPlRKkzz811vyRSM8rR/MuFQnM2XJAhnplQkBRVv6xOnjE8NZkI4kyaS2iosvMVJUmVGqWhWZkSnajFOZu8bu6s0PHrfslEXmgUdEIUFxx0BvYYg4hJpJqPTECoZEYr0IQYY8z/oawJ3mLLy8Gx3/VedN1Df3vPn9qx4Tx2njgtx3NeOXvOJ+fAOXJo7WUtqGEtrr+pk3pS/zJZemNtWvPI+WvU1W/zPeuT</latexit>
From the yaw, pitch, and roll Euler angles ( , , ✓), the corresponding
quaternion elements are
✓ ✓
e0 = cos cos
cos + sin sin sin
2 2 2 2 2 2
✓ ✓
e1 = cos cos sin sin sin cos
2 2 2 2 2 2
✓ ✓
e2 = cos sin cos + sin cos sin
2 2 2 2 2 2
✓ ✓
e3 = sin cos cos cos sin sin
2 2 2 2 2 2
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide18
Quaternions
Conversion Between Quaternion and Rotation Matrix
<latexit sha1_base64="XYeYuWFmjRnTEOKgi77cjP6d76U=">AAAD3HicbZJLb9QwEMfTXR4lPNrCkYtFC2rVdpVkheBSqaIXOCC1FX2g9e7KcSa7VhM72E5hFa24cAAhrnwwbnwNPgETN2X7wFKs0X9mfjOeTFxkwtgg+D3Xat+4eev2/B3/7r37DxYWlx4eGlVqDgdcZUofx8xAJiQcWGEzOC40sDzO4Cg+2an9R6egjVDynZ0U0M/ZSIpUcGZRGi7N/alonBI6NgXjUAWdSMgp2VGySSKvwH4EkGSvZBa0rCUmE7KvrCOQt8xq8Wnq09NzQvgcEb5PpRIyAWn9NymxYyAfZoQVmjM7jtMKpsN4ILZWYRhsEBiG9RXVV3dtQK0qVogGfI9BjCGM6POqqVa5g8YqmRCrnI0j0FawDL0sh41ak87BlUZGoWQi5GgGyV3rRBif9vz9uhGyRWgMIyGrIm/ehU0NonXsbxBtYm/u7g4i8oxE2HWIUi2gf20mdTE+chKl/nnY+iyMONA/aHgB6hCY2910WZcQtRZdqBSdVQobySGuQLGMT0Ems/fQvj9cXA46gTvkuhE2xrLXnN3h4i+aKF7m+Bd4xozphUFh+xXDafMMkFkawJ9/wkbQQ1Pi9E2/css5JU9RSUiqNH7SEqdezKhYbswkjzGyXgpz1VeL//P1Spu+7FdCFqUFyc8KpWXmtgE3nSRCA7fZBA3GtcBeCR8zzThuoamHEF598nXjMMJ17gR70fJ21Ixj3nvsPfFWvdB74W17r71d78Djrfetz62vrW/tQftL+3v7x1loa67JeeRdOu2ffwH+IC24</latexit>
If the quaternion eib = (e0 , e1 , e2 , e3 )> represents a rotation from the body to
the inertial frame, then the corresponding rotation matrix is
0 2 2 2 2
1
e1 + e0 e2 e3 2(e1 e2 e3 e0 ) 2(e1 e3 + e2 e0 )
Rbi = @ 2(e1 e2 + e3 e0 ) e22 + e20 e21 e23 2(e2 e3 e1 e0 ) A
2(e1 e3 e2 e0 ) 2(e2 e3 + e1 e0 ) e23 + e20 e21 e22
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide19
Equation of Motion Summary
<latexit sha1_base64="+amA82fClC4t4m+fvpVoX5VQYZQ=">AAARrHicrVhbb9s2FGbbbe28m70+DXshFqxomiqwnaYNCgwosA0b8tIOSNIMiRtINGUL0S0kHccW/Cf3tsf9kx1S1F2W5W42bJPn8p2P5/DQtK3Qdbjo9/++d//BJ59+9vDR550vvvzq62+6vW/PeDBjhJ6SwA3YuWVy6jo+PRWOcOl5yKjpWS59b13/LPXvbynjTuCfiEVIR5458R3bIaYAUdB7+A+6RD6iaI4ICpAHTxPmYxSBnCOBpmilxgJs7uA9AukKXSnJFGQC7Feo04BCalHIligchQ1cpM7ZyKMOgWyBIDnwBg68FYcqAtkCQY55iiFnMoMc2TD3QNrsfYYssCz6Wsr3bKPvGOQ2vG60P1dVI+gaMZC6ek0MViB9JiChyvInjdzR6AFY+ArNB3uMTtQOwAp5pjg5YOMDPoZPG949+EykGCyYsjfhxdFC8aBgk1gP0AG822DPlM4AOVPxGMjfol/Qr/g70LxWfCyQTxSjCBBdGE1g/EznIq8NdcbkCu9Aj1VOAlXBUFXQV7LLGg1dqxkrGdVZLsfooCeQP9yCSdxlON1jGDxx2jc47ea8hZHOpqkth5hYP59U9GWEvUqMWC7XmuEU+fEcv3UMeQE/Y0BaM+SFNfISAq7haOT8y7kjBTkpyTOUpkpmNs21nKV75TYdzVtju6CxdD/KjnoN/SkjGTCTHW2Ax0Kdg0kG2u/yWeqVl97WSuda+l93NgN8A9YxT2OEMDZAnuVJnhsGyG8bI8rdlM+UDRp5fkVwYqxKZ+tmXjb07l3KQM4WhdmydcW2qwFVp0a/JuOxZrBWM1yrOWhZqXLGhi0yla20r/tHVioZ3aQjVunIxCrxYwWvom0RJ+8VVmwTi8wni9SmkzfVihbqQws1oYU60Ba5336HhLX9eFMrZf9Ll+az9hto4ntDvO5Q5dmo6IaqAizXA/UYhwqD1WK8BMlT0H4ANFl5+bm7EfFVA6uBZtVBm3ZBYrH3kbmRdXdR8g2X17wAiV+zhnL3HaszR9bP27DiF2tjHalY7b6/Ml35njRXNzh5K1t/o5JYzxTvQ41Wznv1lJErjCD6EjyeqtmdrtqxPm/39HgJdY/P8Ax1hZLv6xt9sxxX4g7Xxl3qiEuIF0fbzcVLWH1QZ+D2cQ8a4tbhJWdAuarNOfsYZocNzAxdg+Lu24T4shXPDK9ura9qMZI9kVUo2SNt61Rljyuxjxr5t8tyGTVBjPke6/uCUcO6vu+SblK/qq66O/39vnrg6mCgBztIP95ddf+6HAdk5lFfENfk/GLQD8UoMplwiEtXncsZp6FJrs0JvYChb3qUjyL1Z8MK/wiSMbYDBi9fYCXNe0Smx/nCs8DSM8WUl3VSWKe7mAn7aBQ5fjgT1CdxIHvmYhFg+c8FHjuMEuEuYGAS5gBXTKYmM4mgjMskDMpLrg7OhvuDw/3+H8OdN891Oh6h79EPsJUGsMneoN/RO3SKSHe3+7Z73v2zt9876V30RrHp/Xva5zEqPHr2v4n6QDY=</latexit>
where
2
Jxz (Jx Jy + Jz ) Jz (Jz Jy ) + Jxz Jz
1 = 2 = 3 =
Jxz Jz Jx Jxz
4 = 5 = 6 =
Jy Jy
2
(Jx Jy )Jx + Jxz Jx 2
7 = 8 = = Jx Jz Jxz
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide20
Quaternions
In Python, e needs to be normalized after applying the RK4 update step
<latexit sha1_base64="zGgi3pqOT8A34qCaifNvyB/8BMQ=">AAAHXXicjVRfj9tEEHePtCmmlB596AMvIxKqgnKRbSjtS1AlQILywFF6baU4Pa3tsbPK7tq3u7671Ofvwit8I574KoydP3fJBdSV4szOn9/Ob3Zmo0JwYz3v7xt7H3Ru3ure/tD96M7Hdz+5t//pK5OXOsajOBe5fhMxg4IrPLLcCnxTaGQyEvg6mn3f2F+fojY8Vy/tvMCJZJniKY+ZJdXxfud+WDAdqpyrBJUF+FnB4dxOczWAPvZBISYGbA4Rgsq1ZIK/wwRYalEDKwox5yoDO0V48cs3UBYJswjGYtHEoDKlRrIyC/3wAsOLkd933fDUFCzGyhs+jmXtrg936ezfuSyJy2wAZwgxUzswQjpW5+fg9yGaNzmgSlZJnJR0vlZEDWZUEUksYwPMgBtGmHFVUf6Z+qpebQvy0Py8hjDJbYX1sQdhuN74VzfB1c3XENKp63D34QjCVLO48usqILRNdBdoefAQDormc9J8NMG1+kbV2PTCtNQufRamYqVtFCcrHK9VbeSxzQoXfHDBBBcccDt7OIBQUMskbMGh6QjLmYDn9aWMdZPEe/BcQsEj/6C9rrfBl//DfLf3f9Rit/Pu6uzwvV4v2GbwnhVz292ql86mSB3afz5al+ZpfeXYt0EfmEpg6bZM7DuvPwR4ST1rMM7JTH0rIc1prM2q0WmE/MaL5oLmHfC8QM1RxTgABqdMlAh5ukYc+Z7n9QkOZTuxZ7me0RQJMYCotBRhLE9TMLmgBwEEnyH8+sOP/mMDsjS2GfDS0GiD6x7f63lDr11wXfCXQs9ZrsPj/T2fJiMuJU1xLJgxY98r7KRqeicWSPUiaJr5GctwLNAS14IRmQFIpqn+o2DocTWpMswlWj3fDCBRMYlmUrXvXQ1ftIlSrehHb1arvRpRMWnMXEbkSRc2Ndu2RrnLNi5t+nRScVWUlsq8OCgtRVPN5vGEhGuMrZiTwGLNiRzEU0aXToQISeFZnEtJl01zk2A9DibV5kj1/MuR6gV1vRmTYIon5GAs5aNRVCF1G1MZVbAabTtLKnPd/BGJtJLbZk0xC2sUVS/qbXPzltdjn/ITmNrwoueHmmdTkurNaoksJ6JTyePBWt7CYpG5hFojbQKNVa5wUk3nxZQu09Ztk/nbLXVdeBUM/W+HwW9B71mwbLfbzmfO584jx3eeOM+cn5xD58iJO+86f3T+7Px165/uze6d7t2F696NZcx9Z2N1H/wLwI9lCg==</latexit>
where J = 18 (1 kek2 )2 and where > 0. The second term forces kek ! 1.
In our experience, a value of = 1000 seems to work well, but a sti↵ solver
like ODE15s must be used
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide21
Runge-Kutta Integration
The objective is the numerically solve the di↵erential equation
<latexit sha1_base64="8aXZ2R7h4JEz5xbegxHt0Afjg9I=">AAAFuXicfVPdj9NGEDc5QqnpB7SPfVkaWt21IbJTtSDQSUh9KS+IojtAyqbR2h7bC+tdszu+S7T430Tq/9KHju3j7hLQrWR7PDO/+fjtTFIr6TCK/r022rs+vvHFzS/DW199/c23t+9899KZxqZwnBpl7OtEOFBSwzFKVPC6tiCqRMGr5O2fnf3VCVgnjT7CTQ3LShRa5jIVSKrVnZHhDgilCyw9R1jjqcywbH0cSd2GIddG6gw0hkclMJO8gRTlCTDpGJJCNxVYCqbUhjmjyNBpM5nnYAkkhWLwrulzhXwR8tyK1Gfr1mfY7uMBO2T5/pqEKWvoTR9O3hkj1So6OFyvopAvLxfxVCMUluLpgiUGS+ZkBo4VVJLrEqyHoAOe/cq41Ljy9NP+g30qjqLps/XCAZ9mnbCT5ZlBeMTYvS7aPSbqGoR1zOjLKU3et/qxu7uMEUEWcmNh2kGsWcuqN3VcWfKTFrIZpTlxtUjBR7Pffk+r9lLaF3D/1EqEjslmQA7tKiaouwQKqb1QstC/tEOnP3++VY/3j1auvaJhFrILSO98JT+McR4OyTrngyux611uQWfnZYer25NoFvWHfSrEZ8IkODvPaURjnpmUBk1jqoRziziqcemFRZkqIAIbB8ToW1HAQgEi2FrUYKesEpYYO5zPaJSXvgBTAdrNNoBELSpwS9/vUst+Ik3G6Brp0ch67WWEF5VzmyohT7re0u3aOuXnbIsG84dLL3XdIOh0SJQ3iqFh3WLS0ljaLdqjTIqUxkCmLC0F7Qs1RJE0nKamqgRxyesM2sV86Yd14nVHhVCTuL2Q5227jckgh3fk4JDqsaBo2a0UuiAG/eGuc0U0t92Hmsh9tWu2hBmsSeJftLtmbWzVLmKqT0GO/P0k5lYWJUntNluqMNRoWcl0ei7vxBKJuwh1Hmk70EIbDUtfbuqSLhOHIYt3R+pT4eV8Fv8xm/89nzyZn43bzeCH4MdgP4iDB8GT4K/geXAcpKMPo//2xns3xo/HYlyO3wyuo2tnmO+DrTN2/wMYyekU</latexit>
dx
(t) = f (x(t), u(t)), x(t0 ) = x0
dt
Integrating both sides gives
Z t
x(t) = x(t0 ) + f (x(⌧ ), u(⌧ )) d⌧
t0
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide22
RK1 Algorithm
The integral can most easily be approximated using Euler’s method
<latexit sha1_base64="Aw4rebxOu8doyCGQgdliCp8N+xI=">AAAD23icbVNLb9NAEHYTHsW8WjhyGVEBCTSVXQnBBakIISH1Uqo+ImVTa71eO6vYa2t3TBNZ4cIBhLjyx7jxM/gHjO1Q9cHKsj7NzDePb2fDIlUWPe/3Sqd77fqNm6u33Nt37t67v7b+4MjmpRHyUORpboYhtzJVWh6iwlQOCyN5FqbyOJy+q/3Hn6SxKtcHOC/kOOOJVrESHMkUrK/8YVYSSyc4qRjKGZ6qCCeLyveUXrgu07nSkdQIBxMJSqNMDE9BcA1ZbhEktyqdQyiBF4XJZyrjKCMordIJvC9TaZ5ZyCRO8shlI5dRhoCfhBD32Ez1I/oBa5nQCwe8H/d432Vj93zlt0LkJqKE6XzzLEmFg4PALk6QUs16DHnZ34SyBX22GdXgLDVFNmENp4lrUVvq4oy6zKQhfdJ/09ZCgclLJImbwWnYU6MQpQZuXRbKROmKpyrRzxcuwCzw4OkboGqB1wdKjjwBxsgzDPzaQ50E1XTgL6iRFvRb/yyYNszWCC+avonkMqmjswoX+lUW6EPqe7/UiRzslogcYmUsDkg0aZbiQ25gf9enIm6wtuFtec2Bq8Bfgg1nefaCtV8sygXJolGk3NqR7xU4rrhBJVK5cFlpZcHFlCdyRFDzTNpx1ezmAp6QJYKYysc5ddxYzzMqnlk7z0KKpNWZ2Mu+2vg/36jE+PW4Uroo6SJEWyguU8Ac6kWHSBkpkHYzUlzQdSkBYsINF0jPoRbBvzzyVXC0veW/3PI+bm/seEs5Vp1HzmOn5/jOK2fH+eDsOYeO6Aw7nztfO9+64+6X7vfujza0s7LkPHQunO7Pv8exNGc=</latexit>
Z b
f (⇠)d⇠ ⇡ (b a)f (a)
a
Accordingly,
Z t
f (x(⌧ ), u(⌧ )) d⌧ ⇡ Ts f (x(t Ts ), u(t Ts ))
t Ts
x0 = x(t0 )
X1 = f (xk 1 , uk 1 )
xk = xk 1 + Ts X1
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide23
RK2 Algorithm
To improve accuracy, the integral can be approximated using the trapezoidal
<latexit sha1_base64="CI7qswnPktC/hR68Iyle60fCHNY=">AAAFRnicpVTPj9NGFDYktNSl7VKOXJ66FMXdZGVHqtoLEtBLJS4U7cJKmWCNx2NnFHvGGj+zCVb+Oi49c+NP4NJDq6rXvrGzKy+0J0aW/fx+fu+9T5NUhaoxDN9duz4a3/js85tf+F/e+urrbw5uf/u8No0V8lSYwtizhNeyUFqeosJCnlVW8jIp5Itk/Yuzv3glba2MPsFtJZclz7XKlOBIqvj2iLFaUpTOcdUylBs8Vymudm0UKr3zfaaN0qnUCCcGVFlZ80oCF6KxXGyngCsJSqPMLS9AcA0JWSvy2qiSo0yhqZXOOze0vJKvjUrJ0zaF9NnCZxQb85cJZBO2UUFKL2B9PEySGQ9YITOcsIyqtdmEB0fZJAl27XzHrMpXGPhsOcT4SAhjU6pYbKeX+VucncT17iVSlc2EIW+CKTS9QCXpc1mzL+S8XYlE5QsX0sUH02YvBHDUZcIuDQaBc1w6JPec8h6oGhq91uZcQ21oAhKePYkAzXAyoBB47bNE5kq3ZVOg2+APu0+E/Ph/IPuMXaDuFPRDn4Gia6X3HYguH3UmdTqEOCQFLVY3pbREqOKCCY5ZYE2D5H5BinOrEKUe9MwLlWvKtolDuP8ACEgcBsCYfxZHTkHY4nY9i3aEpxf21jnch4G5b4WCrvpt4nWX9tLpyqCgJxa4Wkfgcu4JBX23F+CutEp7pcdx+Vmjczl70iByqKUwOp0R76SFUuLKpGAsrXzu+/HBYXgcdgc+FqK9cOjtz9P44C1LjaCBahQFr+tFFFa4bLlFJQpJ7CA2VVyseS4XJGpeynrZdtfADr4nTQoZFc8MAe60w4iWl3W9LRPyJAqu6g9tTvlftkWD2c/LVumqoRWKvlDWFI7S7k6BVFkpsNiSwAUtWgkQK07jRrp53BCiD1v+WHg+P45+PA5/mx8+nO7HcdO7633nTbzI+8l76P3qPfVOPTF6M3o/+nP01/j38R/jv8f/9K7Xr+1j7nhXzg3vXxQYsP4=</latexit>
rule Z b ✓ ◆
f (a) + f (b)
f (⇠)d⇠ ⇡ (b a)
a 2
Accordingly,
Z t
Ts ⇥ ⇤
f (x(⌧ ), u(⌧ ))d⌧ ⇡ f (x(t Ts ), u(t Ts )) + f (x(t), u(t))
t Ts 2
x0 = x(t0 )
X1 = f (xk 1 , uk 1 )
X2 = f (xk + T s X 1 , uk 1 )
1
Ts
xk = xk 1+ (X1 + X2 )
2
This is the Runge-Kutta second-order method or RK2
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide24
RK4 Algorithm
<latexit sha1_base64="GZOUfTyDiHTIwzJByaiGTJUCmiE=">AAAEknicnVNLb9NAEHabAMU82gI3LiMqIKGickLLoxLQqhw4cCjQl5QN0Xo9dla119buum1k+f/we7jxbxjHoUofFMRItmbn8e18szN+FktjPe/nzGyjee36jbmb7q3bd+7OLyze2zNprgXuijRO9YHPDcZS4a6VNsaDTCNP/Bj3/cOtyr9/hNrIVO3YUYb9hEdKhlJwS6bB4ux3ZpCyVGSHBbN4Yo9lYIdl8Uaq0nWZSqUKUFnYVIBHqMBHa1EDzzKdnshkDAPSQOpbTjUEkBupIvgqk8yk6qmBL3mM0OJUFOQERamQcc39NObtdZf1XCaVHfBvPoQtdiLbAf2A1fjAYgxti4Wai8J/zsviZcm0jIa2XXvCFm/DMqyG04F82S+L7u9Acoctvz05uaw/RWpniGAsVwHXASmaW4xGFRubwrGWFsFSxFmu3FxS9H/U3L265r+4z1H6gCE132U+RlIVPJaRela6B4MOPHkL4wsZo2O3PtITLEMNvDMwFTBFtk8JXHHzGOXFn1G6/4RSF7M6BUMAQMBT2cTPZaiCUzKDhSVvxRsLXFQ6E2XJmcj2YOEHC1KRJ/TQIubG9DpeZvsF11aKGEuX5QYzLg55hD1SFU/Q9IvxSpXwmCwBhKmmjwZlbJ3OKHhizCjxKZLmYmjO+yrjZb5ebsPX/UKqLLeoRH1RmMfVxFX7CYHUKGw8IoULGkEpQAxpXwRtnama0DlP+aKy113prK14n7tLG96kHXPOQ+eR03I6zitnw/nobDu7jmjMN9Ya7xrvmw+a683N5lYdOjszybnvnJHmp1/tAnSW</latexit>
Define
X1 = f (a)
✓ ◆
Ts a+b
X2 = f (a + X1 ) ⇡ f
2 2
✓ ◆
Ts a+b
X3 = f (a + X2 ) ⇡ f
2 2
X4 = f (a + Ts X3 ) ⇡ f (b)
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide25
RK4 Algorithm
The numerical integration routine can be written as
<latexit sha1_base64="DtpYXTUNloXgzSHZpJdYpPDfY98=">AAACRXicbVA9SwNBEN3z2/MrammzGASrcCdILAUbSwWjQi6Evb1Jbsne7rE7p4Yjf87G3s5/YGOhiK1uPgpNHFh4vJk3b+fFuRQWg+DFm5tfWFxaXln119Y3Nrcq2zvXVheGQ4Nrqc1tzCxIoaCBAiXc5gZYFku4iXtnw/7NHRgrtLrCfg6tjHWV6AjO0FHtShRZcCLVxbSMEB7wXiSYDsq6UAPfj5QWKgGF9CoFqooMjFNKKhRC14xWUKMLdOaUM0VjoPdGIIKizPp+u1INasGo6CwIJ6BKJnXRrjxHiebORiGXzNpmGOTYKplBwSUM/KiwkDPeY11oOqhYBrZVjlIY0APHJLSjjXvuxyP2t6JkmbX9LHaTGcPUTveG5H+9ZoGdk1YpVF64w/jYqFNIipoOI6WJMMBR9h1g3J0vOOUpM4yjC34YQjh98iy4PqqFx7Xg8qh6GkziWCF7ZJ8ckpDUySk5JxekQTh5JK/knXx4T96b9+l9jUfnvIlml/wp7/sH6way5A==</latexit>
<latexit sha1_base64="TZE/FdSy1ZV50a5erovwa5+IXgs=">AAADJHichVJdi9QwFE3r11q/ZvXRl+CgzLo6tF11RRAWfPFxhZ3dgelQ0jTthEnT0tzudij9Mb74V3zxwQ988MXfYtopizMVvBByOOeem9ybBJngCmz7l2FeuXrt+o2dm9at23fu3hvs3j9VaZFTNqGpSPNpQBQTXLIJcBBsmuWMJIFgZ8HyXaOfnbNc8VSewCpj84TEkkecEtCUv2u88RTTLhnDovKAlXDBQ1jU1SGXtWV5AYu5rIjgsXxaWxiXvo2fvMXlCHx7D3uepqa+01DRqPSr5XOnfoaLNbjU3Q0d433sRTmh1Ymv6sqtdYG+5+B/HrfvedHz6Oym1nZq6S/bLrrEjdqvajxqWtrHbnPzdjvQmy6/Z3lMhpfT8AdDe2y3gfvA6cAQdXHsD757YUqLhEmggig1c+wM5hXJgVPBassrFMsIXZKYzTSUJGFqXrWPXOPHmglxlOZ6ScAt+7ejIolSqyTQmQmBhdrWGvJf2qyA6PW84jIrgEm6PigqBIYUNz8GhzxnFMRKA0Jzru+K6YLoeYH+V80QnO2W++DUHTsvx/YHd3hkd+PYQQ/RIzRCDjpER+g9OkYTRI2Pxmfjq/HN/GR+MX+YP9epptF5HqCNMH//AQE47Tg=</latexit>
ẋ = f (x, u)
X1 = f (xk 1 , uk 1 )
Ts <latexit sha1_base64="sUMv1nE2Be11qcjxtvGNJz17Btk=">AAACHnicdVDLSgMxFM34tr6qLt1cFKEi1MxotV0IghuXClZH2jJk0owGMw+SjFiGfoYrN/6KGxeKCK507Sf4AZqxCip6ILmHc+4lucdPBFca42err39gcGh4ZLQwNj4xOVWcnjlQcSopq9NYxNL1iWKCR6yuuRbMTSQjoS/YoX+6nfuHZ0wqHkf7upOwVkiOIx5wSrSRvGIFzj0bNs2NYRmagSQ02/dUN1vvQsk11jI4ruf0yqoprre2VPCKC7jsVHBtowq4XMF2bc0xBONqbR2DbUiOhS24WHl5PXrb9YqPzXZM05BFmgqiVMPGiW5lRGpOBesWmqliCaGn5Jg1DI1IyFQr+1ivC4tGaUMQS3MiDR/q94mMhEp1Qt90hkSfqN9eLv7lNVIdVFsZj5JUs4j2HgpSATqGPCtoc8moFh1DCJXc/BXoCTERaZNoHsLXpvA/OXDKdqWM90waJdTDCJpD86iEbLSBttAO2kV1RNEluka36M66sm6se+uh19pnfc7Moh+wnt4BXFehYQ==</latexit>
Ts
X2 = f (xk 1 + X1 , uk 1 ) x1 = x0 +
6
(X1 + 2X2 + 2X3 + X4 ) <latexit sha1_base64="DKpd5lTM5wGiFoKSGvXTyGv9BXI=">AAAB6nicdZDLSgMxFIYz9VbrrepGcBMsQldDplZHVxbcuKxoL9AOJZOmbWgmMyQZoQx9BDcuFHHrwufwEdz5BD6FYKatoKI/BH6+/xxyzvEjzpRG6M3KzM0vLC5ll3Mrq2vrG/nNrboKY0lojYQ8lE0fK8qZoDXNNKfNSFIc+Jw2/OFZmjeuqVQsFFd6FFEvwH3BeoxgbdBls1Pu5AvIdsvlExdBZKOJUuMcldwD6MxI4fTjJXzfeQ6qnfxruxuSOKBCE46Vajko0l6CpWaE03GuHSsaYTLEfdoyVuCAKi+ZjDqG+4Z0YS+U5gkNJ/R7R4IDpUaBbyoDrAfqd5bCv7JWrHvHXsJEFGsqyPSjXsyhDmG6N+wySYnmI2MwkczMCskAS0y0uU7OHOFrU/i/qZds59BGF06hUgRTZcEu2ANF4AAXVMA5qIIaIKAPbsAduLe4dWs9WI/T0ow169kGP2Q9fQIxupId</latexit>
X4
2
Ts x 0 + Ts X3
<latexit sha1_base64="3FovGoRD9OlAmWRb8ZT2dDMxOrQ=">AAAB8nicbZDLSgMxFIYzXmu9Vd0IboJFKAhlRhHdWXDjskJvMB2GTJppQ3MZkoxYhj6GGxeKuHHhU/gI7nwCn0IwvSy09YfAx/+fQ845UcKoNq776SwsLi2vrObW8usbm1vbhZ3dhpapwqSOJZOqFSFNGBWkbqhhpJUognjESDPqX43y5i1RmkpRM4OEBBx1BY0pRsZa/l3oHtdCDVvhaVgoumV3LDgP3hSKl9/v8mv/lVfDwke7I3HKiTCYIa19z01MkCFlKGZkmG+nmiQI91GX+BYF4kQH2XjkITyyTgfGUtknDBy7vzsyxLUe8MhWcmR6ejYbmf9lfmriiyCjIkkNEXjyUZwyaCQc7Q87VBFs2MACworaWSHuIYWwsVfK2yN4syvPQ+Ok7J2V3RuvWCmBiXLgAByCEvDAOaiAa1AFdYCBBPfgETw5xnlwnp2XSemCM+3ZA3/kvP0A3biUsg==</latexit>
X3 = f (xk 1 + X2 , uk 1 )
2
X4 = f (xk 1 + Ts X3 , uk 1 )
X3
<latexit sha1_base64="aaaUefmlnct3FKi/ZzA9tyLK6BA=">AAAB6nicdZDLSgMxFIYzXmu9Vd0IboJF6GrItNXRlQU3LivaC7RDyaRpG5rJDElGKEMfwY0LRdy68Dl8BHc+gU8hmGkrqOgPgZ/vP4ecc/yIM6URerPm5hcWl5YzK9nVtfWNzdzWdl2FsSS0RkIeyqaPFeVM0JpmmtNmJCkOfE4b/vAszRvXVCoWiis9iqgX4L5gPUawNuiy2Sl1cnlku+XyiYsgstFEqXGOim4JOjOSP/14Cd93n4NqJ/fa7oYkDqjQhGOlWg6KtJdgqRnhdJxtx4pGmAxxn7aMFTigyksmo47hgSFd2AuleULDCf3ekeBAqVHgm8oA64H6naXwr6wV696xlzARxZoKMv2oF3OoQ5juDbtMUqL5yBhMJDOzQjLAEhNtrpM1R/jaFP5v6kXbObTRhZOvFMBUGbAH9kEBOMAFFXAOqqAGCOiDG3AH7i1u3VoP1uO0dM6a9eyAH7KePgEwNpIc</latexit>
Ts
xk = xk 1 + (X1 + 2X2 + 2X3 + X4 ) <latexit sha1_base64="iCLyuHr3DNRgguAfU5pwGmudkCE=">AAAB9HicbVDLSgNBEOz1mcRX1KOXwSAEhLgbED0GvHiMmBckyzI7mU2GzM6uM7PBuOQ7vHhQxKs/4s2D4N84eRw0saChqOqmu8uPOVPatr+tldW19Y3NTDa3tb2zu5ffP2ioKJGE1knEI9nysaKcCVrXTHPaiiXFoc9p0x9cTfzmkErFIlHTo5i6Ie4JFjCCtZHce88+rXkKtbzyWdnLF+ySPQVaJs6cFCqZh6+P22q26uU/O92IJCEVmnCsVNuxY+2mWGpGOB3nOomiMSYD3KNtQwUOqXLT6dFjdGKULgoiaUpoNFV/T6Q4VGoU+qYzxLqvFr2J+J/XTnRw6aZMxImmgswWBQlHOkKTBFCXSUo0HxmCiWTmVkT6WGKiTU45E4Kz+PIyaZRLznnJvnEKlSLMkIEjOIYiOHABFbiGKtSBwB08wjO8WEPryXq13matK9Z85hD+wHr/Ac15k7Q=</latexit>
x0 + Ts X2 /2
6 <latexit sha1_base64="E9QAZqbo1kFr0eOp+BwM+ABk00I=">AAAB6nicdZDLSgMxFIYz9VbrrepGcBMsQlfDTK2Oriy4cVnRXqAdSiZN29BkMiQZoQx9BDcuFHHrwufwEdz5BD6FYKatoKI/BH6+/xxyzgkiRpV2nDcrMze/sLiUXc6trK6tb+Q3t+pKxBKTGhZMyGaAFGE0JDVNNSPNSBLEA0YawfAszRvXRCoqwis9iojPUT+kPYqRNuiy2Sl18gXH9srlE8+Bju1MlBr3qOQdQHdGCqcfL+J955lXO/nXdlfgmJNQY4aUarlOpP0ESU0xI+NcO1YkQniI+qRlbIg4UX4yGXUM9w3pwp6Q5oUaTuj3jgRxpUY8MJUc6YH6naXwr6wV696xn9AwijUJ8fSjXsygFjDdG3apJFizkTEIS2pmhXiAJMLaXCdnjvC1Kfzf1Eu2e2g7F26hUgRTZcEu2ANF4AIPVMA5qIIawKAPbsAduLeYdWs9WI/T0ow169kGP2Q9fQIuspIb</latexit>
X2
<latexit sha1_base64="LZFvjgMe9FqLLp7gQ40Xcjk5y0g=">AAAB9HicbVDLSgNBEOz1mcRX1KOXwSAEhLgbED0GvHiMmBckyzI7mU2GzM6uM7PBuOQ7vHhQxKs/4s2D4N84eRw0saChqOqmu8uPOVPatr+tldW19Y3NTDa3tb2zu5ffP2ioKJGE1knEI9nysaKcCVrXTHPaiiXFoc9p0x9cTfzmkErFIlHTo5i6Ie4JFjCCtZHce88+rXkKtTznrOzlC3bJngItE2dOCpXMw9fHbTVb9fKfnW5EkpAKTThWqu3YsXZTLDUjnI5znUTRGJMB7tG2oQKHVLnp9OgxOjFKFwWRNCU0mqq/J1IcKjUKfdMZYt1Xi95E/M9rJzq4dFMm4kRTQWaLgoQjHaFJAqjLJCWajwzBRDJzKyJ9LDHRJqecCcFZfHmZNMol57xk3ziFShFmyMARHEMRHLiAClxDFepA4A4e4RlerKH1ZL1ab7PWFWs+cwh/YL3/AMvzk7M=</latexit>
x0 + Ts X1 /2
<latexit sha1_base64="zP8TynTvYsd/mKEizQk9XCG+Fog=">AAACRnicbVCxThtBEJ0zCZAjIQ4p06xiIaXBukNEUCKlQXJjEAYk38na2xv7VuztnnbnINbJX5eGmo5PSJOCCNFmbVwkkNGu9PRmnubNyyolHUXRXdBaefV6dW39Tbjx9t3m+/aHrTNnaitwIIwy9iLjDpXUOCBJCi8qi7zMFJ5nl9/m/fMrtE4afUrTCtOST7QcS8HJU6N2mjj0Ij2hokkIv9O1zKmYNftSz8Iw0UbqHDWx00I65h8VyE5qPcGdXk3E2dgboWLH2BwtK5EKk7MkCY1lJ729cNTuRN1oUewliJegA8vqj9q3SW5EXfqVQnHnhnFUUdpwS1IonIVJ7bDi4pJPcOih5iW6tFnEMGPbnsm9I+u/t7xg/1Y0vHRuWmZ+suRUuOe9Ofm/3rCm8UHaSF3VhFo8LRrXipFh80xZLi0KUlMPuLDSe2Wi4JYL8snPQ4ifn/wSnO1246/d6Hi3cxgt41iHT/AZvkAM+3AIR9CHAQj4AT/hHn4HN8Gv4CF4fBptBUvNR/inWvAHEQmxQg==</latexit>
<latexit sha1_base64="aLqk5NZhlFiNnXH6GFw6T3qMn60=">AAAB6nicdZDLSgMxFIYz9VbrrepGcBMsQldDplZHVxbcuKxoL9AOJZOmbWhmMiQZoQx9BDcuFHHrwufwEdz5BD6FYKatoKI/BH6+/xxyzvEjzpRG6M3KzM0vLC5ll3Mrq2vrG/nNrboSsSS0RgQXsuljRTkLaU0zzWkzkhQHPqcNf3iW5o1rKhUT4ZUeRdQLcD9kPUawNuiy2XE6+QKy3XL5xEUQ2Wii1DhHJfcAOjNSOP14Ee87z0G1k39tdwWJAxpqwrFSLQdF2kuw1IxwOs61Y0UjTIa4T1vGhjigyksmo47hviFd2BPSvFDDCf3ekeBAqVHgm8oA64H6naXwr6wV696xl7AwijUNyfSjXsyhFjDdG3aZpETzkTGYSGZmhWSAJSbaXCdnjvC1Kfzf1Eu2c2ijC6dQKYKpsmAX7IEicIALKuAcVEENENAHN+AO3FvcurUerMdpacaa9WyDH7KePgEtLpIa</latexit>
X1
t0 t0 + T s
<latexit sha1_base64="BWZB4SsmNApZnxFfxbbKWNUc8VY=">AAAB7nicbZDJSgNBEIZrXGPcol4EL4NBCAhhRhC9GfDiMUI2SIahp9OTNOll6O4RwpCH8OJBEa95Dh/Bm0/gUwh2loMm/tDw8f9VdFVFCaPaeN6ns7K6tr6xmdvKb+/s7u0XDg4bWqYKkzqWTKpWhDRhVJC6oYaRVqII4hEjzWhwO8mbD0RpKkXNDBMScNQTNKYYGWs1Teid10IdFope2ZvKXQZ/DsWb73f5dTzm1bDw0elKnHIiDGZI67bvJSbIkDIUMzLKd1JNEoQHqEfaFgXiRAfZdNyRe2adrhtLZZ8w7tT93ZEhrvWQR7aSI9PXi9nE/C9rpya+DjIqktQQgWcfxSlzjXQnu7tdqgg2bGgBYUXtrC7uI4WwsRfK2yP4iysvQ+Oi7F+WvXu/WCnBTDk4gVMogQ9XUIE7qEIdMAzgEZ7hxUmcJ+fVeZuVrjjzniP4I2f8A6Wvk3w=</latexit>
<latexit sha1_base64="CxH18uahsU8uOpFsMJxGPSp7SnE=">AAAB6nicbZC7SgNBFIbPxluMt6iNYDMYhFRhVxDtDNhYRjQXSJYwO5lNhsxlmZkVQsgj2FgoYmvhc/gIdj6BTyE4uRSa+MPAx/+fw5xzooQzY33/08ssLa+srmXXcxubW9s7+d29mlGpJrRKFFe6EWFDOZO0apnltJFoikXEaT3qX47z+h3Vhil5awcJDQXuShYzgq2zbmzbb+cLfsmfCC1CMIPCxfe7+jp4E5V2/qPVUSQVVFrCsTHNwE9sOMTaMsLpKNdKDU0w6eMubTqUWFATDiejjtCxczooVto9adHE/d0xxMKYgYhcpcC2Z+azsflf1kxtfB4OmUxSSyWZfhSnHFmFxnujDtOUWD5wgIlmblZEelhjYt11cu4IwfzKi1A7KQWnJf86KJSLMFUWDuEIihDAGZThCipQBQJduIdHePK49+A9ey/T0ow369mHP/JefwANjZID</latexit>
<latexit sha1_base64="FsLEFliRXkmMkFwwb8JyrYgl+rE=">AAAB8HicbZDLSgMxFIbP1Ftbb1WXboJFKAh1piC6LLhxWbEXpR2GTJq2oUlmSDJCHfoUblwo4tZXcedC8G1MLwtt/SHw8f/nkHNOGHOmjet+O5mV1bX1jWwuv7m1vbNb2Ntv6ihRhDZIxCN1G2JNOZO0YZjh9DZWFIuQ01Y4vJzkrXuqNItk3Yxi6gvcl6zHCDbWujOBe1IP9GklKBTdsjsVWgZvDsVq9uHr46aWqwWFz043Iomg0hCOtW57bmz8FCvDCKfjfCfRNMZkiPu0bVFiQbWfTgceo2PrdFEvUvZJg6bu744UC61HIrSVApuBXswm5n9ZOzG9Cz9lMk4MlWT2US/hyERosj3qMkWJ4SMLmChmZ0VkgBUmxt4ob4/gLa68DM1K2Tsru9desVqCmbJwCEdQAg/OoQpXUIMGEBDwCM/w4ijnyXl13malGWfecwB/5Lz/AJTKkn8=</latexit>
t0 + Ts /2
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide26
DYNAMICS AND RK4
IMPLEMENTATION
See example code
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide27
Project
<latexit sha1_base64="d4tahC4J1Vwn/CkrRMuajdZlnJE=">AAAFg3icjVRbTxNBFF6kVVxvoI++TKQaiFhbxOCLCYSQqIkJRgok0DSzs2fbCbMz61wKSwP/w7/lm//GM7OtlIuJ+7Jnz5zL931zziaF4Ma2Wr9n7szW6nfvzd2PHzx89PjJ/MLTPaOcZtBhSih9kFADgkvoWG4FHBQaaJ4I2E+Ot/z5/hC04Uru2rKAbk77kmecUYuu3sLsz6ME+lyOQLocNLVwHh9xC3n8OS8E5CAtsQMgXzf3CPxwIcsQlZFceZP0+RAk4ZJsTw4vlt4122vLmKWV6w+I/1xfbhKyaQy2QD+tSnJZOGuIVeErc5KFilRD5VDI0BAqU+zlcaBdoCSQTlI8JuzszUSlJck0zaFJtgZU9oGiAqSg3mWRPzED5USK8Uy4tOqQU2NWKmvSAJsVWqWO2UASRdWW05VwUGHm+C0IUzLllRaIkwBlA2Isqoc8O6YqP9X8r0qbRQGYeXqxjYFxXElN9kDzrLxU5jahvSxMaQ3MkqTEWikf8tRRIUpiwFou+/+UTSg8DBjpKQ+KUyKVPAOtyJAKByEcOQ1RHl+oxPHCmcouIY1R8HAJWhWae7ITBvF3TATS+NIbnZ6dN3wY1n/jGwSBETu6+qVWhqmCM+zl8CqxUwL2BFAbrYQIKEp6gtLs4g2DsQEIMTx3Igiy4qletkEigQPmxYWgiGDCakIdITdEIxRuyOo9vCp2BU2qm5A87WlYKB4YxDZ9WycDDLxK25JrtP+zcHyEkzG1hqQ3v9hqtsJDbhrtsbEYjZ+d3vyvo1Qx55kzgbN92G4VtjuiOMJM+L12BgrKjmkfDtGUOJ2mOwr/kHPyEj1pGOZM4c4H73TGiObGlHmCkTm1A3P9zDtvOzt0NvvQHYVlB8mqRpkTYYnxh0RS7mcapzjllGlcKpyOAa4O85sTowjt65RvGnurzfb7Zuvb6uJGayzHXPQ8ehEtRe1oPdqIPkU7USditaj2qva21qrX66/rq/W1KvTOzDjnWXTlqX/8A74L05M=</latexit>
2. Verify that the equations of motion are correct by individually setting the
forces and moments along each axis to a nonzero value and convincing
yourself that the motion is appropriate.
3. Since Jxz is non-zero, there is gyroscopic coupling between roll and yaw.
To test your simulation, set Jxz to zero and place nonzero moments on l
and n and verify that there is no coupling between the roll and yaw axes.
Verify that when Jxz is not zero, there is coupling between the roll and
yaw axes.
Beard & McLain, “Small Unmanned Aircraft,” Princeton University Press, 2012 Chapter 3: Slide28