1 · 软件栈全景(底层 → 上层)

一体化关节模组的软件栈分三层,每层解决不同问题:

┌─────────────────────────────────────────────────────────────────────┐
│ 上层:算法与应用                                                    │
│ 轨迹规划 / 模仿学习 / 力控策略 / 故障诊断 / 标定工具 / 数据采集       │
│ SDK & API / OTA / 算法订阅 / 数据飞轮                               │
├─────────────────────────────────────────────────────────────────────┤
│ 中层:运动控制与状态控制                                            │
│ 位置环 / 速度环 / 电流环 / 力矩环                                   │
│ 摩擦补偿 / 重力补偿 / 柔顺控制 / 阻抗控制 / 导纳控制                 │
│ 状态机 / 模式管理 / 保护策略 / 多关节协调                           │
├─────────────────────────────────────────────────────────────────────┤
│ 下层:底软与实时底座                                                │
│ Boot / BSP / RTOS / MCU驱动 / PWM / ADC / 编码器                   │
│ 定时器 / DMA / 看门狗 / 日志 / 参数存储 / 安全启动                   │
├─────────────────────────────────────────────────────────────────────┤
│ 硬件:电机 / FOC / 编码器 / 扭簧 / 减速器 / 功率器件 / 温度 / 抱闸     │
└─────────────────────────────────────────────────────────────────────┘
    

核心区别:

一句话分工:
· 底软 = 确定性(实时、准确、可靠)
· 控制 = 稳定性(响应、抗扰、鲁棒)
· 算法应用 = 智能性(任务、性能、迭代)

2 · 三层内容速览

⬇ 底层:底软与实时底座

  • Boot 与启动链
  • BSP 与 RTOS
  • 电机与功率级驱动
  • 编码器与传感器采集
  • 参数与标定管理
  • 诊断、日志与故障记录

⚙ 中层:运动控制

  • 基础闭环(位置/速度/电流)
  • FOC 与电机控制
  • 摩擦、回差、非线性补偿
  • 力矩估计与力控
  • 阻抗/导纳/柔顺控制
  • 状态机与控制模式管理
  • 安全保护与降额
  • 多关节协调

⬆ 上层:算法与应用

  • 轨迹与动作生成
  • 动力学与前馈补偿
  • 示教、拖动与动作复现
  • 高级力控与接触任务
  • 诊断算法与预测性维护
  • 标定工具与工程工具链
  • SDK / API / 应用生态

3 · 三层之间的边界(不能错位)

这一节是工程化最容易翻车的地方。三层之间必须有清晰的接口边界,否则会出现"上层算法误改寄存器"、"中层控制绕过保护"、"底软逻辑漂移到应用"等灾难。

能力底软中层控制上层算法应用
PWM 输出主责使用不直接碰
编码器采集主责使用读取处理后数据
FOC 算法驱动支持主责不直接实现
位置环不负责主责可下发目标
力矩估计采样支持主责使用力矩结果
摩擦补偿提供参数主责可做高阶模型
轨迹规划不负责执行轨迹主责
重力补偿不负责可提供接口通常由上层实现
碰撞检测提供原始信号实时保护任务级判断
故障关断硬件保护主责接收结果
预测性维护提供日志提供状态主责
OTA 升级Boot 支持协同平台管理
边界原则:
· 上层算法不能直接打断底层实时控制环(CPU 占用要隔离)
· 中层控制不能绕过底层硬件保护(不能"关"掉看门狗来满足指标)
· 底层不能把业务逻辑写进驱动(驱动应该可以脱离应用独立运行)

4 · 工程化落地 6 阶段(顺序不能乱)

不能一上来就做高级算法,顺序必须是底软可运行 → 单关节闭环 → 单关节力控 → 多关节协同 → 算法应用 → 量产与订阅。每一阶段都有准出门禁。

阶段 1 · 底软可运行

准出门禁:上电 / 自检 / 电机可使能 / 编码器可读 / 电流可采 / PWM 可控 / 故障可关断 / 参数可保存 / 日志可读取
对应章节:2-8 底层底软详细拆解(下一节详细展开)

阶段 2 · 单关节闭环

准出门禁:电流环稳定 / 速度环稳定 / 位置环稳定 / 正反转无异常 / 低速不抖 / 负载突变不失控 / 温升可接受
对应章节:2-9 中层控制详细拆解(待办)

阶段 3 · 单关节力控

准出门禁:力矩零点稳定 / 双编码器一致 / 扭簧模型有效 / 力矩误差可控 / 阻抗控制稳定 / 过载保护有效
对应章节:2-9 中层控制 · 力矩估计小节(待办)

阶段 4 · 多关节协同

准出门禁:多轴同步 / 轨迹执行 / 峰值电流可控 / 某轴故障可降级 / 急停一致 / 热累积可接受
对应章节:2-9 中层控制 · 多关节协调小节(待办)

阶段 5 · 算法应用

准出门禁:示教 / 轨迹编辑 / 动作复现 / 接触任务 / 诊断 / 数据采集 / 客户 SDK
对应章节:2-10 上层算法应用详细拆解(待办)

阶段 6 · 量产与订阅

准出门禁:自动标定 / 自动测试 / OTA / 参数权限 / 版本兼容 / 远程诊断 / 健康度评分 / 算法包订阅管理
对应章节:2-10 上层算法应用 · 量产与订阅小节(待办)

5 · 与已有章节的关系(上下文锚点)

本章是「软件栈三层」的总览,它和之前章节是纵横向的关系:

2-5 通信总线(一周前聊的横向主线)
关节内部、关节到控制器、控制器到上位机,EtherCAT/CAN FD、OPC-UA/MQTT 链路。是一条横向主线。本章把这部分先拿掉,从纵向三层看。
2-6 软件与算法架构总览(4 层 + 28 任务)
从「L1 应用 / L2 软件 / L3 算法 / L4 工程活动」四个层面对落地活动做总览。本章 2-7 是从软件栈纵向的另一个切面视角,与 2-6 互补。
2-8 底层底软详细拆解 → 今天从这层开始
Boot/BSP/RTOS、电机驱动、传感器采集、参数标定、诊断与安全。详细展开 6 块内容。

6 · 今天建议的拆解顺序

按照玉洁 8/5 23:13 PDT 飞书「我们今天一层一层聊」,本章节定下三层展开顺序:

  1. 先聊下层底软(今天重点) · Boot / BSP / RTOS / 电机驱动 / 传感器采集 / 参数标定 / 诊断与安全
  2. 再聊中层控制(待办) · FOC / 位置/速度/力矩环 / 摩擦补偿 / 力矩估计 / 阻抗/导纳 / 状态机与保护 / 多关节协调
  3. 最后聊上层算法应用(待办) · 轨迹规划 / 示教 / 力控任务 / 诊断预测 / SDK / 数据飞轮和算法订阅
为什么先聊底软:底软如果没有把实时性、采样、参数、故障和升级打牢,中层控制调不稳,上层算法也只能停在 demo 层。
下一步:进入 2-8 底层底软详细拆解,按 6 块内容(Boot·BSP / 电机与功率 / 编码器 / 参数标定 / 诊断日志 / 安全保护)逐块展开。