NAOqi Trackers - Overview | API | Tutorial or samples
Python example
# -*- encoding: UTF-8 -*-
"""
This example shows how to use ALTracker with red ball.
"""
import time
import argparse
from naoqi import ALProxy
def main(IP, PORT, ballSize):
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 = "Move"
tracker.setMode(mode)
# 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()
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.")
args = parser.parse_args()
main(args.ip, args.port, args.ballsize)
Python example
# -*- encoding: UTF-8 -*-
"""
This example shows how to use ALTracker with face.
"""
import time
import argparse
from naoqi import ALProxy
def main(IP, PORT, faceSize):
print "Connecting to", IP, "with port", PORT
motion = ALProxy("ALMotion", IP, PORT)
tracker = ALProxy("ALTracker", IP, PORT)
# First, wake up.
motion.wakeUp()
# Add target to track.
targetName = "Face"
faceWidth = faceSize
tracker.registerTarget(targetName, faceWidth)
# Then, start tracker.
tracker.track(targetName)
print "ALTracker successfully started, now show your face 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.
tracker.stopTracker()
tracker.unregisterAllTargets()
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("--facesize", type=float, default=0.1,
help="Face width.")
args = parser.parse_args()
main(args.ip, args.port, args.facesize)
Python example
# -*- 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)
Python example
# -*- encoding: UTF-8 -*-
"""
This example shows how to use ALTracker to track an object with trackEvent api.
"""
import time
import argparse
from naoqi import ALProxy
def main(IP, PORT):
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)
# Set target to track.
eventName = "ALTracker/BlobDetected"
# set mode
mode = "Move"
tracker.setMode(mode)
# Set the robot relative position to target
# The robot stays a 50 centimeters of target with 10 cm precision
tracker.setRelativePosition([-0.5, 0.0, 0.0, 0.1, 0.1, 0.3])
# Then, start tracker.
tracker.trackEvent(eventName)
print "ALTracker successfully started."
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()
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.")
args = parser.parse_args()
main(args.ip, args.port)