Hexapod开源六足家族深拆:三款体型一套固件的设计逻辑

2026-10-26 13:04:35 114阅读

开源六足机器人圈子里,能真正做到"三款体型、一套固件"的项目不多。Z. Peng(GitHub: rookidroid)做的Hexapod家族算一个——从手掌大的Mochi到接近半米高的Macaroon,三只机器人都用ESP32主控、18只舵机、同一份Arduino固件,甚至连WiFi控制协议都一模一样。这个项目从2024年9月公开,到2026年10月还在持续更新,社区里已经有人照着做出了自己的版本。这篇把整个家族拆开看。

家族成员:从V1到Macaroon四代演进

Hexapod家族经历了四代原型。第一代V1是概念验证阶段,用18只MG90S舵机、矩形机身,目的是验证腿部几何和多向行走。结果MG90S扭矩不够,机身太重走不稳,很快就退役了。但这个阶段留下了最重要的遗产——逆运动学模型和步态生成器的数学框架。

第二代Nougat是真正能用的版本。换了21G数字舵机,两块PCA9685 PWM驱动板,双18650供电。腿长参数是coxa 38mm、femur 54mm、tibia 97mm。扭矩上来了,但信号精度又成了瓶颈——如果PWM信号抖动,再大的扭矩也只是抖得更有力。官方组装指南在rookidroid.com上有,STL文件和控制器板都能买到或自己打。

第三代Mochi是家族里最小的。换回MG92B微型舵机(比MG90S强但体积相当),机身改成圆形,对称性更好,腿部活动空间更大。腿长coxa 36mm、femur 44mm、tibia 85mm,比Nougat短一截但更紧凑。圆形机身让WiFi天线布局也更均匀。步态周期12ms,和Nougat一样。

第四代Macaroon是"放大版"。18只25kg数字舵机替换了微型舵机,腿长coxa 62mm、femur 76mm、tibia 132mm,机身明显大了一圈。供电从两节18650升到四节(2S2P),最高8.4V直供舵机。步态周期放宽到25ms——舵机大了惯性也大,走太快会晃。扭矩余量大,可以背更重的载荷。

核心参数对照:三款现役机器人

三款现役机器人的关键差异在舵机和体型。Nougat用21G数字舵机,Mochi用MG92B微型舵机,Macaroon用25kg数字舵机。供电方面Nougat和Mochi都是双18650(2S),Macaroon是四节(2S2P)。三款都用ESP32主控,WiFi名分别叫hexapod_nougat、hexapod、hexapod_macaroon。固件里通过#define ROBOT_NOUGAT/ROBOT_MOCHI/ROBOT_MACARoon选择机型,其他代码完全一样。

这个设计的精妙之处在于:机器人几何参数(腿长、关节限位、步态半径)全部存在一个JSON文件里。路径工具(NumPy写的逆运动学+步态生成器)读取JSON,输出每只舵机的位置查找表,编译成motion.h嵌入固件。新增一款机器人,只需要写一份JSON。

固件架构:一份代码跑三款

固件用Arduino写,核心是一个非阻塞运动引擎。19种内置动作——八个方向行走、快进快退、原地旋转、攀爬步态、body pitch/roll/yaw和扭转。步速可调(20%到100%),低速时固件自动在查找表帧之间插值,保证慢走也平滑。

通信走WiFi UDP端口1234。指令协议很精简:0xA5是动作指令(6-7字节),0xA6是实时位姿流(44字节,18关节角度),0xA7是会话控制,0xA8是版本查询。所有包小端序、无填充。机器人500ms没收到动作指令自动回standby,位姿流断了1秒也回standby。这个故障保护设计很实际——WiFi断了机器人不会一直走。

浏览器校准功能是加分项。连上机器人的WiFi,打开192.168.4.1,在Calibrate页面用加减按钮微调每只舵机的偏移量,偏移量存Flash,不用重新编译。这省去了传统舵机校准里反复烧代码的麻烦。

Hexapod Link:桌面仿真器联动真机

Hexapod Link是这个项目的另一个仓库(MIT协议),基于mithi/hexapod-robot-simulator扩展而来。它能在3D视图里画出机器人、重心和支持多边形,支持正逆运动学实时计算。连上真机后可以逐关节调姿、逐帧播放步态,然后直接把位姿流发给机器人执行。

连接后仿真器先请求机器人的配置(GET /robot_config),拿到机型名、固件版本、舵机范围、腿几何等参数,自动调整仿真模型匹配真机。Nougat、Mochi、Macaroon或自定义机型都能用,不用改仿真器代码。配置会缓存,离线也能用。

位姿流传给真机时,关节角度会先按机型的机械限位裁剪,再按每腿的镜像关系转换成舵机tick值,100Hz发送频率。机器人在50Hz舵机循环上做slew limit,大幅跳变会变成平滑过渡。这个设计避免了"仿真里稳、实机上翻"的问题。

Hexapod Link有浏览器版和桌面版(Windows/Linux),桌面版用PyInstaller打包约130MB。没有真机也能玩——tools/fake_robot.py可以模拟硬件响应,测试套件覆盖运动学、流协议和配置读取。

设计哲学:家用打印机能打、手工能修

项目的打印设计有几个值得注意的细节。打印层方向沿受力方向排列,把行走时的交变应力分散到层内而不是层间。关节连接点做了加强,避免应力集中。机身重心居中、走线短,六腿受力均匀。零件之间用互锁结构连接,少用胶水,方便拆修。材料用PLA或PETG就行,不需要碳纤维或尼龙。

开源协议分两部分:机器人和固件GPL-3.0,Hexapod Link仿真器MIT。所有STL文件、BOM、接线图、组装指南都在GitHub上。rookidroid.com还提供成品控制器板和3D打印件售卖,方便不想自己折腾硬件的人。

适合谁

如果你想做一只六足机器人,Hexapod家族最大的优势是"一款固件跑全系列"——不用为不同机型维护不同代码。Mochi最小最适合桌面展示,Nougat是性能和尺寸的最佳平衡,Macaroon适合需要大载荷的场景。Hexapod Link仿真器让你在不动真机的情况下调试步态,这对学生和教学场景很有用。

不足之处:三款都走WiFi AP直连模式(机器人做热点),没有Mesh或STA模式,不能接入家庭路由器。舵机用的是消费级产品,长时间高强度运行可能需要更换。固件19种内置动作没有提供用户自定义动作接口——想加新步态得改路径工具重新生成查找表。

项目仓库在GitHub rookidroid/hexapod和rookidroid/hexapod-link,组装指南在rookidroid.com(10月8日查)。


作者:野生极客一枚
链接:https://www.aiddithome.com/p/18b2ec0ddb19ed.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
天快亮了
1楼 · 2026-10-26 13:08:15

Mochi那个体型最适合放桌上当摆件,就是MG92B舵机长时间跑可能撑不住

入门没多久的新手
2楼 · 2026-10-26 13:08:15

WiFi故障保护设计很实际,断了自动回standby,比那种一直走到没电的靠谱

锡点
3楼 · 2026-10-26 13:08:14

Hexapod Link仿真器能直连真机挺方便,调步态不用反复烧固件到板子上

老张装机
4楼 · 2026-10-26 13:08:13

一份JSON定义整机参数这个设计思路挺好的,之前自己写步态算法改一个参数要翻半天代码