Summary of Pure Pursuit trajactory tracking and Stanley trajactory tracking

Geometric Vehicle Model

这里使用阿克曼转向系,车辆模型简化为自行车模型。pure persuit and Stanley均使用了车辆运动学进行车辆横向控制,忽略车辆动力学的考虑,在未知车辆参数的情况下可以被迫使用。 2007DARPA 以后,使用较少。

此处可见,四轮车辆被简化为了二轮车辆,另外一个简化为,车辆仅可以在二维平面运动。由于简化,车辆的转向角和轴距和转弯半径遵循以下关系:

Pure Pursuit


如上,pure pursuit 需要给出预瞄距离Ld, 因此后期当工作效果不好的时候可以对这个预瞄距离进行tuning,但是过程繁琐,在某些情况下使用该模型效果不佳。

给定预瞄距离后在预定轨迹上获得采样点g, 本车的后轴中心,采样点g, 以及车辆的运动学半径中心行程三角形,根据sin正弦函数三角公式,获得如下:

也可以写成关于曲率半径k的关系:

根据上面的公式,车辆转角改写为:

以上两式合并写为:

此时,在任何情况下,根据给定的预瞄距离ld, 以及常数L, 以及计算出的alpha(t),就可以实时就算期望车辆转角。

为了更好地理解该式:
定义一个新的变量,e_ld, 为车辆头指向与目标点的矢量的横向距离,于是有:

曲率半径可以被重新写为:

这里的2,/ld^2可以被当成一个纯P 控制的增益,值的注意的是,通常情况下我们选取Ld的原则是与车速成线性关系,当然,这个选择可以根据设计更改,也可以是非线性的。

现在选取线性关系,车辆期望转角写为:

此式即为pure pursuit 的最后表达式,需要使用者tuning的部分就是这里的分母K值。

Stanley

Stanley 考虑到了车辆后轴中心与预定轨迹的横向偏差e_fa, 车辆头指向与预定轨迹heading angle 方向的夹角,stanley车辆期望转角的第一项为

这里,theta为车辆的真实heading angle, theta_p为预定轨迹点的heading angle, 差值就是车辆需要被纠正的heading angle.
如果横向偏差不为零,车辆期望转角会产生第二个控制量,这个控制量和pure pursuit很相似,由前轴中心对应的车辆预定轨迹点C出,往切线防线延伸预瞄距离L, 这里的预瞄距离仍然与车速成正比。于是,两项控制量可合并为:

分析
1,pure pursuit预瞄距离系数K越大,跟随效果会越差,随着K减少,效果变好,继续减少,跟随效果会突然变差,最终跟随发散,无法工作。
2,曲率或曲率半径对pure pursuit工作效果影响很大,某个曲率下,给定的pure模型可能工作的很好,在另一个曲率下,工作效果会突然变差,这是因为pure仅仅考虑了curvature,因为对curvature的依赖性就很强。并且这种效果会随着车速的增加越发增强。
3,对于stanley, 比pure好的地方是考虑到了预定点heading angle 和真是的车辆heading angle只差, 作为一个前馈控制,提前补足了在转弯过程中的车辆转角,设计者可以根据需求,对前馈值进一步增加增益系数。同时还推荐使用与速度相关的可变增益系数,可以更好的弥补此类仅考虑车辆运动学,而忽略车辆动力学的模型的不足。增益系数的设定方法可以参考PID系数整定法。

Pure Pursuit trajectory tracking and Stanley trajectory tracking总结与比较相关推荐

  1. Pure Pursuit纯跟踪算法Python/Matlab算法实现

    本文的python源代码来自: https://github.com/gameinskysky/PythonRobotics/blob/master/PathTracking/pure_pursuit ...

  2. 无人驾驶汽车系统入门(十八)——使用pure pursuit实现无人车轨迹追踪

    无人驾驶汽车系统入门(十八)--使用pure pursuit实现无人车轨迹追踪 对于无人车辆来说,在规划好路径以后(这个路径我们通常称为全局路径),全局路径由一系列路径点构成,这些路径点只要包含空间位 ...

  3. 无人车系统(五):轨迹跟踪Pure Pursuit方法

    今天介绍一种基于几何追踪的无人车轨迹跟踪方法--Pure Pursuit(纯跟踪)方法. 1. 阿克曼转向几何模型 在无人车系统(一):运动学模型及其线性化一文中,里面介绍无人车的运动学模型为阿克曼转 ...

  4. pure pursuit:无人车轨迹追踪算法

    对于无人车辆来说,在规划好路径以后(这个路径我们通常称为全局路径),全局路径由一系列路径点构成,这些路径点只要包含空间位置信息即可,也可以包含姿态信息,但是不需要与时间相关,这些路径点被称为全局路径点 ...

  5. 用python实现Pure Pursuit控制算法

    之前对Pure Pursuit控制算法作了介绍,并用Matlab进行了仿真,具体参考:https://blog.csdn.net/Ronnie_Hu/article/details/115817922 ...

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

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.阿克曼转向模型 1.1 模型理解 1.2 模型表达 二.纯跟踪算法(Pure Pursuit) 2.1 算法理解 ...

  7. [运动控制算法]Pure Pursuit纯路径跟踪算法

    纯路径跟踪 Pure Pursuit是一种用于路径跟踪的控制算法.它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点.假定线速度是恒定的,当然可以随意更改机器人的线速度.该算法会根据机器人 ...

  8. pure pursuit纯跟踪

    Pure Pursuit是一种几何追踪方法,速度越小,performance越好; :汽车前轮转角 L:前后轮轴距(车长) R:转弯半径 将车辆模型简化为自行车模型(这里默认左轮和右轮的旋转是一致的) ...

  9. 自动驾驶(七十一)---------Pure Pursuit轨迹追踪

    前面介绍过很多轨迹规划,也有很多控制相关的知识,例如pid调节.kalman 滤波.MPC等等.今天再学习一种轨迹追踪的方法,轨迹追踪是在有轨迹规划的基础上,如何实现车辆按照规划的轨迹行驶的问题,属于 ...

最新文章

  1. Xshell远程登录Ubuntu
  2. matlab 图像平滑的算法_图像相似度---灰度分布算法---用matlab实现
  3. Makefile 书写命令
  4. c++ 程序时间运算 函数;
  5. mysql中利用sql语句修改字段名称,字段长度等操作(亲测)
  6. 修改 jquery.validate.js 支持非form标签
  7. 【计算机网络】重要的Web结构组件总结
  8. 2009-08-02 XEIM 2.8 beta 迅速发布
  9. 如何才能轻松地分析日志?
  10. (90)FPGA比较器设计
  11. 二叉树的镜像(C++)
  12. 计算机设备管理系统论文,设备管理系统论文-.doc
  13. 【学术】SCI期刊影响因子查询方式
  14. adf4351_配置MySQL以进行ADF开发
  15. python编程实战:暴力破解WIFI密码!亲测运行有效!
  16. java short 转char_byte,short,char的类型转换
  17. 你不得不学会的英文赞美句子
  18. Mirror 镜像站点的使用
  19. 添加自签发的 SSL 证书为受信任的根证书
  20. 如何更改电脑桌面壁纸,换上自己想要的壁纸?

热门文章

  1. android开机动画多长时间_Android系统开机动画的一生
  2. mysql 8.0 postgresql_PostgreSQL8.0的安装和配置- -
  3. mysql编码丢了_记住:永远不要在 MySQL 中使用 UTF-8
  4. html大气网页模板,HTML蓝色大气形式扁平企业官网网页模板代码
  5. python学习之模块--模块(五)
  6. jquery节点查询
  7. linux CentOS 系统下如何将php和mysql命令加入到环境变量中
  8. sql 排序 分组 层级 筛选 - God聚会啊
  9. 五步学会XMLHttpRequest
  10. Sublime Text 由于中文用户名导致无法安装插件