SuperAPI AI 工具集

roadrunner-convert-lanelet2-to-rrhd

通用与其它

查看项目

更新于 10-16 09:31

技能介绍

用途:把 Lanelet2 格式的 .osm 地图转换为 RoadRunner HD Map .rrhd 格式,用于经 MATLAB 导入 RoadRunner Scene Builder。适用对象是含 type=lanelet 关系的 .osm 文件,需要完整的解析、几何、拓扑、语义、路口、护栏、标志与标线流水线。若输入是标准 OpenStreetMap 文件(只有 highway=* 路径而无 lanelet 关系),或输入是 OpenDRIVE .xodr、需要从零构建 RRHD、或仅做资产路径查询,则不应使用本技能。

主要能力:解析 OSM 的节点、路径与关系;校验格式;提取 lanelet,并发现全部非车道元素(停止线、人行横道、斑马线、自行车标线、锯齿线、围栏、护栏、Jersey 护栏、墙、路缘石、交通标志、交通灯)以及各类关系(标志、限速、优先通行、交通灯、多面体)。构建几何时优先使用节点的 local_x/local_y 标签,缺失时用 lat/lon 投影到局部 ENU 米制坐标,并自动检测 GeoReference,不从零使用 [0,0]。随后拆分自闭合道路、提取拓扑、合成中心线(每米至少 1 点,用 max(10, round(avgLen), nLeft, nRight)),并强制在写入前执行对齐、空间、延伸与完整性检查。所有流水线步骤均须执行,缺少路口、曲线标线、护栏、标志或限速即视为不完整。

关键规则:边界几何不可变更,不得翻转、重采样或修改边界点;每条 way 只生成一个边界对象,通过 wayToBndID 去重;每条车道都要检测对齐,不得硬编码 Forward;避免嵌套函数定义;空类型数组用 ClassName.empty;构造函数使用 Name=Value 语法;containers.Map 不从空值赋值;不嵌套括号调用;cell 数组 unique 需按类型处理。坐标投影只在解析阶段执行一次,之后所有下游几何使用投影后的局部坐标。

使用方式:不依赖预置脚本,运行时代码在 MATLAB 脚本上下文中生成与执行,遇错编辑 .m 文件后重跑。转换时按需调用 roadrunner-rrhd-authoring(提供 roadrunner.hdmap.* 类与属性参考)和 roadrunner-asset-mapping(解析标线子类型、标志代码、护栏类型的资产路径)。发现循环会将未映射元素计入统计并打印摘要,不静默丢弃数据。

限制:仅支持 Lanelet2 OSM 到 RRHD 的单向转换;不支持标准 OpenStreetMap、OpenDRIVE 导入或从零构建场景。代码运行环境不支持函数定义,长代码需写入 .m 文件。资料未提供收费、价格、性能指标或具体平台要求等信息。