自动驾驶车辆的行为规划方法及行为规划装置
技术领域
本申请涉及自动驾驶领域,特别涉及一种自动驾驶车辆的行为规划方法及行为规划装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
自动驾驶是人工智能领域的一种主流应用,自动驾驶技术依靠计算机视觉、雷达、监控装置和全球定位系统等协同合作,让机动车辆可以在不需要人工主动操作下,实现自动驾驶。自动驾驶的车辆使用各种计算系统来帮助将乘客从一个位置运输到另一位置。一些自动驾驶车辆可能要求来自操作者(诸如,领航员、驾驶员、或者乘客)的一些初始输入或者连续输入。自动驾驶车辆准许操作者从手动模操作式切换到自东驾驶模式或者介于两者之间的模式。由于自动驾驶技术无需人工来驾驶机动车辆,所以理论上能够有效避免人工的驾驶失误,减少交通事故的发生,且能够提高公路的运输效率。因此,自动驾驶技术越来越受到重视。
目前,当自动驾驶车辆通过交叉路口时,可能会与其他车道上的其他车辆出现碰撞情况。因此,自动驾驶车辆如何安全快速的通过交叉路口成为一个亟需解决的问题。
发明内容
本申请提供一种自动驾驶车辆的行为规划方法及行为规划装置,能够避免自动驾驶车辆与其它其他车辆发生碰撞,使得自动驾驶车辆安全快速的通过交叉路口。
第一方面,提供了一种自动驾驶车辆的行为规划方法,包括:获取交叉路口的车辆信息,该车辆信息包括N辆其他车辆的位置,其中,该N辆其他车辆的预测行驶轨迹与自动驾驶车辆的预测行驶轨迹在目标车道上具有一个交汇点,该目标车道为该自动驾驶车道计划汇入的车道,该N辆其他车辆所在车道与该自动驾驶车辆所在车道不同,N为正整数;根据该N辆其他车辆的位置和该交汇点确定N+1个候选车辆间隙,其中,该N+1个候选车辆间隙包括第一个车辆间隙、中间车辆间隙以及第N+1个车辆间隙,该第一个车辆间隙是指第一个其他车辆与参考目标之间的间隙,该第一个其他车辆为该N辆其他车辆中距离该交汇点最近的车辆,该参考目标为参考车辆或者第一感应边界点,该参考车辆是指该第一个其他车辆通过该交汇点后首个遇到的车辆,该第一感应边界点位于与该自动驾驶车辆的预测行驶方向相同的该目标车道上,该中间车辆间隙是指该N辆其他车辆中任意两个相邻车辆之间的间隙,该第N+1个车辆间隙是指第N辆其他车辆与第二感应边界点之间的间隙,该第二感应边界点位于与该自动驾驶车辆的预测行驶方向相反的该目标车道上;根据该N+1个候选车辆间隙的评估值确定目标车辆间隙,其中,该评估值用于评估该自动驾驶车辆在候选车辆间隙汇入该交叉路口时的安全性,该目标车辆间隙用于使该自动驾驶车辆通过该目标车辆间隙汇入该交叉路口。
基于上述技术方案,自动驾驶车辆的规划模块可以获取交叉路口的车辆信息,车辆信息中包括与自动驾驶车辆具有碰撞风险的N辆其他车辆的位置信息,N辆其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有一个交汇点,根据N辆其他车辆的位置与交汇点的位置可以确定N+1个候选车辆间隙,根据N+1个候选车辆间隙的评估值可以确定N+1个候选车辆间隙中的目标车辆间隙,从而控制自动驾驶车辆通过该目标车辆间隙汇入所述交叉路口。通过上述技术方案,可以基于整体考虑与自动驾驶车辆具有碰撞风险的多个其他车辆,从多个其他车辆的整体车流中确定目标车辆间隙,使得自动驾驶车辆能够安全快速的通过交叉路口。
其中,上述N辆其他车辆所在车道与自动驾驶车辆所在车道不同可以是指N辆其他车辆与自动驾驶车辆的所在车道不同,或者,N辆其他车辆与自动驾驶车辆的行驶方向不同。
应理解,中间车辆间隙是指N辆其他车辆中任意两个相邻车辆之间的间隙。相邻车辆可以是指车辆的位置相邻,例如,中间车辆间隙可以是指同一车道上任意两个位置相邻的其他车辆;或者,相邻车辆也可以是指车辆与交汇点的距离相邻,例如,中间车辆间隙也可以是指不同车道上任意两个与交汇点的距离相邻的其他车辆。
还应理解,参考车辆可以是指第一个其他车辆通过交汇点后首个遇到的车辆,其中,首个遇到的车辆可以包括:出现在所述第一个其他车辆前方预定范围内的首个车辆。
上述第N个车辆间隙是指N辆其他车辆中距离交汇点最远的车辆与第二感应边界点之间的间隙,第二感应边界点是指在目标车道上与自动驾驶车辆的预测行驶轨迹相反方向的有效检测点。
可选地,第一个车辆间隙可以是第一个其他车辆与通过交汇点后与交汇点距离最近的其他车辆之间的间隙。
可选地,第一个车辆间隙可以是第一个其他车辆与第一感应边界点之间的间隙,第一感应边界点是指在目标车道上自动驾驶车辆的预测行驶方向的有效检测点。
在一种可能的实现方式中,根据该N+1个候选车辆间隙的评估值确定目标车辆间隙,包括:根据该N+1个车辆间隙的属性参数集合,确定该N+1个候选车辆间隙中每个车辆间隙的评估值;根据该每个车辆间隙的评估值,确定该目标车辆间隙;其中,该属性参数集合包括长度参数、距离参数以及速度参数,该长度参数表示一个车辆间隙的长度,该距离参数表示该自动驾驶车辆与集合的最小距离,该集合包括一个车辆间隙中的任意一个点,该速度参数包括第一速度和第二速度,该第一速度表示一个车辆间隙中前车的速度,该第二速度表示该前车与后车的速度差值,该前车是指形成一个车辆间隙的两辆其他车辆中距离该交汇点最近的车辆。
基于上述技术方案,可以通过每个车辆间隙的属性参数集合确定该车辆间隙的评估值,评估值可以是评估自动驾驶车辆在候选车辆间隙内通过交汇点的安全性以及效率的量化值,从而能够基于多个其他车辆整体考虑确定最优的目标车辆间隙,使得自动驾驶车辆能够安全快速的通过交叉路口。
可选地,速度参数可以包括前车速度和/或前后车速度差,其中,前车可以是指形成一个车辆间隙的其他车辆中距离交汇点最近的其他车辆。
例如,对于任意一个中间车辆间隙,前车可以是指形成一个车辆间隙的两辆车辆中与交汇点距离最近的车辆。
例如,若第一个车辆间隙是指第一个其他车辆与第一感应边界点之间的间隙,则第一个车辆间隙的前车的速度可以为零。
例如,若第一个车辆间隙是指第一个其他车辆与参考车辆之间的间隙,则前车的速度可以是指参考车辆的速度。
在一种可能的实现方式中,所述目标车辆间隙为当前时刻的目标车辆间隙,所述属性参数集合还包括第一参数,所述第一参数用于指示所述目标车辆间隙是否为所述当前时刻的上一时刻的目标车辆间隙。
基于上述技术方案,在确定目标车辆间隙时可以根据第一参数即目标车辆间隙是否为所述当前时刻的上一时刻的目标车辆间隙进行综合衡量,避免自动驾驶车辆在评估值接近的两个候选车辆间隙中隙频繁跳动。
在一种可能的实现方式中,所述根据所述N+1个候选车辆间隙的属性参数,确定所述N+1个车辆间隙中每个车辆间隙的评估值,包括:
根据以下等式确定所述每个车辆间隙的评估值:
Si=f(xi,yi,zi);
其中,Si表示第i个车辆间隙的评估值,xi表示所述第i个车辆间隙的所述长度参数,yi表示所述第i个车辆间隙的所述距离参数,zi表示所述第i个车辆间隙的所述速度参数,i为小于或等于N的正整数。
可选地,每个车辆间隙的评估值可以与长度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的长度参数成正比关系。
可选地,每个车辆间隙的评估值可以与距离参数之间为单调递减关系,即每个车辆间隙的评估值可以与车辆间隙的距离参数成反比关系。
可选地,每个车辆间隙的评估值可以与速度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的速度参数成正比关系。
例如,f()与zi之间为单调递增关系,zi表示所述第i个车辆间隙的前车速度,即前车是指形成第i个车辆间隙的其他车辆中距离交汇点最近的其他车辆。
例如,f()与zi之间为单调递增关系,zi表示所述第i个车辆间隙的前车与后车的速度差值。
在一种可能的实现方式中,该自动驾驶车辆所在车道为第一车道,该方法还包括:根据该N辆其他车辆与该交汇点之间的距离,将该N辆其他车辆投影至该第一车道;根据该第一车道上的该自动驾驶车辆和投影的该N辆其他车辆确定距离参数。
在一种可能的实现方式中,该方法还包括:根据该自动驾驶车辆与该交汇点之间的距离,将该自动驾驶车辆投影至该N辆其他车辆所在的车道上;根据该N辆其他车辆所在车道上的该N辆其他车辆和投影的该自动驾驶车辆确定所述距离参数。
可选地,N辆其他车辆可以是在不同车道上的车辆,则可以将不同车道上的其他车辆和自动驾驶车辆投影至同一个车道上。
在一种可能的实现方式中,该N辆其他车辆包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,根据该N辆其他车辆所在车道上的该N辆其他车辆和投影的该自动驾驶车辆确该距离参数,包括:根据该自动驾驶车辆与该交汇点的距离将该自动驾驶车辆投影至该第二车道;根据该N-M辆其他车辆与该交汇点的距离将该N-M辆其他车辆投影至该第二车道;根据该第二车道上的该M辆其他车辆、投影的该自动驾驶车辆以及投影的该N-M辆其他车辆确定该距离参数;
或者,
根据该自动驾驶车辆与该交汇点的距离将该自动驾驶车辆投影至该第三车道;根据该M辆其他车辆与该交汇点的距离将该M辆其他车辆投影至该第三车道;根据该第三车道上的该N-M辆其他车辆、投影的该M辆其他车辆以及投影的该自动驾驶车辆确定该距离参数。
基于上述技术方案,通过采用投影的方式可以将不在同一车道的自动驾驶车辆和其他车辆投影至同一车道,从而能够通过纵向规划逻辑确定自动驾驶车辆与每个车辆间隙之间的距离参数,降低计算复杂度。
可选地,投影时可以遵循等速度和等距离原则。其中,等距离原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆在车道上与交汇点或者交叉路口的距离不变;等速度原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆的速度参数不变。
可选地,距离参数可以包括但不限于以下三种情形:
情形一:车辆间隙的前车后沿在自动驾驶车辆的前方,后车前沿在自动驾驶车辆的后方,则该车辆间隙与自动驾驶车辆的距离为0。
情形二:车辆间隙的前车后沿在自动驾驶车辆后方,则该车辆间隙与自动驾驶车辆的距离为前车后沿与自动驾驶车辆的距离。
情形三:车辆间隙的后车前沿在自动驾驶车辆前方,则该车辆间隙与自动驾驶车辆的距离为后车前沿与自动驾驶车辆的距离。
第二方面,提供了一种自动驾驶车辆的行为规划装置,包括:获取模块,用于获取交叉路口的车辆信息,该车辆信息包括N辆其他车辆的位置,其中,该N辆其他车辆的预测行驶轨迹与自动驾驶车辆的预测行驶轨迹在目标车道上具有一个交汇点,该目标车道为该自动驾驶车道计划汇入的车道,该N辆其他车辆所在车道与该自动驾驶车辆所在车道不同,N为正整数;处理模块,用于根据该N辆其他车辆的位置和该交汇点确定N+1个候选车辆间隙,其中,该N+1个候选车辆间隙包括第一个车辆间隙、中间车辆间隙以及第N+1个车辆间隙,该第一个车辆间隙是指第一个其他车辆与参考目标之间的间隙,该第一个其他车辆为该N辆其他车辆中距离该交汇点最近的车辆,该参考目标为参考车辆或者第一感应边界点,该参考车辆是指该第一个其他车辆通过该交汇点后首个遇到的车辆,该第一感应边界点位于与该自动驾驶车辆的预测行驶方向相同的该目标车道上,该中间车辆间隙是指该N辆其他车辆中任意两个相邻车辆之间的间隙,该第N+1个车辆间隙是指第N辆其他车辆与第二感应边界点之间的间隙,该第二感应边界点位于与该自动驾驶车辆的预测行驶方向相反的该目标车道上;该处理模块,还用于根据该N+1个候选车辆间隙的评估值确定目标车辆间隙,其中,该评估值用于评估该自动驾驶车辆在候选车辆间隙汇入该交叉路口时的安全性,该目标车辆间隙用于使该自动驾驶车辆通过该目标车辆间隙汇入该交叉路口。
基于上述技术方案,自动驾驶车辆的行为规划装置可以获取交叉路口的车辆信息,车辆信息中包括与自动驾驶车辆具有碰撞风险的N辆其他车辆的位置信息,N辆其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有一个交汇点,根据N个其他车辆的位置与交汇点的位置可以确定N+1个候选车辆间隙,根据N+1个候选车辆间隙的评估值可以确定N+1个候选车辆间隙中的目标车辆间隙,从而控制自动驾驶车辆通过该目标车辆间隙汇入所述交叉路口。通过上述技术方案,可以基于整体考虑与自动驾驶车辆具有碰撞风险的多个其他车辆,从多个其他车辆的整体车流中确定目标车辆间隙,使得自动驾驶车辆能够安全快速的通过交叉路口。
其中,上述N辆其他车辆所在车道与自动驾驶车辆所在车道不同可以是指N辆其他车辆与自动驾驶车辆的所在车道不同,或者,N辆其他车辆与自动驾驶车辆的行驶方向不同。
应理解,中间车辆间隙是指N辆其他车辆中任意两个相邻车辆之间的间隙。相邻车辆可以是指车辆的位置相邻,例如,中间车辆间隙可以是指同一车道上任意两个位置相邻的其他车辆;或者,相邻车辆也可以是指车辆与交汇点的距离相邻,例如,中间车辆间隙也可以是指不同车道上任意两个与交汇点的距离相邻的其他车辆。
还应理解,参考车辆可以是指第一个其他车辆通过交汇点后首个遇到的车辆,其中,首个遇到的车辆可以包括:出现在所述第一个其他车辆前方预定范围内的首个车辆。
上述第N个车辆间隙是指N辆其他车辆中距离交汇点最远的车辆与第二感应边界点之间的间隙,第二感应边界点是指在目标车道上与自动驾驶车辆的预测行驶轨迹相反方向的有效检测点。
可选地,第一个车辆间隙可以是第一个其他车辆与通过交汇点后与交汇点距离最近的其他车辆之间的间隙。
可选地,第一个车辆间隙可以是第一个其他车辆与第一感应边界点之间的间隙,第一感应边界点是指在目标车道上自动驾驶车辆的预测行驶方向的有效检测点。
在一种可能的实现方式中,所述处理模块具体用于:根据该N+1个车辆间隙的属性参数集合,确定该N+1个候选车辆间隙中每个车辆间隙的评估值;根据该每个车辆间隙的评估值,确定该目标车辆间隙;其中,该属性参数集合包括长度参数、距离参数以及速度参数,该长度参数表示一个车辆间隙的长度,该距离参数表示该自动驾驶车辆与集合的最小距离,该集合包括一个车辆间隙中的任意一个点,该速度参数包括第一速度和第二速度,该第一速度表示一个车辆间隙中前车的速度,该第二速度表示该前车与后车的速度差值,该前车是指形成一个车辆间隙的两辆其他车辆中距离该交汇点最近的车辆。
基于上述技术方案,可以通过每个车辆间隙的属性参数集合确定该车辆间隙的评估值,评估值可以是评估自动驾驶车辆在候选车辆间隙内通过交汇点的安全性以及效率的量化值,从而能够基于多个其他车辆整体考虑确定最优的目标车辆间隙,使得自动驾驶车辆能够安全快速的通过交叉路口。
可选地,速度参数可以包括前车速度和/或前后车速度差,其中,前车可以是指形成一个车辆间隙的其他车辆中距离交汇点最近的其他车辆。
例如,对于任意一个中间车辆间隙,前车可以是指形成一个车辆间隙的两辆车辆中与交汇点距离最近的车辆。
例如,若第一个车辆间隙是指第一个其他车辆与第一感应边界点之间的间隙,则第一个车辆间隙的前车的速度可以为零。
例如,若第一个车辆间隙是指第一个其他车辆与参考车辆之间的间隙,则前车的速度可以是指参考车辆的速度。
在一种可能的实现方式中,所述目标车辆间隙为当前时刻的目标车辆间隙,所述属性参数集合还包括第一参数,所述第一参数用于指示所述目标车辆间隙是否为所述当前时刻的上一时刻的目标车辆间隙。
基于上述技术方案,在确定目标车辆间隙时可以根据第一参数即目标车辆间隙是否为所述当前时刻的上一时刻的目标车辆间隙进行综合衡量,避免自动驾驶车辆在评估值接近的两个候选车辆间隙中隙频繁跳动。
在一种可能的实现方式中,所述处理模块具体用于:
根据以下等式确定所述每个车辆间隙的评估值:
Si=f(xi,yi,zi);
其中,Si表示第i个车辆间隙的评估值,xi表示所述第i个车辆间隙的所述长度参数,yi表示所述第i个车辆间隙的所述距离参数,zi表示所述第i个车辆间隙的所述速度参数,i为小于或等于N的正整数。
可选地,每个车辆间隙的评估值可以与该车辆间隙的长度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的长度参数成正比关系。
可选地,每个车辆间隙的评估值可以与该车辆间隙的距离参数之间为单调递减关系,即每个车辆间隙的评估值可以与车辆间隙的距离参数成反比关系。
可选地,每个车辆间隙的评估值可以与该车辆间隙的速度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的速度参数成正比关系。
例如,f()与zi之间为单调递增关系,zi表示所述第i个车辆间隙的前车速度,即前车是指形成第i个车辆间隙的其他车辆中距离交汇点最近的其他车辆。
例如,f()与zi之间为单调递增关系,zi表示所述第i个车辆间隙的前车与后车的速度差值。
在一种可能的实现方式中,该自动驾驶车辆所在车道为第一车道,该处理模块还用于:根据该N辆其他车辆与该交汇点之间的距离,将该N辆其他车辆投影至该第一车道;根据该第一车道上的该自动驾驶车辆和投影的该N辆其他车辆确定距离参数。
在一种可能的实现方式中,该处理模块还用于:根据该自动驾驶车辆与该交汇点之间的距离,将该自动驾驶车辆投影至该N辆其他车辆所在的车道上;根据该N辆其他车辆所在车道上的该N辆其他车辆和投影的该自动驾驶车辆确定所述距离参数。
可选地,N辆其他车辆可以是在不同车道上的车辆,则可以将不同车道上的其他车辆和自动驾驶车辆投影至同一个车道上。
在一种可能的实现方式中,该N辆其他车辆包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,该处理模块具体用于:根据该自动驾驶车辆与该交汇点的距离将该自动驾驶车辆投影至该第二车道;根据该N-M辆其他车辆与该交汇点的距离将该N-M辆其他车辆投影至该第二车道;根据该第二车道上的该M辆其他车辆、投影的该自动驾驶车辆以及投影的该N-M辆其他车辆确定该距离参数,M为小于N为正整数;
或者,
根据该自动驾驶车辆与该交汇点的距离将该自动驾驶车辆投影至该第三车道;根据该M辆其他车辆与该交汇点的距离将该M辆其他车辆投影至该第三车道;根据该第三车道上的该N-M辆其他车辆、投影的该M辆其他车辆以及投影的该自动驾驶车辆确定该距离参数,M为小于N为正整数。
基于上述技术方案,通过采用投影的方式可以将不在同一车道的自动驾驶车辆和其他车辆投影至同一车道,从而能够通过纵向规划逻辑确定自动驾驶车辆与每个车辆间隙之间的距离参数,降低计算复杂度。
可选地,投影时可以遵循等速度和等距离原则。其中,等距离原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆在车道上与交汇点或者交叉路口的距离不变;等速度原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆的速度参数不变。
可选地,距离参数可以包括但不限于以下三种情形:
情形一:车辆间隙的前车后沿在自动驾驶车辆的前方,后车前沿在自动驾驶车辆的后方,则该车辆间隙与自动驾驶车辆的距离为0。
情形二:车辆间隙的前车后沿在自动驾驶车辆后方,则该车辆间隙与自动驾驶车辆的距离为前车后沿与自动驾驶车辆的距离。
情形三:车辆间隙的后车前沿在自动驾驶车辆前方,则该车辆间隙与自动驾驶车辆的距离为后车前沿与自动驾驶车辆的距离。
第三方面,提供了一种规划自动驾驶车辆的装置,所述装置包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现所述第一方面或者第一方面的任一可能的实现方式中的方法。
第四方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或第一方面的任一可能的实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的任一可能的实现方式中的方法。
第五方面,提供一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括用于执行第一方面或者第一方面的任一可能的实现方式中的方法的指令。
根据本申请实施例提供的方法,通过自动驾驶车辆的规划模块可以获取交叉路口的车辆信息,车辆信息中包括与自动驾驶车辆具有碰撞风险的N辆其他车辆的位置信息,N辆其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有一个交汇点,根据N辆其他车辆的位置与交汇点的位置可以确定N+1个候选车辆间隙,根据N+1个候选车辆间隙的评估值可以确定N+1个候选车辆间隙中的目标车辆间隙,从而控制自动驾驶车辆通过该目标车辆间隙汇入所述交叉路口。通过上述技术方案,可以基于整体考虑与自动驾驶车辆具有碰撞风险的多个其他车辆,从多个其他车辆的整体车流中确定目标车辆间隙,使得自动驾驶车辆能够安全快速的通过交叉路口。
附图说明
图1是本申请实施例提供的一种自动驾驶车辆的结构示意图;
图2是本申请实施例提供的一种计算机系统的结构示意图;
图3是本申请实施例提供的一种神经网络处理器的结构示意图;
图4是本申请实施例提供的一种云侧指令自动驾驶车辆的应用示意图;
图5是本申请实施例提供的自动驾驶车辆中的规划控制模块的示意图;
图6是本申请实施例提供的一种应用场景的示意图;
图7是本申请实施例提供的另一种应用场景的示意图;
图8是本申请实施例提供的一种自动驾驶车辆的行为规划方法的示意图;
图9是本申请实施例提供的另一种自动驾驶车辆的行为规划方法的示意图;
图10是本申请实施例提供的一种投影方式的示意图;
图11是本申请实施例提供的另一种投影方式的示意图;
图12是本申请实施例提供的一种通过投影方式生成候选车辆间隙的示意图;
图13是本申请实施例提供的一种在目标车辆间隙内通过交叉路口的示意图;
图14是本申请实施例提供的不同场景的测试示意图;
图15是本申请实施例提供的一种自动驾驶车辆的行为规划装置的结构示意图;
图16是本申请实施例提供的另一种自动驾驶车辆的行为规划装置的结构示意图;
图17是本申请实施例提供的另一种自动驾驶车辆的行为规划装置的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例提供的车辆100的功能框图。
在一个实施例中,将车辆100配置为完全或部分地自动驾驶模式。
例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆100。在车辆100处于自动驾驶模式中时,可以将车辆100置为在没有和人交互的情况下操作。
车辆100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。
可选地,车辆100可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。
行进系统102可包括为车辆100提供动力运动的组件。在一个实施例中,推进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如,汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。
能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。
传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。
在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
传感器系统104可包括感测关于车辆100周边的环境的信息的若干个传感器。
例如,传感器系统104可包括定位系统122(定位系统可以是GPS系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视车辆100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆100的安全操作的关键功能。
定位系统122可用于估计车辆100的地理位置。IMU 124用于基于惯性加速度来感测车辆100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。
雷达126可利用无线电信号来感测车辆100的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。
激光测距仪128可利用激光来感测车辆100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。
相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。
控制系统106为控制车辆100及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、传感器融合算法138、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。
转向系统132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘系统。
油门134用于控制引擎118的操作速度并进而控制车辆100的速度。
制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆100的速度。
计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100周边环境中的物体和/或特征。所述物体和/或特征可包括交通信号、道路边界和障碍物。计算机视觉系统140可使用物体识别算法、运动中恢复结构(Structure from Motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。
路线控制系统142用于确定车辆100的行驶路线。在一些实施例中,路线控制系统142可结合来自传感器138、GPS 122和一个或多个预定地图的数据以为车辆100确定行驶路线。
障碍物避免系统144用于识别、评估和避免或者以其他方式越过车辆100的环境中的潜在障碍物。
当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
车辆100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器152。
在一些实施例中,外围设备108提供车辆100的用户与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100的用户输出音频。
无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用3G蜂窝通信,例如CDMA、EVD0、GSM/GPRS,或者4G蜂窝通信,例如LTE。或者5G蜂窝通信。无线通信系统146可利用WiFi与无线局域网(wireless localarea network,WLAN)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。
车辆100的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。
处理器113可以是任何常规的处理器,诸如商业可获得的CPU。可选地,该处理器可以是诸如ASIC或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机110的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。
在此处所描述的各个方面中,处理器可以位于远离该车辆并且与该车辆进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向推进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。
除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100在自主、半自主和/或手动模式中操作期间被车辆100和计算机系统112使用。
用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车车在电脑148、麦克风150和扬声器152。
计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机系统112可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统112可操作来对车辆100及其子系统的许多方面提供控制。
可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,数据存储装置114可以部分或完全地与车辆1100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本申请实施例的限制。
在道路行进的自动驾驶汽车,如上面的车辆100,可以识别其周围环境内的物体以确定对当前速度的调整。所述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。
可选地,自动驾驶汽车车辆100或者与自动驾驶车辆100相关联的计算设备(如图1的计算机系统112、计算机视觉系统140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所述识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆100能够基于预测的所述识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。
除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。
上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本申请实施例不做特别的限定。
图2是本申请实施例提供的自动驾驶系统的示意图。
如图2所示的自动驾驶系统包括计算机系统101,其中,计算机系统101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线113耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121,(例如,CD-ROM,多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉景田和动态数字视频图像)和外部USB接口125。其中,可选地,和I/O接口115相连接的接口可以是USB接口。
其中,处理器103可以是任何传统处理器,包括精简指令集计算(reducedinstruction set computer,RISC)处理器、复杂指令集计算(complex instruction setcomputer,CISC)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(application specific integrated circuit,ASIC)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。
可选地,在本文所述的各种实施例中,计算机系统101可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆无线通信。在其它方面,本文所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。
计算机101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存135和系统总线105耦合。运行在系统内存135的数据可以包括计算机101的操作系统137和应用程序143。
操作系统包括解析器139(shell)和内核141(kernel)。shell 139是介于使用者和操作系统之内核(kernel)间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。
应用程序143包括控制汽车自动驾驶相关的程序,比如,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序143也存在于deploying server 149的系统上。在一个实施例中,在需要执行应用程序147时,计算机系统101可以从deploying server14下载应用程序143。
例如,应用程序141还可以是控制自动驾驶车辆避免与其它车辆碰撞,安全通过交叉路口的程序。
传感器153和计算机系统101关联。传感器153用于探测计算机101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。可选地,如果计算机101位于自动驾驶的汽车上,传感器可以是摄像头,红外线感应器,化学检测器,麦克风等。
示例性地,传感器153可以根据探测到周围道路情况和其它其他车辆情况,预测其他车辆的行驶轨迹。
例如,若其他车辆所在的道路前方无交叉路口,传感器153可以根据探测到当前其他车辆所在的车道,确定其他车辆的预测行驶轨迹。
例如,若其他车辆所在的车道前方有交叉路口,传感器153可以根据探测到当前其他车辆所在的车道以及其他车辆的变道信号灯情况,确定其他车辆的预测行驶轨迹。
例如,传感器153可以通过预先训练的神经网络输入当前其他车辆的位置信息,得到其他车辆的预测行驶轨迹。预先训练的神经网络可以是通过大量训练样本数据,比如,训练数据可以包括探测到车辆当前的行驶信息以及预设时段后其他车辆的行驶信息。传感器153可以基于训练数据训练得到目标模型,该目标模型可以用于根据车辆当前的行驶信息确定车辆的预测行驶信息。传感器153对输入的车辆当前的行驶信息进行处理,将输出的预测行驶信息与预设时段后车辆实际的行驶信息进行对比,直到传感器153输出的预测行驶信息与车辆实际的行驶信息的差值小于一定的阈值,从而完成目标模型的训练。
图3为本申请实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器20。该芯片可以被设置在如图2所示的传感器153中,用以完成确定其他车辆的预测行驶轨迹。预训练的神经网络中各层的算法均可在如图3所示的芯片中得以实现。
在一些实现中,运算电路203内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路203是二维脉动阵列。运算电路203还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路203是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器202中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器201中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)208中。
向量计算单元207可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元207可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能207将经处理的输出的向量存储到统一缓存器206。例如,向量计算单元207可以将非线性函数应用到运算电路203的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元207生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路203的激活输入,例如,用于在神经网络中的后续层中的使用。
统一存储器206用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器205(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器201和/或统一存储器206、将外部存储器中的权重数据存入权重存储器202,以及将统一存储器206中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)210,用于通过总线实现主CPU、DMAC和取指存储器209之间进行交互。
与控制器204连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器204,用于调用取指存储器209中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器206,输入存储器201,权重存储器202以及取指存储器209均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
计算机系统112还可以从其它计算机系统接收信息或转移信息到其它计算机系统。或者,从车辆100的传感器系统104收集的传感器数据可以被转移到另一个计算机对此数据进行处理。
例如,如图4所示,来自计算机系统312的数据可以经由网络被传送到云侧的服务器320用于进一步的处理。网络以及中间节点可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司的专有通信协议的专用网络、以太网、WiFi和HTTP、以及前述的各种组合。这种通信可以由能够传送数据到其它计算机和从其它计算机传送数据的任何设备,诸如调制解调器和无线接口。
在一个示例中,服务器320可以包括具有多个计算机的服务器,例如负载均衡服务器群,为了从计算机系统312接收、处理并传送数据的目的,其与网络的不同节点交换信息。该服务器可以被类似于计算机系统312配置,具有处理器330、存储器340、指令350、和数据360。
示例性地,服务器320的数据360可以包括自动驾驶车辆周围道路情况的相关信息。例如,服务器320可以接收、检测、存储、更新、以及传送与自动驾驶车辆道路情况的相关信息。
例如,自动驾驶车辆周围道路情况的相关信息包括与自动驾驶车辆的预测行驶路径具有交汇点的其他车辆的位置信息以及运动参数的信息,比如,其他车辆当前的位置信息、其他车辆的速度信息、其他车辆的预测行驶轨迹信息等。
下面结合图5至图13对本申请的实施例进行详细的说明。
首先对自动驾驶技术进行简要的说明。
自动驾驶技术与人工驾驶技术类似,对于自动驾驶的规划控制模块可以具有三层结构分别为:高层决策、路径规划和底层控制。
例如,以向右换道为例,则对于人工驾驶员需要进行以下操作:
第一步:考虑安全因素和交规因素,决定换道的时机;
第二步:规划出一条行驶轨迹;
第三步:控制油门、刹车和方向盘,让车辆沿着预定轨迹行驶。
例如,如图5所示,上述操作对应于自动驾驶车辆,可以分别由自动驾驶车辆的行为规划器(behavior planner,BP),运动规划器(motion planner,MoP)和运动控制器(Control)执行。其中,BP负责下发高层决策,MoP负责规划预期轨迹和速度,Control负责操作油门刹车方向盘,让自动驾驶车辆根据目标轨迹并达到目标速度。
应理解,行为规划器、运动规划器和运动控制器执行的相关操作可以是如图1所示的处理器113中的指令115,该指令115可以用于指示线路控制系统142。
现有技术中,在如图6所示的丁字路口的场景中,自动驾驶车辆可以在车道上沿着其自主决定的路径1-A行驶,其他车辆可以在车道上沿着路径1-B行驶,路径1-A与路径1-B具有交汇点,在该交汇点处自动驾驶车辆与其他车辆可能会出现碰撞情况。
此时,自动驾驶车辆的行为规划器BP可能会面临如下选择:
(a)等待所有其他车辆通过后再通过交叉路口;
(b)夹在两辆其他车辆之间通过交叉路口;
(c)抢在所有其他车辆前边通过交叉路口。
对于选择(a)而言,通过丁字路口最为安全稳妥,但耗时最长,且可能因为其他车辆流源源不断而导致自动驾驶车辆无法前行。
对于选择(b)而言,通过丁字路口具有一定危险性,需要选择合适的时机右转汇入车流。
对于选择(c)而言,通过丁字路口的等待时长较短,效率较高但是危险性也较大。通常人工驾驶员会根据环境,选择一种安全性和效率折中的方案,通过交叉路口。但是,对于自动驾驶车辆而言,如何安全快速的通过交叉路口成为一个亟需解决的问题。
因此,本申请实施例提出了一种规划自动驾驶车辆的方法,通过传感器的检测确定与自动驾驶车辆具有碰撞风险的N个其他车辆,其中,N个其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有交汇点,根据N个其他车辆与交汇点之间的距离可以确定N+1个候选车辆间隙,从N+1个候选车辆间隙中确定目标车辆间隙,从而控制自动驾驶车辆在目标车辆间隙内通过交汇点,使得自动驾驶车辆能够安全快速的通过交叉路口。
本申请实施例的规划自动驾驶车辆的方法及装置能够应用于交叉路口的场景中,其中,交叉路口可以是指自动驾驶车辆与其他车辆行驶在不同车道上,且车道相交。
示例性地,交叉路口可以包括但不限于:十字路口,丁字路口,匝道上主路,环岛等四种场景。此外,在本申请中交叉路口可以不具有交通信号灯。
例如,本申请实施例可以应用于图6所示的丁字路口的场景中。
同理,本申请实施例也可以应用于图7所示的十字路口的场景中,假设车道C上的其他车辆的预测轨迹与自动驾驶车辆的预测轨迹之间的交汇点为A,车道B上的其他车辆的预测轨迹与自动驾驶车辆的预测轨迹之间的交汇点为B,交汇点A与交汇点B可以为同一个交汇点即如图7所示,交汇点A与交汇点B也可以为不同的交汇点。
下面结合图8对本申请实施例的规划自动驾驶车辆的方法进行详细的介绍。图8所示的方法可以由图1所示自动驾驶车辆,或者,图2所示的自动驾驶系统来执行。图8所示的方法包括步骤401至403,下面分别对这些步骤进行详细的描述。
步骤401、获取交叉路口的车辆信息,车辆信息可以包括N辆其他车辆的位置,其中,N辆其他车辆的预测行驶轨迹与自动驾驶车辆的预测行驶轨迹在目标车道上具有一个交汇点,目标车道为所述自动驾驶车道计划汇入的车道,N辆其他车辆所在车道与自动驾驶车辆所在车道不同,N为正整数。
应理解,在本申请的实施例中其他车辆可以是自动驾驶车辆,也可以是人工驾驶车辆。上述N辆其他车辆所在车道与自动驾驶车辆所在车道不同可以是指N辆其他车辆与自动驾驶车辆的所在车道不同,或者,N辆其他车辆与自动驾驶车辆的行驶方向不同。上述目标车道可以是如图7所示的目的地方向的车道B。
其中,自动驾驶车辆的规划模块可以获取传感器检测的自动驾驶车辆周围的环境信息,例如,周围的道路情况、障碍物情况、其它其他车辆的信息以及天气情况等。
例如,自动驾驶车辆可以通过传感器检测到的有效距离范围内,确定交叉路口与自动驾驶车辆存在碰撞风险的N辆其他车辆。
具体地,传感器可以检测到其他车辆当前的行驶轨迹,根据其他车辆的当前行驶轨迹和交通规则可以确定其他车辆的预测行驶轨迹,进一步确定其他车辆的预测行驶轨迹与自动驾驶车辆的预测行驶轨迹是否存在交汇点,即确定其他车辆与自动驾驶车辆是否存在碰撞风险。
示例性地,若其他车辆所在的道路前方无交叉路口,传感器可以根据检测到当前其他车辆所在的车道,确定其他车辆的预测行驶轨迹。
示例性地,若其他车辆所在的车道前方有交叉路口,传感器可以根据检测到当前其他车辆所在的车道以及其他车辆的变道信号灯情况,确定其他车辆的预测行驶轨迹。
需要说明的是,步骤401中确定的N辆其他车辆可以是传感器检测到的有效距离范围内所有与自动驾驶车辆有碰撞风险的车辆,或者,N辆其他车辆也可以是根据自动驾驶车辆当前的系统负载确定的所有与自动驾驶车辆有碰撞风险的车辆中的部分车辆,本申请对此不作任何限定。
例如,传感器检测到有效距离范围内存在10个其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有交汇点,由于当前自动驾驶车辆的系统负载较大,可以选取10个其他车辆中与交汇点距离较近的5个其他车辆进行候选车辆间隙的计算。
步骤402、根据N辆其他车辆的位置和交汇点确定N+1个候选车辆间隙,其中,N+1个候选车辆间隙包括第一个车辆间隙、中间车辆间隙以及第N+1个车辆间隙,第一个车辆间隙是指第一个其他车辆与参考目标之间的间隙,第一个其他车辆为N辆其他车辆中距离交汇点最近的车辆,参考目标为参考车辆或者第一感应边界点,参考车辆是指第一个其他车辆通过交汇点后首个遇到的车辆,第一感应边界点位于与自动驾驶车辆的预测行驶方向相同的目标车道上,中间车辆间隙是指N辆其他车辆中任意两个相邻车辆之间的间隙,第N+1个车辆间隙是指第N辆其他车辆与第二感应边界点之间的间隙,第二感应边界点位于与自动驾驶车辆的预测行驶方向相反的目标车道上。
其中,第一个车辆间隙是指第一个其他车辆所在位置之前的间隙,第一个其他车辆是指N个其他车辆中距离交汇点最近的其他车辆。例如,如图6所示第一个其他车辆可以是指其他车辆3。在一个示例中,第一个车辆间隙可以是第一个其他车辆与通过交汇点后与交汇点距离最近的参考车辆之间的间隙。
例如,如图6所示,参考车辆可以是其他车辆4,第一个其他车辆间隙可以是指其他车辆3与其他车辆4之间的间隙。
应理解,参考车辆可以是指第一个其他车辆通过交汇点后首个遇到的车辆,其中,首个遇到的车辆可以包括出现在所述第一个其他车辆前方预定范围内的首个车辆。
在一个示例中,第一个车辆间隙还可以是第一个其他车辆与第一感应边界点之间的间隙。
例如,如图6所示,假设传感器的有效检测距离为50米,则第一个车辆间隙可以是其他车辆3所在的位置与其他车辆3所在车道预测行驶方向的有效检测点之间的间隙。
在上述步骤402中,第N个车辆间隙可以是指第N个其他车辆所在位置之后的间隙,第N个其他车辆是指N个其他车辆中距离交汇点最远的其他车辆。例如,如图6所示,第N个其他车辆可以是指其他车辆1。
例如,如图6所示,第N个车辆间隙可以是指第N个其他车辆与第二感应边界点之间的间隙,第二感应边界点可以是指其他车辆1所在车道左侧位置的有效检测边界点。
应理解,中间车辆间隙可以包括一个或者多个,中间车辆间隙是指N辆其他车辆中任意两个相邻车辆之间的间隙。相邻车辆可以包括位置相邻或者距离相邻,其中,位置相邻可以是同一个车道上位置相邻的两个其他车辆;距离相邻是指同一个车道或者不同车道上的其他车辆所在的位置与交汇点的距离相邻。距离相邻可以包括位于同一车道上与交汇点距离紧邻的两个车辆,或者,距离相邻可以包括位于不同车道上与交汇点距离紧邻的两个车辆。
示例性地,中间车辆间隙可以是指同一车道上任意两个位置相邻的其他车辆。
例如,如图6所示,两个位置相邻的其他车辆可以是指其他车辆1与其他车辆2,或者,其他车辆2与其他车辆3,其中,其他车辆1与其他车辆3之间不属于位置相邻的其他车辆。
示例性地,中间车辆间隙可以是N个其他车辆中任意两个与交汇点的距离相邻的车辆。
例如,如图7所示,假设其他车辆4与交汇点的距离为10米,其他车辆3与交汇点的距离为13米,其他车辆5与交汇点的距离为15米,则其他车辆4与其他车辆3之间可以是距离紧邻的车辆,或者,其他车辆3与其他车辆5之间可以是距离紧邻的车辆。换而言之,中间车辆间隙可以是指其他车辆4与其他车辆3之间的间隙,即车辆间隙可以是指其他车辆4通过交汇点后以及其他车辆3到达交汇点之前的空当。上述为举例说明,并不对本申请作出任何限定。
在本申请的实施例中,根据确定的N个其他车辆可以确定N+1个候选车辆间隙,候选车辆间隙可以用于自动驾驶车辆通过交汇点,从而避免自动驾驶车辆与其他车辆之间发生碰撞。
示例性地,可以根据检测到其他车辆与交汇点或者交叉路口的距离,按照距离从小到大的排序确定其他车辆的顺序,进一步根据其他车辆的顺序确定候选车辆间隙。
步骤403、根据N+1个候选车辆间隙的评估值确定目标车辆间隙,其中,评估值用于评估自动驾驶车辆在候选车辆间隙汇入交叉路口时的安全性,目标车辆间隙用于使自动驾驶车辆通过目标车辆间隙汇入交叉路口。
在本申请的实施例中,可以根据N+1个车辆间隙的属性参数集合,确定N+1个候选车辆间隙中每个车辆间隙的评估值;根据每个车辆间隙的评估值,确定目标车辆间隙。
其中,评估值可以用于判断在每个车辆间隙移动至所述交汇点时,自动驾驶车辆在每个车辆间隙内通过交汇点的安全性。
例如,候选车辆间隙的评估值较高,则可以说明自动驾驶车辆在该候选车辆间隙内通过交汇点的安全性较高。
上述候选车辆间隙的属性参数集合中可以包括长度参数、距离参数以及速度参数,其中,长度参数可以表示每个车辆间隙的长度,距离参数可以表示所述距离参数表示所述自动驾驶车辆与集合的最小距离,所述集合包括一个车辆间隙中的任意一个点,速度参数可以包括第一速度和第二速度,第一速度表示一个车辆间隙中前车的速度,第二速度表示所述前车与后车的速度差值,前车是指形成一个车辆间隙的两辆其他车辆中距离交汇点最近的车辆。例如,如图6所示,对于其他车辆3与其他车辆2之间的车辆间隙而言,前车可以是指其他车辆3,后车可以是指其他车辆2,前车速度参数即其他车辆3的速度参数;对于其他车辆2与其他车辆1之间形成的车辆间隙而言,前车可以是指其他车辆2,后车可以是指其他车辆1,前车速度参数即其他车辆2的速度参数。
例如,如图6所示,对于第一个车辆间隙,即其他车辆3所在位置之前的间隙而言,可以不存在前车,此时,前车的速度可以是指所在车道的道路限速。或者,前车可是指通过交汇点后距离交汇点最近的其他车辆即其他车辆4,后车可以是指其他车辆3,此时,前车速度参数可以是指其他车辆4的速度参数。
例如,如图6所示,对于第N个车辆间隙而言,前车即第N个其他车辆,可以不存在后车,即后车速度参数可以为0。
作为一个示例,候选车辆间隙的属性参数集合可以包括下列的一种或数种参数:
前车位置、前车与自动驾驶车辆(即,自车)的相对位置、前车速度、前车与自车的相对速度、后车位置、后车与自车的相对位置、后车速度、后车与自车的相对速度、长度、与自车距离。
进一步地,为了避免出现自动驾驶车辆在两个评估值接近的候选车辆间隙之间频繁跳动,属性参数集合中还可以包括第一参数,第一参数可以用于指示目标车辆间隙是否为当前时刻的上一时刻的目标车辆间隙。
换而言之,在两个评估值接近的候选车辆间隙中,上一时刻的目标车辆间隙更易被选中为本时刻的目标车辆间隙,防止自动驾驶车辆在目标车辆间隙频繁跳动。
在本申请的实施例中,为了降低计算的复杂度,可以将自动驾驶车辆与其他车辆投影至同一个车道中,从而通过纵向规划逻辑确定自动驾驶车辆与每个车辆间隙之间的距离。
示例性地,自动驾驶车辆所在车道可以为第一车道,可以根据N辆其他车辆与交汇点之间的距离,将N辆其他车辆投影至第一车道;根据第一车道上的自动驾驶车辆和投影的N辆其他车辆确定距离参数。
例如,如图10所示的投影方式。如图10所示,其他车辆1投影至自动驾驶车辆所在的车道上为其他车辆1虚拟投影,其他车辆2投影至自动驾驶车辆所在的车道上为其他车辆2虚拟投影示,其他车辆3投影至自动驾驶车辆所在的车道上为其他车辆3虚拟投影,其中,其他车辆虚拟投影的速度参数与其他车辆的速度参数相同。
示例性,可以根据自动驾驶车辆与交汇点之间的距离,将自动驾驶车辆投影至N辆其他车辆所在的车道上;根据N辆其他车辆所在车道上的N个其他车辆和投影的自动驾驶车辆确定所述距离参数。
例如,如图11所示的投影方式。如图11所示,自动驾驶车辆投影至其他车辆所在的车道上,其中,自动驾驶车辆虚拟投影的速度参数与自动驾驶车辆的速度参数相同。
进一步地,进行投影时还可以根据等速度原则,即投影后的其他车辆,或者,自动驾驶车辆的速度参数保持不变。
具体地,等距离原则是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆在车道上与交汇点或者交叉路口的距离不变。等速度原则是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆的速度参数不变。
应理解,通过上述等速度原则和等距离原则,从而确保投影后的车辆与原来车辆到达交汇点的时间不变。
需要说明的是,如图10所示,投影后其他车辆2的虚拟投影与自动驾驶车辆之间出现部分重合,则可以表明若自动驾驶车辆和其他车辆2均保持匀速,则自动驾驶车辆会与其他车辆2出现相撞。所以自动驾驶车辆可以选择加速进入前一个车辆间隙,或者,减速进入后一个车辆间隙。
示例性地,N辆其他车辆可以包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,所述根据所述N辆其他车辆所在车道上的所述N辆其他车辆和投影的所述自动驾驶车辆确定所述距离参数,包括:根据所述自动驾驶车辆与所述交汇点的距离将所述自动驾驶车辆投影至所述第二车道;根据所述N-M辆其他车辆与所述交汇点的距离将所述N-M辆其他车辆投影至所述第二车道;根据所述第二车道上的所述M辆其他车辆、投影的所述自动驾驶车辆以及投影的所述N-M辆其他车辆确定所述距离参数,M为小于N的正整数。
示例性地,N辆其他车辆可以包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,所述根据所述N辆其他车辆所在车道上的所述N辆其他车辆和投影的所述自动驾驶车辆确定所述距离参数,包括:根据所述自动驾驶车辆与所述交汇点的距离将所述自动驾驶车辆投影至所述第三车道;根据所述M辆其他车辆与所述交汇点的距离将所述M辆其他车辆投影至所述第三车道;根据所述第三车道上的所述N-M辆其他车辆、投影的所述M辆其他车辆以及投影的所述自动驾驶车辆确定所述距离参数,M为小于N的正整数。
在本申请的实施例中,可以将不在同一车道的其他车辆和自动驾驶车辆通过投影的方式,将其他车辆与自动驾驶车辆规划至同一车道。根据投影至同一车道上的自动驾驶车辆和N个其他车辆可以更简便的计算自动驾驶车辆与其他车辆之间的距离参数。
具体地,可以将自动驾驶车辆视为一个点,车辆间隙视为一段直线或曲线,距离参数可以表示车辆间隙与自动驾驶车辆的之间的最小距离。
例如,可以包括但不限于以下三种情形:
情形一:车辆间隙的前车后沿在自动驾驶车辆的前方,后车前沿在自动驾驶车辆的后方,则该车辆间隙与自动驾驶车辆的距离为0。
例如,如图12所示,投影后自动驾驶车辆位于中间车辆间隙gap2中,即车辆间隙2与自动驾驶车辆之间的距离参数为0。
情形二:车辆间隙的前车后沿在自动驾驶车辆后方,则该车辆间隙与自动驾驶车辆的距离为前车后沿与自动驾驶车辆的距离。
例如,如图12所示,投影后中间车辆间隙gap3的前车即其他车辆2的后沿在自动驾驶车辆后方,则自动驾驶车辆与gap3的距离可以是自动驾驶车辆的位置与其他车辆2后沿之间的距离,其中,自动驾驶车辆的位置可以是指自动驾驶车辆后轴中点的位置。
情形三:车辆间隙的后车前沿在自动驾驶车辆前方,则该车辆间隙与自动驾驶车辆的距离为后车前沿与自动驾驶车辆的距离。
例如,如图12所示,投影后第一个车辆间隙gap13的后车即其他车辆1的前沿在自动驾驶车辆前方,则自动驾驶车辆与gap1的距离可以是自动驾驶车辆的位置与其他车辆1前沿之间的距离,其中,自动驾驶车辆的位置可以是指自动驾驶车辆后轴中点的位置。
通过上述描述可以清楚地说明属性参数集合中的参数,在本申请的实施例中,进一步地还可以根据每个车辆间隙的属性参数确定车辆间隙的评估值,即可以根据每个车辆间隙的属性参数集合对车辆间隙进行打分。
例如,根据N+1个候选车辆间隙的属性参数集合,确定N+1个车辆间隙中每个车辆间隙的评估值,包括:
根据以下等式确定所述每个车辆间隙的评估值:
Si=f(xi,yi,zi);
其中,Si表示第i个车辆间隙的评估值,xi表示所述第i个车辆间隙的所述长度参数,yi表示所述第i个车辆间隙的所述距离参数,zi表示所述第i个车辆间隙的所述速度参数,i为小于或等于N的正整数。
可选地,每个车辆间隙的评估值可以与长度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的长度参数成正比关系。
可选地,每个车辆间隙的评估值可以与距离参数之间为单调递减关系,即每个车辆间隙的评估值可以与车辆间隙的距离参数成反比关系。
可选地,每个车辆间隙的评估值可以与速度参数之间为单调递增关系,即每个车辆间隙的评估值可以与车辆间隙的速度参数成正比关系。
应理解,当车辆间隙的长度越长时,自动驾驶车辆与车辆间隙的前车与后车的碰撞概率越小,即该车辆间隙的安全性越高,因此评估函数可以与长度参数为单调递增关系。
同理,当车辆间隙与自动驾驶车辆的距离越远,则自动驾驶车辆等待该车辆间隙所需要的等待时间越久,即自动驾驶车辆无法快速的通过车辆间隙,因此评估函数可以与距离参数为单调递减关系。
类似地,车辆间隙的前车速度越大,或者,前车与后车的速度差越大,则自动驾驶车辆与前车的碰撞概率越小,因此评估函数可以与速度参数为单调递增关系。
作为一个示例,在本申请的实施例中用于确定评估值的评估函数可以如下:
长度得分=f1(长度参数);
距离得分=f2(距离参数);
前车速度得分=f3(前车速度);
前后车速度差得分=f4(前后车速度差);
总分=g(长度得分,距离得分,前车速度得分,前后车速度差得分)。
其中,总分即可以是用于判断在每个车辆间隙移动至交汇点时,自动驾驶车辆在每个车辆间隙内通过交汇点的安全性的评估值。f1(),f3(),f4()可以为单调增函数,f2()可以为单调减函数,g()可以是对每一个变量均为单调增函数。
因此,可以认为最优的候选车辆间隙即长度长,距离自车近,前车速度快,且前后车速度大的车辆间隙。
例如,可以确定N+1个候选车辆间隙中每个车辆间隙的总分,则分数较高的车辆间隙可以作为目标车辆间隙。
应理解,评分值(例如,分数)可以是评估自动驾驶车辆在候选车辆间隙内通过交汇点的安全性以及效率的量化值,其中,量化值可以是越高越好,或者,也可以是越低越好,或者,还可以是与预设阈值接近越好。也就是说,可以根据不同的评估函数确定衡量评估值好坏的条件。
可选地,自动驾驶车辆的规划模块可以向控制模块发送控制指令,所述控制指令中包括所述目标车辆间隙的位置和运动参数的信息,根据控制指令确定自动驾驶车辆的运动参数。
其中,运动参数可以指目标车辆间隙的速度信息。
例如,规划模块可以负责规划自动驾驶车辆的预期轨迹以及速度大小。
例如,可以包括目标车辆间隙的前车速度信息、后车速度信息以及前后车速度差信息。前车可以是指形成目标车辆间隙的其他车辆中距离交汇点近的其他车辆。
应理解,对于N+1个候选车辆间隙中第一个车辆间隙可以是第一个其他车辆与检测距离之间的间隙,此时,可以看作第一个车辆间隙不存在前车。
类似地,第N个车辆间隙也可以不存在后车。
例如,规划模块可以负责规划自动驾驶车辆的预期轨迹以及速度大小。
可选地,控制模块接收控制模块发送的自动驾驶车辆的运动参数,控制模块根据所述自动驾驶车辆的运动参数控制自动驾驶车辆,使得自动驾驶车辆在目标车辆间隙内通过交汇点。
例如,控制模块可以根据规划模块确定的自动驾驶车辆的预期轨迹以及速度大小通过操作油门、刹车以及方向盘,使得自动驾驶车辆根据预期轨迹并达到目标速度。
例如,图13所示,控制模块可以通过操作油门、刹车以及方向盘控制自动驾驶车辆在目标车辆间隙内通过交汇点,即在目标车辆间隙内通过交叉路口避免与其他车辆出现碰撞情况。
应理解,在本申请的实施例中,当确定目标车辆间隙后可以进行提前预判,即确定目标车辆间隙后运动规划器可以根据控制指令确定自动驾驶车辆的运动参数,运动控制器根据自动驾驶车辆的运动参数可以对自动驾驶车辆进行加速或者减速的提前准备,使得自动驾驶车辆能够在目标车辆间隙内安全快速的通过交汇点。
本申请实施例提出的规划自动驾驶车辆的方法,通过传感器的检测确定与自动驾驶车辆具有碰撞风险的N个其他车辆,其中,N个其他车辆的预测行驶路径与自动驾驶车辆的预测行驶路径具有交汇点,根据N个其他车辆与交汇点之间的距离可以确定N+1个候选车辆间隙,从N+1个候选车辆间隙中确定目标车辆间隙,从而控制自动驾驶车辆在目标车辆间隙内通过交汇点,使得自动驾驶车辆能够安全快速的通过交叉路口。
应理解,上述以图8为例,举例说明是为了帮助本领域技术人员理解本申请实施例,而并非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
图9示出了本申请实施例提供的规划自动驾驶车辆的方法的示意性流程图,该方法可以由图1所示自动驾驶车辆,或者,图2所示的自动驾驶系统来执行。图9所示的方法包括步骤501至504,下面分别对这些步骤进行详细的描述。
步骤501、筛选其他车辆。
通常情况下,交叉路口的交通情况较为复杂,可能存在多辆其他车辆。自动驾驶车辆通过传感器检测到周围的道路情况,可以将其他车辆分为两类:一类是其他车辆的运动轨迹与自动驾驶车辆的运动轨迹相交,即与自动驾驶车辆有碰撞风险的其他车辆;另一类是与自动驾驶车辆不具有碰撞风险的其他车辆。
具体地,可以包括以下两个步骤:
第一步:根据每辆不属于自动驾驶车辆所在车道上的其他车辆,剔除以下其他车辆的信息,包括:行驶在对向车道的其他车辆的、在自动驾驶车辆后跟随的其他车辆的、等红灯的其他车辆的、停在道路外侧的其他车辆。
第二步:对于未被剔除的多个其他车辆,可以按照交通规则预测其接下来一定秒数内前行的轨迹,确定否与自动驾驶车辆的预测行驶轨迹存在交汇点,若存在交汇点则计算交汇点。存在交汇点的其他车辆则可以加入“可能与自车相撞的其他车辆”列表。
步骤502、生成虚拟空当(gap)。
应理解,虚拟空当可以是步骤402中的候选车辆间隙。
具体地,对每辆可能与自动驾驶车辆的轨迹相交的其他车辆,由于其与自动驾驶车辆不在同一条车道上,为了便于规划和计算可以将自动驾驶车辆与其他车辆投影至同一车道上,确定投影之间的空当。
需要说明的是,投影时可以遵循等速度和等距离原则。
方式一:将其他车辆投影到自动驾驶车辆所在的车道上。
例如,如图10所示,投影的其他车辆的尺寸与原其他车辆的尺寸相同,投影满足等速度原则和等距离原则。
其中,等距离原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆在车道上与交汇点或者交叉路口的距离不变;等速度原则可以是指将自动驾驶车辆或者其他车辆投影至另一个车道时,车辆的速度参数不变。
应理解,以上等速度原则和等距离原则可以保证投影得到的其他车辆与原其他车辆可以同时到达交汇点。其中,两个投影之间可以视为一个空当,最前车前方和最后车后方可以视为无限长的空当。
方式二:将自动驾驶车辆投影到其他车辆所在的车道上。
例如,如图11所示,投影的自动驾驶车辆的尺寸与自动驾驶车辆的尺寸相同,投影也可以满足上述等速度原则和等距离原则。
需要说明的是,步骤502可以对应于图中的步骤402,在图4中步骤402的可能实现方式同样适用于步骤502中,此处不再赘述。
步骤503、选择虚拟空当(gap)。
具体地,根据上述步骤502中得到的虚拟gap,根据每一个gap的属性参数集合可以进行评估确定每个gap的评估得分。
应理解,确定评估得分的目在于综合评估自动驾驶车辆汇入该gap的安全性和效率。
例如,多个gap中评估得分中评估得分最高的gap可以作为目标gap。
其中,gap的属性参数集合可以包括但不限于以下的一种或多种参数:
前车位置、前车与自动驾驶车辆(即,自车)的相对位置、前车速度、前车与自车的相对速度、后车位置、后车与自车的相对位置、后车速度、后车与自车的相对速度、长度、与自车距离、上一时刻是否为目标gap。
需要说明的是,对于每个gap来说,得分可以是其属性参数的单值函数。该函数的形式可以不固定,但对每一项属性参数可以存在合理的单调性。
例如,通常情况下gap的长度越长越适合汇入,则评估函数可以是长度的单调递增函数。
例如,gap与自车的距离越近越适合汇入,则评估函数可以是距离的单调递减函数,类似地,可以适用于属性参数集合中的任意一个参数。
需要说明的是,评估得分可以是评估自动驾驶车辆在虚拟gap内通过交汇点的安全性以及效率的量化值。其中,量化值可以是越高越好,或者,也可以是越低越好,或者,还可以是与预设阈值接近越好。也就是说,可以根据不同的评估函数确定不同的衡量条件确定评分的好坏。
需要说明的是,步骤503可以对应于图中的步骤403,在图4中步骤403的可能实现方式同样适用于步骤503中,此处不再赘述。
步骤504、控制自动驾驶车辆保持在目标空当(gap)内部。
例如,获取目标gap的位置和速度信息后,MoP和Control可以负责控制车速,将自动驾驶车辆维持在目标gap内部,使得自动驾驶车辆通过交汇点。
表1
例如,表1中示出了采用本申请实施例的规划自动驾驶车辆的方法,基于开源ROS系统搭建的模拟器中测试十字路口右转,辅路-主路交汇,路口调头和环岛四个场景中,自动驾驶车辆通过交叉路口的情况。从表1可以看出,通过本申请实施例的规划自动驾驶车辆的方法能够有效避免自动驾驶车辆出现碰撞的情况。例如,图14示出了四种不同场景的测试图。
表2
表2中所示的现有技术方案,即基于预计碰撞时间制定优先级的路口逻辑,在现有技术方案中对于所有社会辆,只考虑预计碰撞时间最短的其他车辆。根据自车的几何尺寸和动力学特性(车长、加减速性能)计算,若在其他车辆之前通过路口有碰撞风险,则减速等待该其他车辆通过路口,否则抢先在该其他车辆之前通过路口。现有技术方案中根据预计碰撞时间制定优先级,即碰撞时间越短则优先级越高,自动驾驶车辆一次只考虑一辆其他车辆与自动驾驶车辆是否会出现碰撞情况,不会根据社会车流的整体性质提前做好准备。
表2中示出了采用本申请实施例的规划自动驾驶车辆的方法,基于开源ROS系统搭建的模拟器中测试十字路口右转,辅路-主路交汇,路口调头和环岛四个场景中,自动驾驶车辆通过交叉路口的情况。从表2可以看出,两种算法都能避免碰撞,但是通过本申请实施例的基于虚拟gap算法在辅路-主路交汇场景和环岛场景能找到空当插入两辆其他车辆之间通过交叉路口,与现有技术方案相比更节省时间。在路口调头场景能够提前规划好速度,以合适的速度进入路口。从而能够避免从静止到起步导致的时间浪费。
在本申请的实施例中,通过遵循等速度原则和等距离原则的投影方式,投影的车辆(例如,投影后的其他车辆或者自动驾驶车辆)可以与真实的车辆(例如,原本的自动驾驶车辆,或者其他车辆)同时到达交汇点。因此,当自动驾驶车辆在目标gap内通过交汇点,则不会与其他车辆发生相撞,保证了自动驾驶车辆通过交叉路口的安全性。此外,通过虚拟gap与自动驾驶车辆的距离参数以及虚拟gap的速度参数,保证了自动驾驶车辆通过交叉路口的效率。综上所述,通过本申请实施例的规划自动驾驶车辆的方法可以使得自动驾驶车辆自车能够安全高效的通过交叉路口。
上文结合图1至图14,详细描述了本申请实施例提供的规划自动驾驶车辆的方法,下面将结合图15至图17,详细描述本申请的装置实施例。应理解,本申请实施例中的规划自动驾驶车辆的装置可以执行前述本申请实施例的各种方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图15是本申请一个实施例提供的自动驾驶车辆的行为规划装置的示意性框图。应理解,图15示出的行为规划装置600仅是示例,本申请实施例的装置还可包括其他模块或单元。应理解,行为规划装置600能够执行图8或图9的方法中的各个步骤,为了避免重复,此处不再详述。
如图15所示,行为规划装置600可以包括获取模块610和处理模块620,其中,获取模块610,用于获取交叉路口的车辆信息,所述车辆信息包括N辆其他车辆的位置,其中,所述N辆其他车辆的预测行驶轨迹与自动驾驶车辆的预测行驶轨迹在目标车道上具有一个交汇点,所述目标车道为所述自动驾驶车道计划汇入的车道,所述N辆其他车辆所在车道与所述自动驾驶车辆所在车道不同,N为正整数;处理模块620,用于根据所述N辆其他车辆的位置和所述交汇点确定N+1个候选车辆间隙,其中,所述N+1个候选车辆间隙包括第一个车辆间隙、中间车辆间隙以及第N+1个车辆间隙,所述第一个车辆间隙是指第一个其他车辆与参考目标之间的间隙,所述第一个其他车辆为所述N辆其他车辆中距离所述交汇点最近的车辆,所述参考目标为参考车辆或者第一感应边界点,所述参考车辆是指所述第一个其他车辆通过所述交汇点后首个遇到的车辆,所述第一感应边界点位于与所述自动驾驶车辆的预测行驶方向相同的所述目标车道上,所述中间车辆间隙是指所述N辆其他车辆中任意两个相邻车辆之间的间隙,所述第N+1个车辆间隙是指第N辆其他车辆与第二感应边界点之间的间隙,所述第二感应边界点位于与所述自动驾驶车辆的预测行驶方向相反的所述目标车道上;所述处理模块620,还用于根据所述N+1个候选车辆间隙的评估值确定目标车辆间隙,其中,所述评估值用于评估所述自动驾驶车辆在候选车辆间隙汇入所述交叉路口时的安全性,所述目标车辆间隙用于使所述自动驾驶车辆通过所述目标车辆间隙汇入所述交叉路口。
可选地,在一种可能的实现方式中,所述处理模块620具体用于:
根据所述N+1个车辆间隙的属性参数集合,确定所述N+1个候选车辆间隙中每个车辆间隙的评估值;根据所述每个车辆间隙的评估值,确定所述目标车辆间隙;
其中,所述属性参数集合包括长度参数、距离参数以及速度参数,所述长度参数表示一个车辆间隙的长度,所述距离参数表示所述自动驾驶车辆与集合的最小距离,所述集合包括一个车辆间隙中的任意一个点,所述速度参数包括第一速度和第二速度,所述第一速度表示一个车辆间隙中前车的速度,所述第二速度表示所述前车与后车的速度差值,所述前车是指形成一个车辆间隙的两辆其他车辆中距离所述交汇点最近的车辆。
可选地,在一种可能的实现方式中,所述目标车辆间隙为当前时刻的目标车辆间隙,所述属性参数集合还包括第一参数,所述第一参数用于指示所述目标车辆间隙是否为所述当前时刻的上一时刻的目标车辆间隙。
可选地,在一种可能的实现方式中,所述处理模块620具体用于:
根据以下等式确定所述每个车辆间隙的评估值:
Si=f(xi,yi,zi);
其中,Si表示第i个车辆间隙的评估值,xi表示所述第i个车辆间隙的所述长度参数,yi表示所述第i个车辆间隙的所述距离参数,zi表示所述第i个车辆间隙的所述速度参数,i为小于或等于N的正整数。
可选地,在一种可能的实现方式中,所述自动驾驶车辆所在车道为第一车道,所述处理模块620还用于:
根据所述N辆其他车辆与所述交汇点之间的距离,将所述N辆其他车辆投影至所述第一车道;根据所述第一车道上的所述自动驾驶车辆和投影的所述N辆其他车辆确定所述距离参数。
可选地,在一种可能的实现方式中,所述处理模块620还用于:
根据所述自动驾驶车辆与所述交汇点之间的距离,将所述自动驾驶车辆投影至所述N辆其他车辆所在的车道上;根据所述N辆其他车辆所在车道上的所述N个其他车辆和投影的所述自动驾驶车辆确定所述距离参数。
可选地,在一种可能的实现方式中,所述N辆其他车辆包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,所述处理模块620具体用于:
根据所述自动驾驶车辆与所述交汇点的距离将所述自动驾驶车辆投影至所述第二车道;根据所述N-M辆其他车辆与所述交汇点的距离将所述N-M辆其他车辆投影至所述第二车道;根据所述第二车道上的所述M辆其他车辆、投影的所述自动驾驶车辆以及投影的所述N-M辆其他车辆确定所述距离参数,M为小于N的正整数。
可选地,在一种可能的实现方式中,所述N辆其他车辆包括第二车道上的M辆其他车辆和第三车道上的N-M辆其他车辆,所述处理模块620具体用于:
根据所述自动驾驶车辆与所述交汇点的距离将所述自动驾驶车辆投影至所述第三车道;根据所述M辆其他车辆与所述交汇点的距离将所述M辆其他车辆投影至所述第三车道;根据所述第三车道上的所述N-M辆其他车辆、投影的所述M辆其他车辆以及投影的所述自动驾驶车辆确定所述距离参数,M为小于N的正整数。
应理解,这里的行为规划装置600以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(applicationspecific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
在一个示例中,行为规划装置的结构示意图可以如图16所示。如图16所示,行为规划装置700可以包括威胁评估模块710、车辆间隙生成模块720、车辆间隙选择模块730、运动参数生成模块740。其中,行为规划装置700包括的各个模块可以通过软件和/或硬件方式实现。
例如,威胁评估模块710可以对应于图15中的获取模块610,威胁评估模块可以用于在交通情况比较混乱的交叉路口,获取与自动驾驶车辆具有碰撞风险的车辆信息。
例如,图15所示的处理模块的具体实现形式可以包括车辆间隙生成模块720、车辆间隙选择模块730、运动参数生成模块740,其中,车辆间隙生成模块720可以用于根据N辆其他车辆的位置和交汇点确定N+1个候选车辆间隙;车辆间隙选择模块730可以用于根据N+1个候选车辆间隙的评估值确定目标车辆间隙;运动参数生成模块740可以用于根据目标车辆间隙的位置和运动参数的信息,生成自动驾驶车辆的运动参数。
作为一个示例,本申请实施例提供的自动驾驶车辆的行为规划装置可以是自动驾驶车辆的车载设备,或者,可以是配置于车载设备中的芯片,可以执行本申请实施例所述的方法。
图17是本申请一个实施例的规划自动驾驶车辆的装置的示意性框图。图17所示的装置800包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
存储器801可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802用于执行本申请实施例的规划自动驾驶车辆的方法的各个步骤,例如,可以执行图8或图9所示实施例的各个步骤。
处理器802可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的规划自动驾驶车辆的方法。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的规划自动驾驶车辆的方法的各个步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器802还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请实施例中自动驾驶车辆的行为规划装置包括的单元所需执行的功能,或者,执行本申请方法实施例的规划自动驾驶车辆的方法,例如,可以执行图8或图9所示实施例的各个步骤/功能。
通信接口803可以使用但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。
总线804可以包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
应理解,本申请实施例所示的装置可以是自动驾驶车辆中的车载设备,或者,也可以是配置于车载设备中的芯片。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。