4、Carla地图导入工具链:Carla地图导入流程概览、RoadRunner基础操作、从OpenStreetMap导出数据、使用RoadRunner生成基础路网

好,咱们进入正题。这一章我打算把Carla地图导入的整个工具链给你捋一遍。说实话,很多新手一上来就卡在「地图怎么弄进去」这一步。我自己刚接触Carla那会儿,也折腾了好几天才搞清楚RoadRunner和OpenStreetMap之间的关系。

说白了,Carla本身不生产地图,它只负责渲染和仿真。地图数据得靠外部工具来生成。而目前最主流的方案,就是RoadRunner + OpenStreetMap这套组合拳。

4.1 Carla地图导入流程概览

先给你画个全景图。整个流程其实就三步:

  1. 获取原始数据 —— 从OpenStreetMap下载你想要的区域
  2. 生成路网 —— 用RoadRunner把OSM数据转成可用的路网
  3. 导入Carla —— 把RoadRunner导出的文件放进Carla的Content目录

嗯,听起来很简单对吧?但每一步都有坑。我当年第一次做的时候,第二步就卡了两天——RoadRunner导出的文件Carla死活不认。后来才发现是导出设置里少勾了一个选项。

核心要点:Carla只认特定格式的地图包。RoadRunner导出的 .fbx 和 .xodr 文件,必须按照Carla的目录结构放好,否则加载时会直接报错。

4.2 RoadRunner基础操作

RoadRunner是MathWorks家的产品,说白了就是个专门做道路建模的工具。你想想看,它跟Carla的配合度是最高的,因为Carla官方就是拿它来生成地图的。

我第一次打开RoadRunner的时候,界面确实有点懵。但用顺手了就会发现,它的核心操作其实就几个:

  • 新建项目 —— 选「New Project」,然后指定一个工作目录。我个人习惯把每个地图项目单独放一个文件夹,方便管理。
  • 导入OSM数据 —— 在菜单栏选 File → Import → OpenStreetMap,然后选择你下载好的 .osm 文件。
  • 编辑路网 —— 导入后RoadRunner会自动生成路网,但通常需要手动调整。比如车道数、交叉口形状、人行横道这些。
  • 导出Carla格式 —— 这是最关键的一步。选 File → Export → Carla,会生成一个包含 .fbx 和 .xodr 的文件夹。

小技巧:RoadRunner里有个「Auto-Lane Generation」功能,能自动补全车道线。但我在项目中遇到过,它有时候会把双向车道搞反。所以建议你生成后手动检查一下。

4.3 从OpenStreetMap导出数据

OpenStreetMap(简称OSM)是个开源地图平台,全世界的地图数据都能免费下载。你想想看,这比自己去测绘省了多少事。

具体怎么导出呢?有两种方式:

方式 操作步骤 适用场景
官网直接导出 打开 openstreetmap.org → 找到目标区域 → 点「导出」按钮 小范围区域(几平方公里以内)
使用Overpass API 通过查询语句下载指定区域的数据 大范围或自定义区域

我个人更推荐第一种方式,简单直接。但要注意,OSM导出的数据是 .osm 格式,RoadRunner可以直接识别。我曾经试过用其他格式转换,结果RoadRunner导入后路网全乱了。

避坑指南:OSM上的数据是用户贡献的,质量参差不齐。有些小路可能没标注车道数,或者交叉口信息缺失。我曾经下载过一个郊区的OSM数据,导入RoadRunner后直接生成了一堆断头路。所以建议你优先选择城市主干道区域。

4.4 使用RoadRunner生成基础路网

好,现在假设你已经从OSM下载好了数据。接下来就是RoadRunner的重头戏了。

打开RoadRunner,新建项目,然后导入你的 .osm 文件。RoadRunner会自动解析数据,生成一个基础路网。但别高兴太早——这个路网通常需要手动调整。

我一般会做这几步调整:

  • 检查车道数 —— OSM数据里的车道数不一定准确。比如一条双向四车道,OSM可能只标了两条。你需要手动在RoadRunner里修改。
  • 调整交叉口 —— 交叉口的形状和转向车道,RoadRunner生成的往往比较粗糙。你可以用「Junction Editor」工具微调。
  • 添加人行横道 —— OSM数据通常不包含人行横道。你需要手动在交叉口附近添加。
  • 设置交通标志 —— 红绿灯、停止标志这些,RoadRunner可以自动生成,但位置可能需要手动调整。

嗯,这里要注意一点。RoadRunner的「Auto-Fix」功能虽然方便,但别完全依赖它。我遇到过它把一条直路自动加了个弯道的情况,后来排查了半天才发现是自动修复搞的鬼。

调整完成后,就可以导出了。选 File → Export → Carla,RoadRunner会生成一个文件夹,里面包含:

  • .fbx 文件 —— 3D模型数据,包含道路、建筑、植被等
  • .xodr 文件 —— OpenDRIVE格式的路网描述文件
  • .json 文件 —— Carla的配置文件

把这个文件夹复制到 Carla 的 Content 目录下,重启Carla,你的地图就能在「Maps」列表里看到了。

重要提醒:RoadRunner导出的文件夹名称,就是Carla里显示的地图名称。所以命名时别用中文或特殊符号,否则Carla加载时会报错。我习惯用「城市名_区域名」的格式,比如「Shanghai_Pudong」。

好了,这一章的内容就这些。说白了,地图导入的核心就是「OSM获取数据 → RoadRunner加工 → Carla加载」这三步。每一步都有细节,但只要你按流程走一遍,基本不会出大问题。

下一章我会讲怎么在Carla里验证导入的地图,以及如何处理常见的加载错误。到时候见。