自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、阿克曼转向模型
    • 1.1 模型理解
    • 1.2 模型表达
  • 二、纯跟踪算法(Pure Pursuit)
    • 2.1 算法理解
    • 2.2 算法特性
  • 总结


前言

近期因为工作需要开始接触轨迹跟踪算法,该系列为自己的学习笔记,均为入门级别,仅供学习使用,如有错误烦请指正。

本文记录了纯跟踪算法,包含了阿克曼转向模型部分。


一、阿克曼转向模型

这里加单介绍一下阿克曼转向模型,主要参考以下内容:

《转向阿克曼是个啥?内容太干了,慎入!》

1.1 模型理解

我们小时候学自行车,只要转动前轮就会拐弯。要是让前轮保持一定角度,自行车会做定圆运动。如果我们想象,车轮轴线跟着旋转的话,那么前轮轴线和后轮轴线的交点就是自行车做定圆运动的圆心。
自行车是个两轮模型,如果我们研究轿车的四轮模型的时候,会发现,如果轿车要绕着后轮轴线上的某一点做定圆运动的话,前轮的左右转角大小是不一样的。这时候,左右车轮转角的角度差,就是我们说的阿克曼角。
而且,我们还要明白一点,在这个定圆模型中,圆心是三个车轮的轴线共同确定的,如果前轮的某一条虚拟轴线不经过圆心,那么这个车轮就会产生相对滑动。

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第1张图片
车轮是绕着主销进行旋转的。如果要实现左右轮转角不一致,就要有一套特定的转向机构,如果这套机构是平行四边形的话,我们可以看到,左右前轮转角始终都是保持相同的角度,它们的轴线是不会交于一点的,这时候车辆转向时四个轮就不会绕着同一个点纯滚动。
如果我们把平行四边形的内点往里移动的话,这时候会发现前轮的左右转角不一样了。在某一个特定转角情况下,前轮的虚拟轴线和后轮的虚拟轴线会同时相交于一点,这时候,车辆的四个车轮就能绕着这个点做纯滚动运动。这种,理论上能让四个轮绕着某一点纯滚动的转向机构,我们叫转向梯形,也叫阿克曼几何。
自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第2张图片
自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第3张图片

1.2 模型表达

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第4张图片
如图为阿克曼转向运动学模型示意图,由图可得:
自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第5张图片

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第6张图片

将双轨的车辆模型转化为一个单轨的自行车模型后如上图,可得:

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第7张图片
其中:L为车辆轴距;R为转弯半径;B为中心距。

更详细可参考
《无人驾驶-控制-阿克曼模型》
《阿克曼转向车运动学模型及在gazebo中搭建仿真环境》

二、纯跟踪算法(Pure Pursuit)

2.1 算法理解

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第8张图片
如上图所示为简化的车辆运动学自行车模型,其后轮中⼼在蓝色虚线表示目标轨迹上。本算法通过控制前轮转角来追踪下一个路点,使车辆可以沿着经过目标预瞄点的圆弧行驶。
自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第9张图片
自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第10张图片

2.2 算法特性

自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)_第11张图片
在实际应用中,通常不要求跟踪的目标点到本车后轴中⼼的距离切实等于预瞄距离,⽽是会选择采样好的一系列目标点中到后轴中⼼距离最接近预瞄距离的那个点来近似跟踪。这样做的好处是可以不需要目标轨迹的函数方程来求解真实预瞄距离坐标,极大地提升了算法的效率。

参考
《横向控制 | Pure Persuit(纯跟踪)算法》
《无人驾驶轨迹跟踪之纯轨迹跟踪(Pure Pursuit)》
《使用pure pursuit实现无人车轨迹追踪》
《无人驾驶-控制-纯跟踪(Pure Pursuit)》


总结

纯跟踪入门理解

你可能感兴趣的:(自动驾驶,自动驾驶)