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:]