使用场景进行规划评估#
介绍#
Autoware 规划堆栈的性能通过一系列定义的场景进行评估,这些场景概述了
其他道路使用者的行为,并指定自动驾驶汽车的成功和失败条件,请参阅
作为 自我 .这些方案以机器可读的格式指定,并使用 Scenario Simulator 工具执行.
下面提供了用于创建、执行和分析这些场景的三个主要工具的简要定义.
- 场景编辑器: 用于创建和编辑的基于 Web 的 GUI 工具 scenario 文件.
- 场景模拟器: 旨在模拟这些 机器可读的场景.它配置环境,规定其他道路使用者的行为,并设置 成功和失败条件.
- 自动软件评估器: 一个基于 Web 的 CI/CD 平台,便于上传、 场景及其相应地图文件的分类和执行.它允许并行场景 执行并提供详细的结果.
创建方案#
场景是使用场景编辑器工具创建的,该工具提供了一个用户友好的界面来定义道路使用者. 他们的行为,以及自我载体的成功和失败条件.
为了演示场景创建过程,我们将创建一个简单的场景.
场景定义#
- 初始条件: 自我车辆在直车道上行驶,一辆自行车停在同一车道上.
- 行动: 当自我车辆与自行车之间的纵向距离小于 10 米时,自行车 开始以 2 m/s 的速度移动.
- 成功条件: 自我车辆到达目标点.
- 故障条件: 自我的车辆与自行车相撞.
场景创建#
- 打开 场景编辑器 工具.
- 从 MAP 选项卡加载地图.在本教程中,我们将使用
LEO-VM-00001映射,该映射可以下载 来自 Autoware 评估员地图部分. -
在
Edit选项卡中,从Add Entity部分添加 ego vehicle 和 bicycle.添加后,选择 ego 车辆并从Edit选项卡设置其目的地.
-
设置好 bicycle、ego vehicle 和 ego vehicle 的目的地位置后,将 自行车的速度达到 0 m/s,如下所示.然后,点击
场景选项卡,然后点击添加新行为按钮.用 this,定义一个动作,当满足 distance 条件时,自行车开始移动.
-
如下所示,为名为
act_start_bicycle的作定义启动条件.此条件检查距离 在自我车辆和自行车之间.如果距离小于或等于 10 米,则触发该作.
-
在开始条件之后,为此作定义一个 事件.由于此事件没有其他条件, 设置 SimulationTime 大于 0 的虚拟条件,如下所示.

-
为此事件定义 行动.此作会将 actor Bicycle0 的速度设置为 2 m/s.

-
该方案现在已准备好进行测试.您可以通过单击
导出从场景选项卡导出场景 按钮.
创建场景的重要说明#
- 我们制作的教程是一个简单的场景实现,适用于更复杂的定义和其他道路使用者作, 请参考 Scenario Simulator 文档.
- 由于场景格式的复杂性,并非所有场景都支持 GUI 中的编辑 特征.因此,如果有任何项目不支持或难以使用 GUI 进行编辑,您可以 使用文本编辑器直接编辑和调整方案.在这种情况下,将检查方案格式的架构 ,以便您可以放心地进行编辑.
- 了解其他复杂场景实现的最佳方法是查看现有场景.您可以查看 scenarios 中 自动软件评估器 以查看其他实现.
使用 Scenario Simulator 运行场景#
创建 Scenario Simulator 环境#
- 克隆 Autoware 主存储库.
git clone https://github.com/autowarefoundation/autoware.git
- 创建源目录.
cd autoware
mkdir src
- 导入 Autoware 和 Scenario Simulator 所需的存储库.
vcs import src < autoware.repos
vcs import src < simulator.repos
- 如果您是第一次安装 Autoware,则可以使用 提供了 Ansible 脚本.请参考 自动软件源安装页面 了解更多信息.
./setup-dev-env.sh
- 安装依赖的 ROS 包.
除了核心组件之外,Autoware 和 Scenario Simulator 还需要一些 ROS 2 软件包.rosdep 工具允许 自动搜索和 安装此类依赖项.您可能需要在 rosdep install 之前运行 rosdep update.
source /opt/ros/humble/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
- 构建工作区.
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
- 如果您对安装有任何问题,或者需要更详细的说明,请参考 自动软件源安装页面.
使用 Scenario Simulator 执行场景#
我们在上面创建了一个示例场景,并将其导出到我们的本地计算机中.现在,我们将使用 场景模拟器.
- 首先,我们应该在场景文件中定义
lanelet2_map.osm和pointcloud_map.pcd文件.默认情况下, 配置如下:
RoadNetwork:
LogicFile:
filepath: lanelet2_map.osm
SceneGraphFile:
filepath: lanelet2_map.pcd
用户应该根据我们之前下载的 map 文件来更改 filepath 字段.您可以找到
Autoware Evaluator 的 Maps 部分中的 lanelet2_map.osm 和 pointcloud_map.pcd 文件.
注意: 尽管 pointcloud_map.pcd 文件是必需的,但它不会在模拟中使用.因此,您可以
为此字段定义虚拟文件.
- 定义 map 文件后,我们可以使用 Scenario Simulator 执行场景.命令如下:
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
record:=false \
scenario:=`/path/to/scenario/sample.yaml` \
sensor_model:=sample_sensor_kit \
vehicle_model:=sample_vehicle
- 现在,该场景将在 Scenario Simulator 中执行.您可以在 RViz 窗口中看到模拟.
- 要在 RViz 中播放场景时查看场景中的条件详细信息,您应该启用
条件组标记 默认情况下,它未启用.

- 通过使用
Condition Group标记,您可以在 场景.因此,调查该场景会有所帮助.

了解 Autoware 评估器#
Autoware Evaluator 是一个基于 Web 的 CI/CD 平台,可促进 scenarios 及其相应的映射文件.它允许并行场景执行,并提供详细的 结果.
**注意:Autoware Evaluator 是一个私人工具.目前,您应该被邀请加入 AWF 项目才能访问它. 但是,AWF 项目将是公开的,它正在开发中.
- 首先,您应该创建一个免费的 TIER IV 帐户来访问 Autoware Evaluator.您可以使用 TIER IV 帐户创建页面.
- 创建帐户后,请联系 AWF ODD WG 负责人 Hiroshi IGATA (hiroshi.igata@tier4.jp) 邀请参加 Autoware Evaluator 的 AWF 项目.建议参加一次 ODD 工作组会议,以简短地参加 介绍您自己和您的兴趣.ODD 工作组信息 是 here.
让我们逐页探索 Autoware Evaluator 界面.
场景#
在 Scenarios 选项卡中,用户可以查看、搜索和筛选所有上传的 Scenarios.如果您正在寻找特定的
方案中,您可以使用此页面的搜索栏来查找它.
如果场景标记为 tick,则表示该场景已由 Manager 审核通过,否则等待
一篇评论.
目录#
目录 选项卡显示场景目录,即为特定使用案例创建的一组套件.
在 Evaluator 中,用户可以对目录中的所有方案执行测试.

套件#
套件 是指为特定测试目的而创建的一组场景,它是
scenario 组.它可以分配给任何目录以测试使用案例.
Maps#
地图 选项卡显示场景中使用的地图列表.开发人员可以找到他们需要的地图
执行场景.
Reports#
Reports 选项卡显示场景测试的结果列表.在这里,用户可以查看最新的测试执行.

上面的屏幕截图显示了公共道路公交车目录的最新测试执行.在 source 列中, 将显示包含最新提交的 default Autoware 存储库.要进行更深入的分析,用户可以单击标题以 查看综合结果.

单击测试执行的标题将指向一个页面,其中显示构建日志和每个测试的单独测试结果
套房.通过选择 ID 列中的链接,用户可以访问每种花色的详细结果.

单击 ID 链接后,用户可以查看套件中方案的详细测试结果.例如,在
在我们的案例中,198 个场景中有 183 个成功.此页面是开发人员进一步研究的有用资源
失败的场景.

ID链接到显示场景详细测试结果的页面.方案名称链接到显示方案定义的页面.标签表示场景失败的条件;如果成功,此字段将保持为空.状态显示场景中失败和成功的案例计数.
要更深入地调查此特定场景,我们应该点击 ID 链接.

对于此方案,四个案例中有三个失败.每个 case 都表示更改 ego_speed 参数.深入探讨
进入失败的案例,点击 ID 链接.

此页面向我们展示了失败案例的详细信息.我们可以通过调查来了解为什么这个案子失败了
消息 .对于我们的情况,消息
是 模拟失败:CustomCommandAction 类型为 exitFailure 的是由匿名条件 (OpenSCENARIO.Storyboard.Story[0] 触发的.Act[_EndCondition].机动组[0].机动[0].事件[1].StartTrigger.ConditionGroup[1] 中.条件 [0]):StoryboardElement 的状态act_ego_nostop_check` (= completeState) 被赋予状态 completeState?
从此消息中,我们可以了解到用于检查车辆未停止的作已完成 州.并且,场景作者将此条件设置为失败条件.因此,该方案失败了.
- 要在本地测试方案,您可以使用上面标记为 image 的链接下载方案及其地图. 上一节介绍了在本地计算机上运行场景.
- 要比较测试执行情况以分析场景何时成功运行,您可以使用
比较报告按钮,该按钮显示先前测试执行的结果.

- 要查看场景是如何失败的,您可以通过单击
Play按钮来重播场景.它显示已执行的测试.

- a) 帮助我们快退或快进的栏
- b) 显示是否满足成功和失败条件
- c) 显示作和事件的状态及其启动条件
如需进一步支持#
对于新用户来说,创建场景并使用 Autoware Evaluator 对其进行分析会很复杂.如果您需要进一步的帮助
或支持,您可以通过以下方式联系 Autoware 社区
Autoware Discord 服务器,您可以询问有关场景创建过程的问题
或 odd 频道中的 Autoware Evaluator.此外,您还可以参加每周的 ODD 工作组会议,以获得
社区.您可以加入
ODD 工作组邀请组
以获取会议邀请.
- ODD 工作组会议每周在周一下午 2:00 (UTC) 的单一时间段举行.