四足机器人制作(二) 姿态解析
对于四足机器人这个整体来说,需要关注六个物理量:三轴欧拉角以及前后、左右、旋转三个速度,我们要做的就是使用遥控器控制这六个物理量,然后机器人将这六个物理量转换为12个舵机的角度值。
这篇文章将解决三轴欧拉角的转换问题,即四足机器人的姿态解析。
yaw轴解析
考虑如下模型

上图中红色线框是原本的位置,绿色虚线框是水平偏转α后的位置,显然四条腿的变化都是一样的,任选一条腿分析就行。现选取上图中最左侧的那一条腿进行分析。
俯视图如下

显然,只需要求得δx和δy就行了,因为对于这一个关节来说,腿部的末端移动量就是δx和δy,图中使用-δx和-δy的原因是两者的坐标系不同,参考系不同。
已知四足机器人的长为a,宽为b,AO与y轴的夹角可以事先计算出来,是一个定值,记为θ,AO长度也是一个定制,记为L,那么有以下等式
$$\begin{cases} x=\frac{b}{2}\\ y=\frac{a}{2}\\ x-\delta x=L\sin (\theta-\alpha)\\ y-\delta y=L\cos (\theta-\alpha)\\ \end{cases} $$
可求出δx和δy的值
$$\begin{cases} \delta x=\frac{b}{2}-L\sin (\theta-\alpha)\\ \delta y=\frac{a}{2}-L\cos (\theta-\alpha)\\ \end{cases} $$
然后根据四足机器人的腿部运动算法即可求出舵机的角度值。
pitch轴解析
模型如下

在这里,前面两个腿状态相同,后面两个腿状态相同,但前后不同。这里以前腿为例进行分析,后腿如法炮制。
从机器人的侧视图进行分析

显然,也是只要求解到δx和δy就行了,这条线为机器人的长边,长度为a,很容易得出有以下关系

roll轴解析
模型如下

这个情况和pitch轴非常相似,只是旋转的轴不一样而已,解析方法同pitch轴,这里不赘述。
自平衡
能实现姿态解析之后,自然就能实现机器人的自平衡,也就是协调四条腿保持机器人身体稳定。
这里只需要在机器人身体上安装一个陀螺仪就行,我目前打算直接上MPU6050,方便又实惠,关于这个模块的姿态解析可以参考我之前写的这篇文章MPU9250六轴算法。
可以假设以下情景

机器人检测到因外部影响使机器人身体前倾了θ角度,那么相应地机器人应该在pitch轴向反方向转动θ角度,如上图所示。
所以四足机器人的自平衡可以总结为一句话:反方向转动所倾斜的角度。只要yaw、pitch、roll都这样做,就能保持机器人的平衡。
下期预告
接下来当然是解决机器人三个速度的解析啦,下一章实现机器人的平面全向运动!
参考
持续关注