本文未经本人@Ai酱许可, [禁止转载]
差速驱动的原理就是:利用左轮和右轮的速度差异来旋转。它的控制命令是[左轮速度,右轮速度,持续时间]。下面这玩意平衡车就是典型的差速驱动。
(图片来自网络)
本文要解决的问题是:在已知控制命令,和机器人当前时刻的位置,朝向;我们如何求得执行完控制命令后机器人的位置和朝向?
博主先介绍了差速运动的轨迹与速度之间的联系,然后介绍如何求执行命令后机器人位置和朝向的理论,最后介绍了Python编程实践。
差速驱动的轨迹与速度之间的联系是什么?
直接看下面这张图,两个轮子速度不同会让机器人绕着某个点旋转,所以轨迹是一段圆弧。所以只要知道旋转半径R那就可以求得机器人执行命令后所在的位置,以及朝向。
%注意:旋转半径R是待求变量,其他变量都是已知。
可以看到左轮速度和右轮速度不一样,它们之间差速会使得j机器人会作一个圆弧形旋转。而由于两个轮子都在同一个旋转半径上,所以角速度一样。虽然我们不知道旋转半径R是多少但是我们知道两个轮子的角速度一样,那么有下面这个等式。
而上等式我们除了R不知道外,其他所有变量都是知道的。所以可以解出旋转半径R。
现在圆弧轨迹的旋转半径求出了那么旋转的轨迹,执行命令后的机器人位置和朝向都是已知的了。
我们现在已知执行命令前机器人位置为 ( x 0 , y 0 ) (x_0,y_0) (x<