# -*- encoding: UTF-8 -*- """ This example shows how to use ALTracker with red ball and LArm. """ import time import argparse from naoqi import ALProxy def main(IP, PORT, ballSize, effector): print "Connecting to", IP, "with port", PORT motion = ALProxy("ALMotion", IP, PORT) posture = ALProxy("ALRobotPosture", IP, PORT) tracker = ALProxy("ALTracker", IP, PORT) # First, wake up. motion.wakeUp() fractionMaxSpeed = 0.8 # Go to posture stand posture.goToPosture("StandInit", fractionMaxSpeed) # Add target to track. targetName = "RedBall" diameterOfBall = ballSize tracker.registerTarget(targetName, diameterOfBall) # set mode mode = "Head" tracker.setMode(mode) # set effector tracker.setEffector(effector) # Then, start tracker. tracker.track(targetName) print "ALTracker successfully started, now show a red ball to robot!" print "Use Ctrl+c to stop this script." try: while True: time.sleep(1) except KeyboardInterrupt: print print "Interrupted by user" print "Stopping..." # Stop tracker, go to posture Sit. tracker.stopTracker() tracker.unregisterAllTargets() tracker.setEffector("None") posture.goToPosture("Sit", fractionMaxSpeed) motion.rest() print "ALTracker stopped." if __name__ == "__main__" : parser = argparse.ArgumentParser() parser.add_argument("--ip", type=str, default="127.0.0.1", help="Robot ip address.") parser.add_argument("--port", type=int, default=9559, help="Robot port number.") parser.add_argument("--ballsize", type=float, default=0.06, help="Diameter of ball.") parser.add_argument("--effector", type=str, default="LArm", choices=["Arms", "LArm", "RArm"], help="Effector for tracking.") args = parser.parse_args() main(args.ip, args.port, args.ballsize, args.effector)