Add sequence of action with delta_timestamps
This commit is contained in:
parent
568394ec06
commit
21de778377
24
test.py
24
test.py
|
@ -34,23 +34,31 @@ class Policy:
|
||||||
self.action_queue = TemporalQueue()
|
self.action_queue = TemporalQueue()
|
||||||
self.thread = None
|
self.thread = None
|
||||||
|
|
||||||
|
self.n_action = 2
|
||||||
|
FPS = 10 # noqa: N806
|
||||||
|
self.delta_timestamps = [i / FPS for i in range(self.n_action)]
|
||||||
|
|
||||||
def inference(self, observation):
|
def inference(self, observation):
|
||||||
# TODO
|
# TODO
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
return observation
|
return [observation] * self.n_action
|
||||||
|
|
||||||
def inference_loop(self):
|
def inference_loop(self):
|
||||||
previous_timestamp = None
|
prev_timestamp = None
|
||||||
while not self.stop_event.is_set():
|
while not self.stop_event.is_set():
|
||||||
latest_observation, latest_timestamp = self.obs_queue.get()
|
last_observation, last_timestamp = self.obs_queue.get()
|
||||||
|
|
||||||
if previous_timestamp is not None and previous_timestamp == latest_timestamp:
|
if prev_timestamp is not None and prev_timestamp == last_timestamp:
|
||||||
# in case inference ran faster than recording/adding a new observation in the queue
|
# in case inference ran faster than recording/adding a new observation in the queue
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
else:
|
continue
|
||||||
predicted_action_sequence = self.inference(latest_observation)
|
|
||||||
self.action_queue.add(predicted_action_sequence, latest_timestamp)
|
pred_action_sequence = self.inference(last_observation)
|
||||||
previous_timestamp = latest_timestamp
|
|
||||||
|
for action, delta_ts in zip(pred_action_sequence, self.delta_timestamps, strict=False):
|
||||||
|
self.action_queue.add(action, last_timestamp + delta_ts)
|
||||||
|
|
||||||
|
prev_timestamp = last_timestamp
|
||||||
|
|
||||||
def select_action(
|
def select_action(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Reference in New Issue