2026 年电赛(TI 杯)H 题:摆杆机械结构、MaxiCamPro 测量、步进编码器与三层 PID
个人主页wengqidaifeng✨永远在路上永远向前走个人专栏数据结构C语言嵌入式小白启动重要OJ算法题详解蓝桥杯备战C从菜鸟到强手python启航AI大模型Agent拥抱未来赋能自己文章目录博客系列总目录与阅读路线推荐阅读顺序全系列知识地图总览仓库资料边界开源说明第六篇摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PID1. 滚球系统为什么是欠驱动控制2. 机械结构是闭环的一部分3. 步进驱动不能等同于位置闭环4. MaxiCamPro 负责测量而不是下命令5. 三层串级 PID6. 调参顺序7. 到达判定和任务状态机8. 车体姿态前馈9. 与往年摆杆、云台和球板题的比较10. 本篇结论11. 简化动力学与控制参数的物理意义博客系列总目录与阅读路线本系列记录 MSPM0G3507 双主控小车从赛题分析、硬件搭建、底层驱动、循迹调试到摆杆滚球控制和最终测评复盘的完整过程。文章中的路径均为仓库相对路径代码、测试脚本和模块封装可以直接从公开仓库取得。推荐阅读顺序赛题拆解、总体方案与往年控制类小车赛题比较硬件选型、接线与上电验证软件架构、SysConfig 与模块化设计编码器速度环、差速运动学、MPU6050 航向环与直线稳定8 路灰度循迹、直线/半圆分段与 S1/S2/S3 状态机摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PIDMaxiCamPro、双主控通信、VOFA 遥测与可复现实验方法完整测评流程、失败案例复盘、比赛策略与开源交付全系列知识地图H题车载平衡滚球赛题与指标赛道圈时启停判据滚球目标点硬件系统MSPM0G3507TB6612与编码器灰度与MPU6050MaxiCamPro与步进电机软件控制速度环航向环灰度状态机三层滚球PID工程方法接线验证VOFA遥测回归测试测评复盘总览这道题不是单独写一个循迹 PID而是把机械结构、电源、传感器、实时调度、速度闭环、航向辅助、视觉通信、双主控安全和赛道状态机组合成一个可测量、可恢复、可验收的系统。调试时坚持“每次只改变一个因素”并用串口遥测、主机回归测试和实车视频记录证据。仓库资料边界小车运动主控工程公开仓库根目录smartcar_keil_diag/通用模块封装公开仓库中的ModulePackage/摆杆/滚球控制参考工程BalanceController/硬件与接线说明Hardware/主机测试与回归脚本Tests/主控、蓝牙、VOFA 和双主控协议说明仓库根目录下相应的*.md文件主控采用 LCKFB 天猛星 MSPM0G3507车体约为 30 cm × 24 cm车轮直径约 65 mm。实际使用的主要器件包括 JGB37-520 直流减速电机、TB6612 驱动器、MPU6050、8 路灰度传感器、MaxiCamPro 和无编码器步进电机。涉及具体电气参数、安装尺寸和控制增益时应以实测记录和仓库中的配置为准不要直接照搬示例数值。开源说明完整工程、博客、测试脚本和模块封装均发布在 GitHubhttps://github.com/wengqidaifeng/smartcar_keil_diag建议按 01→08 的顺序阅读需要查代码时从User/、Source/、ModulePackage/和Tests/进入。文章中的结论区分为“源码已实现”“主机测试已验证”和“必须在实车/机构上复测”三类便于后来者复现实验并继续改进。第六篇摆杆机械结构、MaxiCamPro 测量、步进电机与三层 PID1. 滚球系统为什么是欠驱动控制球槽只有一个可控倾角钢球却有位置和速度两个状态。控制器不能直接给钢球施加力只能改变槽的倾角让重力沿槽方向产生分量。因此球位置对球杆角度的响应具有惯性和积分特性倾角持续为正球会不断加速等球到目标点才把槽放平通常已经来不及球会依靠惯性越过目标。这类系统与普通舵机位置控制不同也与倒立摆不同。它不要求把不稳定杆直立但同样需要利用速度趋势提前制动。若只用target-position直接输出倾角P 小时响应慢P 大时反复越界。加入球速度环使控制器在接近目标且球仍高速运动时提前反倾可以显著减小超调。2. 机械结构是闭环的一部分球槽约 25 cm中心标记 O两侧至少覆盖 ±5 cm。转轴支撑高度约 6 cm必须保证最大倾角时槽底最低点仍满足题目高度要求并考虑槽体挠度、钢球直径和车体振动。若半槽长 125 mm、允许端点下降约 10 mm几何倾角上限约为asin(10/125)≈4.6°实际还要留安全余量。一个自由度必须由一个明确转轴约束。普通家具合页存在轴向窜动、回差和安装不同轴问题两只合页若不共线会卡滞步进电机发出脉冲但球杆角度不动最终表现为“PID 输出很大、球却反应慢”。推荐使用步进云台自带轴承或刚性转轴作为主转动副合页只作辅助承重摇臂和连杆两端使用可转动连接避免过约束。步进电机、联轴器、摇臂和支架应尽量同轴紧固后做位置标记便于发现松动。重件放在车体低层摆杆转轴靠近车体几何中心避免重心偏移导致驱动轮负载变化。相机固定在车体刚性支架上不能随球杆一起运动视野覆盖整个槽且连杆不遮挡球。3. 步进驱动不能等同于位置闭环D36A 接收 ST、DIR、EN 等控制信号ST 上升沿产生一步细分和电流由拨码设置。发送了多少脉冲只代表命令位置不代表电机实际到位加速度过大、机构卡滞、电流不足或碰到限位都会失步。因此开环步数最多用于软限位和诊断不能作为正式球杆角度反馈。当前正式方案考虑带 MT6816 编码器的步进电机。AB 相可提供每圈多计数反馈PWM 提供单圈绝对角Z 相提供每圈基准。AB 用于快速角度和角速度更新PWM/Z 用于上电校准和一致性检查。编码器 VCC 与输出逻辑必须确认是 3.3 V线序 GND/Z/PWM/B/A/VCC 不得凭颜色猜。球杆角度与电机轴角度通常不是固定比例因为摇臂—连杆机构的几何关系非线性。可以在安全范围内每隔约 1°记录一次编码器计数和实测球杆角度建立分段线性表。控制器根据编码器计数插值得到真实角度而不是简单乘一个常数。若最终使用无编码器步进电机至少需要机械回零、限位开关、低加速度和周期性重新找零但性能与故障可观测性会下降。4. MaxiCamPro 负责测量而不是下命令相机输出钢球位置、球杆中心和目标相关信息。典型BALL帧结构为BALL,count,x,y,z,diam,...数量后每个球包含横向、纵向、距离和直径字段。另一种正式脚本可输出球中心CX/CY、槽中心OX/OY和相对偏差。无论采用哪种格式视觉端都应该发送测量不能直接发送“步进向上/向下”命令。由主控计算方向的原因有三点。第一主控知道当前目标、限位和球杆角度第二视觉帧存在延迟过期方向命令可能已经反向第三主控可以在丢帧时执行安全降级。视觉只负责“球在哪里”控制器负责“下一步怎样动作”。像素不能直接当毫米。相机安装完成后在 O、50 mm、-50 mm 处分别采样多个帧建立像素到毫米的比例或分段映射。若槽在图像中不是竖直方向不能只用CY-OY应先求槽轴单位向量再将球心与 O 点的二维差投影到轴上。镜头畸变明显时需要更多标定点或透视校正。多球检测时要有目标选择规则例如选择最接近槽中心、直径合理且连续轨迹最近的球。字段数量必须满足24×count超长帧、非法数字、全零帧和数据年龄超限都应判为无效。视觉年龄超过约 150 ms 时停止新增步进请求持续约 500 ms 则锁存故障并失能具体门限要结合实测帧率调整。5. 三层串级 PID正式控制链为球位置误差进入位置环输出目标球速度目标球速度与视觉差分得到的实际球速度比较进入速度环输出目标球杆角度目标角度与编码器实际角度比较进入角度环输出目标脉冲频率或等效力矩命令。位置环关注最终误差带宽最低。可写为v_ball_ref PID_pos(x_ref - x)输出需要限幅避免距离目标较远时要求过高球速。接近目标时可使用目标速度曲线或误差死区。积分只用于克服轻微槽倾斜或摩擦不宜过大。球速度由相邻视觉帧差分v_ball (x_k - x_{k-1}) / Δt视觉噪声会被差分放大因此需要时间戳、低通或滑动拟合。速度环计算目标倾角theta_ref PID_vel(v_ball_ref - v_ball) theta_ff目标倾角限制在机械安全范围例如初期 ±24°。接近目标而球仍高速前进时速度误差会使theta_ref反向实现提前制动。角度内环根据编码器反馈输出目标脉冲频率step_rate PID_angle(theta_ref - theta)脉冲频率还要经过最大频率、加速度、方向建立时间和软限位。角度环带宽最高应先独立调好如果角度跟不上外层再聪明也无效。三层都要有抗饱和角度已经到限位时速度环和位置环不能继续积分。6. 调参顺序第一阶段不放球只调角度环。给出 -1°、0°、1° 等小阶跃观察实际角度、超调、稳定时间和编码器方向。先低脉冲频率、低加速度确认无失步、无卡滞和限位有效再增加速度。角度环不稳定时禁止进入下一阶段。第二阶段放球但固定目标在中心只调球速度环。可人工给球一个小扰动观察控制器是否产生反向倾角并减速。位置环暂时弱化或关闭避免两个外环互相掩盖。球速估算噪声过大时先处理视觉滤波不要用更大 D 硬压。第三阶段调位置环从小位移开始例如 ±1 cm再逐步扩大到 ±5 cm。先调 P 使球能到目标再加入速度环制动最后用很小积分消除偏置。每次记录到达时间、首次越界、最大超调、稳定时间和最终误差。5 s 任务应从离开 O 开始连续计时贯穿 5 cm 和 -5 cm 两段不能每段重新计时。7. 到达判定和任务状态机任务状态可设为 IDLE、HOMING、WAIT_CENTER、MOVE_POSITIVE、SETTLE_POSITIVE、MOVE_NEGATIVE、SETTLE_NEGATIVE、DONE、FAULT。进入每个状态时重置必要的 PID 历史和计时器。到达 5 cm 不只要求|e|≤1 cm还要求|v_ball|小于阈值并持续约 200300 ms否则球只是穿过误差带。从 5 cm 折返时不应瞬间给最大反向角。位置环会产生反向目标速度速度环根据当前正速度给出更强制动再逐渐加速向 -5 cm。机械角度、球速和视觉年龄全程受到安全监控。总超时、回零超时、限位、编码器反向、命令有脉冲但编码器不动都进入 FAULT。8. 车体姿态前馈小车加速和转弯会改变球的等效重力方向。摆杆主控可以接收小车 MPU6050 的车体倾角或角速度加入目标倾角前馈theta_ref PID_vel(...) Kf_car · car_angle前馈符号必须通过实验确认例如小车右转时球向哪侧滚球槽正角定义又是哪一侧抬高。前馈只补偿可预测扰动不替代球位置闭环。Kf 过大会在 IMU 噪声或路面颠簸时主动激励球应从零逐步增加并分别记录有/无前馈的误差峰值。双主控通信传输姿态时要带时间戳或序号。过期姿态不能无限使用通信断开时前馈回零滚球闭环仍根据视觉工作或安全停机。小车的急停事件最好提前通知摆杆主控使其把槽回到安全角并准备承受惯性而不是急停后才被视觉误差被动拉回。9. 与往年摆杆、云台和球板题的比较往年云台题的目标通常是角度或光点执行器位置与被控量关系相对直接本题钢球有惯性球杆角度只是加速度输入。传统位置环直接控制舵机角度的方法在低速演示中可能可用但很难同时满足快速与低超调。增加球速度环是本题相对普通云台控制的重要区别。与二维球板题相比本题只有一个自由度建模更简单但车体本身在运动扰动更强。与倒立摆相比球杆系统不要求维持不稳定平衡点但视觉延迟通常更大摩擦和球槽几何更难精确建模。因此工程上采用串级 PID、限幅、标定和前馈比一开始追求复杂模型控制更容易在比赛时间内落地。10. 本篇结论滚球控制能否成功首先取决于机械转轴、回差、限位和编码器反馈其次是视觉标定与延迟最后才是 PID 数值。三层控制把“到位置”“控制球速”“跟踪球杆角度”分开使每层可独立验证。MaxiCamPro 提供测量步进编码器提供执行反馈状态机提供时序和安全车体 IMU 提供前馈。只有这些环节都有证据静止 ±5 cm 和运动中稳定才具备可重复性。11. 简化动力学与控制参数的物理意义在小倾角下沿槽方向的重力分量近似为g·theta球的加速度还受滚动惯量和摩擦影响可粗略写成x_ddot K·theta - c·x_dot。这说明倾角主要控制加速度而不是位置速度环的存在具有明确物理意义。K 与钢球半径、转动惯量、槽形和摩擦有关不必精确建模也能通过小倾角阶跃实验估计响应方向和数量级。位置环输出上限决定最大目标球速速度环输出上限决定最大安全倾角角度环输出上限决定最大脉冲频率。三层限幅应从内到外一致如果机械只允许 ±4°速度环必须在此范围内若角度内环在某步频以上必然失步外环不能持续要求更快。抗饱和应把“下层已饱和”的信息反馈给上层冻结积分。摩擦会造成中心附近死区。可用很小积分或静摩擦补偿但补偿必须随球速和方向谨慎启用否则会造成抖动。球槽若有固定倾斜可以在标定后加入零位偏置若偏置随机构位置变化则说明几何或装配问题应优先修机械。用控制器长期对抗结构松动参数会随时间漂移。对于更高阶方案可以尝试状态反馈、LQR 或模型预测控制但前提是球位置、球速度和球杆角度可可靠估计。比赛时间有限时三层 PID 的优势是每层含义直观、可分步调试、易于加入限位和故障。高级算法不能绕过视觉延迟、回差和失步这些真实边界。

相关新闻

AI应用工程化:从模型能力到价值闭环的范式转移

AI应用工程化:从模型能力到价值闭环的范式转移

最近几个月,AI圈子里一个现象越来越明显:那些曾经定义了一个时代技术走向的顶尖大脑,正以前所未有的密度离开大厂,转身投入创业浪潮。这不再是零星的个人选择,而更像是一种集体性的“范式转移”。当看到“Jeff Dean 等…

2026/9/21 2:41:07 阅读更多 →
光锁相环Simulink仿真与稳定频差优化技术

光锁相环Simulink仿真与稳定频差优化技术

1. 光锁相环系统概述与Simulink仿真价值光锁相环(OPLL)作为光通信系统中的核心同步技术,其性能直接影响相干光通信的传输质量。传统实验室搭建实体OPLL系统存在成本高、参数调整周期长的问题,而基于Simulink的建模仿真可快速验证系…

2026/9/23 10:39:05 阅读更多 →
VC++操作Excel自动填充:从COM接口到性能优化的完整实战指南

VC++操作Excel自动填充:从COM接口到性能优化的完整实战指南

1. 项目概述:为什么要在VC里折腾Excel自动填充?干了这么多年Windows桌面开发,但凡涉及到跟业务数据打交道,十有八九逃不开Excel。无论是生成报表、导入数据,还是做数据分析工具,Excel的COM接口几乎是绕不开…

2026/9/23 6:11:39 阅读更多 →

最新新闻

人民银行征信系统开发避坑速查手册

人民银行征信系统开发避坑速查手册

人民银行征信系统开发避坑速查手册 面试被问“征信数据如何保证一致性”,你支支吾吾答不上来?别慌,这行代码逻辑你肯定在某个角落写过,只是没和【人民银行征信】这个高大上的词挂钩。 很多后端和前端老哥,平时写 CRUD…

2026/9/23 16:35:31 阅读更多 →
DeepSeek企业落地实战:从API调用到本地部署与多智能体编排

DeepSeek企业落地实战:从API调用到本地部署与多智能体编排

简介:这份《2025 DeepSeek企业落地应用讲义精华完整版》面向企业管理者、数字化转型负责人及AI应用开发者,系统讲解DeepSeek在企业场景中的落地路径。内容涵盖特征价值、交互生成、智能增强、部署开发四大篇章,从数字化转型的价值特征、科技驱…

2026/9/23 16:35:31 阅读更多 →
手机通讯录备份软件选型对比:3种方案性能优化实战

手机通讯录备份软件选型对比:3种方案性能优化实战

手机通讯录备份软件选型对比:3种方案性能优化实战 面试被问原理答不上来?很多开发者在落地手机通讯录备份功能时,往往陷入“能跑就行”的误区。当数据量达到数万条记录,或者面对高并发写入场景时,系统卡顿、数据丢失甚至崩溃就成了常态。这时候,…

2026/9/23 16:35:31 阅读更多 →
小波神经网络用于太阳辐照预测的实战指南

小波神经网络用于太阳辐照预测的实战指南

简介:本资源是一篇聚焦新能源发电预测的学术论文,面向电力系统工程师、光伏电站运维人员及机器学习算法研究者,解决太阳能辐照强度因间歇性与随机性导致的功率预测不准、电网调度困难等实际问题。论文提出一种融合小波分析与神经网络优势的WN…

2026/9/23 16:35:31 阅读更多 →
Mask R-CNN改进机械臂抓取:从实例分割到深度估计的完整路线

Mask R-CNN改进机械臂抓取:从实例分割到深度估计的完整路线

简介:一份面向机械臂抓取与计算机视觉研究者的 PDF 资料,内容围绕基于 Mask R-CNN 的机械臂最优抓取位置检测方法展开,适合深度学习、机器人控制及目标检测方向的初学者与进阶者学习参考,亦可作为机器人抓取课程设计与毕业设计的入…

2026/9/23 16:35:30 阅读更多 →
虚拟场景构建与漫游技术全流程解析:从资产规范化到光照与性能优化

虚拟场景构建与漫游技术全流程解析:从资产规范化到光照与性能优化

虚拟场景构建这行做了快十年,我越来越觉得真正拉开差距的往往不是软件技巧,而是对整条生产链路的把控能力。很多人一上来就扎进建模软件或者引擎里猛肝,结果模型导入引擎后比例错乱、光照漏光、漫游卡顿,返工成本比重新做一遍还高…

2026/9/23 16:34:30 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →