纯跟踪控制算法的拓展——滑动跟踪算法

背景

阿克曼底盘机器用纯跟踪算法跟踪轨迹时候,是底盘后轮中心跟踪轨迹,有时候希望机器是车中心跟踪轨迹或者车头跟踪轨迹,甚至是变化的跟随点去跟踪轨迹。此时就需要能满足任意点跟随的跟踪算法,从纯跟踪算法拓展开,得到滑动跟踪算法。

原理

原理图说明

阿克曼机器后轮中心 O ,前轮 S,S' 为前轮朝向。射线 robotYaw(OS) 表示了机器朝向,射线 steerYaw(SS') 表示前轮角度。点 C 是阿克曼机器转向的旋转中心,点 P 是射线 OS 上的滑动点,曲线 trajectory 是点 P 在机器转向中的轨迹, 点 T 是想要跟踪的轨迹点。

滑动跟踪算法的目标是,控制机器前轮转向,使得机器中轴线上的滑动点 P 经过轨迹点 T。

公式

  • 设线段 OS 为 l,线段 OC 为 m,前轮转角是 steerYaw 与 robotYaw 的夹角,设为角 θ。有方程 (1) :

\theta =\arctan (\frac{l}{m})

  • 设线段 OP 为 h,线段 PC 为点 P 的转弯半径,设 PC 为 r。过点 P 作转弯半径的切线,交机器于点 D,交后轮轴于点 A。角 α 为滑动点 P 运动方向与机器朝向 robotYaw 的夹角。有方程 (2) :

r=\frac{h}{sin(\alpha )}

  • 设线段 PT 为 e,调整好前轮转向,使点 T 在点 P 的转弯圆弧轨迹上时候,TP 在以点 C 为圆心的圆上。过点 C 作 CB 垂直于 PT,垂足为 B。此时角 DPT 和角 PCB 相同,设角 DPT 为 γ,设角 SPT 为 β。有方程 (3) :

r=\frac{\frac{e}{2}}{sin(\gamma )}=\frac{\frac{e}{2}}{sin(\beta -\alpha )}

  • 点 OPC 形成直角三角形,有方程 (4) :

m=r*sin(\frac{\pi }{2}-\alpha )

联立方程 (2) 和 (4) ,得到方程 (5) :

m=\frac{h*sin(\frac{\pi }{2}-\alpha )}{sin(\alpha )}=\frac{h}{tan(\alpha )}

联立方程 (2) 和 (3),得到方程 (6) :

\frac{e}{2}*sin(\alpha )=h*sin(\beta -\alpha )

根据三角函数的两角和差公式,(6) 可以化为

\frac{e}{2}*sin(\alpha )=h*(sin(\beta )cos(\alpha )-cos(\beta )sin(\alpha ))

(\frac{e}{2h}+cos(\beta ))*sin(\alpha )=sin(\beta )cos(\alpha )

\frac{(\frac{e}{2h}+cos(\beta ))*sin(\alpha )}{cos(\alpha )}=\frac{sin(\beta )cos(\alpha )}{cos(\alpha )}

tan(\alpha )=\frac{sin(\beta )}{\frac{e}{2h}+cos(\beta )}

联立方程 (1) (5) (7),得到滑动点 P 跟踪轨迹点 T 时候的前轮控制角 θ:

\theta =arctan(\frac{l*tan(\alpha )}{h})=arctan(\frac{l*\frac{sin(\beta )}{\frac{e}{2h}+cos(\beta )}}{h}),h>0

其中 l 是线段 OS,对应阿克曼底盘后轮中心到前轮的距离,即 wheel_base;

角 β 是滑动点 P 和跟踪点 T 与机器当前航向角的夹角;

e 是线段 PT,滑动点 P 和跟踪点 T 的距离;

h 是线段 PO,滑动点 P 到后轮中心 O 的距离;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值