发明名称 基于转弯曲率估计的无人车横向控制方法
摘要 本发明公开了一种基于转弯曲率估计的无人车横向控制方法。它包括预定轨迹的设定和GPS‑INS组合定位系统数据的采集,以及向自动驾驶仪发出方向盘转角指令信号,特别是,基于先由道路的曲率设定预瞄距离,再由预瞄距离重新设定2个预瞄点A和B,之后,先将预瞄点A和B的经纬度变换到车辆坐标系,以计算出最优转弯曲率,再由最优转弯曲率计算出方向盘转角控制量,并输出到自动驾驶仪的方法实现了对无人车的横向控制。它经实测,当车速为20km/h时,最大跟踪误差仅为0.4m,当掉头车速5km/h时,最大跟踪误差仅0.6m,既实现了对各种复杂轨迹的精确跟随,又避免了单点预瞄反馈控制造成的方向盘抖动,使无人车驾驶的控制量更加平滑;可广泛地用于各种车辆的无人驾驶控制。
申请公布号 CN104571112B 申请公布日期 2017.02.22
申请号 CN201510018459.9 申请日期 2015.01.14
申请人 中国科学院合肥物质科学研究院 发明人 刘跃;宋彦;梁华为;梅涛
分类号 G05D1/02(2006.01)I 主分类号 G05D1/02(2006.01)I
代理机构 合肥和瑞知识产权代理事务所(普通合伙) 34118 代理人 任岗生
主权项 一种基于转弯曲率估计的无人车横向控制方法,包括预定轨迹的设定和GPS‑INS组合定位系统数据的采集,以及向自动驾驶仪发出方向盘转角指令信号,其特征在于主要步骤如下:步骤1,先将上一控制周期的预瞄距离d作为初始预瞄距离d<sub>0</sub>,若无预瞄距离d,则初始预瞄距离d<sub>0</sub>取值为15~30m,再采集GPS‑INS组合定位系统的车辆位置P、速度v和航向a的信息;步骤2,先选择预定轨迹中的第一点A0,并判断第一点A0是否为预定轨迹中的最后一点,若是,则结束控制,否则由车辆位置P、第一点A0和航向a得出向量<img file="FDA0001119394450000011.GIF" wi="110" he="91" />以及向量<img file="FDA0001119394450000012.GIF" wi="86" he="71" />与航向a的夹角,再判断向量<img file="FDA0001119394450000013.GIF" wi="94" he="74" />与航向a的夹角是否大于90度,若是,则选择下一点作为新的第一点A0并进行新的判断直至小于等于90度;否则,计算出第一点A0到车辆位置P的距离s;步骤3,判断第一点A0到车辆位置P的距离s是否大于等于初始预瞄距离d<sub>0</sub>,若是,则将第一点A0作为预瞄点,否则,选择下一点作为新的第一点A0并进行新的计算第一点A0到车辆位置P的距离s,以及再次判断s与d<sub>0</sub>的大小关系,直至s≥d<sub>0</sub>;步骤4,先从预定轨迹中找出距离车辆位置P的最近点D,并计算出最近点D到第一点A0的轨迹的近处曲率平均值ρ<sub>near</sub>,以及第一点A0至其之后的2~10个点的轨迹的远处曲率平均值ρ<sub>far</sub>,再由近处曲率平均值ρ<sub>near</sub>和远处曲率平均值ρ<sub>far</sub>按下式得到预瞄距离d,<maths num="0001"><math><![CDATA[<mrow><msub><mi>d</mi><mn>1</mn></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>d</mi><mn>0</mn></msub><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>&rho;</mi><mrow><mi>n</mi><mi>e</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&gt;</mo><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>d</mi><mn>0</mn></msub><mo>-</mo><mn>0.1</mn><mi>v</mi><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>&rho;</mi><mrow><mi>n</mi><mi>e</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&le;</mo><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0001119394450000014.GIF" wi="598" he="173" /></maths><maths num="0002"><math><![CDATA[<mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mn>20</mn><mo>,</mo></mrow></mtd><mtd><mrow><mn>0</mn><mo>&le;</mo><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&lt;</mo><mn>0.01</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>15</mn><mo>,</mo></mrow></mtd><mtd><mrow><mn>0.01</mn><mo>&le;</mo><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&lt;</mo><mn>0.03</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>8</mn><mo>,</mo></mrow></mtd><mtd><mrow><mn>0.03</mn><mo>&le;</mo><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&lt;</mo><mn>0.05</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>6</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>&rho;</mi><mrow><mi>f</mi><mi>a</mi><mi>r</mi></mrow></msub><mo>&GreaterEqual;</mo><mn>0.05</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0001119394450000015.GIF" wi="630" he="335" /></maths><maths num="0003"><math><![CDATA[<mrow><mi>d</mi><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>d</mi><mn>1</mn></msub><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>d</mi><mn>1</mn></msub><mo>&gt;</mo><msub><mi>d</mi><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow></msub><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>d</mi><mn>1</mn></msub><mo>&le;</mo><msub><mi>d</mi><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow></msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0001119394450000016.GIF" wi="446" he="159" /></maths>式中的d<sub>0</sub>为初始预瞄距离、v为速度;步骤5,先以预瞄距离d的值作为预瞄距离,由预定轨迹中选择第一预瞄点A,并判断第一预瞄点A到车辆位置P的距离s是否大于等于预瞄距离d,若是,则将第一预瞄点A作为预瞄点,否则,选择下一点作为新的第一预瞄点A并进行新的计算第一预瞄点A到车辆位置P的距离s,以及再次判断s与d的大小关系,直至s≥d,再以同样的方法,在预瞄距离d上增加长度大于等于1m后的值作为预瞄距离,由预定轨迹中选择出第二预瞄点B;步骤6,以GPS‑INS组合定位系统的坐标原点为原点、x轴为沿车身中线指向车辆前方、y轴为指向车身左侧的车辆坐标系下,设第一预瞄点A的纬度、经度坐标为(X<sub>A</sub>,Y<sub>A</sub>)、以长度米为单位的车辆坐标为(x<sub>A</sub>,y<sub>A</sub>)、车辆位置P点的纬度、经度坐标为(X<sub>P</sub>,Y<sub>P</sub>),按以下方法变换:<maths num="0004"><math><![CDATA[<mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mn>6371004</mn><mi>&pi;</mi></mrow><mn>180</mn></mfrac><mrow><mo>(</mo><msub><mi>Y</mi><mi>A</mi></msub><mo>-</mo><msub><mi>Y</mi><mi>P</mi></msub><mo>)</mo></mrow><mi>c</mi><mi>o</mi><mi>s</mi><mfrac><mrow><msub><mi>&pi;x</mi><mi>A</mi></msub></mrow><mn>180</mn></mfrac></mrow>]]></math><img file="FDA0001119394450000021.GIF" wi="646" he="119" /></maths><maths num="0005"><math><![CDATA[<mrow><mi>y</mi><mo>=</mo><mfrac><mrow><mn>6371004</mn><mi>&pi;</mi></mrow><mn>180</mn></mfrac><mrow><mo>(</mo><msub><mi>X</mi><mi>A</mi></msub><mo>-</mo><msub><mi>X</mi><mi>P</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001119394450000022.GIF" wi="518" he="119" /></maths>x<sub>A</sub>=ycosa+xsinay<sub>A</sub>=ysina‑xcosa,式中的a为航向,得到第一预瞄点A在车辆坐标系下的坐标(x<sub>A</sub>,y<sub>A</sub>),再以同样的变换方法得到第二预瞄点B在车辆坐标系下的坐标(x<sub>B</sub>,y<sub>B</sub>);步骤7,由第一预瞄点A和第二预瞄点B在车辆坐标系下的坐标(x<sub>A</sub>,y<sub>A</sub>),(x<sub>B</sub>,y<sub>B</sub>),经下式计算得到最优转弯曲率<maths num="0006"><math><![CDATA[<mrow><mi>&rho;</mi><mo>=</mo><mfrac><mrow><mn>2</mn><mrow><mo>(</mo><msubsup><mi>y</mi><mi>A</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>B</mi><mn>2</mn></msubsup><mo>)</mo></mrow></mrow><mrow><msubsup><mi>x</mi><mi>A</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>A</mi></msub><mo>+</mo><msubsup><mi>x</mi><mi>B</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>B</mi></msub><mo>+</mo><msubsup><mi>y</mi><mi>A</mi><mn>3</mn></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>B</mi><mn>3</mn></msubsup></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0001119394450000023.GIF" wi="557" he="167" /></maths>步骤8,先由下式计算得到方向盘转角控制量<maths num="0007"><math><![CDATA[<mrow><mi>&delta;</mi><mo>=</mo><msub><mi>k</mi><mi>p</mi></msub><mfrac><mn>180</mn><mi>&pi;</mi></mfrac><mi>&rho;</mi><mi>I</mi><mrow><mo>(</mo><mi>L</mi><mo>+</mo><msup><mi>Kv</mi><mn>2</mn></msup><mo>)</mo></mrow><mo>+</mo><msub><mi>&delta;</mi><mn>0</mn></msub><mo>,</mo></mrow>]]></math><img file="FDA0001119394450000024.GIF" wi="589" he="125" /></maths>式中的I为车辆转向系传动比、L为车辆轴距、K为车辆不足转向系数、δ<sub>0</sub>为方向盘零位偏移、k<sub>p</sub>为用于调节动态性能的增益系数、v为速度,再将方向盘转角控制量δ输出到自动驾驶仪后,进入下一控制周期。
地址 230031 安徽省合肥市蜀山湖路350号2号楼1110信箱