mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-24 19:47:44 +08:00
修改文档结构,更新TODO list
This commit is contained in:
37
TODO.md
37
TODO.md
@@ -10,6 +10,12 @@
|
||||
|
||||
- [ ] 由于我们读写和传递的数据结构都不大,基本不会发生读写时任务切换的情况。典型的数据读写时间都是~μs,故没有对数据访问的接口添加互斥锁或关闭全局中断。后续有需求(如大量数据复制)可以添加。可以新增一个bsp_mutex或者module层的ds,提供相应支持。实际上freertos提供了一些供线程(任务)间进行数据交互的类型和函数,请查阅对应文档。
|
||||
|
||||
最简单的防止重入或数据竞争的方式是创建一个bool类型值实现互斥访问。当一个线程或中断要访问某个变量时,先检查这个变量对应的bool锁是否为1,若不为1则赋值为1表明当前有线程访问变量,之后可以开始对该变量的操作,结束读写后释放锁即赋0。不像osSemaphore或osMessageQueue等只允许在中断中添加消息或释放信号量/互斥量,这种变量锁可以在任意处加锁解锁。
|
||||
|
||||
若锁获取失败,则直接退出,或将当前线程挂起等待下一次唤醒。最常见的情况是一个线程需要从一块数据区或缓冲区读取数据而某个中断会向这个区域写入数据,线程在读取的时候很可能会被中断打断。那么中断进入时发现该数据已经被上锁,就不会强行写入。为了保证数据的实时性,你可以选择将数据存入队列或启动一个新的任务,当锁释放时再写入数据。如果数据量较小,你不在乎开销,则可以使用freerots提供的osMessageQueue或osMessageMailbox。
|
||||
|
||||
目前,我们在bsp_dwt中添加了一个位锁,防止中断中调用DWTGetDeltaT或DWTGetTimeline函数更新DWT维护的时间时打断任务中的相同函数导致计数被重复更新,或引起错误的DWT溢出检测。
|
||||
|
||||
## BSP
|
||||
|
||||
### 待完成
|
||||
@@ -34,7 +40,7 @@
|
||||
|
||||
#### bsp_wifi
|
||||
|
||||
- [ ] 增加无线网络功能,方便调试和测试
|
||||
- [ ] 增加无线局域网功能,方便调试和测试
|
||||
|
||||
---
|
||||
|
||||
@@ -46,12 +52,6 @@
|
||||
|
||||
- [ ] 给每个模块增加调试的条件编译,并增加bsp log的输出。或直接在运行时添加log等级,输出不同的信息。
|
||||
|
||||
#### buzzer
|
||||
|
||||
- [ ] 使用bsp_pwm添加buzzer模块
|
||||
|
||||
- [ ] 添加初始化完成时的音乐播放
|
||||
|
||||
#### ==servo_motor==
|
||||
|
||||
舵机模块,需要预先定义90/180/360连续旋转的电机类型,并且能够设定max和min位置。
|
||||
@@ -76,15 +76,7 @@
|
||||
|
||||
> 是否需要在module层就和**daemon**模块配合?
|
||||
|
||||
- [ ] 增加错误或异常提示音
|
||||
- [ ] 增加功能提示音
|
||||
|
||||
#### led
|
||||
|
||||
> 是否需要和**daemon**模块配合?这同时会影响到module层的led_task,放在这一并解决。
|
||||
|
||||
- [ ] 增加错误或异常流水灯
|
||||
- [ ] 增加功能点灯
|
||||
当前实现为buzzer是单独的module,若需要蜂鸣器警报的module可以自行包含buzzer.h以创建不同情况下的警报,如电机离线、堵转、遥控器离线等。
|
||||
|
||||
#### BMI088
|
||||
|
||||
@@ -92,12 +84,11 @@
|
||||
|
||||
#### remote_control
|
||||
|
||||
- [ ] 增加长按/短按检测
|
||||
- [ ] 增加长按/短按检测 (是否有必要?)
|
||||
|
||||
#### message_center
|
||||
|
||||
- [ ] 增加队列剩余信息和数据时间戳的支持
|
||||
- [ ] 增加数据为空的处理
|
||||
- [ ] 提供直接传递指针的接口?
|
||||
|
||||
#### can_comm
|
||||
@@ -108,10 +99,6 @@
|
||||
|
||||
- [ ] 将PID的初始化改写为PIDRegister的形式,在controller统一分配内存.
|
||||
|
||||
#### user_lib
|
||||
|
||||
- [ ] 将所有通用的计算函数和常用函数汇集在此
|
||||
|
||||
#### dji_motor
|
||||
|
||||
- [ ] 增加3508和2006的开环零位校准函数
|
||||
@@ -142,7 +129,7 @@
|
||||
#### controller
|
||||
|
||||
- [ ] 增加扰动观测器,可能需要新增模块
|
||||
- [ ] 增加模型控制器,可能需要新增模块
|
||||
- [ ] 增加基于模型的控制器,可能需要新增模块
|
||||
|
||||
#### ws2816
|
||||
|
||||
@@ -170,10 +157,10 @@
|
||||
|
||||
#### gimbal
|
||||
|
||||
- [ ] 增加底盘速度前馈控制
|
||||
- [x] 增加底盘速度前馈控制
|
||||
|
||||
#### chassis
|
||||
|
||||
- [ ] 根据电机的实际速度计算底盘的真实运动(轮式里程计)
|
||||
- [x] 根据电机的实际速度计算底盘的真实运动(轮式里程计)
|
||||
- [ ] 若为双板,根据IMU的数据对电机实际速度进行融合
|
||||
|
||||
|
||||
Reference in New Issue
Block a user