1.本技术涉及自动驾驶技术领域,尤其涉及一种转向角度修正方法、装置、设备及可读存储介质。
背景技术:2.随着科技的不断发展,自动驾驶在近些年迎来了高速的发展,自动驾驶车辆依靠对周围环境的采集,并对采集的环境数据进行分析,生成相应的决策指令,实现对自动驾驶车辆的控制。对于自动驾驶车辆的控制方面包括:横向控制和纵向控制,其中,横向控制主要是通过控制算法,控制自动驾驶车辆实现车辆异常环道、智能避障和转弯等操作。
3.在自动驾驶车辆行驶在弯曲道路上时,自动驾驶车辆会基于参考线的frenet坐标系下车辆动力学误差线性模型的规划算法,计算得到预测轮胎转向角度。但是,当道路上出现障碍物时,自动驾驶车辆为避开障碍物会偏离参考线,此时,如果还是使用基于参考线计算得到的预测轮胎转向角度,对自动驾驶车辆进行控制,会使得自动驾驶车辆当前的轮胎转向角度与实际需求的转向角度出现偏差,因此,如何对车辆轮胎转向角度进行修正,是人们一直关注的问题。
技术实现要素:4.有鉴于此,本技术提供了一种转向角度修正方法、装置、设备及可读存储介质,以便于对车辆轮胎转向角度进行修正。
5.为了实现上述目的,现提出的方案如下:
6.一种转向角度修正方法,包括:
7.获取道路信息,确定当前道路是否为弯曲道路;
8.若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置;
9.根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上所述参考点对应的曲率半径和曲率;
10.以参考点为原点,建立frenet坐标系;
11.基于建立的frenet坐标系,确定车辆偏离中心线的距离;
12.根据在当前道路上所述参考点对应的曲率,确定车辆的转弯方向,所述转弯方向包括:左转和右转;
13.基于所述frenet坐标系、所述车辆信息、所述参考点对应的曲率半径和所述车辆偏离中心线的距离,获取车辆的动力学特性数据;
14.基于所述动力学特性数据,计算得到初始转向角度值;
15.利用所述车辆信息、在当前道路上所述参考点对应的曲率半径、所述车辆偏离中心线的距离和所述转弯方向,对所述初始转向角度值进行修正,得到目标转向角度值。
16.可选的,所述获取道路信息,确定当前道路是否为弯曲道路,包括:
17.获取道路信息;
18.沿车辆行驶方向,将道路划分为若干个点;
19.将相邻的点进行连接,得到若干条线段;
20.根据道路中各相邻线段之间的角度值,确定当前道路是否为弯曲道路。
21.可选的,所述以参考点为原点,建立frenet坐标系,包括:
22.以参考点为原点,以参考点方向为y轴的正方向、参考点方向的左方为x轴的正方向,建立frenet坐标系。
23.可选的,所述根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上所述参考点对应的曲率半径和曲率,包括:
24.根据当前道路上车辆的位置,确定当前道路上车辆后轮轴的中点的位置;
25.将所述中心线上距离所述中点最近的点确定为参考点;
26.确定在当前道路上所述参考点对应的曲率半径和曲率。
27.可选的,所述基于建立的frenet坐标系,确定车辆偏离中心线的距离,包括:
28.基于建立的frenet坐标系,确定当前道路上车辆后轮轴的中点坐标;
29.利用中点坐标的x轴坐标值作为车辆偏离中心线的距离。
30.可选的,基于所述动力学特性数据,计算得到初始转向角度值,包括:
31.基于所述动力学特性数据,并结合当前道路的中心线,建立涉及车辆力平衡和力矩平衡的车辆动力学模型;
32.利用所述车辆动力学模型,计算得到初始转向角度值。
33.可选的,利用所述车辆信息、所述参考点对应的曲率半径、所述车辆偏离中心线的距离和所述转弯方向,对所述初始转向角度值进行修正,得到目标转向角度值,包括:
34.根据所述车辆信息,得到车辆的车轮轴距;
35.根据经典车辆运动学线性模型中的几何关系,确定所述初始转向角度值、所述车轮轴距和在当前道路上所述参考点对应的曲率半径的第一数学关系;
36.根据经典车辆运动学线性模型中的几何关系和所述转弯方向,确定所述目标转向角度值、所述车轮轴距、在当前道路上所述参考点对应的曲率半径以及所述车辆偏离中心线的距离的第二数学关系;
37.根据第一数学关系和第二数学关系,对所述初始转向角度值进行修正,得到目标转向角度值。
38.可选的,当以参考点为原点,以参考点方向为y轴的正方向、参考点方向的左方为x轴的正方向,建立frenet坐标系时,所述根据第一数学关系和第二数学关系,对所述初始转向角度值进行修正,得到目标转向角度值,包括:
39.所述第一数学关系为:
[0040][0041]
其中,θ
′1为初始转向角度值,l为车轮轴距,r为在当前道路上所述参考点对应的曲率半径;
[0042]
所述第二数学关系为:
[0043]
[0044]
其中,θ
′2为目标转向角度值,l为车轮轴距,当所述转弯方向为左转时h=r
‑
d,当所述转弯方向为右转时h=r+d,r为在当前道路上所述参考点对应的曲率半径,d为车辆偏离中心线的距离;
[0045]
根据第一数学关系和第二数学关系,对所述初始转向角度值进行修正,得到目标转向角度值θ
′2:
[0046][0047]
其中,θ
′1为初始转向角度值,当所述转弯方向为左转时h=r
‑
d,当所述转弯方向为右转时h=r+d,r为在当前道路上所述参考点对应的曲率半径,d为车辆偏离中心线的距离。
[0048]
可选的,还包括:
[0049]
将目标转向角度发送给车辆控制模块,以供车辆控制模块基于目标转向角度控制车辆进行转向。
[0050]
一种转向角度修正装置,包括:
[0051]
道路信息确定模块,用于获取道路信息,确定当前道路是否为弯曲道路,若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置;
[0052]
参考点确定模块,用于根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上所述参考点对应的曲率半径和曲率;
[0053]
坐标系建立模块,用于以参考点为原点,建立frenet坐标系;
[0054]
偏离距离确定模块,用于基于建立的frenet坐标系,确定车辆偏离中心线的距离;
[0055]
转弯方向确定模块,用于根据在当前道路上参考点对应的曲率,确定车辆的转弯方向,所述转弯方向包括:左转和右转;
[0056]
数据获取模块,用于基于所述参考点、所述车辆信息、所述参考点对应的曲率半径和所述车辆偏离中心线的距离,获取车辆的动力学特性数据;
[0057]
初始转向角度计算模块,用于基于所述动力学特性数据,计算得到初始转向角度值;
[0058]
转向角度修正模块,用于利用所述车辆信息、在当前道路上所述参考点对应的曲率半径、所述车辆偏离中心线的距离和所述转弯方向,对所述初始转向角度值进行修正,得到目标转向角度值。
[0059]
可选的,还包括:
[0060]
角度信息发送模块,用于将目标转向角度发送给车辆控制模块,以供车辆控制模块基于目标转向角度控制车辆进行转向。
[0061]
一种转向角度修正设备,包括:存储器和处理器;
[0062]
所述存储器,用于存储程序;
[0063]
所述处理器,用于执行所述程序,实现上述转向角度修正方法的各个步骤。
[0064]
一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述转向角度修正方法的各个步骤。
[0065]
从上述的技术方案可以看出,本技术实施例提供的一种转向角度修正方法,通过
获取道路信息,确定当前道路是否为弯曲道路,若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置,并根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上该参考点对应的曲率半径和曲率,以确定的参考点为原点,建立frenet坐标系,基于建立的frenet坐标系,确定车辆偏离中心线的距离,根据在当前道路上所述参考点对应的曲率,确定车辆得转弯方向是左转还是右转,基于frenet坐标系、车辆信息、参考点对应的曲率半径和车辆偏离中心线的距离,获取车辆的动力学特性数据,并根据动力学特性数据,计算得到初始转向角度值,利用车辆信息、在当前道路上参考点对应的曲率半径以及车辆偏离中心线的距离和方向对初始转向角度值进行修正,得到目标转向角度值。本技术可以利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度值进行修正,最终得到目标转向角度值作为修正后的转向角度值,实现对车辆轮胎转向角度的修正。
[0066]
进一步的,由于初始转向角度值是基于车辆动力学特性数据得到的,而目标转向角度值是结合车辆信息、当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度进行修正后得到的,所以,此时的目标转向角度值相当于也是结合车辆动力学特性数据得到的转向角度,在车辆偏离中心线行驶在弯道上时,利用目标转向角度进行转向可以一定程度上减小横向误差。
附图说明
[0067]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0068]
图1为本技术实施例提供的一种转向角度修正前的车辆行驶示意图;
[0069]
图2为本技术实施例提供的一种转向角度修正后的车辆行驶示意图;
[0070]
图3为本技术实施例提供的一种转向角度修正方法流程图;
[0071]
图4为本技术实施例提供的一种frenet坐标系示意图;
[0072]
图5为本技术实施例提供的一种弯道确定示意图;
[0073]
图6为本技术实施例提供的一种经典车辆运动学线性模型示意图;
[0074]
图7为本技术实施例提供的另一种经典车辆运动学线性模型示意图;
[0075]
图8为本技术实施例提供的一种转向角度修正装置结构示意图;
[0076]
图9为本技术实施例公开的一种转向角度修正设备的硬件结构框图。
具体实施方式
[0077]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0078]
本技术的发明人发现,目前常用的自动驾驶运动规划算法,大多是采用基于参考中心线的frenet坐标系下建立的车辆动力学误差线性模型。该模型可以表示在常规道路场
景中自动驾驶车辆的动力学特性。
[0079]
但是,当自动驾驶车辆处于行驶在弯道,且偏离弯道中心线的场景时,由于自动驾驶车辆已经偏离的弯道中心线,所以基于参考中心线的frenet坐标系下建立的车辆动力学误差线性模型,将不适用于当前的自动驾驶车辆的运动规划。不过为保证运动规划的连续性,即使车辆此时已经偏离弯道中心线,但是在对转向角度进行计算时,依旧是使用基于参考中心线的frenet坐标系下建立的车辆动力学误差线性模型,所以计算得到的转向角度,还是车辆行驶在中心线时的转向角度。
[0080]
结合图1所示,为了便于分析和理解,可以将车辆模型简化为一个自行车模型,模型1为车辆行驶于中心线上对应的模型,按照θ1进行转向,模型1的后轮会沿着中心线进行行驶。模型2与模型1在中心线上的参考点相同,模型2处于实际行驶线,此时如果需要沿着弯曲道路进行行驶,则需要调整θ2使得模型2的后轮沿着实际行驶线进行行驶。但是,由于初始转向角度的计算是基于参考中心线的frenet坐标系下建立的车辆动力学误差线性模型,所以,利用该车辆动力学误差线性模型进行计算,只能计算得到模型1对应的转向角度θ1,如果模型2对应的车辆仍按照基于中心点上的参考点计算的转向角度θ1进行转向,即θ2等于θ1,那么车辆的行驶路径将不会按照实际行驶线行驶,而会沿着图1中的错误行驶线行驶,进而导致车辆的行驶路径出现较大的偏离,无法沿着实际行驶线进行转向。
[0081]
基于此,利用基于确定的参考点,获取车辆的动力学特征数据,并基于动力学特性数据,计算得到初始转向角度值,再利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度值进行修正,得到目标转向角度值。
[0082]
结合图2所示,处于道路中心线的模型1,按照初始转向角度值θ1进行转向,车辆会沿着中心线行驶。图中模型2的转向角度θ2为本技术利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和转弯方向,对初始转向角度θ1值进行修正得到的目标转向角度值,此时,目标转向角度θ2不等于初始转向角度θ1,而是在初始转向角度θ1的基础上修正得到的。当模型2处于实际行驶线,按照目标转向角度θ2进行转向,可以使得车辆沿着实际行驶线行驶,从而实现车辆的转向。
[0083]
参考图3所示,图3为本技术实施例提供的一种转向角度修正方法流程图,该方法可以包括以下步骤:
[0084]
步骤s100、获取道路信息,确定当前道路是否为弯曲道路。
[0085]
具体的,可以根据当前车辆的位置,利用语义地图获取当前的道路信息。在得到道路信息后,可以利用道路信息确定当前道路是否为弯曲道路,若是,则执行步骤s101。
[0086]
本步骤中,利用道路信息确定当前道路是否为弯曲道路的方式可以有多种,具体可参照下述实施例介绍,此处不做展开。
[0087]
步骤s101、确定车辆信息、当前道路的中心线和当前道路上车辆的位置。
[0088]
具体的,车辆信息中可以包括车辆的轴距、前轮轮距、后轮轮距、车长、车宽、车高和车辆当前的速度与加速度等与车辆相关的参数信息。当前道路的中心线和当前道路上车辆的位置,可以结合语义地图、高精地图、激光点云地图或者高清视觉地图进行确定。
[0089]
步骤s102、根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上参考点对应的曲率半径和曲率。
[0090]
具体的,在本步骤中,可以根据当前道路上车辆的位置,在当前道路的中心线上确定一个与当前车辆位置对应的参考点,随着车辆的行驶,从当前道路的中心线上选择的参考点也不同。
[0091]
在确定参考点之后,可以针对确定的参考点,确定当前道路上参考点对应的曲率半径和曲率,其中,可以通过语义地图,确定中心线上各个点的曲率,以及各个点对应的曲率的正负。
[0092]
步骤s103、以参考点为原点,建立frenet坐标系。
[0093]
具体的,在确定参考点之后,如图4所示,可以通过确定参考点对应的,半径为当前道路上参考点对应的曲率半径的圆,以参考点作为切点可以得到一条切线,并结合当前道路中确定的起点和终点,确定参考点方向。在确定参考点的方向之后,可以以参考点为原点,以参考点方向为y轴的正方向、参考点方向的左方为x轴的正方向,建立frenet坐标系;也可以以参考点为原点,以参考点方向为y轴的正方向、参考点方向的右方为x轴的正方向,建立frenet坐标系;还可以以参考点为原点,以参考点方向为y轴的负方向、参考点方向的右方为x轴的正方向,建立frenet坐标系。
[0094]
由于参考点会随着当前道路上车辆的位置的改变而进实时的改变,所以在参考点改变后会根据新的参考点建立新的frenet坐标系。
[0095]
步骤s104、基于建立的frenet坐标系,确定车辆偏离中心线的距离。
[0096]
具体的,基于建立的frenet坐标系,可以确定车辆偏离中心线的距离,在frenet坐标系中以参考点方向为y轴的正方向、参考点方向的左方为x轴的正方向,所以当车辆出现在frenet坐标系的x轴的负方向时,得到的距离值为负数。
[0097]
基于建立的frenet坐标系,可以确定车辆转弯的方向,转弯方向包括:左转和右转。
[0098]
步骤s105、根据当前道路上参考点对应的曲率,确定车辆的转弯方向。
[0099]
具体的,当前道路上参考点对应的曲率可以通过语义地图进行获取,得到的曲率会带有正负关系,通过曲率的正负关系可以确定车辆的转弯方向。比如,当得到的曲率为正数时,可以确定车辆的转弯方向为左转;当得到的曲率为负数时,可以确定车辆的转弯方向为右转。
[0100]
步骤s106、基于frenet坐标系、车辆信息、参考点对应的曲率半径和车辆偏离中心线的距离,获取车辆的动力学特性数据。
[0101]
具体的,根据车辆偏移中心线的距离计算目标函数,使得获取的车辆动力学特性数据可以一定程度上接近于车辆偏离中心线时的数据。获取的车辆的动力学特性数据中可以包括车辆重心到前轮轴的距离、车辆重心到后轮轴的距离、车辆的侧滑角、车辆的旋转角速度、车辆的速度方向与前轮、后轮的夹角、车辆中心位置与参考点的横向偏移和车辆方向与参考点的方向偏移等数据。
[0102]
步骤s107、基于所述动力学特性数据,计算得到初始转向角度值。
[0103]
具体的,通过上述步骤获取车辆的动力学特性数据之后,可以计算得到初始转向角度值。由于,用于计算初始转向角度值的动力学特性数据,是基于frenet坐标系、车辆信息、参考点对应的曲率半径和车辆偏离中心线的距离获取的,而其中的frenet坐标系是以参考点为原点建立得到,所以最终得到的初始转向角度,是以车辆行驶在中心线上为基础
计算而来。
[0104]
如果此时车辆沿着当前道路的中心线行驶,可以将转向角度调整为初始转向角度,由于初始转向角度的计算过程综合考虑了基于上述frenet坐标系得到的车辆动力学特性数据,所以可以使得车辆能够准确的沿着当前道路的中心线行驶。
[0105]
步骤s108、利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和转弯方向,对初始转向角度值进行修正,得到目标转向角度值。
[0106]
具体的,由于上述步骤中得到的初始转向角度是以车辆沿着当前道路的中心线行驶为基础计算得到的,但是当车辆偏离中心线行驶时,车辆的行驶路线发生了改变,此时如果还是按照初始转向角度进行转向,车辆将无法准确的沿着弯道进行转向。所以,需要针对初始转向角度值,利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和转弯方向,对初始转向角度值进行修正,得到目标转向角度值,该目标转向角度值可以使得偏离中心线行驶的车辆能够准确的沿着弯道进行转向。
[0107]
在上述实施例中,本技术实施例提供的一种转向角度修正方法,通过获取道路信息,确定当前道路是否为弯曲道路,若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置,并根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上该参考点对应的曲率半径,以确定的参考点为原点,建立frenet坐标系,基于建立的frenet坐标系,确定车辆偏离中心线的距离,根据在当前道路上所述参考点对应的曲率,确定车辆得转弯方向是左转还是右转,基于frenet坐标系、车辆信息、参考点对应的曲率半径和车辆偏离中心线的距离,获取车辆的动力学特性数据,并根据动力学特性数据,计算得到初始转向角度值,利用车辆信息、在当前道路上参考点对应的曲率半径以及车辆偏离中心线的距离和方向对初始转向角度值进行修正,得到目标转向角度值。本技术可以利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度值进行修正,最终得到目标转向角度值作为修正后的转向角度值,实现对车辆轮胎转向角度的修正。
[0108]
由于初始转向角度值是基于车辆动力学特性数据得到的,而目标转向角度值是结合车辆信息、当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度进行修正后得到的,所以,此时的目标转向角度值相当于也是结合车辆动力学特性数据得到的转向角度,在车辆偏离中心线行驶在弯道上时,利用目标转向角度进行转向可以一定程度上减小横向误差。
[0109]
进一步的,在基于参考点,获取车辆的动力学特性数据之后,可以利用动力学特性数据,并结合当前道路的中心线建立车辆动力学模型,其中,车辆动力学模型主要涉及车辆力平衡和力矩平衡。在车辆动力学模型中,可以将车辆简化为二自由度的自行车模型,结合车辆的动力学特性数据,最终计算得到初始转向角度值。
[0110]
对于上述实施例中确定当前道路是否为弯曲道路的方式可以有很多种,本实施例中介绍几种可选的实现方式,如下:
[0111]
第一种、采用将道路划分为若干个点的方式,来确定当前道路是否为弯曲道路。
[0112]
s11、获取道路信息。
[0113]
具体的,本步骤中,可以根据当前车辆的行驶位置,从语义地图种获取道路信息。
[0114]
s12、沿车辆行驶方向,将道路划分为若干个点。
[0115]
具体的,可以沿车辆行驶的方向,将道路划分为若干个点。将道路划分为若干个点的过程,由于道路实际上具有一定的宽度,所以可以使用一条直线来代替当前的道路,比如,提取当前道路的中心线,将中心线划分为若干个点,来实现将道路划分为若干个点。
[0116]
s13、将相邻的点进行连接,得到若干条线段。
[0117]
具体的,通过上述步骤,可以得到若干个点,再将相邻的点进行连接,可以得到若干条线段。在若干个点之间的间距无限小的情况下,将相邻的点进行连接得到的一条直线,该直线可以看作当前道路的轨迹。比如,将道路的中心线划分为若干个点,再将相邻的点连接,在各个点之间的间距无限小的情况下,连接后可以得到中心线的轨迹。
[0118]
s14、根据道路中各相邻线段之间的角度值,确定当前道路是否为弯曲道路。
[0119]
具体的,利用得到的各线段,确定相邻线段之间的夹角。当相邻线段之间的夹角达到预设角度时,则将当前道路确定为弯曲道路。
[0120]
示例如,结合图5所示,为了便于分析和理解,可以将车辆模型简化为一个自行车模型,图5中在中心线上划分四个点a、b、c和d,将相邻的点连接,可以得到ab、bc和cd三条线段,此时θ3为线段ab和线段bc之间的夹角,θ4为线段bc和线段cd之间的夹角,通过对θ3或者θ4进行判断,可以确定道路是否是弯曲道路。
[0121]
第二种、根据当前道路的曲率大小,来确定当前道路是否为弯曲道路。
[0122]
具体的,可以通过语义地图获取当前道路的信息,根据得到的道路信息,得到当前道路的曲率大小,当曲率大小大于预设阈值时,则确定当前道路为弯曲道路。其中,曲率的预设阈值可以设置为大于0.05。
[0123]
进一步的,还可以利用当前道路的曲率半径,来确定当前道路是否为弯曲道路。比如,当前道路的曲率半径小于20米时,可以将该道路确定为弯曲道路。
[0124]
上述实施例中,通过将道路划分为若干各点,再利用各相邻的点形成的线段,最终确定相邻线段之间的夹角角度值,来判断当前道路是否为弯曲道路,相比于直接从语义地图中进行粗略的分析,本实施例中的方法可以更加准确的确定道路的弯曲程度。
[0125]
在本技术的一些实施例中,对步骤s101、根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上参考点对应的曲率半径和曲率的过程进行介绍,过程可以包括:
[0126]
s21、根据当前道路上车辆的位置,确定当前道路上车辆后轮轴的中点的位置。
[0127]
具体的,可以先根据高精地图、激光点云地图或者高清视觉地图确定车辆的位置,在确定当前道路上车辆的位置之后,可以根据当前道路上车辆的位置,确定当前道路上车辆后轮轴的中点的位置。
[0128]
s22、将所述中心线上距离所述中点最近的点确定为参考点。
[0129]
具体的,上述步骤中,可以确定当前道路上车辆后轮轴的中点的位置,针对车辆后轮轴的中点的位置,确定中心线上与该中点距离最近的点作为参考点。
[0130]
s23、确定在当前道路上参考点对应的曲率半径和曲率。
[0131]
具体的,通过语义地图可以得到当前道路上各个点对应的曲率半径及曲率,在上述步骤中确定一个参考点之后,可以确定在当前道路上该参考点对应的曲率半径和曲率。
[0132]
在本技术的一些实施例中,在前述实施例确定当前道路上车辆后轮轴的中点的位置之后,对步骤s103、基于建立的frenet坐标系,确定车辆偏离中心线的距离的过程进行介
绍,过程可以包括:
[0133]
s31、基于建立的frenet坐标系,确定当前道路上车辆后轮轴的中点坐标。
[0134]
具体的,基于建立的frenet坐标系,可以得到车辆后轮轴的中点坐标(x,y)。
[0135]
s32、利用中点坐标的x轴坐标值作为车辆偏离中心线的距离。
[0136]
具体的,通过上述步骤得到中点坐标(x,y),可以将中点坐标(x,y)的x轴坐标值作为车辆偏离中心线的距离。所以,车辆偏离中心线的距离可以出现负数。
[0137]
上述实施例中,由于frenet坐标系是以在中心线上选取的参考点作为原点建立,所以基于建立的frenet坐标系,以车辆后轮轴的中点坐标的x轴坐标值作为车辆偏离中心线的距离,可以使得车辆偏离中心线的距离带有正负号,通过正负可以反映当前车辆出于中心线的左边或者右边。
[0138]
在本技术的一些实施例中,对步骤s104、利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和转弯方向,对初始转向角度值进行修正,得到目标转向角度值的过程进行介绍,过程可以包括:
[0139]
s41、根据车辆信息,得到车辆的车轮轴距。
[0140]
s42、根据经典车辆运动学线性模型中的几何关系,确定初始转向角度值、车轮轴距和参考点对应的曲率半径的第一数学关系。
[0141]
具体的,第一数学关系是基于车辆沿中心线行驶的情况下确定的。结合图6所示,为了便于分析和理解,可以将车辆模型简化为一个自行车模型,假定车辆沿着道路中心线行驶,建立经典车辆运动学线性模型,在模型中可以得到第一理论转向角度值、在当前道路上参考点对应的曲率半径和车轮轴距之间的几何关系,具体关系可以是:
[0142][0143]
其中,θ1为第一理论转向角度值,l为车轮轴距,r为在当前道路上参考点对应的曲率半径。
[0144]
在本技术的上述实施例中,可以基于参考中心线的frenet坐标系,最终得到初始转向角度值。其中,初始转向角度值是利用车辆动力学特性数据计算得到,本步骤中得到的第一理论转向角度值是利用经典车辆运动学线性模型得到,在二者得到的过程处于稳态的条件下时,初始转向角度值可以近似相等于理论转向角度值。比如,车辆要跟踪一条固定半径固定长度的圆弧,此时得到的第一理论转向角度值和初始转向角度值是近似相等的。所以,可以得到初始转向角度值、车轮轴距和参考点对应的曲率半径的第一数学关系:
[0145][0146]
其中,其中,θ
′1为初始转向角度值,θ1为第一理论转向角度值,l为车轮轴距,r为在当前道路上参考点对应的曲率半径。
[0147]
s43、根据经典车辆运动学线性模型中的几何关系和转弯方向,确定目标转向角度值、车轮轴距、在当前道路上参考点对应的曲率半径以及车辆偏离中心线的距离的第二数学关系。
[0148]
具体的,结合图7所示,为了便于分析和理解,可以将车辆模型简化为一个自行车模型,以参考点为原点,以参考点方向为y轴的正方向、参考点方向的左方为x轴的正方向,
建立frenet坐标系,在车辆偏离中心线,行驶在实际行驶线上时,通过建立经典车辆运动学线性模型,可以得到第二理论转向角度值、在当前道路上参考点对应的曲率半径和车轮轴距之间的几何关系,具体关系可以是:
[0149][0150]
其中,θ2为第二理论转向角度值,l为车轮轴距,当转弯方向为左转时h=r
‑
d,当转弯方向为右转时h=r+d,r为在当前道路上所述参考点对应的曲率半径,d为车辆偏离中心线的距离。
[0151]
由于车辆偏离中心线的距离d是在frenet坐标系下确定的,所以车辆偏离中心线的距离d可能是负数。比如当车辆位于frenet坐标系中x轴的负方向,则此时得到的车辆偏离中心线的距离d为负数。
[0152]
在本步骤中可以得到第二理论转向角度值θ2,利用第二理论转向角度值θ2,可以控制车辆进行转向。但是,经典车辆运动学线性模型只是基于理论计算,通过几何关系确定的转向角度值,并未参考车辆的其他参数对转向角度的影响,比如车辆重量、车辆速度或车辆加速度等参数。在目标转向角度和第二理论转向角度得到的过程处于稳态的条件下时,目标转向角度值可以近似相等于第二理论转向角度值。所以,可以得到初始转向角度值、车轮轴距和参考点对应的曲率半径的第二数学关系:
[0153][0154]
其中,其中,θ
′2为目标转向角度值,θ2为第二理论转向角度值,l为车轮轴距,当转弯方向为左转时h=r
‑
d,当转弯方向为右转时h=r+d,r为在当前道路上参考点对应的曲率半径,d为车辆偏离中心线的距离。
[0155]
s44、根据第一数学关系和第二数学关系,对初始转向角度值进行修正,得到目标转向角度值。
[0156]
具体的,由于第一理论转向角度值和第二理论转向角度值均是基于经典车辆运动学线性模型得到。在经典车辆运动学线性模型中,对于转向角度值的计算仅基于几何关系,并未参考车辆的其他参数对转向角度的影响,比如车辆重量、车辆速度或车辆加速度等参数,所以,需要利用上述实施例中,基于车辆动力学特性数据计算得到的初始角度值,在初始转向角度值的基础上确定目标转向角度值。
[0157]
其中,在上述步骤中,可以得到第一数学关系:和第一数学关系:其中,第二数学关系是在车辆偏离道路中心线行驶。
[0158]
根据第一数学关系和第二数学关系,对初始转向角度值进行修正,得到目标转向角度值:
[0159][0160]
其中,θ
′1为初始转向角度值,当转弯方向为左转时h=r
‑
d,当转弯方向为右转时h
=r+d,r为在当前道路上所述参考点对应的曲率半径,d为车辆偏离中心线的距离。
[0161]
在上述步骤中,得到的目标转向角度值,结合了初始转向角度值,而不是简单的利用利用经典车辆运动学线性模型,通过理论计算得到。由于在初始转向角度值的计算过程中,已经利用了车辆动力学特性数据进行计算,所以结合初始转向角度值得到的目标转向角度值,可以结合其他动力学特性,得到更加准确且适合当前情况下的目标转向角度值。
[0162]
在本技术的一些实施例中,通过上述实施例中计算得到的目标转向角度值,可以作为车辆控制模块的前馈输入。所以,在本技术的一些实施例中,可以将目标转向角度发送给车辆控制模块,以供车辆控制模块基于目标转向角度控制车辆进行转向。
[0163]
由于目标转向角度并非初始转向角度,而是结合了车辆偏离中心线的距离和初始转向角度之后得到,所以,车辆控制模块利用目标转向角度控制车辆转向,可以一定程度上减少横向跟踪误差。
[0164]
下面对本技术实施例提供的一种转向角度修正装置进行描述,下文描述的一种转向角度修正装置与上文描述的一种转向角度修正方法可相互对应参照。
[0165]
结合图8所示,图8为本技术实施例提供的一种转向角度修正装置结构示意图,可以包括:
[0166]
道路信息确定模块10,用于获取道路信息,确定当前道路是否为弯曲道路,若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置;
[0167]
参考点确定模块20,用于根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上所述参考点对应的曲率半径和曲率;
[0168]
坐标系建立模块30,用于以参考点为原点,建立frenet坐标系;
[0169]
偏离距离确定模块40,用于基于建立的frenet坐标系,确定车辆偏离中心线的距离;
[0170]
转弯方向确定模块50,用于根据在当前道路上所述参考点对应的曲率,确定车辆的转弯方向,所述转弯方向包括:左转和右转;
[0171]
数据获取模块60,用于基于所述参考点、所述车辆信息、所述参考点对应的曲率半径和所述车辆偏离中心线的距离,获取车辆的动力学特性数据;
[0172]
初始转向角度计算模块70,用于基于所述动力学特性数据,计算得到初始转向角度值;
[0173]
转向角度修正模块80,用于利用所述车辆信息、在当前道路上所述参考点对应的曲率半径以及所述车辆偏离中心线的距离和方向,对所述初始转向角度值进行修正,得到目标转向角度值。
[0174]
在上述实施例中,提供了一种转向角度修正装置,通过道路信息确定模块10获取道路信息,确定当前道路是否为弯曲道路,若是,则确定车辆信息、当前道路的中心线和当前道路上车辆的位置,参考点确定模块20根据当前道路上车辆的位置,在当前道路的中心线上确定一个参考点和在当前道路上该参考点对应的曲率半径和曲率,坐标系建立模块30以确定的参考点为原点,建立frenet坐标系,偏离距离确定模块40基于建立的frenet坐标系,确定车辆偏离中心线的距离,转弯方向确定模块50根据在当前道路上所述参考点对应的曲率,确定车辆得转弯方向是左转还是右转,数据获取模块60基于frenet坐标系、车辆信息、参考点对应的曲率半径和车辆偏离中心线的距离,获取车辆的动力学特性数据,初始转
向角度计算模块70根据动力学特性数据,计算得到初始转向角度值,转向角度修正模块80利用车辆信息、在当前道路上参考点对应的曲率半径以及车辆偏离中心线的距离和方向对初始转向角度值进行修正,得到目标转向角度值。本技术可以利用车辆信息、在当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度值进行修正,最终得到目标转向角度值作为修正后的转向角度值,实现对车辆轮胎转向角度的修正。
[0175]
由于初始转向角度值是基于车辆动力学特性数据得到的,而目标转向角度值是结合车辆信息、当前道路上参考点对应的曲率半径、车辆偏离中心线的距离和车辆的转弯方向,对初始转向角度进行修正后得到的,所以,此时的目标转向角度值相当于也是结合车辆动力学特性数据得到的转向角度,在车辆偏离中心线行驶在弯道上时,利用目标转向角度进行转向可以一定程度上减小横向误差。
[0176]
可选的,道路信息确定模块10,可以包括:
[0177]
道路信息获取单元,用于获取道路信息;
[0178]
道路划分单元,用于沿车辆行驶方向,将道路划分为若干个点;
[0179]
线段生成单元,用于将相邻的点进行连接,得到若干条线段;
[0180]
弯曲道路确定单元,用于根据道路中各相邻线段之间的角度变化值,确定当前道路是否为弯曲道路。
[0181]
可选的,参考点确定模块20,可以包括:
[0182]
中点位置确定单元,用于根据当前道路上车辆的位置,确定当前道路上车辆后轮轴的中点的位置;
[0183]
参考点确定单元,用于将所述中心线上距离所述中点最近的点确定为参考点;
[0184]
曲率信息确定单元,用于确定在当前道路上所述参考点对应的曲率半径和曲率。
[0185]
可选的,偏离距离确定模块40,可以包括:
[0186]
坐标确定单元,用于基于建立的frenet坐标系,确定当前道路上车辆后轮轴的中点坐标;
[0187]
偏离距离确定单元,用于利用中点坐标的x轴坐标值作为车辆偏离中心线的距离。
[0188]
可选的,初始转向角度计算模块70,可以包括:
[0189]
模型构建单元,用于基于所述动力学特性数据,并结合当前道路的中心线,建立涉及车辆力平衡和力矩平衡的车辆动力学模型;
[0190]
初始转向角度计算单元,用于利用车辆动力特性模型,计算得到初始转向角度值。
[0191]
可选的,转向角度修正模块80,可以包括:
[0192]
车轮轴距确定单元,用于根据所述车辆信息,得到车辆的车轮轴距;
[0193]
第一数学关系确定单元,用于根据经典车辆运动学线性模型中的几何关系,确定所述初始转向角度值、所述车轮轴距和在当前道路上所述参考点对应的曲率半径的第一数学关系;
[0194]
第二数学关系确定单元,用于根据经典车辆运动学线性模型中的几何关系和所述转弯方向,确定所述目标转向角度值、所述车轮轴距、在当前道路上所述参考点对应的曲率半径以及所述车辆偏离中心线的距离的第二数学关系;
[0195]
目标转向角度计算单元,用于根据第一数学关系和第二数学关系,对所述初始转
向角度值进行修正,得到目标转向角度值。
[0196]
可选的,转向角度修正装置,还可以包括:
[0197]
角度信息发送模块,用于将目标转向角度发送给车辆控制模块,以供车辆控制模块基于目标转向角度控制车辆进行转向。
[0198]
本技术实施例还提供一种转向角度修正设备,图9示出了转向角度修正设备的硬件结构框图,参照图9,转向角度修正设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
[0199]
在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
[0200]
处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
[0201]
存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non
‑
volatile memory)等,例如至少一个磁盘存储器;
[0202]
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述转向角度修正方法中的各个处理流程。
[0203]
本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:实现前述转向角度修正方法中的各个处理流程。
[0204]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0205]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以相互组合,且相同相似部分互相参见即可。
[0206]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。