本文是基于B站上的“忠厚老实的老王”up主的课程做的笔记,方便忘记的时候回来翻看。B站参考视频链接如下:
https://www.bilibili.com/video/BV1TQ4y1i7Uo?spm_id_from=333.999.0.0
prescan中新建的道路,作为自定义的全局路径。代替地图和导航路径,专注于做局部路径规划。
- 首先点击File,新建一个实验,New Experiment ,名字我命名为了testemplammer,保存路径自定义。按照步骤123建立如图所示的道路,初学者建议直道+弯道。道路的长度和宽度可以自定义。
- 并添加轨迹。
- 再添加一辆车Audi_A8,并把这辆车拖到轨迹的起点处(将车拖到轨迹上,轨迹变成蓝绿色后松手即可)。
车本身是自带定位的,车放到轨迹上之后,沿着路径走的话,就会实时把定位信息传给Matlab。
-
右键车,点击Objective Configuration,设置下车辆沿轨迹行驶的初速度和末速度。都设置为10m/s。
-
配置车辆的动力学模型,选择prescan自带的2D动力学模型。
-
配置车辆的驾驶员模型,让车辆沿着设定好的轨迹跟随行驶。
速度、动力学模型和驾驶员模型都配置好后,点击OK。 -
prescan中点击Bulild
-
只能从prescan中打开Matlab,不能自己去桌面打开。点击prescan
点击这个绿色图标或者从prescan manager管理器中点击打开Matlab。 -
Matlab显示打开成功,界面如下:
-
在matlab左侧的当前文件夹会看到刚才命名的实验,双击它将它选为当前路径。
-
双击后会看到自己命名的cs.slx文件,双击它打开simulink模型,如下图所示:
下边那个灰色的车是我自己另外添加的,其实只有上边一辆车,这里我把它选中,右键点击Comment Out 先注释掉了。 -
双击模型中的车,进去以后,
将x,y连接到 to Workspace 模块中,to workspace 模块的设置如下图所示:仿真时间设置成0.1秒,因为初始速度和末速度都设置的是10m/s,仿真时间0.1秒即每隔一米采样一次。
-
将simulink仿真时间设置成300秒,(10m/s的速度,300秒就是3公里,如果自己添加的道路长度没有3000米,仿真时间就要比300秒小,总之就是要让车以10m/s的速度跑完自己建立的道路长度。)
-
运行仿真,如下图所示,车正在跑,进度为百分之24
-
等车跑完以后,matlab工作区就会出现两个变量。
双击点开,可以看到,大概是每0.1秒采样一次,没有那么精确,但是精度也够了。
-
我们只需要第二列的数据,因此,在matlab命令行窗口输入:
global_path_x=global_path_x_original.data
global_path_y=global_path_y_original.data
工作区就会多出两个变量:global_path_x和global_path_y。将这两个变量另存为global_path.mat文件。如下图所示:
- 接下来,我们写自己的算法时,就只需要加载这个mat文件,不用每次都去采集一遍全局路径了,直接用这个数据即可。
load('global_path.m')
- 在simulink里面也可以制作一个全局导航的路径模块:
利用两个constant模块将matlab工作区中的两个变量加载进来,用bus creator 模块将两个输入创建总线,最后封装成子系统,如下图所示:
总而言之,先采集全局路径到matlab工作区,再将全局path加载到simulink当中,就做好了全局path采集工作,这个全局routing是一个比较通用的模块,后续可以用来规划局部路径。