class Hexapod(object): def __init__(self, config): # Prepare the root reference frame. self.ref = ReferenceFrame(Vector3([0., 0., 0.]), Quaternion.from_z_rotation(0.)) self.body = HexapodBody(self.ref, config) self.legs = [ HexapodLeg(config, self.body, self.ref, legid) for legid in config.getLegs() ] self.mp = HexapodMotionPlanner(config, self.body, self.legs) self.stepmp = HexapodStepMotionPlanner(config, self, self.mp, self.legs, config.getLegPhases()[2]) self.stepmp.start() def tick(self): self.stepmp.tick() self.mp.tick() def setWalking(self, forward, right, clockwise): self.stepmp.setStepParams(forward, right, clockwise) def setBodyPose(self, angle, trans): self.mp.updateTarget( {"body": { "trans": trans, "rot": angle, "frames": 1 }}) def getRawState(self): return dict((l.getId(), [s.getRotation() for s in l.getSegments()]) for l in self.legs)
def __init__(self, config): # Prepare the root reference frame. self.ref = ReferenceFrame(Vector3([0., 0., 0.]), Quaternion.from_z_rotation(0.)) self.body = HexapodBody(self.ref, config) self.legs = [ HexapodLeg(config, self.body, self.ref, legid) for legid in config.getLegs() ] self.mp = HexapodMotionPlanner(config, self.body, self.legs) self.stepmp = HexapodStepMotionPlanner(config, self, self.mp, self.legs, config.getLegPhases()[2]) self.stepmp.start()
def __init__(self, config): # Prepare the root reference frame. self.ref = ReferenceFrame(Vector3([0.,0.,0.]), Quaternion.from_z_rotation(0.)); self.body = HexapodBody(self.ref, config); self.legs = [HexapodLeg(config, self.body, self.ref, legid) for legid in config.getLegs()]; self.mp = HexapodMotionPlanner(config, self.body, self.legs); self.stepmp = HexapodStepMotionPlanner(config, self, self.mp, self.legs, config.getLegPhases()[2]); self.stepmp.start();
class Hexapod(object): def __init__(self, config): # Prepare the root reference frame. self.ref = ReferenceFrame(Vector3([0.,0.,0.]), Quaternion.from_z_rotation(0.)); self.body = HexapodBody(self.ref, config); self.legs = [HexapodLeg(config, self.body, self.ref, legid) for legid in config.getLegs()]; self.mp = HexapodMotionPlanner(config, self.body, self.legs); self.stepmp = HexapodStepMotionPlanner(config, self, self.mp, self.legs, config.getLegPhases()[2]); self.stepmp.start(); def tick(self): self.stepmp.tick(); self.mp.tick(); def setWalking(self, forward, right, clockwise): self.stepmp.setStepParams(forward, right, clockwise); def setBodyPose(self, angle, trans): self.mp.updateTarget({"body": {"trans": trans, "rot": angle, "frames": 1}}); def getRawState(self): return dict((l.getId(), [s.getRotation() for s in l.getSegments()]) for l in self.legs)