我有一条电缆正在从车辆上移到地面上。通过使用摄像头系统,我可以实时估计绳索接触地面的位置。车辆的运动和位置估计中的不准确性导致着陆位置的点云。从这一点开始,我想得出电缆在地面上最可能的路径。我想实时实现这一目标,并且希望根据新数据来更新拟合度。被添加的新点的频率约为20 Hz,而车辆的运动速度约为1 m / s。因此,点云相当密集。电缆在地面上遵循的路径是平滑的(因为电缆是硬的),并且在3D模式下(x,y,z:地面不平坦!)。
我一直在寻找3D线/样条线/曲线拟合/插值。我发现了一些有前途的方法(B样条拟合,LOWESS- >似乎可行,可用于2D,但不适用于3D)。但是,对于哪种方法适合我的情况,我找不到任何明确的解释。您会针对这种情况建议哪种拟合方法?
我正在处理的当前数据集由以下生成:
import numpy as np
tMax = 10 # s
f = 20 # hz
v = 2 # m/s
samples = tMax*f
t = np.linspace(0,tMax, samples)
div = 00.[![2][2]][2]
x=1*np.sin(t)+t+np.random.uniform(-div,div,samples)
y=1*np.cos(t)+t+np.random.uniform(-div,div,samples)
z=1*np.sin(t)*np.cos(t)+t+np.random.uniform(-div,div,samples)
Run Code Online (Sandbox Code Playgroud)
我设法在2D中使用LOWESS获得合理的结果,如下图所示,但不是3D。
我可能要补充的另一件事是数据带有时间戳。我可以想象,这可能对调整生产线是有益的。
我有一组 3D 点,我使用 scipy.spatial.Delaunay 来进行三角剖分/四面体化。我现在有一组所有四面体的独特面,并希望在 3D 中可视化这些面。
是否有任何 Python 库(或带有 Python 包装器的库)可以做到这一点?