如何生成不规则的时间间隔?

时间:2016-12-28 04:00:43

标签: python real-time sensor slam

我打算模拟真实数据,即以不规则的时间间隔生成数据。下面是我在python中编写的一些原型代码,用于模拟不规则时间(不是数据),但结果是我的循环运行得太快,以至于生成的每个“时间”(dat)都是在同一时间戳生成的。在这段代码之上,我打算提供数据集并以这些不规则的时间戳传递数据。

import time,random

Tadd=0.1
start=time.time()
while time.time()<(start+Tadd):
     x=random.uniform(0,1)
     if x<0.5:
         dat=time.time()
         print dat
     else:
         pass

输出就是这个。

1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95
1482896418.95

所以我的问题是:

  1. 以这种方式编码是否可行或“现实”?或者我最好逐行阅读文本文件。例如,读取第1行过程,读取第2行过程,....我的意图实际上是读取机器人本地化的传感器数据。但是,这是最好的模拟。我在想,也许我可以使用一个事件从我的鼠标生成数据。有人可以就如何解决这个问题提供见解和建议吗?或者我最好从模拟环境直接进入实际环境并购买超声波传感器。

  2. 或者,如果我在正确的轨道上,这是一个足够好的模拟。在这种情况下,如何使我的时间间隔不那么敏感,以便每个“时间”(dat)与另一个不同。

2 个答案:

答案 0 :(得分:1)

您只需在两者之间生成一个随机数并将其添加到当前时间。这假设您过去不需要时间。

编辑:现在代码将按递增顺序生成时间戳,平均分为一秒。

import time,random

Tadd=0.1
start=time.time()
init = 0
while time.time()<(start+Tadd):
     x=random.uniform(init,init+1)
     dat=time.time()+x
     init+=1;
     print dat

print start, start+Tadd

答案 1 :(得分:0)

模拟以不规则间隔到达的数据应该不难。但是,您不会在数据点之间添加任何延迟(除了代码执行时间),因此您可能希望显式添加它们。例如,此代码将运行5秒并以随机间隔打印时间。调整它以匹配您的数据源应该不难。

import time
import random

run_time = 5
start = time.time()
now = time.time()
while now < start + run_time:
    print now
    time.sleep(random.random())
    now = time.time()