横向控制 - Pure Pursuit

原理

在这里插入图片描述

阿克曼模型

[ x ˙ y ˙ ϕ ˙ ] = [ v cos ⁡ ϕ v sin ⁡ ϕ v L tan ⁡ δ ] \left[\begin{matrix}\dot{x}\\\dot {y}\\\dot{\phi}\end{matrix}\right]= \left[\begin{matrix}v\cos\phi\\v\sin\phi\\\frac{v}{L}\tan{\delta}\end{matrix}\right] x˙y˙ϕ˙ = vcosϕvsinϕLvtanδ

前轮转角 δ \delta δ和转弯半径 R R R的关系

1 R = tan ⁡ δ L = κ \frac{1}{R}=\frac{\tan{\delta}}{L}=\kappa R1=Ltanδ=κ

Pure-pursuit 思想是对于路径上的预瞄点,假设后轮中心点可以按照一定的转弯半径 R R R行驶到该预瞄点,那么根据后轮中心点到预瞄点的距离 l d l_d ld,就可以求得 δ \delta δ

首先基于后轴线,后轴中点和预瞄点做等腰三角形。显然该三角形的地角 π / 2 − α \pi/2-\alpha π/2α。由于车辆纵轴线垂直于后轴线,因此可知等腰三角形底边与车辆纵轴线夹角为 α \alpha α

接着,作等腰三角形的角分线,该线将等腰三角形分为了两个全等的直角三角形, 2 α 2\alpha 2α顶角被平分。因此有

sin ⁡ α = l d 2 R = κ l d 2 = l d tan ⁡ δ 2 L \sin\alpha=\frac{\frac{l_d}{2}}{R}=\kappa\frac{l_d}{2}=\frac{l_d\tan\delta}{2L} sinα=R2ld=κ2ld=2Lldtanδ

最终可得

δ = arctan ⁡ 2 L sin ⁡ α l d \delta=\arctan\frac{2L\sin\alpha}{l_d} δ=arctanld2Lsinα

方案一

根据几何关系,有如下关系
( R − g y ) 2 + g x 2 = R 2 g x 2 + g y 2 = l d 2 \begin{aligned}(R-g_y)^2+g_x^2&=R^2\\g_x^2+g_y^2&=l_d^2\end{aligned} (Rgy)2+gx2gx2+gy2=R2=ld2
做恒等变换有
κ = 1 R = 2 g y l d 2 \kappa=\frac{1}{R}=\frac{2g_y}{l_d^2} κ=R1=ld22gy
到这里可以直接根据 κ \kappa κ计算前轮转角
δ = arctan ⁡ ( L κ ) = arctan ⁡ 2 g y L l d 2 \delta=\arctan (L\kappa)=\arctan\frac{2g_yL}{l_d^2} δ=arctan(Lκ)=arctanld22gyL
注释:这里的预瞄点的横向坐标和横向误差是一样的故也有材料写 e y e_y ey

预瞄点选择

以后轴中心为原点做圆,取车前圆与轨迹的交点(可能为插值点),该点即为预瞄点。
由前面的讨论可知,Pure Pursuit本质上是一个与预瞄距离有关的比例控制器( K p = 2 L / l 2 , e y = e y K_p=2L/l^2, e_y=e_y Kp=2L/l2,ey=ey ),当预瞄距离(lookahead distance) l d l_d ld越小时,比例控制器系数 K p K_p Kp越大。由基本的控制原理不难理解,系统的响应越快,跟踪性能更灵敏;而当预瞄距离(lookahead distance)越大时,比例控制器系数 K p K_p Kp越小,系统的响应较慢,容易造成较大的跟随误差。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值