一、Pure Pursuit算法概述:从路径跟踪说起

1.1 什么是路径跟踪?

做自动驾驶这些年,我经常被问到同一个问题:

「车子知道要去哪,也知道自己在哪,那怎么让它沿着路走?」

这个问题,说白了就是路径跟踪。

路径跟踪,就是让车辆按照一条预先规划好的路径行驶。

听起来简单,对吧?

但实际做起来,坑不少。

我记得刚入行那会儿,接手一个园区物流项目。

路径规划得好好的,结果车子一上路就开始「画龙」。

左扭一下,右扭一下,像个刚学走路的孩子。

嗯,那时候我就意识到——路径跟踪,没那么简单。

核心问题:车辆是一个非完整约束系统。它不能像人一样原地转向,也不能像无人机那样任意平移。它只能前进、后退、转弯。所以,路径跟踪的本质是:如何用转向和速度,让车辆「追」上目标路径。

1.2 什么是Pure Pursuit算法?

Pure Pursuit,中文叫纯跟踪算法。

名字很直白——就是「纯粹地追踪」。

它的思路特别简单:

  • 在目标路径上,选一个「前视点」
  • 然后控制车辆,像追着那个点跑一样
  • 一直追,一直追,直到走完整条路

你想想看,这像什么?

像不像你牵着一条狗遛弯?

狗绳的长度固定,你往前走,狗就跟着你。

Pure Pursuit里的「前视距离」,就是那根狗绳。

个人经验:我习惯把前视距离比喻成「视野长度」。视野太短,车子会频繁调整方向,像喝醉了酒;视野太长,车子会「抄近道」,切弯太狠。这个度,得慢慢调。

1.3 算法核心思想与几何原理

Pure Pursuit的核心,其实就一个几何模型——阿克曼转向几何

说白了,就是初中几何里的圆弧和切线。

算法步骤很简单:

  1. 找到车辆当前位置
  2. 在目标路径上,找到距离车辆前视距离的那个点(前视点)
  3. 计算车辆当前位置到前视点的圆弧
  4. 根据圆弧半径,算出需要的转向角
  5. 打方向,走你

公式也不复杂:

δ = arctan(2 * L * sin(α) / ld)

其中:

  • δ:前轮转向角(我们要算的东西)
  • L:车辆轴距(车的前后轮距离)
  • α:车辆航向与前视点方向的夹角
  • ld:前视距离

这个公式,我当年推导了整整一个下午。

后来发现,其实就是正弦定理加圆弧半径公式。

嗯,数学这东西,有时候就是一层窗户纸。

避坑指南:我曾经在一个项目中,前视距离设成了固定值。结果低速时还好,高速时车子直接冲出赛道。后来才意识到——前视距离必须和车速挂钩。速度越快,看得越远,这是常识,但我当时就是忽略了。

1.4 算法发展简史

Pure Pursuit最早不是用在自动驾驶上的。

它最早出现在机器人领域,大概是上世纪80年代。

那时候的机器人,轮子大,速度慢,算力弱。

Pure Pursuit因为计算量小、实现简单,成了首选。

年代 发展 我的评价
1980s 提出Pure Pursuit,用于轮式机器人 经典之作,但当时没人在意
1990s 用于DARPA挑战赛的早期无人车 开始被关注,但精度一般
2000s 与Stanley算法对比研究 大家发现,简单也有简单的道理
2010s至今 广泛应用于低速场景(园区、矿区、仓储) 我目前的主力算法之一

说实话,Pure Pursuit不是最精确的算法。

但它是最「稳」的。

我做过对比测试:同样的路径,Pure Pursuit的跟踪误差比MPC大一些,但它的计算量只有MPC的百分之一。

在嵌入式平台上,这就是天壤之别。

1.5 应用场景

Pure Pursuit适合哪些场景?

我总结了三类:

  • 低速场景:园区物流、矿区运输、仓储AGV。速度不超过10m/s,Pure Pursuit完全够用。
  • 简单路径:直线为主、弯道半径大的路径。比如高速公路的匝道、港口集装箱运输。
  • 算力受限平台:单片机、低端ARM。Pure Pursuit只需要几个三角函数,跑起来毫无压力。

我的建议:如果你刚开始做路径跟踪,从Pure Pursuit入手准没错。它简单、直观、容易调试。等你把Pure Pursuit吃透了,再去碰MPC、LQR那些高阶算法,会轻松很多。

1.6 本章知识体系

下面这张图,是我自己画的。

它展示了Pure Pursuit在整个路径跟踪体系中的位置。

全局路径规划 路径跟踪算法 Pure Pursuit | Stanley | MPC | LQR 底层控制(转向/油门/刹车) 定位反馈(GPS/IMU/里程计) 🚗 车辆动力学模型 阿克曼转向几何 | 非完整约束 图1:Pure Pursuit在自动驾驶系统中的位置

从这张图你能看到:

  • Pure Pursuit属于路径跟踪层
  • 它接收全局路径和定位信息
  • 输出转向角给底层控制
  • 底层控制执行后,定位反馈更新,形成闭环

这个闭环,就是自动驾驶最基础的「感知-规划-控制」循环。

Pure Pursuit,就是控制环节里最经典的那把「瑞士军刀」。

一个小技巧:调试Pure Pursuit时,我习惯先把前视距离设成轴距的2-3倍。然后看跟踪效果,再微调。这个经验值,是我调了不下50次试出来的。


好了,第一章就聊到这儿。

Pure Pursuit的核心思想,说白了就是「追着一个点跑」。

几何原理就是阿克曼转向加圆弧拟合。

应用场景集中在低速、简单路径、算力受限的平台。

下一章,我们会深入推导Pure Pursuit的数学公式。

到时候,我会把当年推导的草稿纸翻出来,给大家看看。

嗯,那上面还有咖啡渍呢。

专注资料整理