From Control Model to Program: Investigating Robotic Aerial Vehicle Accidents with MAYDAY
Overview
- 现有问题
- log —— high-level vehicle control states and events,without control program execution
- capability —— 从控制器异常到程序变量损坏再到程序错误位置的能力缺失
事后调查、跨域
Introduction
导致RAVs事故的原因(包括但不限于)
- 物理原因:物理组件故障、环境干扰、传感器硬件限制等
- 通用错误:缓冲区溢出
- 特殊领域的控制语义bug:源于控制程序中实现底层RAV控制模型的编程错误
第三种难以检查
- 触发事件发生后,对车辆的物理影响没有立即发生
- 难以在日志中找到触发事件
- 难以在控制程序中定位
提出了MAYDAY
- 支持
- 支持飞行中控制程序执行记录日志
- 基于控制和程序层次的日志可以追溯到导致事故的控制语义错误
- 两步研究
- control-level
- 第一个出错的控制器
- 导致该控制器功能出错的控制变量序列
- program-level
- 使用control层的输出和控制模型-程序映射来缩小程序日志的分析范围
- 确定控制程序基本块的非常小的子集
- control-level
贡献
- 形式化控制模型为一个控制变量依赖关系图(CVDG),弥合了控制级和程序级变量与数据流之间的语义差距,开发了一个实现CVDG引导的程序执行日志记录工具
- 对于控制程序跟踪(运行时),利用RAV本质上较低的控制器频率,使得在运行时使用细粒度控制程序执行日志变得实用
- 对于控制程序调试(事故后),开发了一个两阶段事故调查流程,其中控制级别的调查确定了第一个故障控制器,并推断了其控制变量损坏路径;程序级调查将在“模型程序”映射的指导下,沿着错误本地化的损坏路径跟踪程序
- 分析了10起RAV事故
背景和模型
RAV控制模型