Example #1
0
def testNaoConnection(NAOip, NAOport):
    worked = False
    try:
        print NAOip, NAOport
        # naoBehavior = connectToProxy(NAOip, NAOport, "ALBehaviorManager")
        # names = naoBehavior.getInstalledBehaviors()
        # print "Names: ", names
    
        naoMotions = BasicMotions(NAOip, NAOport)
        print "Made Basic Motions"
        naoMotions.naoSay("Connected!")
        # naoMotions.naoSit()
        # naoMotions.naoShadeHeadSay("Hello, the connection worked!")

        testExpressions = False
        if testExpressions:
            genUtil = GenUtil(naoMotions)
            genUtil.testExpressions()

        worked = True
    except Exception as e:
        print "Connection Failed, maybe wrong IP and/or Port"
        print e
        
    print "Connection Test Finished"
    return worked
Example #2
0
def main(NAOip, NAOport):
    print "OpenCV Version:", cv2.__version__
    myBroker = ALBroker("myBroker",
                        "0.0.0.0",   # listen to anyone
                        0,           # find a free port and use it
                        NAOip,          # parent broker IP
                        NAOport)        # parent broker port
    global BasicMotions
    BasicMotions = BasicMotions(NAOip, NAOport, myBroker)
    EdgeDetector = EdgeDetection(NAOip, NAOport)
    user_input = "Start"
    delay = 1
    while user_input != "end":
        user_input = raw_input("Enter a command: ")
        user_input = user_input.lower()
        print(user_input)
        if user_input == "speak":
            BasicMotions.naoSay("Oh My Gawd, I can Speak!")
        elif user_input == "sit":
            BasicMotions.naoSit()
        elif user_input == "stand":
            BasicMotions.naoStand()
        elif user_input == "standinit":
            BasicMotions.naoStandInit()
        elif user_input == "walk":
            BasicMotions.naoWalk(0.5, 0.4)
        elif user_input == "nod":
            BasicMotions.naoNodHead()
        elif user_input == "shake head":
            BasicMotions.naoShadeHead()
        elif user_input == "wave right":
            BasicMotions.naoWaveRight()
        elif user_input == "wave both":
            BasicMotions.naoWaveBoth()
        elif user_input == "rest":
            BasicMotions.naoRest()
        #=======EMOTION DISPLAY=============
        elif user_input == "happymotion": # do 3
            time.sleep(delay)
            BasicMotions.happyEmotion()
        elif user_input == "sadmotion": # do 5
            time.sleep(delay)
            BasicMotions.sadEmotion()
        elif user_input == "scared1motion": # touch do 8
            time.sleep(delay)
            BasicMotions.scaredEmotion1()
        elif user_input == "scared2motion": # step back, not use this
            time.sleep(delay)
            BasicMotions.scaredEmotion2()
        elif user_input == "fear1motion": # do 6
            time.sleep(delay)
            BasicMotions.fear1Emotion()
        elif user_input == "fear2motion": # do 2
            time.sleep(delay)
            BasicMotions.fear2Emotion()
        elif user_input == "hope1motion": #do 4
            time.sleep(delay)
            BasicMotions.hope1Emotion()
        elif user_input == "hope2motion": # do 1
            time.sleep(delay)
            BasicMotions.hope2Emotion()
        elif user_input == "angermotion": # do 7
            time.sleep(delay)
            BasicMotions.angerEmotion()
        elif user_input == "lookmotion":
            time.sleep(delay)
            BasicMotions.LookAtEdgeEmotion()
        elif user_input == "edgemotion": # do 9
            time.sleep(delay)
            BasicMotions.FoundEdgeEmotion()
        elif user_input == "scared3motion": # do 10
            time.sleep(delay)
            BasicMotions.scaredEmotion3()

        #=======VOICE EFFECT=============
        elif user_input == "happy":
            BasicMotions.naoSayHappy(BasicMotions.HriDialogEOD['1good'])
            #BasicMotions.happyEmotion()
        elif user_input == "sad":
            BasicMotions.naoSaySad(BasicMotions.HriDialogEOD['1bad'])
            #BasicMotions.sadEmotion()
        elif user_input == "scared":
            BasicMotions.naoSayScared(BasicMotions.HriDialogEOD['31nono'])
            #BasicMotions.scaredEmotion1()
        elif user_input == "fear":
            BasicMotions.naoSayFear(BasicMotions.HriDialogEOD['31nono'])
            #BasicMotions.fearEmotion()
        elif user_input == "hope":
            BasicMotions.naoSayHope(BasicMotions.HriDialogEOD['2yes'])
            #BasicMotions.hopeEmotion()
        elif user_input == "anger":
           BasicMotions.naoSayAnger(BasicMotions.HriDialogEOD['31nono'])
           #BasicMotions.angerEmotion()
        #=======EYE DISPLAY=============
        elif user_input == "happyeye":
            BasicMotions.setEyeEmotion('happy')
        elif user_input == "sadeye":
            BasicMotions.setEyeEmotion('sad')
        elif user_input == "scared1eye":
            BasicMotions.setEyeEmotion('scared1')
        elif user_input == "scared2eye":
            BasicMotions.setEyeEmotion('scared2')
        elif user_input == "feareye":
            BasicMotions.setEyeEmotion('fear')
        elif user_input == "hopeeye":
            BasicMotions.setEyeEmotion('hope')
        elif user_input == "angereye":
            BasicMotions.setEyeEmotion('anger')
        elif user_input == "alarmingeye":
            BasicMotions.blinkAlarmingEyes(5)
        #=======TESTING INTERNAL FUNCTIONS=======
        elif user_input == "blinktop":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeTop")
        elif user_input == "blinkbottom":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeBottom")
        elif user_input == "blinkfull":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeFull")
        elif user_input == "eyecolor":
            BasicMotions.setEyeColor(0x00FFFFFF,"LedEyeTop")
            BasicMotions.setEyeColor(0x00FF00FF,"LedEyeCorner")
            BasicMotions.setEyeColor(0x00FF00FF,"LedEyeBottom")
        #==========TESTING CAMERA============
        elif user_input == "img":
            EdgeDetector.SetDebugMode(True)
            i=0
            BasicMotions.LookAtEdgeEmotion()
            while True:
                status, distance, angle = EdgeDetector.lookForEdge(20,8)
                print "Edge: ", status,distance,angle
                if status==True:
                    BasicMotions. FoundEdgeEmotion()
                    break
                i+=1
                if i>100:
                    print "Not close enough"
                    break


        #============================================
        elif user_input != "end":
            print("That is not an availiable command")

    print("=== Main Program Finished Running ===")
Example #3
0
def main(NAOip, NAOport):
    myBroker = ALBroker("myBroker",
                        "0.0.0.0",   # listen to anyone
                        0,           # find a free port and use it
                        NAOip,          # parent broker IP
                        NAOport)        # parent broker port
    global BasicMotions
    BasicMotions = BasicMotions(NAOip, NAOport, myBroker)

    user_input = "Start"
    while user_input != "end":
        user_input = raw_input("Enter a command: ")
        user_input = user_input.lower()
        print(user_input)

        if user_input == "speak":
            BasicMotions.naoSay("Oh My Gawd, I can Speak!")
        elif user_input == "sit":
            BasicMotions.naoSit()
        elif user_input == "stand":
            BasicMotions.naoStand()
        elif user_input == "walk":
            BasicMotions.naoWalk(0.5, 0.4)
        elif user_input == "nod":
            BasicMotions.naoNodHead()
        elif user_input == "shake head":
            BasicMotions.naoShakeHead()
        elif user_input == "wave right":
            BasicMotions.naoWaveRight()
        elif user_input == "wave both":
            BasicMotions.naoWaveBoth()
        #=======EMOTION DISPLAY=============
        elif user_input == "happymotion":
            BasicMotions.happyEmotion()
        elif user_input == "sadmotion":
            BasicMotions.sadEmotion()
        elif user_input == "scared1motion":
            BasicMotions.scaredEmotion1()
        elif user_input == "scared2motion":
            BasicMotions.scaredEmotion2()
        elif user_input == "fearmotion":
            BasicMotions.fearEmotion()
        elif user_input == "hopemotion":
            BasicMotions.hopeEmotion()
        elif user_input == "angermotion":
            BasicMotions.angerEmotion()
        #=======EMOTION DISPLAY=============
        elif user_input == "happymotion":
            BasicMotions.happyEmotion()
        elif user_input == "sadmotion":
            BasicMotions.sadEmotion()
        elif user_input == "scared1motion":
            BasicMotions.scaredEmotion1()
        elif user_input == "scared2motion":
            BasicMotions.scaredEmotion2()
        elif user_input == "fearmotion":
            BasicMotions.fearEmotion()
        elif user_input == "hopemotion":
            BasicMotions.hopeEmotion()
        elif user_input == "angermotion":
            BasicMotions.angerEmotion()
        #=======VOICE EFFECT=============
        elif user_input == "happy":
            BasicMotions.naoSayHappy(BasicMotions.HriDialogEOD['1'])
        elif user_input == "sad":
            BasicMotions.naoSaySad(BasicMotions.HriDialogEOD['1'])
        elif user_input == "scared":
            BasicMotions.naoSayScared(BasicMotions.HriDialogEOD['1'])
        elif user_input == "fear":
            BasicMotions.naoSayFear(BasicMotions.HriDialogEOD['1'])
        elif user_input == "hope":
            BasicMotions.naoSayHope(BasicMotions.HriDialogEOD['1'])
        elif user_input == "anger":
           BasicMotions.naoSayAnger(BasicMotions.HriDialogEOD['1'])
        #=======EYE DISPLAY=============
        elif user_input == "happyeye":
            BasicMotions.setEyeEmotion('happy')
        elif user_input == "sadeye":
            BasicMotions.setEyeEmotion('sad')
        elif user_input == "scared1eye":
            BasicMotions.setEyeEmotion('scared1')
        elif user_input == "scared2eye":
            BasicMotions.setEyeEmotion('scared2')
        elif user_input == "feareye":
            BasicMotions.setEyeEmotion('fear')
        elif user_input == "hopeeye":
            BasicMotions.setEyeEmotion('hope')
        elif user_input == "angereye":
            BasicMotions.setEyeEmotion('anger')
        #=======TESTING INTERNAL FUNCTIONS=======
        elif user_input == "blinktop":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeTop")
        elif user_input == "blinkbottom":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeBottom")
        elif user_input == "blinkfull":
            BasicMotions.blinkEyes(random.randint(0x00000000, 0x00FFFFFF), 5.0, "EyeFull")
        elif user_input == "eyecolor":
            BasicMotions.setEyeColor(0x00FFFFFF,"LedEyeTop")
            BasicMotions.setEyeColor(0x00FF00FF,"LedEyeCorner")
            BasicMotions.setEyeColor(0x00FF00FF,"LedEyeBottom")
        #============================================
        elif user_input == "tts":
            BasicMotions.TestTts();
        #============================================
        elif user_input != "end":
            print("That is not an availiable command")

    print("=== Main Program Finished Running ===")
Example #4
0
def main(NAOip, NAOport, name):

    print "***************************************************************************"
    print "***************************************************************************"
    print "Have You updated the _FSM_INPUT File for this interaction? (1) yes, (2) no: ",
    textInput = str(raw_input()).lower()
    print "***************************************************************************"

    if textInput == "1":
        naoMotions = BasicMotions(NAOip, NAOport)
        robotName = name
        genUtil = GenUtil(naoMotions)
        genUtil.showFoodDB()

        myBroker = ALBroker("myBroker", "0.0.0.0", 0, NAOip, NAOport)
        global naoReactionChecker
        naoReactionChecker = NAOReactionChecker.NAOReactionChecker(genUtil, NAOip, NAOport)

        thread1 = ThreadedChecker(1, "Main Checker #1", genUtil)
        thread2 = UserAffectGenerator(2, "User Affect Generator #1", 3, genUtil)

        dateTime = genUtil.getDateTime()
        [userName, userNumber, activityInteractionType, lastInteraction] = getFSMInputVars()

        userInfo = initiateUserInfo(userName, userNumber, activityInteractionType, dateTime)

        # runSomeTest(genUtil)

        genUtil.showHappyEyes()
        # naoMotions.naoSit()
        print "NAO is currently: ", naoMotions.getPostureFamily()
        speed = 0.2
        if naoMotions.getPostureFamily() == "Sitting":
            speed = 0.7

        global sitTest
        sitTest = False
        if not sitTest:
            naoMotions.naoStand(speed)
        # naoMotions.naoWaveBoth()
        naoMotions.naoAliveON()

        # ============================================================= Start Functionality
        print("State Machine Started")
        print
        print
        thread1.start()
        # thread2.start()

        dietFitnessFSM = DietFitnessFSM(genUtil, robotName, userName, userNumber, activityInteractionType, lastInteraction)
        [currentState, robotEmotionNum, obserExpresNum] = dietFitnessFSM.getFSMState()

        appraiseState = False
        user_input = "Start"
        while currentState != 0:
            print("=========================================================================================")
            print "FSM Info: ", [currentState, robotEmotionNum, obserExpresNum]
            if appraiseState:
                genUtil.expressEmotion(obserExpresNum)

            [currentState, robotEmotionNum, obserExpresNum, appraiseState] = dietFitnessFSM.activityFSM()
        thread1.quit()
        # thread2.quit()
        genUtil.naoTurnOffEyes()
        # naoMotions.naoSit()
        NAOReactionChecker.ActuallyUnsubscribeAllEvents()
        myBroker.shutdown()
        naoMotions.naoAliveOff()

        print
        [stateTimeStamp, stateDateTime, fsmStateHist,
         reHist, oeHist, driveStatHist, fsmStateNameHist] = dietFitnessFSM.getHistories()
        print "History of TimeStamps: ", stateTimeStamp
        print "History of DateTimes: ", stateDateTime
        print "History of FSM States: ", fsmStateHist
        print "History of FSM State Names: ", fsmStateNameHist
        print "History of Robot Emotions: ", reHist
        print "History of Observable Expressions: ", oeHist
        print "History of Drive Statuses: ", driveStatHist
        writeUserHistories(userName, userNumber, userInfo, dateTime,
                           stateTimeStamp, stateDateTime, fsmStateHist, reHist, oeHist, driveStatHist, fsmStateNameHist)

    else:
        print "Go updated the input file for this interaction"
        print "It can be found at: ProgramDataFiles\_FSM_INPUT.json"

    print
    print("State Machine Finished")