前言
四轴飞控的重点,同时也是难点就是飞控的姿态解算,要求读者有一定的数学基础,但在此之前,先了解关于四轴飞控的基本概念,下面列举了一些,比较简单,但是对后面的学习很重要。
1. 两个坐标系
地球坐标系又叫地理坐标系,东北天方向对应坐标系的X,Y,Z轴,用坐标系N表示,四轴飞行器上固定在机体上的一个坐标系,一般称之为机体坐标系,用坐标系B表示,飞行器在飞行过程中,固定在机体上的坐标系相对于地理坐标系产生了相对转动,产生了一定的位置关系,可以用欧拉角、四元数等来加以描述。
2. 什么是姿态
姿态是用来描述一个刚体固连坐标系和参考坐标系之间的角位置关系,在四轴飞行器中, 姿态就是指飞行器相对于地理坐标系的俯仰/横滚/航向情况。在咱们地球上,就是指飞行器在地理坐标系中的俯仰/横滚/航向情况。飞行器需要实时知道当前自己的姿态,才能够根据需要操控其接下来的动作,例如保持平稳,例如实现翻滚。
3. 姿态解算(attitude-resolving)
姿态解算需要解决的是无人机飞行器在地理坐标系中姿态。可以想象一下,在无人机的质心上始终有一个地理坐标系N,它只随着无人机的运动做水平X,Y方向的平移或Z方面上下移动而不发生转动,而在无人机上固联着一个机载坐标系B,它随着无人机姿态的变化而发生相对于坐标系N的转动,具体表现为X.Y.Z轴上的三个角度变化。
姿态解算是指根据IMU(inertial measurement unit惯性测量单元)数据(陀螺仪、加速度计、罗盘等)求解出飞行器的空中姿态,也就是相对转动角度,表示形式可以是欧拉角、四元数等。
了解了飞行器的姿态,一方面可以用于无人机的自我稳定控制,如有外界干扰的状态下(如空中有风)空中悬停、以一定倾斜角度朝一个方向飞行等;另一方面,可接收遥控器的控制信息,比如操作者通过遥控器让无人机以一定倾角飞行,无人机通过对比期望角度和自身当前姿态角,通过PID算法更新四个电机PWM输出进行控制。
3.1 角位置关系测量
如上所说,地球坐标系N是固定的。四轴飞行器上固定一个坐标系B,这个坐标系B在坐标系N中运动。那么如何知道坐标系B和坐标系N的角位置关系呢,也就是怎么知道飞行器相对于地球这个固定坐标系N转动了一下航向,或者侧翻了一下机身,或者掉头下栽。这就是传感器需要测量的数据,传感器包括陀螺仪,加速度计,磁力计。通过获得这些测量数据,得到坐标系B和坐标系N的角位置关系。
惯性测量模块:IMU(Inertial Measurement Unit),提供飞行器在空间姿态的传感器原始数据,一般由陀螺仪传感器/加速度传感器/电子罗盘提供飞行器9DOF数据。
飞行器根据陀螺仪的三轴角速度对时间积分得到的俯仰/横滚/航向角,这是快速解算。快速解算得到的姿态是存在误差的,而且误差会累加,如果再结合三轴地磁和三轴加速度数据进行校正,得到准确的姿态,这就是深度解算。
当然,快速解算的姿态一般是不能够用于控制飞行器的,因为误差太大。我们一般说的姿态解算就是深度解算。
3.2 姿态解算算法
姿态解算就是根据IMU提供的数据(三轴陀螺仪,三轴加速度计,电子罗盘数据),通过一定的数据融合后,得到准确的飞行器姿态,继而用于控制飞行器运动控制。
姿态解算的核心在于旋转,一般旋转有4种表示方式:矩阵表示、欧拉角表示、轴角表示和四元数表示。矩阵表示适合变换向量,欧拉角最直观,轴角表示则适合几何推导,而在组合旋转方面,四元数表示最佳,因为姿态解算需要频繁组合旋转和用旋转变换向量,所以采用四元数保存飞行器的姿态。
四轴飞行器的姿态一般用四元数表示。只有当需要输入到控制算法时,才会将四元数转化为欧拉角。
4. 为什么不用欧拉角来表示旋转而要引入四元数呢
前面介绍了什么是欧拉角,而且欧拉角微分方程解算姿态关系简单明了,概念直观容易理解,那么我们为什么不用欧拉角来表示旋转而要引入四元数呢?一方面是因为欧拉角微分方程中包含了大量的三角运算,这给实时解算带来了一定的困难。而且当俯仰角为90度时方程式会出现神奇的“GimbalLock”。所以欧拉角方法只适用于水平姿态变化不大的情况,而不适用于全姿态飞行器的姿态确定。 四元数法只求解四个未知量的线性微分方程组,计算量小,易于操作,是比较实用的工程方法。 四元数是一种超复数。如把四元数的集合考虑成多维实数空间的话,四元数就代表 k i j 着一个四维空间,相对于复数为二维空间。 简而言之,四元数包含了刚体旋转的所有信息,而在四旋翼飞行器的姿态解算中, 往往使用的是四元数微分方程对四元数进行更新。
来源:https://zhuanlan.zhihu.com/p/34151583
请登录后评论~