Skip to content
Snippets Groups Projects
boss.py 1.07 KiB
Newer Older
#!/usr/bin/env python3

Guilhem Saurel's avatar
Guilhem Saurel committed
import time
Guilhem Saurel's avatar
Guilhem Saurel committed
import numpy as np

import pinocchio as pin

Guilhem Saurel's avatar
Guilhem Saurel committed
from manager import QueueClient
from task import Task, TaskParameters


class Boss(QueueClient):
Guilhem Saurel's avatar
Guilhem Saurel committed
    def run(self, qs, vqs, aqs):
        # create some tasks
Guilhem Saurel's avatar
Guilhem Saurel committed
        for i, [q, v, a] in enumerate(zip(qs, vqs, aqs)):
            self.tasks.put(Task(i, q, v, a))

        # Wait for the results
        results = []
Guilhem Saurel's avatar
Guilhem Saurel committed
        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 !')

Guilhem Saurel's avatar
Guilhem Saurel committed

if __name__ == '__main__':

    # Allocate data to be proceeded.
    NDATA = 20
Guilhem Saurel's avatar
Guilhem Saurel committed
    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()
Guilhem Saurel's avatar
Guilhem Saurel committed
    Boss().run(qs, vqs, aqs)
    total = time.perf_counter() - start

Guilhem Saurel's avatar
Guilhem Saurel committed
    print(f'Completed in {total:.3f} secs')