0301:opendrive规格解析

0. 学习资源

0.1 官方资源

ASAM 官方

XSD 文件(官方deliverables中包含):

  • OpenDRIVE_Core.xsd:根元素、header
  • OpenDRIVE_Road.xsd:道路、几何、高程
  • OpenDRIVE_Lane.xsd:车道、标线
  • OpenDRIVE_Signal.xsd:信号标志
  • OpenDRIVE_Object.xsd:静态对象

0.2 开源示例文件

esmini 项目(推荐用于学习):

  • GitHub仓库:esmini/esmini
  • 示例文件位置:esmini/resources/xodr/
  • 常用示例:
    • straight_500m.xodr:基础直线道路
    • curves.xodr:包含圆弧和缓和曲线
    • fabriksgatan.xodr:复杂城市道路
    • multi_intersections.xodr:多路口场景

下载方式

bash 复制代码
# 克隆完整仓库
git clone https://github.com/esmini/esmini.git

# 或直接访问单个文件(浏览器打开)
https://github.com/esmini/esmini/tree/master/resources/xodr

CARLA 示例文件

0.3 可视化工具

esmini odrviewer(推荐):

  • 下载:esmini releases
  • 功能:3D可视化OpenDRIVE地图
  • 使用:解压后运行 bin\odrviewer.exe [file.xodr]

在线查看器

  • odrviewer.io:浏览器直接打开xodr文件
  • 功能:查看road ID、lane ID、successor/predecessor关系

1. OpenDRIVE 概述

1.1 核心功能

OpenDRIVE 用 XML 表达静态路网:

  • 几何:道路参考线、高程、横坡/超高、车道宽度
  • 拓扑:道路连接、车道连接、路口关系
  • 规则:信号、标志、限速、控制器
  • 对象:人行横道、停车位、护栏、路侧设施

1.2 应用范围

适用 :仿真、路径规划、高精地图
不适用:动态行为(用 OpenSCENARIO)、渲染资产(用 3D 模型)


2. 文件结构

2.1 基本结构

复制代码
<OpenDRIVE>
  <header />
  <road>...</road>
  <controller /> (可选)
  <junction /> (可选)
</OpenDRIVE>

2.2 Header

关键属性

  • revMajor/revMinor:格式版本
  • north/south/east/west:边界范围
  • geoReference:真实世界坐标参考(建议提供)
  • defaultRegulations:默认法规

2.3 Road

核心元素

  • link:道路连接
  • type:道路类型
  • planView:平面几何
  • elevationProfile:高程
  • lateralProfile:横向形态(超高/横坡)
  • lanes:车道结构
  • signals:标志/信号灯
  • objects:静态对象

3. 坐标系

两类坐标

  • 惯性坐标(x, y, z):绝对位置
  • 道路坐标(s, t, h):沿路参数化位置

3.1 道路参考线

  • s:沿参考线的弧长
  • hdg:航向角
  • 注意:参考线方向≠行驶方向

3.2 横向坐标

  • t:横向偏移(t>0 左侧,t<0 右侧)

3.3 坐标转换

Frenet → 惯性:

复制代码
x(s,t) = x_ref(s) - t * sin(hdg(s))
y(s,t) = y_ref(s) + t * cos(hdg(s))

3.4 高度

三层高度来源:

  1. elevationProfile:参考线高程
  2. lateralProfile:横向形态(超高/横坡)
  3. zOffset:元素自身偏移

4. planView:平面几何

4.1 基本结构

<planView> 包含多个 <geometry> 段:

  • 起点:s, x, y, hdg
  • 段长:length
  • 类型:line/arc/spiral/poly3/paramPoly3

4.2 几何类型

line(直线)

xml 复制代码
<geometry s="0.0" x="0.0" y="0.0" hdg="0.0" length="100.0">
  <line/>
</geometry>

数学公式:

复制代码
x(s) = x0 + s * cos(hdg)
y(s) = y0 + s * sin(hdg)

arc(圆弧)

xml 复制代码
<geometry s="0.0" x="-0.014" y="-0.055" hdg="2.88" length="95.89">
  <arc curvature="-0.000490572"/>
</geometry>
  • curvature:曲率(k = 1/R)
    • k > 0:左转(逆时针)
    • k < 0:右转(顺时针)
  • hdg(s) = hdg0 + k * s

spiral(缓和曲线)

xml 复制代码
<geometry s="95.89" x="-92.10" y="26.64" hdg="2.84" length="46.65">
  <spiral curvStart="-0.000490572" curvEnd="-0.004661241"/>
</geometry>
  • 曲率线性变化(curvStartcurvEnd
  • 需使用 Fresnel 积分或数值近似
  • 常用于高速公路匝道、城市道路转弯过渡段

poly3 / paramPoly3(三次曲线)

xml 复制代码
<geometry s="0.0" x="0.0" y="0.0" hdg="0.0" length="30.0">
  <poly3 a="0.0" b="0.0" c="0.1" d="-0.002"/>
</geometry>
  • 用于复杂路口连接段
  • poly3: u = s, v = a + bu + cu² + d*u³
  • paramPoly3: 参数化表达,更灵活

完整示例(组合多种几何):

xml 复制代码
<planView>
  <geometry s="0.0" x="0.0" y="0.0" hdg="0.0" length="100.0">
    <line/>
  </geometry>
  <geometry s="100.0" x="100.0" y="0.0" hdg="0.0" length="47.12">
    <arc curvature="0.05"/>
  </geometry>
  <geometry s="147.12" x="145.45" y="16.89" hdg="2.356" length="30.0">
    <spiral curvStart="0.05" curvEnd="-0.1"/>
  </geometry>
  <geometry s="177.12" x="158.33" y="43.21" hdg="1.571" length="100.0">
    <line/>
  </geometry>
</planView>

参考:esmini curves.xodr、官方示例 Ex_Line-Spiral-Arc.xodr

4.3 采样建议

  • 可视化:ds = 1-2m
  • 路由:ds = 0.5-1m
  • 轨迹:ds = 0.1-0.5m(高曲率处加密)

5. 高程与横向形态

5.1 elevationProfile

分段三次多项式定义高程:

复制代码
z(s) = a + b*ds + c*ds^2 + d*ds^3

5.2 lateralProfile

关键元素

  • superelevation:超高(横断面滚转)
  • crossfall:横坡
  • shape:横向曲面形状

作用:与高程共同决定任意(s,t)点的道路表面高度

5.3 自动驾驶应用

影响

  • 车身姿态与坡度估计(定位)
  • 高速弯道速度规划(规划)

建议:平面规划可忽略,高保真仿真需考虑


6. lanes:车道系统

6.1 laneSection

<lanes> 包含多个 <laneSection>,每个定义一段的车道结构:

  • <left>:左侧车道(id > 0)
  • <center>:中心车道(id = 0)
  • <right>:右侧车道(id < 0)

6.2 lane id 规则

  • id = 0:中心参考车道(不用于行驶)
  • id > 0:左侧车道,id 越大越远离中心
  • id < 0:右侧车道,绝对值越大越远离中心

6.3 laneOffset

车道参考线相对道路参考线的横向偏移(分段三次多项式)。

作用

  • 无偏移时,center lane 与 road reference line 重合
  • 有偏移时,计算车道边界需加上偏移量

6.4 lane width / border

分段三次多项式定义车道宽度:

复制代码
width(s) = a + b*ds + c*ds^2 + d*ds^3

6.5 lane type

车道类型

  • 可行驶:drivingentryexitonRampoffRamp
  • 受限区域:restrictedstopmedianshoulder
  • 非机动车:walkingbikingshared

建议:映射为系统内部类型,避免硬编码

6.6 车道边界计算

步骤

  1. 沿 s 采样(0.5-1m 间隔)
  2. 计算参考线坐标与切向
  3. 应用 laneOffset 和 width
  4. 将(s,t)转为惯性坐标
  5. 生成多边形

关键:OpenDRIVE 属性多为解析式函数,需离散采样后转为几何数据结构

6.7 roadMark:道路标线(变道规则/车道线类型的常用来源)

典型结构:

xml 复制代码
<roadMark sOffset="0" type="broken" color="standard" width="0.12" laneChange="both">
  <type name="broken" width="0.12">
    <line length="4" space="8" .../>
  </type>
</roadMark>

见样例:...\examples\Ex_Bidirectional_Junction\Ex_Bidirectional_Junction.xodr

工程解释:

  • roadMark@type:简化标线类型(solid/broken/...)
  • laneChange:是否允许变道(increase/decrease/both/none)
  • 细节 type/line:用于更精细渲染/规则表达(虚线段长、间隔等)

自动驾驶策略上:roadMark 通常用于"允许/禁止跨越"与"车道线语义";但真实系统还会融合感知/法规/高精地图的更强语义。

6.7.1 laneChange 的工程解释(increase/decrease/both/none)

laneChange 的本意是"跨越该标线时是否允许变道"。工程实现时建议:

  • 明确 increase/decrease 在你的实现里对应"向左还是向右"(它与 lane id 编号体系、以及你定义的车道顺序有关)
  • 同时结合 road@rule(RHT/LHT)与本地交通法规(有的国家/场景左侧/右侧变道约束不同)

6.8 lane link:车道拓扑的"缝合"

lane link 出现在两处:

  1. road 内:road/link(road 与 road/junction 的前后继关系)
  2. lane 内:lane/link(当前 lane 与前后 lane 的对应关系:predecessor/successor)

路口里更关键 的是 junction/connection 下的 laneLink from/to(见第 7 章)。


7. junction:路口拓扑

7.1 基本结构

最简单的路口(单个连接):

xml 复制代码
<junction id="1" name="SimpleJunction" type="default">
  <connection id="0" incomingRoad="6" connectingRoad="2" contactPoint="start">
    <laneLink from="1" to="-1"/>
  </connection>
</junction>

十字路口示例(多个连接):

xml 复制代码
<junction id="1" name="CrossJunction" type="default">
  <!-- 北向南直行 -->
  <connection id="0" incomingRoad="1" connectingRoad="10" contactPoint="start">
    <laneLink from="-1" to="-1"/>
    <laneLink from="-2" to="-2"/>
  </connection>
  <!-- 北向东右转 -->
  <connection id="1" incomingRoad="1" connectingRoad="11" contactPoint="start">
    <laneLink from="-1" to="-1"/>
  </connection>
  <!-- 东向西直行 -->
  <connection id="2" incomingRoad="2" connectingRoad="12" contactPoint="start">
    <laneLink from="-1" to="-1"/>
  </connection>
  <!-- 东向南右转 -->
  <connection id="3" incomingRoad="2" connectingRoad="13" contactPoint="start">
    <laneLink from="-1" to="-1"/>
  </connection>
</junction>

关键字段

  • incomingRoad:进入路口的道路
  • connectingRoad:路口内部连接道路(junction内road的id)
  • contactPoint:连接点(start/end)
  • laneLink from/to:车道映射关系
    • from:incomingRoad的lane id
    • to:connectingRoad的lane id

虚拟路口(直接连接,不含connecting road):

xml 复制代码
<junction id="555" name="myJunction" type="virtual">
  <connection id="0" incomingRoad="1" connectingRoad="2" contactPoint="start">
    <laneLink from="-2" to="-1"/>
  </connection>
</junction>

用于简化场景,直接连接两条道路

直接路口(direct junction):

xml 复制代码
<junction id="111" name="" type="direct">
  <connection id="0" incomingRoad="1" linkedRoad="3" contactPoint="start">
    <laneLink from="-4" to="-1"/>
  </connection>
  <connection id="1" incomingRoad="1" linkedRoad="2" contactPoint="start">
    <laneLink from="1" to="1"/>
    <laneLink from="-1" to="-1"/>
  </connection>
</junction>

使用 linkedRoad 替代 connectingRoad,适用于简单分岔

7.2 自动驾驶应用

车道图构建

  • 节点:lane 或 lane segment
  • 边:直行边(predecessor/successor)+ 路口边(junction connection)

规划应用

  • 车道级路径搜索
  • 路口内转向选择
  • 结合信号灯做行为决策

7.3 connectingRoad

路口内部连接段,好处:

  • 可精确建模路口内几何
  • 拓扑清晰:incomingRoad → connectingRoad → outgoingRoad

8. signals 与 controller

8.1 signal 基本属性

基本信号示例(德国限速标志):

xml 复制代码
<signals>
  <signal s="3981.42" t="-14.05" id="5000162" name="Vorschriftzeichen"
          dynamic="no" orientation="+" zOffset="3.88"
          country="DE" countryRevision="2017" type="274" subtype="-1"
          value="50" unit="km/h">
    <validity fromLane="-3" toLane="-1"/>
  </signal>
</signals>

关键属性

  • s, t:位置(s沿道路参考线,t横向偏移)
  • zOffset:垂直高度偏移
  • orientation:方向
    • +:对正向(s增大方向)有效
    • -:对反向有效
    • none:双向有效
  • type/subtype/country:语义编码(需查询标准)
    • DE 274 = 德国限速标志
    • DE 1000001 = 德国交通灯
  • value/unit:数值(如限速 50 km/h)
  • dynamic:是否为动态信号(yes/no)

有效范围(validity):

xml 复制代码
<signal s="100.0" t="5.0" id="1001" type="206" orientation="+">
  <validity fromLane="-2" toLane="-1"/>
</signal>

此信号仅对 lane -2 和 lane -1 有效

交通信号灯示例

xml 复制代码
<signal s="150.0" t="-3.5" id="2001" name="TrafficLight"
        dynamic="yes" orientation="+" zOffset="5.0"
        country="DE" type="1000001" subtype="-1">
  <validity fromLane="-1" toLane="-1"/>
</signal>

dynamic="yes" 表示信号状态可变(红绿灯)

8.2 dependency

表达信号组合关系(如限速 + 车型限制)

8.3 controller

将多个信号归为同一控制逻辑(如信号灯相位)

8.4 限速优先级

  1. signals(最高优先级)
  2. road/type/speed
  3. header/defaultRegulations
  4. 系统默认值

9. objects:静态对象

9.1 基本属性

  • s, t, zOffset:位置
  • hdg, pitch, roll:姿态
  • length, width, height:尺寸

9.2 outline

表达对象轮廓(停车位、人行横道、交通岛等)

应用:转为多边形,用于碰撞检测和可行驶区域裁剪

9.3 surface/CRG

对象级高分辨率表面(如坑洼),用于精细仿真


10. surface / OpenCRG

10.1 road/surface/CRG

绑定 OpenCRG 文件,提供高分辨率路面数据

10.2 应用场景

  • 车辆动力学仿真
  • IMU/振动/坡度效应
  • 路面细节仿真(坑洼、减速带)

建议:感知-定位-规划链路通常不需要,仿真场景可选


11. 自动驾驶应用

11.1 地图层抽取

  1. 可行驶区域:lane type + width/border
  2. 车道线:参考线 + laneOffset + width + roadMark
  3. 车道拓扑:lane link + junction connection
  4. 交通规则:signals + roadMark laneChange
  5. 静态对象:objects

11.2 定位

方法

  • 车道线/路缘匹配
  • 曲率/坡度特征匹配

优势

  • 连续函数便于生成任意分辨率特征点
  • 拓扑约束防止匹配跳跃

11.3 规划

应用

  • Route:车道级路由
  • Behavior:路口转向 + 信号灯
  • Motion:车道内轨迹生成

注意:信号编码需建立国家标准映射表

11.4 数据结构建议

几何层

  • ReferenceLineSegment、ElevationSegments
  • LaneBoundaryPolyline(采样后的边界点列)

拓扑层

  • LaneNode、LaneEdge
  • turnType(left/right/straight/uturn)

好处

  • 规划依赖拓扑层
  • 渲染依赖几何层
  • 便于单元测试

11.5 与 HD Map 的关系

OpenDRIVE 常作为输入/交换格式,最终转为内部 HD Map。

OpenDRIVE 优势 :解析式几何 + 明确拓扑
HD Map 优势:语义层 + 增量更新 + 版本管理

建议:将导入视为编译过程,保留可追溯性

11.6 与 OpenSCENARIO 组合

  • OpenDRIVE:静态路网
  • OpenSCENARIO:动态行为

好处

  • 同一地图生成多场景
  • 同一场景复用到多地图

12. 工程实践

12.1 解析策略

  1. 用 XML 解析器读取结构
  2. 按 XSD 建模(结构)+ 系统需求建模(语义)
  3. 离散采样转为工程结构

12.2 XSD 校验

导入前用 XSD 校验,提前发现错误

12.3 可视化工具

使用 odrviewer 查看地图:

  • 左键旋转、右键缩放、中键平移
  • o:切换道路特征线
  • p:切换环境模型

12.4 常见问题

  1. road.length ≠ sum(geometry.length)
  2. laneOffset/width 不连续导致尖刺
  3. junction laneLink 映射错误
  4. signals orientation 设置错误

12.5 导入检查清单

结构校验

  • XSD 验证通过

数值检查

  • road.length > 0
  • geometry.s 单调递增
  • laneSection.s 单调递增

引用一致性

  • junction 引用的 roadId 存在
  • laneLink 引用的 laneId 存在
  • controller 引用的 signalId 存在

连通性

  • 至少一条可行驶路径连通

13. 其他元素

13.1 railroad / station

支持铁路/站台建模,适用于轨道交通仿真

13.2 additionalData

  • dataQuality:数据来源、精度
  • include:引用额外文件
  • userData:自定义扩展

建议:跨工具链传递时,用 userData 并制定 schema

13.3 geoReference

将地图对齐真实世界坐标(强烈建议配置)

方法

  • 在 header/geoReference 写入 PROJ/WKT
  • 统一地图与定位坐标系

附录 A:示例文件索引

说明:本节列出可用的OpenDRIVE示例文件及其来源

A.1 ASAM官方示例(需注册下载)

ASAM OpenDRIVE 下载deliverables后,在 examples/use_cases/ 目录中包含:

几何示例

  • Ex_Line-Spiral-Arc.xodr:直线、缓和曲线、圆弧组合
  • Ex_Poly3.xodr:三次曲线
  • UC_ParamPoly3.xodr:参数三次曲线

车道示例

  • Ex_Lane-Width.xodr:车道宽度变化
  • Ex_Lane-Border.xodr:车道边界
  • Ex_Simple-LaneOffset.xodr:车道偏移

路口示例

  • UC_Simple-X-Junction.xodr:十字路口
  • UC_Simple-X-Junction-TrafficLights.xodr:带信号灯路口
  • UC_5Road_Junction.xodr:五路复杂路口
  • Ex_Bidirectional_Junction/Ex_Bidirectional_Junction.xodr:双向路口

信号示例

  • Ex_Signal-Dependency.xodr:信号依赖关系

对象示例

  • Ex_Objects.xodr:静态对象集合
  • Ex_Pedestrian_Crossing.xodr:人行横道
  • Ex_Parkingspace_Rectangular.xodr:矩形停车位

路面示例

  • Ex_CrossSectionSurface/Ex_Roof_Profile_1Strip.xodr:横断面
  • Ex_Object-Surface.xodr:CRG路面

A.2 esmini开源示例(推荐用于学习)

esmini/resources/xodr 下载:

基础几何

  • straight_500m.xodr:500米直线道路
  • straight_500m_signs.xodr:带标志的直线道路
  • curve_r100.xodr:半径100m圆弧
  • curves.xodr:包含直线、圆弧、缓和曲线组合
  • curves_elevation.xodr:带高程的曲线道路
  • crest-curve.xodr:凸形曲线(crest curve)

复杂道路

  • fabriksgatan.xodr:城市街道场景
  • jolengatan.xodr:城市道路网络
  • soderleden.xodr:高速公路场景
  • e6mini.xodr:迷你高速公路
  • e6mini-lht.xodr:左侧通行版本

路口场景

  • multi_intersections.xodr:多路口场景
  • two_plus_one.xodr:2+1车道道路

道路标记

  • straight_500m_roadmarks.xodr:带道路标线

下载命令

bash 复制代码
# 下载单个文件示例(使用wget或curl)
wget https://raw.githubusercontent.com/esmini/esmini/master/resources/xodr/straight_500m.xodr

# 或克隆完整仓库
git clone https://github.com/esmini/esmini.git
cd esmini/resources/xodr

A.3 CARLA示例

carla-simulator/opendrive-test-files 下载:

  • Town01.xodr ~ Town12.xodr:CARLA仿真器城镇地图
  • 包含复杂的城市道路网络、路口、交通信号

附录 B:核心概念

  1. planView:绘制 2D 参考线
  2. elevationProfile + lateralProfile:转为 3D 道路表面
  3. lanes:铺设车道(laneOffset + width + roadMark)
  4. junction:连接车道拓扑
  5. signals/objects:添加规则和对象

附录 C:参考资料

C.1 官方规范文档

ASAM OpenDRIVE 1.8.1

关键章节

历史版本

C.2 工具与库

解析库

可视化工具

相关标准

C.3 社区资源


附录 D:关键元素速查表(字段→含义→工程用途)

D.1 <header>

常见属性

  • revMajor/revMinor:OpenDRIVE 格式版本(例:1.8)
  • name/version/date/vendor:数据集信息(用于溯源与版本管理)
  • north/south/east/west:惯性坐标系包围盒(便于快速裁剪/索引)

常见子元素

  • geoReference:坐标参考(PROJ/WKT 等字符串),用于对齐真实世界坐标
  • offset:整体偏移(工具链中常用于把原点挪到更合适的数值范围)
  • license:许可信息
  • defaultRegulations:默认法规(可被 road/lane/signal 覆盖)
  • dataQuality/include/userData:额外数据(见第 13 章)

自动驾驶用途

  • geoReference + offset 是"地图坐标对齐"的基础;默认法规常用于"无标志时的默认限速/规则兜底"。

D.2 <road>

常见属性

  • id:road 唯一标识(全局唯一,字符串但常用数字)
  • junction:所属 junction id;-1 表示不在 junction 内
  • length:参考线在 xy 平面长度(高度变化不计入)
  • rule:交通规则(RHT/LHT),影响默认行驶侧与部分解释
  • name:可选名称

常见子元素

  • link:与前后 road 或 junction 的连接
  • type:road 类型(town/motorway/...),可带 speed(默认限速)
  • planView:参考线 2D 几何
  • elevationProfile / lateralProfile:3D/横断面
  • lanes:车道系统(最关键)
  • signals / objects:规则要素与静态对象
  • surface/CRG:高分辨率表面(可选)

D.3 <road>/<link>(road 级连接)

常见子元素

  • predecessor / successor
    • elementTyperoadjunction
    • elementId:目标 id
    • contactPointstart/end(当 elementType=road 时常见)

工程用途

  • 用于构建 road 级拓扑;真正车道级通行还要结合 lane link 与 junction laneLink。

D.4 <planView>/<geometry>

通用属性

  • s:该段起点的 s
  • x,y:该段起点惯性坐标
  • hdg:该段起点航向(xy 平面)
  • length:该段长度

段类型

  • line:直线
  • arc curvature="k":常曲率圆弧(k>0 左转,k<0 右转)
  • spiral curvStart/curvEnd:缓和曲线(曲率线性变化)
  • poly3 a,b,c,d:三次曲线(局部坐标表达)
  • paramPoly3 aU,bU,cU,dU,aV,bV,cV,dV,pRange:参数三次曲线

D.5 <lanes><laneSection>

laneSection@s

  • 该 laneSection 的起点 s;laneSection 之间按 s 递增拼接。

三组 lanes

  • <left>:id>0
  • <center>:常见 id=0
  • <right>:id<0

D.6 <lane>(车道)

常见属性

  • id:车道编号(正左负右,0 中心)
  • type:用途(driving/entry/exit/walking/...)
  • level:是否与参考平面等高(工程上可作为 3D 解释开关)
  • 可选 direction:对向/同向等(用于一些双向车道表达)

常见子元素

  • link:该车道的 predecessor/successor lane id
  • width / border:宽度/边界随 s 变化(分段三次多项式)
  • roadMark:标线(类型、颜色、宽度、laneChange 等)
  • access:通行限制(允许/禁止某类参与者,某些 lane type 建议用 access 表达)

D.7 <laneOffset>

属性

  • s:段起点
  • a,b,c,d:偏移多项式

用途

  • 表达"车道体系整体相对参考线的偏移"(例如道路拓宽、中心线偏移)。

D.8 <roadMark>

常见属性

  • type:简化标线类型(solid/broken/...)
  • color:颜色(standard/white/yellow/...)
  • width:标线宽度
  • laneChange:是否允许跨越(increase/decrease/both/none)

用途

  • 变道/越线规则、车道边界语义、仿真渲染参数来源。

D.9 <junction>/<connection>/<laneLink>

关键字段

  • incomingRoad:进入路口的 road
  • connectingRoad:路口内部连接段 road
  • laneLink from/to:incomingRoad 的 lane → connectingRoad 的 lane 映射

用途

  • 构建路口内的车道连通关系;是车道级路由最关键的输入之一。

D.10 <signal>(标志/信号)

常见属性

  • s,t:放置位置
  • id,name:标识与可读名称
  • type/subtype/country/countryRevision:语义编码(通常需查标准映射)
  • orientation
    • "+":对正 s 方向有效
    • "-":对负 s 方向有效
    • "none":双向有效
  • value/unit:数值型信号(常见:限速)
  • dynamic:是否动态(对可变信息板/可变限速更重要)

常见子元素

  • validity:有效车道范围(很多规则都要靠它精确到 lane)
  • dependency:组合/依赖信号(见 Ex_Signal-Dependency.xodr

D.11 <object>(静态对象)

常见属性

  • s,t,zOffset:放置位置与高度偏移
  • hdg/pitch/roll:姿态
  • length/width/height:尺寸

常见子元素

  • outline:轮廓(用于占用区域、碰撞几何)
  • surface/CRG:对象表面细节(坑洼等)

免责声明

本文档仅供技术学习和交流使用,所有内容基于公开的ASAM OpenDRIVE标准规范和开源示例整理而成。

重要说明

  • 本文档不构成任何形式的官方标准或技术规范,仅为个人学习笔记和技术总结
  • 文档内容可能存在理解偏差或错误,实际应用请以ASAM官方规范为准
  • 本文档引用的示例代码和数据均来自开源项目或官方示例,遵循各自的开源协议
  • 使用本文档内容导致的任何直接或间接损失,作者不承担责任
  • 在实际项目中应用OpenDRIVE标准时,请严格遵循相关国家和地区的法律法规

相关资源

相关推荐
QianCenRealSim4 个月前
“矿山”自动驾驶“路网”编辑功能实现
人工智能·自动驾驶·opendrive·矿山自动驾驶·矿山路网编辑·openscenario
深度混淆1 年前
C#,自动驾驶技术,ASAM OpenDRIVE BS 1.8.0 规范摘要与C# .NET Parser
开发语言·c#·自动驾驶·opendrive
SmileorSilence2 年前
XML 学习笔记 7:XSD
xml·schema·xsd