题目:HuNavSim A ROS 2 Human Navigation Simulator for Benchmarking Human-Aware Robot Navigation
作者:Noé Pérez-Higueras, and Roberto Otero
来源:arXiv
时间:2023
工程地址:https://github.com/robotics-upo/hunav_sim
这项工作提出了人类导航模拟器(HuNavSim),这是一种新颖的开源工具,用于模拟移动机器人场景中不同的人类代理导航行为。该工具首次在 ROS 2 框架下编程,可以与 Gazebo 等不同的知名机器人模拟器一起使用。主要目标是简化仿真中人类感知机器人导航系统的开发和评估。除了通用的人类导航模型之外,HuNavSim 还具有新颖性,包括一组丰富的个人和现实的人类导航行为以及一整套用于社交导航基准测试的指标。
评估机器人在与人类共享的场景中导航的技能对于构思与人类一起工作的新型服务机器人至关重要。
这种移动社交机器人的开发提出了两个主要挑战:
通过 HuNavSim,我们的目标是为提到的两个问题提供解决方案:为个体代理提供一组不同的现实行为,并提供文献中使用的度量标准的汇编。简而言之,我们提出了以下贡献:
i) ROS2 框架 [1] 下的开源且灵活的人类导航仿真工具,可以与不同的机器人模拟器一起使用。
ii)人类代理的一组丰富的导航行为,其中包括一组对机器人存在的真实个人反应。
iii)将文献中的指标完整汇编到用于评估人类感知导航的工具中,该工具是可配置和可扩展的。
iv) 使用该工具以及机器人技术中使用的著名 Gazebo 模拟器的包装器(见图 1)。
PedSimROS1是一个基础库对ROS的改编,它使用社会力模型(SFM)[2]来引导人群运动。 MengeROS2 [3] 是一个更完整的工具,它使用 A* 和势场进行全局路径规划,并允许在一组防撞策略中进行选择,例如基于 SFM 的不同变体、最佳相互防撞 (ORCA) [4]和行人速度障碍(PedVO)[5]。
然而,PedsimROS 和 MengeROS 都是已弃用的软件,集成到未维护的 ROS 1 版本中。此外,它们不包含任何导航评估选项。
CrowdBot3 [6] 和 SEAN(自主导航社交环境)4 [7]、[8] 是更新、先进且雄心勃勃的工具。它们具有相似的特征。两者都基于游戏引擎 Unity 和 ROS 1,都旨在成为评估人口稠密环境中机器人导航的标准。
与它们相反,HuNavSim 提供了一种更灵活的方法,允许将该工具与不同的模拟器一起使用,并提供一组针对机器人存在的个性化和真实的人类反应。此外,这些工具提供了一组封闭的指标,而 HuNavSim 包含一个更大的指标汇编,可以轻松配置和扩展。
一个有趣的模拟器是智能人体模拟器(InHuS)[9]、[10]。该模拟器旨在控制另一个模拟器中人类代理的运动。它还包括一小部分人类个体行为,就像 HuNavSim 所做的那样。与 InHuS 相比,我们的模拟器采用强大且灵活的工具——行为树 [11] 来定义和驱动特定的人类行为。这些树也可以轻松修改和扩展。此外,InHuS基于ROS 1,主要采用专为机器人设计的导航系统HATEB2 [12]来控制人类运动。与基于特定人群运动模型的模拟器相比,这可能会导致更加不切实际的人群运动。
SocNavBench5 [13] 采用了不同的方法。它是一个基于模拟器的基准测试,可重播预先记录的现实世界行人数据。该工具的主要缺点是行人轨迹是从开源数据集中重放的,因此没有考虑机器人运动对行人路径的影响。这使得很难对人类感知导航进行现实评估。
其他方法被设计用于在动态环境中训练、测试和基准测试基于学习的导航代理。例如,Arena-Rosnav [14] 允许训练基于深度强化学习的避障方法。它利用Pedsim库来引导行人的运动。然后,Arena-Rosnav 进行了扩展,包括导航基准测试、Arena-Bench [15] 以及一组更大的用于开发和基准测试的实用程序 (Arena-rosnav 2.0 [16])。为
了在与人类共享的空间中模拟和训练强化学习代理,我们找到了 SocialGym 2.0 [17]、[18],它也使用 Pedsim 库来模拟人类导航。
这些工具不包括特定的人类行为,也不包括用于人类感知导航的完整且特定的指标集。
模拟器的总体架构如图 2 所示。HuNavSim 负责正确控制在另一个基础模拟器(如 Gazebo、Morse 或 Webots)中生成的人类代理,这些模拟器还必须模拟场景和机器人。因此,需要一个与基础模拟器进行通信的包装器。
最初,用户必须提供要模拟的代理的数量和特征(如个人行为、目标列表等)。它可以通过配置 yaml 文件或基于 ROS 2 RViz 面板的图形用户界面来指定。
然后,在每个执行步骤,模拟器包装器通过 ROS 2 服务将当前人工代理的状态发送到 hunav 管理器模块。根据当前状态,系统决定代理的下一个状态,该状态返回到包装器,从而在基础模拟器中更新。
最后,hunav评估器模块记录实验数据并在模拟结束时计算评估指标。有关每个模拟的信息以及要计算的所需指标集可以通过 yaml 文件或通过 ROS 2 RViz 面板中显示的复选框列表来指定。该模块生成一组输出结果文件,其中包含模拟信息以及计算指标的名称和值。
HuNavSim 主要基于使用著名的社会力模型 [2] 及其对群体的扩展 [21]、[22],以领导人类代理运动,就像其他人群模拟器一样。然而,我们扩展了这个模型,以提供代理对机器人存在的一组真实的个体导航反应。这可以丰富导航场景,并通过更加多样化和现实的人类行为来挑战导航算法。
包括的行为集如下:
• r e g u l a r regular regular 常规:这是基于SFM 的常规导航。机器人被视为另一个人类代理,因此人类像对待另一个行人一样对待机器人。
• i m p a s s i v e impassive impassive 冷漠:在这种情况下,机器人不作为人类代理包含在SFM 中。因此,人类对待机器人就像对待障碍物一样。
• s u p e r i s e d superised superised 惊讶:当人类看到机器人时,当前目标导航停止。人类停止行走并开始看着机器人(走向机器人位置)。
• c u r i o u s curious curious 好奇:当检测到机器人时,人类放弃当前的导航目标。然后,人类慢慢接近机器人。短时间(默认为 30 秒)后,人们会失去兴趣并返回目标导航。
• s c a r e d scared scared 害怕:当智能体检测到机器人时,智能体会尝试远离机器人。在这种情况下,我们向代理添加来自机器人的额外排斥力,并降低最大速度。这样我们就模拟了害怕的人类行为。
• t h r e a t e n i n g threatening threatening 威胁:当代理看到机器人时,它会接近机器人并试图通过走到机器人前面来阻止机器人的路径。机器人前面的目标是不断计算和命令的。一段时间后(默认为 40 秒),代理会感到无聊并继续其原始导航。
一个有趣的特征是所有这些行为都是由行为树控制的[11]。它们允许有效地构建自主代理的不同任务或动作之间的切换。此外,它们易于编程,并且可以轻松添加或修改新行为。特别是,我们使用引擎BehaviorTree.CPP8进行行为创建/编辑。
还提供了使用 HuNavSim 和 Gazebo 模拟器的包装器。图 3 显示了包装器模块(红色方块)以及与 Gazebo 模拟器和 HuNavSim 的通信。
代理移动的控制已被编程为 Gazebo 世界插件,必须包含在 Gazebo 世界文件中。此外,人类代理也作为 Gazebo 演员包含在同一文件中。
因此,我们编写了两个模块:
• 世界生成器模块,负责读取人类代理的配置参数(在代理的配置 yaml 文件中定义),并在基础中编写适当的插件和代理凉亭世界文件。
• 然后,Gazebo 加载这个世界文件,HuNav 插件与 HuNavSim 通信,以在模拟执行期间更新代理的状态。
包装器包含一组与人类共享的典型场景:自助餐厅、仓库和房屋。
此外,我们还根据个人行为开发了一套新的不同的3D人体模型,并具有不同的动画。用户可以选择人体 3D 模型和相关行为。
为了解决选择最佳指标来评估人类感知导航的问题,我们决定保持评估系统尽可能开放。
首先,我们回顾了文献,以收集适用于该问题的大部分指标。然后,我们让用户选择每次模拟要计算的指标。最后,该系统还允许轻松地将新指标添加到评估中。所有度量函数的输入是两个数组,其中包含每个时间步长的 HuNavSim 代理和机器人的位姿、速度和其他数据。
除了计算场景中所有代理的指标之外,评估器还执行有关代理的特定行为的计算。通过这种方式,我们可以获得有关代理对机器人的存在表现出特定行为的情况的有趣指标。
因此,与文献中的固定评估系统相比,HuNavSim 提供了可靠且灵活的评估系统。
实施的指标是我们之前的工作 [23] 中使用的指标、SEAN 模拟器 [7]、一些 SocNavBench [13] 以及与所使用的社会力模型 (SFM) 相关的一些指标根据高等人的汇编,在不同的作品中[26]。这总共提供了 28 个指标,这是据我们所知最广泛的指标汇编。可用指标的列表如表 I 所示。指标的详细描述及其数学方程可以在 HuNavEvaluator9 的 Github 页面上查阅
作为输出,HuNavEvaluator 将生成一组指标文件。它们形成为文本文件,开头是指示指标名称的标题,后面是按表格分割的行和列中组织的数据:
• 常规指标文件,其中包含计算出的最终指标值。
• 为模拟中的每个时间步计算的度量值列表。这对于绘制和可视化某些指标在模拟时间或特定时刻的行为非常有用。
• 包含最终指标的文件集,但仅考虑具有相同行为的人群。因此,我们将获得与模拟中使用的特定行为一样多的文件。
• 最后,该工具将为每个先前的行为组生成在每个时间戳计算的指标。
根据Gao等人的研究[26],评估人类感知导航时常用的场景有:Passing、Crossing、Overtaking、Approching、Folling/Accompany (超车、穿越、超车、接近、跟随/伴随) 以及这些场景的组合。
在本次评估中,我们采用了超车和穿越的基本场景,以及人类表现出不同个体行为的组合场景。在图 4 中,我们可以看到左图中的 Passing 场景,其中机器人必须到达房间的另一侧,并且有两个人朝相反的方向行走。在交叉场景中,如图 4 的中心图像所示,机器人在与四个人交叉时必须再次到达房间的另一侧:其中两个人垂直于机器人方向行走,另外两个人沿对角线行走。最后,右图呈现了组合场景,其中三个人对机器人的存在表现出不同的反应:“常规”导航,将机器人视为另一个人;人类特工小心翼翼地接近机器人的“好奇”反应;以及“威胁”反应,其中人类代理会坚持尝试阻止机器人通行。
在之前的社交导航场景中,我们将比较三个具有不同特征的规划器获得的指标:
• DWB。使用 DWB 局部规划器 的基本 ROS 2 导航堆栈主要基于动态窗口方法 [27]。
• SCL。使用社交成本图层(ROS 1中实现的社交导航层的自定义 ROS 2 版本)的同一系统。
• SFW。我们基于动态窗口方法开发的社会本地规划器。它使用社会力模型作为人体姿势预测器和包含社会工作的轨迹评分函数。
我们推出了一款新的开源软件来模拟人类导航行为,HuNavSim。该工具在新的 ROS 2 框架下编程,可用于控制不同通用机器人模拟器的人类代理。还介绍了将该工具与著名的 Gazebo Simulator 一起使用的包装器。
此外,它还提出了其他新颖之处,例如由行为树指导的一组现实的个人人类导航行为。这些行为可以通过行为树轻松配置和扩展。该工具还包括来自文献的机器人人类感知导航评估指标的完整、灵活和可扩展的汇编。对三种不同规划器的比较表明,该工具对于导航算法的开发和评估非常有用。对机器人存在的不同反应也带来了一种新颖性,有助于在与人类共享的空间中模拟更真实的导航情况。
未来的工作包括完成所评论的整套指标。来自 Crowdbot [6] 和 Gau 等人 [26] 的工作中指出的其他指标将被研究和包括在内。目前正在考虑为其他模拟器(如 Webots 或 Isaac Sim)开发包装器。此外,还将研究个人导航行为集的增强,以及除社会力模型之外添加其他人类导航模型。
最后,在技术层面上,我们将致力于更新软件以使用 ROS2 Humble 发行版(目前正在开发中)和最新版本的行为树库 (v4)