5 from datetime
import datetime, timedelta, time
9 import mongodb_store_msgs.srv
as dc_srv
10 from mongodb_store_msgs.msg
import StringPair
11 import mongodb_store.util
as dc_util
12 from mongodb_store.message_store
import MessageStoreProxy
13 from geometry_msgs.msg
import Pose, Point, Quaternion
16 from strands_executive_msgs
import task_utils
25 from topological_navigation.msg
import GotoNodeAction
26 from copy
import deepcopy
27 from random
import random
30 from task_executor
import task_routine
36 add_tasks_srv_name =
'/task_executor/add_tasks'
37 set_exe_stat_srv_name =
'/task_executor/set_execution_status'
38 rospy.loginfo(
"Waiting for task_executor service...")
39 rospy.wait_for_service(add_tasks_srv_name)
40 rospy.wait_for_service(set_exe_stat_srv_name)
42 add_tasks_srv = rospy.ServiceProxy(add_tasks_srv_name, AddTasks)
43 set_execution_status = rospy.ServiceProxy(set_exe_stat_srv_name, SetExecutionStatus)
44 return add_tasks_srv, set_execution_status
47 master_task = Task(action=
'wait_action',start_node_id=
'ChargingPoint', max_duration=max_duration)
48 task_utils.add_time_argument(master_task, rospy.Time())
49 task_utils.add_duration_argument(master_task, max_duration)
53 rospy.loginfo(
'on_day_start')
57 rospy.loginfo(
'on_day_end')
60 if __name__ ==
'__main__':
61 rospy.init_node(
"task_routine_tester")
63 while not rospy.is_shutdown()
and rospy.get_rostime().secs == 0:
67 actual_action_duration = rospy.Duration(20)
72 set_execution_status(
True)
77 start = time(8,45, tzinfo=localtz)
78 end = time(23,15, tzinfo=localtz)
79 midday = time(12,00, tzinfo=localtz)
81 morning = (start, midday)
82 afternoon = (midday, end)
84 routine = task_routine.DailyRoutine(start, end)
86 routine.repeat_every_mins(task, times=1)
89 runner = task_routine.DailyRoutineRunner(start, end, add_tasks, day_start_cb=on_day_start, day_end_cb=on_day_end)
91 runner.add_tasks(routine.get_routine_tasks())
def create_wait_task(max_duration)