侵权投诉
焊接机器人 喷涂机器人 搬运机器人 装配机器人 切割机器人 其它机器人
订阅
纠错
加入自媒体

机器人课程系列:如何编写Arduino程序让四足机器人移动

有脚的机器人很棒吧?它们可以跨越崎岖的地形,用像生物的方式移动,这一点是藉由轮子移动的机器人没法比的。但足机器人的构造也比较复杂,让许多 Maker望之兴叹。

这篇文章为你介绍让四足机器人「走路」的方法,也就是行走的步态(gaits),并教你如何为Arduino编写程序。

关于四足机器人

自然界里有许多用四只脚走路的动物,这是因为四只脚是一种很稳定的组合,不需要特别调整姿势就能保持站姿稳定,又比六足构造单纯一些。对机器人来说也一样:和更多只脚的机器人相比,四足机器人既便宜又简单,却可以保持稳定。

积极和消极稳定

椅子是属于消极稳定(passively stable)的对象,也就是说,椅子不需要控制或调整就可以稳定地立着;人类站立时则属于积极稳定(activily stable),需要不断控制与微调身体的各部位才能保持站姿。

四足机器人在四脚着地时是消极稳定的状态,走路时则不一定。如果每次只动一只脚,让其他三只脚仍稳稳地踩在地上,即是消极稳定状态,然而四足机器人也可以放弃此状态,进入积极稳定状态,这样可以动得比较快(即使比较不顺)。这两种步态分别被称作爬行(Creep)与快步(Trot)。在这里要介绍的是爬行。

爬行

爬行是最简单使用的步态。你必须确保机器人在每次移动的时候都有三只脚踩在地面上,而重心放在这三只脚形成的三角形内即可,如果重心离开这个三角形太久,机器人就会跌倒。

听起来很简单,但问题是,你要如何让机器人在行进中维持稳定呢?我们接下来介绍的方法,可以为你省去好几小时测试和出错的时间,这是一种很简单的消极稳定爬行步态。

这是它的分解动作:

1.这是起始位置,其中一侧两只脚向外,另一侧两只脚向内。

2.右上方的脚离地,向机器人前方踏出。

3.所有脚都往回收,让身体向前移动。

4.左后方的脚沿着身体侧边往前踏步,现在这个状态与起始位置互为镜像。

5.左上方的脚离地,向机器人前方踏出。

6.重复动作,将所有脚都往回收,身体向前移动。

7.右后方的脚离地,沿着身体侧边往前踏部,这样就回到起始位置了。

请注意,不管到哪一个步骤,重心都必须维持在不动的三只脚形成的三角形内,这是爬行步态最重要的关键。

仔细分析这个步态,你会发现其实这是两组互为镜像的移动方式,踏步、踏步、移位,接着是另一侧的踏步、踏步、移位……以下有一段影片,让我们来看看 EngiMake QuadBot走路的样子。

如何编写程序

爬行步态并不复杂,但我们要如何将它写成程序代码呢?首先,我们要订出每一只脚在各个位置的x、y坐标。

这是一个四足机器人的坐标示意图,每一只脚都有自己在x、y轴上的位置。因此,我们现在可以给每一只脚一个坐标值,代表与x轴和y轴的距离(单位为毫米)。举例来说,左上方的脚位置是 (-50,50) (x,y)。现在,我们可以将这一套表示方法应用至每一个步骤中。然而,请记得其确切的位置会与机器人脚的长度有关,不管你的机器人长什么模样,请先测量脚长来再计算数值。

以下是QuadBot用的位置坐标:

在每步之间,我们只需要处理粉红色箭头表示的数值变化即可。那么,这样怎么用程序代码呈现呢?我们来看看其Arduino程序代码长什么样子。

是不是意外地很简单?让我们再次分解动作。

起始位置

第一步

第一次移位

第二步

第三步

第二次移位

第四步(起始位置)

大功告成!透过这样的方式,我们可以直接让机器人走路了!大部分的四足机器人都是由伺服马达驱动,如果你也是用伺服马达的话,可能要先研究一下反向动力学(Inverse Kinematics),才能将伺服马达的角度转换成这里提到的坐标位置。

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    机器人 猎头职位 更多
    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号