Autonomous and Robotics Systems (ARSs) are widespread, complex, and increasingly coming into contact with the public. Many of these systems are safety-critical, and it is vital to detect software errors to protect against harm. We propose a family of novel techniques to detect unusual program executions and incorrect program behavior. We model execution behavior by collecting low-level signals at run time and using those signals to build machine learning models. These models can identify previously-unseen executions that are more likely to exhibit errors. We describe a tractable approach for collecting dynamic binary runtime signals on ARSs, allowing the systems to absorb most of the overhead from dynamic instrumentation. The architecture of ARSs is particularly well-adapted to hiding the overhead from instrumentation. We demonstrate the efficiency of these approaches on ARDUPILOT -- a popular open-source autopilot software system -- and HUSKY -- an unmanned ground vehicle -- in simulation. We instrument executions to gather data from which we build supervised machine learning models of executions and evaluate the accuracy of these models. We also analyze the amount of training data needed to develop models with various degrees of accuracy, measure the overhead added to executions that use the analysis tool, and analyze which runtime signals are most useful for detecting unusual behavior on the program under test. In addition, we analyze the effects of timing delays on the functional behavior of ARSs.
翻译:自主和机器人系统(ARS)非常广泛、复杂,而且日益与公众接触。许多这些系统都是安全关键系统,对检测软件错误以防范伤害至关重要。我们提出一套新颖技术来检测不寻常的方案执行和不正确的程序行为。我们通过在运行时收集低水平信号并利用这些信号建立机器学习模型来模拟执行行为。这些模型可以识别以往未见的处决,而这种处决更有可能显示错误。我们描述了收集自动遥感系统动态双时间运行信号的可移植方法,使系统能够吸收大多数动态仪器的间接费用。自动遥感系统的结构特别适合将间接费用隐藏在仪器之外。我们展示了在ARGUPILOT -- -- 一个受欢迎的开放源自动操作软件系统 -- 和HUSKY -- -- 一个无人驾驶的地面飞行器 -- -- 模拟中采用这些方法的效率。我们用这些模型收集数据,用来建立监督的处决机械学习模型,并评估这些模型的准确性。我们还分析了开发模型所需的培训数据数量,其精确度不同,测量A型仪器结构特别适合隐藏。我们用功能性动作分析方法分析模型的多数时间,用来分析工具分析。我们用来分析在异常行为程序下用来分析。