3 from std_srvs.srv
import Empty, EmptyResponse
5 from strands_executive_msgs
import task_utils
6 from strands_executive_msgs.msg
import Task
7 from strands_executive_msgs.srv
import DemandTask, SetExecutionStatus
11 """ Create a services that will propose a the given task on demand """
15 demand_task_service =
'/task_executor/demand_task'
16 set_exe_stat_srv_name =
'/task_executor/set_execution_status'
17 rospy.loginfo(
"Waiting for task_executor service...")
18 rospy.wait_for_service(demand_task_service)
19 rospy.wait_for_service(set_exe_stat_srv_name)
22 set_execution_status = rospy.ServiceProxy(set_exe_stat_srv_name, SetExecutionStatus)
23 set_execution_status(
True)
28 """ Demand a task and catch any exceptions """
30 self.demand_task_srv(task)
37 rospy.loginfo(
'Demanding task of type %s' % task.action)
39 return EmptyResponse()
41 service_name =
'demand_' + str(len(self.
services)) +
'_' + re.sub(
r'\W',
'_', task.action)
42 service = rospy.Service(service_name, Empty, demand)
43 self.services.append(service)
def demand_task(self, task)
def offer_demand_service(self, task)