您的位置:首页 > 产品设计 > UI/UE

pure pursuit 轨迹跟踪算法介绍及autoware中的使用介绍

2020-07-12 16:48 2276 查看

 pure pursuit 轨迹跟踪算法介绍及Autoware中使用介绍

目录

 pure pursuit 轨迹跟踪算法基本介绍

Autoware 中pure pursuit 算法使用介绍

 背景说明(PS:可忽略):之前做的一个项目,主要就负责做轮式移动机器人的轨迹跟踪控制,当时没怎么具体的搞过这一块的东西,只是之前有一些了解。做的时候就查资料定方案,然后跑别人的代码,最后自己改进。最近有空了就把整个流程整理一下,轨迹跟踪这个系列打算写三篇(我尽量.......),也是根据当时完成算法的流程来的。

三篇系列:

1)pure pursuit 的基本介绍和autoware里面使用介绍(就是查资料定方案和跑别人的代码);

2)针对pure pursuit的预瞄距离的改进思路方法介绍(具体应用时出现问题,然后改进);

3)如何利用pure pursuit进行倒车时的轨迹跟踪;

 里面可能有些表述不准确,有问题的欢迎大家提出!!!!!

基本介绍

轨迹跟踪模块主要负责控制车辆沿着规划好的路径点行驶,其根据车辆当前的速度、位姿及路径点信息,计算出下一时刻车辆的控制参数(线速度和角速度),使车辆尽可能的沿着规划的路径平稳运动。常用的跟踪控制算法有:PID、MPC  及  纯跟踪算法(pure pursuit),这里主要介绍一下  pure pursuit 跟踪算法的基本原理和如何在Autoware中使用pure pursuit进行路径点跟踪。

现在在移动机器人上用的比较多的跟踪控制算法就那几种,MPC模型太复杂,各种参数一大堆,实时性也不是那么好;PID参数调节稍微复杂一些;当时就选择了模型简单,容易上手的纯跟踪作为方案,pure pursuit 在中低速下表现其实还可以接受(至少我是这么觉得的),对于一般的基于阿克曼转向的移动机器人来说足够了。

纯跟踪(pure pursuit)算法最基本的思想就是:把阿克曼转向结构的机器人抽象成自行车模型,构建前轮转角和后轴曲率的约束关系,然后以车后轴为切点, 车辆纵向车身为切线,控制车辆保持后轴的中心经过轨迹上一系列的点。

pure pursuit 跟踪示意图

如图所示,为pure pursuit 跟踪算法的示意图。其中,(Cx, Cy)表示当前智能车的位置坐标,(Gx, Gy)表示跟踪轨迹的预瞄点的位置坐标,Ld为预瞄点到车辆后轴的距离即预瞄距离,R表示跟踪的曲率半径。那么根据pure pursuit算法计算出控制量前轮转角δ 以及对应的智能车辆的角速度W。

主要的公式就是上面这些了,不难推导!

其实,纯跟踪算法原理很容易懂,就是一些基本的模型和公式推导,详细的介绍可以参考一下这篇博客--------->>

申泽邦(Adam Shan),兰州大学在读硕士研究生,主攻无人驾驶,深度学习;

Autoware 中pure pursuit 算法使用介绍

Autoware是日本名古屋大学开发的一套开源自动驾驶方案,里面包含了整个自动驾驶技术的常用方法,整体框架比较清晰。这里主要介绍如何使用其中的Pure pursuit进行路径点跟踪 。关于autoware的安装等过程可自行查找,网上很多资料。

上面就是使用Autoware里面的方法进行pure pursuit轨迹跟踪的整个流程。使用之后就发现,只能用于一些简单的场景,例如直线跟踪;对于一些复杂的路径跟踪效果就比较差,例如U型/S型等曲线路径。其实根据pure pursuit的原理可以知道,其跟踪效果很大程度上取决于前视距离ld的选择。设置固定的前视距离和路径曲率肯定无法适应不同的路径,因此就需要对于前视距离的计算方法进行研究改进。

从平时我们开车时的习惯来讲,我们会根据不同驾驶速度和不同路段,进行判断合适的视线跟踪点。因此,我们就可以将这个过程抽象出来,加以处理,形成一个选择前视距离的规则。

下一篇就着重讲解如何对这个过程模型进行建立,加入到pure pursuit中,从而改善跟踪性能!!!!!

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: