uav/modules/algorithm/algorithm.md

30 lines
1.0 KiB
Markdown
Raw Permalink Normal View History

2024-09-22 16:53:51 +08:00
# algorithms
<p align='right'>neozng1@hnu.edu.cn</p>
> TODO:
> 1. 实现麦轮和全向轮的速度解算
> 2. 实现一些通用的滤波器,如指数平均,窗平均,低通等
## 总览和使用
module层的algorithm提供了一些供其他模块以及app的应用层使用的算法包括
1. PID控制器`controller.h`
2. crc8 crc16循环冗余校验
3. 卡尔曼滤波器`kalman_filter.h`,可以通过用户自定义函数配置为扩展卡尔曼滤波
4. `LQR.h`,线性二次型调节器
5. `QuaterninoEKF.h`,用于`ins_task`的四元数姿态解算和扩展卡尔曼滤波融合
6. `user_lib.h`,一些通用的函数,包括限幅、数据类型转换、角度弧度转换、快速符号判断以及优化开方等功能。多个模块都会使用的、不好区分的函数可以放置于此
## 代码结构
.c 为算法的实现,.h为算法对外接口的头文件
在编写应用的时候,你基本不会使用这里的函数,或是修改其实现。
若发现bug或需要增加功能联系组长讨论。