开这次从零设计一台小型四足机器人,我先画了两个星期的机械结构图,而不是急着买电机。原因很简单:四足机器人是个强耦合系统,机械结构决定了运动学模型的精度、控制算法的余量,甚至整机成本的上限。很多人最后跑不直、走不稳、步态乱跳,八成问题不在PID和MPC,而在机械本体上。
这篇文章我会从机械结构的角度,把四足机器人从头到尾拆一遍。内容包括腿部构型怎么选、自由度怎么分配、舵机和材料怎么匹配、关键尺寸怎么估算,以及我自己踩过的装配和调试坑。适合两类人看:一是刚入门想做一台能走路的小四足,二是已经在调步态但总觉得结构“差点意思”的同学。
1. 四足机器人机械结构的设计逻辑
四足机器人机械结构设计的本质,是把“四条腿按预期轨迹运动”这件事变成现实。它不像轮式机器人那样只需要考虑驱动和悬挂,腿部系统需要同时解决支撑、摆动、缓冲和姿态调整的问题。所以在动手画图之前,你首先要理解几个核心设计逻辑。
1.1 为什么是四条腿,机构上有什么优势
四足比双足稳,比六足、八足简单,这是它的天然平衡点。从机械设计角度看,四足机器人可以视为一组并联和串联机构的组合:机身是刚性平台,四条腿是四个独立的串联机械臂,通过足端与地面的接触力支撑机身。每条腿都是一个“开链机构”,自由度越多,末端(足端)的工作空间越大,控制复杂度也越高。
在静态稳定条件下,四足机器人需要至少三条腿着地才能保持稳定,第四条腿可以自由摆动。这意味着机械结构必须有足够的刚度来支撑“三腿站立”时的力矩,同时还要保证摆动腿的惯性尽量小,不然步态频率一高,机身就会振动。
我之前设计时定了一个原则:整机结构刚度优先,关节运动范围其次,最后才是外观。很多新手反过来,先看外形好不好看,结果做出来的机器人走路像喝醉了酒——本质上是结构刚度不足和转动惯量过大导致的,而不是程序写得不好。
1.2 经典腿部构型对比:哺乳类、爬行类、螃蟹类
四足机器人的腿部构型主要有三种,分别模仿不同动物:哺乳类构型、爬行类构型和螃蟹类(或称为外翻型)构型。三种构型的核心区别,在于髋关节的旋转轴线方向和膝盖的弯曲方向。
哺乳类构型是最常见的,也是我现在用的方案。它的特点是:膝关节向后弯曲,髋关节侧摆轴接近竖直,大腿主要在矢状面(前后方向)内运动。这种构型的优点是重心低、腿部摆动惯量小、能跑能跳,适合动态步态。缺点是髋关节需要承受较大的弯矩,对髋部结构强度要求高。
爬行类构型类似蜥蜴,腿向身体两侧伸展,膝盖向侧面弯曲。这种构型静态稳定性好,结构最简单,底盘很稳,适合低速探测。但它的腿部工作空间偏向身体两侧,前后方向的步幅不大,跑不快,而且在崎岖地面很难做出优雅的动态调整。螃蟹类构型介于两者之间,关节轴方向比较特殊,一般用于特种地形,这里不展开。
我建议入门首选哺乳类构型,原因有两点:一是它的前后向步幅大,便于后期跑各种步态;二是大量的开源项目和论文都基于这种构型,你调试遇到问题,查资料容易找到对标参考。
| 构型类型 | 膝关节方向 | 髋关节结构 | 稳定性 | 动态能力 | 复杂度 | 适合场景 |
|---|---|---|---|---|---|---|
| 哺乳类 | 向后弯曲 | 侧摆+前后摆 | 中等 | 强 | 较高 | 跑步、跳跃、复杂地形 |
| 爬行类 | 侧向弯曲 | 侧向伸展为主 | 高 | 弱 | 低 | 低速巡检、平坦地形 |
| 螃蟹类 | 斜向弯曲 | 多轴复合 | 中等 | 中等 | 高 | 特定越障场景 |
1.3 自由度分配:12自由度是最佳起点
四足机器人的自由度分配,直接决定腿部能做什么动作。每条腿至少需要两个自由度才能完成“抬起-迈出-落下”的基本动作,但这只能做简单爬行。如果每条腿有三个自由度,分别是髋侧摆、髋屈伸、膝屈伸,那么腿部末端就具备完整的平面内位置控制能力,加上侧摆对机身高度和横向姿态进行调整,12自由度的四足机器人就能实现大多数步态,包括行走、小跑、跨障和转弯。
我见过有些极简方案用每条腿两个舵机,整机8个自由度,做成“爬爬虫”没有问题,但如果想让它站立、小跑或在不平地面上调整姿态,自由度不够就会显得非常吃力。反过来,如果每条腿加到四个自由度(增加踝关节),结构重量和成本都会明显增加,对入门项目来说意义不大。
这里有一个非常关键的机械设计决策,叫“冗余自由度取舍”。12自由度的腿没有踝关节,足端直接是刚性连杆加橡胶脚垫。这带来的好处是控制模型简单,重心容易估算,坏处是落地的缓冲能力差,需要用足端弹性材料去弥补。我做设计时选择保留12自由度,并给小腿增加了一个简单的弹性足端缓冲结构,实际效果很理想。
2. 关键部件选型与材料处理
机械结构设计中的核心选型,说白了就是三件事:用什么动力、用什么材料、用什么连接方式。这三件事会互相制约。比如你选了一个大扭矩舵机,结构件就得做厚,机身重量增加,接着又要换更大的舵机——我见过不少项目死在这个循环里。
2.1 驱动方案:舵机、伺服电机、减速电机怎么选
四足机器人的关节驱动方案主要分成三类:舵机(位置伺服)、直流减速电机加编码器、无框力矩电机。从成本和难度考虑,入门阶段建议直接选舵机。
舵机的本质是“电机+减速齿轮+位置反馈+控制电路”一体化组件,你给它一个PWM或数字信号,它就转到指定角度并保持住。市面上常见的舵机分为模拟舵机和数字舵机,模拟舵机便宜但响应慢,数字舵机响应快、定位准,价格也高一些。对四足机器人来说,我建议至少选数字舵机,最好带金属齿轮和双滚珠轴承,否则连续摆动和高频换向很容易扫齿。
直流减速电机加编码器的方案,优点是转速快、扭矩余量大,适合做高速动态运动,后期还可以通过编码器实现力矩闭环。但它需要自己搭驱动板和位置环,入门门槛高,而且要额外设计减速机构和编码器安装座,机械复杂度大增。
无框力矩电机是目前高性能四足机器人的主流方案,扭矩密度高、响应极快,MIT的迷你猎豹就是这种路线。但是你需要自己设计外壳、散热、编码器安装和减速器,没有机械加工条件,基本不要碰。
我在微型四足机器人上用的是MG996R级别的大扭矩舵机,单关节标称扭矩在20千克力·厘米以上。选它不是因为性能好,而是因为它成熟、便宜、替换方便。等步态算法跑顺之后,再换高端的空心杯数字舵机,效果会立刻上一个台阶——这个升级路径很平滑,不会让你浪费前期的结构和控制代码。
2.2 结构材料:3D打印件和碳纤维杆怎么搭配
材料选择决定整机刚度和重量的平衡。全金属机身不是不行,但对入门项目来说加工成本高、迭代慢、布线困难。纯3D打印机身则容易在关节部位疲劳开裂,尤其是舵机耳片和轴承座位置。
我最后采用的方案是“3D打印外壳+碳纤维板骨架”的混合结构。机身底板用2毫米碳纤维板,舵机支架和腿部连杆用3D打印PLA或PETG,碳纤维板负责整体刚度,打印件负责复杂形状和轻量化。
如果你手头只有3D打印机,那么壁厚、填充率和层纹方向都要注意。打印腿部连杆这类受弯部件,打印方向要尽量让层纹垂直于受力方向,不能顺着受力方向叠层,否则非常容易沿层纹断裂。填充率我设置在60%以上,外壁层数不低于4层,这样强度才够。
PLA材料有个缺点,是温度稍高或受连续冲击时容易变形和崩裂。PETG强度和韧性要好很多,但打印时容易拉丝,需要仔细调回抽参数。预算有限的话,也可以用PLA+,韧性比普通PLA好不少,但不及PETG。腿部末端缓冲垫可以剪一段硅胶管套上去,比打印脚垫耐用得多。
2.3 动力估算:关节扭矩怎么算才不会选错舵机
很多新手选舵机只有一个标准:贵,扭矩大。这其实是误区。选扭矩前你需要大概估算一下关节的实际负载。
以一个整机重量1.5千克的小型四足机器人为例,静态站立时,四条腿均匀分担,每条腿约承重3.7牛顿。假设膝关节舵机到足端的力臂是0.1米(一般小型腿部尺寸也就这么长),那么静态下膝关节需要的扭矩约是0.37牛顿米,也就是约3.8千克力·厘米。
但这只是静态值。实际运动时,摆动腿需要加速,支撑腿需要瞬间缓冲,峰值扭矩往往是静态值的4到6倍。再加上关节传动效率和齿轮箱损耗,我按静态值的8倍做预算,最终单关节扭矩选在20千克力·厘米以上,基本能覆盖小跑强度。
记住一条经验公式:关节峰值扭矩估算 = (机身重量分配到该腿的重量 g 足端到关节的水平距离) 安全系数,其中安全系数至少取4~6。
例如:重心在支撑腿足端正上方偏5厘米,单腿承重4牛顿,峰值扭矩 = 4牛 × 0.05米 × 6倍 = 1.2牛顿米,即12.24千克力·厘米。选20公斤·厘米级别的舵机就很安心,不需要盲目上50公斤级别的巨无霸。
| 整机重量 | 单腿承重 | 足端力臂 | 静态扭矩 | 选型建议(峰值安全系数6) |
|---|---|---|---|---|
| 0.8千克 | 约2牛 | 0.08米 | 0.16牛·米 | 10千克力·厘米以上 |
| 1.2千克 | 约3牛 | 0.1米 | 0.3牛·米 | 18千克力·厘米以上 |
| 1.5千克 | 约3.7牛 | 0.1米 | 0.37牛·米 | 20千克力·厘米以上 |
| 2千克以上 | 约4.9牛 | 0.12米 | 0.6牛·米 | 35千克力·厘米以上 |
3. 从设计图到能跑的样机:完整实操流程
机械结构从图纸到实物,中间有大量琐碎的细节,任何一个环节出了问题,都会直接反映在最后的步态表现上。下面我会按我的实际操作顺序,把从确定参数到静态调试的流程完整过一遍,这部分可以直接照着做。
3.1 画图前先定尺寸:身高、步距和机身参数
画CAD之前,先把这几个关键参数定下来:站立高度(机身底面到地面的高度)、步距(单步迈出的水平距离)、机身尺寸和大致重心位置。
站立高度决定了腿部总体尺寸。以一台总高约15厘米的小型四足为例,我定的站立高度是8厘米。这个高度下,小腿长度可以取8厘米,站立时小腿基本垂直地面,大腿与水平面呈45度左右的前倾角。大腿长度我取9厘米,这样腿部展开后能覆盖较大的水平运动范围。
步距主要和腿长相关。大腿和小腿构成一个二连杆机构,足端的水平可达范围基本等于大腿长度加小腿长度在水平面的投影。9厘米大腿加8厘米小腿,理论上的前后步距最大能到15厘米左右,但实际步态运行中一般只用一半,即7到8厘米,否则关节角度变化过大,舵机负载陡增。
机身尺寸要和腿长匹配。机身太宽,转弯半径大;机身太窄,四条腿容易在行走时互相干涉。我用的机身碳纤维板尺寸大约是20厘米长、12厘米宽,前后腿间距约10厘米,左右腿间距约9厘米。
3.2 腿部运动学验证:用坐标关系确认工作空间
设计这一步,很多人跳过,直接画模型,然后装出来发现腿碰机身,或者某个姿势下舵机卡死。正确做法是先做几何运动学验证。
把每条腿简化为髋关节(含侧摆和前后摆)和膝关节两个旋转轴,假设大腿长度L1,小腿长度L2。足端位置P(x, z)在髋关节坐标系下可以写成:
x = L1 sin(hip_angle) + L2 sin(hip_angle + knee_angle)
z = -L1 cos(hip_angle) - L2 cos(hip_angle + knee_angle)
其中hip_angle是髋关节前后摆角,knee_angle是膝关节摆角。拿Excel或Python简单算一下你设计的腿长在允许关节角度范围内的足端点阵,看看工作空间是否覆盖你需要的站立高度和步距。
我实际试过,用Python画一个工作空间点阵图,几分钟就能看出问题。例如,如果大腿和小腿长度一样,工作空间在前后方向会呈现不对称的扇形;如果长度差得太多,工作空间会偏向一侧,这是你后期步态算法怎么补偿都救不回来的。
另外还要检查机械干涉:在每个关节角度组合下,大腿、小腿和舵机之间会不会碰撞。最简单的方法是在CAD里做一个装配体,把关节角度从-45度到+45度按5度步距扫一遍,人工检查有没有干涉面。
3.3 CAD建模和装配细节:间隙、螺柱和走线
CAD建模时,注意两个关键点:轴承位的压缩量和舵机耳片的强度。舵机耳片是舵机外壳和结构件的连接桥梁,受力集中,非常容易断裂。我一般会在耳片周围加一圈加强筋,并且打印时使用更高的外壁层数。
关节处,我不用螺丝直接磨舵机输出轴,而是加了轴承过渡。具体做法是:在大腿结构件内嵌一个608微型法兰轴承,轴承内孔与舵机盘配合,轴承外圈与大腿结构固定。这样舵机的负载由轴承承受,输出轴不需要承担弯矩,可以大幅降低扫齿和抖舵的概率。
装配顺序也很重要。我的安装顺序是:先装膝关节舵机到小腿,再装大腿与膝关节舵机的连接,再装髋关节屈伸舵机、髋侧摆舵机,最后把整个腿部总成安装到机身底板上。每装完一条腿,手动转动所有关节确认运动顺畅、无卡点,不能等四条腿全部装上后再检查,到时候返工非常痛苦。
走线是很多人忽略的细节。舵机线如果和运动部件缠绕,轻则阻碍运动,重则拉断接线。我建议所有舵机线都从结构件内部的线槽走,线槽宽度刚好卡住舵机线即可,然后在机身上留一个集中理线区,用魔术贴或者小扎带分束固定。这样不仅美观,后期调试也方便。
3.4 快速测试流程:先单腿,再站立,最后行走
装上四条腿之后,千万别急着跑步态代码。我习惯按下面的顺序做静态测试:
第一步,校准舵机中立位。给所有舵机上电,发送90度(或0度)中立信号,手动调整舵盘位置,让每条腿的髋侧摆、髋屈伸和膝关节都处于设计的中立位置。这一步很关键,如果初始角度不对,后续所有运动学换算都是错的。
第二步,单腿摆动测试。把机器人侧放,编写代码依次让每条腿的每个关节单独从-30度到+30度摆动,观察运动方向和代码指令是否一致,关节是否有异响,舵机是否发热过快。
第三步,四条腿同时站立。让所有腿转到支撑姿态,把机器人放在地面,用手轻轻按压机身,感受四条腿是否同时着地,机身是否水平。如果有一侧悬空,需要调整对应腿的连杆长度或舵机角度偏置。
第四步才是步态测试。从最简单的两步态(两腿同时摆动)开始,速度设得很慢,跑通后再慢慢提速、切到四拍步态。
我自己的经验是,前三步至少要花半天时间慢慢调,每一步都不要省略。节省下来的调试时间会在后面的步态阶段成倍返还给你。
4. 常见问题与排查技巧实录
机械结构从设计到落地,问题几乎是必然出现的,关键是你要有一套快速的排查方法。下面这几个坑,是我和不少朋友在实际项目中反复遇到的,整理出来给你当速查表。
4.1 机器人一直往一侧倒,问题可能在重心而不在程序
如果你确认四条腿都着地、舵机中立位也没问题,但机器人每次放下都往同一侧倒,那大概率是重心偏了。电池安装位置是最常见的原因。很多人在布置电池时随手一放,结果整机重心明显偏移到一侧,而你的步态算法还假设重心在几何中心,自然走不稳。
解决方法是把电池、控制板等大质量部件尽量对称布置,然后用“两指测试法”去找重心:双手食指顶住机身底板的两侧,慢慢调整手指位置,直到机器人能水平挂在两个手指上,这个点就是实际重心。如果重心偏离几何中心超过5毫米,就需要挪部件或加配重。
4.2 关节抖动和结构共振,先看刚度而不是调PID
机器人在步态运行中,如果某个速度下身体振得厉害,很多人第一反应是去调控制参数。但在机械结构上,这一步反而是浪费时间的。振动往往是结构共振导致的,频率和腿部摆动频率重合了。
检查顺序是:先用手拧一下每个结构件,看有没有明显的弹性变形;再检查舵机安装螺丝是否松动;最后检查大腿和小腿连杆是不是有细微裂缝。只要是结构刚度不足的问题,调PID只能压住一时,速度一变又会抖回来。
我遇到过最经典的案例,是打印大腿内部填充率只有20%时,机器人一到小跑速度(大约每秒两步)就明显横向摆动。后来把腿部填充率提到60%,问题直接消失,控制代码一行没改。结构问题必须靠结构解决,这是机械设计的铁律。
4.3 舵机扫齿和发烧的原因,往往不在舵机本身
舵机扫齿和发热严重,很多人直接归因于舵机质量差。但从我拆过的几十台机器人来看,真正原因经常是机械安装偏心。舵机输出轴和舵盘如果不垂直,每转一圈就会产生一个附加的周期力矩,齿轮箱内部受力忽大忽小,时间一长必然扫齿。
安装舵盘时,务必先把舵机输出轴的中位点找准,然后用舵盘上的齿形面慢慢压进去,不要用锤子敲或大力拧螺丝,否则齿面会偏。舵机安装座要确保输出轴线和关节转轴完全重合,这点在3D打印件上尤其容易出问题,因为打印收缩导致孔径变小时,强行压入轴承会把轴线顶偏。
发热方面,除了舵机负载过大之外,还有一个常被忽略的原因是关节活动范围超出了机械限位。每次舵机转到极限位置还在持续堵转,电流飙升,温度自然高。所以在上电测试前,仔细设置好每个关节的软限位角度,别让它真的顶到硬限位。
4.4 结构故障排查速查表
| 现象 | 常见原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 机器人向一侧倒 | 重心偏移 | 两指测试法确认实际重心 | 移动电池或加配重,让重心回到几何中心 |
| 特定速度抖动严重 | 结构共振或刚度不足 | 手按结构件查弹变形,检查打印填充率 | 提高填充率到60%以上,更换碳纤维板 |
| 舵机扫齿 | 安装偏心、载荷超限 | 检查舵机盘安装,测量关节实际负载 | 重新安装舵机盘,加轴承过渡,降低峰值速度 |
| 舵机发热很快 | 堵转或限位错误 | 上电后监听舵机声音,检查软限位 | 设置软限位角度,调整连杆长度避让极限位置 |
| 打印件断裂 | 受力方向与层纹平行 | 观察断裂面走向 | 改打印方向,加厚外壁,填充率提到60%以上 |
| 腿部运动范围变小 | 关节间隙过大或螺丝松动 | 手动晃动关节检查间隙 | 锁紧全部紧固件,必要时更换轴承 |
5. 机械结构调试中的独家心得
最后再分享几个不太容易从文档里学到的经验,都是我自己实际操作中积累下来的。
第一,关节间隙是所有低成本四足机器人的最大敌人。哪怕只是1到2度的虚位,到了足端就可能被放大成几毫米的误差,表现出来就是落地位置不稳定。所以在装配时尽可能减少台阶轴和套筒之间的径向间隙,能在关节处用轴承就不要直接用螺丝孔摩擦,这钱不能省。
第二,我建议你第一次组装完机器人后,先做一轮“静态站立+缓慢摆腿”测试,让每个关节在负载下跑20分钟,然后再把所有螺丝重新拧一遍。因为打印件和碳纤维板在受力后会有一点蠕变和磨合,首跑后重新紧固,之后结构就会稳定很多,你还不用频繁担心松脱。
第三,留好备用零件。腿部连杆这类受力件,打印时一次多打两套备用,因为你永远不知道它会什么时候、在哪个角度断掉。没有备用件,调试节奏一断,项目热情会消耗得特别快。
第四,机械结构的迭代一定要跟着步态测试结果来改,不要凭感觉。每次记录好当前结构的腿长、重心位置、关节间隙和振动特征,发现步态有问题时,优先回溯这些参数,它们大部分都可以在机械端找到原因。