飞机的姿态解算是传感器数据融合出来的:
特技(也叫rate模式 or 直升机模式 or 速率模式 or 手动模式_dji):只用了三轴陀螺仪,会尽量保持飞机当前姿态,比如保持飞机倾斜状态。姿态随时间有偏移的。
悬停(自稳):用了三轴陀螺仪和三轴加速度计,可以比较精确的解算出飞机当前相对于地球参考系的角度,也能在命令改变之前一直保持当前的姿态,姿态是有修正的,命令不变就会一直维持当前姿态,比如松杆时候,飞机维持水平姿态。
定高(althold or XX辅助模式 or dji的普通模式):三轴陀螺仪和三轴加速度计可以计算出飞机相对于地面的各轴夹角,辅助以气压计和z轴加速度计的融合,得到高度的相对变化率,并操作飞机维持给定的变化率,当给定的变化率为零时,飞机高度不变,就是定高。定高是加速度计和气压计甚至飞机姿态一起维持的,会随着时间飘移,因为一般飞控只从气压计中得到相对气压(也就是相对高度)的变化。而环境气压总是有变化的,所以长时间定高基本还是会缓慢上下浮动的(话说回来,续航好几小时的多轴也不多见)。
定点(poshold or loiter or dji的gps模式):在定高基础上引入gps,利用加速度陀螺仪融合得到飞机当前的位移速率,辅助以gps修正,得到一个比较精确的飞机当前绝对位置(即相对于地球的位置,经纬度之类的)和速度(包括速率和方向,指南针有贡献),然后修正飞机,让飞机按照指定的位移速度飞行,当输入的速度为零时,就是定点悬停了。原则上有gps这个起到标定绝对位置的模块,飞机会一直维持在一定范围内。但是我们平时看到的各种钉钉子稳如狗之类的,都是加速度和陀螺仪做主要贡献,因为gps精度是米级的,所以其实飞机并不是纹丝不动的,只是会在imu的滤波下非常缓慢的在一定范围内来回飘。毕竟精度有限(rtk除外)。