高层功能架构详解 - openExo
高层功能架构详解
- 1. 系统整体结构与模块化设计
- 2. 两大核心类:ExoData 与 Exo
-
- A. ExoData
- B. Exo
- C. 数据结构的层级关系
- 3. 多微控制器协作与BLE通信
- 4. 主控软件运行流程(主循环伪代码)
- 5. 架构优点小结
- 6. 与 Code Structure 的关系
- 实用建议
1. 系统整体结构与模块化设计
OpenExo 软件架构高度模块化。系统可根据需要自由组装各个功能模块,由一个 Arduino 级别的主控 MCU 统一调度。每个模块(如电机、控制器、传感器、LED 显示等)都是独立的,可插拔、可扩展,便于支持不同的实验和应用场景。
2. 两大核心类:ExoData 与 Exo
A. ExoData
-
定位:ExoData 作为数据与参数的载体,负责保存系统的所有遥测(telemetry)数据和当前控制参数。
-
结构特点:ExoData 的层级与 Exo 的模块化硬件结构一一对应,实现了“软硬件一体化抽象”。
-
作用:
-
存储和实时更新各传感器数据(如力敏电阻FSR、力矩传感器、马达反馈等);
-
存储和同步当前所有控制器参数、状态(如各关节的目标/实际力矩、控制模式等)。
-
B. Exo
-
定位:Exo 类是真正“驱动外骨骼硬件逻辑”的主对象,负责所有部件的实际控制和数据流转。
-
作用:
-
组织、调度所有底层模块(如马达、控制器、传感器、LED等);
-
每轮主循环执行run(),完成数据采集、控制运算、命令下发等任务。
-
C. 数据结构的层级关系
可以用如下树状结构理解 Exo/ExoData 关系:
Exo