Main Content

本页采用了机器翻译。点击此处可查看英文原文。

roadrunnerHDMap

使用 MATLAB 创建 RoadRunner 高清地图

自 R2022b 起

    说明

    roadrunnerHDMap 对象使您能够使用 MATLAB® 创建 RoadRunner 高清地图。您还可以使用车道、车道边界、车道标记和交叉口填充地图。

    RoadRunner 高清地图是一种道路数据模型,用于在 RoadRunner 场景中表示高清 (HD) 地图数据。该模型定义了一个简单的数据结构来表示使用车道、车道边界、车道标记和交叉口的道路布局。您可以使用 RoadRunner 高清地图为您的自定义高清地图数据创建二进制文件,并将该二进制文件导入 RoadRunner,并构建场景。

    创建对象

    描述

    rrMap = roadrunnerHDMap() 创建一个空的 RoadRunner 高清地图。您可以使用 roadrunnerHDMap 对象属性在地图中填充车道、车道边界、车道标记和交叉口。映射中的数据使用协议缓冲区进行序列化,并使用 write 方法以二进制格式保存,扩展名为 .rrhd。您可以使用 read 方法读取扩展名为 .rrhd 的文件并填充空的 roadrunnerHDMap 对象。

    示例

    rrMap = roadrunnerHDMap(Name=Value) 使用名称-值对设置属性。

    属性

    全部展开

    地图作者的名称,指定为字符串标量。

    示例: rrMap= roadrunnerHDMap(Author="Map Author") 创建了 "Map Author" 拥有的 RoadRunner 高清地图。

    数据类型: char | string

    道路网络原点的地理坐标,指定为具有两个元素的 [lat, lon] 形式的行向量。lat 表示坐标的纬度(以度为单位),lon 表示坐标的经度(以度为单位)。这些值是相对于 WGS84 参考椭球而言的,这是 GPS 数据使用的标准椭球。有关更多详细信息,请参阅坐标空间和地理参考

    数据类型: double

    RoadRunner 高清地图投影的 3D 坐标空间中表示的几何数据的空间边界,指定为 2×3 的双精度矩阵。矩阵中的元素表示 3D 轴对齐框的最小和最大位置。

    示例: rrMap= roadrunnerHDMap(Author="Map Author", GeographicBoundary=[-0.782 -3.13 0;101.565 50 0]) 创建 "Map Author" 拥有的 RoadRunner 高清地图。地图投影的 3D 坐标空间中几何数据的空间范围由参数 GeographicBoundary 的双精度值指定。

    数据类型: double

    道路的车道属性,指定为 roadrunner.hdmap.Lane 对象的数组。

    示例: rrMap.Lanes(1)= roadrunner.hdmap.Lane(ID= "Lane1", Geometry= [-0.782 -1.56;50.78 23.43], LaneType= "Driving", TravelDirection= "Forward") 添加有关地图车道的信息:车道 ID、定义车道几何形状的坐标、车道类型和行驶方向。

    车道的边界,指定为 roadrunner.hdmap.LaneBoundary 对象的数组。

    示例: rrMap.LaneBoundaries(1)= roadrunner.hdmap.LaneBoundary(ID= "LaneBoundary1", Geometry= [0 0;50 25]) 将车道边界添加到车道并定义每个车道边界的几何形状。

    具有相似几何形状的车道组,指定为 roadrunner.hdmap.LaneGroup 对象的数组。

    示例: rrMap.LaneGroups= roadrunner.hdmap.LaneGroup(ID="LaneGroup1") 添加 ID 为 "LaneGroup1" 的通道组到地图。

    车道标记定义,指定为 roadrunner.hdmap.LaneMarking 对象的数组。

    示例: rrMap.LaneMarkings= roadrunner.hdmap.LaneMarking(ID= "Dashed1"AssetPath= "Assets/Markings/DashedSingleWhite.rrlms") 将 "Dashed1" 车道标记素材从其相对位置添加到车道。

    地图中的交叉口,指定为 roadrunner.hdmap.Junction 对象的数组。

    示例: rrMap.Junctions= roadrunner.hdmap.Junction(ID="Junction1") 添加 id 为 "Junction1" 的结点到地图。

    用于隔离物型材和类型信息的隔离物类型,指定为 roadrunner.hdmap.BarrierType 对象的数组。

    示例: rrMap.BarrierTypes= roadrunner.hdmap.BarrierType(ID= "BarrierType1", ExtrusionPath= path) 为隔离物型材添加一个 ID 为 "BarrierType1" 的隔离物类型,素材路径 path,指向这种隔离物类型的型材信息。

    地图中的隔离物,指定为 roadrunner.hdmap.Barrier 对象的数组。

    示例: rrMap.Barrier= roadrunner.hdmap.Barrier(ID="Barrier1") 添加 ID 为 "Barrier1" 的隔离物到地图。

    标志特征和类型信息的标志类型,指定为 roadrunner.hdmap.SignType 对象的数组。

    示例: rrMap.SignTypes= roadrunner.hdmap.SignType(ID="SignType1", ExtrusionPath=AssetPath="Assets/Signs/UK/Sign_Parking.svg") 为位于相对路径 "Assets/Signs/UK/Sign_Parking.svg" 上的停车标志添加一个 id 为 "SignType1" 的标志类型。

    地图中的标志,指定为 roadrunner.hdmap.Sign 对象的数组。

    示例: rrMap.Sign= roadrunner.hdmap.Sign(ID="Sign1") 添加 id 为 "Sign1" 的标志到地图。

    物理对象的属性(包括道路设施和道具),指定为 roadrunner.hdmap.StaticObjectType 对象的数组。

    示例: rrMap.StaticObjectType= roadrunner.hdmap.StaticObjectType(ID="StaticObjectType1") 添加 id 为 "StaticObjectType1" 的静态对象类型到地图。

    物理对象的属性(包括道路设施和道具),指定为 roadrunner.hdmap.StaticObject 对象的数组。

    示例: rrMap.StaticObject= roadrunner.hdmap.StaticObject(ID="StaticObject1") 添加 id 为 "StaticObject1" 的静态对象到地图。

    对象函数

    write使用 MATLAB 将高清地图写入二进制文件
    read使用 MATLAB 从二进制文件读取高清地图
    plot使用 MATLAB 绘制 RoadRunner 高清地图
    readCRS使用 MATLABRoadRunner 高清地图读取坐标参考系统(CRS)数据

    示例

    全部折叠

    通过调用 roadrunnerHDMap 对象创建 RoadRunner 高清地图。该对象返回带有作者和几何数据属性的空间边界的地图。

    rrMap = roadrunnerHDMap(Author="Map Author",GeographicBoundary=[-0.782 -3.13 0;101.565 50 0]);

    使用 roadrunner.hdmap.Lane 对象创建道路车道。指定车道信息车道 ID、定义车道几何形状、行驶方向和车道类型。

    rrMap.Lanes(2) = roadrunner.hdmap.Lane(ID="Lane2",Geometry=[50.78 23.43;100.78 48.43],LaneType="Driving", TravelDirection="Forward");
    rrMap.Lanes(1) = roadrunner.hdmap.Lane(ID="Lane1",Geometry=[0.782 -1.56;50.78 23.43],LaneType="Driving", TravelDirection="Forward");

    添加 Lane1Lane2 的连接信息。通过定义有关其前驱和后继关系的信息来指定车道之间的对齐方式。

    addPredecessor(rrMap.Lanes(2),"Lane1",Alignment="Forward");
    addSuccessor(rrMap.Lanes(1),"Lane2",Alignment="Forward");

    使用 roadrunner.hdmap.LaneBoundary 对象创建道路的车道边界。指定车道 ID 的车道边界信息和定义车道几何形状的坐标。

    rrMap.LaneBoundaries(4) = roadrunner.hdmap.LaneBoundary(ID="LaneBoundary4",Geometry=[50 25; 100 50]);
    rrMap.LaneBoundaries(3) = roadrunner.hdmap.LaneBoundary(ID="LaneBoundary3",Geometry=[51.565 21.864; 101.565 46.869]);
    rrMap.LaneBoundaries(2) = roadrunner.hdmap.LaneBoundary(ID="LaneBoundary2",Geometry=[1.565 -3.13; 51.565 21.864]);
    rrMap.LaneBoundaries(1) = roadrunner.hdmap.LaneBoundary(ID="LaneBoundary1",Geometry=[0 0; 50 25]);

    将车道边界与车道连接起来。定义每个车道的左、右车道边界,并指定车道和车道边界之间的对齐方式。

    leftBoundary(rrMap.Lanes(1),"LaneBoundary1",Alignment="Forward");
    rightBoundary(rrMap.Lanes(1),"LaneBoundary2",Alignment="Forward");
    leftBoundary(rrMap.Lanes(2),"LaneBoundary4",Alignment="Forward");
    rightBoundary(rrMap.Lanes(2),"LaneBoundary3",Alignment="Forward");

    版本历史记录

    在 R2022b 中推出