-
Guilhem Saurel authoredGuilhem Saurel authored
boss.py 1.11 KiB
#!/usr/bin/env python3
import time
import numpy as np
import pinocchio as pin
from manager import QueueClient
from task import Task, TaskParameters
class Boss(QueueClient):
def run(self, qs, vqs, aqs):
# create some tasks
for i, [q, v, a] in enumerate(zip(qs, vqs, aqs)):
self.tasks.put(Task(i, q, v, a))
# Wait for the results
results = []
for _ in qs:
result = self.results.get()
print(
f"got result {result.identifier} of processed in {result.time:.3f}s : "
)
results.append(result)
print("Got all {tasks} results !")
if __name__ == "__main__":
# Allocate data to be proceeded.
NDATA = 20
qs = np.array(
[pin.randomConfiguration(TaskParameters.robot.model) for _ in range(NDATA)]
)
vqs = np.random.rand(NDATA, TaskParameters.robot.model.nv) * 2 - 1
aqs = np.random.rand(NDATA, TaskParameters.robot.model.nv) * 2 - 1
start = time.perf_counter()
Boss().run(qs, vqs, aqs)
total = time.perf_counter() - start
print(f"Completed in {total:.3f} secs")