了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法

2023-05-16

--neozng1@hnu.edu.cn

5.3.滤波器、观测器、估计器和预测方法

这些装置之间的区别在于面对不同场景时候的不同解释(是否考虑信号的统计学特性、随机特点、参数是否变化等)。滤波器在信号与系统中的定义为“只让特定频率的信号的通过的系统”,而在时域处理时则可以指滤除我们不想要的信号的装置,只有一个“前向传播”的过程,信号的流向是单向的。观测器一般在控制系统中是带有反馈通路的,会根据输出和目标的差值修正系统或是更新滤波器参数,因此观测器其是参与到反馈环节当中的模块甚至其本身就是一个带反馈的系统,其输入是信号来源和/或系统处理后的输出(此输出常被作为一个增广变量,将被观测器用于下一次迭代)。估计器的概念和观测器类似,一般是用于对扰动的估计和在不能准确得到系统状态时对其进行估计的装置。但很多时候,我们对这几种装置都是不加区分的。

此部分分为两个方面介绍,一方面是传感器数据的处理(如解算得到的装甲板位置信息和从电控得到的信息,一般为时域信号(也可以转化到频域处理);另一部分是对图像数据的处理(二维信号,空间域)。

当开始阅读 5.3 ,笔者默认读者拥有积分变换、概率论、线性代数、微积分和部分信号处理的前置知识。请务必仔细阅读推荐的教程。

基于时域的滤波器是控制理论的核心内容之一,状态估计其实也是机器人学中的一个重要部分,自动驾驶中的SLAM就是它大显身手的领域之一。放眼RM赛场,比赛相关的技术无不和以上提到的内容有关,因此有必要学习这个重要的内容。在自瞄算法帧率逐渐上升、稳定性逐渐提高的今天,状态估计和轨迹预测将会成为兵家必争之地,是下一个强队之间对抗的隘口。谁能获得更好的预测和估计,谁就能实现更精确地打击。关于这些算法的具体应用我们将会在 6.4 中介绍,这里先不谈实践,着重看看原理和前置知识。

学习过信号与系统和自动控制原理等电类工科同学应该对此部分比较熟悉。这部分算法和代码的理解与设计是运动预测和估计非常重要的基础。这里推荐一个做机器人控制的工程师up:DR_CAN,他的几个系列视频都非常适合了解控制理论和学习。若仅是刚入门RMVisioner,请直接看图像处理部分。

5.3.1.常用的几种信号滤波器

Low-Pass Filter / Median Filter(低通滤波器和中值滤波器)

  • x通滤波器(频域)

    一般在处理传感器数据(IMU、测距传感器等)和控制数据序列的时候会使用。我们这里以低通滤波器为例(显然我们的控制数据序列一般是稳定变化而不是突变,当然部分极端、特殊数据除外)。低通滤波器只会允许低频信号通过,从时域角度来看,就是变化平缓的信号量。比如我们从IMU采集的速度序列{5.6,5.2,5,5.5,6,5.7,110,6,5,5.6,5.3,6.1},突然出现的110这个值是较为平缓序列中的一个突变:若对此序列进行傅里叶变换就会高频处有一个尖峰,即代表着剧烈变化的信号。显然这对于IMU来说是一个异常信号,即使是突然启动也不可能有这么大的速度,除非遭到撞击(显然这时候的数据也没有任何用处),那么将此数据序列通过一个低通滤波器,就能够滤除这个异常值。当然我们在实际使用的时候,一般不会将一段时间内的信号序列投入傅里叶变换,而是直接设置一个跳变阈值来筛选这些信号。如果直接把此信号剔除,会出现一个数据为零的空档。一般选择通过插值(顺序平均、指数加权平均等)或者延续上一时刻的信号值来修复这个问题。

    对短序列信号进行筛选我们可以得到一个理想的低通滤波器,这是它在频域的表示

  • 中值滤波器(时域)

    和低通滤波器类似,用于消除异常数据的影响,这是一种非线性的滤波器。而且由于其加权计算一段时间内的信号数据之和,通过中值滤波器后的数据一般会变得更平滑,有利于消除突变信号对系统的扰动。不过也要考虑有时候确实会有跳变信号的出现(比如当前帧的装甲板消失,在视野边缘出现了新的装甲板),要根据这种情况设计特殊的处理防止正常数据被清扫。另有其他改进的方法如高斯平滑、指数加权平均、权重衰减平均等方法,能够适应更多的情况、更快的应对数据的变化等。

显然,这两种滤波器都需要采集一段时间的序列数据并进行相应计算和筛选,这是有时间滞后性和开销的,因此一定程度上会牺牲数据的实时性。如何改进?请看KF的介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法 的相关文章

随机推荐