尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
低成本轮腿机器人DIY:从选型到LQR控制全解析
1. 为什么我要做一台低成本轮腿机器人轮腿机器人这个方向我盯了差不多两年。最早是在实验室里看到一台四足加轮子的混合平台当时第一反应是这东西又贵又难搞第二反应是如果能把成本压下来它其实比纯足式和纯轮式都好玩。后来自己动手做了几版从最开始的纯舵机方案一路踩坑到现在的轮毂电机加摆臂结构中间烧过驱动板、崩过减速器、也写过一堆跑飞的控制代码。这篇文章就是把这套东西完整拆开讲一遍包括选型逻辑、结构设计、电控方案、控制算法和实际调试经验源码和图纸我会在文末说明获取方式。先说清楚这台机器人是什么。它本质上是一个两轮自平衡底盘两侧各挂一条可以主动摆动的腿腿末端装轮子。轮子负责前后移动摆臂负责调整重心和姿态两者配合就能实现自平衡、越障、爬坡、跳跃预备动作这些行为。它解决的问题很直接纯轮式机器人过不了台阶和崎岖地面纯足式机器人速度慢、能耗高、控制复杂。轮腿结构把两者的优点捏在一起用轮子跑平路用腿应付障碍性价比最高。适合谁来参考这篇文章如果你是有一定嵌入式基础的学生、创客或者机器人爱好者想做一个能跑能跳、成本可控、代码全开的平台那这套方案就是给你准备的。如果你完全没碰过电机控制和姿态解算建议先把PID和IMU基础过一遍再回来不然调试阶段会很痛苦。整机物料成本我控制在两千元以内用的是常见的开源工具链和国产器件不存在买不到或者贵到离谱的东西。2. 整机方案设计与核心选型思路2.1 轮腿结构到底怎么摆轮腿机器人的结构方案有好几种常见的有并联腿、串联腿、偏心轮腿。我这台用的是串联摆臂式也就是每条腿由一个大扭矩关节直接驱动一根摆臂摆臂末端装轮毂电机。为什么选这个因为并联腿虽然刚度好但连杆设计复杂加工精度要求高低成本条件下很难保证一致性。串联摆臂结构简单零件少装配容差大而且控制模型直观摆臂角度直接对应重心偏移量写控制器的时候脑子不容易乱。具体尺寸上摆臂长度我定在180毫米轮子直径100毫米整机高度在站立状态下约320毫米。这个比例是试出来的摆臂太短重心调整范围不够自平衡会很吃力摆臂太长惯量变大电机响应跟不上机器人会像喝醉一样晃。180毫米这个值在响应速度和调整范围之间取了个平衡实测下来自平衡恢复时间在0.3秒左右够用。2.2 电机选型为什么不用舵机一开始我用的是大扭矩舵机做摆臂驱动结果发现两个致命问题。第一舵机是位置控制内部已经闭环了我想做力矩控制或者柔顺控制根本插不进去第二舵机响应速度慢自平衡需要的高频调整它跟不上机器人站都站不稳。后来换成无刷电机加行星减速器配合FOC驱动才把控制自由度打开。摆臂电机我选的是常见的5010无刷电机配10:1行星减速器额定扭矩能到2牛米左右峰值更高。轮子用的是轮毂电机直径100毫米内置霍尔传感器配合FOC驱动可以做到很平滑的速度和力矩控制。这两个电机的驱动板都是开源方案我用的是基于DRV8301和STM32的方案自己打板做的成本比买成品驱动低一半以上。2.3 主控与传感器配置主控用的是STM32F405理由很简单浮点运算能力强跑姿态解算和LQR控制绰绰有余外设丰富社区资料多。IMU用的是MPU6050加磁力计的组合虽然MPU6050有点老但便宜、资料全、够用。如果你预算稍微宽裕可以换BMI088或者ICM42688噪声更小解算更稳。传感器方面摆臂关节装了AS5600磁编码器用来测摆臂绝对角度轮毂电机自带霍尔可以测转速。电源用的是6S锂聚合物电池经过DC-DC降到5V和3.3V给控制板供电电机驱动直接吃电池电压。整机没有用任何激光雷达或者深度相机纯靠IMU和编码器做状态估计这也是成本能压下来的关键原因。3. 核心控制算法与实现细节3.1 自平衡控制LQR还是PID自平衡是轮腿机器人的基本功。我一开始用串级PID外环角度、内环角速度调了三天勉强能站但一碰就倒抗扰能力很差。后来换成LQR把系统建模成倒立摆加摆臂的耦合模型状态量包括车身俯仰角、角速度、轮子位置、轮子速度、摆臂角度、摆臂角速度一共六维。LQR的好处是它能同时优化多个状态不像PID那样各管各的。建模的时候有个坑要注意摆臂运动会对车身产生反作用力矩这个耦合项如果不建模进去LQR算出来的增益会让机器人一站就抖。我的做法是把摆臂的动力学方程和车身方程联立写成状态空间形式然后用MATLAB或者Python的control库算Riccati方程。Q矩阵和R矩阵的调参是个体力活我一般是先给角度和角速度大权重保证站得稳再慢慢加位置权重让它能移动。3.2 摆臂控制重心调整与越障逻辑摆臂的作用有两个一是辅助自平衡二是越障。辅助自平衡的逻辑是当车身前倾时摆臂向后摆把重心拉回来这样轮子不用猛冲就能恢复姿态运动更柔和。越障的逻辑是检测到轮子被挡住或者前方有障碍时摆臂快速下压把车身抬起来同时轮子给力矩利用惯性翻过去。这里的关键是摆臂的目标角度怎么给。我的做法是分层控制上层根据车身俯仰角和轮子受力情况算出一个期望重心位置下层用摆臂角度去逼近这个重心位置。摆臂控制器用的是位置加力矩混合模式位置环保证角度跟踪力矩前馈补偿重力矩这样摆臂动作既准又柔。3.3 状态估计IMU数据怎么用才不飘MPU6050的原始数据噪声不小直接用会抖得厉害。我的处理流程是先做零偏校准静止时采集一千个样本取平均作为零偏然后用一阶低通滤波去掉高频噪声截止频率设在20赫兹最后用互补滤波融合加速度计和陀螺仪得到俯仰角。互补滤波的系数我取0.98也就是98%信任陀螺仪积分2%信任加速度计修正这个比例在快速运动和静态下都能兼顾。如果你用更好的IMU可以直接上Mahony或者Madgwick滤波效果更好。但MPU6050用互补滤波也够关键是校准要做扎实不然积分漂移会让你怀疑人生。我踩过的坑是校准的时候机器人没放平导致零偏本身就是错的后面怎么调都站不稳。所以校准这一步一定要用水平仪确认底盘水平别凭感觉。4. 硬件搭建与实操过程4.1 结构件加工与装配结构件我用的是碳纤维板和3D打印件混合方案。承力大的地方比如摆臂和电机座用碳纤维板CNC加工或者手工切割都行连接件和外壳用PETG打印强度够而且便宜。装配顺序很重要先把摆臂电机和减速器装到车身侧板上再装摆臂和轮毂电机最后装控制板和电池。顺序反了会很难拧螺丝。装配的时候有个细节摆臂和电机的连接要用夹紧式联轴器不要用顶丝。顶丝在反复正反转之后会松摆臂会晃自平衡直接崩。夹紧式联轴器贵一点但省心。另外所有螺丝都要上螺纹胶机器人运动时的振动比你想象的大不上胶跑两天螺丝就掉光了。4.2 电控系统接线与供电电控部分我画了一块集成板把主控、IMU、编码器接口、电机驱动接口都集成在一起减少飞线。供电走的是电池直接给电机驱动DC-DC降压给控制板。这里要注意的是电机启动瞬间电流很大会把电池电压拉低如果控制板和电机驱动共用一路电源主控可能会复位。我的做法是控制板供电加一个大电容缓冲同时DC-DC选宽压输入的最低能吃到5V这样电池电压波动不会影响主控。接线的时候电机相线和霍尔线要分开走避免干扰。编码器线用屏蔽线屏蔽层单端接地。这些细节看起来琐碎但调试阶段出现的很多莫名其妙的问题最后查出来都是接线干扰导致的。4.3 固件烧录与参数配置固件是基于STM32CubeMX生成的HAL库工程用Keil或者STM32CubeIDE都能编译。烧录用ST-LinkSWD接口。烧录之后第一步是校准IMU和编码器校准数据存在Flash里掉电不丢。第二步是配置电机参数包括极对数、减速比、编码器分辨率、电流环PID。这些参数如果填错电机会疯转或者根本不转。配置参数的时候我建议先用小电流测试确认电机转向和编码器方向一致。如果方向反了FOC会直接失控。确认方向之后再加电流逐步调电流环带宽。电流环调好之后调速度环最后调位置环。这个顺序不能乱不然你会在一堆耦合的参数里迷失。5. 调试过程中踩过的坑与排查技巧5.1 自平衡站不稳的几种原因自平衡站不稳是最常见的问题原因可能有很多。我整理了一个排查表按概率从高到低排现象可能原因排查方法低频晃动越晃越大角度环增益不够或者相位滞后提高角度环P降低滤波截止频率高频抖动电机发热角速度环增益过高或者噪声大降低角速度环P加强滤波单向倾倒扶起来又倒IMU零偏不准或者机械重心偏重新校准IMU检查电池位置站住但一碰就倒抗扰能力差LQR权重不合理增大角度和角速度权重摆臂乱动导致失衡摆臂耦合项没建模检查状态空间模型是否包含耦合我遇到最坑的一次是机器人站住之后慢慢往一边漂查了半天发现是轮子直径参数填错了实际100毫米我填了105毫米导致速度估计有偏差位置环积分越积越偏。所以参数一定要实测别抄别人的。5.2 电机驱动常见故障电机驱动故障里最常见的是过流保护和过热保护。过流一般是电流环参数太激进或者电机堵转解决方法是降低电流环带宽或者加电流限幅。过热一般是散热不够或者持续大电流解决方法是加散热片或者降低工作电流。还有一种情况是驱动板烧MOS这通常是相线接错或者电机短路导致的上电前一定要用万用表测相线之间有没有短路。另外FOC驱动对编码器安装精度要求高如果编码器偏心或者磁铁距离不对会导致换向不准电机效率低、发热大。我的做法是编码器磁铁和芯片距离控制在1到2毫米偏心不超过0.5毫米这样换向误差最小。5.3 通信与控制延迟问题如果你的机器人响应迟钝可能是通信延迟导致的。主控和驱动板之间如果走CAN或者串口波特率要设够高CAN建议1Mbps串口建议921600以上。另外控制周期要稳定我用的是1kHz的控制频率用定时器触发不用delay。如果控制周期抖动大LQR算出来的控制量会不准机器人会抖。还有一个容易忽略的点是IMU读取延迟。MPU6050走I2C读取如果I2C速率低读一次要好几毫秒这在高频控制里是致命的。我的做法是把IMU读取放在中断里用DMA传输减少CPU占用和延迟。如果你用SPI接口的IMU延迟会更低。6. 开源资料与后续扩展方向6.1 源码和图纸包含什么这套项目的开源资料包括STM32固件源码、电路原理图和PCB、结构件3D模型和碳纤维板切割图纸、LQR参数计算脚本、调试上位机。固件里包含了IMU校准、FOC驱动、LQR控制、摆臂控制、通信协议这些模块代码结构清晰注释也写得比较全。电路是两层的打样成本很低。结构件图纸是DXF和STEP格式可以直接发加工。获取方式我放在文末不在这里贴链接避免被平台限流。你拿到之后建议先通读一遍代码结构再对照图纸装配最后按调试步骤一步步来。不要一上来就改参数先把默认参数跑通知道每个参数的作用之后再动。6.2 可以继续扩展的方向这台机器人目前是纯IMU和编码器感知没有视觉和激光。如果你想做更复杂的任务可以加一个树莓派或者Jetson做上层感知主控负责底层控制两者通过串口或者CAN通信。视觉可以做巡线、目标跟踪、SLAM激光可以做建图和导航。这些扩展我在后续版本里会陆续加也会继续开源。另一个方向是强化学习控制。LQR是模型-based的方法需要精确建模而强化学习可以端到端学习控制策略不需要显式建模。我试过用PPO训练摆臂和轮子的协同控制在仿真里效果不错但迁移到实机还有sim-to-real的gap主要是电机延迟和摩擦建模不准。这个方向有兴趣的可以一起研究。6.3 成本清单与采购建议最后列一下成本清单给想复现的朋友一个参考部件型号数量单价元备注主控STM32F405145核心板IMUMPU6050115可升级摆臂电机5010无刷2120含减速器轮毂电机100mm2180含霍尔驱动板自制280含MOS和驱动编码器AS5600225磁编码电池6S 5000mAh1260锂聚合物结构件碳纤维3D打印1套300含加工其他线材螺丝等1套100杂项合计约1900采购的时候注意无刷电机和轮毂电机要买带霍尔或者编码器的版本不然FOC没法换向。电池别买太便宜的虚标严重实际容量不够会导致机器人跑一会儿就低压保护。碳纤维板加工找本地或者网上的CNC店精度比手工切割好很多价格也不贵。我个人在实际操作中的体会是轮腿机器人最难的不是写代码而是把机械、电控、算法三者的参数对齐。机械装配有公差电控有延迟算法有噪声任何一个环节出问题都会让机器人站不起来。所以调试的时候要有耐心一次只改一个变量记录每次改动的效果慢慢就能找到最优参数。最后再分享一个小技巧调试自平衡的时候先用绳子把机器人吊起来让它悬空跑确认控制方向正确再放地上这样能避免一上电就疯跑撞坏零件。
RELATED

相关推荐

基于STM32与巴法云的独居老人监护终端设计

基于STM32与巴法云的独居老人监护终端设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/29 19:18:19
工业级电源路径保护方案:TPS259483AYWPR与PIC18F4680协同设计

工业级电源路径保护方案:TPS259483AYWPR与PIC18F4680协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/29 19:18:19
RV1126B深度解析:国产边缘AI视觉SoC的感知-决策-执行闭环

RV1126B深度解析:国产边缘AI视觉SoC的感知-决策-执行闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/29 19:18:19
MORE NEWS

更多资讯

📰

ICCEA 2025计算机工程与应用国际会议投稿指南

1. 会议背景与学术价值解析ICCEA(计算机工程与应用国际学术会议)是由西南大学主办的年度学术盛会,已连续成功举办六届并全部实现IEEE出版。作为计算机工程领域的专业学术平台,该会议具有以下核心特征:稳定的出版渠道&a…

📰

高精度伺服C++实时控制内核:确定性、三环与前馈调参

高精度伺服系统拆开来看并不神秘:电机、驱动器、编码器,再加一层薄薄的实时控制代码。真正难的是最后那层代码——C 运动控制底层要在一个固定不变的毫秒级节拍里,把轨迹规划、三环运算、总线收发、状态判断全部做完,中间不能有一…

📰

2026年AI生成PPT工具排行榜与深度评测

1. 为什么我们需要关注AI生成PPT工具排行榜?三年前我第一次尝试用AI做演示文稿时,花了整整一个周末调试模板和排版。现在只需要输入几个关键词,30秒就能生成专业级的幻灯片。这个领域的发展速度远超预期,2026年的工具榜单已经呈现…

📰

基于随机微分方程的图结构生成建模技术解析

1. 项目概述:基于随机微分方程系统的图结构生成建模这篇论文提出了一种创新的图结构生成方法,通过随机微分方程(SDE)系统实现基于分数的生成建模。不同于传统的图生成方法,该技术将图结构数据建模为连续动态系统的演化…

📰

Figma设计稿转HTML全流程与优化技巧

1. Figma设计稿转HTML全流程解析作为一款云端协作设计工具,Figma已经成为UI/UX设计师的主流选择。但设计稿最终需要转化为可交互的网页,这个从视觉到代码的转换过程往往让很多设计师和前端开发者头疼。今天我就结合自己经手的十几个项目经验,…

📰

平均数与中位数:工资分布偏斜下的数据分析与分位数应用

做数据分析这些年,被问得最多的一类问题是:“这个数看着挺高的,为什么大家体感完全不一样?”十次里有八次,问题出在同一个地方——拿平均数当成了全部人的代表值。尤其在看工资分布这类明显偏斜的数据时,平…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬