在 Carla 包中导入地图

本节介绍将地图引入 Carla 包(二进制)版本 的过程。如果您使用的是从源代码构建的 Carla 版本来导入地图,请遵循 此处 的指南。

此过程仅适用于 Linux 系统。导入过程涉及运行虚幻引擎的 Docker 映像来导入相关文件,然后将它们导出为独立包,然后可以将其配置为在 Carla 中使用。构建 Docker 镜像大约需要 4 小时和 600-700 GB 的时间。仅在第一次构建映像时才需要这样做。


在你开始之前

  • 您需要满足以下系统要求:
    • Ubuntu 16.04+ 中的 64 位版本 Docker
    • 至少 8GB RAM
    • 用于构建容器映像的至少 700 GB 可用磁盘空间
    • Git 版本控制
  • 确保您使用的是 Carla 的软件包(二进制)版本。如果您使用的是从源代码构建的 Carla 版本导入地图,请遵循 此处 的指南。
  • 您应该至少使用地图编辑器(例如 RoadRunner)已 生成 的两个文件<mapName>.xodr<mapName>.fbx
  • 这些文件应具有相同的 <mapName> 值,以便被识别为同一地图。

Carla 包中的地图导入

1. Carla 提供了在 Docker 映像中构建虚幻引擎以及使用该映像编译 Carla 的所有实用程序。这些工具可以在 GitHub 上的源代码中找到。使用以下命令克隆存储库:

    git clone https://github.com/carla-simulator/carla

2. 按照 这些说明 构建虚幻引擎的 Docker 映像。

3. 创建 input_folder。这是您放置要导入的文件的位置。 Docker 会自动创建一个 .json 文件来描述包文件夹结构。更改 input_folder 的权限才能成功创建:

    #Go to the parent folder, where the input folder is contained
    chmod 777 input_folder

笔记

如果包是 手动准备的 ,并且已包含 .json 文件,则无需执行此操作。

4. 创建 output_folder 。这是 Docker 镜像在烘焙地图后写入输出文件的地方。

5. 导航至 ~/carla/Util/Docker。这是导入脚本所在的位置。该脚本需要 input_folderoutput_folder 的路径以及要导入包的名称。如果提供了 .json 文件,则该文件的名称是包名称,如果未提供 .json,则名称必须为 map_package

    python3 docker_tools.py --input ~/path_to_input_folder --output ~/path_to_output_folder --packages map_package

笔记

如果未提供参数 --packages map_package ,Docker 镜像将制作 Carla 包。

6. 包将在 output_folder 中生成为 <map_package>.tar.gz. 。这是独立包,现在可以导入到 Carla 中。将包移动到 Carla 根目录(您将在其中使用地图的包/二进制版本)中的 Import 文件夹,然后从根目录运行以下脚本将其导入:

./ImportAssets.sh

7. 要使用新地图运行仿真,请运行 Carla,然后使用 config.py 文件更改地图:

cd PythonAPI/util
python3 config.py --map <mapName>



您的地图现在可以在 Carla 运行仿真了。如果你对这个过程有任何问题,你可以在 论坛 上提问,。也可以尝试在你的新地图上运行我们的一些 示例脚本 来测试它。