发明名称 一种基于直线控制器的智能车辆曲线跟踪方法
摘要 一种基于直线控制器的智能车辆曲线跟踪方法,首先对规划路径进行离散化,得到一系列首尾相连的直线段,并进行障碍物检测,在不存在障碍物的情况下,依次以各直线段为预瞄路径进行处理,包括初始化后,判断当前驾驶员关注点转换的标识符的值,如果Flag为1关注车辆与预瞄路径的距离,如果当前关注距离的相应变量于等于初始值的二分之一,车辆就转换关注点;如果Flag为0则关注车辆的朝向,包括计算车辆前轮的转向角δ并判断车辆当前航向角和路径方向角的角度差,如果小于或等于设定的相应阈值则更换关注点。本发明的路径跟踪方法可以应用于任意形状路径的跟踪,具有良好的适应性和高跟踪精度,鲁棒性好。
申请公布号 CN104181923A 申请公布日期 2014.12.03
申请号 CN201410436835.1 申请日期 2014.08.29
申请人 武汉大学 发明人 李必军;单云霄;谢云;郑玲;周剑
分类号 G05D1/02(2006.01)I 主分类号 G05D1/02(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 严彦
主权项 一种基于直线控制器的智能车辆曲线跟踪方法,其特征在于:包括首先利用道格拉斯‑普克算法对规划路径进行离散化,得到一系列首尾相连的直线段,并进行障碍物检测,在不存在障碍物的情况下,依次以各直线段为预瞄路径,执行以下步骤,步骤1,对变量Flag、D、D_pre、D_change、δ和i全部初始化为0,并初始化Error,其中,Flag为驾驶员关注点转换的标识符,D是车辆当前位置与预瞄路径之间的最短距离;D_pre是上一次迭代所得D值;D_change是指D的变化率;Error是车辆当前航向角θ_CurrentHeading和路径方向角θ_pre的角度差;δ是控制输入量,表示车辆前轮的转向角;i为循环变量,用于标识当前迭代次数;步骤2,判断当前Flag的值,如果Flag为1,转向步骤5;如果Flag为0,则转向步骤3;步骤3,计算车辆前轮的转向角δ,δ=Kh/Velocity×Error,Kh为增益系数,Velocity为当前车辆的速度,Error是车辆当前航向角和路径方向角的角度差;步骤4,判断Error的值,如果小于或等于设定的相应阈值,则认令Flag=1并转向步骤7,否则直接进入步骤7;步骤5,计算变量D、D_pre、D_change、δ以及当前车辆和预瞄路径的相对位置S的值,更新当前迭代次数,所用式子如下,D=Distance(P_current,Line);D_change=(D‑D_pre)/T;D_pre=D;S=LOCATION(P_current,Line);S[i]=S;S_saved=S[0];i++;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>&delta;</mi><mo>=</mo><mi>Kp</mi><mo>&times;</mo><mover><mi>D</mi><mo>&RightArrow;</mo></mover><mo>+</mo><mi>Kd</mi><mo>/</mo><mi>Velocity</mi><mo>&times;</mo><mover><mi>D</mi><mo>&RightArrow;</mo></mover><mo>_</mo><mi>change</mi><mo>;</mo></mrow>]]></math><img file="FDA0000562586250000011.GIF" wi="862" he="82" /></maths>其中,Distance(P_current,Line)为车辆当前位置P_current与预瞄路径Line之间的最短距离;D_pre是上一次迭代所得D值,T为当前与上一次迭代时间间隔;LOCATION(P_current,Line)为预瞄路径Line起点、车辆当前位置P_current所在点以及预瞄路径Line终点所形成的三角形面积值,当预瞄路径Line起点、车辆当前位置P_current所在点、预瞄路径Line终点顺时针排列时,S&lt;0,当预瞄路径Line起点、车辆当前位置P_current所在点、预瞄路径Line终点逆时针排列时,S&gt;0;sign(S)为S的符号;<img file="FDA0000562586250000021.GIF" wi="49" he="85" />为矢量,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mover><mi>D</mi><mo>&RightArrow;</mo></mover><mo>=</mo><mi>sin</mi><mi>g</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow><mo>&times;</mo><mi>D</mi><mo>;</mo></mrow>]]></math><img file="FDA0000562586250000022.GIF" wi="336" he="98" /></maths><img file="FDA0000562586250000023.GIF" wi="238" he="99" />为矢量,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mover><mi>D</mi><mo>&RightArrow;</mo></mover><mo>_</mo><mi>change</mi><mo>=</mo><mi>sin</mi><mi>g</mi><mrow><mo>(</mo><mi>S</mi><mo>)</mo></mrow><mo>&times;</mo><mi>D</mi><mo>_</mo><mi>change</mi><mo>;</mo></mrow>]]></math><img file="FDA0000562586250000024.GIF" wi="660" he="98" /></maths>S_saved为S的初始值;Kp、Kd为增益系数;步骤6,如果当前变量S小于等于初始值S_saved×C,C为预设的阈值比例,令Flag=0并转向步骤7,否则直接进入步骤7;步骤7,如果前轮转角大于等于预设的转向角阈值A1,则将此时的车辆前轮的转向角δ重新赋值,令δ=A1并转向步骤9;否则进入步骤8;步骤8,如果前轮转角小于等于预设的转向角阈值A2,A2=‑A1,则将此时的车辆前轮的转向角δ重新赋值,令δ=A2并转向步骤9;否则直接进入步骤9;步骤9,判断当前车辆是否到达预瞄路径的终点,如果到达终点,结束对当前预瞄路径的相应处理流程;如果没有到达终点,则转向步骤2。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学