
引用
Arnold, James, and Rob Alexander. "Testing autonomous robot control software using procedural content generation." In International Conference on Computer Safety, Reliability, and Security, pp. 33-44. Springer, Berlin, Heidelberg, 2013.
一、背景
我们需要确保自主机器人(AR)的行为是安全的。AR 会影响周围的环境从而影响自己未来的行为。所以将 AR 置于线性场景(表示为一系列刺激)中来测试 AR,并检查所得行为的安全性的方法是不充分的。
因此需要了解从给定的起点如何AR的行为如何进一步发展。因此,需要通过生成情境(包括地图,对等实体以及任务或目标的组合)来测试 AR,可以将(模拟的)AR 放入其中。模拟情况可以提供对 AR 动作的反应,而不是提供固定的刺激顺序。鉴于这种情况,我们可以评估 AR 是否实现安全行为。 基于情境的测试存在两大障碍:①创建大量基于情境的测试需要花费很大的精力。②测试仪具可能与软件有相同的“盲点”。将 PCG( Procedural Content Generation)技术应用于测试 AR 控制软件,解决了手动创建内容过于耗时或昂贵的情况。使用为电影和视频游戏行业开发的程序内容生成来创建各种各样的测试环境。我们在 Player / Stage 机器人模拟器中执行这些操作,并使用基于事件的评分系统自动评估它们的安全性。
二、解决的问题
·在测试自动机器人控制算法时减少手动工作。
·使用基于事件的评分系统自动评估AR的安全性。
·分析揭示了SND(平滑接近图)控制算法的弱点。
三、方法
基本思想:使用 PCG 创建情境,然后在模拟器中运行它们,以观察机器人 (特别是其控制机器人的控制软件)在其中的行为。
该过程分三个阶段进行(如下图一所示):

关于滤波器:为了生成表示地形和构建结构的环境首先使用 Perlin 噪声过程创建 2D 噪声图。简单的管道和过滤器架构,可以应用过滤器效果并任意链接以生成表示地形的 最终输出。在当前的工具中,我们使用两个滤波器:一个像素化滤波器,使噪声更细粒度;一个阈值滤波器。图 1 显示了滤波器的效果。

图1 –环境生成期间可用的后处理过滤器的效果
关于路径的算法:为了生成路径,规划器随机选择一个通畅的点,然后在机器人的初始位置和所选点之间应用A *寻路算法[12]。如果找不到可航路线,则丢弃终点,并选择新的终点。如果在配置文件中指定了最小路由长度,则附加其他端点,直到满足约束为止。寻路算法生成具有大量航路点的完整,可导航的路线。Ramer–Douglas–Peucker算法用于减少航路点的数量,既减少了情况的存储空间又迫使机器人 做一些在线全球路径规划,以避免障碍,从而增加其运动算法的挑战。
关于守护进程:故障由一个守护进程检测,该守护进程持续监视模拟环境。守护进程独立于机器人控制器代码,可以检测漫游、路由完成、失速(这是由机器人与地形或另一机器人碰撞时产生的阶段)、航路点到达和不安全接近(在两个机器人之间)。
关于日志和风险评分:日志是可读的,但是非常长,并且每运行一种情况都会生成一个日志。为了指导工程师了解日志中最有趣的运行,开发了一个根据运行中每个日志事件的有趣程度(即安全重要性)对运行进行评分的过程。每次运行的分数是通过每次触发事件时应用特定于事件的惩罚得出的。惩罚的适当值是主观的,并且高度依赖于所评估的控制算法的特征和机器人将在其中操作的上下文。在这个项目的案例研究中使用的值是通过反复试验来调整的。例如,如果两个机器人进入一个不安全的接近,则加上10分的惩罚,并且在接近的持续时间内再加上每秒1分的惩罚。第6节提出了一种进化或学习权重的思想。
四、实验平台与技术
实验平台:Player/Stage
Player 是一个抽象库,为机器人传感器和执行器硬件提供标准化接口。Player还具有客户端/服务器架构,允许控制代码通过网络连接执行,而不是仅在机器上运行。Stage 是一个开源机器人模拟环境,允许一个或多个机器人在 2D 世界中探索 和交互。它通常与 Player 项目结合使用,因为它为 Player 定义的许多接口提供虚拟化硬件。Stage可以精确地模拟物理硬件上常见的一系列传感器,例如激光测距仪,并通过精确的碰撞检测模拟真实物理。
技术:PCG技术
PCG是程序生成游戏内容的简称,它使用了随机或者伪随机数的技术给游戏带来了无限的可能。相比于传统的由设计师将游戏世界中的一草一木都精心配制,PCG的方法是去配置一些生成的规则,然后由生成算法自动去生成游戏世界。
要求:情境生成器需要能够生成静态地形,包括地形类型的合理变化,如岩石沙漠,洞穴系统和城市区域。它还需要产生移动障碍物,例如同行机器人,因为这些障碍物特别难以感知和适当地响应。
五、实验过程
在案例研究中,我们实现了一个简单的机器人控制器,它将简单的路径跟踪与平滑的接近图(SNDs)相结合,以避免碰撞和基本的反应式导航。该控制器是在虚拟的Pioneer 3-AT机器人上实现的配备了SICK LMS200激光测距仪;Stage为此提供了一个模型。该机器人为四轮驱动,采用打滑转向,速度可达0.8m / s。尽管配备了声纳阵列,但我们使用激光测距仪进行障碍物检测,因为它提供了面向前方的180°视野,最大感应范围为10m且精确到最接近的厘米。
在实验中,我们生成并运行了500种情境,每个情境都带有随机参数,例如地图大小,障碍物密度和最小路线长度。每种情况都以Stage可以模拟的速度运行,直到挂钟时间120秒终止。此外,每种情况都包含一个AR和零到五个“哑巴”机器人;后者成为动态障碍。“哑巴”机器人禁用了碰撞避免功能,只分配了不需要任何路径规划的路线。
六、实验结果与分析
实验结果:讨论风险评分最高的三个:
第一名:run207 得分3064
第二名:run207 得分1574
第三名:run207 得分988
它们运行的地图和初始任务计划分别如下图二至图四表示。机器人的起点用正方形表示,机器人的目标用圆圈表示;那些AR 是填充形状,哑机器人的形状是空心的。绿线代表提供给机器人的路线图。

实验分析:
在run 207(排名第一)中,发生重复碰撞,因为 AR 绕过一个角落并且与在其视野之外的哑机器人相撞。由于“哑巴”机器人在碰撞后仍然看不见,AR 继续尝试通过它,从而不断推动它前进(这被记录为大量碰撞)。这是危险的简单示例。
在run 219(排名第二)中,AR 和一个“哑巴”机器人在通过彼此的路线上彼此非常接近地开始。他们有足够的空间来避免彼此并成功通过,但他们开始太接近 AR 的避免算法才能正常工作。因此 AR 在试图向左传递并试图向右传递之间 振荡,与哑机器人反复碰撞。
在 run231(排名第三)类似于运行 207,除了 AR 可以看到“哑巴”机器人。它可以通过全速移动来避免碰撞,从而在哑机器人到达之前避开碰撞。然而,SND 被 设计成在“高风险”区域(靠近障碍物的区域)中控制低速。在这种情况下,障碍物本身朝向配备 SND 的机器人移动,因此需要高速以避免它。SND 引导 AR 缓慢移动,从而与哑机器人发生碰撞。run231揭示了已建立的 SND 概念 的弱点。
七、总结
本文描述了一种 PCG 方法,用于生成查找机器人控制软件故障的情况,并通过一个小案例研究表明,基本方法可以在某些情况下发现故障。案例研究发现了标准 SND 算法中的错误,没有专门针对 SND 应用进行调整。该方法并非完全自动化 - 它需要人工工程师来研究事故运行并准确发现导致问题的原因 - 但该工具会生成情境,执行它们,并优先考虑结果以供人类注意。
八、未来工作
作为进一步的工作,这种方法可以在更高保真度的模拟中实现。进一步的学术工作应侧重于改善情境的产生和结果的先验性算法,并了解导致主要 AR 算法和策略出现问题的环境空间。
对该方法的故障查找能力进行实证评估将是有价值的。它可以与传统的测试方法和手动情况生成进行比较。Nguyen 等的对比测试工作是有用的模板 - 特别是,注意他们评估已知故障的比例的方式,而不是依赖于任意测量。
作为进一步的评估,有许多机器人算法和控制策略可以应用这种方法。通过让人类专家对大量运行进行评级,然后让学习者或优化者得到一个评分系统来为这些运行再现那些分数,可以学习或发展评分系统的参数(事件权重)。这种评分系统可以用作调整情况发生器的参数的优化技术的适应度函数。
致谢
本文由浙江理工大学2018级硕士吴兆贤翻译转述。
感谢国家自然科学基金项目(重点项目)智能软件系统的数据驱动测试方法与技术(61932012)资助