主要内容

公路网

在驾驶场景中添加道路网络

描述

爱好者

例子

公路网(设想“OpenDRIVE”,文件名进口来自爱人的道路®道路网文件进入驾驶场景。此功能支持OpenDrive万博1manbetx格式规范版本1.4h[1]

例子

公路网(设想,‘OpenDRIVE’,‘ShowLaneTypes’,showlanetypes.使用名称值对'showlanetypes'还可以从文件中导入车道类型信息,并在驾驶场景中显示它。

这里高清现场地图

例子

公路网(设想,'lekinghdlivemap',纬度lon从HERE高清实时地图导入道路[1](这里HDLM)道路网络进入驾驶场景。该功能导入最接近纬度和经度坐标的道路纬度lon, 分别。

例子

公路网(设想,'lekinghdlivemap',米拉特米洛龙Maxlat.Maxlon.此处导入HDLM道路,这些路至少部分地在由此指定的地理边界框内米拉特米洛龙Maxlat.,Maxlon.

OpenStreetMap.

例子

公路网(设想,'OpenStreetMap',文件名从OpenStreetMap进口道路®道路网文件进入驾驶场景。

Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)

例子

公路网(设想“ZenrinJapanMap”,纬度lon从一个进口道路Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)[2]道路网络进入驾驶场景。该功能导入最接近纬度和经度坐标的道路纬度lon, 分别。

从进口道路Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)数据需要支持包万博1manbetx自动驾驶工具箱™进口商Zenrin日本地图API 3.0 (Itsumo NAVI API 3.0)服务。有关安装支持包的信息,请参阅万博1manbetx获取和管理附加组件

例子

公路网(设想“ZenrinJapanMap”,米拉特米洛龙Maxlat.Maxlon.进口Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)路径至少部分位于指定的地理边界框内米拉特米洛龙Maxlat.,Maxlon.

例子

全部折叠

创建一个空的驾驶场景。

场景=驱动器Cenario;

在场景中导入一个opdrive道路网络。

FILEPATH =.“intersection.xodr”;Roadnetwork(情景,'爱好者', filePath);

通过设置轴限制来绘制方案并放大路线上。

绘图(方案)XLIM([350 800])ylim([1400 2000])zlim([0.00 10.00])

图包含轴。轴包含2个类型的贴片物体。

创建一个空的驾驶场景。

场景=驱动器Cenario;

将由驾驶和停车道组成的开场主路进入方案。默认情况下,该函数解释车道类型信息,并将车道导入驱动方案而不改变车道类型。

FILEPATH =.“parking.xodr”;Roadnetwork(情景,'爱好者', filePath);

绘制场景。

绘图(方案)缩放(2)传奇(“驾驶车道”'停车场'

图包含轴。轴包含3个类型的贴片物体。这些物体代表驾驶车道,停车场。

将开场主的道路进入方案。设定'showlanetypes'价值抑制多个车道类型。该函数忽略车道类型信息,将所有车道导入为车道。

场景=驱动器Cenario;Roadnetwork(情景,'爱好者',文件路径,'showlanetypes',错误的);绘图(方案)缩放(2)

图包含轴。轴包含2个类型的贴片物体。

此处导入HDLM道路网络数据,其最接近指定的驱动路径的坐标进入驾驶场景。在驾驶场景中绘制这条路线之后的车辆。

载入与驾驶路线相对应的地理坐标序列。

data =负载('geosequence.mat');Lat = data.latitude;lon = data.longitude;

通过在地理播放器上串流坐标显示路线。将缩放级别设置为14,并设置玩家显示其历史中的所有点。为了加快流的速度,在路线中只绘制每十分之一的坐标。

zoomlevel = 14;玩家= Geoplayer(Lat(1),Lon(1),Zoomlevel,'历史中心',INF);Timestep = 10;为了i = 1:时间步骤:长度(LAT)绘图(播放器,LAT(i),lon(i));结束

创造一个驾驶场景。导入离驾驶路线最接近的HDLM路数据进入方案。

场景=驱动器Cenario;Roadnetwork(情景,“HEREHDLiveMap”纬度,经度);

使用Latlon2local.将驾驶路线从地理坐标转换为当地东北(ENU)笛卡尔坐标,用于转换从地理坐标到驾驶场景中使用的笛卡尔坐标。对于ENU坐标系的起源,使用存储在的地理路线GeoReference场景的属性。原点是驾驶路径中指定的第一个坐标。因为驾驶路线仅包含纬度和纵向数据,因此将高度设置为0.

alt = 0;Origin = Scenario.geOreference;[Xeast,Ynorth,zup] =拉丁龙(Lat,Lon,Alt,Origin);

将车辆添加到驾驶场景中。指定转换后的行驶路线作为车辆的轨迹。设车速为每秒30米。

v =车辆(方案,'班级号'1);速度= 30;smoothTrajectory (v, [xEast yNorth, z上),速度);

绘制场景,每0.01秒暂停一次以降低模拟速度。若要与地理坐标显示保持相同的对齐方式,则X-轴在底部,而y-axis在左边。在没有从地图导入的驾驶场景中X-轴在左侧,而y-axis在底部。这种对齐与自动驾驶工具箱™世界坐标系统一致。

几秒钟后,车辆似乎在道路下面驱动。出现此问题的原因是转换后的轨迹不包含海拔高度数据,而是导入的道路网络。为避免此问题,如果要指定从GPS录制的驱动路由,请包括高度数据。

情节(方案)前进(方案)暂停(0.01)结束

将HDLM道路网络数据导入驱动方案。从围绕指定地理坐标围绕的区域中选择此数据。

定义一个与绕道相对应的经纬度坐标。

拉茨中心= 42.302324;Loncenter = -71.384970;

指定环形交叉路口周围的矩形区域的最小和最大纬度和纵向坐标。在地理图上显示与该区域相对应的边界框。

offset = 5e-4;minLat = latCenter -偏移量;minLon = lonCenter -偏移量;maxLat = latCenter + offset;maxLon = lonCenter +偏移量;GX =地理学;线条='。-k';Geoplot(GX,......[minLat maxLat]、[minLon minLon], LineSpec,......[maxlat maxlat],[minlon maxlon],linespec,......[maxlat minlat],[maxlon maxlon],linespec,......[Minlat Minlat],[Maxlon Minlon],LinePec)

创建一个驾驶场景,并使用最小和最大坐标从该区域导入道路。这公路网功能进口至少部分地区的道路。

场景=驱动器Cenario;Roadnetwork(情景,“HEREHDLiveMap”,minlat,minlon,maxlat,maxlon);

绘制场景。若要与地理坐标显示保持相同的对齐方式,则X-轴在底部,而y-axis在左边。在没有从地图导入的驾驶场景中X-轴在左侧,而y-axis在底部。这种对齐与自动驾驶工具箱™世界坐标系统一致。

情节(方案)

将道路从OpenStreetMap®Web服务导入驱动方案。然后,在进口道路网络中的一条路线下绘制车辆。

将MathWorks®Apple Hill园区的道路网络导入一个空的驾驶场景。文件被下载https://www.openstreetmap.org.该网站提供了世界各地的众包地图数据。数据是在开放数据共享开放数据库许可证(ODbL)下许可的,https://opendatacommons.org/licenses/odbl/

绘制进口路网。若要与地理坐标显示保持相同的对齐方式,则X-轴在底部,而y-axis在左边。在没有从地图导入的驾驶场景中X-轴在左侧,而y-axis在底部。这种对齐与自动驾驶工具箱™世界坐标系统一致。

场景=驱动器Cenario;Roadnetwork(情景,“公开”'applehill.osm');情节(方案)

加载该道路网络中的驾驶路线的纬度和经度坐标。

data =负载('Georouteah.mat');Lat = data.latitude;lon = data.longitude;

使用Latlon2local.将驾驶路线从地理坐标转换为当地东北(ENU)笛卡尔坐标,用于转换从地理坐标到驾驶场景中使用的笛卡尔坐标。对于ENU坐标系的起源,使用存储在的地理路线GeoReference场景的属性。原点是驾驶路径中指定的第一个坐标。由于驾驶路线仅包含纬度和纵向数据,因此将高度设置为0。

alt = 0;Origin = Scenario.geOreference;[Xeast,Ynorth,zup] =拉丁龙(Lat,Lon,Alt,Origin);

将车辆添加到驾驶场景中。指定转换后的行驶路线作为车辆的轨迹。设车速为每秒30米。绘制车辆轨迹并暂停每0.01秒以减慢模拟。

v =车辆(方案,'班级号'1);速度= 30;smoothTrajectory (v, [xEast yNorth, z上),速度);前进(方案)暂停(0.01)结束

导入Zenrin日本地图3.0(ITSumo Navi API 3.0)路线网络数据离指定的驱动路线的坐标最接近驾驶场景。在驾驶场景中绘制这条路线之后的车辆。

载入与驾驶路线相对应的地理坐标序列。

data =负载(“tokyoSequence.mat”);Lat = data.latitude;lon = data.longitude;

通过在地理播放器上串流坐标显示路线。将缩放级别设置为17并配置播放器以显示其历史记录中的所有点。为了加快流的速度,在路线中只绘制每十分之一的坐标。

zoomLevel = 17;玩家= Geoplayer(Lat(1),Lon(1),Zoomlevel,'历史中心',INF);Timestep = 10;为了i = 1:时间步骤:长度(LAT)绘图(播放器,LAT(i),lon(i));结束

创造一个驾驶场景。导入Zenrin日本地图3.0(Itsumo Navi API 3.0)路线数据最接近驾驶路线进入方案。

场景=驱动器Cenario;Roadnetwork(情景,'zenrinjapanmap'纬度、经度)

使用Latlon2local.将驾驶路线从地理坐标转换为当地东北(ENU)笛卡尔坐标,用于转换从地理坐标到驾驶场景中使用的笛卡尔坐标。对于ENU坐标系的起源,使用存储在的地理路线GeoReference场景的属性。原点是驾驶路径中指定的第一个坐标。

alt = 0;Origin = Scenario.geOreference;[Xeast,Ynorth,zup] =拉丁龙(Lat,Lon,Alt,Origin);

将车辆添加到驾驶场景中。指定转换后的行驶路线作为车辆的轨迹。设车速为每秒30米。

v =车辆(方案,'班级号'1);速度= 30;smoothTrajectory (v, [xEast yNorth, z上),速度);

绘制场景,每0.01秒暂停一次以降低模拟速度。若要与地理坐标显示保持相同的对齐方式,则X-轴在底部,而y-axis在左边。在没有从地图导入的驾驶场景中X-轴在左侧,而y-axis在底部。这种对齐与自动驾驶工具箱™世界坐标系统一致。

图绘制(场景)前进(方案)暂停(0.01)结束

导入Zenrin日本地图3.0(ITSUMO Navi API 3.0)道路网络数据转化为驾驶场景。从围绕指定地理坐标围绕的区域中选择此数据。

定义与公园对应的纬度和经度坐标。

latCenter = 35.6889;lonCenter = 139.8458;

指定公园周围矩形区域的最小和最大纬度和经度坐标。在地理图上显示与该区域相对应的边界框。

抵消= 0.0013;minLat = latCenter -偏移量;minLon = lonCenter -偏移量;maxLat = latCenter + offset;maxLon = lonCenter +偏移量;图gx =地理轴;线条='。-k';Geoplot(GX,......[minLat maxLat]、[minLon minLon], LineSpec,......[maxlat maxlat],[minlon maxlon],linespec,......[maxlat minlat],[maxlon maxlon],linespec,......[Minlat Minlat],[Maxlon Minlon],LinePec)

创建一个驾驶场景,并使用最小和最大坐标从该区域导入道路。这公路网功能进口至少部分地区的道路。

场景=驱动器Cenario;Roadnetwork(情景,'zenrinjapanmap',minlat,minlon,maxlat,maxlon)

绘制场景。若要与地理坐标显示保持相同的对齐方式,则X-轴在底部,而y-axis在左边。在没有从地图导入的驾驶场景中X-轴在左侧,而y-axis在底部。这种对齐与自动驾驶工具箱™世界坐标系统一致。

图绘制(场景)

输入参数

全部折叠

驾驶场景,指定为drivingScenario目的。设想必须包含以前创建或导入的道路。

道路网络文件的名称,指定为字符向量或字符串标量。

文件名必须指定一个文件在当前文件夹,文件是在MATLAB®搜索路径或文件的完整或相对路径。

文件名必须以对道路网络源有效的文件扩展名结束。

道路网源 有效的文件扩展名 示例语法
爱好者

.Xodr.

. xml

Roadnetwork(情景,......'爱好者''C:\ Desktop \ Roads.Xodr'
OpenStreetMap.

.osm.

. xml

Roadnetwork(情景,......“公开”“C: \ \ map.osm桌面”

从opdrive道路网络文件中导入车道类型信息,并将其显示在驾驶场景中,由逗号分隔的对组成'showlanetypes'其中一个价值观是:

  • 真的或1 - 进口车道类型信息和渲染车道类型。

  • 或0 - Ignore Lane类型信息,并将所有通道导入驱动方案中的驱动车道。

该表总结了将支持的车道类型及其默认外观引入驱动方案万博1manbetx后。

万博1manbetx支持通道类型 描述 默认的外观
驾驶车道 车道驾驶

边界车道 道路两旁的车道相互衔接

限制车道 用于高占用车辆的车道

肩部车道 为紧急停车预留的车道

停车场 车道沿着驾驶车道,用于停车车辆

任何其他不受支持的车道类万博1manbetx型呈现为边框车道。

例子:'showlanetypes',false

纬度坐标,指定为范围内的元素矢量[-90,90]。纬度必须和lon。单位是度数。

经度坐标,指定为范围内的元素矢量[-180,180]。lon必须和纬度。单位是度数。

边界框的最小纬度坐标,指定为范围的标量[-90,90]。米拉特必须小于Maxlat.。单位是度数。

公路网函数导入至少部分位于输入指定的边界框内的任何道路米拉特米洛龙Maxlat.,Maxlon.。此图显示这些坐标之间的关系。

边界框的最小经度坐标,指定为范围[- 180,180]中的标量。米洛龙必须小于Maxlon.。单位是度数。

公路网函数导入至少部分位于输入指定的边界框内的任何道路米拉特米洛龙Maxlat.,Maxlon.。此图显示这些坐标之间的关系。

边界框的最大纬度坐标,指定为范围的标量[-90,90]。Maxlat.必须大于米拉特。单位是度数。

公路网函数导入至少部分位于输入指定的边界框内的任何道路米拉特米洛龙Maxlat.,Maxlon.。此图显示这些坐标之间的关系。

边界框的最大经度坐标,指定为范围[- 180,180]中的标量。Maxlon.必须大于米洛龙。单位是度数。

公路网函数导入至少部分位于输入指定的边界框内的任何道路米拉特米洛龙Maxlat.,Maxlon.。此图显示这些坐标之间的关系。

限制

选项导入限制

  • 您只能进口Lanes,Lane类型信息和道路。不支持导入道路对象和交通信号。万博1manbetx

  • 包含大型道路网络的opdrive文件可能需要几分钟的加载时间。大型公路网的例子包括模拟城市道路的公路网,或有数千米长的公路的公路网。

  • 不支持可变宽度的车道。万博1manbetx宽度设置为该车道内的最高宽度。例如,如果一条车道的宽度从2米到4米不等,那么该功能将整个车道的宽度设置为4米。

  • 指定为车道类型信息的道路开车边境受限制的肩膀,停车处得到支持万博1manbetx。带有任何其他车道类型信息的车道被导入边框车道。

  • 不支持多车道标记样式的道路。万博1manbetx该函数将第一种标记样式应用于道路上的所有车道。例如,如果一条路虚线坚硬的车道标记,功能适用虚线车道标志。

  • 车道标志风格瓶圆点限制,不受支持。万博1manbetx带有这些标记样式的车道被导入未标记。

这里高清实时地图导入限制

  • 不支持不同宽度的HDLM道路。万博1manbetx在生成的道路网络中,每条车道都设置为其整个长度的最大宽度。考虑一个HERE HDLM车道,其宽度沿其长度从2米到4米不等。在生成的路网中,车道宽度沿其整个长度为4米。这种对道路网络的修改有时会导致道路在驾驶场景中重叠。

  • 如果收到警告,则无法计算道路的几何形状,那么道路的曲率太锐利,无法正确渲染,并且不会导入。

  • 导入道路的一些问题可能是由于这里缺少或不准确的地图数据,在此HDLM服务中。例如,您可能会看到道路和交叉点相遇的黑线。要在地图数据中检查问题的位置,请使用此处HD Live Map Viewer查看此处HDLM Road网络的几何图形。此查看器需要有效的许可证。有关更多详细信息,请参阅这里的技术网站。

OpenStreetMap导入限制

导入OpenStreetMap数据时,道路和车道功能具有以下限制:

  • 不从OpenStreetMap道路导入车道级信息。车道规格仅基于OpenStreetMap道路网络中指定的行驶方向,其中:

    • 单向道路以单车道道路导入默认车道规格。这些车道以编程方式等同于lanespec.(1)

    • 双向道路以双向旅行和默认车道规格为双车道道路进口。这些车道以编程方式等同于lanespec.([1])

    该表显示了OpenStreetMap Road网络和进口驾驶场景中的道路网络的这些差异。

    OpenStreetMap Road Network. 进口的驾驶场景

    两条单向道路逐渐逐渐变成一条车道

    两条没有指示行驶方向的单车道道路突然过渡为双向行驶的双车道道路

  • 导入指定高度数据的OpenStreetMap Road网络时,如果未为正在导入的所有道路指定高程数据,则生成的道路网络可能包含不准确性,有些道路可能会重叠。

  • 应用程序中使用的基础映射可能与OpenStreetMap服务中使用的地图具有略微差异。某些导入的道路问题也可能是由于缺失或不准确的地图数据在OpenStreetMap服务中。要检查数据是否由于地图服务而缺失或不准确,请考虑查看外部地图查看器上的地图数据。

  • 如果收到警告,则无法计算道路的几何形状,那么道路的曲率太锐利,无法正确渲染,并且不会导入。

Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)进口限制

当你进口Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)数据,生成的道路网络具有这些限制。由于这些限制,所生成的网络可能包含不准确性,道路可能重叠。

  • 生成的道路网络使用道路海拔数据Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)提供。否则,所生成的网络使用服务提供的地形高程数据。

  • 当。。。的时候Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)该服务使用范围提供信息,例如指定2 - 3车道的道路或3-5.5米宽的道路,生成的道路网络将使用标量值。考虑一个Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)有两到三条车道的道路。生成的道路网络有两条车道。

  • 在生成网络中道路内的车道具有均匀的宽度。考虑一条4.25米宽的道路,有两个车道。在所生成的道路网络中,每个车道宽2.125米。

  • 如果收到警告,则无法计算道路的几何形状,那么道路的曲率太锐利,无法正确渲染,并且不会导入。

  • 在可能的情况下,所生成的道路网络使用由此提供的道路名称Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)服务。否则,生成的道路网络使用默认名称,例如路1路2

提示

  • 如果您进口的道路看起来不像预期的那样,考虑通过使用驾驶场景设计师应用程序。该应用程序可以使流程进行故障排除和纠正道路,而不是尝试通过使用纠正和纠正它们公路网功能。

参考文献

[1] Dupuis,Marius,等。Opendrive格式规范。修订1.4,发行h,文件编号vi2014.106。坏Aibling,德国:Vires SimulationStechnologie GmbH,2015年11月4日。

在R2018B中介绍

[1]您需要输入单独的协议在这里为了访问HDLM服务,并获取所需的凭据(Access_key_ID和Access_key_secret)使用此处服务。

[2]以获得进入Zenrin Japan Map API 3.0 (Itsumo NAVI API 3.0)服务并获取所需的凭据(客户端ID和密钥),您必须输入单独的协议Zenrin Datacom Co。,Ltd。