Source code for genericroboticarm.robo_APIs.dorna.dorna_simulation

import time
from datetime import datetime


[docs] class DornaSim: def __init__(self): self.pos = {joint: 0 for joint in ["x", "y", "z", "a", "b", "j0", "j1", "j2", "j3"]} print(f"{datetime.now()}: Created dorna simulation")
[docs] def connect(self, **kwargs): print(f"{datetime.now()}: Connecting to (simulated) hardware")
[docs] def set_pwm(self, **kwargs): pass
[docs] def set_freq(self, **kwargs): pass
[docs] def set_motor(self, **kwargs): pass
[docs] def play(self, **kwargs): self.set_duty(duty=kwargs.get("duty0", 10))
[docs] def set_duty(self, **kwargs): if 'duty' in kwargs: print(f"{datetime.now()}: setting duty to {kwargs['duty']}") if kwargs['duty'] == 12: print(f"{datetime.now()}: Opening gripper") if kwargs['duty'] == 8.5: print(f"{datetime.now()}: Closing gripper")
[docs] def jmove(self, **kwargs): self.lmove(**kwargs)
[docs] def lmove(self, **kwargs): print(f"{datetime.now()}: Moving to {kwargs} ...", end=' ', flush=True) for joint, val in kwargs.items(): if joint in self.pos: if kwargs['rel']: time.sleep(.02) self.pos[joint] += kwargs[joint] else: time.sleep(.4) self.pos[joint] = kwargs[joint] print(f"{datetime.now()}: ... done")
[docs] def get_pose(self): return list(self.pos.values())[:5]
[docs] def get_all_joint(self): return list(self.pos.values())[5:]