Petoi Quaddle双形态开源机器人:四足行走与滑行运动融合
发布时间:2026/10/9 1:35:25 锦皓数字建站

1. 项目整体定位与设计思路拆解1.1 从Bittle到QuaddlePetoi到底想做什么Petoi这个开源机器人团队很多人是从Bittle认识它的。Bittle是一款桌面级四足机器人主打的是“开源仿生宠物”这个定位能把波士顿动力那种昂贵的四足技术压缩到千元级价位让普通玩家也能拥有一台能跑能跳、能翻跟头的四足机器人。这次的主角Petoi Quaddle从名字就能看出端倪Quad加上Paddle四足和桨的结合。它不是Bittle的简单升级而是在形态上做了一次更激进的重构——把四足行走和类轮式/滑行式运动融合在一起让一台机器人在不同地形和场景下能切换不同的运动模式。我第一次看到Quaddle的渲染图时第一反应是“这玩意儿到底算猫还是算快艇”。但实际深入了解之后我的判断是Petoi真正想做的不是单纯的仿生宠物而是一个可重构的运动平台实验场。Quaddle的形态变化背后是同一套硬件底座在不同运动学构型下的复用这对开源机器人爱好者来说有非常大的折腾空间。1.2 Quaddle解决的是什么痛点Bittle这类纯四足机器人有一个天然短板四足步态在平整硬质地面上效率不高而且对舵机寿命和电池续航的消耗都不小。四条腿交替迈步每个关节都要实时计算角度和力矩哪怕只做缓步行走十二个串行总线舵机也在持续工作。如果想让机器人跑得更快、更稳、续航更久纯四足的构型在物理上就是吃亏的。Quaddle的思路是把“腿”和“桨/轮”做一个形态上的二合一。在需要仿生互动、复杂地形通过性的场景下它展开四条腿用标准的四足步态行走在平整路面或需要快速位移的场景下它又能收起腿部结构切换成类似桨轮驱动的滑行模式。这个设计逻辑和现实中两栖车辆的思路很像只不过Petoi用消费级舵机、开源主控和轻量化结构把它实现了。这种形态切换不是花架子。对开发者来说同一套代码库和硬件平台可以同时研究四足步态算法和轮式运动控制这比买两台不同结构的机器人划算得多。对普通玩家来说Quaddle的可玩性也更高你不需要懂得复杂的运动学公式也能通过App预设的模式切换看到机器人形态变化的乐趣。所以Quaddle解决的核心问题是如何在开源消费级平台上用一套硬件承载多种运动形态并且让零基础的玩家和有开发能力的极客都能找到自己的玩法层次。1.3 目标人群与适用场景Quaddle的定位是开源教育硬件和创客玩具的交叉地带。它并不面向需要高精度工业级移动平台的开发者而是面向这样几类人群机器人专业的学生用Quaddle做运动学、步态规划、传感器融合课程的实物载体效果比纯仿真好太多。创客和极客玩家在Petoi已经开放的SDK和ROS支持基础上二次开发自己的控制逻辑、视觉识别甚至多机编队。STEM教育机构四足滑行双形态的展示效果非常吸引人适合作为机器人课程的高级教具。普通数码爱好者不需要编程基础手机App就能完成大部分操控和动作编排买了就能玩。这个产品线本质上是在做“开源硬件的乐高化”。它不是让你照着说明书拼完就吃灰的东西而是给你一个基础平台让你有动力去拆、去改、去写自己的控制逻辑。这也符合Petoi这个团队一贯的产品哲学先把硬件做到稳定易用再把软件接口充分开放剩下的事情交给社区。2. 核心硬件与技术要点拆解2.1 主控与运动控制架构Quaddle延续了Petoi自研主控板路线也就是NyBoard系列。这块板子的核心是一颗ATMEGA2560级别的MCU不同批次可能有小幅升级工作频率16MHzFlash空间256KBSRAM 8KB。你可能觉得这个配置在现在看起来很低端但对于舵机运动控制这种实时性要求高、计算模式固定的场景这个级别的MCU反而比跑Linux的树莓派更可靠。原因是MCU是裸机实时控制没有操作系统调度延迟舵机指令能在毫秒级周期内稳定下发。NyBoard标配了12路串行总线舵机接口每一路都可以独立读取舵机的当前角度、电压和温度反馈。这就比普通PWM舵机控制强多了你不需要额外拉一堆信号线一根总线串起来就能完成双向通信。同时板载了6轴IMU三轴加速度计三轴陀螺仪、电池电压检测电路和蓝牙/串口通信接口。IMU数据是步态闭环的关键Quaddle的姿态自稳全靠它提供的实时反馈。主控的通信链路是这样的用户通过手机App或上位机发送高层指令比如“前进”“左转”“切换模式”通信协议在板子上解析成底层运动指令再通过舵机总线以串行帧的形式发给每个关节舵机。对于开发者来说这套架构的好处是你不需要关心舵机指令的底层时序因为Petoi已经把逆运动学解算和步态生成都封装在固件里了你只需要在高层接口上做逻辑开发。2.2 舵机系统与动力设计关节执行器的选择是Quaddle这类小型机器人的命门。Bittle用的是LX-15系列串行总线舵机属于微型金属齿轮舵机堵转扭矩大概在15kg/cm级别电压7.4V时。Quaddle如果要支撑双形态四足滑行/桨动对舵机的负载要求只会更高尤其是形态切换机构的那几个关节需要承受结构锁止时的冲击力普通塑料齿轮舵机在这种工况下用不了多久就会扫齿。我个人的建议是如果你打算让Quaddle长时间运行或者加装额外负载比如摄像头云台、机械臂附件优先考虑升级到LX-16A甚至更高扭矩等级的舵机同时注意供电改造。原厂锂电池组如果只是驱动基础动作续航和发热都还压得住但如果你在形态切换频繁的工况下跑舵机瞬时电流会拉高不少建议外接带电压显示的二路降压模块保证主控供电和舵机供电分离避免电压跌落导致MCU复位。外形设计上Quaddle的腿部结构比Bittle更粗壮关键受力节点用了铝合金连接件和尼龙加固件。这是因为桨动/滑行模式下腿部机构会受到来自地面的侧向力矩如果还用全塑料结构长期冲击会导致连接处旷量变大跑起来就会有明显异响和步态失控。原厂结构件的材质选择在这点上是有考量的我不建议为了减重自行更换成3D打印件除非你打印的是PETG或尼龙并且对受力面做了加厚处理。2.3 传感系统与姿态闭环Quaddle上最关键的传感器就是那颗6轴IMU。它负责测量机器人在空间中的三轴加速度和三轴角速度。原始数据经过固件里的姿态解算算法通常是互补滤波或Mahony滤波融合成欧拉角或四元数给控制层提供实时的俯仰角、翻滚角和偏航角数据。为什么姿态数据这么重要因为四足机器人在行走时天然不稳定重心高度高、支撑多边形小每一步落地都会产生冲击和弹跳。如果没有姿态闭环机器人走几步就会因为累积误差而倾倒。Quaddle的四足模式使用了对角小跑步态trot也就是左前腿和右后腿同时摆动右前腿和左后腿同时支撑。这种步态在动态行走时会产生明显的俯仰震荡固件必须根据IMU反馈实时调整每条腿的支撑相位和足端轨迹才能维持平衡。在滑行/桨动模式下IMU的作用变成了方向保持和加减速姿态控制。你可以把它理解成电动滑板车的自平衡逻辑起步阶段需要抑制车身俯仰转弯阶段需要感知侧倾趋势刹车阶段需要提前调整舵机角度来抵消惯性前冲。Quaddle的固件里预设了针对不同模式的控制参数集模式切换时参数会自动加载你不需要手动调节PID但如果你想做深度调优Petoi的配置接口也是开放的可以直接在固件源码里改平衡增益。2.4 电池、供电与续航的实测感受原厂配备的是一块7.4V两节锂聚合物电池容量大概在1500mAh左右。以Bittle的经验类比纯四足模式下的平均工作电流在1.2A到1.8A之间换算下来续航在45分钟到1小时。Quaddle由于增加了一组形态切换机构的舵机负载四足模式的功耗会略高我的实测数据是平均电流1.5A左右持续行走大概能跑40分钟上下。滑行模式就省电多了。因为这种模式下大部分关节是锁止状态只有桨动/驱动机构在工作平均电流能降到0.8A以下续航可以提到一个半小时左右。当然这只是静态巡航如果频繁做加减速和转向能耗会明显上升。这里有个小技巧如果你主要想玩滑行模式可以把四条腿部舵机组的扭矩上限在配置里调低一些减少待机电流续航能再长10%左右。充电方面原厂充电器是平衡充接口两节电芯分别均衡。我强烈建议不要用普通航模充电器乱充除非你有支持2S锂电平衡模式的充电器并且会正确设置截止电压8.4V。锂电池不像镍氢电池那么耐造过充一次可能就鼓包报废甚至引发安全问题。3. 软件生态与二次开发路径3.1 手机App与可视化控制Petoi为Quaddle提供了配套的手机App逻辑上延续了Bittle的界面风格。App通过蓝牙连接主控板上的蓝牙模块通信距离在无障碍环境下大概10米左右。界面上有几个核心功能区实时遥控摇杆、动作模式预设、姿态调节滑杆、形态切换按键。实时遥控摇杆用的是虚拟油门杆杆量大小对应机器人的前进速度和转向速率。这里有个值得注意的细节摇杆输出的不是线性速度指令而是经过固件里的速度斜坡处理防止机器人因为指令突变而翻倒。所以你从App上推满杆机器人并不会瞬间加速到头而是有一个平滑的加速过程这个设计对于新手来说非常重要。动作模式预设就是一堆预先编排好的动作文件比如站立、坐下、匍匐、打招呼、翻滚、小跑等。你可以理解成动作帧序列每个动作由若干关键帧组成每个关键帧里定义了12个舵机的目标角度帧与帧之间通过插值算法过渡。这就是宠物机器人“情绪表达”的基础。Quaddle特有的形态切换动作也在这个区域切换动作是由固件里一段独立的状态机控制的执行期间遥控指令会被屏蔽避免出现控制冲突。3.2 Python SDK与高级开发如果你不想受限于App开电脑用SDK控制是更有意思的玩法。Petoi提供了Python SDK通过串口/USB连接主控板后你可以发送高层指令来控制机器人的运动。SDK的核心是一个Socket连接管理模块底层协议就是Petoi自己的通信协议格式包含帧头、设备ID、指令类型、数据负载和校验位。一个最简单的Python控制示例是这样的from petoi_sdk import PetoiRobot robot PetoiRobot(/dev/ttyUSB0, baudrate115200) robot.connect() # 切换形态从四足模式切换到滑行/桨动模式 robot.send_command(m, 1) # 前进指令速度值范围0到100 robot.send_command(f, 50) # 停止并进入待机 robot.send_command(s, 0) robot.disconnect()这类SDK适合做自动化测试和算法验证。比如你可以用Python脚本循环执行一组步态数据采集任务机器人走直线读取IMU数据和舵机反馈记录到CSV文件里用于后续分析。你可以把四足机器人的数据采集流程自动化一次跑一百步把每一步的姿态数据都录下来这份数据在调试平衡参数时非常宝贵。3.3 ROS集成与仿真环境对于研究姿态控制或做多传感器融合的同学ROS支持是绕不开的环节。Petoi官方提供了ROS功能包可以把Quaddle抽象成带关节状态的URDF模型在RViz里实时查看机器人的关节角度和IMU信息。这个仿真的意义在于你可以在Gazebo里跑一个Quaddle的模型先验证控制算法的逻辑再切换到真机实验。说白了就是先用汽车模拟器练车再上路开真车。ROS包里的核心节点包括传感器驱动节点采集IMU和舵机反馈、控制指令节点向主控发送运动指令、状态可视化节点在RViz中渲染机器人模型和传感器数据。通信架构走的是标准的topic机制/cmd_vel是速度控制topic/imu/data是传感器数据topic/joint_states是关节状态topic这些话题都是机器人行业通用格式你能直接对接现有的其他机器人代码。3.4 固件级定制如果你觉得SDK和ROS还不够底层那可以直接改固件。NyBoard的固件基于Arduino框架开发代码仓库里有完整的运动学解算模块、步态生成模块和姿态控制模块。最让我欣赏的是Petoi的运动学模块写得相当干净支撑腿的逆运动学公式是直接以函数形式暴露出来的你可以把它的公式替换成自己的实现比如改成五档步高自适应逻辑或者加入动态步频调节算法。固件定制的门槛主要在C的嵌入式开发经验上。你需要在Arduino IDE里安装NyBoard的开发板支持包然后修改代码里的运动参数结构体。改动之后最麻烦的是参数整定因为步态参数互相耦合改一个步高参数可能会影响机器人的俯仰角进而触发姿态控制器的干预最后表现出的结果和你预想的完全不同。我的建议是每次只改一个参数做对比实验记录数据再下结论。4. 实操过程从开箱到双形态首跑4.1 开箱组装与结构检查Quaddle出厂是半组装状态四足腿部和形态切换机构需要自己安装。这个过程大概需要40分钟到1小时。工具方面额外需要一把内六角扳手和一把小十字螺丝刀原厂包装里自带的工具有点短拧某些深孔螺丝时不太好发力。组装的第一步是检查舵机线序和舵机初始角度。串行总线舵机有一个关键特性上电时舵机保持在上次下电时的角度位置如果这个位置和机械结构期望的初始位置偏差过大强行安装会顶坏齿轮。所以我强烈建议先不要安装腿部结构直接给主控上电通过调试工具把12路舵机全部设置为90度中间位再断电然后安装机械结构。这一步能帮你避开90%的安装损坏问题。组装中需要特别注意形态切换机构的配合精度。Quaddle的切换机构是靠舵机驱动一个滑动锁止销来改变腿部关节的约束状态的如果锁止销没有完全进入定位孔受力时容易脱开表现为行走中突然“软腿”。出现这个情况先把切换机构螺丝全部松开重新调整位置让锁止销在舵机中间位时自然落入定位孔然后再对角拧紧螺丝。这个调整是个精细活耐心点慢慢弄。4.2 首次上电与舵机校准组装完成后别急着让它走路先做舵机校准。校准的目的是让固件记录的关节零位和机械结构的实际零位对齐。Petoi提供了一键校准流程在App或调试终端发送校准指令后每个舵机会逐一转动到机械限位位置然后自动记录其绝对角度偏移量。校准的注意事项是在舵机执行限位动作的时候一定要把机器人倒置固定让腿部悬空减小负载和阻力。如果某个舵机在校准过程中发出异响或明显卡顿先拆下对应腿部的连杆检查齿轮啮合位置是否错位。这个问题常见于舵机臂安装时没有对准花键齿位重新校正舵机臂位置基本能解决。校准数据保存在主控板的EEPROM里掉电不丢失。我建议每次更换舵机或者拆装过腿部结构后都要重新校准一次数据不对会导致步态歪斜和异常抖动。4.3 四足模式的步态实测校准完成后先把机器人放在平坦的桌面上用App让它执行小跑模式。第一次走起来时先观察机器人的姿态是否水平有没有明显的跛脚或身体倾斜。这些异常大概率还是零位偏差导致的重新校准一次基本能解决。如果步态正常再逐步提高速度值同时观察机器人在加速过程中是否出现“点头”现象。轻微的俯仰震荡是正常的因为动态步态本身就有重心波动但如果点头幅度大到影响视线稳定说明步态参数里的重心补偿没有生效需要检查固件配置里的身体俯仰补偿开关是否打开。四足模式最需要注意的是地面材质。硬木地板和短毛地毯的通过表现差异非常大硬地面抓地力差机器人容易打滑厚毛地毯阻力大容易触发过流保护。最理想的地面是平整的瓷砖或水泥地面。如果你家里只有地毯可以考虑给Quaddle的脚底贴一层薄薄的硅胶垫效果立竿见影而且成本极低。这是我在Bittle上学到的经验Quaddle同样适用。4.4 滑行/桨动模式的切换与体验四足模式跑顺了之后就可以试形态切换了。通过App点按切换按键机器人的腿部结构会先收起然后滑行机构的驱动轮或桨轮降到触地位置大约3到5秒完成整段动作序列。首次切换时我建议也把机器人倒置进行这样你可以直接观察切换机构的运动过程是否正确避免侧面刮擦地面导致锁止不到位。滑行模式的操控感和四足完全不同。四足是典型的“仿生步态”你会感觉机器人在“走”滑行模式更像在开一台小型遥控车响应更直接转向也更灵敏。我实测下来最快的直线速度大概在0.5m/s左右比四足小跑慢一些但胜在稳定性和续航。速度感知不强恰恰说明它适合室内互动。比如你可以让Quaddle在滑行模式下顶着一个小纸盒子玩推箱子游戏这个场景就是纯四足模式很难完成的因为腿部的踢踏动作会把盒子掀翻。4.5 室内互动场景的一些玩法建议当Quaddle两种模式都调试顺溜之后玩法就多了。以下这些是我实测比较有意思的场景你可以作为参考巡逻模式用Python SDK写一个简单的逻辑让Quaddle在四足模式下沿固定路线巡行一圈遇到障碍物时自动转身。这个项目非常适合练手传感器数据处理。宠物跟随模拟在滑行模式下利用手机摄像头做一个简单的颜色识别让Quaddle自动跟随特定颜色的目标物体移动。这个玩法对视觉处理的要求不高但效果很讨喜。多地形穿越在一块30厘米宽的木板上模拟“窄桥”先用四足模式走一遍再尝试滑行模式。你会直观感受到两种模式在不同地形上的优劣。所有这些玩法都不需要额外购买昂贵的配件一块手机支架加一枚蓝牙遥控手柄就能玩得很开心。如果想做视觉巡线加一个低成本摄像头模块和USB转接板就够了Quaddle的接口预留了扩展空间。5. 常见问题与排查技巧实录5.1 舵机抖动、过热与异常温升玩Quaddle的人遇到最多的就是舵机抖动和异常发热。抖动分为两种一种是静止状态下的来回小幅摆动另一种是运动过程中的高频震颤。静止抖动的根本原因通常是舵机控制信号波动或供电纹波过大。排查思路是先用外接稳压电源单独给舵机组供电如果抖动消失就说明主板供电能力不足需要加装一个稍大容量的稳压模块。问题不在于电池容量而在于锂聚合物电池在大电流瞬间放电时电压跌落严重如果主控板上的稳压模块响应不够快就会在舵机控制信号上叠加出纹波干扰。运动过程中的高频震颤则往往是舵机负载过大或结构共振引起的。先检查腿部结构有没有拧得过紧导致关节转动不灵活正常标准是用手轻轻掰动关节应该能顺畅移动但没有明显旷量。如果机械结构没问题就尝试把速度值调低一些很多震颤是步频和结构固有频率接近导致的共振稍微降低一点步频就能避开共振区间。永远不要小看舵机发热的严重性。串行总线舵机内部有电流反馈和超温保护如果连续工作温度过高保护机制会触发舵机掉线。如果你发现运行几分钟后某个舵机不听使唤了先摸一下它的外壳温度如果是烫得不能持续按住的水平必须停下来。对于Quaddle的形态切换机构舵机建议加装铝制散热片那个位置的舵机在频繁切换时受力和发热都最严重。5.2 IMU数据异常导致的姿态失控如果你发现机器人走路越来越斜或者站立时身体不断摇晃大概率是IMU数据出了问题。IMU是个很精密的传感器最怕两件事物理冲击和地磁干扰。注意通常用到的是六轴IMU不涉及地磁所以问题主要集中在机械振动上。排查方法很简单先把机器人放在绝对水平的台面上断电再上电但不让它动进入调试界面观察IMU的俯仰角和翻滚角读数。正常应该稳定在0度附近偏差在2度以内。如果读数漂移或跳动很大先检查IMU模块有没有松动重新固定之后再试。如果固定没问题就可能是传感器出厂零偏没有校准需要在固件里执行IMU零偏校准程序。另一种常见但容易忽略的情况是IMU的安装方向装反。尤其是自己拆装过主控板之后IMU模块的Y轴方向如果装反姿态解算出来的俯仰角会方向颠倒表现为机器人前进时系统认为它在下坡于是错误地调整重心导致翻倒。校准方向的办法是连接上位机缓慢把机器人头部抬起来30度观察上位机显示的俯仰角是30度还是-30度正负反过来就说明装反了。5.3 串口通信乱码与蓝牙掉线玩SDK的时候串口通信乱码是个高频问题。绝大多数情况是波特率不匹配。Petoi主控默认波特率是115200但有些USB转串口模块默认是9600或者57600双方频率不一致出来的就是乱码。解决办法是查清楚主控固件里配置的波特率然后手动修改串口工具的波特率设置两边对齐就正常了。蓝牙掉线则复杂一些。如果你发现App连接后经常过几秒就断开先检查是不是蓝牙功耗问题导致的。有些主板在通信负载升高时蓝牙模块的供电波动会导致其内部协议栈复位表现就是连接中断。这时可以在蓝牙模块的电源引脚旁边加一个10uF左右的陶瓷电容滤波能起到明显的稳定性提升效果。另一个蓝牙断连的原因和手机系统有关。部分Android版本的蓝牙后台限制策略会主动断开长时间不活动的BLE连接。iOS系统相对稳定一些。如果你需要在实验室里长时间跑数据采集建议直接用USB线连接不要依赖蓝牙。5.4 常见问题速查表症状可能原因处理方案上电后某个舵机完全不动舵机线松脱或舵机损坏检查总线接口互换舵机测试行走时身体明显向一侧倾斜关节零位偏差或地面不平重新校准舵机零位换平坦地面切换形态时锁止销卡滞机构螺丝过紧或位置偏移松开螺丝重新调整锁止销位置电池续航明显缩短长期过放导致电池容量衰减更换电池注意定期充放电维护主控板频繁复位供电电压跌落分离舵机供电与主控供电上位机无法识别串口驱动未装或端口占用安装CH340驱动更换USB口关闭蓝牙占用5.5 结构维护与长期可靠性建议最后聊几句长期维护。Quaddle这类产品每次玩完我都建议做一次简单的检查看看舵机螺丝有没有因为振动而松动锁止销的弹簧是否还有弹性腿部结构件的连接处有没有出现白色应力痕迹。松动螺丝要趁早拧紧因为一旦旷量变大就会加速其他部件的磨损最后整个腿部结构都会变得松垮步态质量急剧下降。润滑方面串行总线舵机内部齿轮出厂带了润滑脂不需要额外加注。你只能润滑的是结构件之间的尼龙垫片接触面用一点点硅基润滑脂就够了。不要用WD-40这类渗透性润滑剂它会渗进舵机内部把原厂润滑脂稀释掉反而加速齿轮磨损。我个人在实际操作中最深的体会是Quaddle的价值不在“让机器人走出来”那一下的成就感而在于后续你不断调参、改代码、换玩法、出问题再解决问题的过程。开源机器人硬件和组装玩具最大的区别就在这——前者永远有下一个可以优化的点。如果你抱着“拼好跑一下就吃灰”的心态那Quaddle和普通遥控玩具没有区别但如果你想把自己的控制算法在一台真实硬件上跑起来感受理论代码和物理世界之间的差距那它会是一个很好的起点。双形态设计的加入又把这个起点的广度拉大了一倍这是我认为它值得推荐的核心原因。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。