一种自动驾驶汽车低速自动泊车横向控制方法与流程

文档序号:25855455发布日期:2021-07-13 16:08阅读:453来源:国知局
一种自动驾驶汽车低速自动泊车横向控制方法与流程

本发明涉及一种自动驾驶汽车低速自动泊车横向控制方法,属于自动驾驶横向控制的技术领域。



背景技术:

自动驾驶在近年迎来了高速发展的契机,其中自动驾驶车的实际控制关乎车辆的安全性,稳定性以及舒适性,是自动驾驶技术落地的关键性技术。现有的自动驾驶控制技术分为横向控制技术以及纵向控制技术。横向控制关乎车辆的稳定性,现有的横向控制技术包括纯跟踪算法,stanley算法,lqr算法,mpc算法等等。动力学lqr算法对车辆进行动力学建模,从而在中高速运动中更能符合车辆的运动特性,在横向控制效果中表现较好。

而在低速泊车场景中,车辆转弯时往往面对转角较大的场景,此时动力学模型由于对转角的线性化处理,难以实现精准的横向控制,所以现有的低速横向控制以运动学模型为主。而常用的横向控制算法以pid和纯跟踪算法为主。但pid算法难以适应泊车下多场景的变化以及存在控制参数调节难度大的问题,而纯跟踪算法设置合适的预瞄距离是个很大的挑战,往往设置不合理会导致车辆转弯过程内切或跟踪过程较慢的情况。



技术实现要素:

针对现有自动驾驶车辆在低速运动下的控制不精确以及参数调节难度大的问题,本发明提供一种自动驾驶汽车低速自动泊车横向控制方法,结合lqr算法的优点和运动学模型在低速的良好表现,提出运动学lqr算法用于车辆泊车过程中的前进,后退等过程。

本发明具体采用以下技术方案解决上述技术问题:

一种自动驾驶汽车低速自动泊车横向控制方法,包括以下步骤:

步骤1:自动驾驶车辆的规划层根据当前环境规划出泊车轨迹并发送到控制层;自动驾驶车辆的定位层对车辆的当前位置实时定位获得定位信息并发送到控制层;自动驾驶车辆的底层接收控制层发出的控制指令并实时反馈车辆的当前状态信息;

步骤2:自动驾驶车辆的控制层根据车辆运动学模型得出车辆运动的状态空间方程,并建立lqr控制模型;

步骤3:自动驾驶车辆的控制层根据建立的lqr控制模型进行求解,推导出泊车过程中的反馈车辆前轮转角deltaf_feedback;

步骤4:自动驾驶车辆的控制层结合规划层发送的泊车轨迹、定位层发送的定位信息、底层反馈的车辆的当前状态信息,利用lqr控制模型计算得到实际的反馈前轮转角deltaf_feedback,并结合求得的前馈输出转角deltaf_feedforward得到最终的总输出转角,根据总输出转角控制车辆泊车过程中前向行驶和后向行驶的过程。

进一步地,作为本发明的一种优选技术方案,所述步骤1中自动驾驶车辆的规划层根据当前环境规划出泊车轨迹,具体为:自动驾驶车辆的规划层规划出到达泊车位的轨迹点集,由轨迹点集形成泊车轨迹,其中轨迹点集包括规划的所有轨迹点,每个轨迹点的信息包括:车辆规划的全局纵坐标x_n,横坐标y_n,航向信息fai_n,以及规划点的曲率信息kappa_n。

进一步地,作为本发明的一种优选技术方案,所述步骤1中自动驾驶车辆的定位层获得的定位信息包括车辆当前的全局纵坐标x_a,全局横坐标y_a,航向信息fai_a。

进一步地,作为本发明的一种优选技术方案,所述步骤1中自动驾驶车辆的底层反馈车辆的当前状态信息包括车速和档位,以及车辆当前的前轮转角。

进一步地,作为本发明的一种优选技术方案,所述步骤2中建立lqr控制模型,包括:

假设在点(xr,yr,fai_r)处满足车辆运动学模型,在该点处对运动学模型进行线性化并据此构造得到状态空间矩阵:x_dot=a*x+b*u;

其中,x_dot=[x_dot-xr_dot;y_dot-yr_dot;fai_dot-fai_r_dot];

此处x,y,fai为目标轨迹点的坐标和横摆角,xr,yr,fai_r分别为车辆的后轴轴心位置的横和纵坐标、后轴航向角,x_dot,y_dot,fai_dot为x,y,fai的导数,xr_dot,yr_dot,fai_r_dot为xr,yr,fai_r的导数,x_dot是自车与目标轨迹参数的导数的误差矩阵;

并且,a=[0,0,-vr*sin(fai_r);

0,0,vr*cos(fai_r);

0,0,0;];

x=[x-xr;y-yr;fai-fai_r];

b=[0;0;vr/l/cos(deltaf)/cos(deltaf)];

u=delta;

公式中,l表示车辆轴距;vr表示后轴速度;x为跟踪误差矩阵;u为控制输入矩阵,代表最优前轮转角;a与b为线性矩阵;

将状态空间矩阵离散化获得lqr控制模型:x(k+1)=at*x(k)+bt*u(k),其公式中at=i+a*t;bt=b*t;i为单位矩阵,t为单位时间;x(k+1)为k+1时刻的跟踪误差矩阵,x(k)为k时刻的跟踪误差矩阵;u(k)为k时刻控制输入矩阵;

然后,定义如下的评价函数:

j(n)=x(0)_t*q*x(0)+...+x(n-1)_t*q+x(n-1)+u(0)_t*r*u(0)+...+u(n-1)_t*r*u(n-1)

其中,x(i)为车辆在i处的状态空间矩阵,u(i)为车辆在i处的控制输入矩阵;x(i)_t和u(i)_t分别为x(i)和u(i)的矩阵转置;q和r分别为状态量和控制量的权重矩阵。

进一步地,作为本发明的一种优选技术方案,所述步骤4中自动驾驶车辆的控制层利用lqr控制模型计算得到实际的反馈前轮转角deltaf_feedback,并结合求得的前馈输出转角deltaf_feedforward得到最终的总输出转角,具体为:

根据定位层所发送车辆当前位置的定位信息预测下一时刻车辆的定位信息;

根据预测的下一时刻车辆的定位信息和规划层发送的泊车轨迹,计算出当前自车预测位置点到泊车轨迹中距离最近的轨迹点,获得该距离最近的轨迹点的信息;

根据距离最近的轨迹点的信息更新控制层中的参数,并由更新参数后的lqr控制模型求得实际的反馈前轮转角deltaf_feedback;

根据车辆的轴距和跟踪目标点的曲率求得前馈输出转角deltaf_feedforward;

将求得的反馈前轮转角deltaf_feedback和前馈输出转角deltaf_feedforward结合,得到最终的总输出转角deltaf_output。

本发明采用上述技术方案,能产生如下技术效果:

本发明的方法设计在低速泊车工况下,采用运动学模型,适用于转弯较大以及考虑平滑切换前进与后退的场景,由于结合了lqr算法,将最优控制代入了横向控制的过程中,提高了控制的稳定性,同时降低了系统的稳态误差。本发明提出运动学lqr控制模型用于车辆泊车过程中的前进,结合运动学模型在低速的良好表现,优化了车辆控制结构,无需驾驶员参与,实现全自动泊车控制。

因此,本发明方法在实际泊车过程中,可以快速准确地达到自由泊车的目的,稳定性较高。

附图说明

图1为本发明方法采用的车辆运动学模型原理示意图。

图2为本发明方法构建的lqr模型原理示意图。

图3为本发明方法中横向控制的原理示意图。

具体实施方式

下面结合说明书附图对本发明的实施方式进行描述。

本发明涉及一种自动驾驶汽车低速自动泊车横向控制方法,该方法适用于自动驾驶车的低速泊车系统,其中低速泊车系统包括规划层、定位层、底层、控制层。本方法运用的系统下自动驾驶车辆的规划层和定位层均正常工作,且底层能实时发送反馈,控制层实时进行控制。具体地,本方法包括以下步骤:

步骤1:自动驾驶车辆的规划层根据当前环境规划出泊车轨迹并发送到控制层;自动驾驶车辆的定位层对车辆的当前位置实时定位获得定位信息并发送到控制层;自动驾驶车辆的底层接收控制层发出的控制指令并实时反馈车辆的当前状态信息;具体如下:

步骤(1.1)规划层规划出泊车轨迹

当进入低速泊车系统后,自动驾驶车辆的规划层根据用户或决策需求或当前环境规划出到达泊车位的轨迹点集,由轨迹点集形成泊车轨迹,并将泊车轨迹发送到控制层。轨迹点集包括规划的所有轨迹点,每个轨迹点的信息包括:车辆规划的全局纵坐标x_n,横坐标y_n,航向信息fai_n,以及规划点的曲率信息kappa_n。

步骤(1.2)定位层对车辆的当前位置实时定位获得定位信息

自动驾驶车辆的定位层负责实时高精度给出车辆的当前定位信息,且发送频率要高,本发明中定位层发送的定位信息包括车辆当前的全局纵坐标x_a,全局横坐标y_a,航向信息fai_a。

步骤(1.3)自动驾驶车辆的底层实时反馈车辆的当前状态信息

自动驾驶车辆的底层接收控制层发出的控制指令,并反馈车辆的当前状态信息。本方法对车辆进行横向控制,故假设车辆纵向已控,只发送车辆前轮转角信号给车辆底层。底层反馈车辆的当前车速和档位,以及车辆当前的前轮转角。

步骤2:自动驾驶车辆的控制层根据车辆运动学模型得出车辆运动的状态空间方程,并建立lqr控制模型,具体如下:

步骤(2.1)获取车辆运动学方程,具体为:

如图1,车辆的后轴轴心位置可由坐标(xr,yr)表示,后轴速度为vr,前轴轴心位置可由(xf,yf)表示,前轴速度为vf,车辆的后轴航向角表示为fai_r,前轮转角表示为deltaf,车辆轴距为l。此时,车辆的后轴轴心速度可表示为:

vr=xr_dot*cos(fai_r)+yr_dot*sin(fai_r)(1)

其中,xr_dot和yr_dot分别为xr和yr的导数;

以及,前后轴的运动学约束为:

xf_dot*sin(fai_r+deltaf)-yf_dot*cos(fai_r+deltaf)=0(2)

xr_dot*sin(fai_r)-yr_dot*cos(fai_r)=0(3)

由式(1)(2)(3)可得:

xr_dot=vr*cos(fai_r)(4)

yr_dot=vr*sin(fai_r)(5)

根据前后轮的几何关系可知:

xf=xr+l*cos(fai_r)(6)

yf=yr+l*sin(fai_r)(7)

将式(4)(5)(6)(7)代入(2)(3),可解得:

fai_r_dot=vr*tan(deltaf)/l(8)

联合(4)(5)(8)得车辆的运动学模型:

[xr_dot;yr_dot;fai_r_dot]=[cos(fai_r);sin(fai_r);tan(deltaf)/l]*vr(9)

步骤(2.2)根据车辆运动学模型得出车辆运动的状态空间方程,并建立lqr控制模型,其原理如图2所示,具体为:

假设在点(xr,yr,fai_r)处满足上述车辆运动学模型,在该点处对运动学模型进行线性化,并注意由于是横向控制,故控制量只有一个deltaf,vr可视为常量,线性化的结果为:

[x_dot-xr_dot;y_dot-yr_dot;fai_dot-fai_r_dot]=

[0,0,-vr*sin(fai_r);

0,0,vr*cos(fai_r);

0,0,0;]*

[x-xr;y-yr;fai-fai_r]+[0;0;vr/l/cos(deltaf)/cos(deltaf)]*(delta-deltaf)(10)

其中,x_dot,y_dot,fai_dot为x,y,fai的导数。x,y,fai为目标轨迹点的坐标和横摆角。则(10)式可用下面的状态空间矩阵表达:

x_dot=a*x+b*u;(11)

x_dot=[x_dot-xr_dot;y_dot-yr_dot;fai_dot-fai_r_dot];

其中,a=[0,0,-vr*sin(fai_r);

0,0,vr*cos(fai_r);

0,0,0;];

x=[x-xr;y-yr;fai-fai_r];

b=[0;0;vr/l/cos(deltaf)/cos(deltaf)];

u=delta;

上述公式中,x,y,fai为目标轨迹点的坐标和横摆角,xr,yr,fai_r分别为车辆的后轴轴心位置的横和纵坐标、后轴航向角,x_dot,y_dot,fai_dot为x,y,fai的导数,xr_dot,yr_dot,fai_r_dot为xr,yr,fai_r的导数,x_dot是自车与目标轨迹参数的导数的误差矩阵;以及;x为跟踪误差矩阵;u为控制输入矩阵,代表最优前轮转角;a与b为抽象出的线性矩阵。在上述跟踪误差矩阵x中,x-xr、y-yr、fai-fai_r为目标轨迹与当前自车轨迹的误差,为实际lqr算法需要控制收敛至0的误差参数,分别对应位置误差,朝向误差。

由于在实际控制器中处理lqr时为离散的信号,所以需要对理论的lqr模型做离散化,即将(11)式离散化,可得:

x(k+1)=at*x(k)+bt*u(k)(12)

at=i+a*t;

bt=b*t;

其中,i为单位矩阵,t为单位时间。x(k+1)为k+1时刻的跟踪误差矩阵,x(k)为k时刻的跟踪误差矩阵;u(k)为k时刻控制输入矩阵,代表k时刻最优前轮转角。

然后,定义如下的评价函数:

j(n)=x(0)_t*q*x(0)+...+x(n-1)_t*q+x(n-1)+u(0)_t*r*u(0)+...+u(n-1)_t*r*u(n-1)

其中,x(i)为车辆在i处的状态空间矩阵,u(i)为车辆在i处的控制输入矩阵;x(i)_t和u(i)_t分别为x(i)和u(i)的矩阵转置;q和r分别为状态量和控制量的权重矩阵。

步骤3:自动驾驶车辆的控制层根据建立的lqr控制模型进行求解,推导出泊车过程中的反馈车辆前轮转角deltaf_feedback,具体如下:

令u(k)=-k*x(k)(13)

则(12)式可变为:x(k+1)=(at-bt*k)*x(k)(14)

通过设计矩阵k,可以使得闭环系统的极点达到期望的状态。本发明中的lqr控制的目标是设计反馈矩阵k使得评价函数j最小。

为了找到矩阵k,先假设存在一个常量矩阵p,使得:

为求解p矩阵,令k=-bt_t*p/r(16)

得到racatti方程p*at+at_t*p-p*bt/r*bt_t*p=-q(17)

由此求得p矩阵,代入(16)式求取k矩阵;将k矩阵代入(13)式,可解得u(k),在步骤4中,代入实际参数计算出u(k),赋值给deltaf_feedback,即可得到当前的反馈车辆前轮转角deltaf_feedback。

步骤4:自动驾驶车辆的控制层结合规划层发送的泊车轨迹、定位层发送的定位信息、底层反馈的车辆的当前状态信息,利用lqr控制模型计算得到实际的反馈前轮转角deltaf_feedback,并结合求得的前馈输出转角deltaf_feedforward得到最终的总输出转角,根据总输出转角控制车辆泊车过程中前向行驶和后向行驶的过程,其原理如图3所示,具体如下:

步骤(4.1)控制层根据定位层所发送车辆当前位置的定位信息预测下一时刻车辆的定位信息,具体为:

根据定位层发送的定位信息包括车辆当前的全局纵坐标x_a,全局横坐标y_a,航向信息fai_a,并且根据车辆规划层轨迹点集生成的泊车轨迹。根据当前的定位信息预测下一时刻控制时车辆的定位。假设车辆的控制延迟时间为t_delay,车速为v,那么预测出的下一时刻车辆位置为:

x_p=x_a+v*t_delay*cos(fai_a);

y_p=y_a+v*t_delay*sin(fai_a);

fai_p=fai_a+v*t_delay*tan(fai_a)/l;

步骤(4.2)根据预测的下一时刻车辆的定位信息和规划层发送的泊车轨迹,计算出当前自车预测位置点到泊车轨迹中距离最近的轨迹点,获得该距离最近的轨迹点的信息,具体为:

根据预测的下一时刻车辆的定位信息(x_p,y_p,fai_p)和轨迹点集(x,y)可计算出当前自车预测位置点到轨迹点集中距离最近的轨迹点,该轨迹点的信息为在轨迹点集中的序列号为m,则全局纵坐标x_m,横坐标y_m,航向信息fai_m,以及规划点的曲率信息kappa_m。

步骤(4.3)根据距离最近的轨迹点的信息更新控制层中的参数,并由更新参数后的lqr控制模型求得实际的反馈前轮转角deltaf_feedback,具体为:

得到距离最近的轨迹点的信息后,可以更新lqr控制器中的参数,将其中的vr用当前的车速v代替,x用x_m代替,y用y_m代替,fai用fai_m代替,p矩阵可初始化为q矩阵。

由q和r分别为状态量和控制量的权重矩阵,q矩阵可设为:[qx,0,0;0,qy,0;0,0,qfai],其中的qx,qy和qfai为常数,可根据具体实际情况进行标定。由于只有一个控制量,所以r为1*1矩阵,设为标量1即可。

将上述更新后的控制层参数输入lqr控制模型,根据步骤3求解的k矩阵代入lqr控制模型,最终lqr控制模型计算得到并输出u(k),即最优前轮转角,将其值赋给反馈前轮转角deltaf_feedback,进而得到实际的反馈前轮转角deltaf_feedback。

步骤(4.4)由前馈模型根据车辆的轴距l和跟踪目标点的曲率kappa_m求得前馈输出转角deltaf_feedforward,即deltaf_feedforward=atan(l*kappa_m)。

步骤(4.5)将求得的实际反馈前轮转角deltaf_feedback和前馈输出转角deltaf_feedforward结合,得到最终的总输出转角deltaf_output,表示为:

deltaf_output=deltaf_feedback+deltaf_feedforward;

根据lqr控制器输出的最终的总输出转角deltaf_output控制车辆前进,当泊车过程中需要倒车时,将速度变为负值,其他参数保持不变,即可完成泊车中对车辆的横向控制。

由此,本发明的方法提出的lqr算法用于车辆泊车过程中的前进并结合运动学模型在低速的良好表现,将最优控制代入了横向控制的过程中,提高了控制的稳定性,同时降低了系统的稳态误差,优化了车辆控制结构,无需驾驶员参与,实现全自动泊车控制。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1