前言

足式机器人在我的机器人关注榜上可能排第二!我的目标是独立设计和制作出一只使用无刷电机驱动、具备一定环境感知能力的四足机器人,相信这在不久的将来就会实现了(虽然我可能会优先完成六轴机械臂项目!)。

我的开发历程

我最开始制作完成的足式机器人,是一只使用Arduino Mega 2560作为主控的六足机器人——MegaHexa。它的结构像一只蜘蛛,头部外观模仿的是TrossenRoboticsPhantomX Hexapod MK-IV(下图右侧所示;左侧为MegaHexa)。Mega 2560使用的MCU为ATmega2560,尽管它的工作频率仅为16MHz,但却具备非常丰富的GPIO(54个数字输入输出引脚)和ADC(16个数字输入输出引脚)资源,非常适合用在需要多个独立控制信号的场景。每条腿具备3个驱动单元的六足机器人总共需要18个独立控制信号,除此之外还需要消耗一些引脚用于连接遥控接收器,但Mega 2560的引脚资源已经是绰绰有余了!

图片[1]-足式机器人(Legged Robot)

在这之后,我又使用乐鑫的模组作为主控,设计并制作了一只工业风的四足“舵狗”。由于这只舵狗的每条腿只有两个驱动关节,即四条腿共8个关节,所以起初我选择了性能一般的NodeMCU模组,它使用的芯片是ESP8266,但后来实际使用时发现同时控制8个舵机的效果很一般,有时舵机会有抽搐的动作,因此最后换成了NodeMCU-32S模组,使用ESP32芯片。这只舵狗有两个明显的设计缺陷:一是整机的重量相对所使用的MG90S舵机的扭矩过于重,尽管在后面进行过轻量化改进(下图左为改进后的实物;右为改进前的3D模型),但仍没达到理想效果;二是关节处设计不合理,加上3D打印机精度的影响,导致转轴处间隙过大,刚度不够(腿部其中一个关节没有使用轴承加轴套的方案,且接触面小,旋转轴不固定)。

图片[2]-足式机器人(Legged Robot)

随后,我将目光投向了一个开源的六足机器人项目——hexapod-v2-7697。该项目使用Linkit 7697作为主控,程序使用C++编写。为了用上我手动的RaspberryPi Zero2W,我对它的电路板进行了修改。此外我也对它的结构进行了改造,以用上在大陆更容易采购的JX PDI1181MG舵机!而软件方面,则是在保留原有功能的前提下将C++程序转换为Python,并重新编写了安卓端遥控APP(蓝牙通讯)及HTML校准舵机页面(WiFi通讯)。为了让大家对六足的运动学原理有更直观的感知,我还使用MatPlotlib编写了运动仿真程序,足够贴心了吧!我把这架六足机器人的所有代码都开源在了Github上,并给它取名为PiHexa18

图片[3]-足式机器人(Legged Robot)

为了给对蜘蛛形态的四、六足机器人感兴趣的朋友们一个复刻难度适中的项目,我又开始着手设计了一只新的四足机器人。这只四足的结构十分简洁,制作成本也较低。虽然主打制作简易,但它在功能上却丝毫不逊色:支持四种步态的切换,并且可以在足尖不移动的情况下调节机身的姿态和位移。

图片[4]-足式机器人(Legged Robot)

在后来,我还设计了一只具有12个驱动关节的四足舵狗,但出于时间和精力分配上的考虑,这个项目暂时被我搁置了——尽管在结构设计上已经接近完成了。我的计划是目前阶段先“猥琐”发育,尽量把理论基础巩固,才能厚积薄发,做出完美的无刷四足项目。当然如果读者朋友们希望我先把这个夭折的四足项目做完并开源,我还是会考虑一下的!

图片[5]-足式机器人(Legged Robot)