知识产权
导航数据标准(NDS)注册协会发布了这个式样文档,在下文简称为NDS注册协会。它被作为一个发展关系和和信息的目的。NDS注册协会对于任何使用这个式样不承担责任。随着NDS的PSF式样的发展的完成,商业开发的license将只对通过license协议的用户使用。
NDS PSF和
1.关于这个文档
这个章节紧跟这个文章的摘要,给了一个这个文档的历史、目的、主题和目标群体的整体概述。
1.1 目的和主题
这个文档包括NDS的的式样,一个标准的导航系统的存储格式。这个格式一直被NDS注册协会发展,这个协会是一个制造商、系统供应商和地图供应商的注册协会。
12 Routing: Advanced Driver Assistance (ADAS)
先进的驾驶辅助(ADAS)功能性是一个通过地图数据支撑的系统基础功能。NDS提供了数据结构,使得其可能提供不同得适配数据来应对不同的ADAS协议。
12.1 提供给ADAS得数据结构
NDS通过ADAS属性、增强ADAS属性和额外的ADAS几何数据来支持ADAS功能。这些方法相互紧密联系,根据导航系统和使用情况,能够为ADAS功能提供不同层次的细节。另一个区分ADAS属性和ADAS几何地理属性的理由是ADAS属性可能被用于其他目的,比如地图匹配。
Routing metadata包括了是否ADAS数据可用于update region的信息,具体详情查看227页的“Routing Metadata”。
DataScript位置:nds.shareddb > RoutingMetadata > adasAttributeTypeAvailability.
NDS支持下面几种类型的ADAS数据:
■ 基本的ADAS信息,比如物理宽度、曲率、坡度和几何转向,具体看338页12.2章节 “Basic ADAS Information”
■ 扩展的ADAS信息,比如扩展的,具体看355页12.3章节 “Extended ADAS Information: Enhanced Geometry”和 362页12.4章节“Extended ADAS Information: Elevation Profiles”
■ 样条信息,具体看978页29.11章节 的“Non-Uniform Rational B-Splines and Curves”
12.2 基本的ADAS信息
提供给先进的驾驶辅助(ADAS)的属性被存储在一个分隔开的ADAS属性图层。ADAS属性包括一些可以支撑ADAS的应用,比如细化的道路地理几何。ADAS属性在13层被用于基本link、道路几何线和过渡。需要更多属性图层信息,可以去看128页6.2章节“Attribute Layers”。
DataScript位置:nds.common.flexattr.valuecodes > AttributeTypeCode
因为属性改变可以发生在道路特征没有形点的位置,所以ADAS属性额外使用了属性点用于空间描述。为了使高精度的ADAS生效,编译器可能添加额外的属性点。如果需要更多的属性点信息,查看130页章节6.3的“Attribute Points,Shape Points, and Validity Ranges”。
NDS提供了两种可用途径去存储ADAS数据:
■ 通过形点、属性点和ADAS属性
■ 通过一个改进的带坡度线的布洛伊德曲线模型
这两种存储ADAS数据的概念可能同时存在。NDS不允许混淆这个概念,除了SLOPE_ARRAY 属性点,有可能与布洛伊德曲线几何存储在一起。如果没有改进的布洛伊德曲线几何,改进的坡度线将不会被存储。
Examples of ADAS Attributes
下面给了ADAS属性的例子:
■ CURVATURE and CURVATURE_ADASIS_204
Curvature可能作为属性附加在道路特征上的形点或者属性点被存储起来。为了使量化的错误最小化,曲率将如同ADASIS中定义的被编码。需要更多信息,请查看在DataScript中对于属性的描述。
Caution
由于在NDS2.0.4里面编码方式的改变,NDS为Curvature提供了两种设置属性的方法。正如在2.0.3及其以前版本中ADASIS中定义的一样,利用sequence (序列)的Curvature编码curvature的值。在ADASIS2.0.4版本中定义的一样,利用sequence (序列)的CurvatureAdasis204 编码curvature的值。在这些sequence (序列)中,属性是相同的,除了名字和编码值。
查看342页12.2.1章节中 “Curvature Profile”
■ SLOPE_ARRAY
slope(坡度)通过一序列坡度值给定的点进行描述。
查看352页12.2.4章节中 “Slope Profile”
■ LANE_WIDTH_ARRAY
储存了一序列的给定了一个车道宽度数值的点。
查看352页12.2.5章节中 “Modeling the Width of Normal and Exit Lanes”
■ SUPERELEVATION(横向坡度)
描述了道路或者道路段在相同驾驶方向所有车道上的平均superelevation (横向坡度)。如果没有车道边界几何被存储,这个属性可能包含单一道路的横向坡度。应用使用superelevation (横向坡度)来决定在曲线上的合理的驾驶速度。
■ FRICTION
存储了特定的天气情况下或者轮胎类型的摩擦系数。应用使用摩擦系数来决定合理的驾驶速度。
■ HAS_SIDEWALK and VULNERABLE_ROAD_USERS
HAS_SIDEWALK 显示了一个靠近道路的人行道。
VULNERABLE_ROAD_USERS 显示了弱势的道路使用者,比如在道路上移动的自行车或者行人。应用能够使用这些属性信息去估算道路使用弱势群体穿越车辆道路的风险。
DataScript 位置: nds.common.flexattr.valuecodes > AttributeTypeCode
ADAS Attributes and Tiles(ADAS属性和瓦片)
关于ADAS属性和瓦片,适用下列的规则:
■ 在ADAS属性的数据将变成自包含的(不需要依赖外部的元素),以便系统不需要从相邻的瓦片加载数据进行计算。
■ 为了实现在每个tile(瓦片)自我包含的数据,如果道路几何线代表了一个有坡度、评价或者曲率的路线link,编译器将在tile(瓦片)边界处对道路地理几何线的结束位置产生附加的属性点。这些属性点将与道路几何线一起被存储。
如果在tile(瓦片)边界和link的尾端没有更多的curvature值,编译器不需要存储carvature值用于附加的属性点。241页图片12-1展示了一个示例:Route link A延申包含了三个tile(瓦片),它通过道路几何线A1,A2,A3来表示。对于ADAS属性,编译器在道路几何线A1,A2,A3上添加了属性点2和属性点6。
– 在属性点1和属性点3之间,属性点2包含了坡度、评价和曲率的一个线性插值。
– 在属性点5和属性点7之间,属性点6包含了坡度、评价和曲率的一个线性插值。在驾驶的道路上,在link的尾端,一个curvature (曲率)值将不被储存,因为它取决于TURN_GEOMETRY_CURVATURE的值。
Figure 12-1: Additional attribute points for curvature profile over several tiles
Interpolation of ADAS Attributes(ADAS属性的插值)
曲率和坡度使用线性属性表示,在242页图12-2可以看到。
The ADASIS Standardization Forum(ADASIS标准化论坛)也在基于地图的轨迹预览上使用这种表示方法。
线性属性表示沿轨道计算的轮廓坐标(s)的计算值,这些值通过对两个相邻的轮廓点进行插值来计算。在342页的图12-2说明了这点。
Figure 12-2: Different kinds of interpolation for profiles (profile view)
在NDS未来的版本中,更多的ADAS属性可能被添加。这些属性可能使用其他种类的插值。定义了限速或者车道数的属性,例如 discrete profile (zero order),在点跳跃性改变的时候,将会是一个常量值。
Note
它也有可能使用来自于ADAS其他属性图层的属性,比如警告标志和限速。
12.2.1 Curvature Profile
曲率值可能被储存在CURVATURE 属性中,在这些值之间使用线性插值,附加在道路特征形点或者属性点上。为了最小化量化的错误,曲率在ADASIS中被编码。
DataScript 位置: nds.common.flexattr.valuecodes > AttributeTypeCode > CURVATURE
沿轨道曲率profile (属性)由附加到形点或道路几何体上的曲率值表示 (所谓的 profile spots)。
在两个profile spots(属性点)之间的曲率值通过线性插值进行计算。为了在link上所有点上插值曲率,第一个和最后一个形点要求赋予曲率值。
线性插值产生了一个与NURBS或者“布洛伊德曲线”相似的几何,这确保了一个平滑的曲率表示。这个表示支持大多数使用曲率作为速度的一个限制因素的ADAS应用,比如曲线速度警告和曲线ACC(适配巡航控制)。它也提供了基于车辆相关概念的辅助支持作用,比如自适应弯道灯光、横向转向支持和ACC目标丢失预测。
通过一个插值曲率属性构造的曲线可能与来自形点几何的不一样。依赖于轨迹的绝对地面真实性的ADAS应用需要增强的ADAS几何信息,查看355页章节12.3的“Extended ADAS Information: Enhanced Geometry” 。
12.2.2 Modeling Curvature Profiles Across Intersections(经过连接点构建曲率属性)
在交接点的转向曲率可以使用TURN_GEOMETRY_CURVATURE 属性来模型化。
如果TURN_GEOMETRY_CURVATURE 存在,那么转向几个属性将被使用,而不是使用上一个profile spot(属性点)的curvature 曲率值。如果TURN_GEOMETRY_CURVATURE不存在,那么用于联接点的属性的curvature 曲率值将被使用。
在交接点处有有效的曲率属性而不是unknown,下列规则适用于交接点的过渡:对于每一个合法的被允许的过渡,一个唯一的曲率值将存在。如果只有一个这样的过渡是可能的,那么转向几何是可以选的,可以使用属性点的曲率。如果有两个或者更多的过渡是可能的,那么除了一个过渡之外,所有其他过渡都应该提供转向几何值。
Note
如果在交接属性点储存的carvature的值是0而且转向几何不能获取到,那么这个应用认为这个过渡是直行。
Example 1
图表12-3展示了一个连接着4条包含profile spots(属性点)的link A、B、C、D的联接点。对于所有属性点来说曲率值都是存在的。没有属性点的Curvature 值为UNKNOWN。
对于所有转向通行,Turn geometry curvature(转向曲率)值是存在的,比如从A到B。对于直行通行,不存在转向几何数据,比如,从A到C。
Figure 12-3: Intersection with curvature profile for all links
Table 12-1 显示了link A上的曲率值。
从link A到link B通行的TURN_GEOMETRY_CURVATURE属性 被设置为0.02。
Table 12-1: Curvature values on link A
Profile spot | Value (1/m) |
---|---|
0 | 0 |
1 | 0 |
2 | 0.01 |
3 | 0 |
4 | 0 |
5 | 0 |
6 | 0 |
从link A到link B,在link A上的属性点5不会用于通行,因为它表示一个直线通行。会使用turn geometry(转向几个)值作为替换。
Figure 12-4显示了曲率属性的结果。
Figure 12-4: Curvature profile along the path A > B(沿着从A到B的Curvature属性)
Example 2
Figure 12-5 显示了一个包含四条link A,B,C,D的联接点,其包含了从A到C的属性点。Link B和link D没有curvature profile(曲率属性)。对于所有属性点其Curvature 值是存在的。没有属性点的曲率值是UNKNOWN。
Figure 12-5: Intersection with curvature profile for two links
没有turn geometry curvature值是必须的,因为在这个地方没有有曲率属性的转向通行。
Example 3
Figure 12-6显示了一个包含三条link A,B,C的联接点,包含所有link上的属性点。
Link A和Link C有有效的curvature 数据,包括结束点。Link B在属性点B0和B1有有效的curvature 值,在结束点B2处(与A5在同一位置)为UNKNOWN 值。
Figure 12-6: Intersection with curvature profile for three links
没有turn geometry curvature值是必须的。从A到B的通行的曲率属性对于通行过渡点获取到的值是UNKNOWN,表示这个转向的曲率值是不知道的。
12.2.3 Modeling Curvature and Speed Profiles along a Path(沿着路径对曲率和速度属性建模)
在一些情况下,沿着道路上对于曲率和适合的速度的属性取决于一序列的多条base link(基本link)或者道路几何线。为了使沿着道路的曲率和合适的速度属性模型化,NDS提供了下列可变属性:
■ TURN_GEOMETRY_CURVATURE and COMFORTABLE_SPEED
用于两个特征序列,对于这个通行过渡点仅仅要求一个单一属性值。编译器将赋予这个属性到这个过渡通行上。
■ COMFORTABLE_SPEED_PATH and CURVATURE_PATH or CURVATURE_ADASIS_204_PATH
用于要求多个属性值的两个特征序列,和超过两个的特征序列。编译器将赋予这个属性到这个序列的第一个特征。
Caution
由于在ADASIS 2.0.4版本里面一个编码方式的改变,NDS为曲率道路提供了两种设置属性方法:这个sequence(序列)CurvaturePath 编码了截至ADASIS 2.0.3版本中定义的曲率值。这个sequence(序列)CurvatureAdasis204Path编码了ADASIS 2.0.4版本中定义的曲率值。这些属性在这些序列中除了名称和编码值其他都是相同的。
Note
不应该在部分更新中使用COMFORTABLE_SPEED_PATH, CURVATURE_PATH和 CURVATURE_ADASIS_204_PATH,因为在更新期间这些相关的特性可能会变化。
DataScript 位置: nds.common.flexattr.valuecodes > AttributeTypeCode
为了找到一序列特征的正确曲率和速度值,需要遵守下面的规则:
■ 只有当完整的link序列是最有可能路径(MPP)时,应用程序才能应用一个曲率序列。
■ 为了从数据库中选择正确的link序列,应用程序将检查储存在link上的所有序列。应用程序将使用仍包含在MPP中的最长序列。
例如:如果MPP 时 A > B > C,而且数据库中包含序列 A > B, A > B > C, 和 A > B > C > D, 那么这个应用程序将使用A > B > C。
■ 当遵循一个link序列时,这个应用程序将不会考虑已经通过的link作为可替换的link序列。
Figure 12-7 on page 347 illustrates the trajectories of a vehicle for a straight transition
and a left turn transition across a small roundabout. While the vehicle must follow the
curvature of the roundabout for the left turn transition, the straight transition requires
only little steering. For the straight transition, the curvature profile values are lower and
the comfortable speed is higher.
Figure 12-7: Trajectories for transitions across a roundabout
Figure 12-8 on page 348 shows the links and intersections in the small roundabout. The
MPPs for the transitions are as follows:
■ Straight: E > A > B > G
■ Left turn: E > A > B > C > H
Figure 12-8: Example of links and intersections in a roundabout
The following sequences are stored in the database for the small roundabout:
■ Sequence 1: E > A > B > G (go straight)
■ Sequence 2: E > A (enter roundabout)
■ Sequence 3: A > B (stay in roundabout)
■ Sequence 4: B > C (stay in roundabout)
■ Sequence 5: C > H (exit roundabout)
The following sections illustrate how to model the transitions across the roundabout.
Modeling Straight Transition across Roundabout
For the straight transition, the MPP is E > A > B > G. The MPP starts at the end point of
link E and ends at the start point of link G. When reaching link E, the application chooses
sequence 1 because it is longer than sequence 2 and completely included in the MPP.
When passing links A and B, the application does not consider the sequences 3 or 4
because sequence 1 is still being processed.
Table 12-2 on page 348 shows how to fill the CURVATURE_PATH attribute assigned to
link E for the straight transition.
Table 12-2: Sample settings for straight transition: curvature
Table 12-3 on page 350 shows how to fill the COMFORTABLE_SPEED_PATH attribute
assigned to link E for the straight transition.
Table 12-3: Sample settings for straight transition: comfortable speed
Modeling Left Turn Transition across Roundabout
For the left turn transition, the MPP is E > A > B > C > H. To choose the correct link
sequences, the application performs the following steps:
The MPP starts at the end point of link E and ends at the start point of link H. When
reaching link E, the application chooses sequence 2 because sequence 1 is not included in
the MPP. When reaching link A, the application chooses sequence 3 because it is the next
sequence on the MPP. For the same reason, the application then chooses sequences 4 and
5.
Table 12-4 on page 351 shows the primary flexible attributes assigned for the left
turn transition. Because the two-link sequences only require a single profile value for
curvature and comfortable speed, the compiler uses TURN_GEOMETRY_CURVATURE and
COMFORTABLE_SPEED.
Table 12-4: Primary flexible attributes assigned to links in roundabout
持续更新中。。。