def __init__(self, actor, target_speed=None, plan=None, blackboard_queue_name=None, avoid_collision=False, name="FollowWaypoints"): """ Set up actor and local planner """ super(WaypointFollower, self).__init__(name) self._actor_list = [] self._actor_list.append(actor) self._target_speed = target_speed self._local_planner_list = [] self._plan = plan self._blackboard_queue_name = blackboard_queue_name if blackboard_queue_name is not None: self._queue = Blackboard().get(blackboard_queue_name) self._args_lateral_dict = { 'K_P': 1.0, 'K_D': 0.01, 'K_I': 0.0, 'dt': 0.05 } self._avoid_collision = avoid_collision
def update(self): ''' mild pain: ps <= 5 moderate: ps 6,7 severe: ps >= 8 ''' blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs[ 'hypoxemia'].score / 1000. if blackboard.Signs['pain severity'].binary: s = blackboard.Signs['pain severity'].score / 1000. ps = int(blackboard.Signs['pain severity'].value) if ps <= 5: blackboard.feedback['nitronox'] += self.posi * s blackboard.feedback['acetaminophen'] += self.posi * s blackboard.feedback['ibuprofen'] += self.posi * s elif ps == 6 or ps == 7: blackboard.feedback['toradol'] += self.posi * s else: blackboard.feedback['normal saline'] += self.posi * s blackboard.feedback['fentanyl'] += self.posi * s # blackboard.feedback['morphine sulfate'] += self.posi * s if blackboard.Signs['nausea'].binary: blackboard.feedback['ondansetron'] += self.posi * blackboard.Signs[ 'nausea'].score / 1000. elif blackboard.Signs['vomiting'].binary: blackboard.feedback['ondansetron'] += self.posi * blackboard.Signs[ 'vomiting'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. # have to do? # blackboard.feedback['capnography'] += self.posi # blackboard.feedback['bronchodilator'] += self.posi # blackboard.feedback['metered dose inhaler'] += self.posi # if respiratory distress if blackboard.Signs['shortness of breath'].binary and (blackboard.Signs['hypoxemia'].binary or blackboard.Signs['rhonchi'].binary): s = blackboard.Signs['shortness of breath'].score / 1000. *\ ((blackboard.Signs['hypoxemia'].binary * blackboard.Signs['hypoxemia'].score +\ blackboard.Signs['rhonchi'].binary * blackboard.Signs['rhonchi'].score) / \ (blackboard.Signs['hypoxemia'].binary +blackboard.Signs['rhonchi'].binary) / 1000.) blackboard.feedback['bag valve mask ventilation'] += self.posi * s # bvm ventilation have been done if blackboard.Inters['bag valve mask ventilation'].binary: blackboard.feedback['endotracheal tube'] += self.posi * s * blackboard.Inters['bag valve mask ventilation'].score / 1000. if not blackboard.Signs['hypertension'].binary: blackboard.feedback['albuterol'] += self.posi * s * blackboard.Signs['hypertension'].score / 1000. blackboard.feedback['ipratropium'] += self.posi * s * blackboard.Signs['hypertension'].score / 1000. if blackboard.Signs['wheezing'].binary: blackboard.feedback['dexamethasone'] += self.posi * s * blackboard.Signs['wheezing'].score / 1000. if blackboard.Signs['hypoxemia'].binary and blackboard.Signs['tachypnea'].binary \ and blackboard.Vitals['bp'].binary and blackboard.Vitals['bp'].value.strip().split('/')[0].isdigit() and int(blackboard.Vitals['bp'].value.strip().split('/')[0]) > 90: blackboard.feedback['cpap'] += self.posi * s * blackboard.Signs['tachypnea'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi if blackboard.candi[0] == self.key and blackboard.Vitals['gcs'].value == '15': blackboard.feedback['aspirin'] += self.posi # consider add dependency on iv if blackboard.Signs['substance abuse history'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['substance abuse history'].score / 1000. # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['substance abuse history'].score / 1000. elif blackboard.Signs['abuse of substance'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['abuse of substance'].score / 1000. # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['abuse of substance'].score / 1000. if 'STEMI' in blackboard.Vitals['ekg'].value and blackboard.Vitals['pain'].binary \ and blackboard.Vitals['bp'].binary and int(blackboard.Vitals['bp'].value.strip().split('/')[0]) > 100: blackboard.feedback['nitroglycerin'] += self.posi * blackboard.Vitals['pain'].score / 1000. * blackboard.Vitals['bp'].score / 1000. if blackboard.Vitals['pain'].binary and blackboard.Inters['nitroglycerin'].binary: # blackboard.feedback['morphine'] += self.posi * blackboard.Vitals['pain'].score / 1000. * blackboard.Inters['nitroglycerin'].score / 1000. blackboard.feedback['fentanyl'] += self.posi * blackboard.Vitals['pain'].score / 1000. * blackboard.Inters['nitroglycerin'].score / 1000. return py_trees.Status.SUCCESS
def setup(self, unused_timeout=15): ''' create a ConceptExtractor and initialize the patient status the list here is the complete list ''' ''' self.ce1 = CE.ConceptExtractor("Concept_List_1.csv") self.ce1.StatusInit() self.ce2 = CE.ConceptExtractor("Concept_List_2.csv") self.ce2.StatusInit() ''' vcl = pd.read_csv(self.exlist) blackboard = Blackboard() self.sce = CE.CEWithoutMM(self.slist, self.intlist,\ AllinOne_SS = self.aio_ss, AllinOne_Int = self.aio_int,\ neg_res = self.neg_res, WDistance = self.WDistance, aio_only = self.aio_only) self.sce.StatusInit() for item in vcl: self.sce.SpecificInit(item) self.vce = CE.ConceptExtractor(self.vlist) #self.vce.StatusInit() #self.ice = CE.ConceptExtractor(self.intlist) #self.ice.StatusInit() if self.inC: self.vce.ConceptWrapper(self.inC) blackboard.Signs = self.sce.Status blackboard.Vitals = self.vce.Status blackboard.Inters = self.sce.Interventions blackboard.ConcLog = [] return True
def update(self): blackboard = Blackboard() # mm confidence encoding TV = [] for item in blackboard.Signs: if blackboard.Signs[item].binary: TV.append(blackboard.Signs[item].score / 1000.) else: TV.append(0.) #TV = [blackboard.Status[item].score/1000. for item in blackboard.Status] # one-hot encoding #TV = [float(blackboard.Signs[item].binary) for item in blackboard.Signs] blackboard.TV = TV maxsim = 0 result = '' blackboard.ranking = [] for key in self.PV: sim = 1 - spatial.distance.cosine(TV, self.PV[key]) blackboard.ranking.append((key, sim)) if sim > maxsim: maxsim = sim result = key blackboard.protocol = result blackboard.candi, blackboard.pos = rank(blackboard.ranking)[0], rank( blackboard.ranking)[1] return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs[ 'hypoxemia'].score / 1000. if blackboard.Vitals['BP'].binary and int( blackboard.Vitals['BP'].value.strip().split('/')[0]) <= 90: blackboard.feedback[ 'normal saline'] += self.posi * blackboard.Vitals[ 'BP'].score / 1000. if blackboard.Signs['abuse of substance'].binary: blackboard.feedback['narcan'] += self.posi * blackboard.Signs[ 'abuse of substance'].score / 1000. elif blackboard.Signs['pin point pupils'].binary: blackboard.feedback['narcan'] += self.posi * blackboard.Signs[ 'pin point pupils'].score / 1000. elif blackboard.Signs['decreased mental status'].binary: blackboard.feedback['narcan'] += self.posi * blackboard.Signs[ 'decreased mental status'].score / 1000. elif blackboard.Signs['hypotension'].binary: blackboard.feedback['narcan'] += self.posi * blackboard.Signs[ 'hypotension'].score / 1000. elif blackboard.Signs['bradypnea'].binary: blackboard.feedback['narcan'] += self.posi * blackboard.Signs[ 'bradypnea'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def setup(self, unused_timeout = 15): ''' create a ConceptExtractor and initialize the patient status the list here is the complete list ''' ''' self.ce1 = CE.ConceptExtractor("Concept_List_1.csv") self.ce1.StatusInit() self.ce2 = CE.ConceptExtractor("Concept_List_2.csv") self.ce2.StatusInit() ''' vcl = pd.read_csv(self.exlist) blackboard = Blackboard() self.sce = CE.ConceptExtractor(self.slist) self.sce.StatusInit() for item in vcl: self.sce.SpecificInit(item) self.vce = CE.ConceptExtractor(self.vlist) #self.vce.StatusInit() self.ice = CE.ConceptExtractor(self.intlist) self.ice.StatusInit() if self.inC: self.vce.ConceptWrapper(self.inC) blackboard.Signs = self.sce.Status blackboard.Vitals = self.vce.Status blackboard.Inters = self.ice.Status blackboard.ConcLog = [] return True
def update(self): blackboard = Blackboard() num = sum(blackboard.pos[:3]) for idx,item in enumerate(blackboard.candi): if idx < 3: blackboard.protocol_flag[item] = (True,blackboard.pos[idx]/num) return py_trees.Status.SUCCESS
def setup(self, unused_timeout = 15): blackboard = Blackboard() PC = dict() pro_df = pd.read_excel(self.protocols) for line in pro_df.iterrows(): line_ss = [(i.strip().lower()[:-1],i.strip().lower()[-1]) for i in line[1]['Signs&Symptoms'].split(';')] if not pd.isnull(line[1]['Possible signs&symptoms additions']): line_ssr = [(i.strip().lower()[:-1],i.strip().lower()[-1]) for i in line[1]['Possible signs&symptoms additions'].split(';')] name = line[1]['Protocol'] PC[name] = line_ss + line_ssr self.PV = dict() for item in PC: vec = list() su = 0. for i in blackboard.Signs: res = 0. for j in PC[item]: if i == j[0]: res = 8.**int(j[1]) break; su += res vec.append(res) for i in xrange(len(vec)): vec[i] = vec[i] / su self.PV[item] = vec blackboard.PV = self.PV return True
def __init__(self, actor_type_list, transform, threshold, blackboard_queue_name, actor_limit=999, name="ActorSource", # ======== additional args ======== init_speed=0., # initial speed of spawned vehicle randomize=False, ): """ Setup class members """ super(ActorSource, self).__init__(name) self._world = CarlaDataProvider.get_world() self._actor_types = actor_type_list self._spawn_point = transform self._threshold = threshold + 5. # todo fix this with accurate vehicle length self._queue = Blackboard().get(blackboard_queue_name) self._actor_limit = actor_limit self._last_blocking_actor = None # ========== additional attributes ========== self.init_speed = init_speed self.randomize = randomize self.distance_gap = None
def __init__(self, debug=False, name="TrafficJamChecker"): super(TrafficJamChecker, self).__init__(name) self.debug = debug self.blackboard = Blackboard() self.world = CarlaDataProvider.get_world() self.map = CarlaDataProvider.get_map() self.list_intersection_waypoints = [] # remove initial collisions during setup list_actors = list(CarlaActorPool.get_actors()) for _, actor in list_actors: if actor.attributes['role_name'] == 'autopilot': if detect_lane_obstacle(actor, margin=0.2): CarlaActorPool.remove_actor_by_id(actor.id) # prepare a table to check for stalled vehicles during the execution of the scenario self.table_blocked_actors = {} current_game_time = GameTime.get_time() for actor_id, actor in CarlaActorPool.get_actors(): if actor.attributes['role_name'] == 'autopilot': actor.set_autopilot(True) self.table_blocked_actors[actor_id] = { 'location': actor.get_location(), 'time': current_game_time } self.logger.debug("%s.__init__()" % (self.__class__.__name__))
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['combative'].binary: s = blackboard.Signs['combative'].score / 1000. if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. * s blackboard.feedback['physical restraint'] += self.posi * s if blackboard.Signs['agitation'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['agitation'].score / 1000. * s # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['agitation'].score / 1000. * s # blackboard.feedback['geodon'] += self.posi * blackboard.Signs['agitation'].score / 1000. * s blackboard.feedback['transport'] += self.posi * s elif blackboard.Signs['violent'].binary: s = blackboard.Signs['violent'].score / 1000. if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. * s blackboard.feedback['physical restraint'] += self.posi * s if not blackboard.Signs['hypotension'].binary and blackboard.Signs['agitation'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['agitation'].score / 1000. *\ blackboard.Signs['hypotension'].score / 1000. * s # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['agitation'].score / 1000. * s # blackboard.feedback['geodon'] += self.posi * blackboard.Signs['agitation'].score / 1000. * s blackboard.feedback['transport'] += self.posi * s else: # blackboard.feedback['encourage patient to relax'] += self.posi blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() # posi = Normalized confidence score (dervied from cosine similarity) for protocol indicated by key self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS #might be better to return FAILURE? if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi if blackboard.candi[0] == self.key and blackboard.Vitals['GCS'].value == '15': blackboard.feedback['aspirin'] += self.posi # consider add dependency on iv if blackboard.Signs['substance abuse history'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['substance abuse history'].score / 1000. # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['substance abuse history'].score / 1000. elif blackboard.Signs['abuse of substance'].binary: blackboard.feedback['midazolam'] += self.posi * blackboard.Signs['abuse of substance'].score / 1000. # blackboard.feedback['diazepam'] += self.posi * blackboard.Signs['abuse of substance'].score / 1000. if 'STEMI' in blackboard.Vitals['EKG'].value and blackboard.Vitals['Pain'].binary \ and blackboard.Vitals['BP'].binary and int(blackboard.Vitals['BP'].value.strip().split('/')[0]) > 100: blackboard.feedback['nitroglycerin'] += self.posi * blackboard.Vitals['Pain'].score / 1000. * blackboard.Vitals['BP'].score / 1000. if blackboard.Vitals['Pain'].binary and blackboard.Inters['nitroglycerin'].binary: # blackboard.feedback['morphine'] += self.posi * blackboard.Vitals['Pain'].score / 1000. * blackboard.Inters['nitroglycerin'].score / 1000. blackboard.feedback['fentanyl'] += self.posi * blackboard.Vitals['Pain'].score / 1000. * blackboard.Inters['nitroglycerin'].score / 1000. return py_trees.Status.SUCCESS
def terminate(self, new_status): if new_status == Status.SUCCESS: bb = Blackboard() bb.set( "biome_type", analyze_type(bb.get("biome_type"), self.color_original, self.color_left, self.color_right)) bb.set("biome_check", False)
def setup(self, unused_timeout = 15): blackboard = Blackboard() blackboard.protocol_flag = dict() blackboard.feedback = dict() for i in blackboard.PV: blackboard.protocol_flag[i] = (False,0.) for i in blackboard.Inters: blackboard.feedback[i] = 0. return True
def __init__(self, ego_vehicle, debug=False, name="TrafficLightManipulator"): super(TrafficLightManipulator, self).__init__(name) self.ego_vehicle = ego_vehicle self.debug = debug self.blackboard = Blackboard() self.target_traffic_light = None self.annotations = None self.reset_annotations = None self.intervention = False self.logger.debug("%s.__init__()" % (self.__class__.__name__))
def setup(self, unused_timeout = 15): level = 'I/P' blackboard = Blackboard() #blackboard.action = [] blackboard.level = level blackboard.tick_num = 0 blackboard.protocol = "Universal Patient Care" self.text = '' self.sent_text = [] return True
def setup(self, unused_timeout=15): #level = raw_input("Please type in your certification(EMT,A,I/P): \n") level = 'I/P' blackboard = Blackboard() #blackboard.action = [] blackboard.level = level blackboard.tick_num = 0 blackboard.protocol = "Universal Patient Care" self.text = '' self.sent_text = [] return True
def update(self): bb = Blackboard() if bb.get("color_floor"): return Status.SUCCESS color = self.robot.get_color() result = bb.set("color_floor", color) if result: return Status.RUNNING else: return Status.FAILURE
def __init__(self): super(BTAgent, self) global BLACKBOARD py_trees.logging.level = py_trees.logging.Level.DEBUG BLACKBOARD = Blackboard() self.tree = BehaviourTree(self.create_tree()) _thread.start_new_thread(self.tree.tick_tock, (50, CONTINUOUS_TICK_TOCK, None, None))
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. blackboard.feedback['normal saline'] += self.posi blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def main(): """ Entry point for the demo script. """ command_line_argument_parser().parse_args() print(description()) py_trees.logging.level = py_trees.logging.Level.DEBUG tree = create_tree() tree.setup(timeout=15) robot = Pose2D(250,250); ball = Pose2D(int(random.random()*500), int(random.random()*500)) bin = Pose2D(int(random.random()*500), int(random.random()*500)) blackboard = Blackboard() blackboard.set("robot", robot) blackboard.set("ball", ball) blackboard.set("bin", bin) try: while tree.status != py_trees.common.Status.SUCCESS: print("tick") tree.tick_once() img = np.full((500,500,3), 0, dtype=np.uint8) cv2.circle(img, (robot.x,robot.y), 10, (0,0,255), thickness=-1) cv2.line(img, (robot.x, robot.y), (robot.x + int(50*math.cos(robot.th+1.0)), robot.y + int(50*math.sin(robot.th+1.0))), (0,0,255), 1, cv2.LINE_AA) cv2.line(img, (robot.x, robot.y), (robot.x + int(50*math.cos(robot.th-1.0)), robot.y + int(50*math.sin(robot.th-1.0))), (0,0,255), 1, cv2.LINE_AA) cv2.circle(img, (ball.x,ball.y), 10, (0,255,0), thickness=-1) cv2.circle(img, (bin.x,bin.y), 10, (255,0,0), thickness=-1) cv2.imshow('image', img) cv2.waitKey(100) if random.random() < 0.05: ball.x = int(random.random()*500) ball.y = int(random.random()*500) print("\n") except KeyboardInterrupt: print("") pass
def __init__(self, actor_type_list, transform, threshold, blackboard_queue_name, actor_limit=7, name="ActorSource"): """ Setup class members """ super(ActorSource, self).__init__(name) self._world = CarlaDataProvider.get_world() self._actor_types = actor_type_list self._spawn_point = transform self._threshold = threshold self._queue = Blackboard().get(blackboard_queue_name) self._actor_limit = actor_limit self._last_blocking_actor = None
def update(self): blackboard = Blackboard() blackboard.protocol_flag = dict() blackboard.feedback = dict() for i in blackboard.PV: blackboard.protocol_flag[i] = (False,0.) for i in blackboard.Inters: blackboard.feedback[i] = 0. num = sum(blackboard.pos[:3]) for idx,item in enumerate(blackboard.candi): if idx < 3: blackboard.protocol_flag[item] = (True,blackboard.pos[idx]/num) return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. blackboard.feedback['normal saline'] += self.posi if not blackboard.Signs['hypotension'].binary and blackboard.Signs['seizure'].binary and blackboard.Vitals['glucose'].value > 60: s = blackboard.Signs['seizure'].score / 1000. * blackboard.Vitals['glucose'].score / 1000. * blackboard.Signs['hypotension'].score / 1000. blackboard.feedback['midazolam'] += self.posi * s # blackboard.feedback['diazepam'] += self.posi * s blackboard.feedback['cardiac monitor'] += self.posi # recovery position? blackboard.feedback['transport'] += self.posi return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.posi = blackboard.protocol_flag[self.key][1] if self.posi == 0: return py_trees.Status.SUCCESS if blackboard.Signs['hypoxemia'].binary: blackboard.feedback['oxygen'] += self.posi * blackboard.Signs['hypoxemia'].score / 1000. blackboard.feedback['cardiac monitor'] += self.posi blackboard.feedback['transport'] += self.posi if blackboard.Signs['hypoglycemia'].binary: s = blackboard.Signs['hypoglycemia'].score / 1000. if blackboard.Signs['loss of consciousness'].binary: blackboard.feedback['normal saline'] += self.posi * blackboard.Signs['loss of consciousness'].score / 1000. * s blackboard.feedback['dextrose'] += self.posi * blackboard.Signs['loss of consciousness'].score / 1000. * s else: blackboard.feedback['oral glucose'] += self.posi * s return py_trees.Status.SUCCESS
def update(self): blackboard = Blackboard() self.sce.ConceptExtract(blackboard.text) blackboard.concepts = self.sce.concepts blackboard.confi = self.sce.scores self.sce.FirstExtract(blackboard.text, blackboard.tick_num) self.Vital2Symptom() blackboard.Signs = self.sce.Status #self.vce.concepts = blackboard.concepts #self.vce.scores = self.sce.scores #self.vce.FirstExtract(blackboard.text, blackboard.tick_num) blackboard.Vitals = self.vce.Status #self.sce.DisplayStatus() self.ice.concepts = blackboard.concepts self.ice.scores = self.sce.scores self.ice.FirstExtract(blackboard.text, blackboard.tick_num) blackboard.Inters = self.ice.Status self.ice.DisplayStatus() blackboard.ConcLog += self.sce.Log + self.vce.Log return py_trees.Status.SUCCESS
def update(self): bb = Blackboard() if bb.get("biome_check") and self.status != Status.RUNNING: self.color_original = self.robot.get_color() return Status.RUNNING elif self.status == Status.RUNNING: if not self.robot.is_running(): if self.turning: if not self.color_left: self.color_left = self.robot.get_color() self.robot.turn_for(30, 0, 2) if not self.color_right: self.color_right = self.robot.get_color() self.robot.turn_for(0, 30, 1) else: self.turning = False return Status.SUCCESS elif not self.left_done: self.robot.turn_for(0, 30, 1) self.turning = True return Status.RUNNING else: return Status.INVALID
def setup(self, unused_timeout=15): ''' create a ConceptExtractor and initialize the patient status the list here is the complete list ''' ''' self.ce1 = CE.ConceptExtractor("Concept_List_1.csv") self.ce1.StatusInit() self.ce2 = CE.ConceptExtractor("Concept_List_2.csv") self.ce2.StatusInit() ''' vcl = pd.read_csv(self.exlist) blackboard = Blackboard() # Signs and Symptoms Concept Extractor self.sce = CE.ConceptExtractor(self.slist) self.sce.StatusInit() for item in vcl: self.sce.SpecificInit(item) # Vital Signs Concept Extractor self.vce = CE.ConceptExtractor(self.vlist) #self.vce.StatusInit() # Interventions Concept Extractor self.ice = CE.ConceptExtractor(self.intlist) self.ice.StatusInit() self.vce.StatusInit() if self.inC: self.vce.ConceptWrapper(self.inC) # The list of vital signs we support (from RAA data) pool = ['Pulse', 'Resp', 'BP', 'GCS', 'Glucose', 'SPO2', 'Pain', 'EKG'] for item in pool: self.vce.SpecificInit(item) blackboard.Signs = self.sce.Status blackboard.Vitals = self.vce.Status blackboard.Inters = self.ice.Status blackboard.ConcLog = [] return True