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
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 ===")
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 ===")
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")