carla/Docs/tuto_M_manual_map_package.md

3.5 KiB

Manual package preparation

A map package follows a certain folder structure and must contain a .json file describing that structure. Our automatic map import processes create this .json file automatically, but you also have the option to prepare it yourself. Including your own .json file will overwrite any arguments passed to the make import command.


Standard maps

Create the folder structure for the standard maps

1. Create a folder inside carla/Import. The name of the folder is not important.

2. Create different subfolders for each map to be imported.

3. Move the files of each map to the corresponding subfolder. A subfolder will contain a specific set of elements:

  • The mesh of the map in a .fbx file.
  • The OpenDRIVE definition in a .xodr file.
  • Optionally, the textures required by the asset.

For instance, an Import folder with one package containing two maps should have a structure similar to the one below.

Import
│
└── Package01
  ├── Package01.json
  ├── Map01
  │   ├── Asphalt1_Diff.jpg
  │   ├── Asphalt1_Norm.jpg
  │   ├── Asphalt1_Spec.jpg
  │   ├── Grass1_Diff.jpg
  │   ├── Grass1_Norm.jpg
  │   ├── Grass1_Spec.jpg
  │   ├── LaneMarking1_Diff.jpg
  │   ├── LaneMarking1_Norm.jpg
  │   ├── LaneMarking1_Spec.jpg
  │   ├── Map01.fbx
  │   └── Map01.xodr
  └── Map02
      └── Map02.fbx

Create the JSON description for the standard maps

Create a .json file in the root folder of the package. Name the file after the package. Note that this will be the distribution name. The content of the file will describe a JSON array of maps and props with basic information for each of them.

Maps need the following parameters:

  • name of the map. This must be the same as the .fbx and .xodr files.
  • source path to the .fbx file.
  • use_carla_materials. If True, the map will use CARLA materials. Otherwise, it will use RoadRunner materials.
  • xodr Path to the .xodr file.

Props are not part of this tutorial. The field will be left empty. There is another tutorial on how to add new props.

The resulting .json file should resemble the following:

{
  "maps": [
    {
      "name": "Map01",
      "source": "./Map01/Map01.fbx",
      "use_carla_materials": true,
      "xodr": "./Map01/Map01.xodr"
    },
    {
      "name": "Map02",
      "source": "./Map02/Map02.fbx",
      "use_carla_materials": false,
      "xodr": "./Map02/Map02.xodr"
    }
  ],
  "props": [
  ]
}


If you have any questions about the process, then you can ask in the forum.