def execute(self, userdata): try: task_spec = task_specification_navigation() target = navigation_target(userdata.marker_in, userdata.orientation_in, 0.0) task_spec.add_target(target) userdata.task_spec_out = task_spec except: return "failed" return "generated"
def parse_task(self, task_str): rospy.loginfo("BNT Taskspec: %s", task_str) test, spec = task_str.split("<") assert test == "BNT" spec = spec.strip()[:-1] #remove trailing '>' places = spec.split(")")[:-1] #remove last (empty) element taskspec = task_specification_navigation() for place in places: taskspec.add_target(self.parse_place(place)) return taskspec
def main(): rospy.init_node("youbot_navigation_ai_re") nav_ai = YoubotNavigationAI() nav_ai.setup_introspection() #Example Task Spec spec = task_specification_navigation() spec.add_target(navigation_target("D1", "S", 2.0)) spec.add_target(navigation_target("T4", "W", 2.0)) spec.add_target(navigation_target("S1", "N", 2.0)) spec.add_target(navigation_target("S5", "N", 2.0)) nav_ai.get_statemachine().userdata.task_specification_nav_in = spec nav_ai.run()