ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Petoi Quaddle:用软件定义四足到双足的运动模式切换

Petoi Quaddle:用软件定义四足到双足的运动模式切换 1. 从“四足”到“双足”Petoi Quaddle 到底想解决什么问题如果你玩过 Petoi 家的 Bittle 或者 Nybble大概率会对那种“小身材、大能量”的四足机器人印象深刻。舵机驱动、开源主控、图形化编程一套下来既能当桌面宠物又能当 STEM 教具。但四足机器人有个天然的局限它的运动模式高度依赖四条腿的协同想让它像人一样“站起来”或者“单腿跳”几乎不可能。Petoi Quaddle 这个项目从名字就能看出端倪——“Quad”是四足“Waddle”是摇摇摆摆地走。合在一起它想做的其实是一个从四足向双足过渡的形态。你可以把它理解成一只“会站起来的机器狗”平时用四条腿稳定行走遇到需要展示、互动或者跨越特定障碍的场景时它能收起前腿用两条后腿直立行走甚至做出一些简单的平衡动作。这个项目的核心价值不在于“造一个双足机器人”本身而在于用极低的成本和极简的机械结构实现四足与双足两种运动模式的切换。市面上能直立行走的双足机器人要么是动辄上万的科研平台要么是结构复杂、调试门槛极高的开源项目。Quaddle 的思路是保留四足机器人的舵机布局通过软件层面的步态规划和重心控制让同一套硬件“兼职”双足模式。适合谁来参考这个项目三类人最值得看一是已经入手 Petoi 系列产品、想进一步折腾的玩家二是做 STEM 教育、想找一个能讲清楚“步态规划”和“重心控制”的教具开发者三是机器人方向的初学者想通过一个具体项目理解舵机驱动、IMU 反馈和运动学解算的基本逻辑。它不需要你有很深的数学功底但需要你愿意动手调参数、试步态。2. 核心设计思路拆解为什么是“摇摆”而不是“行走”2.1 四足与双足的运动学差异四足机器人的稳定行走本质上是一个静态稳定问题。只要保证任意时刻至少有三条腿着地重心投影落在支撑三角形内机器人就不会倒。Petoi 的四足步态比如 crawl gait就是基于这个原理每次只抬一条腿另外三条腿构成一个稳定的三角形支撑面。双足机器人则完全不同。它面对的是动态稳定问题——单腿支撑期重心必须快速移动到支撑脚上方否则就会往一侧倒。人类走路时身体会自然前倾、摆动双臂来抵消角动量这些动作在舵机驱动的机器人上很难复现。Quaddle 的聪明之处在于它没有试图让机器人“像人一样走路”而是选择了**“摇摆式直立”**。具体来说机器人用两条后腿站立通过髋关节的左右摆动来调整重心配合前腿收起后的配重变化实现一种“摇摇晃晃但不倒”的直立状态。这种模式在运动学上更接近“倒立摆的周期性摆动”而不是真正的双足行走。2.2 硬件复用的取舍逻辑为什么不在硬件上做改造比如加一个可伸缩的第三支撑点或者换用更大扭矩的舵机我实际拆过 Petoi 的舵机布局Bittle 用的是 8 个舵机每条腿 2 个Nybbble 是 8 个微型舵机。Quaddle 如果要在硬件上做双足改造至少需要增加髋关节的侧摆自由度或者换用金属齿轮舵机来承受更大的扭矩。但这样一来成本会翻倍而且失去了 Petoi 系列“开箱即用”的优势。所以 Quaddle 选择了一条更务实的路硬件不动软件来凑。通过调整舵机的中位角度、限制运动范围、重新规划步态周期让同一套舵机在四足模式下保持原有性能在双足模式下牺牲一部分速度换稳定性。这种取舍的代价是双足模式下的移动速度很慢大概只有四足模式的三分之一但好处是零硬件改动所有 Petoi 用户都能直接升级固件体验。2.3 重心控制的实现路径双足直立的核心是重心控制。Quaddle 用了两个手段一是IMU 反馈Petoi 主板上自带六轴陀螺仪和加速度计可以实时读取俯仰角和横滚角二是舵机角度微调通过 PID 控制器不断修正髋关节和膝关节的角度让重心投影尽量落在支撑脚范围内。这里有个细节值得注意Quaddle 的 PID 参数不是固定的而是根据电池电压动态调整的。因为舵机的扭矩和响应速度会随电压下降而变化如果 PID 参数写死电池电量低的时候机器人就会抖得厉害。这个设计思路在开源机器人项目里不多见但对实际使用体验影响很大。3. 核心细节解析与实操要点3.1 舵机中位校准一切步态的基础不管你是做四足还是双足舵机中位校准都是第一步。Petoi 的官方工具里有一个“校准模式”可以让所有舵机回到 90 度中位然后你手动安装腿部的连接件确保每条腿的初始角度一致。但这里有个坑校准必须在电池满电状态下做。我试过在电量 60% 的时候校准结果充满电之后机器人走路会往右偏。原因是舵机在低电压下的实际角度和满电时有偏差校准时的“中位”到了满电状态就不是中位了。所以我的习惯是充满电校准然后立刻测试如果偏了就重新校准一次。校准完成后建议用记号笔在舵机臂和舵机壳体上画一条对齐线。这样以后如果舵机被外力撞歪了你可以快速判断是否需要重新校准不用每次都连电脑看角度。3.2 双足模式的步态参数Quaddle 的双足模式本质上是一个周期性摆动过程。一个完整的摆动周期包括重心右移、左腿抬起、左腿放下、重心左移、右腿抬起、右腿放下。每个阶段的持续时间、舵机角度变化量、IMU 反馈阈值都是可以调的。我实测下来比较稳的一组参数是参数推荐值说明摆动周期800ms太短会抖太长会倒重心偏移量15度髋关节左右摆动的角度抬腿高度20度膝关节弯曲角度IMU 横滚阈值±8度超过这个角度就触发修正PID 比例系数0.8根据电池电压动态调整这些参数不是绝对的因为每台机器人的舵机状态、电池电压、地面摩擦力都不一样。我的建议是先把摆动周期调到 1000ms确保机器人能站稳然后逐步缩短周期直到出现明显抖动为止再往回加 100ms。3.3 前腿收起的配重问题Quaddle 在双足模式下会把前腿收起来贴在身体两侧。但前腿的重量会改变机器人的重心位置如果不做补偿机器人会往后仰。解决办法有两个一是调整后腿的站立角度让身体略微前倾抵消前腿后移带来的重心偏移二是在代码里加一个配重补偿系数根据前腿收起的角度动态调整髋关节的中位位置。我试过第一种方法简单但不够精确第二种方法需要改代码但效果更好。如果你不想改代码还有一个土办法在前腿收起的位置加一点配重比如用橡皮筋绑两个小螺母。这样重心会往前移机器人站立时更稳。缺点是增加了整体重量四足模式下耗电会快一点。4. 实操过程与核心环节实现4.1 环境准备与固件烧录你需要准备的东西一台 Petoi Bittle 或 Nybble、一根 USB 数据线、一台电脑Windows/Mac/Linux 都行、Arduino IDE 或者 Petoi 官方的桌面应用。第一步是烧录 Quaddle 固件。Petoi 的固件是基于 Arduino 框架的你可以直接从官方仓库下载源码用 Arduino IDE 打开选择对应的开发板Arduino Nano 或者 ESP32取决于你的主控版本然后编译上传。这里有个细节烧录前一定要断开舵机电源。我试过带着舵机烧录结果舵机在烧录过程中乱动把一条腿的齿轮打滑了。正确的做法是拔掉电池只通过 USB 供电给主控烧录完成后再接上电池。4.2 四足模式的基础测试烧录完成后先别急着切双足。用官方 App 或者红外遥控器让机器人走几步四足步态确认所有舵机方向正确、没有异响、走路不跑偏。如果发现某条腿方向反了不用重新烧录可以在配置文件里改舵机方向参数。Petoi 的配置文件里有一个servoDirection数组把对应的值从 1 改成 -1 就行。四足模式测试通过后再进入双足模式。切换方式通常是通过遥控器上的某个按键组合或者通过串口发送指令。具体指令取决于你用的固件版本我建议先看一遍官方文档里的指令表。4.3 双足模式的调试步骤双足调试我一般分三步走第一步静态站立。让机器人用两条后腿站立前腿收起观察它能不能保持平衡。如果往左倒就减小左髋的偏移量如果往右倒就增大左髋的偏移量。这一步的目标是让机器人能站住 10 秒以上不倒。第二步原地摆动。在站立的基础上让机器人左右摆动重心但不抬腿。这一步是测试 IMU 反馈和 PID 修正是否正常工作。如果机器人摆动时抖动厉害说明 PID 比例系数太大了需要调小。第三步迈步行走。在摆动的基础上加入抬腿动作。一开始可以把抬腿高度设得很低比如 10 度步幅设得很小等稳定了再逐步加大。我试过一上来就设 30 度抬腿结果机器人直接往前扑倒了。4.4 电池与续航的实测数据双足模式比四足模式耗电快得多。我用一块 800mAh 的锂电池测试四足模式下能连续走 40 分钟左右双足模式下只能走 15 分钟。原因是双足模式下舵机需要频繁微调来维持平衡电流波动很大。如果你要长时间演示双足模式建议备两块电池或者用 USB 供电但 USB 供电的电流有限舵机扭矩会下降机器人会站不稳。我个人的做法是演示前充满电演示时每 10 分钟休息一下让舵机降温。5. 常见问题与排查技巧实录5.1 机器人站不起来直接往前扑这是最常见的问题。原因通常是重心太靠前或者后腿的站立角度不对。排查顺序先检查前腿是否完全收起如果前腿没收紧重心会往前移再检查后腿的髋关节角度如果角度太小身体会前倾。我的经验是把后腿的髋关节角度调到比四足模式大 10 到 15 度让身体略微后仰这样前腿收起后重心刚好落在支撑脚上方。5.2 双足模式下抖动严重抖动通常来自三个地方PID 参数太激进、IMU 数据噪声大、舵机齿轮间隙大。先调 PID把比例系数从 0.8 降到 0.5如果抖动减轻了说明是参数问题。如果还抖检查 IMU 的安装是否牢固Petoi 的 IMU 是焊在主板上的一般不会松但如果你摔过机器人可能会虚焊。最后检查舵机齿轮用手轻轻转动舵机臂如果感觉有虚位说明齿轮磨损了需要更换舵机。5.3 走路时往一边偏这个问题在四足模式下也可能出现但在双足模式下更明显。原因通常是某条腿的舵机中位不准或者左右腿的摩擦力不一致。排查方法让机器人走直线观察它往哪边偏。如果往左偏说明右腿的步幅比左腿大或者左腿的舵机中位偏了。解决办法是重新校准舵机中位或者在代码里给左腿的步幅加一个补偿系数。5.4 常见问题速查表现象可能原因解决方法站不起来往前扑重心太靠前调大后腿髋关节角度抖动严重PID 太激进降低比例系数往一边偏舵机中位不准重新校准走几步就倒摆动周期太短加长到 1000ms舵机发热严重频繁微调降低 IMU 反馈频率电池续航短双足模式耗电高备两块电池5.5 几个容易被忽略的细节第一个细节是地面材质。Quaddle 在木地板上走得最稳在地毯上容易打滑在瓷砖上会滑得更厉害。如果你要在光滑地面上演示建议在脚底贴一层橡胶垫增加摩擦力。第二个细节是舵机温度。双足模式下舵机持续工作温度会升到 50 度以上。虽然 Petoi 的舵机有过热保护但长期高温会加速齿轮磨损。我的做法是每玩 15 分钟就停 5 分钟让舵机自然冷却。第三个细节是固件版本。Quaddle 的步态算法在早期固件里不太稳定我试过 1.0 版本双足模式走三步就倒。后来升级到 1.2 版本稳定性明显提升。所以如果你拿到的是旧版固件建议先升级再调试。6. 从 Quaddle 延伸出去的玩法Quaddle 本身是一个形态切换的实验但它打开了一个思路用软件定义机器人的运动模式。同样的硬件通过不同的步态规划可以实现四足行走、双足直立、甚至像蛇一样扭动如果你把四条腿都收起来只靠身体摆动前进。我试过把 Quaddle 的双足模式改成“单腿跳”只用一条后腿站立另一条后腿收起通过快速伸缩膝关节实现跳跃。这个玩法非常不稳定十次里能成功两次就不错了但每次成功跳起来的时候那种成就感是四足行走给不了的。另一个方向是加入视觉反馈。Petoi 的主板有扩展接口可以接一个摄像头模块。如果你能让机器人通过摄像头识别前方障碍物然后自动切换四足和双足模式来跨越障碍那就从一个“玩具”变成了一个“移动平台”。这个方向我还在折腾目前能做到识别到障碍物后停下来但自动切换模式的成功率还不高主要是双足模式下的移动速度太慢来不及调整姿态。如果你也在玩 Quaddle我的建议是先把四足模式玩透再碰双足。双足模式的调试周期比四足长得多而且每次改参数都要重新测试很容易让人烦躁。但一旦调稳了看着它摇摇晃晃地站起来那种感觉就像第一次看到自己写的代码跑通一样值得。
返回列表