# algorithms

neozng1@hnu.edu.cn

> 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或需要增加功能,联系组长讨论。