2024.05 — 2024.08RoboMaster 赛场部署 · 开源项目

舵轮底盘与功率控制

算法与嵌入式开发 · 独立完成并开源

用电机速度与力矩构造回归特征,以超级电容或满足条件的裁判系统总功率作为实测标签,在 1000 Hz 控制任务中完成在线辨识、功率分配与能量约束。

在线辨识
1000 Hz 任务;满足实测标签与死区条件时更新
硬件依赖
复用电机反馈与系统已有总功率数据,不新增母线采样
复用范围
麦轮 / 全向轮 / 舵轮 / 轮腿
赛季结果
全队零超功率扣血
模块复用于麦轮、全向轮、舵轮和轮腿底盘,并公开代码与技术说明;2024 赛季全队没有因底盘超功率触发裁判扣血。

背景

用电机速度与力矩构造回归特征,以超级电容或满足条件的裁判系统总功率作为实测标签,在 1000 Hz 控制任务中完成在线辨识、功率分配与能量约束。

模块复用于麦轮、全向轮、舵轮和轮腿底盘,并公开代码与技术说明;2024 赛季全队没有因底盘超功率触发裁判扣血。

1000 Hz 指 FreeRTOS 功率任务的 1 ms 周期,而不是每个周期都必然更新 RLS;更新还受标签可信度、死区、能源状态和断联条件约束。

个人贡献

  • 从电机速度与力矩构造回归特征,并以有效的总功率测量形成 RLS 标签。
  • 实现 RLS 参数估计、功率预算分配、允许力矩反解与能量闭环。
  • 定义裁判系统、超级电容和单电机异常时的降级路径,隔离无效样本。
  • 完成多种底盘适配、实机验证、开源代码整理与技术文档。
技术环境
STM32 · FreeRTOS · 1 kHz 功率控制任务 · Online Power Model · Energy Loop · Swerve Kinematics · Fault Degradation

系统实现

反馈有效性

电机反馈构造回归特征;超级电容测得的底盘总功率,或特定失效条件下可信的裁判总功率,作为标签。

在线模型

功率控制任务以 1 ms 周期运行;只有在标签可信、死区和连接条件满足时,RLS 才更新模型参数。

功率分配

根据速度误差和预测功率分配预算,再反解各轮允许力矩。

能量与降级

裁判缓冲能量或超级电容能量调整总上限;标签可用性、能源状态与断联组合共同决定是否继续辨识。

信息如何进入系统
电机速度 + 力矩构造回归特征
实测底盘总功率超级电容;满足条件时使用裁判数据
RLS · 1 ms task满足标签、死区与连接条件时更新
各电机预测功率需求权重与总预算分配
允许力矩裁判 / 电容能量路径约束总上限

断联条件与实际行为

输入状态模型更新功率 / 能量上限输出行为
裁判、超级电容与电机反馈有效电机速度 / 力矩构造特征;超级电容底盘总功率作为标签,满足死区时更新 RLS裁判功率上限与超级电容能量环共同约束按需求与预测功率分配各电机预算
裁判失联,超级电容与电机有效超级电容仍提供总功率标签,RLS 可继续满足条件的更新使用本地估算的保守裁判上限,并保留电容能量反馈在计算后的保守总上限内继续分配
超级电容失联,裁判与电机有效仅当电容被判断为能量耗尽且裁判总功率有效时采用裁判标签;否则停用更新回退到裁判功率 / 缓冲能量路径按较保守上限分配并等待电容恢复
单电机反馈失联旧实现最多约 1 s 保留最近速度 / 力矩用于功率估计,随后排除;并非立刻当作零功率总上限仍由当前裁判 / 电容状态决定失联电机不继续正常驱动,其余电机在现有预算内工作
裁判与超级电容均失联没有可信总功率标签,停止在线更新并使用模型估计关闭能量环,按最近等级计算保守上限限制总输出,等待任一测量链路恢复

技术决策

不用额外母线采样

背景
若增加专用电流/电压采样,硬件、标定和跨车部署都会变复杂。
选择
用已有电机反馈构造模型特征,复用超级电容或裁判系统提供的底盘总功率作为实测标签。
完成结果
软件模块可以在多种底盘上复用,部署只依赖已有通信反馈。

把“能否更新”写成组合条件

背景
断联、CRC 错误或陈旧反馈会快速污染在线参数,随后影响全部电机的功率分配。
选择
把实测标签是否可信、能源状态和断联组合写成显式条件;单电机刚失联时短暂保留最近反馈用于保守功率估计,随后排除。
完成结果
RLS 更新与功率限制不再共享一个含糊的“在线”状态,每种输入组合都有可核对的行为。

调试过程

从“异常数据也能算”到显式降级矩阵

在线辨识在正常数据下收敛良好,但实机通信断开时,旧值和无效反馈仍可能被当作新样本。

现象

  • 单电机刚失联时,立刻把旧功率视为零会低估仍在衰减的机械与电气功率。
  • 裁判或电容数据不可用时,总功率上限缺少一致语义。

排查

  • 逐一断开裁判系统、超级电容和电机,记录模型输入与最终力矩限制。
  • 把状态组合写成失效矩阵,检查每条路径是否仍使用陈旧数据。

根因

回归特征、总功率标签和能量上限来自不同设备;若只用一个“连接/断开”判断,便无法表达超级电容仍可测量、裁判数据暂失或电机反馈刚超时等组合。

修复

  • 用超级电容总功率作为主要标签;电容失联时,只有在判断电容能量耗尽且裁判功率有效的条件下才改用裁判标签。
  • 裁判失联但电容有效时仍可保留实测标签;两者都不可用时停用在线更新并进入保守限制。
  • 单电机失联后短暂保留最近速度与力矩反馈用于功率估计,超时后再排除,避免瞬间低估。
  • 把异常状态与正常功率分配拆开,避免隐式 fallback。

验证与证据

  • 执行断联、恢复、充电和补电实机测试,并观察参数与输出是否连续。
  • 在不同底盘与赛季任务中复用,最终全队没有发生超功率扣血。
复盘

在线算法的可靠性首先取决于输入语义;先定义哪些数据可信,再谈模型收敛和性能。

验证与证据

  1. 用 RLS、充电、补电和舵轮实机视频验证模型与能量路径。
  2. 模块在麦轮、全向轮、舵轮和轮腿底盘复用。
  3. 2024 赛季全队没有因底盘超功率被裁判系统扣血;这是整套电控、参数和操作共同运行的赛季结果,不单独证明模型精度。

1000 Hz 指 FreeRTOS 功率任务的 1 ms 周期,而不是每个周期都必然更新 RLS;更新还受标签可信度、死区、能源状态和断联条件约束。

研发与现场素材

公开资料