我目前正在阅读使用IMU(陀螺仪+加速度计)估算其当前倾斜角度的自平衡机器人。

我发现的大多数文档都具有相同的含义:


您不能只使用加速度计数据的反正切来找到重力方向因为它们受“惯性噪声”的影响。
由于时间漂移,陀螺仪的输出不能随时间积分。
有两种公认的方法可以合并这些数据:


一个卡尔曼滤波器,用于估计当前倾斜度以及当前陀螺仪的偏置。
一个互补滤波器,在加速度计数据上应用低通滤波器(从长远来看,值得信赖)以及对陀螺仪数据的高通滤波器(短期内可以信赖)。



我发现的所有来源似乎都使用了那些过滤器中加速度计的原始数据,而无视一个自平衡机器人中我们可以很好地估计了上面提到的“惯性噪声”。

这是我的

让我们用倒立的摆锤和移动的支点对我们的机器人进行建模,并使用此不良图形作为



C处的加速度计感受到的惯性力可以来自(如果我没有记错的话) br /> \ begin {pmatrix}
\ ddot {c_r}
\\
\ ddot {c_ \ Theta}
\ end {pmatrix}
=
\ begin {pmatrix}
-\ ddot {x} \ sin(\ Theta)-R \ dot {\ Theta} ^ 2
\\
-\ ddot {x} \ cos(\ Theta)+ R \ ddot {\ Theta}
\ end {pmatrix}
$$

假设


我们的机器人在滚动时没有打滑
我们可以测量x(通过使用步进电机或带编码器的直流电机)

然后我们可以对所有这些进行很好的估算变量:


$ \ hat {\ ddot {x}} _ k $:与我们当前和以前的$ x $
$ \ hat {\ dot { \ Theta}} _ k $:当前陀螺仪读数
$ \ hat {\ Theta} _k $:$ \ Theta $的先前估计值加上$ \ hat {\ dot {\ Theta}} _ k $和$ \ hat {\ dot {\ Theta}} _ {k- 1} $超过一个$ \ Delta t $
$ \ hat {\ ddot {\ Theta}} _ k $:$ \ hat {\ dot {\ Theta}} _ k $和$ \ hat {\ dot {\ Theta}} _ {k-1} $

一旦有了,我们就可以抵消加速度计中的惯性力的影响,只剩下更好的重力测量值。 br />
像上面的1一样,使用它作为通常的Kalman滤波器的输入可能仍然是一个好主意。所有这些变量一次?我要试试看。

你怎么看?我在这里遗漏了什么吗?

我认为自平衡机器人可能是一个不错的标签,但我无法创建它

评论

激光测距仪将非常有用。

#1 楼

如果您使用“ x”输入正确构造了卡尔曼滤波器,那么可以,这样会更好。值得注意的是,在任何情况下,惯性传感器都无法为您提供x的绝对值,因为您(基本上)试图将加速度计信号双倍积分到一个位置,并且对加速度计输出中的噪声非常敏感。 />
您可能需要在旅途中考虑一些事情:


成熟的卡尔曼滤波器在计算上很密集,但是稳态卡尔曼滤波器基本上是免费的用构造而不是b'guess和b'gosh选择滚降频率。
说到b'guess和b'gosh,如果您想让Kalman表现良好(有时,甚至是所有),您需要准确地考虑所有与您的差异有关的内容。卡尔曼斯因对模型与现实之间的不匹配反应不佳而臭名昭著。如果您愿意进行数学运算,请研究H无限和其他鲁棒的状态估计技术。
如果您沿着H无限的道路走,您还可以找到稳态H无限滤波器和获得相同的计算优势(实际上,嵌入式代码中的实际滤波器结构将是相同的;系数中的值将只是不同)。


评论


$ \ begingroup $
我认为您夸大了完整卡尔曼滤波器的计算成本。朱利安可能会拥有少于6个州,这在大多数董事会中都不是问题。
$ \ endgroup $
– Holmeski
17年12月26日在19:38

#2 楼

尽管这不是您问题的完整答案,但我想发表一些想法。我想您错过了:


重力本身指向下方,通常约为9.81 m /s²,但视您所在的位置而定(您在机器人处于自由落体)
传感器通常未与x / y / z轴对齐100%(芯片在PCB上并非完全水平...在PCB上,机器人未完全水平/垂直安装)以此类推);您需要对此进行补偿。
加速度传感器具有偏移和增益值,您必须对其进行补偿。他们受到例如温度和制造公差。有在线的校准算法。但您也可以将这些未知变量放入卡尔曼滤波器中。
陀螺仪的漂移也取决于温度。这不是一个常数,但可能会随着时间而改变。借助磁力计可以稍微补偿这种漂移。
3D磁力计(又称Compass传感器)可用于补偿陀螺仪的漂移。但是,它们有时会受到电磁场(电动机,磁铁,墙壁上的钢等)的影响。因此不能完全信任他们。

卡尔曼滤波器模型是一种很好的方法。关于运动模型的知识越丰富,它将越有效。您还需要知道所有变量的(协)方差...如何确定每个传感器的测量值。

评论


$ \ begingroup $
关于诸如校准,漂移,温度等现实问题的要点。
$ \ endgroup $
–Ben♦
18/12/15在16:33