- estimator:(1)IMU模块的姿态解算,涉及到互补滤波、四元数、旋转矩阵的运算。(2)使用GPS,视觉传感器,光流传感器、气压计等对飞机的位置进行解算。
- control:(1)姿态控制:串级PID,包括位置环和速度环。(2)位置控制:
- commander:靠近用户的上层,主要实现飞机模式的控制;
- navigator:(导航器)实现飞机的飞行轨迹问题;
- Mixer:主要是电机的动力分配。
- 底层驱动:主要是各种通讯协议。
position_estimator:
数学原理:加速度进行二次积分得到位置信息。
1.加速度如何获取?加速度偏差怎么求?多传感器和加速度计的关系?多传感器如何融合数据?
2.加速度获得之后如何计算位置?
correction动态误差,bais静态误差
modules/position_estimator文件夹下,有params.cpp,CMakeLists.txt,position_estimator_inav_main.cpp,inertial_filter。重点关注后两个文件。
1.加速度是通过加速度计测得,然后减去加速度偏差。加速度偏差通过多传感器数据融合得到。多传感器和加速度计实际上就是互补滤波。
2.inertial_filter是加速度的一次积分得到速度,二次积分得到位置的过程中,对动态误差的处理进行校准。
position_estimator_inav_m