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/8/10 2:50:59 阅读更多 →
光锁相环Simulink仿真与稳定频差优化技术

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

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

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

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

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

2026/8/9 2:41:56 阅读更多 →

最新新闻

如何免费解锁专业级生物图像分析:QuPath完全指南

如何免费解锁专业级生物图像分析:QuPath完全指南

如何免费解锁专业级生物图像分析:QuPath完全指南 【免费下载链接】qupath QuPath - Open-source bioimage analysis for research 项目地址: https://gitcode.com/gh_mirrors/qu/qupath 你是否正在寻找一款功能强大且完全免费的开源生物图像分析工具&#xf…

2026/8/10 2:51:25 阅读更多 →
BEMT螺旋桨性能分析:Matlab实现与应用

BEMT螺旋桨性能分析:Matlab实现与应用

1. 动量理论剖面刀片方法(BEMT)在螺旋桨性能分析中的应用螺旋桨作为飞行器推进系统的核心部件,其性能直接影响飞行器的整体效率。动量理论剖面刀片方法(Blade Element Momentum Theory, BEMT)是目前最常用的螺旋桨性能…

2026/8/10 2:51:25 阅读更多 →
Kubernetes Pod QoS机制详解与内存管理实践

Kubernetes Pod QoS机制详解与内存管理实践

1. Kubernetes Pod QoS 基础概念解析在Kubernetes集群中,QoS(Quality of Service)是保障Pod资源分配和调度优先级的重要机制。我第一次在生产环境遇到QoS问题是在一个电商大促期间,当时某个核心服务Pod因为内存不足被频繁OOM Kill…

2026/8/10 2:51:25 阅读更多 →
Kubernetes生产环境部署与核心配置实战指南

Kubernetes生产环境部署与核心配置实战指南

1. 项目背景与核心价值 在云原生技术领域,Kubernetes(简称k8s)已经成为容器编排的事实标准。从业十年间,我见证了k8s从最初的Borg论文概念发展到如今支撑全球数百万应用的庞大生态。"k8s十年签证"这个比喻形象地描述了掌…

2026/8/10 2:51:25 阅读更多 →
现代图形渲染管线与Shader编程核心技术解析

现代图形渲染管线与Shader编程核心技术解析

1. 渲染流水线:图形处理的工业流水线 现代图形渲染本质上是一条高度标准化的工业流水线,就像汽车制造厂的装配线。每个环节都有明确的输入、加工规则和输出标准。以OpenGL为例,经典渲染流程可以分为六个关键阶段: 1.1 顶点处理阶…

2026/8/10 2:51:25 阅读更多 →
2026乌鲁木齐考公培训机构TOP5排名及口碑榜:这样选才能避开“假努力”的坑

2026乌鲁木齐考公培训机构TOP5排名及口碑榜:这样选才能避开“假努力”的坑

在乌鲁木齐,考公培训市场早已不是几家独大的局面。线上品牌下沉、本地机构崛起、全国连锁持续升级,让很多备考者在选择时陷入纠结:到底哪家更靠谱?哪家更适合自己?本期我们基于师资透明度、课堂强度、督学管理、学员口…

2026/8/10 2:50:25 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →