ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

终极 FOC 轮腿机器人 DIY 制作教程:从零到一造出会自己平衡行走的机器人

终极 FOC 轮腿机器人 DIY 制作教程:从零到一造出会自己平衡行走的机器人 终极 FOC 轮腿机器人 DIY 制作教程从零到一造出会自己平衡行走的机器人【免费下载链接】foc-wheel-legged-robotOpen source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and software development. | 一个新型结构的轮腿机器人开源资料包含机械设计、电子设计、算法仿真、软件开发等材料项目地址: https://gitcode.com/gh_mirrors/fo/foc-wheel-legged-robot如果你曾盯着平衡车发呆好奇它为什么摔不倒如果你刷到过机器人滑着轮子灵活越障的视频心里痒痒的——那么恭喜你这篇轮腿机器人 DIY 教程就是为你准备的。它基于开源项目FOC 轮腿机器人foc-wheel-legged-robot一个把机械设计、电子硬件、控制算法和手机遥控全部开源、总成本约 550 元就能复刻的完整方案。读完这篇文章你会从一个想动手但不知从哪下手的新手变成知道每个零件装在哪、每行代码管什么、每个参数怎么调的准制作者。文章里记录的是一个真实新手从心动到站稳的全过程包括他踩过的坑和悟出的道理。缘起为什么一台会自己平衡的机器人值得你动手先讲个故事。半年前我盯着桌面上一堆电机零件发呆脑子里只有一个念头我想造一台会自己平衡的机器人。听起来很酷对吧但紧接着问题来了我完全不知道平衡是怎么实现的。轮子直立行走本质上是一个倒立摆问题——想象一支铅笔立在指尖上你想让它保持直立就得不停地往它倾斜的反方向移动手。机器人的大脑每秒要重复这个判断成百上千次这就是平衡。而 FOC 轮腿机器人的特别之处在于它把平衡和行走分给了两组电机——关节电机负责像膝盖一样弯曲调整重心车轮电机负责像脚一样前后移动两者配合机器人就能边平衡边跑。你可能会问这跟我买台平衡车有什么区别区别大了。平衡车是现成的黑箱而这里是完全透明的课堂。当你亲手把电机、驱动板、主控板、陀螺仪拼在一起再亲手把平衡参数从疯狂抖动调到纹丝不动你学到的不是某个孤立的知识点而是一条完整的工程链路力学建模 → 仿真验证 → 硬件实现 → 现场调参。这条链路正是所有机器人工程师每天都在走的路。最打动我的一点是这个项目把整个过程拆成了六个可独立研究的模块——机械结构在solidworks目录算法仿真在matlab目录电机驱动板在stm32-foc目录运动主控在esp32-controller目录可选图传系统在linux-fpv目录手机遥控 APP 在android目录。你完全不需要一次看懂所有东西按需查看就行。第一站里程碑你能说出这台机器人的大脑ESP32 主控、肌肉4010 关节电机 2804 车轮电机、神经CAN 总线分别是什么。做到这一点你已经比 90% 的围观群众懂得多了。拆解把平衡行走这个大难题切成四个能落地的小目标刚拿到项目资料时我的第一反应是这也太多了吧。SolidWorks 模型、MATLAB 仿真、STM32 固件、ESP32 程序、Android 工程……随便一个都够研究一周。后来我明白了一个道理大难题不可怕可怕的是把它当成一个整体去面对。把造一台会平衡的机器人拆成四个小目标每一步都清晰可行目标一让单个电机转起来。这是最底层的肌肉问题。一个无刷电机要转动需要知道转子转到哪了、该给三相绕组通什么样的电。项目里的 STM32 FOC 驱动板就是干这个的它用磁编码器感知转子位置用 FOC 算法磁场定向控制通俗说就是永远让磁场推力方向对准转子的运动方向把电压精准地变成扭矩。目标二让六个电机听同一个大脑的话。机器人有四个关节电机、两个车轮电机必须协调工作。项目用 CAN 总线一条两线差分总线能在 1Mbps 速率下连接多个设备把它们串起来每个电机一个 ID大脑发一条指令所有电机各取所需。这块属于神经系统。目标三让机器人知道自己是歪的还是正的。主控板上的 MPU6050 陀螺仪加速度计持续测量姿态算法据此判断我现在往哪边倒了。这是感官系统。目标四让大脑算出下一步该干嘛。这是最有趣的部分——平衡算法。项目采用虚拟模型控制VMC加 LQR 状态反馈的组合拳VMC 负责把腿部抽象成简单的虚拟腿来规划受力LQR 负责根据当前姿态误差计算每个电机该出多少力。有意思的是这套算法先写在 MATLAB 里再用 MATLAB Coder 一键转成 C 代码直接嵌进主控程序——你在esp32-controller/software/src目录下看到的leg_pos.c、leg_spd.c、lqr_k.c就是仿真阶段的产物。当你把这四个目标都打通机器人就会活过来传感器告诉它歪了算法算出补偿力CAN 总线把指令发给电机电机转动带动重心回正——整个过程每秒重复几百次你看到的便是稳稳站立。第二站里程碑你能向朋友解释FOC 是给电机用的精准扭矩控制技术以及平衡的本质是持续纠正姿态偏差。概念通了动手就不慌。备料一张清单搞定全部零件附选购建议与避坑提醒按项目实际清单算过账后我松了口气不含图传约 549 元加上图传约 719 元。这个价格买到的不是玩具而是一整套可以反复折腾的学习平台。核心电机机器人的肌肉零件数量参考单价用途4010 无刷电机450关节驱动扭矩大、转速低2804 无刷电机213车轮驱动轻巧高转速编码器磁铁6随电机直径 6mm 径向充磁贴转子中心电子系统机器人的大脑和神经零件数量参考单价说明STM32 FOC 驱动板元件625每块约 25 元可自己打板焊接ESP32 主控板元件120含 ESP32-C3 与 MPU60503S 航模锂电池12811.1V800mAh 左右结构与辅料3D 打印件一套约 100 元白色树脂打印定制亚克力底板一块约 5 元604 深沟球轴承与 F8-14M 推力轴承若干M2.5/M3 螺丝、尼龙防松螺母、铜柱与垫片合计约 20 元。几个过来人的避坑提醒驱动板建议直接用开源文件打样。项目提供了立创 EDA 的原理图和 PCB 文件stm32-foc/hardware目录PCB 是直径 30mm 的圆形双层板对侧孔距与 2804 电机孔位一致可以直接贴电机安装。焊一块大约 25 元比买成品省得多还能练焊接。编码器磁铁的距离很讲究。磁铁与 AS5600 磁编码器要对正间距保持 2~3mm。太远读不到角度太近可能摩擦。图传模块是可选项不是必选项。项目说明里写得很清楚linux-fpv图传模块会明显增加成本和复杂度去掉它蓝牙遥控、平衡行走完全不受影响。新手建议先跳过跑通平衡再考虑加。电机相线先别急着焊死。第一次调试很可能需要交换相线来修正电机转向用杜邦线或可插拔端子连接会更从容。第三站里程碑所有零件到齐、能分清哪个电机装腿上、哪个电机装轮上并且驱动板已经打好样或准备好焊接。从这一步起你的桌子开始像一个车间了。搭建三步拼出机器人的骨骼与神经零件齐了接下来是动手时刻。整个装配可以分成三步每步之间都有明确的检查点。第一步拼骨骼。项目的机械模型在solidworks目录包含大腿、小腿、底板、关节支架等全部零件和总装模型照着总装.SLDASM的装配关系装即可。我的经验是先把 4010 电机固定在关节支架上再安装轴承——用热风枪把连接件稍微加热到 60~70℃轴承更容易压入装好后要确认能顺畅空转。电机转子中心记得贴上径向充磁磁铁这是编码器读取角度的关键。检查点所有关节活动顺滑、无卡顿、无明显晃动。第二步布神经。驱动板装好电机后要按下面的方法设置 ID 和标定细节放下一章。然后接好 CAN 总线把六块驱动板并联到总线上总线两端各接一个 120Ω 终端电阻——这是 CAN 通信稳定的前提漏了它你会发现明明都连了线为什么数据就是不来。检查点总线上每个节点的 ID 不重复供电电压在 11~12.6V 之间。第三步安大脑。把 ESP32 主控板通过铜柱固定在底板上方接好电源、CAN 总线和 MPU6050陀螺仪直接集成在主控板上。注意走线时让电源线和信号线分开放置避免干扰。检查点上电后主控板指示灯正常用万用表确认各模块供电无误。第四站里程碑机器人能通电、六个电机都能响应指令哪怕只是动一下。此刻你拥有了一台植物人机器人——结构完整只差灵魂。唤醒第一次烧录、电机标定与传感器校准硬件搭好只是开始让机器人醒过来才是重头戏。这一步我们要做三件事给主控烧程序、给电机做标定、校准传感器。给主控烧录程序。主控程序用 PlatformIO 开发工程在esp32-controller/software目录。用 USB Type-C 线连接电脑按住两个按键先松开 RESET 再松开 BOOT芯片进入烧录模式PlatformIO 里点一下 Upload 即可。烧录成功的话串口能输出调试信息——这是你第一次看到机器人的内心活动。电机自动标定。每块驱动板都要知道自己带的是什么样的电机极对数是多少、传感器零点在哪、方向对不对。项目把这件事做成了一键完成按住驱动板上的按钮不松手LED 会以 500ms 周期闪烁闪到第 N 次时松手ID 就设成了 N范围 1-8同一总线上不能重复如果一直按到 LED 常亮 2 秒再松手就进入自动标定模式电机会空载缓慢旋转自动采集参数并存进 Flash掉电也不丢。标定成功会播放提示音。我第一次标定时忘了把电机卸下来电机带着整条腿空转吓得我赶紧断电——记住标定务必让电机空载。传感器校准。主控上电后会自动读取 MPU6050 的姿态数据。确保机器人水平静止放置观察串口输出的姿态角。如果角度数据有固定的偏置就需要在esp32-controller/software/src/main.cpp里调整电机的零点偏移offsetAngle和旋转方向dir参数。项目文档给出了完整的测量方法先把dir调到让角度随电机正转递增再通过实测角度与计算角度对比反推出零点偏移公式并不复杂phi (rawAngle - offsetAngle) * dir遥控测试。项目自带的 Android APPandroid/balancebot.apk已编译好通过蓝牙搜索 BalanceBot 设备即可连接。界面是带虚拟摇杆的实时视图直接用蓝牙模式时手机和主控通过低功耗蓝牙直连如果以后加了图传还能切到图传模式通过局域网遥控机器人就不用待在手机蓝牙范围里了。第五站里程碑六个电机标定成功、主控串口输出稳定的姿态数据、手机能连上并遥控电机动作。到了这一步植物人已经有心跳了。驯服让机器人从摇摇晃晃到稳稳站立的调参心法如果说前面几章是把零件变成机器这一章就是把机器变成机器人。第一次让机器人尝试站立它大概率会像喝醉了一样疯狂摆动然后啪地摔倒——别慌这是每个制作者的必经之路调参就是干这个的。项目的控制结构非常清晰底层是电机扭矩控制中层是腿部姿态控制VMC 虚拟腿顶层是平衡控制LQR 状态反馈 PID 修正。esp32-controller/software/src/PID.c实现了单级和串级 PID。如果你听到 PID 就头大我教你一个记法比例P反应速度歪得越多纠正力越大让机器人跟得上积分I纠偏力度持续消除残余偏差对付总往一边歪微分D防抖阻尼预判变化趋势给动作踩刹车抑制震荡。调参的铁律是一次只动一个参数每次只改一点。我自己的顺序是先把积分和微分调小只留比例项慢慢加大 P 值直到机器人开始出现规律的轻微摆动——这时候机器人已经有反应了然后加 D 值把摆动压下去你会发现站立开始变得稳定最后才用小步长加 I消除那点顽固的静差。每一步调整幅度不超过当前值的 10%改完都要重新上电观察。几个高频问题的排查思路现象大概率原因尝试方向总往固定一侧倒重心偏移检查电池位置、左右配重是否对称前后持续晃动停不下来P 偏大或 D 偏小减小 P或增大 D反应迟钝、像在打盹P 偏小逐步加大 P电机有异响、发热相序或方向错误交换任意两根相线检查dir参数CAN 数据时有时无终端电阻缺失或 ID 冲突补 120Ω 电阻核对 ID平衡算法里还有一个宝藏主控的Motor_InitAll函数可以设置扭矩系数torqueRatio和反电动势函数项目已为 4010/2804 电机配好了默认值。如果你换用其他电机可以按文档方法自己测量标定。当一切就绪你会看到机器人从一个疯狂摇摆的醉汉变成稳稳站住、能随摇杆指令前进后退转向的运动员。那种成就感是看再多视频也体会不到的。第六站里程碑机器人能保持直立超过 10 秒且能响应遥控指令前进、后退、转向。恭喜你已经完成了从拼装者到调校者的蜕变。进阶仿真验证、结构轻量化与更多玩法站稳只是起点。项目真正的深度藏在matlab目录里——它是整个平衡算法的心脏。用仿真验证算法。项目用 MATLABR2022b 及以上搭建了完整的仿真链路leg_func_calc.m负责腿部解算和 VMC 映射sys_calc.m求系统状态空间方程和 LQR 反馈矩阵leg_sim.slx和sys_sim.slx是带 Simscape Multibody 物理模型的仿真模型。这套仿真不是摆设你在真机上看到的每条腿的发力逻辑都是先在仿真里验证过的。改动算法前先在仿真里跑一遍能省下大量现场调试时间。结构轻量化。机械部分值得花心思。项目文档给了几个方向大腿从实心改成镂空设计能减重约 15%小腿连接从单轴承升级为双轴承能显著提升刚度底板从亚克力换成碳纤维可减重 40%。这些改进在 SolidWorks 模型solidworks目录里改起来很方便改完记得先跑仿真验证再决定是否加工。给机器人加眼睛。如果你想让它更炫可以加上linux-fpv图传系统一块 NanoPi Duo2 核心板加 OV5640 摄像头用 ffmpeg 把视频压成 MJPG 流推给手机APP 里就能看到实时画面。它的妙处是可拔插手机直接蓝牙遥控、手机经图传局域网遥控两种模式对主控来说毫无区别可以随时插拔。实测画质 640x48025fps、延迟约 300ms作为第一人称视角足够用了。等以后想玩视觉避障、SLAM 建图这套图传链路就是现成的基础。跌落缓冲也是这套结构的彩蛋——因为腿是柔性的机器人从高处摔下来能通过腿部变形吸收冲击项目实拍图展示了这一过程。这种结构本身就是保护的设计思路很值得品味。第七站里程碑你能在 MATLAB 仿真里跑通平衡算法并对自己机器人的某个零件提出为什么这么设计的思考。你已经开始用工程师的眼光看问题了。启程从这篇文章开始的下一步行动清单到这里你手里的藏宝图已经完整了。接下来就是行动拿到全部源码。打开终端运行git clone https://gitcode.com/gh_mirrors/fo/foc-wheel-legged-robot cd foc-wheel-legged-robot仓库里每个子目录都有独立的说明文档README.md从你最感兴趣的部分看起就行。先跑仿真再动手。如果你有 MATLAB先打开matlab目录的模型跑一遍用最便宜的方式提前摔几百次。按模块推进别贪多。建议顺序机械装配 → 驱动板标定 → 主控烧录 → 平衡调参 → 手机遥控 →可选图传。每次只改一个变量。无论是参数、相线还是机械结构改完记录效果。调参笔记是你最宝贵的财富。把失败当成数据。机器人每摔一次都是你离成功更近一步的证据。我调平衡那几天家里地板被砸得当当响邻居还以为我在装修——但当你第一次看到它稳稳站住、顺着你的摇杆指令滑出去的时候一切都值了。最后送上一句这个项目教会我的话技术永无止境创新就在手中。从一颗电机到一台会平衡的机器人差的从来不是天赋而是一个开始。现在轮到你了。最终里程碑你完成了从读者到制作者的跨越——要么已经拥有一台会平衡的 FOC 轮腿机器人要么已经迈出了第一步。无论哪种都欢迎带着你的故事回来。【免费下载链接】foc-wheel-legged-robotOpen source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and software development. | 一个新型结构的轮腿机器人开源资料包含机械设计、电子设计、算法仿真、软件开发等材料项目地址: https://gitcode.com/gh_mirrors/fo/foc-wheel-legged-robot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表