相关疑难解决方法(0)

随时间变化的卡尔曼滤波器

我有一些数据,这些数据代表从两个不同的传感器测得的物体的位置。因此,我需要进行传感器融合。更为困难的问题是来自每个传感器的数据实际上是在随机时间到达的。我想使用pykalman来融合和平滑数据。pykalman如何处理可变的时间戳数据?

数据的简化示例如下所示:

import pandas as pd
data={'time':\
['10:00:00.0','10:00:01.0','10:00:05.2','10:00:07.5','10:00:07.5','10:00:12.0','10:00:12.5']\
,'X':[10,10.1,20.2,25.0,25.1,35.1,35.0],'Y':[20,20.2,41,45,47,75.0,77.2],\
'Sensor':[1,2,1,1,2,1,2]}

df=pd.DataFrame(data,columns=['time','X','Y','Sensor'])
df.time=pd.to_datetime(df.time)
df=df.set_index('time')
Run Code Online (Sandbox Code Playgroud)

和这个:

df
Out[130]: 
                            X     Y  Sensor
time                                       
2017-12-01 10:00:00.000  10.0  20.0       1
2017-12-01 10:00:01.000  10.1  20.2       2
2017-12-01 10:00:05.200  20.2  41.0       1
2017-12-01 10:00:07.500  25.0  45.0       1
2017-12-01 10:00:07.500  25.1  47.0       2
2017-12-01 10:00:12.000  35.1  75.0       1
2017-12-01 10:00:12.500  35.0  77.2       2
Run Code Online (Sandbox Code Playgroud)

对于传感器融合问题,我认为我可以重新调整数据的形状,使位置X1,Y1,X2,Y2具有大量缺失值,而不仅仅是X,Y。(这是相关的:https : //stackoverflow.com/questions/47386426/2-sensor-readings-fusion-yaw-pitch

因此,我的数据如下所示:

df['X1']=df.X[df.Sensor==1]
df['Y1']=df.Y[df.Sensor==1]
df['X2']=df.X[df.Sensor==2]
df['Y2']=df.Y[df.Sensor==2]
df
Out[132]: 
                            X     Y  Sensor    X1    Y1    X2    Y2
time                                                               
2017-12-01 10:00:00.000  10.0  20.0       1 …
Run Code Online (Sandbox Code Playgroud)

numpy pandas kalman-filter pykalman

3
推荐指数
1
解决办法
1315
查看次数

标签 统计

kalman-filter ×1

numpy ×1

pandas ×1

pykalman ×1