zoukankan      html  css  js  c++  java
  • 移动机器人建图与导航代码实现——3.Path Tracking

    Path Tracking

    这一部分利用极坐标下的线性控制器完成路径跟踪,主要思路就是把路径拆开,变成p2p问题,即从当前姿态到目标姿态。

    极坐标下的线性控制器

    设速度(v),角速度(omega),则有两轮差速机器人在惯性坐标系下的模型

    $$ egin{bmatrix} dot x\ dot y\ dot heta end{bmatrix}= egin{bmatrix} cos heta & 0\ sin heta & 0\ 0 & 1 end{bmatrix} egin{bmatrix} v\ omega end{bmatrix} $$

    如图转换到误差极坐标系下

    ( ho=sqrt{Delta x^2+Delta y^2})
    (alpha=- heta+arctan2(Delta y, Delta x))
    (eta=- heta-alpha)

    $$ egin{bmatrix} dot ho\ dot alpha\ dot eta end{bmatrix}= egin{bmatrix} -cos alpha & 0\ frac{sin alpha}{ ho} & -1\ -frac{sin alpha}{ ho} & 0 end{bmatrix} egin{bmatrix} v\ omega end{bmatrix} $$

    设计线性控制器
    (v = k_{ ho} ho)
    $omega = k_{alpha}alpha + k_{eta}eta $

    近似化以后

    $$ egin{bmatrix} dot ho\ dot alpha\ dot eta end{bmatrix}= egin{bmatrix} -k_{ ho} & 0 & 0\ 0 & -(k_{alpha}-k_{ ho}) & k_{eta}\ 0 & -k_{ ho} & 0 end{bmatrix} egin{bmatrix} ho \ alpha \ eta end{bmatrix} $$

    求出特征多项式((lambda+k_{ ho})[lambda^2+lambda(k_{alpha}-k_{ ho})-k_{ ho}k_{eta}])
    从而得到收敛条件
    (k_{ ho}ge 0, k_{eta}le 0, k_{alpha}-k_{ ho}ge 0)

    实际上,静态的参数容易使机器人陷入局部极值,我们做了动态调参。当( ho)比较大时,我们希望(alpha)影响更大,反之希望(eta)影响更大,同时希望不出现突变,因此设定了一个阈值(th),将控制器改为

    [omega= egin{cases} (frac{ ho}{th})^2 k_{alpha}alpha + k_{eta}eta & ho < th\ k_{alpha}alpha + (frac{th}{ ho})^2 k_{eta}eta & ext{else} end{cases}]

  • 相关阅读:
    ASP.NET 2.0的页面缓存功能介绍
    我对针对接口编程的浅解
    接口和抽象类的区别
    面向接口编程到底有什么好处
    泛型编程是什么
    方法的重写、重载及隐藏
    基于事件的编程有什么好处
    Socket Remoting WebService对比
    技术讲座:.NET委托、事件及应用兼谈软件项目开发
    ny589 糖果
  • 原文地址:https://www.cnblogs.com/7391-KID/p/10903404.html
Copyright © 2011-2022 走看看