**1. 运动学模型示意图**
![全向机器人运动模式](https://box.kancloud.cn/c840014edda2d58f31ef2be891c43136_571x497.jpg)
![rplidar-A1坐标系定义](https://box.kancloud.cn/9137ccfd7302db70ca6cdc75995eca5a_416x299.png)
在安装时,机器人正向和激光雷达正向一致。
**2. 由机器人移动速度指令推算三个全向轮的线速度**
![](https://box.kancloud.cn/b20759e311b791ac12cd360f903c6ab2_494x89.png)
![](https://box.kancloud.cn/8fb018097af4b798511bd7c6df02ff02_609x106.png)
![](https://box.kancloud.cn/838accf554534453a38a5fd5becd1ff4_344x63.png)
将速度指令分配到每一个轮子上,转换为需要的轮子角速度后,通过串口发送到omni控制板。
**3. 由三个全向轮的线速度计算机器人移动速度**
![](https://box.kancloud.cn/7e7d71e1647a104db413116aa8e77286_374x340.png)
根据计算出来的移动速度和转动速度计算里程信息。
**4. 全向轮线速度测量**
以轮子A为例,底盘控制器发送到树莓派板子的全向轮编码器数据表示了10ms内,编码器读数的变化:encoder_a。 编码器精度为500线,电机减速比14,速度测量四倍频,轮子半径约3cm。此外,在omni底盘控制时,输出轮子速度时,对编码器原始数据做了除2的处理,为了方便计算。因此,这里计算轮子线速度va时,依据是
~~~
先计算角速度,即1s内转过的角度。
wa = 2*PI*(encoder_a * 100 *2/(500*14*4))
计算速度
va = wa * radius
~~~