汽车在道路上行驶
假设条件
车辆是实物,具备惯性,具备行驶的速度、加速度还有方向,受到空气阻力、内部系统稳定、天气、道路状况的影响
所以车辆具备宏观可预测性,适用于一般物体运动学
谈论在编程角度来实现自动驾驶的方案
我们车辆行驶时有一变量carWay,表示车辆当前规划的行驶路线与配置,如当前车正在往右以30度匀称角右拐,加速度为a,速度为v,预计保持当前规划5.2s,然后再进行下一步规划
因为车辆行驶时必须已经规划好当前这一段的计划路径,匀速的也好,变速的也可以,变速拐弯也行,总之车辆行驶=第一段规划+第二段规划+第三段规划如此下去,每段规划时间可以很短也可以很长,甚至不做规划,保持匀速直线行驶或者惯性运动,总之当前规划必须是处于某一个规划阶段
carWay是当前变量,假如这个变量一直保持不变,说明车辆一直保持同一个方向,各个配置匀称,如速度、加速度不用调整
carWay需要接收一个数组条件 carCondition=[condition1,condition2,condition3,condition4……]
例如当车辆按照carWay设置按照原规划一直保持行驶,发生突然状况:
1.前方出现急弯道
2.前方出现行人闯入
3.前方遇到车辆紧急制动刹车
4.前方道路遇到深的积水
5.前方出现车辆莫名的诡异行驶,无法判断对方行驶行为
6.前方遇到障碍物
7.进入学校或者居民区,前方道路限速
8.进入拥挤小巷
carCondition为所有遭遇不利状况条件的集合,例如carCondition=[condition1,condition2,condition4]
而且carCondition是在carWay维持在确定值时瞬间得出的,也就是说当前车辆在按照规定路线与配置行驶时,突然被告知遇到carCondition,而且是三个,这个时候需要一个transform函数与compare函数,transform函数揭示当前车辆所有可能的改变路径的方式与途径,即carWay所有可取的值,compare函数输入carCondition数组,从carWay所有可取的值中以carCondition所有涉及的条件进行比较、筛选、计算、深度学习判断等排除carWay剩下可取的值,若carWay只剩一个值,说明车辆必须进入下一个规划,方案就是这个值,若剩下两个值,说明车辆需要二选一,这个时候可以随机选择,若carWay计算不出剩下可取的值,则车辆采取紧急保险措施,例如停下来,并打开双闪灯
transform指明,例如当前有三个车道,那么车辆所有可能方案要不做出向左变道或者向右变道或者踩油门加速或者减速四种方案,输入compare函数与carCondition数组,从四种方案中选择一种,例如遇到condition6,若compare函数指示因前方遇到障碍物,告诉往左或许往右拐都可以,那么随机一种,若只能往右,那么车辆必须往右,若compare函数告诉所有transform方案都不行,那么车辆只能紧急制动停下来并打开闪光灯,这是一个例子,实际情况更为复杂,具体结合实际需要考虑