1

有没有办法同步由传感器(例如加速度)(SensorEvent.timestamp)和 GPS (Location.getTime())测量的值中的时间戳。
SensorEvent.timestamp 是自设备启动以来的纳秒(本地时间)。Location.getTime() 是自 1970 年以来的毫秒数(全球时间)。

我想到的一种解决方案是计算本地时间和全球(GPS)时间之间的偏移量。但问题是,Location 中的时间是 GPS 消息到达设备的时间,但是设备的 GPS 单元(不知道如何调用)需要一些时间来计算位置和将其转发给我的应用程序,因此我无法计算消息到达的当地时间。我在某处(不记得在哪里)读到,从消息到达到它被处理的延迟可能是 100 毫秒,所以如果 GPS 数据和来自其他传感器的数据之间存在很大的偏移量当应用程序获取位置消息和该位置的时间戳时,我会计算当地时间。
有没有办法弄清楚处理 GPS 消息需要多长时间?还是有另一种方法来同步测量?

我想同步这些值的原因是,我想对数据应用一个过滤器(例如 Kalman-Filter)。为此,我想尽可能准确地计算传感器值和 gps 值之间的偏移量。

4

1 回答 1

1

通常,每秒脉冲 (PPS) 信号用于将测量时间链接到本地​​时钟。GPS 接收器在测量时触发一个脉冲。然后使用本地时钟对该脉冲进行时间戳记。在 Android 手机上,此功能不可用。

除了处理和传输时间造成的延迟外,GPS 软件中的过滤可能还会导致额外的延迟。这种延迟甚至可能取决于所用卫星的速度或数量。

您可以通过比较两者的信号来“校准” GPS 数据和传感器数据之间的延迟。例如:如果您从加速变为减速,您会在手机的加速度计和 GPS 速度中清楚地看到这一点。但是,我怀疑您是否能获得良好的延迟准确性。您甚至可以在估计延迟的卡尔曼滤波器中添加一个状态。

于 2012-07-13T11:39:30.157 回答