差速转向机器人数学模型

     机器人控制方面有两种模型,一是自行车模型,二是差速模型,今天主要推导了差速模型,实验室的履带车都是差速模型。

   参考了https://blog.csdn.net/iProphet/article/details/83661753博文。

                             

          假设电机输出的角速度为\phi l\phi r,轮子驱动半径为r,有如下式子:

          v_{l}=\frac{\phi _{l}cos(\theta )}{2}

          v_{r}=\frac{\phi _{r}cos(\theta )}{2}

       c点的瞬时速度为v_{c}=\frac{v_{r}+v_{l}}{2}

      左右轮间的间距为l,转弯半径oc到c的距离为R,转弯时有w_{l}=w_{r}=w_{c},因为车辆转弯时是同轴的。故有l=\frac{v_{r}}{w_{r}}-\frac{v_{l}}{w_{l}}

,进而有w_{c}=\frac{v_{r}-v_{l}}{l}

   所以可知转弯半径R=\frac{v_{c}}{w_{c}}=\frac{l(v_{r}+v_{l})}{2(v_{r}-v_{l})}.

  上述是基础。需要整合一下,也是最关键一步。结合图分析有如下的:

   x{}' =v_{c}cos\theta =\frac{v_{r}+v_{l}}{2}cos\theta

  y{}' =v_{c}sin\theta =\frac{v_{r}+v_{l}}{2}sin\theta

   \theta {}' =w_{c} =\frac{v_{r}-v_{l}}{l}

需要对上述式子离散化处理:T为采样时间。

x(t+1)=x(t)+v_{c}cos\theta \times T

y(t+1)=y(t)+v_{c}sin\theta \times T

\theta (t+1)=theta (t)+w_{c}\times T

这就是所谓的一个系统的被控对象的状态方程,后续可对其设计控制器等等。这里我们选择输入为vl和vr。

如果是在Ros机器人 操作系统框架下,那么我们选择的输入控制量为w_{c}v_{c},但是在控制电机时,我们比较喜欢vl和vr,所以需要进行反解算出v_{r}=v_{c}+\frac{w_{c}l}{2},v_{l}=v_{c}-\frac{w_{c}l}{2}

 我们要做一个航向角跟踪 a=k*error。

差速转向机器人数学模型_第1张图片

你可能感兴趣的:(自动驾驶算法,移动机器人)