1.姿态检测的基本概念
1.1坐标系
坐标系常用有地球坐标系、地理坐标系、载体坐标系
1.1.1地球坐标系:
- 以地球球心为原点,Z轴沿地球自转轴方向,X、Y轴在赤道平面内的坐标系。
- 地球表面的物体可以按照投影的方法得到(x,y,z),次坐标被称为地球坐标
1.1.2地理坐标系:
- 它的原点在地球表面(或运载体所在的点),Z轴沿当地地理垂线的方向(重力加速度的相反方向),XY轴沿当地经纬线的切线方向。
- 根据各个轴方向的不同,可选为“东北天”、“东南天”、“西北天”等坐标系。这是我们日常生活中使用的坐标系,平时说的东南西北方向与这个坐标系东南西北的概念一致。
1.1.3 载体坐标系:
- 载体坐标系以运载体的质心为原点,一般根据运载体自身结构方向构成坐标系,如Z轴上由原点指向载体顶部,Y轴指向载体头部,X轴沿载体两侧方向。
- 上面说基于飞机建立的坐标系就是一种载体坐标系,可类比到汽车、舰船、人体、动物或手机等各种物体。
1.2姿态参数
- 抽象来说,姿态是“载体坐标系”与“地理坐标系”之间的转换关系。
- 在飞行器中,飞行姿态是非常重要的参数;
- 以飞机自身的中心建立坐标系,当飞机绕坐标轴旋转的时候,会分别影响偏航角、横滚角及俯仰角。
假如我们知道飞机初始时是左上角的状态,只要想办法测量出基于原始状态的三个姿态角的变化量,再进行叠加,就可以获知它的实时姿态了。
1.3坐标系转换
地理坐标系与载体坐标系都以载体为原点,所以它们可以经过简单的旋转进行转换,载体的姿态角就是根据载体坐标系与地理坐标系的夹角来确定的。
假设初始状态中,飞机的Z轴、X轴及Y轴分别与地理坐标系的天轴、北轴、东轴平行。
· 当飞机绕自身的“Z”轴旋转,它会使自身的“Y”轴方向与地理坐标系的“南北”方向偏离一定角度,该角度就称为偏航角(Yaw);
· 当载体绕自身的“X”轴旋转,它会使自身的“Z”轴方向与地理坐标系的“天地”方向偏离一定角度,该角度称为俯仰角(Pitch);
· 当载体绕自身的“Y”轴旋转,它会使自身的“X”轴方向与地理坐标系的“东西”方向偏离一定角度,该角度称为横滚角(Roll)。
2.利用陀螺仪检测角度
2.1.1原理:
陀螺仪是最直观的角度检测器,它可以检测物体绕坐标轴转动的“角速度”,如同将速度对时间积分可以求出路程一样,将角速度对时间积分就可以计算出旋转的“角度”。
2.1.2误差与缺陷
2.1.2.1在采样频率上的误差
由于陀螺仪测量角度时使用积分,会存在积分误差,若积分时间Dt越小,误差就越小。
这十分容易理解,例如计算路程时,假设行车时间为1小时,我们随机选择行车过程某个时刻的速度Vt乘以1小时,求出的路程误差是极大的,
因为行车的过程中并不是每个时刻都等于该时刻速度的,如果我们每5分钟检测一次车速,可得到Vt1、Vt2、Vt3-Vt12这12个时刻的车速,对各个时刻的速度乘以时间间隔(5分钟),
并对这12个结果求和,就可得出一个相对精确的行车路程了,不断提高采样频率,就可以使积分时间Dt变小,降低误差。
从下面图像也能看出来采样时间越短(频率越高)对w-t进行积分得到图形的面积越准确。
2.1.2.2静态缺陷:
提高陀螺仪传感器的采样频率,即可减少积分误差,目前非常普通的陀螺仪传感器的采样频率都可以达到8KHz(1秒采集8k次),已能满足大部分应用的精度要求。
更难以解决的是器件本身误差带来的问题。
例如,某种陀螺仪的误差是0.1度/秒,当陀螺仪静止不动时,理想的角速度应为0,无论它静止多久,对它进行积分测量得的旋转角度都是0,这是理想的状态;
而由于存在0.1度/秒的误差,当陀螺仪静止不动时,它采样得的角速度一直为0.1度/秒,
若静止了1分钟,对它进行积分测量得的旋转角度为6度,
若静止了1小时,陀螺仪进行积分测量得的旋转角度就是360度,即转过了一整圈,这就变得无法忍受了。
只有当正方向误差和负方向误差(第一次记为+,第二次记为-;才能发生抵消)能正好互相抵消的时候,才能消除这种累计误差。
3.利用加速度计检测角度
由于直接用陀螺仪测量角度在长时间测量时会产生累计误差,因而我们又引入了检测倾角的传感器。
测量倾角最常见的例子是建筑中使用的水平仪,在重力的影响下,水平仪内的气泡能大致反映水柱所在直线与重力方向的夹角关系;
利用T字型水平仪,可以检测横滚角与俯仰角,但是偏航角是无法以这样的方式检测的。
3.1加速度传感器检测原理:
在电子设备中,一般使用加速度传感器来检测倾角,它通过检测器件在各个方向的形变情况而采样得到受力数据;
根据F=ma转换,传感器直接输出加速度数据,因而被称为加速度传感器。
由于地球存在重力场,所以重力在任何时刻都会作用于传感器,当传感器静止的时候(实际上加速度为0),传感器会在该方向检测出加速度g,不能认为重力方向测出的加速度为g,就表示传感器在该方向作加速度为g的运动。
当传感器的姿态不同时,它在自身各个坐标轴检测到的重力加速度是不一样的,利用各方向的测量结果,根据力的分解原理,可求出各个坐标轴与重力之间的夹角。
因为重力方向是与地理坐标系的“天地”轴固连的,所以通过测量载体坐标系各轴与重力方向的夹角即可求得它与地理坐标系的角度旋转关系,从而获知载体姿态。
3.2加速度传感器检测的缺陷
- 由于这种倾角检测方式是利用重力进行检测的,它无法检测到偏航角(Yaw),原理跟T字型水平仪一样,无论如何设计水平仪,水泡都无法指示这样的角度。
- 另一个缺陷是加速度传感器并不会区分重力加速度与外力加速度,当物体运动的时候,它也会在运动的方向检测出加速度,特别在震动的状态下,传感器的数据会有非常大的数据变化,此时难以反应重力的实际值。
4.磁场检测传感器
4..1检测原理:
为了弥补加速度传感器无法检测偏航角(Yaw)的问题,我们再引入磁场检测传感器,它可以检测出各个方向上的磁场大小,通过检测地球磁场,它可实现指南针的功能,所以也被称为电子罗盘。由于地磁场与地理坐标系的“南北”轴固联,利用磁场检测传感器的指南针功能,就可以测量出偏航角(Yaw)了。
4.2磁场检测器的缺陷
与指南针的缺陷一样,使用磁场传感器会受到外部磁场干扰,如载体本身的电磁场干扰,不同地理环境的磁铁矿干扰等等。
5.GPS检测
使用GPS可以直接检测出载体在地球上的坐标,假如载体在某时刻测得坐标为A,另一时刻测得坐标为B,利用两个坐标即可求出它的航向,即可以确定偏航角,且不受磁场的影响。
如果物体静止,GPS无法得出航向;
但这种检测方式只有当载体产生大范围位移的时候才有效(GPS民用精度大概为10米级)。
6.姿态融合与四元数
可以发现,使用陀螺仪检测角度时,在静止状态下存在缺陷,且受时间影响,而加速度传感器检测角度时,在运动状态下存在缺陷,且不受时间影响,刚好互补。
假如我们同时使用这两种传感器,并设计一个滤波算法;
检测状态,当物体处于静止状态时,增大加速度数据的权重;当物体处于运动状时,增大陀螺仪数据的权重;
检测偏航角,当载体在静止状态时,可增大磁场检测器数据的权重;当载体在运动状态时,增大陀螺仪和GPS检测数据的权重。
这些采用多种传感器数据来检测姿态的处理算法被称为姿态融合。
在姿态融合解算的时候常常使用“四元数”来表示姿态,它由三个实数及一个虚数组成,因而被称之为四元数。
使用四元数表示姿态并不直观,但因为使用欧拉角(即前面说的偏航角、横滚角及俯仰角)表示姿态的时候会有“万向节死锁”问题,且运算比较复杂,所以一般在数据处理的时候会使用四元数,处理完毕后再把四元数转换成欧拉角。也就是说,四元数是姿态角的另一种表示方式,
7.传感器工作原理
在电子技术中,传感器一般是指把物理量转化成电信号量的装置。
敏感元件直接感受被测物理量,并输出与该物理量有确定关系的信号,经过转换元件将该物理量信号转换为电信号,变换电路对转换元件输出的电信号进行放大调制,最后输出容易检测的电信号量。
例如,温度传感器可把温度量转化成电压信号量输出,且温度值与电压值成比例关系,我们只要使用ADC测量出电压值,并根据转换关系即可求得实际温度值。
而前文提到的陀螺仪、加速度及磁场传感器也是类似的,它们检测的角速度、加速度及磁场强度与电压值有确定的转换关系。
8.传感器参数
传感器一般使用精度、分辨率及采样频率这些参数来进行比较,衡量它的性能:
-
线性误差与分辨率的区别:
以使用尺子测量长度为例,误差就是指尺子准不准,使用它测量出10厘米,与计量机构标准的10厘米有多大区别,若区别在5毫米以内,我们则称这把尺子的误差为5毫米。
而分辨率是指尺子的最小刻度值,假如尺子的最小刻度值为1厘米,我们称这把尺子的分辨率为1厘米,它只能用于测量厘米级的尺寸;对于毫米级的长度,这就无法用这把尺子进行测量了。
如果把尺子加热拉长,尺子的误差会大于5毫米(热涨冷缩),但它的分辨率仍为1厘米,只是它测出的1厘米值与真实值之间差得更远了。
- 采样频率是提高物理量的数值准确的方法之一
9.物理量的表示
9.1原理:
大部分传感器的输出都是与电压成比例关系的,电压值一般采用ADC来测量,而ADC一般有固定的位数,如8位ADC、12位ADC、16位的ADC等,ADC的位数会影响测量的分辨率及量程。
假设用一个2位的ADC(二进制)来测量长度,2位的ADC最多只能表示0(00)、1(01)、2(10)、3(11)这四个数,假如它的分辨率为20厘米,那么它最大的测量长度为60厘米;0-20cm-40cm-60cm。
假如它的分辨率为10厘米,那么它的最大测量长度为30厘米;0-10cm-20cm-30cm。
由此可知,对于特定位数的ADC,量程和分辨率不可兼得。
9.2表示单位
在实际应用中,常常直接用ADC每位表征的物理量值来表示分辨率,
如每位代表20厘米,我们称它的分辨率为1LSB/20cm,它等效于5位表示1米:5LSB/m。
其中的LSB(Least Significant Bit),意为最ADC的低有效位。
使用采样得到的ADC数值,除以分辨率,即可求取得到物理量。
例如使用分辨率为5LSB/m、线性误差为0.1m的传感器进行长度测量,其ADC采样得到数据值为“20”,可计算知道该传感器的测量值为4米,而该长度的真实值介于3.9-4.1米之间。
10.三、六、九、十轴陀螺仪
轴陀螺仪是分别感应Roll(左右倾斜)、Pitch(前后倾斜)、Yaw(左右摇摆)的全方位动态信息。
- 3轴传感器指的是3轴的加速度,根据这个加速度我们解算出X Y两轴的角度。
- 所谓的六轴陀螺仪即六轴姿态感应器 ,是三轴陀螺仪和加速计的合称 ,根据这两个数据我们解算出X Y Z三轴的角度(Z轴是角速度积分解算,所以存在累计误差)。
- 九轴感测组件是:三轴加速度计、三轴陀螺仪、三轴磁场传感器,然后欧拉角加四元数数据融合,根据这三个数据我们解算出X Y Z三轴的角度(Z轴是磁场解算,相当于电子罗盘,但受磁场干扰的影响)。
- 10轴传感器指的是3轴的加速度、3轴角速度、和3轴磁场气压,功能比9轴传感器多了气压和高度
11.MPU6050
11.1介绍
MPU6050芯片,它是一种六轴传感器模块,采用InvenSense公司的MPU6050作为主芯片,能同时检测三轴加速度、三轴陀螺仪(三轴角速度)的运动数据以及温度数据。
利用MPU6050芯片内部的DMP模块(Digital Motion Processor数字运动处理器),可对传感器数据进行滤波、融合处理,它直接通过I2C接口向主控器输出姿态解算后的姿态数据,降低主控器的运算量。其姿态解算频率最高可达200Hz,非常适合用于对姿态控制实时要求较高的领域。常见应用于手机、智能手环、四轴飞行器及计步器等的姿态检测。
11.2参数
11.3测量范围与测量分辨率
11.4特性参数
从表中还可了解到传感器的加速度及陀螺仪的采样频率分别为1000Hz及8000Hz,它们是指加速度及角速度数据的采样频率;
我们可以使用STM32控制器把这些数据读取出来然后进行姿态融合解算,以求出传感器当前的姿态(即求出偏航角、横滚角、俯仰角)。
而如果我们使用传感器内部的DMP单元进行解算,它可以直接对采样得到的加速度及角速度进行姿态解算,解算得到的结果再输出给STM32控制器,即STM32无需自己计算,可直接获取偏航角、横滚角及俯仰角,该DMP每秒可输出200次姿态数据。