迭代平滑位置变化

大师

我有一个运动中有噪音的实体。该实体正朝着目标实体前进,我正在尝试估计达到目标所需的时间。

我正在尝试通过查看实体的位置历史来估计实体的速度。

我有一个History<Tuple<double,Vector2D>前N个职位,我什么时候得到那个职位。这些位置通常以1秒的间隔非常一致地进入。

我在[n]秒前尝试了一些自制公式,其中xtk [n]是分量(x或y):

       private double GetFirstOrderVelocity(double xtk, double xtk1, double h)
        {
            return (xtk - xtk1)/h;
        }

        private double GetSecondOrderVelocity(double xtk, double xtk2, double h)
        {
            return (xtk - xtk2) / (h*2);
        }

        private double GetThirdOrderVelocity(double xtk, double xtk1, double xtk2, double xtk3, double h)
        {
            return (xtk + xtk1 - xtk2 - xtk3) / (h * 4);
        }

        private double GetFourthOrderVelocity(double xtk, double xtk1, double xtk3, double xtk4, double h)
        {
            return (xtk + (2 * xtk1) - (2 * xtk3) - xtk4) / (h * 8);
        }

h始终为1,因为他们在以1秒的时间间隔。

第四阶有帮助,但是我想知道是否有更好,更通用的方法来根据先前位置估算速度?某些事情是迭代的,因此,如果我需要更强的平滑度,我只需要增加一个计数器,这可能会使用更多的历史记录,并且会在响应性与平滑度之间进行权衡。现在的问题是,定位的时间非常短,从逻辑上来说,如果某物正朝着目标前进,有了足够的样本,我们可以开始相当准确地估计到达目标的时间。

btilly

迭代的。保留两个具有不同衰减率的指数衰减平均值,然后通过比较它们进行投影。

想法是这样的。如果这样,0 < k < 1则可以通过以下方式计算衰减平均值:

average = (1-k)*prev_average + k*observation

您应该进行自己的数值实验,以确保我没有犯一个愚蠢的错误。但是,如果您的路径是线性的,则该平均值将收敛到与上次1/k观测值的平均值类似的水平,这代表您对1/(2*k*T)秒前位置的最佳猜测因此,如果您拥有其中的2个,那么您将有2个平滑的测量值应该在哪里。从这些值中,您可以预测平均速度,从任何位置中,您都可以估计到达时间。0

您将不得不使用它来找到两个对您的数据集有效的常量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

迭代平滑位置变化

来自分类Dev

js中平滑的颜色变化

来自分类Dev

jQuery:滚动宽度变化平滑

来自分类Dev

LibGdx平滑的背景颜色变化

来自分类Dev

迭代变化的SortedDictionary

来自分类Dev

单列迭代的变化

来自分类Dev

iOS-平滑的颜色变化过渡/动画

来自分类Dev

iOS-平滑的颜色变化过渡/动画

来自分类Dev

索引价值变化的位置

来自分类Dev

UITextField光标位置随方向变化而变化

来自分类Dev

JavaFX:侦听节点的位置变化

来自分类Dev

位置recylerview变化,同时滚动

来自分类Dev

CSS中位置变化的过渡

来自分类Dev

Foreach迭代位置

来自分类Dev

Gnuplot直方图(平滑频率)最大位置

来自分类Dev

绝对中心,位置平滑过渡

来自分类Dev

位置平滑滚动问题:固定;

来自分类Dev

检测折线区域,位置或形状的变化

来自分类Dev

离子变化位置将不起作用

来自分类Dev

运动期间精灵的垂直位置变化

来自分类Dev

JavaFX检测舞台屏幕位置的变化

来自分类Dev

位置不断变化的openlayers集群非常慢

来自分类Dev

运动期间精灵的垂直位置变化

来自分类Dev

JPanel的位置和大小变化很奇怪

来自分类Dev

设置动态变化的元素的左位置(循环)

来自分类Dev

如何设置列表元素位置变化的动画

来自分类Dev

JavaFX检测舞台屏幕位置的变化

来自分类Dev

检测折线区域,位置或形状的变化

来自分类Dev

如何检测角度指令中的位置变化?