import videosdk_teleop as teleop
from videosdk_teleop import Follower, SafetyConfig, single_group_descriptor
JOINTS = ("shoulder", "elbow", "wrist", "gripper")
class MyArm(Follower):
def __init__(self, **kw):
self.position = {j: 0.0 for j in JOINTS}
super().__init__(**kw) # LAST
def descriptor(self):
return single_group_descriptor("my-arm", "my-arm", JOINTS,
control_hz=30)
def limits(self):
return {j: (-90.0, 90.0) for j in JOINTS}
def read_joints(self):
return dict(self.position) # replace with your driver
def write_joints(self, joints):
self.position.update(joints) # replace with your driver
follower = MyArm(safety=SafetyConfig(slew=2.0), control_hz=30)
@follower.on_applied
def _(action):
print("applied", action.command_id, action.action)
follower.run(hz=30)