# mentabotix

> A dedicated lib to control 4-fixed-wheels robot
---

### TODO

- [x] **定义状态空间**
    - 确定机器人的基础状态集合，如静止、前进、后退、转向等。

- [x] **设计状态迁移图**
    - 创建状态迁移图（StateMachine Diagram），明确各个状态之间的转移条件和触发事件。

- [x] **编写状态类**
    - 为每个状态创建相应的类，包含状态内执行的动作、状态转移逻辑以及状态间切换的方法。

- [x] **集成传感器数据**
    - 将来自机器人上的传感器数据（如距离传感器、陀螺仪、速度计等）整合进状态迁移逻辑，作为状态改变的依据。

- [ ] **实现控制算法**
    - 在每个状态下编写相应的电机控制指令，如调整马达转速、方向以实现不同的移动模式。

- [ ] **封装状态迁移函数**
    - 编写函数，用于处理外部输入（遥控器指令、自动导航目标点等）并据此触发状态迁移。

- [ ] **异常处理与安全机制**
    - 设计并实现状态迁移过程中的错误检查与恢复策略，确保机器人在遇到障碍物或其他异常情况时能够进入安全状态。

- [ ] **单元测试与集成测试**
    - 对每个状态类及整体状态迁移功能进行详尽的单元测试和集成测试，验证控制逻辑的正确性和稳定性。

- [ ] **文档撰写**
    - 编写详细的API文档和用户指南，说明如何使用mentabotix库控制四轮机器人。

- [ ] **部署与优化**
    - 完成代码调试和性能优化，将其部署至机器人平台，并进行实地运行测试。

- [x] **机器人动作**
    - [x] 直行
    - [x] 原地转向
    - [x] 差速转向
    - [x] 漂移
    - [x] 停止 

