def choosenTasks(name, allert=""): message = "%s , how can i help you? \n" % (name) message += '{:s}'.format('\u0332'.join(allert)) event, rips = WindowTask(title=robot_gui_title, message=message, list=[ 'Bring to me keys', 'Bring to me food delivered', 'On/Off Tv', 'Cook me something', 'Open/Close Garage' ], key="Tk") ModifyDatabaseStorage(name) Settings.ModifyName(name) if event == 'Ok': if (rips['Tk'] != []): SetAllActionsAvailableFromDB() SetAllActionsFromDB() if (rips['Tk'][0] == 'Bring to me keys'): MainTaskKeys(name, task=rips['Tk'][0]) elif (rips['Tk'][0] == 'Bring to me food delivered'): MainTaskFood(name, task=rips['Tk'][0]) elif (rips['Tk'][0] == 'On/Off Tv'): MainTaskOnOffTV(name, task=rips['Tk'][0]) elif (rips['Tk'][0] == 'Open/Close Garage'): MainTaskOpenCloseGarage(name, task=rips['Tk'][0]) elif (rips['Tk'][0] == 'Cook me something'): MainTaskCook(name, task=rips['Tk'][0]) else: choosenTasks(name, allert='Please, choose Task') if event == 'Reset Db': ClearDatabaseStorage() ClearDatabaseActions() Settings.ClearActualSolution() ProgressWinodw(robot_gui_title, 'Reset of Database ...', 100, 10) subprocess.run('python MainRonRobot.py') if (event == 'View Home'): event, result = ViewMapPopup(robot_gui_title) if (event == 'Back'): choosenTasks(name) else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted)
def MainTaskOnOffTV(name, task): if (Settings.PositionRon == [] and Settings.PositionController == []): Settings.ModifyName(name[0]) event, onTv = Window(robot_gui_title, '%s , I have to on or off the TV?' % (name), 'OTV', ['OnTv', 'OffTv']) if event == 'Ok': Settings.OnTv = onTv['OTV'][0] OnOrOffTv = Settings.OnTv list_rooms = [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor' ] event, position_start = Window( robot_gui_title, 'Hi %s , in which room i am ?' % (name), 'LB', list_rooms, True) if event == 'Ok' or event == 'Read From Sensor': if (event != 'Read From Sensor'): Settings.SetPositionRon(position_start['LB'][0]) else: Settings.SetPositionRon(random.choice(list_rooms)) if (Settings.HasController == []): solution, goal_position, where_controller, has_controller = RonTaskOnOffTv( Settings.PositionRon[0], OnOrOffTv) actions = define_actions_robot(solution) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): start_pos_mess = start_position_message_tv( robot_position=Settings.PositionRon[0], position_object=where_controller, position_tv=Settings.PositionTv[0]) plan_mess = planning_message_tv( has_controller=has_controller, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], where_controller, goal_position, has_controller, targ=task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-OnTv / OffTv\n-PickupController. \nYou can choose one of these actions :\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction((sol['ADD_DEL_ACT'][0]).name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable( Settings.AllActions) MainTaskOnOffTV(name, task) else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted) else: OnOrOffTv = Settings.OnTv solution, goal_position, where_controller, has_controller = RonTaskOnOffTv( Settings.PositionRon[0], OnOrOffTv) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): if (Settings.HasController[0] == 'no'): Has_controller = False else: Has_controller = True actions = define_actions_robot(Settings.ActualSolution[0]) start_pos_mess = start_position_message_tv( robot_position=Settings.PositionRon[0], position_object=where_controller, position_tv=Settings.PositionTv[0]) plan_mess = planning_message_tv(has_controller=Has_controller, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], where_controller, goal_position, Has_controller, targ=task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-OnTv / OffTv\n-PickupController\nYou can choose one of these actions :\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction((sol['ADD_DEL_ACT'][0]).name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable(Settings.AllActions) MainTaskOnOffTV(name, task) else: PopupCancel(robot_gui_aborted)
def MainTaskOpenCloseGarage(name, task): if (Settings.PositionRon == []): Settings.ModifyName(name[0]) event, taskOpenClose = Window( robot_gui_title, '%s , I have to open or close the Garage?' % (name), 'OCG', ['OpenGarage', 'CloseGarage']) Settings.SetOpenGarage(taskOpenClose['OCG'][0]) if event == 'Ok': taskOpenClose = taskOpenClose['OCG'][0] list_rooms = [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor', 'Door' ] event, position_start = Window( robot_gui_title, 'Hi %s , in which room i am ?' % (name), 'LB', list_rooms, True) if event == 'Ok' or event == 'Read From Sensor': if (event != 'Read From Sensor'): Settings.SetPositionRon(position_start['LB'][0]) else: Settings.SetPositionRon(random.choice(list_rooms)) if (Settings.HasKeys == [] and Settings.PositionKeys == []): solution, goal_position, where_key, has_keys = RonTaskOpenCloseGarage( Settings.PositionRon[0], taskOpenCloseOff=taskOpenClose) actions = define_actions_robot(solution) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): start_pos_mess = start_position_message_open_close_garage( robot_position=Settings.PositionRon[0], position_object=Settings.PositionKeys[0], person_position=Settings.PositionGarage[0]) plan_mess = planning_message_open_close_garage( has_keys=has_keys, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], where_key, goal_position, has_keys, targ=task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-PickupKeys\n-OpenGarage / CloseGarage\n.\nYou can choose one of these actions\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction((sol['ADD_DEL_ACT'][0]).name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable( Settings.AllActions) MainTaskOpenCloseGarage(name, task) else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted) Settings.ClearActualSolution() else: PopupCancel(robot_gui_aborted) Settings.ClearActualSolution() else: taskOpenClose = Settings.OpenGarage[0] solution, goal_position, where_key, has_keys = RonTaskOpenCloseGarage( Settings.PositionRon[0], taskOpenCloseOff=taskOpenClose) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): if (Settings.HasKeys[0] == 'no'): Has_key = False else: Has_key = True actions = define_actions_robot(Settings.ActualSolution[0]) start_pos_mess = start_position_message_open_close_garage( robot_position=Settings.PositionRon[0], position_object=Settings.PositionKeys[0], person_position=Settings.PositionGarage[0]) plan_mess = planning_message_open_close_garage(has_keys=Has_key, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], Settings.PositionKeys[0], Settings.PositionGarage[0], Has_key, targ=task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-PickupKeys\n-OpenGarage / CloseGarage.\nYou can choose one of these actions\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction(sol['ADD_DEL_ACT'][0].name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable(Settings.AllActions) MainTaskOpenCloseGarage(name, task) else: PopupCancel(robot_gui_aborted) Settings.ClearActualSolution()
def MainTaskFood(name, task): if (Settings.PositionRon == []): Settings.ModifyName(name[0]) list_rooms = [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor', 'Door' ] event, position_start = Window(robot_gui_title, 'Hi %s , in which room i am ?' % (name), 'LB', list_rooms, True) if event == 'Ok' or event == 'Read From Sensor': if (event != 'Read From Sensor'): Settings.SetPositionRon(position_start['LB'][0]) else: Settings.SetPositionRon(random.choice(list_rooms)) if (Settings.HasKeys == [] and Settings.PositionPerson == []): solution, goal_position, where_food, has_food = RonTaskFood( Settings.PositionRon[0], Settings.PositionFood[0]) actions = define_actions_robot(solution) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): start_pos_mess = start_position_message_food( robot_position=Settings.PositionRon[0], position_object=where_food, person_position=Settings.PositionPerson[0]) plan_mess = planning_message_food(has_food=has_food, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], where_food, goal_position, has_food, targ=task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-PickupFood\n-DropFood. \nYou can choose one of these actions :\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction((sol['ADD_DEL_ACT'][0]).name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable(Settings.AllActions) MainTaskFood(name, task) else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted) else: solution, goal_position, where_food, has_keys = RonTaskFood( Settings.PositionRon[0], Settings.PositionFood[0]) Settings.SetActualSolution(solution) if (Settings.ActualSolution != [[]]): if (Settings.HasFood[0] == 'no'): Has_food = False else: Has_food = True actions = define_actions_robot(Settings.ActualSolution[0]) start_pos_mess = start_position_message_food( robot_position=Settings.PositionRon[0], position_object=where_food, person_position=Settings.PositionPerson[0]) plan_mess = planning_message_food(has_food=Has_food, planning=actions) Popup('Start Position : ', start_pos_mess) Popup('Solution : ', plan_mess) robot_environment(actions, Settings.PositionRon[0], where_food, goal_position, Has_food, task) else: event, sol = Window( robot_gui_title, 'the problem is not feasible.\nIt is necessary to add in Database Of Actions of Ron:\n-PickupFood\n-DropFood. \nYou can choose one of these actions :\nP.s You can Add also an action\nthat will be useful after for other task.', list=Settings.AllActions, key="ADD_DEL_ACT") if event == 'Ok': Settings.AddAction(sol['ADD_DEL_ACT'][0]) Settings.DropAction((sol['ADD_DEL_ACT'][0]).name) ModifyDatabaseActions(Settings.ActualActions) ModifyDatabaseAllActionsAvailable(Settings.AllActions) MainTaskFood(name, task) else: PopupCancel(robot_gui_aborted)
PopupCancel(robot_gui_aborted) # The main function if __name__ == "__main__": sg.theme('DarkAmber') Settings.init() name_db = ReadDatabaseStorage() if (name_db != ''): result = name_db.index(' 1') choosenTasks(name_db[:result]) else: event, name = sg.Window(robot_gui_title, [ [sg.Image(r'Image\robot.png')], [ sg.Text( 'Hi, im Ron, The Robot that aims to performs many task on your Home!' ) ], [sg.Text('Can i know your Name?'), sg.InputText()], [sg.Text('When you are ready, Click OK to Start! ')], [sg.Button('Ok'), sg.Button('Off Ron')] ]).read(close=True) if event == 'Ok': choosenTasks(name[1]) else: PopupCancel(robot_gui_aborted)
def RonTaskCookFood(position_start): solution = [] Settings.ClearActualSolution() where_food = Settings.PositionFoodCooking[0] if (Settings.TypeFood == [] and Settings.PositionPerson == []): event, goal_position = Window(robot_gui_title, 'Where are you now? ', 'LC', [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor' ]) if event == 'Ok': goal_position = goal_position["LC"][0] event, type_food = Window(robot_gui_title, 'What type of food do you prefer?', 'FF', ['Pasta', 'Sandwich', 'Hamburger']) if event == 'Ok': type_food = type_food["FF"][0] Settings.SetTypeFood(type_food) Settings.SetPositionPerson(goal_position) try: solution.append( RonTaskCookFoodPosStart( initial_position=position_start.strip(), process_task='go_cook', where_food=where_food.strip(), goal_position=where_food.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart( initial_position=where_food.strip(), process_task="take", where_food=where_food.strip(), goal_position=where_food.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart( initial_position=goal_position.strip(), process_task="bring_to", where_food=where_food.strip(), goal_position=goal_position.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart( initial_position=goal_position.strip(), process_task="drop", where_food=goal_position.strip(), goal_position=goal_position.strip(), type_food=type_food)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) else: PopupCancel(robot_gui_aborted) else: where_food = Settings.PositionFoodCooking[0] goal_position = Settings.PositionPerson[0] type_food = Settings.TypeFood[0] try: solution.append( RonTaskCookFoodPosStart( initial_position=position_start.strip(), process_task='go_cook', where_food=where_food.strip(), goal_position=where_food.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart(initial_position=where_food.strip(), process_task="take", where_food=where_food.strip(), goal_position=where_food.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart(initial_position=goal_position.strip(), process_task="bring_to", where_food=where_food.strip(), goal_position=goal_position.strip(), type_food=type_food)) solution.append( RonTaskCookFoodPosStart(initial_position=goal_position.strip(), process_task="drop", where_food=goal_position.strip(), goal_position=goal_position.strip(), type_food=type_food)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] return solution, goal_position, where_food, type_food
def RonTaskOnOffTv(position_start, OnOrOffTv): solution = [] Settings.ClearActualSolution() goal_position = Settings.PositionTv[0] if (Settings.PositionController == [] and Settings.HasController == []): event, controller_tv = Window( robot_gui_title, 'I already have the Controller of Tv you need (no or yes) ', 'LF', ['no', 'yes']) if event == 'Ok': controller_tv_ = controller_tv["LF"][0] if (controller_tv_.strip() == "no"): has_controller = False Settings.SetPositionHasController(controller_tv_) event, where_controller = Window( robot_gui_title, 'Where are the Controller? ', 'LR', [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor' ]) where_controller = where_controller["LR"][0] Settings.SetPositionController(where_controller) if event == 'Ok': try: solution.append( RonTaskOnOffTvPosStart( initial_position=position_start.strip(), has_controller=controller_tv_.strip(), where_controller=where_controller.strip(), goal_position=where_controller.strip(), taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart( initial_position=where_controller.strip(), has_controller="go_with_controller", where_controller=where_controller.strip(), goal_position=goal_position.strip(), taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart( initial_position=goal_position.strip(), has_controller="bo", where_controller=goal_position.strip(), goal_position=goal_position.strip(), taskOnOff=OnOrOffTv)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) #ClearDatabaseActions() else: has_controller = True where_controller = position_start Settings.SetPositionHasController(controller_tv) try: solution.append( RonTaskOnOffTvPosStart( initial_position=position_start, has_controller="go_with_controller", where_controller=where_controller, goal_position=goal_position, taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart(initial_position=goal_position, has_controller="bo", where_controller=goal_position, goal_position=goal_position, taskOnOff=OnOrOffTv)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) #ClearDatabaseActions() else: if (Settings.HasController[0] == 'no'): has_controller = False where_controller = Settings.PositionController[0] else: has_controller = True where_controller = Settings.PositionRon[0] if (Settings.HasController[0] == 'no'): try: solution.append( RonTaskOnOffTvPosStart( initial_position=position_start.strip(), has_controller=Settings.HasController[0], where_controller=where_controller, goal_position=where_controller, taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart(initial_position=where_controller, has_controller="go_with_controller", where_controller=where_controller, goal_position=goal_position, taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart(initial_position=goal_position, has_controller="bo", where_controller=goal_position, goal_position=goal_position, taskOnOff=OnOrOffTv)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: try: solution.append( RonTaskOnOffTvPosStart( initial_position=position_start.strip(), has_controller="go_with_controller", where_controller=where_controller, goal_position=goal_position, taskOnOff=OnOrOffTv)) solution.append( RonTaskOnOffTvPosStart(initial_position=goal_position, has_controller="bo", where_controller=goal_position, goal_position=goal_position, taskOnOff=OnOrOffTv)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] return solution, goal_position, where_controller, has_controller
def RonTaskFood(position_start, where_food): solution = [] Settings.ClearActualSolution() if (Settings.HasFood == [] and Settings.PositionPerson == []): event, goal_position = Window(robot_gui_title, 'Where are you now? ', 'LC', [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor' ]) if event == 'Ok': goal_position = goal_position["LC"][0] event, food = Window( robot_gui_title, 'I already have the Food you need (no or yes) ', 'LF', ['no', 'yes']) if event == 'Ok': food = food["LF"][0] if (food.strip() == "no"): has_food = False #event, where_keys = Window(robot_gui_title, 'Where are the keys? ', 'LR',['Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor']) #if event == 'Ok': Settings.SetPositionHasFood(food) Settings.SetPositionPerson(goal_position) # settings.SetPositionFood(where_food); try: solution.append( RonTaskFoodPosStart( initial_position=position_start.strip(), has_food=food.strip(), where_food=where_food.strip(), goal_position=where_food.strip())) solution.append( RonTaskFoodPosStart( initial_position=where_food.strip(), has_food="go_with_food", where_food=where_food.strip(), goal_position=goal_position.strip())) solution.append( RonTaskFoodPosStart( initial_position=goal_position.strip(), has_food="bo", where_food=goal_position.strip(), goal_position=goal_position.strip())) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: has_food = True where_food = position_start Settings.SetPositionHasFood(food.strip()) Settings.SetPositionPerson(goal_position.strip()) Settings.SetPositionFood(where_food.strip()) try: solution.append( RonTaskFoodPosStart( initial_position=position_start, has_food="go_with_food", where_food=where_food, goal_position=goal_position)) solution.append( RonTaskFoodPosStart(initial_position=goal_position, has_food="bo", where_food=goal_position, goal_position=goal_position)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) #ClearDatabaseActions() else: PopupCancel(robot_gui_aborted) #ClearDatabaseActions() else: if (Settings.HasFood[0] == 'no'): has_food = False where_food = Settings.PositionFood[0] else: has_food = True where_food = Settings.PositionRon[0] goal_position = Settings.PositionPerson[0] if (Settings.HasFood[0] == 'no'): try: solution.append( RonTaskFoodPosStart( initial_position=position_start.strip(), has_food=Settings.HasFood[0], where_food=where_food, goal_position=where_food)) solution.append( RonTaskFoodPosStart( initial_position=where_food, has_food="go_with_food", where_food=where_food, goal_position=Settings.PositionPerson[0])) solution.append( RonTaskFoodPosStart( initial_position=Settings.PositionPerson[0], has_food="bo", where_food=Settings.PositionPerson[0], goal_position=Settings.PositionPerson[0])) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: try: solution.append( RonTaskFoodPosStart( initial_position=position_start.strip(), has_food="go_with_food", where_food=where_food, goal_position=Settings.PositionPerson[0])) solution.append( RonTaskFoodPosStart( initial_position=Settings.PositionPerson[0], has_food="bo", where_food=Settings.PositionPerson[0], goal_position=Settings.PositionPerson[0])) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] return solution, goal_position, where_food, has_food
def RonTaskOpenCloseGarage(position_start, taskOpenCloseOff): solution = [] Settings.ClearActualSolution() if (Settings.HasKeys == [] and Settings.PositionKeys == []): goal_position = Settings.PositionGarage[0] event, keys = Window(robot_gui_title, 'I already have the keys you need (no or yes) ', 'LF', ['no', 'yes']) if event == 'Ok': keys = keys["LF"][0] if (keys.strip() == "no"): has_keys = False event, where_keys = Window( robot_gui_title, 'Where are the keys? ', 'LR', [ 'Personalroom', 'Kitchen', 'Bedroom', 'Bathroom', 'Livingroom', 'Floor' ]) if event == 'Ok': where_keys = where_keys["LR"][0] Settings.SetPositionHasKey(keys) Settings.SetPositionKeys(where_keys) try: solution.append( RonTaskOpenCloseGaragePosStart( initial_position=position_start.strip(), has_keys=keys.strip(), where_keys=where_keys.strip(), goal_position=where_keys.strip(), taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=where_keys.strip(), has_keys="go_with_keys", where_keys=where_keys.strip(), goal_position=goal_position.strip(), taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=goal_position.strip(), has_keys="OpenCloseGarage", where_keys=goal_position.strip(), goal_position=goal_position.strip(), taskOpenCloseOff=taskOpenCloseOff)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) else: has_keys = True where_keys = position_start Settings.SetPositionHasKey(keys.strip()) Settings.SetPositionPerson(goal_position.strip()) Settings.SetPositionKeys(where_keys.strip()) try: solution.append( RonTaskOpenCloseGaragePosStart( initial_position=position_start, has_keys="go_with_keys", where_keys=position_start, goal_position=goal_position, taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=goal_position, has_keys="OpenCloseGarage", where_keys=goal_position, goal_position=goal_position, taskOpenCloseOff=taskOpenCloseOff)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: PopupCancel(robot_gui_aborted) else: if (Settings.HasKeys[0] == 'no'): has_keys = False else: has_keys = True where_keys = Settings.PositionKeys[0] goal_position = Settings.PositionGarage[0] if (Settings.HasKeys[0] == 'no'): try: solution.append( RonTaskOpenCloseGaragePosStart( initial_position=position_start.strip(), has_keys=Settings.HasKeys[0], where_keys=Settings.PositionKeys[0], goal_position=Settings.PositionKeys[0], taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=Settings.PositionKeys[0], has_keys="go_with_keys", where_keys=Settings.PositionKeys[0], goal_position=Settings.PositionGarage[0], taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=Settings.PositionGarage[0], has_keys="OpenCloseGarage", where_keys=Settings.PositionGarage[0], goal_position=Settings.PositionGarage[0], taskOpenCloseOff=taskOpenCloseOff)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] else: try: solution.append( RonTaskOpenCloseGaragePosStart( initial_position=position_start.strip(), has_keys="go_with_keys", where_keys=position_start.strip(), goal_position=Settings.PositionGarage[0], taskOpenCloseOff=taskOpenCloseOff)) solution.append( RonTaskOpenCloseGaragePosStart( initial_position=Settings.PositionGarage[0], has_keys="OpenCloseGarage", where_keys=Settings.PositionGarage[0], goal_position=Settings.PositionGarage[0], taskOpenCloseOff=taskOpenCloseOff)) ProgressWinodw('Load Solution ...', 'Solution AI from aima ...', 100, 10) solution = [x for x in solution if x != []] Settings.SetActualSolution(solution) except: Settings.ClearActualSolution() solution = [] return solution, goal_position, where_keys, has_keys