Source code for genericroboticarm.robo_APIs.dorna.dorna_simulation

import time


[docs] class DornaSim: def __init__(self): self.pos = {joint: 0 for joint in ["x", "y", "z", "a", "b", "j0", "j1", "j2", "j3"]} print("Created dorna simulation")
[docs] def connect(self, **kwargs): print("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"setting duty to {kwargs['duty']}") if kwargs['duty'] == 12: print("Opening gripper") if kwargs['duty'] == 8.5: print("Closing gripper")
[docs] def jmove(self, **kwargs): self.lmove(**kwargs)
[docs] def lmove(self, **kwargs): print(f"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("... done")
[docs] def get_pose(self): return list(self.pos.values())[:5]
[docs] def get_all_joint(self): return list(self.pos.values())[5:]