如何过滤小型机器人的加速度计数据,去除运动噪声

信息处理 过滤器 噪音
2022-02-20 23:31:59

我有一个小型机器人(4tronix MARS Rover)并添加了一个 MPU9250 单元,其中包括加速度计(以及陀螺仪和磁力计)。我已经校准它以确定静态情况下的偏移量。我的希望是在它开始移动时测量加速度,并将其与速度相结合,然后将其与位移相结合(因为我还没有车轮上的转数计数器)。然而,基础加速度计数据包含大量来自运动本身的噪声,即使在平坦的地板上也是如此,因此加速度似乎隐藏在噪声中(相同幅度),尤其是在低功率设置下。一些数据:采样频率 100Hz,5 秒测量周期,1 秒后发动机启动,4 秒后发动机停止,速度约 0.12 m/s(在 50% 功率下),覆盖距离约 0.34 m(用尺子测量),启动-启动和关闭都在 0 以内。5 秒。我发现的一个程序使用了巴特沃斯过滤器,并尝试了一些设置。至少在 100% 功率下,它可以识别启动和关闭,但在两者之间仍然存在噪音,这会导致加速度、速度和位移数据不准确。 我的问题是:有没有办法过滤数据以使其更准确?还是相对于运动产生的噪音而言,加速度只是微弱?

下面是基于未过滤和过滤数据的图表。这是 100% 的电源设置,这使得启动和关闭有点可识别。

未经过滤的数据

过滤数据

3个回答

通常这些过程都有一个底层的 AR 模型,使用卡尔曼滤波器会有所帮助。

如果您只是进行离线处理并且想要一个简单的解决方案,那么您可以定义一个低通滤波器,根据您的需要进行调整,并将其应用于您的信号。一个简单的均值滤波器可以提供帮助。

谢谢,到目前为止,我一直专注于通过过滤使加速度值更正确,然后进行累积梯形积分以获得速度和位置。最重要的是,我假设加速度仅在向电机发送更改命令后的 0.5 秒内发生变化(并在其他任何地方简单地将其设置为零),我已经非常接近现实了。

但我会尝试你的建议并尝试应用卡尔曼滤波器来获得更好的速度估计。这也更适合于驱动机器人时的实时应用。我最初尝试的问题是我对卡尔曼增益的计算迅速收敛到零,因为我在测量中使用了相对较大的不准确性,因此实际测量对结果的影响很小(但这可能是由于错误的实现/理解)。我会进一步调查。

我再次尝试了卡尔曼滤波器,但这似乎没有提供解决方案。

我确定了静止不动和以恒定速度移动时的测量方差,并在计算整体过程不确定性时将该方差作为过程噪声方差添加。

该过程不确定性相对于测量不确定性很大,因此卡尔曼增益仍然很高。即使在高卡尔曼增益的情况下,过程不确定性通常会下降,但在每个步骤中添加过程噪声会使过程不确定性仍然很高。

因此,包括噪声在内的新测量仍然具有很大的影响。

我错过了什么吗?