From Control Model to Program: Investigating Robotic Aerial Vehicle Accidents with MAYDAY
Taegyu Kim1, Chung Hwan Kim2, Altay Ozen1, Fan Fei1, Zhan Tu1, Xiangyu Zhang1, Xinyan Deng1, Dave (Jing) Tian1, Dongyan Xu1
1Purdue University 2UT Dallas
From Control Model to Program: Investigating Robotic Aerial Vehicle - - PowerPoint PPT Presentation
From Control Model to Program: Investigating Robotic Aerial Vehicle Accidents with M AYDAY Taegyu Kim 1 , Chung Hwan Kim 2 , Altay Ozen 1 , Fan Fei 1 , Zhan Tu 1 , Xiangyu Zhang 1 , Xinyan Deng 1 , Dave (Jing) Tian 1 , Dongyan Xu 1 1 Purdue
1Purdue University 2UT Dallas
Sensor Module Mission Module Control Program Observed vehicle states in “6DoFs” Physical Environment Control Station Control Model Aerodynamics Motor
Control-Semantic Bug
inside control program
implementation of control model 𝑨 𝑧 𝑦 𝑧𝑏𝑥 𝑠𝑝𝑚𝑚 𝑞𝑗𝑢𝑑ℎ
Domain Gap
Control Model
Control
Attack impact
Control Program
Program
Root Cause
Reference Velocity Actual Velocity
20 40 60 80 4800 4900 5000 5100 5200
Control Loop Iteration Velocity (cm/s)
Time Gap
Attack CMD
Control-level Log
Impact
Control Program (Source Code) Program Instrumentation Program Analysis Crash Log
Offline Analysis & Instrumentation Runtime Logging Post-Accident Investigation
Program-level Investigation Control-level Investigation Control Variable Dependency Graph (CVDG) Result
6DoF Inter- dependency between controllers Cascading controller
x 4
X-axis Cascading Controller Y-axis Cascading Controller Z-axis Cascading Controller Pitch Cascading Controller Roll Cascading Controller
Motor Controller
Yaw Cascading Controller P S M
: Sensor Input : Mission Input : Parameter Input
ANGLE Controller
𝑦𝜔 ሶ 𝑦𝜔 ሷ 𝑦𝜔 𝑠𝜔 ሶ 𝑠𝜔 ሷ 𝑠𝜔 𝑙𝜔 ሶ 𝑙𝜔 ሷ 𝑙𝜔
VEL Controller ACCEL Controller
P S M
ሶ 𝑦𝑦 ሷ 𝑦𝑦 ሶ 𝑠
𝑦
ሷ 𝑠
𝑦
POS Controller
𝑦𝑦 𝑠
𝑦
𝑙𝑦 ሶ 𝑙𝑦 ሷ 𝑙𝑦
VEL Controller ACCEL Controller
P S M
ሶ 𝑦𝑧 ሷ 𝑦𝑧 ሶ 𝑠
𝑧
ሷ 𝑠
𝑧
POS Controller
𝑦𝑧 𝑠
𝑧
𝑙𝑧 ሶ 𝑙𝑧 ሷ 𝑙𝑧
VEL Controller ACCEL Controller
P S M
ANGLE Controller
𝑦𝜒 𝑠
𝜒
𝑙𝜒 ሶ 𝑦𝜒 ሶ 𝑠
𝜒
ሶ 𝑙𝜒
VEL Controller
ሷ 𝑦𝜒 ሷ 𝑠
𝜒
ሷ 𝑙𝜒
ACCEL Controller
P S M
ANGLE Controller
𝑦𝜄 𝑠𝜄 𝑙𝜄 ሶ 𝑦𝜄 ሶ 𝑠𝜄 ሶ 𝑙𝜄
VEL Controller
ሷ 𝑦𝜄 ሷ 𝑠𝜄 ሷ 𝑙𝜄
ACCEL Controller
P S M
POS Controller
𝑦𝑨 ሶ 𝑦𝑨 ሷ 𝑦𝑨 𝑠
𝑨
ሶ 𝑠
𝑨
ሷ 𝑠
𝑨
𝑙𝑨 ሶ 𝑙𝑨 ሷ 𝑙𝑨
VEL Controller ACCEL Controller
P S M 𝜒 = 𝑏𝑢𝑏𝑜 − ሷ 𝑦𝑡𝑗𝑜𝜔 + ሷ 𝑧𝑑𝑝𝑡𝜔 𝜄 = −𝑏𝑢𝑏𝑜 ሷ 𝑦𝑑𝑝𝑡𝜔 + ሷ 𝑧𝑡𝑗𝑜𝜔 S
Control Variable Dependency Graph (CVDG)
void AC_PosControl::rate_to_accel_z( … vel_err.z = vel_target.z p = * vel_err.z; accel_target.z = accel_ff.z + p ; …
POS Controller
𝑨
𝑨
𝑨
VEL Controller ACCEL Controller
P S M
: Parameter : Vehicle state : Reference
ሶ 𝑦𝑨 ሶ 𝑠
𝑨
ሶ 𝑙𝑨
Control Model
P S M
: Sensor input : Mission input : Parameter input
Control Program
_p_velz._kP()
If err.z -= cur.z; else err.z = 0.0; p = kP* err.z;
200 400 600 800 1000 8000 15000 22000 29000 36000 X-axis Velocity
Initial Digression
Investigation
: Reference : Actual state
Initial Digression
Control Loop Iteration
Initial Digression
Investigation
200 400 600 800 1000 8000 15000 22000 29000 36000 X-axis Velocity
Initial Digression
: Reference : Actual state
Control Loop Iteration
Program-level Corruption Path
Initial Digression
Investigation
200 400 600 800 1000 8000 15000 22000 29000 36000 X-axis Velocity
Initial Digression
: Reference : Actual state
Control Loop Iteration
Attack Input Attack Input
200 400 600 800 1000 8000 15000 22000 29000 36000 X-axis Velocity Control Loop Iteration
Initial Digression Attack Input
Control-Level Log Program-Level Log
Control gain kP
corruption path: 34