第一步
重要
本教程参考了 Carla 的最新版本(至少 0.9.5)
欢迎来到 Carla 的 ScenarioRunner!本教程提供了开始使用 Carla 的 ScenarioRunner 基本步骤。
从我们的 GitHub 页面下载最新版本,并将包的所有内容提取到您选择的文件夹中。
发布包包含以下内容
- Carla 的 ScenarioRunner
- 用 Python 编写的一些示例场景。
安装先决条件
当前版本设计用于 Ubuntu 18.04、Python 3.6。根据您的 Python 版本,执行:
#Python 2.x
sudo apt remove python-networkx #if installed, remove old version of networkx
pip2 install --user -r requirements.txt
#Python 3.x
sudo apt remove python3-networkx #if installed, remove old version of networkx
pip3 install --user -r requirements.txt
注意: 不 支持高于 v0.8 的 py-tree 。
运行以下车辆示例
首先,您需要从 Carla 获取最新的主分支。然后您必须将 Carla Python API 包含到 Python 路径中:
export CARLA_ROOT=/path/to/your/carla/installation
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla/dist/carla-<VERSION>.egg:${CARLA_ROOT}/PythonAPI/carla/agents:${CARLA_ROOT}/PythonAPI/carla
笔记: ${CARLA_ROOT} 需要使用您的 Carla 安装路径替换,
现在,您可以从 ${CARLA_ROOT} 启动 CARLA 服务器
./CarlaUE4.sh
在额外的终端中启动示例场景(跟随领先的车辆):
python scenario_runner.py --scenario FollowLeadingVehicle_1 --reloadWorld
如果您需要帮助或想要探索其他命令行参数,请按如下方式启动场景运行程序:
python scenario_runner.py --help
要控制场景中的自我车辆,请打开另一个终端并运行:
python manual_control.py
注意: 如果您不希望自动(重新)加载 Carla 世界,您可以跳过命令行选项 --reloadWorld
运行一个场景类的所有场景
与前面的示例类似,还可以执行属于同一类(例如“FollowLeadingVehicle”类)的一系列场景。
唯一的区别是,您按如下方式启动 scene_runner:
python scenario_runner.py --scenario group:FollowLeadingVehicle
运行其他场景
支持的场景列表中提供了 支持的场景列表 。请注意,不同的 Carla 城镇可能会发生不同的场景。启动 Carla 服务器时必须遵守这一点。
使用 OpenSCENARIO 格式运行场景
要运行基于 OpenSCENARIO 格式的场景,请运行 ScenarioRunner,如下所示:
python scenario_runner.py --openscenario <path/to/xosc-file>
请注意,OpenSCENARIO 支持和 OpenSCENARIO 格式本身仍在进行中。您可以在 OpenSCENARIO 支持 中找到更多信息。
使用 OpenSCENARIO 2.0 格式运行场景
要运行基于 OpenSCENARIO 2.0 格式的场景,请运行 ScenarioRunner,如下所示:
python scenario_runner.py --openscenario2 <path/to/osc-file>
要控制场景中的自我车辆或观察它,请打开另一个终端并运行:
python manual_control.py -a --rolename=ego_vehicle
有关如何运行OpenSCENARIO 2.0场景的更多信息,请参阅 README_OpenSCENARIO_2.0。
使用具有 Global ParameterDeclaration 覆盖的 OpenSCENARIO 格式运行场景
python scenario_runner.py --openscenario <path/to/xosc-file> --openscenarioparams 'param1: value1, param2: value2'
运行基于路线的场景(类似于 Carla 自动驾驶挑战赛)
要运行基于路线的场景,请按如下方式运行 ScenarioRunner:
python scenario_runner.py --route <path/to/route-file> <path/to/scenario_sample_file> [route id] --agent <path/to/agent_file>
实例:
python scenario_runner.py --route D:/work/workspace/carla_doc/src/scenario_runner/srunner/data/routes_town10.xml --agent srunner/autoagents/npc_agent.py
如果未提供路由 ID,则将执行给定文件中的所有路线。
通过这样做,ScenarioRunner 会将场景与路线相匹配,并且当自我车辆在附近时它们会激活。然而,路线需要一个自主代理来控制自我车辆。srunner/autoagents/
中提供了几个示例。有关代理的更多信息,请查看 代理文档 。