Ejemplo n.º 1
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
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(
Ejemplo n.º 8
0
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",
Ejemplo n.º 9
0
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())
Ejemplo n.º 10
0
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())
Ejemplo n.º 11
0
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,
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
    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
Ejemplo n.º 14
0
    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