def play(args): global broker, nao_motion, nao_video nao_strategies = {'basic': Basic, 'human': Human} other_strategies = {'vision': NAOVision, 'human': Human} nao_strat = nao_strategies.get(args['--nao-strategy'], None) other_strat = other_strategies.get(args['--other-strategy'], None) if nao_strat is None: exit("{0} is not a valid strategy. The valid strategies for NAO are basic and " "human".format(args['--nao-strategy'])) if other_strat is None: exit("{0} is not a valid strategy. The valid strategies for the other player are " "vision and human".format(args['--other-strategy'])) basic.ALPHA_BETA_MAX_DEPTH = int(args['--max-depth']) data.IP = args['--ip'] data.PORT = int(args['--port']) broker = ALBroker("myBroker", "0.0.0.0", 0, data.IP, data.PORT) nao_motion = MotionController() nao_video = VideoController() nao_tts = ALProxy("ALTextToSpeech", data.IP, data.PORT) try: loop = LogicalLoop(nao_motion=nao_motion, nao_video=nao_video, nao_tts=nao_tts, ppA=float(args['--ppA']), cA=float(args['--cA']), rA=float(args['--rA']), min_detections=int(args['--min-detections']), sloped=args['--sloped'], dist=float(args['--dist']), nao_strategy=nao_strat, other_strategy=other_strat, wait_disc_func=wait_for_disc, ) loop.loop() except KeyboardInterrupt: print "Keyboard interrupt" finally: broker.shutdown() return 0
def ik(args): global broker, nao_motion, nao_video data.IP = args['--ip'] data.PORT = int(args['--port']) broker = ALBroker("myBroker", "0.0.0.0", 0, data.IP, data.PORT) nao_motion = MotionController() nao_video = VideoController() nao_motion.stand() nao_tts = ALProxy("ALTextToSpeech", data.IP, data.PORT) try: loop = LogicalLoop(nao_motion=nao_motion, nao_video=nao_video, nao_tts=nao_tts, ppA=float(args['--ppA']), cA=float(args['--cA']), rA=float(args['--rA']), min_detections=1, wait_disc_func=lambda: None) if not args['--no-grab']: wait_for_disc() else: nao_motion.motion_proxy.closeHand("LHand") nao_motion.setLeftArmRaised(secure=True) loop.inverseKinematicsConvergence(int(args['--hole'])) nao_motion.crouch() except KeyboardInterrupt: print "Keyboard interrupt" broker.shutdown() return 0