imuncle.github.io icon indicating copy to clipboard operation
imuncle.github.io copied to clipboard

四足机器人制作(二) 姿态解析

Open imuncle opened this issue 6 years ago • 1 comments

对于四足机器人这个整体来说,需要关注六个物理量:三轴欧拉角以及前后、左右、旋转三个速度,我们要做的就是使用遥控器控制这六个物理量,然后机器人将这六个物理量转换为12个舵机的角度值。

这篇文章将解决三轴欧拉角的转换问题,即四足机器人的姿态解析。

yaw轴解析

考虑如下模型

image

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

俯视图如下

image

显然,只需要求得δ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轴解析

模型如下

image

在这里,前面两个腿状态相同,后面两个腿状态相同,但前后不同。这里以前腿为例进行分析,后腿如法炮制。

从机器人的侧视图进行分析

image

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

image

roll轴解析

模型如下

image

这个情况和pitch轴非常相似,只是旋转的轴不一样而已,解析方法同pitch轴,这里不赘述。

自平衡

能实现姿态解析之后,自然就能实现机器人的自平衡,也就是协调四条腿保持机器人身体稳定。

这里只需要在机器人身体上安装一个陀螺仪就行,我目前打算直接上MPU6050,方便又实惠,关于这个模块的姿态解析可以参考我之前写的这篇文章MPU9250六轴算法

可以假设以下情景

image

机器人检测到因外部影响使机器人身体前倾了θ角度,那么相应地机器人应该在pitch轴向反方向转动θ角度,如上图所示。

所以四足机器人的自平衡可以总结为一句话:反方向转动所倾斜的角度。只要yaw、pitch、roll都这样做,就能保持机器人的平衡。

下期预告

接下来当然是解决机器人三个速度的解析啦,下一章实现机器人的平面全向运动!

参考

imuncle avatar Jun 09 '19 01:06 imuncle

持续关注

FENYUN323 avatar Jun 23 '19 09:06 FENYUN323