def UserGoalsMidca(domainFile, stateFile, display=print, goalsFile=None, argsPyHopPlanner=[]): world = domainread.load_domain(domainFile) stateread.apply_state_file(world, stateFile) #creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display=display, verbose=4) #add phases by name for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) #add the modules which instantiate basic blocksworld operation myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planning.PyHopPlanner(*argsPyHopPlanner)) myMidca.append_module("Act", act.SimpleAct()) return myMidca
def UserGoalsMidca(domainFile, stateFile, goalsFile = None, extinguish = False): world = domainread.load_domain(domainFile) stateread.apply_state_file(world, stateFile) myMidca = base.PhaseManager(world, verbose=1, display = asqiiDisplay, metaEnabled=True) # add cognitive layer phases for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) # add cognitive layer modules myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planningbroken.PyHopPlannerBroken(extinguish)) myMidca.append_module("Act", act.SimpleAct()) # add meta layer phases #for phase in ["Monitor", "Interpret", "Eval", "Intend", "Plan", "Control"]: for phase in ["Monitor", "Interpret", "Intend", "Plan", "Control"]: myMidca.append_meta_phase(phase) # add meta layer modules myMidca.append_meta_module("Monitor", monitor.MRSimpleMonitor()) myMidca.append_meta_module("Interpret", interpret.MRSimpleDetect()) myMidca.append_meta_module("Interpret", interpret.MRSimpleGoalGen()) myMidca.append_meta_module("Intend", metaintend.MRSimpleIntend()) myMidca.append_meta_module("Plan", plan.MRSimplePlanner()) myMidca.append_meta_module("Control", control.MRSimpleControl()) return myMidca
def baxter_midca(): world = "Baxter World" print('I am here') myMidca = base.PhaseManager(world, display = print_func) for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) myMidca.append_module("Act", moveit_test.BaxterWave([], [(0.5212523750330741, 0.32016779873003876,-0.06583053722449383)])) return myMidca
def baxter_midca(): world = "Baxter World" myMidca = base.PhaseManager(world, display=print_func) for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) myMidca.append_module( "Act", baxter_module.BaxterWave([], [(0.4, -0.2, 0.2), (0.5, -0.2, 0.4), (0.4, -0.2, 0.2)])) return myMidca
def guiMidca(domainFile, stateFile, goalsFile = None): world = domainread.load_domain(domainFile) stateread.apply_state_file(world, stateFile) myMidca = base.PhaseManager(world, display = asqiiDisplay) for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planning.PyHopPlanner()) myMidca.append_module("Act", act.SimpleAct()) return myMidca
def __init__(self, addr, port, userID, modules): """Instantiate ``AutoOperator`` object by creating appropriate MIDCA cycle.""" self.conAddr = (addr, int(port)) self.userID = userID self.client = OperatorClient(addr, int(port), userID) self.MIDCACycle = base.PhaseManager(self.client, display=lambda x: str(x), verbose=VERBOSITY) for phase in PHASES: self.MIDCACycle.append_phase(phase) for module in modules[phase]: self.MIDCACycle.append_module(phase, module) self.MIDCACycle.set_display_function(lambda x: str(x)) self.MIDCACycle.storeHistory = False self.MIDCACycle.mem.logEachAccess = False
MIDCA_ROOT = thisDir + "/../" print MIDCA_ROOT ### Domain Specific Variables DOMAIN_ROOT = MIDCA_ROOT + "domains/logistics/" DOMAIN_FILE = DOMAIN_ROOT + "domains/domain2.sim" STATE_FILE = DOMAIN_ROOT + "states/defstate2.sim" ### Domain Specific Variables for JSHOP planner JSHOP_DOMAIN_FILE = MIDCA_ROOT + "domains/jshop_domains/logistics/logistics" JSHOP_STATE_FILE = MIDCA_ROOT + "domains/jshop_domains/logistics/problem" world = domainread.load_domain(DOMAIN_FILE) stateread.apply_state_file(world, STATE_FILE) #creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display='', verbose=4) #add phases by name for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) #add the modules which instantiate basic blocksworld operation myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) #myMidca.append_module("Simulate", simulator.ASCIIWorldViewer(display=DISPLAY_FUNC)) myMidca.append_module("Perceive", perceive.PerfectObserverWithThief()) myMidca.append_module("Interpret", guide.DeliverGoal()) #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval2()) myMidca.append_module("Intend", intend.WarehouseIntend()) myMidca.append_module(
DECLARE_OPERATORS_FUNC = restaurant_operators.declare_ops GOAL_GRAPH_CMP_FUNC = util.preferApprehend world = domainread.load_domain(DOMAIN_FILE) # for state file, need to add number of mortar blocks to begin with state_str = open(STATE_FILE).read() # first read file # now load the state stateread.apply_state_str(world, state_str) stateread.apply_state_file(world, STATE_FILE) print(world) #creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display=DISPLAY_FUNC, verbose=4, metaEnabled=True) initial_world = copy.deepcopy(world) #add phases by name for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Perceive", PerfectObserver.PerfectObserver()) myMidca.append_module("Interpret", ADistanceAnomalyNoter.ADistanceAnomalyNoter()) myMidca.append_module( "Interpret",
WIND_STRENGTH = 0 # number of extra tiles for the agent to move NUM_QUICKSAND = 10 # Load domain world = domainread.load_domain(DOMAIN_FILE) # Create Starting state state1 = nbeacons_util.NBeaconGrid() state1.generate(width=DIMENSION,height=DIMENSION,num_beacons=10,num_quicksand_spots=NUM_QUICKSAND) state1_str = state1.get_STRIPS_str() # Load state stateread.apply_state_str(world, state1_str) # Creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display=DISPLAY_FUNC, verbose=2) # Add phases by name for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) # Add the modules which instantiate basic operation #myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.NBeaconsActionSimulator(wind=WIND_ENABLED,wind_dir=WIND_DIR,wind_strength=WIND_STRENGTH,dim=DIMENSION, wind_schedule=wind_schedule)) myMidca.append_module("Simulate", simulator.NBeaconsSimulator(beacon_fail_rate=BEACON_FAIL_RATE)) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer(DISPLAY_FUNC)) myMidca.append_module("Perceive", PerfectObserver.PerfectObserver()) #myMidca.append_module("Interpret", StateDiscrepancyDetector.StateDiscrepancyDetector()) #myMidca.append_module("Interpret", SimpleNBeaconsExplain.SimpleNBeaconsExplain()) #myMidca.append_module("Interpret", UserGoalInput.UserGoalInput())
MIDCA_ROOT = thisDir + "/../" domainFile = MIDCA_ROOT + "domains/blocksworld/arsonist_extinguish.sim" stateFile = MIDCA_ROOT + "domains/blocksworld/states/extinguisher_state.sim" extinguish = True argsPyHopPlanner = [util.pyhop_state_from_world, util.pyhop_tasks_from_goals, DECLARE_METHODS_FUNC, DECLARE_OPERATORS_FUNC, extinguish] world = domainread.load_domain(domainFile) stateread.apply_state_file(world, stateFile) #creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display = util.asqiiDisplay, verbose=4) #add phases by name for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) #add the modules which instantiate basic blocksworld operation myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", PerfectObserver.PerfectObserver()) myMidca.append_module("Interpret", ADistanceAnomalyNoter.ADistanceAnomalyNoter()) #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", SimpleEval.SimpleEval()) myMidca.append_module("Intend", SimpleIntend.SimpleIntend()) myMidca.append_module("Plan", PyHopPlanner.PyHopPlanner(*argsPyHopPlanner)) myMidca.append_module("Act", SimpleAct.SimpleAct())
thisDir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) MIDCA_ROOT = thisDir + "/../" ### Domain Specific Variables DOMAIN_ROOT = MIDCA_ROOT + "domains/blocksworld/" DOMAIN_FILE = DOMAIN_ROOT + "domains/arsonist.sim" STATE_FILE = DOMAIN_ROOT + "states/defstate_fire_pyhop_inducing_bug.sim" DISPLAY_FUNC = util.asqiiDisplay DECLARE_METHODS_FUNC = methods_broken.declare_methods DECLARE_OPERATORS_FUNC = operators.declare_ops GOAL_GRAPH_CMP_FUNC = util.preferFire world = domainread.load_domain(DOMAIN_FILE) stateread.apply_state_file(world, STATE_FILE) myMidca = base.PhaseManager(world, verbose=1, display = asqiiDisplay, metaEnabled=True) # add cognitive layer phases for phase in ["Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act"]: myMidca.append_phase(phase) # add cognitive layer modules myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planningbroken.PyHopPlannerBroken(util.pyhop_state_from_world, util.pyhop_tasks_from_goals,
def create_meta_MIDCA(self): #STATE_FILE = DOMAIN_ROOT + "states/.sim" # state file is generated dynamically DISPLAY_FUNC = nbeacons_util.drawNBeaconsScene DECLARE_METHODS_FUNC = methods_nbeacons.declare_methods DECLARE_OPERATORS_FUNC = operators_nbeacons.declare_operators GOAL_GRAPH_CMP_FUNC = nbeacons_util.preferFree WIND_ENABLED = True # Load domain world = domainread.load_domain(DOMAIN_FILE) # Load state stateread.apply_state_str(world, self.start_state) # Creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(world, display=DISPLAY_FUNC, verbose=2, metaEnabled=True) # Add phases by name for phase in [ "Simulate", "Perceive", "Interpret1", "Interpret2", "Interpret3", "Eval", "Cleanup", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) # Add the modules which instantiate basic operation #myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module( "Simulate", simulator.NBeaconsActionSimulator(wind=WIND_ENABLED, wind_dir=self.wind_dir, wind_strength=self.wind_strength, dim=DIMENSION, wind_schedule=WIND_SCHEDULE_1, logfilenm=DATADIR + "meta" + NOW_STR + ".log")) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer(DISPLAY_FUNC)) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret1", note.StateDiscrepancyDetector()) myMidca.append_module("Interpret2", assess.SimpleNBeaconsExplain()) myMidca.append_module("Interpret3", guide.SimpleNBeaconsGoalManager()) #myMidca.append_module("Interpret", assess.SimpleNBeaconsExplain()) #myMidca.append_module("Interpret", assess.SimpleNBeaconsExplain()) #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module( "Interpret3", guide.NBeaconsGoalGenerator(numbeacons=2, goalList=self.goal_list)) myMidca.append_module("Eval", evaluate.NBeaconsDataRecorder()) myMidca.append_module( "Cleanup", simulator.NBeaconsSimulator(beacon_fail_rate=BEACON_FAIL_RATE)) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planning.HeuristicSearchPlanner()) #myMidca.append_module("Plan", planning.PyHopPlanner(nbeacons_util.pyhop_state_from_world, # nbeacons_util.pyhop_tasks_from_goals, # DECLARE_METHODS_FUNC, # DECLARE_OPERATORS_FUNC)) # set up planner for sample domain myMidca.append_module("Act", act.NBeaconsSimpleAct()) for phase in ["Monitor", "Interpret", "Intend", "Plan", "Control"]: myMidca.append_meta_phase(phase) # add meta layer modules myMidca.append_meta_module("Monitor", monitor.MRSimpleMonitor()) myMidca.append_meta_module("Interpret", interpret.MRSimpleDetect()) #myMidca.append_meta_module("Interpret", interpret.MRSimpleGoalGenForGoalTrans()) myMidca.append_meta_module("Intend", metaintend.MRSimpleIntend()) myMidca.append_meta_module("Plan", plan.MRSimplePlanner()) myMidca.append_meta_module("Control", control.MRSimpleControl()) # Set world viewer to output text myMidca.set_display_function(nbeacons_util.drawNBeaconsScene) # Tells the PhaseManager to copy and store MIDCA states so they can be accessed later. # Note: Turning this on drastically increases MIDCA's running time. myMidca.storeHistory = False myMidca.mem.logEachAccess = False # Initialize and start running! myMidca.initGoalGraph(cmpFunc=GOAL_GRAPH_CMP_FUNC) return myMidca
def createMIDCAObj(self): extinguish = False mortar = True thisDir = os.path.dirname( os.path.abspath(inspect.getfile(inspect.currentframe()))) MIDCA_ROOT = thisDir + "/../" domainFile = MIDCA_ROOT + "worldsim/domains/arsonist_mortar.sim" stateFile = MIDCA_ROOT + "worldsim/states/defstate_mortar.sim" # load domain file like normal self.world = domainread.load_domain(domainFile) # for state file, need to add number of mortar blocks to begin with state_str = open(stateFile).read() # first read file # now add new mortar blocks for i in range(self.currMortarCount): state_str += "MORTARBLOCK(M" + str(i) + ")\n" state_str += "available(M" + str(i) + ")\n" # now load the state stateread.apply_state_str(self.world, state_str) # creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(self.world, display=asqiiDisplay, verbose=0) #asqiiDisplay(world) # add phases by name for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) # add the modules which instantiate basic blocksworld operation myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) # need to make sure to disable all user input modules #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planning.PyHopPlanner(extinguish, mortar)) myMidca.append_module("Act", act.SimpleAct()) #myMidca.insert_module('Simulate', simulator.ArsonSimulator(arsonChance=self.arsonChanceArg, arsonStart=10), 1) #myMidca.insert_module('Simulate', simulator.FireReset(), 0) myMidca.insert_module('Interpret', guide.TFStack(), 1) myMidca.insert_module( 'Eval', evaluate.MortarScorer(), 1) # this needs to be a 1 so that Scorer happens AFTER SimpleEval # tells the PhaseManager to copy and store MIDCA states so they can be accessed later. myMidca.storeHistory = False myMidca.initGoalGraph() ## note: myMidca.init() is NOT called here, instead in singlerun() self.myMidca = myMidca self.initialized = True
def createMIDCAObj(self): # in this demo, always keep extinguish to false extinguish = False thisDir = os.path.dirname( os.path.abspath(inspect.getfile(inspect.currentframe()))) MIDCA_ROOT = thisDir + "/../" domainFile = MIDCA_ROOT + "worldsim/domains/arsonist.sim" stateFile = MIDCA_ROOT + "worldsim/states/defstate.sim" self.world = domainread.load_domain(domainFile) stateread.apply_state_file(self.world, stateFile) # creates a PhaseManager object, which wraps a MIDCA object myMidca = base.PhaseManager(self.world, display=asqiiDisplay, verbose=4) #asqiiDisplay(world) # add phases by name for phase in [ "Simulate", "Perceive", "Interpret", "Eval", "Intend", "Plan", "Act" ]: myMidca.append_phase(phase) # add the modules which instantiate basic blocksworld operation myMidca.append_module("Simulate", simulator.MidcaActionSimulator()) myMidca.append_module("Simulate", simulator.ASCIIWorldViewer()) myMidca.append_module("Perceive", perceive.PerfectObserver()) myMidca.append_module("Interpret", note.ADistanceAnomalyNoter()) # need to make sure to disable all user input modules #myMidca.append_module("Interpret", guide.UserGoalInput()) myMidca.append_module("Eval", evaluate.SimpleEval()) myMidca.append_module("Intend", intend.SimpleIntend()) myMidca.append_module("Plan", planning.PyHopPlanner(extinguish)) myMidca.append_module("Act", act.SimpleAct()) myMidca.insert_module( 'Simulate', simulator.ArsonSimulator(arsonChance=self.arsonChanceArg, arsonStart=10), 1) myMidca.insert_module('Simulate', simulator.FireReset(), 0) myMidca.insert_module('Interpret', guide.TFStack(), 1) if self.usingTFTreeFire: myMidca.insert_module('Interpret', guide.TFFire(), 2) if self.usingSimulatedMA: myMidca.insert_module('Interpret', guide.ReactiveApprehend(), 3) myMidca.insert_module( 'Eval', evaluate.Scorer(), 1) # this needs to be a 1 so that Scorer happens AFTER SimpleEval def preferApprehend(goal1, goal2): if 'predicate' not in goal1 or 'predicate' not in goal2: return 0 elif goal1['predicate'] == 'free' and goal2['predicate'] != 'free': return -1 elif goal1['predicate'] != 'free' and goal2['predicate'] == 'free': return 1 elif goal1['predicate'] == 'onfire' and goal2[ 'predicate'] != 'onfire': return -1 elif goal1['predicate'] != 'onfire' and goal2[ 'predicate'] == 'onfire': return 1 return 0 # tells the PhaseManager to copy and store MIDCA states so they can be accessed later. myMidca.storeHistory = False myMidca.initGoalGraph(cmpFunc=preferApprehend) ## DO NOT DO THIS: experiment.py will do this automatically: myMidca.init() print("Created MIDCA " + str(id(myMidca)) + " w/ arsonchance=" + str(self.arsonChanceArg) + ", usingTFTreeFire=" + str(self.usingTFTreeFire) + ",usingSimMA=" + str(self.usingSimulatedMA)) self.myMidca = myMidca self.initialized = True