class Play(Primitive): properties = ['record_name', 'moves'] path = '/tmp/{}.json' def __init__(self, robot): Primitive.__init__(self, robot) self.record_name = "demo_example" def setup(self): for m in self.robot.motors: m.compliant = False m.moving_speed = 0 def run(self): with open(self.path.format(self.record_name)) as f: move = Move.load(f) self.player = MovePlayer(self.robot, move, max_start_speed=0) self.player.start() self.player.wait_to_stop() def teardown(self): for m in self.robot.motors: m.moving_speed = 0 @property def moves(self): return [ s.replace('/tmp/', '').replace('.json', '') for s in glob.glob('/tmp/*.json') ]
def start_move_player(self, move_name): """Move player need to have a move file <move_name.json> in th PATH to play it""" with open(move_name + '.record') as f: loaded_move = Move.load(f) move_name += '_player' player = MovePlayer(self.robot, loaded_move) self.robot.attach_primitive(player, move_name) player.start() player.wait_to_stop() return move_name
#~ try: #~ with open(poppy_config_file) as f: #~ poppy_config = json.load(f) #~ poppy = pypot.robot.from_config(poppy_config) #~ poppy.start_sync() except Exception,e: print "could not create poppy object" print e for m in poppy.motors: m.compliant = False m.goal_position = 0.0 m.max_torque = 20 with open('mymove.json') as f: loaded_move = Move.load(f) player = MovePlayer(poppy, loaded_move) print "starting" player.start() player.wait_to_stop() print "finished" for m in poppy.motors: m.compliant = True print m.name time.wait(1)
poppy = PoppyHumanoid() #~ try: #~ with open(poppy_config_file) as f: #~ poppy_config = json.load(f) #~ poppy = pypot.robot.from_config(poppy_config) #~ poppy.start_sync() except Exception, e: print "could not create poppy object" print e for m in poppy.motors: m.compliant = False m.goal_position = 0.0 m.max_torque = 20 with open('mymove.json') as f: loaded_move = Move.load(f) player = MovePlayer(poppy, loaded_move) print "starting" player.start() player.wait_to_stop() print "finished" for m in poppy.motors: m.compliant = True print m.name time.wait(1)