【问题标题】:Fitting a transition + circle + transition curve to a set of measured points将过渡 + 圆 + 过渡曲线拟合到一组测量点
【发布时间】:2020-11-25 21:44:40
【问题描述】:

我正在处理关于道路几何形状和设计条件估计的逆向工程问题。

假设您有一组从道路位置测量中获得的点。这条路有直路段和弯路段。当然,直线部分用直线表示,曲线用中心和半径未知的圆表示。也有过渡部分,可能是回旋曲线/欧拉螺旋或任何其他常见的轨道过渡曲线。轨道的表示可能如下所示: 我们事先知道,道路/轨道的设计考虑到了每条弯道的过渡+圆+过渡的原则,但我们只有测量点,目标是找到描述轨道上每条弯道的参数,这就是, 过渡参数以及圆的中心和半径。

我使用非线性优化算法编写了一些代码,用户可以在其中选择起点和终点,并将圆拟合到它们之间的圆弧部分,如下图所示: 但是,我没有找到合适的方法来考虑过渡。经过一番思考后,我开始认为这是因为,给定一组离散点 - 以及它们的测量误差 - 代表一条完整的曲线,并不完全清楚认为它“开始”和“结束”的位置和,此外,在哪里考虑过渡、正确的圆和退出过渡的“开始”和“结束”也不太清楚。

我可能错过了关于这个主题的任何工作吗?有没有合适的方法将整个过渡 + 曲线 + 过渡结构拟合到点集?

【问题讨论】:

  • 您的数据点似乎过于稀疏,无法检测过渡部分,甚至无法准确/可靠地拟合圆圈!虽然无法从图中看到确切的点密度和噪声幅度。
  • @YvesDaoust 抱歉,这是我本可以包含的一些信息。虚线表示显然不适合表示点密度。以每秒 20 个 GPS 位置的采样频率在铁路线上进行测量。每个距离单位的确切地理位置不是唯一的,因为速度不是恒定的,但由于最大速度为 80 公里/小时(22.22 米/秒),因此在最坏的情况下,每 90 厘米(大约)有一个样本。很少有噪声位可能会被抑制和插值,因为它们会抛出巨大的曲率值。
  • @YvesDaoust 此外,在图中,地理坐标已转换为笛卡尔坐标,但这不是强制性的。你认为这样的密度(假设每 90 厘米一个样本,在最坏的情况下)是否足以进行几何估计?
  • 回旋曲线段的典型长度是多少?测量的准确度如何?

标签: geometry curve-fitting computational-geometry numerical-methods


【解决方案1】:

据我所知,没有任何方法可以将一个序列clothoid1-circle-clothoid2 拟合到一组给定的点中。

基本事实是两点定义一条直线,三点定义一个独特的圆。

回旋曲线要复杂得多,因为你需要:参数A,最终半径Rf,初始点px,py ,该点的半径Ri,以及该点的切线T(与X轴的夹角)。
这些是您可以用来找到解决方案的 5 个数据。

由于回旋曲线坐标是通过扩展菲涅耳积分计算的(请参阅 https://math.stackexchange.com/a/3359006/688039 一点解释),然后应用平移和旋转,因此没有简单的方法可以将此螺旋线拟合到一组给定点中。

当我不得不处理你的问题时,我所做的是:

  1. 计算三个连续点的半径:p1p2p3、p2p3p4、p3p4p5 等
  2. 观察半径的顺序。相似值表示圆形,增加/减少值表示回旋曲线;大值意味着顺子。
  3. 对于每个基本元素(线、圆),手动或通过某种回归方法找到最可能的特征(角度、顶点、半径)。很多时候,常识是最好的。
  4. 对于螺旋线,您可以从取自相邻元素的近似值开始。这些值很可能是初始角度和点,以及初始和最终半径。然后你需要迭代,使用菲涅耳和“空间变化”,直到找到一个“好的”参数A。然后重复其他值的微小差异,即您从相邻值中获取的值。
  5. 进行您认为好的更改。例如,许多值(A、半径)曾经是整数,没有小数,只是因为设计人员更容易输入。

如果您可以制作一个小程序来执行这些步骤,那就足够了。使用典型的道路软件会有所帮助,但不会避免您的迭代过程。

【讨论】:

  • 好的,这是一个很好的答案,我会从中汲取一些想法。在计算连续三元组的半径之前,您会使用过滤器(移动平均线、Savitzky-Golay 等)还是一些数据软化方法?
  • 我认为最好的数据是原始数据。数据本身存在错误,您无法提前知道所有类型的错误来源。因此,最佳拟合是最小化数据和估计几何之间的最终差异。
  • 在尝试任何事情之前,我认为必须检查是否有足够准确的数据可用(我对此表示怀疑)。
  • 拟合回旋曲线在理论上没有不可能,你必须在几何模型中添加相关参数(例如起点/终点的位置),并使用通用最小化器。但是您可以预期准确度会非常低。
  • @YvesDaoust 此处拟合回旋曲线的方法是尝试拟合回旋曲线。相反,您拟合直线和圆弧,按照拟合曲线的偏差对点序列进行分块。对于每个线/弧组合,最多存在 一个 回旋曲线,它与每个端点的相邻线段相切并具有相同的曲率——我们在拟合阶段。因此,您可以抖动拟合线/拟合弧并最大限度地减少过渡段上的后续偏差。
【解决方案2】:

如果点与有效曲率半径相比是密集的,则通过在少数点上对圆进行最小二乘拟合来估计局部曲率,同时考虑到曲率大部分时间为零。

您将获得一个带有常数值和连接它们的斜坡的图。您可以使用拐点处的斜率估计值来确定过渡点。

【讨论】:

  • 点数越少,误差越大,不确定性越大。相反,在保持偏差较小的情况下,尝试尽可能多地增加点数。这样,您可以在拟合弧线和直线时检测这些线段。
猜你喜欢
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 2018-05-28
相关资源
最近更新 更多