基于MATLAB&SIMULINK开发自动驾驶系统第十九讲将OpenStreetMap数据导入到驾驶场景中

OpenStreetMap是一个免费的、开源的网络地图服务,能够访问众包的地图数据。使用驾驶场景设计器应用,可以从OpenStreetMap导入地图数据,并使用它为你的驾驶场景生成道路。

本讲主要介绍在应用中导入地图数据的情况。另外,要将OpenStreetMap道路导入到驾驶场景对象中,请使用roadNetwork功能。

选择OpenStreetMap文件

要导入一个道路网,必须首先选择一个包含该道路网几何形状的OpenStreetMap文件。要从openstreetmap.org导出这些文件,请指定一个地图位置,手动调整该位置周围的区域,并将该区域的道路几何图形导出到扩展名为.osm的OpenStreetMap中。只有全长在这个指定区域内的道路才会被导出。在本讲中,选择的是之前从本网站导出的OpenStreetMap 文件:

1 打开 "驾驶场景设计器 "应用程序。

驾驶场景设计器(drivingScenarioDesigner)

2 在应用工具条上,选择导入 > OpenStreetMap。

3 在OpenStreetMap导入对话框中,浏览这个文件,其中matlabroot是你的MATLAB文件夹的根。

matlabroot/examples/driving/data/applehill.osm

该文件是从https://www.openstreetmap.org 下载的,该网站提供了对全世界人群来源的地图数据的访问。该数据采用开放数据共享开放数据库许可(ODbL),https://opendatacommons.org/licenses/odbl/。

对话框中的 "选择道路 "部分显示了 MathWorks® Apple Hill 校园的道路网。灰色方框代表从 openstreetmap.org 选择的地图区域。中心灰色方框中的点是地理参考点,点击该点可以显示或隐藏坐标数据。点击该点可以显示或隐藏坐标数据。当道路导入到该应用中时,这个点就成为驾驶场景的原点。

19.1 选择要导入的道路

在对话框的 "选择道路 "部分,选择要导入驾驶场景的道路。可选择的道路为黑色。

选择的道路数量对应用性能有直接影响。选择需要的最少的道路来创建驾驶场景。

由于该道路网规模较小,点击 "全部选择 "可选择所有道路。所选道路显示为蓝色。

选择要导入的道路时,可进行的操作如下表所示。

目标
行动
选择区域内的单个道路。
点击各个道路进行选择。
选择该地区的所有道路。
单击 "全部选择"。
选择区域内除少数道路外的所有道路。
单击 "全部选择",然后单击各个道路以取消选择。
选择区域内道路的子集,如选择区域上半部分的所有道路。
在地图显示的左上角,点击选择道路按钮  。然后,在要选择的道路周围画一个矩形。
-  若要从该选择中取消选择一个道路子集,请单击取消选择道路按钮。然后,在要取消选择的道路周围画一个矩形。
-  要取消选择所有道路并重新开始,请单击取消选择全部。

19.2导入道路

在网络中的所有道路仍被选中的情况下,点击导入。应用程序暂停导入,并以红色突出显示其中一条道路。应用程序无法正确呈现该道路的几何形状,因此无法导入该道路。

点击 "继续 "继续导入所有其他选定的道路。该应用程序导入道路并生成道路网络。

为了与地理地图显示保持一致,场景画布的X轴在底部,Y轴在左侧。在不是从地图导入的驾驶场景中,X轴在左侧,Y轴在底部。这种排列方式与自动驾驶工具箱的世界坐标系一致。场景的原点与地理参考点相对应。

默认情况下,道路交互是禁用的。禁用道路交互可以防止意外修改网络,并通过隐藏道路中心来减少视觉混乱。如果 想修改道路,在 "场景画布 "的左下角,单击 "配置场景画布 "按钮。然后,选择启用道路交互。

19.3 比较进口道路与地图数据

应用程序中生成的路网与OpenStreetMap路网不同。例如,检查这部分道路网的差异。

OpenStreetMap Road Network
Imported Driving  Scenario

在导入的场景中,道路之间的过渡比较突然,因为该应用不支持随着车道数的变化而逐渐减少车道数。此外,由于该应用没有从OpenStreetMap导入车道级信息,所以生成的路网中的车道数仅基于路网中指定的行驶方向,其中。

- 所有的单向道路都作为单车道道路导入。

- 所有的双向道路都作为双车道道路导入。

这些车道都具有相同的宽度,这可能导致突然的过渡,如表中所示的例子。

有关导入OpenStreetMap数据的限制的更多细节,请参阅驾驶场景设计器应用程序参考页面的 "限制 "部分。

19.4保存场景

保存场景文件。保存场景后,不能将额外的OpenStreetMap道路导入其中。相反, 必须创建一个新的场景并导入一个新的道路网络。

现在,可以将执行器和传感器添加到场景中,生成用于测试驾驶算法的合成车道和物体探测,或将场景导入Simulink中。

(0)

相关推荐