机器人差速轮运动学模型 (Differential Drive Kinematics)

1. 问题

使用机器人差速模型进行航迹推算,简单来说就是通过左右两轮的轮速v_rv_l计算车辆的速度v和角速度w

different_model.png

上图中,单位时间内的角度w = \theta_3/\Delta t, 另外:

  • l为两轮间距;
  • v_rv_l为两轮的速度;
  • \theta_1 = \theta_2 = \theta_3
  • r为转弯半径。

2. 速度计算

2.1 线速度

车辆线速度v可以很容易得到:
v = \frac{v_r + v_l}{2} \tag{1}
简单来说,线速度就是两轮线速度的平均值。

2.2 角速度

角速度w就是单位时间内的\theta_3
\theta_3 = \theta_2 = sin(\theta_2) = \frac{d}{ l } = \frac{(v_r - v_l) \cdot \Delta t}{ l }
那么w为:
w = \frac{\theta_2}{\Delta t} = \frac{v_r - v_l}{l} \tag{2}
注意,这里是右轮减左轮的里程为,注意符号方向。

2.3 转弯半径

转弯半径r为线速度比角速度的值:
r = \frac{v}{w} = \frac{l\cdot(v_r+v_l)}{2(v_r-v_l)} \tag{3}
注意,当v_r \approx v_l的时候,可能会出现无穷大。

3. 误差分析

在实际应该用过程中,轮子的速度是由轮半径和轮速脉冲数计算而来,轮半径会根据负载的变化而变化。
试想轮速v_rv_l实际中都是:
\begin{aligned} v_r &= \alpha_r \cdot \hat{v}_r \\ v_l &= \alpha_l \cdot \hat{v}_l \\ \end{aligned}
\hat{v}为观测值.
那么线速度由于是计算平均值,因此误差车轮尺度的误差被平分了。
角速度是计算两轮的差,因此误差一定程度上被放大了。
造成实际应用过程中,线速度和角速度的误差是不同的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。