一体化关节模组的软件栈分三层,每层解决不同问题:
┌─────────────────────────────────────────────────────────────────────┐
│ 上层:算法与应用 │
│ 轨迹规划 / 模仿学习 / 力控策略 / 故障诊断 / 标定工具 / 数据采集 │
│ SDK & API / OTA / 算法订阅 / 数据飞轮 │
├─────────────────────────────────────────────────────────────────────┤
│ 中层:运动控制与状态控制 │
│ 位置环 / 速度环 / 电流环 / 力矩环 │
│ 摩擦补偿 / 重力补偿 / 柔顺控制 / 阻抗控制 / 导纳控制 │
│ 状态机 / 模式管理 / 保护策略 / 多关节协调 │
├─────────────────────────────────────────────────────────────────────┤
│ 下层:底软与实时底座 │
│ Boot / BSP / RTOS / MCU驱动 / PWM / ADC / 编码器 │
│ 定时器 / DMA / 看门狗 / 日志 / 参数存储 / 安全启动 │
├─────────────────────────────────────────────────────────────────────┤
│ 硬件:电机 / FOC / 编码器 / 扭簧 / 减速器 / 功率器件 / 温度 / 抱闸 │
└─────────────────────────────────────────────────────────────────────┘
核心区别:
这一节是工程化最容易翻车的地方。三层之间必须有清晰的接口边界,否则会出现"上层算法误改寄存器"、"中层控制绕过保护"、"底软逻辑漂移到应用"等灾难。
| 能力 | 底软 | 中层控制 | 上层算法应用 |
|---|---|---|---|
| PWM 输出 | 主责 | 使用 | 不直接碰 |
| 编码器采集 | 主责 | 使用 | 读取处理后数据 |
| FOC 算法 | 驱动支持 | 主责 | 不直接实现 |
| 位置环 | 不负责 | 主责 | 可下发目标 |
| 力矩估计 | 采样支持 | 主责 | 使用力矩结果 |
| 摩擦补偿 | 提供参数 | 主责 | 可做高阶模型 |
| 轨迹规划 | 不负责 | 执行轨迹 | 主责 |
| 重力补偿 | 不负责 | 可提供接口 | 通常由上层实现 |
| 碰撞检测 | 提供原始信号 | 实时保护 | 任务级判断 |
| 故障关断 | 硬件保护 | 主责 | 接收结果 |
| 预测性维护 | 提供日志 | 提供状态 | 主责 |
| OTA 升级 | Boot 支持 | 协同 | 平台管理 |
不能一上来就做高级算法,顺序必须是底软可运行 → 单关节闭环 → 单关节力控 → 多关节协同 → 算法应用 → 量产与订阅。每一阶段都有准出门禁。
本章是「软件栈三层」的总览,它和之前章节是纵横向的关系:
按照玉洁 8/5 23:13 PDT 飞书「我们今天一层一层聊」,本章节定下三层展开顺序: