本节描述了将地图导入CARLA的替代方法。与包和源代码导入指南中描述的过程相比,这些方法涉及更多的手动步骤。首先,我们将描述roadrunner插件,然后是手动导入方法。
RoadRunner插件导入
来自MathWorks的RoadRunner软件为虚拟引擎提供了插件,以帮助简化将地图导入CARLA的过程。
插件安装
1. 这些插件可以从MathWorks网站(MathWorks website)上下载。MathWorks还有一个完整的教程,类似于这个(full tutorial),关于如何使用插件将地图导入CARLA。
2. 提取下载文件夹的内容,并移动文件夹RoadRunnerImporter
, RoadRunnerCarlaIntegration
和RoadRunnerMaterials
到<carla>/Unreal/CarlaUE4/Plugins/
。
3. 按照下面的说明重新构建插件:
在Windows上:
右键单击<carla>/Unreal/CarlaUE4中的.uproject文件,选择Generate Visual Studio project files。
在“CARLA”的根目录下,执行命令:
make launch
在Linux上:
执行如下命令:
UE4_ROOT/GenerateProjectFiles.sh -project="carla/Unreal/CarlaUE4/CarlaUE4.uproject" -game -engine
4. 在虚拟引擎窗口中,确保两个插件都选中了复选框:Edit > Plugins
。
导入地图
1.导入<mapName>.fbx使用“导入”按钮将fbx文件保存到/Content/Carra/Maps下的新文件夹中。
2. 设置“Scene > Hierarchy Type
”为“创建一个蓝图资产”(默认选中)。
3. 选择“Static Meshes > Normal Import Method
”为“Normal导入方式”。
4. 点击Import
。
5. 保存:File
-> Save Current As...
-> <mapname>
。
新地图现在应该出现在虚拟引擎内容浏览器中的其他地图旁边。
注意:语义分割的标签将根据资产的名称进行分配。资产将被移动到Content/Carla/PackageName/Static中相应的文件夹中。要更改这些,请在导入后手动移动它们。
手动导入
这种导入映射的方法可以用于通用的.fbx和.xodr文件。如果你使用的是RoadRunner,你应该使用导出方法Firebox (.fbx), OpenDRIVE (.xodr)或UnrealUnreal (. fbx + .xml)。不要使用Carla Exporter
选项,因为您会遇到.fbx文件的兼容性问题。
手动导入一个地图到虚拟引擎:
1. 在系统的文件资源管理器中,复制.xodr文件到< Carla -root>/Unreal/CarlaUE4/Content/Carla/Maps/ OpenDrive。
2. 在Carla根目录下运行make launch打开虚拟引擎编辑器。在编辑器的内容浏览器中,导航到Content/Carla/Maps/BaseMap并复制BaseMap。这将提供一个带有默认天空和照明对象的空白地图。
3. 在Content/Carla/Maps目录中创建一个以地图包名称命名的新文件夹,并以与.fbx和.xodr文件相同的名称保存复制的地图。
4. 在虚拟引擎编辑器的内容浏览器中,导航回Content/Carla/Maps。右键单击灰色区域,选择Import to /Game/Carla/Maps…在“Import Asset”标题下。
5.在弹出的配置窗口中,确保:
这些选项未选中:
Auto Generate Collision
Combine Meshes
Force Front xAxis
在以下下拉菜单中,选择相应的选项:
Normal Import Method - Import Normals
Material Import Method - Create New Materials
已选中这些选项:
Convert Scene Unit
Import Textures
6. 点击导入。
7. 网格将出现在内容浏览器中。选择网格并将它们拖拽到场景中。
8. 网格的中心位置为0,0,0。
9. 在Content Browser中,选择所有需要有碰撞器的网格。这是指任何与行人或车辆相互作用的网格。右键单击选中的网格,选择“Asset Actions > Bulk Edit via Property Matrix...
”。
10. 在搜索框中搜索collision。
11. 将“Collision Complexity
”从“Project Default
”更改为“Use Complex Collision As Simple
”,然后关闭窗口。
12. 按Alt + c确认碰撞设置已经正确应用。你会看到网格上有一个黑色的网。
13. 要为语义分割传感器创建ground truth,请按照以下结构将静态网格移动到相应的Carla/ static /<segment>文件夹中:
14. 在模式面板中,搜索Open Drive Actor并将其拖到场景中。
15. 在Details面板中,选中Add Spawners,然后点击Generate Routes旁边的框。这将在< Carla -root>/Unreal/CarlaUE4/Content/Carla/Maps/ opdrive目录中找到具有相同地图名称的.xodr文件,并使用它来生成一系列RoutePlanner和VehicleSpawnPoint角色。
下个步骤
现在可以在虚拟编辑器中打开你的地图并运行仿真。从这里,您将能够自定义地图并生成行人导航数据。我们建议在所有定制完成后生成行人导航,这样就不会有障碍物阻挡行人路径。