Python ::从IMU数据计算3D样条线以在点之间进行插值

时间:2014-05-21 09:18:49

标签: python math 3d point spline

(方案 - 下面的问题)

我正处于硕士论文的中间,并在一段python代码上苦苦挣扎。我有一组IMU数据,它给了我一堆信息。一行给我以下信息:

LocalUTC (HMS)          19:15:18.857        
Latitude (+/-D M S)     -13 23 23.30087
Longitude (+/-D M S)    -76 08 34.16626
H-MSL (m)               1170.490            #hight above sea level in meter
AccBdyX (m/s^2)         -0.801
VelBdyX (m/s)           -45.971
AccBdyY (m/s^2)         0.348
VelBdyY (m/s)           1.470
AccBdyZ (m/s^2)         -0.183
VelBdyZ (m/s)           -0.082
Roll (Deg)              0.0264490000
Pitch (Deg)             -0.0513730000
Heading (Deg)           315.1353210000

此特定集(条目)也是照片拍摄的“时间戳”。这意味着我有两个文件

  1. periodic ::每5ms( - > 200Hz)
  2. 基于事件::每次拍摄照片
  3. 目前我的申请远非好或有成效。但我设法建立了这些数据集和功能的列表,这使我在拍摄照片时获得了8个“点/条目”。现在我想通过这8个点“找到”一个完美的样条曲线。

    然后,我将使用此样条曲线以及精确的曝光时间和持续时间来计算曝光时间内的移动。

    (问题)

    任何提示并帮助如何为给定的3D点构建3D样条线?

    我浏览了互联网,发现了不少提示。基本上我认为我必须使用“Catmull Rom”样条。有关一些事实,请参阅Interpolation methods

    在正常的公式化集合中找到了另一个提示

    1. 它自身的函数:: f(t)=坐标 - > (纬度,经度,H-MSL)
    2. 1st derivation :: f'(t)=“speed” - > (VelBdyX,VelBdyY,VelBdyZ)
    3. 2nd derivation :: f''(t)=“acceleration” - > (AccBdyX,AccBdyY,AccBdyZ)
    4. 这意味着(对我而言)我不必计算样条曲线,我只是必须将值放到正确的位置?!?由于f'(t)是“切线”而f''(t)是“切线” - 矢量的长度。 deeper look into this: here但我试过了......而且......好吧......如果有效,我不会发布这个。 ; - )

      所以我基本上有两个问题......(对不起)

      1. (数学)3D功能如何?
      2. (python)我怎么把它放到python中?
      3. 最后,我将返回 n 条目的新数据集。这些条目表示样条曲线中间的2个给定点之间的各种步数。

        • 第一次进入 - >曝光时间START
        • 第二到 n-1 - > n-2个条目
        • 条目 n (最后) - >曝光时间END

        n 将介于5到50之间 - 取决于速度和照片的分辨率。

        抱歉我的(生锈的)英文!随意纠正并询问是否有不清楚和/或错误的事情。我希望你们能帮助我

0 个答案:

没有答案