【发布时间】:2012-02-02 11:34:11
【问题描述】:
这是我想做的(最好是使用 Matlab):
基本上,我有几条汽车在十字路口行驶的痕迹。每个都是嘈杂的,所以我想取所有测量的平均值,以获得更好的真实路线近似值。换句话说,我正在寻找一种逼近曲线的方法,它与所有测量的轨迹的距离最小(在最小二乘意义上)。
乍一看,这与 CurveFitting Toolbox 的 spap2 可以实现的非常相似(Least-Squares Approximation here 部分中的好例子)。 但是这个算法有一些主要缺点:它假设一个函数(每个 x 恰好有一个 y(x)),但我想要的是 2d 曲线(一个 x 可能有几个 y(x))。当汽车右转或左转超过 90 度时,这会导致问题。 此外,它采用垂直偏移而不是垂直偏移(根据wolfram 上的定义)。
有人知道如何解决这个问题吗?我曾想过使用 B-Spline 并更改节数和度数,直到达到一定的拟合质量,但我无法通过分析或 CurveFitting Toolbox 提供的功能找到解决此问题的方法。有没有办法在不进行数值优化的情况下解决这个问题?
【问题讨论】:
-
你能让每条路径成为时间的函数吗?对于每个时间值,一辆车只有一个 (x,y) 坐标。
-
这就产生了一个问题,即每辆汽车的行驶速度都不同。如果 t=0 设置在交叉路口前的给定点,则一辆车可能已经完成了转弯机动,而另一辆车(更仔细地看汽车)在相同的时间后还没有完成。因此,两辆车同时的 (x,y) 平均值不会导致一条与测量轨迹的距离最短(在 x-y 平面上)的曲线。
-
我在想,与其对不同汽车的路径进行平均,不如将每条路径中的高频噪声滤除以使其平滑。
标签: geometry curve approximation