Skip to content
Snippets Groups Projects
Commit 609583d8 authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

review example-3

parent 60a0993e
No related branches found
No related tags found
1 merge request!4review details
#!/usr/bin/env python3
import numpy as np
import time
from manager import QueueClient
from task import Task,TaskParameters
import numpy as np
import example_robot_data as robex
import pinocchio as pin
from manager import QueueClient
from task import Task, TaskParameters
class Boss(QueueClient):
def run(self, qs,vqs,aqs):
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))
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 range(len(qs)):
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__':
import time
# 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
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)
Boss().run(qs, vqs, aqs)
total = time.perf_counter() - start
print( f'Completed in {total:.3f} secs')
print(f'Completed in {total:.3f} secs')
import time
import pinocchio as pin
import numpy as np
import pinocchio as pin
import example_robot_data as robex
class TaskParameters:
'''Common information to all tasks, to be allocated by each minion and the boss. '''
robotname = 'ur5'
robot = robex.load(robotname)
class Task:
def __init__(self, identifier,q,v,a):
def __init__(self, identifier, q, v, a):
self.identifier = identifier
self.q = q.copy()
......@@ -23,8 +26,8 @@ class Task:
def work(self):
start = time.perf_counter()
for i in range(1000000):
pin.rnea(TaskParameters.robot.model,TaskParameters.robot.data,self.q,self.v,self.a)
for i in range(1_000_000):
pin.rnea(TaskParameters.robot.model, TaskParameters.robot.data, self.q, self.v, self.a)
self.tau[:] = TaskParameters.robot.data.tau
self.time = time.perf_counter() - start
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment