1.本公开涉及计算机技术领域,具体涉及自动驾驶、智能交通等技术领域,尤其涉及一种车辆控制方法、装置、车辆、设备和存储介质。
背景技术:2.自动驾驶车辆(autonomous vehicles;self-driving automobile)又称无人驾驶车辆、电脑驾驶车辆或轮式移动机器人,是一种通过电脑系统实现无人驾驶的智能车辆。
3.路径规划是自动驾驶车辆需解决的问题之一。路径规划可以采用路径规划算法实现,路径规划算法可以为轻量化规划算法。
技术实现要素:4.本公开提供了一种车辆控制方法、装置、设备和存储介质。
5.根据本公开的一方面,提供了一种车辆控制方法,包括:获取车辆的当前行驶信息,所述当前行驶信息包括当前速度;基于所述当前行驶信息,确定所述车辆的行驶路径;若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作。
6.根据本公开的另一方面,提供了一种车辆控制装置,包括:获取模块,用于获取车辆的当前行驶信息,所述当前行驶信息包括当前速度;第一确定模块,用于基于所述当前行驶信息,确定所述车辆的行驶路径;第一控制模块,用于若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作。
7.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
8.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
9.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
10.根据本公开的另一方面,提供了一种自动驾驶车辆,包括:如上述任一方面的任一项所述的电子设备。
11.根据本公开的技术方案,可以提高车辆自动通行能力。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用于更好地理解本方案,不构成对本公开的限定。其中:
14.图1是根据本公开第一实施例的示意图;
15.图2是根据本公开第二实施例的示意图;
16.图3是根据本公开第三实施例的示意图;
17.图4是根据本公开第四实施例的示意图;
18.图5是根据本公开第五实施例的示意图;
19.图6是根据本公开第六实施例的示意图;
20.图7是根据本公开第七实施例的示意图;
21.图8是根据本公开第八实施例的示意图;
22.图9是根据本公开第九实施例的示意图;
23.图10是根据本公开第十实施例的示意图;
24.图11是根据本公开第十一实施例的示意图;
25.图12是用来实现本公开实施例的车辆控制方法的电子设备的示意图。
具体实施方式
26.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
27.针对自动驾驶车辆,轻量化规划算法是指,主要考虑自动驾驶车辆的位置、速度、朝向角(heading angle),即不考虑车辆的转向角。由于不考虑转向角,也就无法识别并执行静止转向操作。针对前轮驱动车辆,转向角可以为方向盘转角(steering angle)和/或前轮转角(wheel angle),一般来讲,方向盘转角和前轮转角存在线性的比例关系,比如,前轮转角=方向盘转角/ratio,ratio为已知的比例值。
28.路径规划若不考虑转向角,则无法识别并执行静止转向操作,导致车辆的自动通行能力较弱,比如,车辆与障碍物的距离较近时,若不执行静止转向操作可能无法通行(即可能与障碍物发生碰撞),但是,若执行静止转向操作可能能够通行。因此,相关技术中无法识别并执行静止转向操作,会导致具备通行能力的车辆无法实现通行,此时,一般由驾驶员人工接管自动驾驶车辆,影响了车辆的自动通行能力。
29.为了提高车辆自动通行能力,本公开提供如下实施例。
30.图1是根据本公开第一实施例的示意图,本实施例提供一种车辆控制方法,所述方法包括:
31.101、获取车辆的当前行驶信息,所述当前行驶信息包括当前速度。
32.102、基于所述当前行驶信息,确定所述车辆的行驶路径。
33.103、若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作。
34.为了更好地理解本公开实施例,先对自动驾驶场景进行说明。
35.如图2所示,自动驾驶场景下涉及的设备包括:自动驾驶车辆201和服务器202,自
动驾驶车辆201和服务器202可以通过通信网络连接,通信网络可以为无线通信网络,比如通过基站提供的信号进行通信。另外,为了实现对自动驾驶车辆的准确定位,自动驾驶场景下还可以包括卫星(图中未示出)。服务器202可以自动驾驶车辆对应的本地服务器或者为云端服务器。
36.自动驾驶车辆的自动驾驶功能可以通过自动驾驶系统实现。自动驾驶系统实现的自动驾驶级别目前可以分为l0~l5级别。其中,l0级驾驶表示无自动驾驶,即传统的驾驶员人工驾驶;l1级驾驶又称为辅助驾驶,包括定速巡航、自动泊车以及车道保持等基本功能;l2级驾驶又称为半自动驾驶,包括自动辅助驾驶,危险预判刹车等功能;l3级驾驶又称为有条件自动驾驶,与l2级相比,它可以在正常的路段下实现完全自动化驾驶,但是在一些紧急情况发生时,还是需要人工来进行辅助制动;l4级驾驶属于高度自动驾驶,汽车的整体制动性能以及反应能力已经达到了一个比较高的水准,驾驶员坐在汽车内部不用自己操控,而且汽车行驶比较平稳顺畅;l5级自动驾驶,它可以实现无条件的全自动驾驶技术,不管在任何情况下,都不用担心路况以及天气,实现全自动驾驶。
37.如图3所示,自动驾驶系统300可以包括:感知系统301、决策系统302和执行系统303。
38.自动驾驶系统中包括的各种系统还可以称为子系统、模块、组件、单元等。这些子系统可以为软件、硬件或者软硬结合。这些子系统中的部分或者全部可以部署在用户设备上,和/或,部署在服务器上。
39.用户设备可以包括:车载终端,或者,用户使用的移动设备。车载终端也可以称为车机,车机是指安装在车辆里面的车载信息娱乐产品的简称,车机在功能上能够实现人与车,车与外界(车与车、车与服务器)的信息通讯。移动设备可以包括:手机、平板电脑、便携式可穿戴设备等。
40.感知系统301,用于获得感知信息,感知信息可以包括障碍物信息、车辆自身信息等。即,感知系统可以检测车辆所在环境的环境信息,并基于环境信息计算障碍物信息和车辆自身信息等。障碍物信息比如包括:障碍物的位置、速度等,车辆自身信息比如包括车辆自身的位置、速度等。
41.感知系统301可以包括车辆上安装的传感器以及计算平台,传感器用于采集传感数据,计算平台用于基于传感数据进行计算,以确定障碍物信息以及车辆自身信息等。
42.传感器可以包括:摄像头、激光雷达、毫米波雷达、超声波雷达、全球定位系统(global positioning system,gps)、惯性测量单元(inertial measurement unit,imu)等。
43.计算平台可以为车载计算芯片,或者,车辆可以将采集的传感数据发送给服务器,由服务器中的计算平台进行相关信息的计算等。
44.决策系统302,用于基于感知系统301获得的感知信息进行决策,以获得决策信息。决策可以包括路径规划(path planning)、行为规划(behavior planning)、轨迹规划(trajectory planning)等。相应地,决策信息可以包括决策出来的驾驶行为、路径、轨迹等。
45.其中,行为规划可以规划自动驾驶车辆的驾驶行为,比如,停车、换道、超车、避让、缓慢行驶等。
46.路径规划是指,在已知几何约束(比如障碍物,地图等)情况下求解路径。轨迹规划是指,在已知时间约束(限定多长时间到达)、速度约束(速度最高能到多少)的情况下求解轨迹。
47.路径规划可以规划行驶的几何形状,几何形状可以用车辆的位置(x,y)和朝向角ψ表示,路径规划时,可以求解路径的累计长度s映射到几何形状(x,y,ψ)的函数,即s-》(x,y,ψ)的路径函数。轨迹规划可以是在规划出路径后,通过速度规划求解时间t映射到上述的累计长度s,以及速度v、加速度a的函数,即,t-》(s,v,a)的函数,从而可以获得t-》(x,y,ψ,v,a)的轨迹函数。
48.执行系统303,也可以称为控制系统,用于基于决策系统302获得的决策信息控制车辆的驾驶行为,比如,控制车辆的转向装置、油门装置、刹车装置等,以使得车辆按照决策出来的驾驶行为、路径、轨迹等行驶。
49.可以理解的是,上述场景说明只是便于对本公开实施例的理解进行的示例性说明,本公开实施例的执行不限于上述场景,还可以应用到任何适用的场景中。
50.结合上述场景示例,对本实施例的车辆控制方法进行说明如下:
51.车辆,可以具体为自动驾驶车辆,进一步地,可以为自动驾驶公交车。可以理解的是,不限于公交车,还可以为汽车、火车、货车等。
52.当前行驶信息可以包括:车辆的当前位置、当前速度、当前朝向角。其中,参考图3,可以由感知系统301获取当前行驶信息。
53.行驶路径是指,基于路径规划算法确定的路径。其中,参见图3,可以由决策系统302确定车辆的行驶路径。
54.其中,路径规划算法可以为轻量化的路径规划算法,比如,主要考虑车辆的位置、速度、朝向角(heading angle)进行路径规划,即,不参考车辆的转向角进行路径规划。
55.一般来讲,将车辆视为质点或刚体的路径规划算法即为轻量化的路径规划算法,比如,a*算法、dj算法,二次规划(osqp)算法,em planner、lattice planner等。
56.当前行驶信息可以包括当前速度,若当前速度为零,则可以确定所述车辆处于静止状态。
57.可以理解的是,当前速度为零是指广义的速度为0,即,若当前速度等于0,或者,当前速度近似等于0(小于某个预设阈值),可以认为车辆的当前速度为零,相应地,车辆处于静止状态。
58.若车辆处于静止状态,可以识别是否需要执行静止转向操作,若需要,则执行静止转向操作。
59.静止转向操作,也可以称为原地转向操作,是指车辆在保持静止状态下转向一定的角度。转向可以通过转向装置实现,转向装置比如包括方向盘。
60.以自动驾驶车辆为例,若自动驾驶车辆与前方障碍物的距离较近时,比如,自动驾驶公交车在出站时,由于站点环境比较复杂,很容易出现自动驾驶公交车与前方车辆距离较近的问题。此时,相关技术中,为了保证安全,一般采用人工接管的方式。但是,此时的自动驾驶公交车可能具备自动通行能力,即,若自动驾驶公交车执行静止转向操作后,是可以绕开前方车辆的。不考虑自动驾驶车辆的实际通行能力,统一采用人工接管的方式,无疑降低了自动驾驶车辆的自动通行能力。
61.本实施例中,若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作,可以实现对静止转向操作的识别以及执行,而不是采用人工接管的方式,可以提高车辆自动通行能力。另外,车辆处于静止状态下而不是所有场景下,进行静止转向操作的识别和执行,由于大多数场景下并不需要静止转向的判定,从而可以降低运算复杂度,提高车辆控制效率。
62.图4是根据本公开第四实施例的示意图,本实施例提供一种车辆控制方法,本实施例的方法包括:
63.401、获取当前处于自动驾驶模式的车辆的当前行驶信息,所述当前行驶信息包括当前速度。
64.其中,车辆可以为自动驾驶车辆,且当前模式为自动驾驶模式。
65.其中,当前行驶信息可以包括:当前位置、当前速度、当前朝向角。
66.402、基于轻量化路径规划算法,确定所述车辆的初始路径。
67.其中,轻量化路径规划算法中,主要考虑车辆的位置、速度、朝向角,而不参考车辆的转向角。
68.针对前轮驱动车辆,转向角可以为方向盘转角(steering angle)和/或前轮转角(wheel angle),一般来讲,方向盘转角和前轮转角存在线性的比例关系,比如,前轮转角=方向盘转角/ratio,ratio为已知的比例值。
69.轻量化路径规划算法具体可以为,a*算法、dj算法,二次规划(osqp),em planner、lattice planner等。
70.基于轻量化路径规划算法,规划得到的路径可以称为初始路径。
71.403、判断所述初始路径是否通过碰撞检测,若是,执行404,否则执行405。
72.一般来讲,在生成最终的路径(path)之前,为了保证安全性,需要对路径进行碰撞检测。
73.碰撞检测的方式有多种,可以采用相关技术的碰撞检测技术实现。
74.比如,参见图5,障碍物的区域范围用501表示,一条路径为第一路径502,另一条路径为第二路径503,假设,第二路径503与障碍物的区域范围501存在交点,则第二路径503未通过碰撞检测;若第一路径502与障碍物的区域502不存在交点,且最短距离大于预设安全距离,则第一路径502通过碰撞检测。
75.404、将所述初始路径作为行驶路径。
76.比如,参见图5,假设初始路径为第一路径502,由于第一路径502通过碰撞检测,则可以将第一路径502作为行驶路径。
77.405、基于所述当前行驶信息确定虚拟朝向角,以及基于所述虚拟朝向角确定所述车辆的行驶路径。
78.比如,参见图5,假设初始路径为第二路径503,由于第二路径503未通过碰撞检测,此时,不能将第二路径503作为行驶路径,可以基于虚拟朝向角重新规划路径。
79.又比如,参见图6,待控制车辆可以称为本车,本车前方的障碍物为障碍车,基于轻量化的路径规划算法确定的行驶路径可能未通过碰撞检测,比如,图6中用“未通过碰撞检测的路径”表示,此时,可以基于虚拟朝向角,基于轻量化的路径规划算法,重新规划路径。
80.其中,虚拟朝向角可以根据车辆的真实朝向角、转向角等确定,计算公式可以如
下:
81.ψ'=ψ+v
经验
*tan(δ)/l*t
经验
;
82.其中,δ=θ/ratio;
83.其中,ψ'为虚拟朝向角,ψ为车辆的真实朝向角、δ为车辆的前轮转角,θ为车辆的方向盘转角,前轮转角和方向盘转角成线性比例关系,ratio为比例系数,为已知值;l为车辆的轴距,v
经验
和t
经验
为可设置的经验值。
84.获得虚拟朝向角后,可以基于当前位置、当前速度和虚拟朝向角,重新规划路径,将重新规划的路径作为行驶路径。
85.为了保证平稳性,决策系统在控制时,可以动态调整朝向角的权重,防止退出静止转向时结果突变。
86.通过若初始路径未通过碰撞检测,基于虚拟朝向角重新行驶路径,可以提高行驶路径的安全性。
87.406、确定第一边界路径和第二边界路径,所述第一边界路径基于所述车辆的当前转向角和最大转向速率确定,所述第二边界路径基于所述车辆的最大转向角和最小转向速率确定。
88.其中,第一边界路径可以用path_limit_low表示,第二边界路径可以用path_limit_high表示,path_limit_low的含义为基于车辆的当前转向角(如,方向盘转角)及最大转向速率确定的车辆的转弯路径,即车辆前进过程中同步转向所能达到的转向能力对应的路径。path_limit_high的含义为假设车辆完成最大静止转向,基于最大转向角所能达到的转向能力对应的路径。path_limit_high可以近似为以车辆最小转弯半径画的1/4圆。
89.path_limit_low和path_limit_high都可以基于车辆运动学模型估算得到,path_limit_low还可以通过实车转弯起步试验得到。
90.估算path_limit_low和path_limit_high时,可以参考图7所示的车辆运动学模型。
91.如图7所示,车辆的两个前轮可以视为一个前轮,车辆的两个后轮可以是视为一个后轮,l为车辆的轴距,ψ为车辆的朝向角,即车身方向与坐标系横轴(x轴)的夹角,δ为车辆的前轮转角,即,前轮方向与车身方向的夹角,(x,y)为车辆的位置,v为车辆的速度。
92.边界路径上的各个路径点可以包括如下路径点信息:(x,y,ψ)。
93.当前时刻的路径点信息可以基于上一时刻的路径点信息计算,或者说,基于当前时刻的路径点信息可以计算下一时刻的路径点信息。
94.两个相邻时刻的路径点信息的计算公式可以如下:
95.x1=x0+v0*t*cosψ096.y1=y0+v0*t*sinψ097.ψ1=ψ0+v0*t*tanδ0/l
98.δ1=δ0+ω0*t
99.v1=v0+a*t
100.其中,下标为0的信息为t=0时刻的信息,下标为1的信息为t=1时刻的信息,t=0与t=1为相邻时刻。比如,(x0,y0,ψ0)为t=0时刻的路径点信息,(x1,y1,ψ1)为t=1时刻的路径点信息。
101.t为预设的时间间隔,比如,t=0.1秒;a为加速度,可以选择为0;ω0为t=0时刻的前轮转角速率。
102.需要说明的是,若v0=0,在路径规划/轨迹规划时,可以先将车辆均匀加速到非零的速度值(比如3km/h),将该非零速度值(比如3km/h)作为当前值,即,在路径规划/轨迹规划时,若v0=0,先将v0转换为非零值,再进行上述公式的计算等。
103.基于上述计算公式,可以从车辆的当前时刻(假设用t=0表示)开始,以t为时间间隔,依次计算各个时刻(t=1,t=2,t=3等)的路径点信息,从而可以基于各个时刻的路径点信息形成对应的边界路径(第一边界路径和/或第二边界路径)
104.针对第一边界路径和第二边界路径,当前时刻(假设用t=0表示)中的(x0,y0)为车辆的当前位置,ψ0为当前朝向角,v0为非零值的当前速度。
105.针对第一边界路径,δ0为车辆的当前前轮转角,ω0为车辆的最大转向速率。即,第一边界路径基于所述车辆的当前转向角和最大转向速率确定。
106.针对第二边界路径,δ0为车辆的最大前轮转角,ω0为0。即,第二边界路径基于所述车辆的最大转向角和最小转向速率确定。
107.可以理解的是,402-405与406无时序限定关系,即,可以先确定行驶路径,再确定边界路径(第一边界路径和/或第二边界路径),也可以先确定边界路径再确定行驶路径,或者,并行确定行驶路径和边界路径。
108.407、判断所述行驶路径是否位于所述第一边界路径的可达范围之内,若是,执行408,否则,执行409。
109.408、控制所述车辆保持所述自动驾驶模式。
110.409、判断所述行驶路径是否位于所述第二边界路径的可达范围之内,若是,执行411,否则,执行410。
111.410、控制所述车辆执行倒车操作,或者控制所述车辆所述自动驾驶模式转换为人工接管模式。
112.411、控制所述车辆执行静止转向操作。
113.其中,如图8所示,自动驾驶车辆称为本车,障碍物为障碍车。基于图8的示例,若行驶路径位于第一边界路径和第二边界路径之间,则表明行驶路径位于第一边界路径的可达范围之外,且位于第二边界路径的可达范围之内,此时可以触发静止转向;若位于第一边界路径的下方,则表明行驶路径位于第一边界路径的可达范围之内,此时可以保持自动驾驶模式;若位于第二边界路径的上方,则表明行驶路径位于第二边界路径的可达范围之外,则可以倒车或者人工接管。
114.图8中,实线的行驶路径基于实线的障碍车确定,基于图8的示例,由于实线的行驶路径位于第一边界路径和第二边界路径之间,此时需要触发静止转向。虚线的行驶路径基于虚线的障碍车确定,基于图8的示例,由于虚线的行驶路径位于第一边界路径的下发,此时不需要触发静止转向,可以保持自动驾驶模式。
115.关于行驶路径与第一边界路径和第二边界路径之间的关系,可以采用如下方式确定:
116.假设,所述行驶路径上的路径点的位置坐标称为待比对横坐标和待比对纵坐标,所述第一边界路径上的路径点的位置坐标称为第一横坐标和第一纵坐标,所述第二边界路
径上的路径点的位置坐标称为第二横坐标和第二纵坐标,则:
117.针对相同的所述待比对横坐标、所述第一横坐标和所述第二横坐标,
118.若所述待比对纵坐标小于或等于所述第一纵坐标,确定所述行驶路径位于所述第一边界路径的可达范围之内;或者,
119.若所述待比对纵坐标大于所述第一纵坐标,且,所述待比对纵坐标小于或等于所述第二纵坐标,确定所述行驶路径位于所述第一边界路径的可达范围之外,且位于所述第二边界路径的可达范围之内;或者,
120.若所述待比对纵坐标大于所述第二纵坐标,确定所述行驶路径位于所述第二边界路径的可达范围之外。
121.比如,参见图9,可以选择相同的横坐标(x),行驶路径上该x对应的待比对纵坐标用y表示,第一边界路径对应x的第一纵坐标用y
low
表示,第二边界路径对应x的第二纵坐标用y
high
表示,则:
122.若y《=y
low
,则表明行驶路径位于第一边界路径的可达范围之内;
123.若y
low
《y《=y
high
,则表明行驶路径位于第一边界路径的可达范围之外,且位于第二边界路径的可达范围之内;图9中,即为此种情况。
124.若y》y
high
,则表明行驶路径位于第二边界路径的可达范围之外。
125.若所述行驶路径位于所述第一边界路径的可达范围之外,且位于所述第二边界路径的可达范围之内,说明车辆采用静止转向操作后可以避开障碍物,即,车辆通过静止转向具有通行能力,此时,控制所述车辆执行静止转向操作,可以充分发挥车辆自身的通行能力。
126.若所述行驶路径位于所述第二边界路径的可达范围之外,说明车辆即使静止转向到最大转向角,依然无法避开前方障碍物,即,静止转向到最大转向角也无法通行,此时,控制所述车辆执行倒车操作,或者控制所述车辆从自动驾驶模式转换为人工接管模式,可以保证车辆行驶的安全性。
127.若所述行驶路径位于所述第一边界路径的可达范围之内,说明车辆不需要静止转向正常行驶就可以避开障碍物,此时,控制所述车辆保持自动驾驶模式,可以保证车辆行驶的平稳性。
128.通过上述的待比对纵坐标与第一纵坐标以及第二纵坐标的关系,可以准确地识别出行驶路径与第一边界路径和第二边界路径的关系。
129.可以理解的是,行驶路径与第一边界路径和第二边界路径的关系判定的顺序不限定,比如,可以先判定行驶路径是否位于第一边界路径的可达范围之内,还可以先判定行驶路径是否位于第二边界路径的可达范围之内等。
130.进一步地,针对静止转向操作,可以包括:
131.确定静止转向角;控制所述车辆在保持所述静止状态下,转动所述静止转向角。
132.比如,静止转向角为方向盘转角,假设确定的静止转向角为50度,则可以控制车辆在原地转动方向盘50度。
133.其中,静止转向角的大小(比如50度),可以基于控制算法确定。控制算法比如为模型预测控制(model predictive control,mpc)算法。mpc算法中可以基于车辆的当前状态信息(当前位置、当前速度、当前朝向角、当前实际的前轮转角)和目标状态信息(目标位置、
目标速度、目标朝向角、目标前轮转角)等,确定出当前期望的前轮转角,由于前轮转角和方向盘转角存在特定的线性关系,也即可以确定出当前期望的方向盘转角,从而可以控制方向盘转动相应的角度,达到当前期望的方向盘转角。
134.通过确定并控制车辆保持静止状态下,转到静止转向角,可以完成静止转向操作。
135.412、响应于所述转动所述静止转向角的操作完成,控制所述车辆基于所述行驶路径行驶。
136.即,完成静止转向操作后,可以按照之前规划的行驶路径行驶。
137.通过静止转向角的操作完成后,控制车辆基于行驶路径行驶,可以保证车辆的正常行驶。
138.另外,车辆行驶时,可以先基于行驶路径规划出行驶轨迹,再执行轨迹跟踪,从而可以实现按照行驶路径和行驶轨迹行驶。
139.其中,静止转向操作时,可以认为是对应静止轨迹,静止转向操作完成后的行驶轨迹可以认为是带速度的轨迹,为了保证静止轨迹和带速度的轨迹的一致性,可以合理调整预瞄距离,避免静止转向的结果跳变。比如,相关技术中的预瞄距离为轨迹点的速度与曲率的函数,不含时间信息,本实施例的预瞄距离可以包含时间信息,即,预瞄距离可以为速度、曲率和时间的函数。
140.本实施例中,通过确定第一边界路径和第二边界路径,由于第一边界路径可以表明车辆非静止状态下行驶具有的最大转向能力,第二边界路径可以表明车辆在最大静止转向后行驶具有的最大转向能力,因此,基于第一边界路径和第二边界路径可以确定行驶路径是否能够触发静止转向操作,便于静止转向操作的识别和执行。
141.图10是根据本公开第十实施例的示意图,本实施例提供一种车辆控制装置。如图10所示,该装置1000包括:获取模块1001、第一确定模块1002和第一控制模块1003。
142.获取模块1001用于获取车辆的当前行驶信息,所述当前行驶信息包括当前速度;第一确定模块1002用于基于所述当前行驶信息,确定所述车辆的行驶路径;第一控制模块1003用于若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作。
143.结合上述实施例中的场景示例,对本实施例的车辆控制装置进行说明如下:
144.车辆,可以具体为自动驾驶车辆,进一步地,可以为自动驾驶公交车。可以理解的是,不限于公交车,还可以为汽车、火车、货车等。
145.当前行驶信息可以包括:车辆的当前位置、当前速度、当前朝向角。其中,参考图3,可以由感知系统301获取当前行驶信息。
146.行驶路径是指,基于路径规划算法确定的路径。其中,参见图3,可以由决策系统302确定车辆的行驶路径。
147.其中,路径规划算法可以为轻量化的路径规划算法,比如,主要考虑车辆的位置、速度、朝向角(heading angle)进行路径规划,即,不参考车辆的转向角进行路径规划。
148.一般来讲,将车辆视为质点或刚体的路径规划算法即为轻量化的路径规划算法,比如,a*算法、dj算法,二次规划(osqp)算法,em planner、lattice planner等。
149.当前行驶信息可以包括当前速度,若当前速度为零,则可以确定所述车辆处于静止状态。
150.可以理解的是,当前速度为零是指广义的速度为0,即,若当前速度等于0,或者,当前速度近似等于0(小于某个预设阈值),可以认为车辆的当前速度为零,相应地,车辆处于静止状态。
151.若车辆处于静止状态,可以识别是否需要执行静止转向操作,若需要,则执行静止转向操作。
152.静止转向操作,也可以称为原地转向操作,是指车辆在保持静止状态下转向一定的角度。转向可以通过转向装置实现,转向装置比如包括方向盘。
153.以自动驾驶车辆为例,若自动驾驶车辆与前方障碍物的距离较近时,比如,自动驾驶公交车在出站时,由于站点环境比较复杂,很容易出现自动驾驶公交车与前方车辆距离较近的问题。此时,相关技术中,为了保证安全,一般采用人工接管的方式。但是,此时的自动驾驶公交车可能具备自动通行能力,即,若自动驾驶公交车执行静止转向操作后,是可以绕开前方车辆的。不考虑自动驾驶车辆的实际通行能力,统一采用人工接管的方式,无疑降低了自动驾驶车辆的自动通行能力。
154.本实施例中,若基于所述当前速度确定所述车辆处于静止状态,且所述行驶路径触发静止转向操作,控制所述车辆执行静止转向操作,可以实现对静止转向操作的识别以及执行,而不是统一采用人工接管的方式,可以提高车辆自动通行能力。另外,车辆处于静止状态下而不是所有场景下,进行静止转向操作的识别和执行,由于大多数场景下并不需要静止转向的判定,从而可以降低运算复杂度,提高车辆控制效率。
155.一些实施例中,所述第一确定模块1002进一步用于:基于所述当前行驶信息,确定所述车辆的初始路径;若所述初始路径通过碰撞检测,将所述初始路径作为所述车辆的行驶路径;若所述初始路径未通过碰撞检测,基于所述当前行驶信息确定虚拟朝向角,以及基于所述虚拟朝向角确定所述车辆的行驶路径。
156.一般来讲,在生成最终的路径(path)之前,为了保证安全性,需要对路径进行碰撞检测。
157.碰撞检测的方式有多种,可以采用相关技术的碰撞检测技术实现。
158.比如,参见图5,障碍物的区域范围用501表示,一条路径为第一路径502,另一条路径为第二路径503,假设,第二路径503与障碍物的区域范围501存在交点,则第二路径503未通过碰撞检测;若第一路径502与障碍物的区域502不存在交点,且最短距离大于预设安全距离,则第一路径502通过碰撞检测。
159.比如,参见图5,假设初始路径为第一路径502,由于第一路径502通过碰撞检测,则可以将第一路径502作为行驶路径。
160.比如,参见图5,假设初始路径为第二路径503,由于第二路径503未通过碰撞检测,此时,不能将第二路径503作为行驶路径,可以基于虚拟朝向角重新规划路径。
161.又比如,参见图6,待控制车辆可以称为本车,本车前方的障碍物为障碍车,基于轻量化的路径规划算法确定的行驶路径可能未通过碰撞检测,比如,图6中用“未通过碰撞检测的路径”表示,此时,可以基于虚拟朝向角,基于轻量化的路径规划算法,重新规划路径。
162.其中,虚拟朝向角可以根据车辆的真实朝向角、转向角等确定,计算公式可以如下:
163.ψ'=ψ+v
经验
*tan(δ)/l*t
经验
;
164.其中,δ=θ/ratio;
165.其中,ψ'为虚拟朝向角,ψ为车辆的真实朝向角、δ为车辆的前轮转角,θ为车辆的方向盘转角,前轮转角和方向盘转角成线性比例关系,ratio为比例系数,为已知值;l为车辆的轴距,v
经验
和t
经验
为可设置的经验值。
166.获得虚拟朝向角后,可以基于当前位置、当前速度和虚拟朝向角,重新规划路径,将重新规划的路径作为行驶路径。
167.为了保证平稳性,决策系统在控制时,可以动态调整朝向角的权重,防止退出静止转向时结果突变。
168.通过若初始路径未通过碰撞检测,基于虚拟朝向角重新行驶路径,可以提高行驶路径的安全性。
169.一些实施例中,所述装置1000还包括:第二确定模块,用于确定第一边界路径和第二边界路径,所述第一边界路径基于所述车辆的当前转向角和最大转向速率确定,所述第二边界路径基于所述车辆的最大转向角和最小转向速率确定;相应地,所述第一控制模块1003进一步用于:若基于所述当前速度确定所述车辆当前处于静止状态,且所述行驶路径位于所述第一边界路径的可达范围之外,且位于所述第二边界路径的可达范围之内,控制所述车辆执行静止转向操作。
170.其中,第一边界路径可以用path_limit_low表示,第二边界路径可以用path_limit_high表示,path_limit_low的含义为基于车辆的当前转向角(如,方向盘转角)及最大转向速率确定的车辆的转弯路径,即车辆前进过程中同步转向所能达到的转向能力对应的路径。path_limit_high的含义为假设车辆完成最大静止转向,基于最大转向角所能达到的转向能力对应的路径。path_limit_high可以近似为以车辆最小转弯半径画的1/4圆。
171.path_limit_low和path_limit_high都可以基于车辆运动学模型估算得到,path_limit_low还可以通过实车转弯起步试验得到。
172.估算path_limit_low和path_limit_high时,可以参考图7所示的车辆运动学模型。
173.如图7所示,车辆的两个前轮可以视为一个前轮,车辆的两个后轮可以是视为一个后轮,l为车辆的轴距,ψ为车辆的朝向角,即车身方向与坐标系横轴(x轴)的夹角,δ为车辆的前轮转角,即,前轮方向与车身方向的夹角,(x,y)为车辆的位置,v为车辆的速度。
174.边界路径上的各个路径点可以包括如下路径点信息:(x,y,ψ)。
175.当前时刻的路径点信息可以基于上一时刻的路径点信息计算,或者说,基于当前时刻的路径点信息可以计算下一时刻的路径点信息。
176.两个相邻时刻的路径点信息的计算公式可以如下:
177.x1=x0+v0*t*cosψ0178.y1=y0+v0*t*sinψ0179.ψ1=ψ0+v0*t*tanδ0/l
180.δ1=δ0+ω0*t
181.v1=v0+a*t
182.其中,下标为0的信息为t=0时刻的信息,下标为1的信息为t=1时刻的信息,t=0与t=1为相邻时刻。比如,(x0,y0,ψ0)为t=0时刻的路径点信息,(x1,y1,ψ1)为t=1时刻的路
径点信息。
183.t为预设的时间间隔,比如,t=0.1秒;a为加速度,可以选择为0;ω0为t=0时刻的前轮转角速率。
184.需要说明的是,若v0=0,在路径规划/轨迹规划时,可以先将车辆均匀加速到非零的速度值(比如3km/h),将该非零速度值(比如3km/h)作为当前值,即,在路径规划/轨迹规划时,若v0=0,先将v0转换为非零值,再进行上述公式的计算等。
185.基于上述计算公式,可以从车辆的当前时刻(假设用t=0表示)开始,以t为时间间隔,依次计算各个时刻(t=1,t=2,t=3等)的路径点信息,从而可以基于各个时刻的路径点信息形成对应的边界路径(第一边界路径和/或第二边界路径)
186.针对第一边界路径和第二边界路径,当前时刻(假设用t=0表示)中的(x0,y0)为车辆的当前位置,ψ0为当前朝向角,v0为非零值的当前速度。
187.针对第一边界路径,δ0为车辆的当前前轮转角,ω0为车辆的最大转向速率。即,第一边界路径基于所述车辆的当前转向角和最大转向速率确定。
188.针对第二边界路径,δ0为车辆的最大前轮转角,ω0为0。即,第二边界路径基于所述车辆的最大转向角和最小转向速率确定。
189.一些实施例中,所述车辆当前处于自动驾驶模式,所述第一控制模块1003还用于:若所述行驶路径位于所述第二边界路径的可达范围之外,控制所述车辆执行倒车操作,或者控制所述车辆从所述自动驾驶模式转换为人工接管模式;或者,若所述行驶路径位于所述第一边界路径的可达范围之内,控制所述车辆保持所述自动驾驶模式。
190.其中,如图8所示,自动驾驶车辆称为本车,障碍物为障碍车。基于图8的示例,若行驶路径位于第一边界路径和第二边界路径之间,则表明行驶路径位于第一边界路径的可达范围之外,且位于第二边界路径的可达范围之内,此时可以触发静止转向;若位于第一边界路径的下方,则表明行驶路径位于第一边界路径的可达范围之内,此时可以保持自动驾驶模式;若位于第二边界路径的上方,则表明行驶路径位于第二边界路径的可达范围之外,则可以倒车或者人工接管。
191.图8中,实线的行驶路径基于实线的障碍车确定,基于图8的示例,由于实线的行驶路径位于第一边界路径和第二边界路径之间,此时需要触发静止转向。虚线的行驶路径基于虚线的障碍车确定,基于图8的示例,由于虚线的行驶路径位于第一边界路径的下发,此时不需要触发静止转向,可以保持自动驾驶模式。
192.一些实施例中,所述行驶路径上的路径点的位置坐标包括:待比对横坐标和待比对纵坐标,所述第一边界路径上的路径点的位置坐标包括:第一横坐标和第一纵坐标,所述第二边界路径上的路径点的位置坐标包括:第二横坐标和第二纵坐标,所述装置1000还包括:第三确定模块,用于针对相同的所述待比对横坐标、所述第一横坐标和所述第二横坐标,若所述待比对纵坐标小于或等于所述第一纵坐标,确定所述行驶路径位于所述第一边界路径的可达范围之内;或者,若所述待比对纵坐标大于所述第一纵坐标,且,所述待比对纵坐标小于或等于所述第二纵坐标,确定所述行驶路径位于所述第一边界路径的可达范围之外,且位于所述第二边界路径的可达范围之内;或者,若所述待比对纵坐标大于所述第二纵坐标,确定所述行驶路径位于所述第二边界路径的可达范围之外。
193.比如,参见图9,可以选择相同的横坐标(x),行驶路径上该x对应的待比对纵坐标
用y表示,第一边界路径对应x的第一纵坐标用y
low
表示,第二边界路径对应x的第二纵坐标用y
high
表示,则:
194.若y《=y
low
,则表明行驶路径位于第一边界路径的可达范围之内;
195.若y
low
《y《=y
high
,则表明行驶路径位于第一边界路径的可达范围之外,且位于第二边界路径的可达范围之内;图9中,即为此种情况。
196.若y》y
high
,则表明行驶路径位于第二边界路径的可达范围之外。
197.若所述行驶路径位于所述第一边界路径的可达范围之外,且位于所述第二边界路径的可达范围之内,说明车辆采用静止转向操作后可以避开障碍物,即,车辆通过静止转向具有通行能力,此时,控制所述车辆执行静止转向操作,可以充分发挥车辆自身的通行能力。
198.若所述行驶路径位于所述第二边界路径的可达范围之外,说明车辆即使静止转向到最大转向角,依然无法避开前方障碍物,即,静止转向到最大转向角也无法通行,此时,控制所述车辆执行倒车操作,或者控制所述车辆从自动驾驶模式转换为人工接管模式,可以保证车辆行驶的安全性。
199.若所述行驶路径位于所述第一边界路径的可达范围之内,说明车辆不需要静止转向正常行驶就可以避开障碍物,此时,控制所述车辆保持自动驾驶模式,可以保证车辆行驶的平稳性。
200.另外,通过上述的待比对纵坐标与第一纵坐标以及第二纵坐标的关系,可以准确地识别出行驶路径与第一边界路径和第二边界路径的关系。
201.一些实施例中,所述第一控制模块1003进一步用于:确定静止转向角;控制所述车辆在保持所述静止状态下,转动所述静止转向角。
202.比如,静止转向角为方向盘转角,假设确定的静止转向角为50度,则可以控制车辆在原地转动方向盘50度。
203.其中,静止转向角的大小(比如50度),可以基于控制算法确定。控制算法比如为模型预测控制(model predictive control,mpc)算法。mpc算法中可以基于车辆的当前状态信息(当前位置、当前速度、当前朝向角、当前实际的前轮转角)和目标状态信息(目标位置、目标速度、目标朝向角、目标前轮转角)等,确定出当前期望的前轮转角,由于前轮转角和方向盘转角存在特定的线性关系,也即可以确定出当前期望的方向盘转角,从而可以控制方向盘转动相应的角度,达到当前期望的方向盘转角。
204.一些实施例中,所述装置1000还包括:第二控制模块,用于响应于所述转动所述静止转向角的操作完成,控制所述车辆基于所述行驶路径行驶。
205.即,完成静止转向操作后,可以按照之前规划的行驶路径行驶。
206.另外,车辆行驶时,可以先基于行驶路径规划出行驶轨迹,再执行轨迹跟踪,从而可以实现按照行驶路径和行驶轨迹行驶。
207.其中,静止转向操作时,可以认为是对应静止轨迹,静止转向操作完成后的行驶轨迹可以认为是带速度的轨迹,为了保证静止轨迹和带速度的轨迹的一致性,可以合理调整预瞄距离,避免静止转向的结果跳变。比如,相关技术中的预瞄距离为轨迹点的速度与曲率的函数,不含时间信息,本实施例的预瞄距离可以包含时间信息,即,预瞄距离可以为速度、曲率和时间的函数。
208.本实施例中,通过确定第一边界路径和第二边界路径,由于第一边界路径可以表明车辆非静止状态下行驶具有的最大转向能力,第二边界路径可以表明车辆在最大静止转向后行驶具有的最大转向能力,因此,基于第一边界路径和第二边界路径可以确定行驶路径是否能够触发静止转向操作,便于静止转向操作的识别和执行。
209.可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。
210.可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。
211.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
212.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
213.根据本公开的实施例,如图11所示,本公开还提供了一种自动驾驶车辆1100,自动驾驶车辆1100包括:电子设备1101。
214.关于电子设备的说明可以如下:
215.图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
216.如图12所示,电子设备1200包括计算单元1201,其可以根据存储在只读存储器(rom)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(ram)1203中的计算机程序,来执行各种适当的动作和处理。在ram 1203中,还可存储电子设备1200操作所需的各种程序和数据。计算单元1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
217.电子设备1200中的多个部件连接至i/o接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许电子设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
218.计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如车辆控制方法。例如,在一些实施例中,车辆控制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由rom1202和/或通信单元1209而被载入和/或安装到电子设备1200上。当计算机程序加载到ram 1203并由计算单元1201执行时,可以执行上文描述的车辆控制方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行车辆控制方法。
219.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
220.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程地图数据采集装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
221.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
222.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
223.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
224.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("
virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
225.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
226.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。