sentry_chassis_hzz/TODO.md

241 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Work To be done & optimized
- **待完成**:不完成可能导致整车功能不完整
- **待优化**:对已有的功能进行性能提高/模块解耦/可维护性增强
- **待添加**:不紧急的/锦上添花的功能
**==标为黄色高亮的代表紧急程度高。==**
## assorted
- [ ] 由于我们读写和传递的数据结构都不大,基本不会发生读写时任务切换的情况。典型的数据读写时间都是~μs故没有对数据访问的接口添加互斥锁或关闭全局中断。后续有需求如大量数据复制可以添加。可以新增一个bsp_mutex或者module层的ds提供相应支持。实际上freertos提供了一些供线程任务间进行数据交互的类型和函数请查阅对应文档。
## BSP
### 待完成
### 待优化
#### bsp_pwm
- [ ] 是否允许修改预分频计数器?
### 待添加
#### bsp_spi
- [x] 待测试BMI088预计1.20前完成)
#### bsp_iic
- [x] 待测试OLEDIST8310预计1.20前完成)
#### bsp_gpio
- [x] 增加GPIO引脚的控制有待商榷是否需要单独添加HAL实际上已经提供较好的封装
#### bsp_usb
- [ ] 增加usb的支持用于虚拟串口或和PC进行高速通信
#### bsp_blueteetch
- [ ] 增加蓝牙功能,方便调试和测试
#### bsp_wifi
- [ ] 增加无线网络功能,方便调试和测试
#### bsp_log
- [ ] 在vscode中添加rtt viewer的查看窗口提供一键启用的task.json
---
## Module
### 待完成
- [ ] 给所有模块增加Daemon 模块以提供离线和异常检测
- [ ] 为键鼠/遥控器/ps手柄/视觉上位机等各种控制器提供一套统一的接口,把发来数据转化为标准的控制数据,包括底盘速度云台角度等等
- [ ] 给每个模块增加调试的条件编译并增加bsp log的输出。或直接在运行时添加log等级输出不同的信息。
#### buzzer
- [ ] 使用bsp_pwm添加buzzer模块
- [ ] 添加初始化完成时的音乐播放
#### ==servo_motor==
舵机模块需要预先定义90/180/360连续旋转的电机类型并且能够设定max和min位置。
- [x] 编写舵机模块(待测试和优化)
#### imu
- [x] 增加角速度的反馈,并且能够获取加速度值(目前看来修改反馈数据类型定义即可)
#### refereeUI
- [x] 提供UI绘制封装
- [x] 绘制电容剩余容量/当前底盘状态/当前云台状态/底盘位置/射表
- [ ] 绘制视觉识别UI/识别状态/击打状态
#### ==master_machine==
- [ ] 增加IMU数据的时间戳
- [ ] 增加加速度计数据
- [ ] 重构seasky protocol的接口
- [ ] 增加数据未更新的处理
### 待优化
#### buzzer
> 是否需要在module层就和**daemon**模块配合?
- [ ] 增加错误或异常提示音
- [ ] 增加功能提示音
#### led
> 是否需要和**daemon**模块配合这同时会影响到module层的led_task放在这一并解决。
- [ ] 增加错误或异常流水灯
- [ ] 增加功能点灯
#### BMI088
需要重写部分数据结构并在bsp_spi完成之后移植到新的bsp上。等待bsp_spi的测试
- [x] 重构imu模块
#### remote_control
- [x] 将键盘数据解析替换为位域操作(已完成,待测试)
#### referee
- [ ] 优化三个裁判系统模块的组织关系
#### message_center
- [ ] 增加队列剩余信息和数据时间戳的支持
#### can_comm
- [ ] 增加can_comm数据未更新的处理
#### controller
- [x] 增加前馈数据
- [ ] 将PID的初始化改写为PIDRegister的形式,在controller统一分配内存.
#### user_lib
- [ ] 将所有通用的计算函数和常用函数汇集在此
#### dji_motor
- [ ] 增加3508和2006的开环零位校准函数
- [ ] 为实例增加低通滤波系数变量,使不同电机有不同的配置
- [ ] 正反转标志位设置,需要修改反馈量和pid计算
#### LKmotor
- [ ] 正反转标志位设置,需要修改反馈量和pid计算
#### HTmotor
- [ ] 正反转标志位设置,需要修改反馈量和pid计算
### 待添加
#### unicomm
- [ ] 完成初版构建
#### step_motor
- [ ] 增加步进电机模块
#### referee_communication
- [x] 增加裁判系统多机通信功能
#### controller
- [ ] 增加扰动观测器,可能需要新增模块
- [ ] 增加模型控制器,可能需要新增模块
#### ws2816
- [ ] 通过bsp_pwm添加支持
---
## APP
### 待完成
- [ ] 增加调试的条件编译,使得在没有连接其他应用时也可以假装有那些应用而正常调试运行
#### ==robot_cmd==
- [ ] 键鼠控制
- [x] 双板兼容(待测试)
#### ==chassis==
- [ ] 根据裁判系统的功率数据和超级电容,进行输出限幅
- [x] 双板兼容(待测试)
#### ==shoot==
- [ ] 增加卡弹检测和反转
- [ ] 弹仓盖控制需待servo_motor完成
- [ ] 42mm发射机构兼容
### 待优化
#### robot_cmd
- [x] 解耦各个应用的运行模式
- [ ] 优化消息发布和接收性能
#### gimbal
- [ ] 增加底盘速度前馈控制
#### chassis
- [ ] 根据电机的实际速度计算底盘的真实运动
- [ ] 若为双板根据IMU的数据对电机实际速度进行融合
#### shoot