1.本发明属于无人驾驶技术领域,特别涉及一种行车和泊车统一的自动驾驶车辆控制方法。
背景技术:2.自动泊车功能是自动驾驶系统的一个重要组成部分,与自动驾驶的循迹行驶功能类似,自动泊车功能也由泊车规划模块和泊车控制模块组成,其中泊车规划模块提供一条由车辆当前位置到车位停车点的平滑的泊车轨迹线,泊车控制模块负责控制车辆的挡位、方向盘转角、制动/油门踏板开度,使车辆按照规划轨迹线平稳地泊入车位。
3.自动驾驶车辆的控制方法与车辆的运行场景强相关,自动驾驶车辆循迹行驶时车速较高,任何微小的抖动都会被放大,因此行车的控制方法更注重与控制的稳定性与鲁棒性,不需要过多关注车辆当前位置误差;自动驾驶车辆泊车入库时,车辆动力学模型由前轮转向变为后轮转向,且车速较低,为了保证车辆能够准确地泊入车位,泊车的控制方法更关注车辆当前的位置误差和航向误差。现有技术方案基于上述考虑,往往采用两套或以上控制方法,分别用于车辆行车和泊车的入库、出库控制。
技术实现要素:4.本发明涉及一种方法,该方法能够同时应用于自动驾驶车辆的循迹行驶和泊车的入库、出库,且在这些工况中都能够保证自动驾驶控制的精度和稳定性。
5.一种行车和泊车统一的自动驾驶车辆控制方法,所述自动驾驶车辆包括自动驾驶控制器,所述自动驾驶控制器与车辆eps电连接,其特征是所述控制方法包括如下步骤:
6.步骤1、自动驾驶控制器下发的参考轨迹规划点信息和车辆定位信息;
7.步骤2、依据当前车速和行驶方向计算出一个平行于车辆行驶方向的预瞄距离,选出预瞄点,当车速为负,即请求泊车时,预瞄点选取在车辆后方;
8.步骤3、自动驾驶控制器遍历参考轨迹上的所有点,找到参考轨迹上距离预瞄点最近的一个点,作为参考点;
9.步骤4、自动驾驶控制器连接参考点和参考点的下一个点,从预瞄点向这两点的连线作垂线,垂足到预瞄点的距离为横向距离误差;
10.步骤5、自动驾驶控制器将横向距离误差和航向角误差综合计算得到一个误差值;
11.步骤6、若误差值为0,则直接执行方向盘转角,如误差值不为0,则自动驾驶控制器通过变结构变参数pid控制器对综合误差进行消除,输出一个期望方向盘转角;
12.步骤7、自动驾驶控制器计算出期望方向盘转角,并实时按照通讯协议将其封装为报文下发给车辆eps控制单元,使车辆按照预期行驶路径行驶。
13.作为优选,在所述步骤2中,自动驾驶控制器首先依据当前车速和行驶方向计算出一个平行于车辆行驶方向的预瞄距离,该距离可用下式进行表征:为车速为0时的预瞄距离,k为预瞄距离随车速的增益系数,当车速为负,即请求泊车时,预瞄点选取在车辆后方。
[0014][0015]
作为优选,在所述步骤4中,自动驾驶控制器遍历参考轨迹上的所有点,找到参考轨迹上距离预瞄点最近的一个点和该点的下一个点,连接这两个点得到参考航向角,从预瞄点向这两点的连线作垂线,垂足到预瞄点的距离为横向距离误差,该选取方法能够保证即使规划轨迹点比较稀疏也能够选取精确的航向角误差和横向距离误差。
[0016]
作为优选,在所述步骤5中,横向距离误差和航向角误差综合计算得到一个误差值,由于航向角的量纲为弧度,位置的量纲为米,因此误差计算模块通过atan函数将位置误差值统一到角度量纲下,计算方法可用下式进行表征:error为综合后的误差,k为位置误差权重,1-k为航向角误差权重。
[0017]
error=k*atan*err
pos
+(1-k)err
θ
[0018]
作为优选,在所述步骤6中,pid控制器的参数及结构由车速与车辆挡位进行确定,确保在低速行车、高速行车、泊车、出库时都有较好的控制效果。
[0019]
与现有技术相比,本发明的有益效果是:
[0020]
本发明用同一种控制方法满足了自动驾驶车辆在不同工况下的需要,且本发明方法占用极少控制器算力,计算实时性高,控制效果较好,用于泊车时能够准确地泊入预期停车点,用于高速行车时也有较好的鲁棒性,不易因环境扰动使得车辆出现异常的抖动。
附图说明
[0021]
图1为本发明控制方法的流程图。
具体实施方式
[0022]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023]
如图1所示,一种行车和泊车统一的自动驾驶车辆控制方法,所述自动驾驶车辆包括自动驾驶控制器,所述自动驾驶控制器与车辆eps电连接,其特征是所述控制方法包括如下步骤:
[0024]
步骤1、自动驾驶控制器下发的参考轨迹规划点信息和车辆定位信息;
[0025]
步骤2、依据当前车速和行驶方向计算出一个平行于车辆行驶方向的预瞄距离,选出预瞄点,当车速为负,即请求泊车时,预瞄点选取在车辆后方;
[0026]
步骤3、自动驾驶控制器遍历参考轨迹上的所有点,找到参考轨迹上距离预瞄点最近的一个点,作为参考点;
[0027]
步骤4、自动驾驶控制器连接参考点和参考点的下一个点,从预瞄点向这两点的连线作垂线,垂足到预瞄点的距离为横向距离误差;
[0028]
步骤5、自动驾驶控制器将横向距离误差和航向角误差综合计算得到一个误差值;
[0029]
步骤6、若误差值为0,则直接执行方向盘转角,如误差值不为0,则自动驾驶控制器通过变结构变参数pid控制器对综合误差进行消除,输出一个期望方向盘转角;
[0030]
步骤7、自动驾驶控制器计算出期望方向盘转角,并实时按照通讯协议将其封装为报文下发给车辆eps控制单元,使车辆按照预期行驶路径行驶。
[0031]
在所述步骤2中,自动驾驶控制器首先依据当前车速和行驶方向计算出一个平行于车辆行驶方向的预瞄距离,该距离可用下式进行表征:为车速为0时的预瞄距离,k为预瞄距离随车速的增益系数,当车速为负,即请求泊车时,预瞄点选取在车辆后方。
[0032][0033]
在所述步骤4中,自动驾驶控制器遍历参考轨迹上的所有点,找到参考轨迹上距离预瞄点最近的一个点和该点的下一个点,连接这两个点得到参考航向角,从预瞄点向这两点的连线作垂线,垂足到预瞄点的距离为横向距离误差,该选取方法能够保证即使规划轨迹点比较稀疏也能够选取精确的航向角误差和横向距离误差。
[0034]
在所述步骤5中,横向距离误差和航向角误差综合计算得到一个误差值,由于航向角的量纲为弧度,位置的量纲为米,因此误差计算模块通过atan函数将位置误差值统一到角度量纲下,计算方法可用下式进行表征:error为综合后的误差,k为位置误差权重,1-k为航向角误差权重。
[0035]
error=k*atan*err
pos
+(1-k)prr
θ
[0036]
在所述步骤6中,pid控制器的参数及结构由车速与车辆挡位进行确定,确保在低速行车、高速行车、泊车、出库时都有较好的控制效果。
[0037]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
[0038]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0039]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。