一、Pure Pursuit算法概述:从路径跟踪说起
1.1 什么是路径跟踪?
做自动驾驶这些年,我经常被问到同一个问题:
「车子知道要去哪,也知道自己在哪,那怎么让它沿着路走?」
这个问题,说白了就是路径跟踪。
路径跟踪,就是让车辆按照一条预先规划好的路径行驶。
听起来简单,对吧?
但实际做起来,坑不少。
我记得刚入行那会儿,接手一个园区物流项目。
路径规划得好好的,结果车子一上路就开始「画龙」。
左扭一下,右扭一下,像个刚学走路的孩子。
嗯,那时候我就意识到——路径跟踪,没那么简单。
核心问题:车辆是一个非完整约束系统。它不能像人一样原地转向,也不能像无人机那样任意平移。它只能前进、后退、转弯。所以,路径跟踪的本质是:如何用转向和速度,让车辆「追」上目标路径。
1.2 什么是Pure Pursuit算法?
Pure Pursuit,中文叫纯跟踪算法。
名字很直白——就是「纯粹地追踪」。
它的思路特别简单:
- 在目标路径上,选一个「前视点」
- 然后控制车辆,像追着那个点跑一样
- 一直追,一直追,直到走完整条路
你想想看,这像什么?
像不像你牵着一条狗遛弯?
狗绳的长度固定,你往前走,狗就跟着你。
Pure Pursuit里的「前视距离」,就是那根狗绳。
个人经验:我习惯把前视距离比喻成「视野长度」。视野太短,车子会频繁调整方向,像喝醉了酒;视野太长,车子会「抄近道」,切弯太狠。这个度,得慢慢调。
1.3 算法核心思想与几何原理
Pure Pursuit的核心,其实就一个几何模型——阿克曼转向几何。
说白了,就是初中几何里的圆弧和切线。
算法步骤很简单:
- 找到车辆当前位置
- 在目标路径上,找到距离车辆前视距离的那个点(前视点)
- 计算车辆当前位置到前视点的圆弧
- 根据圆弧半径,算出需要的转向角
- 打方向,走你
公式也不复杂:
δ = 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属于路径跟踪层
- 它接收全局路径和定位信息
- 输出转向角给底层控制
- 底层控制执行后,定位反馈更新,形成闭环
这个闭环,就是自动驾驶最基础的「感知-规划-控制」循环。
Pure Pursuit,就是控制环节里最经典的那把「瑞士军刀」。
一个小技巧:调试Pure Pursuit时,我习惯先把前视距离设成轴距的2-3倍。然后看跟踪效果,再微调。这个经验值,是我调了不下50次试出来的。
好了,第一章就聊到这儿。
Pure Pursuit的核心思想,说白了就是「追着一个点跑」。
几何原理就是阿克曼转向加圆弧拟合。
应用场景集中在低速、简单路径、算力受限的平台。
下一章,我们会深入推导Pure Pursuit的数学公式。
到时候,我会把当年推导的草稿纸翻出来,给大家看看。
嗯,那上面还有咖啡渍呢。