Add sequence of action with delta_timestamps

This commit is contained in:
Remi Cadene 2024-09-18 00:53:43 +02:00
parent 568394ec06
commit 21de778377
1 changed files with 16 additions and 8 deletions

24
test.py
View File

@ -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,