卡尔曼滤波与组合导航原理_无人机机载导航系统和传感器基本原理

9d3cbc94b51ef13ea0e90accda92185e.png

3947afb84750ad2765e645ee590c3b29.gif

本文首发于公众号:无人机系统技术

公众号回复“加群”进入无人机技术交流群交流

公众号回复“多旋翼”获取国际顶尖团队科研成果

公众号回复“控制分配”获取控制分配相关论文

引言

在之前的文章里,我们对无人机的控制算法做了非常多的介绍,那除了控制算法之外,我们还说过,无人机的自主飞行离不开导航算法和制导算法。导航算法的作用是测量并解算出无人机的实时运动状态和位置信息,所以各类传感器是实现导航算法的必要前提,是导航算法的必要输入。

随着科学技术的发展,可供使用的传感器越来越多,导航系统的种类也越来越多。以航空系统为例,目前可供装备的机载导航系统有惯性导航系统、GPS导航系统、北斗导航系统、多普勒导航系统、罗兰C导航系统。谈不上说哪个导航系统比另外的几个要好,只不过是各有特色和优缺点而已。

一般情况下我们会同时使用多个导航系统,因为单独使用一般不能满足使用需求,而两种或两种以上的非相似导航系统对统一导航信息作测量并解算出状态信息,可以有效地减少测量误差并进行校正。以无人机为例,因为惯性导航和GPS导航在性能上正好形成互补,所以我们常采用惯性导航+GPS导航的组合方式对机载导航系统进行设计,以实现好的导航性能。

组合导航设计算法

实现组合导航系统的方式一般有两种:

回路反馈法

回路反馈法采用经典的回路控制方法来抑制系统误差,使各个子系统同时实现性能互补。比如我们常见的利用加速度计和陀螺仪测量信息设计互补滤波解算姿态角的方法就属于此类。

最优估计法

最优估计法指的是采用卡尔曼滤波或者维纳滤波,从概率统计最优的角度估计出系统误差并进行消除的方法。

上述两种方法都是将各系统的信息互相渗透,有机结合,从而起到性能互补的作用。然而,通常各个子系统的误差源和测量误差都是随机的,所以最优估计的方法一般要优于回路反馈法,目前设计组合导航时主流采用的都是卡尔曼滤波的方法。

传感器简介

导航系统的基础是传感器,导航算法的设计输入是传感器测量的数据,所以在开始进行导航系统的设计之前,我们应该先了解清楚无人机上常用的传感器有哪些?这些传感器的测量原理又是怎么样的?我们上面提到了无人机的常用导航方式是惯性导航+GPS,所以无人机上的常用传感器也是围绕这两者展开的,惯性导航一般包括三轴加速度计、三轴陀螺仪、三轴磁力计,再加上GPS构成了机载传感器的主体,除此之外还有超声波测距传感器、激光测距传感器、空速计、气压计、视觉传感器等。

146cd26aaead602dac1de7759f8d2cd8.png

01加速度计

加速度计是一种惯性传感器,能够测量无人机在XYZ三轴方向所承受的加速度,通常也可以配合陀螺仪一同测量无人机的三轴姿态。加速度计的缺点是信号受振动影响大,所以在无人机上使用时需要进行减震处理,在数据获取后也会进行滤波。


当无人机静止时,加速度计测得的就是重力加速度,所以在实际使用时,我们都需要去掉重力加速度计的值。一般情况下,加速度计的测量原理可以看成是一个弹簧-质量模型,而实际上加速度计的测量是基于压阻效应、压电效应等,这些效应产生的力正比于电阻、电压和电容值,在通过相应的放大电路和滤波电路进行输出。


另外,当作用在无人机上的外力远小于重力时,加速度计还可以用来测量姿态角,因为当无人机倾斜时,加速度计在体轴系下测得的各项加速度大小跟无人机的姿态角以及重力加速度的值有关,而重力加速度的值已知,我们就可以根据三轴加速度的大小来计算出无人机的姿态信息(航向除外)。

02陀螺仪

陀螺仪的种类繁多,有MEMS陀螺、压电陀螺、激光陀螺、光纤陀螺等,不同的陀螺仪价格可以差上成千上万倍。通常小型无人机上使用的是MEMS陀螺仪,它是基于科里奥利力的工作原理,科里奥利力是对直线运动物体相对于旋转坐标系产生,因为科里奥利力正比于旋转角速度,所以可以根据科里奥利力产生的电容变化计算出相应的角速度。

陀螺仪传感器能监测三轴的角速度,因此在导航系统中存在非常重要的作用,一般用于姿态角的解算。但是由于角速度积分得到的角度随时间漂移严重,所以单一的陀螺仪无法计算出准确的角度值,通常需要配合加速度一起使用,这也就是我们上述所说的性能互补。

03磁力计

磁力计正如名称所示,是利用各向异性磁致电阻或者霍尔效应来测量空间中的磁感应强度。根据洛伦兹力原理,电磁场的强度变化会产生洛伦兹力的变化,从而改变电路中的电容大小。

磁力计一般不会单独使用,通常是配合加速度计和陀螺仪一同解算姿态角的大小。但如果无人机飞行时跨越区域很大,由于地球各地磁场强度的不同,会影响磁力计的正常使用,所以很多时候会使用双GPS的方式来测量航向信息。

另外,磁力计对于硬铁、软铁等永磁性物质都非常敏感。周围磁场的变化对磁力计的使用都会产生影响,可以说磁力计是无人机传感器中最容易受干扰的一位了,我们在调试无人机时也经常会遇到航向产生漂移的情况,大多数都是跟磁力计工作不正常有关。所以如果有更好的测量航向的方法,去掉磁力计也是未尝不可的。

04GPS

GPS这个基本不用太介绍了,大家手机里都有,出行时打开导航地图,给你定位的最重要信息就是GPS,关于测量原理可以简单说一下,天上的GPS卫星会实时广播它们的位置和时间信息,此时,地面的GPS接收机就会收到它们的信息,当卫星数量大于等于4颗时就可以产生定位信息了。

为什么是4颗而不是3颗卫星呢?从理论上来说,以地面点的三维坐标(N,E,H)为待定参数,只需要测出3颗卫星到地面点的距离就可以确定该点的三维坐标了。但是,卫地距离是通过信号的传播时间差Δt乘以信号的传播速度v而得到的。其中,信号的传播速度v接近于光速,量值非常大。因此,这就要求对时间差Δt进行非常准确的测定,如果稍有偏差,测得的卫地距离就会谬以千里。而时间差Δt是通过将卫星处测得的信号发射时间与接收机处测得的信号接收时间求差得到的。其中,卫星上安置的原子钟,稳定度非常高,我们认为星上电子钟的时间与GPS时吻合;接收机处的时钟是石英钟,稳定度一般,我们认为它的时钟时间与GPS时存在时间同步误差,并将这种误差作为一个待定参数。这样,对于每个地面点的解算就有4个待定参数,因此至少需要观测4颗卫星至地面点的卫地距离数据。

当然,GPS也要在开阔的空间中才能正常使用,开车的朋友在使用导航时会发现进入桥梁和隧道时GPS信号就会丢失。所以,在使用GPS时应该尽量在无遮挡的区域。现在无人机上使用的GPS在某些特定环境下使用时为了增加测量精度,会使用伪距差分和RTK等增强手段,这些方法可以显著提升无人机的定位精度。

05气压计

气压计运作的原理,就是利用大气压力换算出高度。 气压计也是容易受外界干扰的一个传感器,当温度发生变化时,气压也会发生变化,另外,无人机上旋翼工作产生的气流通常也会影响气压计的测量。所以,如果安装了超声波或者激光测距传感器等相对高度传感器,我们可以使用超声波/激光测距仪+GPS高度的方式替代气压计的方案。

06超声波传感器

超声波是一种超出人耳听觉频率上线的声波,由于具有良好的方向性和强大的穿透性,被广泛用于测距和测速。超声波的信号由超声波传感器发出,被物体反射后再经由另一台超声波传感器接收。所以到物体的距离就是声波的传播速度与时间间隔乘积的一半。超声波传感器的价格普遍比较便宜,但是由于声波传输速度慢,所以超声波传感器的数据更新频率相对较低,同时测量范围小,这些都是超声波传感器的缺点。

07激光测距传感器

激光测距传感器的原理基本跟超声波传感器一致,只不过发射的信号不同,激光测距传感器发射的是激光源,其传播速度时光速,所以,在信号频率上比超声波传感器要高很多,价格上也比超声波传感器要高一个数量级。所以其缺点也很明显,价格昂贵,测量范围小,能够扫描的除外,当然能够扫描的激光测距仪价格又更高了。

08视觉传感器

视觉传感器指的是使用摄像头来获取图像信息,然后根据图像信息确定目标或者无人机相对于目标的位置和速度等状态信息。视觉传感器更重要的是后期处理算法,尤其是最近几年深度学习算法的发展给视觉传感器在无人机上的应用带来了新的生机,最近很多关于无人机的研究都是基于视觉进行的,比如基于视觉的目标跟踪,避障、定位等。

09空速计

空速计一般是固定翼无人机上使用的较多,因为固定翼飞行器的各类状态都跟空速息息相关,比如说升力,比如说失速速度。空速计的测量原理是通过测量气流的总压和静压从而根据伯努利原理确定气流的动压,再计算出空速。

总结

对于机载常用传感器,我们只需要了解其基本原理就已经足够了,因为我们在使用它们测量相应数据时都可以根据传感器产商提供的文档进行驱动的编写,所以,我们应该把更多时间放在如何进行传感器数据的融合,如何解算出飞行器的飞行状态上。


往期精彩文章

我写过的好文章都在这里了,大家再也不用翻来翻去了​mp.weixin.qq.com
68a4896ca15f7d26288ac03c0e467797.png
多旋翼飞行器飞行原理—解惑那些偶上心头的疑惑​mp.weixin.qq.com
bbe6b3d7c6086b3d098d16ae279dfcb0.png
无人机行业中那些常用词汇的解析​mp.weixin.qq.com
a60cbb588f195d362447972456b92a95.png
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A: 以下是基于扩展卡尔曼滤波算法用RTK数据对IMU进行校准的伪代码: 1. 预处理数据 - 将IMU数据和RTK数据对齐,使其具有相同的时间戳,并对其进行时间对齐处理。 - 对IMU数据进行标定和去除噪声。 - 对RTK数据进行处理,计算出基准位置和姿态。 2. 初始化卡尔曼滤波器 - 定义状态量和观测量。 - 定义状态转移函数和观测函数。 - 初始化状态向量和协方差矩阵。 3. 执行滤波器 - 对每个时间步骤,执行以下操作: - 根据IMU测量更新状态量。 - 根据RTK观测量更新状态量。 - 计算状态协方差矩阵。 - 预测下一个时间步骤的状态量和协方差矩阵。 4. 输出结果 - 根据滤波器的输出,计算IMU误差校准参数,包括Bias和Scale等。 下面是伪代码示例: ''' # 预处理数据 aligned_imu_data = align_imu_data(imu_data, rtk_data) calibrated_imu_data = calibrate_imu_data(aligned_imu_data) processed_rtk_data = process_rtk_data(rtk_data) # 初始化卡尔曼滤波器 state = initialize_state() covariance = initialize_covariance() state_transition_func = get_state_transition_func() observation_func = get_observation_func() observation_noise_covariance = get_observation_noise_covariance() # 执行滤波器 for i in range(len(aligned_imu_data)): # 根据IMU测量更新状态量 state = state_transition_func(state, calibrated_imu_data[i]) covariance = get_covariance(state, covariance, calibrated_imu_data[i]) # 根据RTK观测量更新状态量 if is_observation_time(processed_rtk_data[i]): observation = get_observation(processed_rtk_data[i]) observation_noise_covariance = get_observation_noise_cov(observation, state) state, covariance = update_state(state, covariance, observation, observation_func, observation_noise_covariance) # 预测下一个时间步骤的状态量和协方差矩阵 state, covariance = predict_next_state_and_covariance(state, covariance, state_transition_func) # 输出结果 imu_calibration_parameters = get_imu_calibration_parameters(state) '''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值