我有一些数据,这些数据代表从两个不同的传感器测得的物体的位置。因此,我需要进行传感器融合。更为困难的问题是来自每个传感器的数据实际上是在随机时间到达的。我想使用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)