一、导入openstreetmap地图
1.打开osm官网:https://www.openstreetmap.org(可能需要科学上网,但无需登录, 使用说明:OpenStreetMap)
这是一个开源的公开地图数据,可以获取一个城市的交通路网数据,OpenStreetMap
2.点击“导出”
3.选择“手动选择不同的区域”(区域太大可能会报错)
4.会出来区域框,拖动四个顶点来确定范围
5.选好之后。点击左边的“导出”,会下载一个.osm的文件
6.打开prescan,新建Experiment,点击功能栏里的 file -> import -> openstreetmap
选择那个.osm的文件,将其导入,会有警告提醒(是因为有些道路没有连通)
还可以设置最高限速
7.加载完成后如图所示(只是呈现了大致道路,部分没有连接或是有错,还需要检查修改)
其中道路变红应该是因为道路曲率太大导致,可以右键 道路点击 split road 解决,或者重新连接。
二、导出全局路径(一种思路,多加入一个幻影车)
1.打开prescan,新建Experiment,构建一条道路出来,之后划出车辆运行的理想轨迹(其实这就是所需的道路信息),再拖出一辆Audi A8出来放到轨迹上
2.对这辆Audi A8进行参数设置
a.速度设置
右击点开编辑,将初速度和末速度都设置为10m/s
b.动力学模型设置,选择2D simple
c.驾驶员模型设置(必须要先设置好动力学模型之后才能设置),选择路径跟踪,(预览得勾,否则运行的时候车辆一直在左右摆动,不清楚什么原因,可以试试看)
三个设置好后再将车设置成幻影模式(因为此车并不是真正要控制的车,只是为了获取路径信息),勾选Ghosting,下面可以设置颜色深浅
3.设置好之后,进行build,然后打开matlab
4.打开matlab后,进入刚刚建立的文件夹里,打开里面simulink文件
5.双击进入Audi_A8_Sedan_1,将SELF_Demux模块上的x,y输出连接到 to Workspace 模块上
修改 to Workspace命名,同时可以修改采样时间,(-1表示继承,跟随系统时间,这里是0.05s速度一直是10m/s,因此是每隔0.5m 采样一次路径信息)
6.最后,点击run,就可运行,将路径的x,y坐标输出到matlab工作区
7.不需要时间的数据,在matlab命令行窗口,输入以下代码运行,即可将时间去掉,不想替换原有数据也可以修改一下数据名称,不要重复
Target_path_x=Target_path_x.data
Target_path_y=Target_path_y.data
8.最后,ctrl键将这两个数据选中,右击另保存为path.mat文件,之后只需要双击这个文件就可将路径信息导入到工作区
总得来说,该方法对于直道和曲率较小的弯道要友好些,但当曲率太大时,车辆由于驾驶员特性会使得车辆行驶路径与理想路径有大的区别,可以试着再降低车速,以获取更准确的路径。
还有一个缺陷,就是需要手动暂停,不知道是不是哪里可以设置。
这是最后根据x,y坐标画出的理想路径