📌 现状背景 (Context)
当前 Application/Task 层存在明显的“集中式控制与高耦合”问题。Control_Task 承担了状态机、感知融合、LQR/VMC 计算和执行器映射等过多职责(上帝任务)。且各任务之间通过直接读写全局变量通信,缺乏显式的边界保护。
为了后续方便移植、离线仿真以及维护,需要进行自顶向下的架构解耦。
🎯 重构目标 (Objectives)
将当前混合的逻辑拆分为严格的 Input (感知快照) -> State Estimation (状态估计) -> Control (平衡与运动学计算) -> Actuation (执行器命令) 四层架构。
📝 分阶段执行清单 (Tasks)
Phase 1: 物理边界隔离 (最优先)
Phase 2: 输出与通信解耦
Phase 3: 业务逻辑拆分
🔗 相关参考
- 诊断来源:AI Code Agent (GPT-5.5) 逆向工程分析报告
📌 现状背景 (Context)
当前
Application/Task层存在明显的“集中式控制与高耦合”问题。Control_Task承担了状态机、感知融合、LQR/VMC 计算和执行器映射等过多职责(上帝任务)。且各任务之间通过直接读写全局变量通信,缺乏显式的边界保护。为了后续方便移植、离线仿真以及维护,需要进行自顶向下的架构解耦。
🎯 重构目标 (Objectives)
将当前混合的逻辑拆分为严格的
Input (感知快照) -> State Estimation (状态估计) -> Control (平衡与运动学计算) -> Actuation (执行器命令)四层架构。📝 分阶段执行清单 (Tasks)
Phase 1: 物理边界隔离 (最优先)
Control_Task周期起点,统一读取INS_Info、电机反馈和遥控器数据,生成sensor_snapshot_t,后续控制算法仅依赖此快照。USER_ADC_Voltage_Update)、蜂鸣器控制和调试串口发送 (USART_Vofa_Justfloat_Transmit) 移出,建立独立的 telemetry/monitor 任务。Phase 2: 输出与通信解耦
SendValue(包含 T_Calf, T_Thigh, Current 等) 从庞大的Control_Info结构体中抽离出来,定义为独立的motor_command_t包。CAN_Task不再直接读取Control_Info。改为通过双缓冲或队列接收motor_command_t,将其变为纯粹的“总线发送任务”。Phase 3: 业务逻辑拆分
CAN_Task中剥离,建立专属的motor_manager_task。Control_Task.c中抽离至独立的control_params.c或配置文件中。🔗 相关参考