机器人课程系列:如何编写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),才能将伺服马达的角度转换成这里提到的坐标位置。
图片新闻
最新活动更多
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
-
即日-0120限时下载>>> 爱德克(IDEC)设备及工业现场安全解决方案
-
限时免费下载立即下载 >>> 2024“机器人+”行业应用创新发展蓝皮书
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 【线上&线下同步会议】领英 跃迁向新 年度管理者峰会
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论