Reading the results in the ALMemory variable

Now we need to get a proxy to ALMemory and check the ALFaceDetection output variable.

# ALMemory variable where the ALFaceDetection module # outputs its results. memValue = "FaceDetected" # Create a proxy to ALMemory try: memoryProxy = ALProxy("ALMemory", IP, PORT) except Exception, e: print "Error when creating memory proxy:" print str(e) exit(1) # A simple loop that reads the memValue and checks whether faces are detected. for i in range(0, 20): time.sleep(0.5) val = memoryProxy.getData(memValue, 0) print "" print "*****" print "" # Check whether we got a valid output: a list with two fields. if(val and isinstance(val, list) and len(val) == 2): # We detected faces ! # For each face, we can read its shape info and ID. # First Field = TimeStamp. timeStamp = val[0] # Second Field = array of face_Info's. faceInfoArray = val[1] try: # Browse the faceInfoArray to get info on each detected face. for faceInfo in faceInfoArray: # First Field = Shape info. faceShapeInfo = faceInfo[0] # Second Field = Extra info (empty for now). faceExtraInfo = faceInfo[1] print " alpha %.3f - beta %.3f" % (faceShapeInfo[1], faceShapeInfo[2]) print " width %.3f - height %.3f" % (faceShapeInfo[3], faceShapeInfo[4]) except Exception, e: print "faces detected, but it seems getData is invalid. ALValue =" print val print "Error msg %s" % (str(e)) else: print "Error with getData. ALValue = %s" % (str(val)) # Unsubscribe the module. faceProxy.unsubscribe("Test_Face") print "Test terminated successfully."





Copyright © 2010 Aldebaran-Robotics - All rights reserved