def getCurrentGoalDescription(self): """ Return a description (in the specification language) of the goal currently being pursued (jx). If no automaton is loaded, return None. """ if not self.aut: return None curr_goal_num = self.getCurrentGoalNumber() if self.proj.compile_options["parser"] == "slurp": # Import the SLURP dialog manager, if necessary try: dm = self.SLURPDialogManager except AttributeError: # Add SLURP to path for import sys.path.append( os.path.join(project.get_ltlmop_root(), "src", "etc", "SLURP")) from ltlbroom.dialog import DialogManager self.SLURPDialogManager = DialogManager() dm = self.SLURPDialogManager dm.set_gen_tree(self.parserTraceback) return dm.explain_goal(int(curr_goal_num)) else: return str(curr_goal_num)
def initDialogue(self): # Add SLURP to path for import p = os.path.dirname(os.path.abspath(__file__)) sys.path.append(os.path.join(p, "..", "etc", "SLURP")) from ltlbroom.specgeneration import SpecGenerator _SLURP_SPEC_GENERATOR = SpecGenerator() # Filter out regions it shouldn't know about filtered_regions = [region.name for region in self.proj.rfi.regions if not (region.isObstacle or region.name.lower() == "boundary")] sensorList = copy.deepcopy(self.proj.enabled_sensors) robotPropList = self.proj.enabled_actuators + self.proj.all_customs text = self.proj.specText LTLspec_env, LTLspec_sys, self.proj.internal_props, internal_sensors, results, responses, traceback = \ _SLURP_SPEC_GENERATOR.generate(text, sensorList, filtered_regions, robotPropList, self.hsub.executing_config.region_tags) from ltlbroom.dialog import DialogManager self.dialogueManager = DialogManager(traceback)