示例#1
0
    def __init__(self, name, agent_name, perception_provider, **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param perception_provider: the current perception
        :type perception_provider: PerceptionProvider
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(MoveToDispenser, self).__init__(name=name,
                                              requires_execution_steps=True,
                                              planner_prefix=agent_name,
                                              **kwargs)
        self._agent_name = agent_name

        self.perception_provider = perception_provider

        self._pub_generic_action = rospy.Publisher(
            get_bridge_topic_prefix(agent_name) + 'generic_action',
            GenericAction,
            queue_size=10)

        self.path = []
        self.goal_location = self.perception_provider.goal_origin  #Global origin
        self.reached_loc = False
        self.target_cell = self.perception_provider.target_dispenser_cell  #Target dispenser in transformed coordinates
示例#2
0
    def __init__(self):
        rospy.logdebug("RhbpAgent::init")

        rospy.init_node('agent_node', anonymous=True, log_level=rospy.INFO)

        self._agent_name = rospy.get_param('~agent_name', 'agentA1')  # default for debugging 'agentA1'

        self._agent_topic_prefix = get_bridge_topic_prefix(agent_name=self._agent_name)

        # ensure also max_parallel_behaviours during debugging
        self._manager = Manager(prefix=self._agent_name, max_parallel_behaviours=1)

        self.behaviours = []
        self.goals = []

        self.perception_provider = PerceptionProvider()

        self._sim_started = False

        #if manual player is called, do not call other behaviours
        self.manual_player = False


        # subscribe to MAPC bridge core simulation topics
        rospy.Subscriber(self._agent_topic_prefix + "request_action", RequestAction, self._action_request_callback)

        rospy.Subscriber(self._agent_topic_prefix + "start", SimStart, self._sim_start_callback)

        rospy.Subscriber(self._agent_topic_prefix + "end", SimEnd, self._sim_end_callback)

        rospy.Subscriber(self._agent_topic_prefix + "bye", Bye, self._bye_callback)

        rospy.Subscriber(self._agent_topic_prefix + "generic_action", GenericAction, self._callback_generic_action)

        self._received_action_response = False
示例#3
0
    def __init__(self, name, agent_name, perception_provider, **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param perception_provider: the current perception
        :type perception_provider: PerceptionProvider
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(MoveToGoal, self).__init__(name=name,
                                         requires_execution_steps=True,
                                         planner_prefix=agent_name,
                                         **kwargs)
        self._agent_name = agent_name

        self.perception_provider = perception_provider

        self._pub_generic_action = rospy.Publisher(
            get_bridge_topic_prefix(agent_name) + 'generic_action',
            GenericAction,
            queue_size=10)

        self.path = []
        self.goal_location = None  #Global origin
        self.submit_origin = self.perception_provider.submit_origin  #Relativ location of submit cell
        self.block_location = None  #Location of block attached to agent
        self.target_dispenser = None  #Location of dispenser which was allocated to agent
        self.angle = 0

        self.reached_loc = False
        self.target_agent = None
        self.target_block = None

        self.index = 0

        return None
示例#4
0
    def __init__(self, name, agent_name, **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(RandomMove, self).__init__(name=name, requires_execution_steps=True, planner_prefix=agent_name, **kwargs)

        self._agent_name = agent_name

        self._pub_generic_action = rospy.Publisher(get_bridge_topic_prefix(agent_name) + 'generic_action', GenericAction
                                                   , queue_size=10)
示例#5
0
    def __init__(self):
        log_level = rospy.DEBUG if config.DEBUG_MODE else rospy.INFO
        rospy.logdebug("RhbpAgent::init")

        rospy.init_node('agent_node', anonymous=True, log_level=log_level)

        self._agent_name = rospy.get_param(
            '~agent_name', 'agentA1')  # default for debugging 'agentA1'

        self._agent_topic_prefix = get_bridge_topic_prefix(
            agent_name=self._agent_name)

        # ensure also max_parallel_behaviours during debugging
        self._manager = Manager(prefix=self._agent_name,
                                max_parallel_behaviours=1)

        self.behaviours = []
        self.goals = []

        self.perception_provider = PerceptionProvider()
        self.sensor_manager = SensorManager(agent=self)

        self.map = Map(agent=self, agent_name=self._agent_name)

        self.communication = Communication(agent_name=self._agent_name)
        self.map_pub = self.communication.start_map_pub_sub(
            callback=self._map_callback)
        self.received_map_messages = []

        self.tasks = TaskCollection()

        self._sim_started = False

        # subscribe to MAPC bridge core simulation topics
        rospy.Subscriber(self._agent_topic_prefix + "request_action",
                         RequestAction, self._action_request_callback)

        rospy.Subscriber(self._agent_topic_prefix + "start", SimStart,
                         self._sim_start_callback)

        rospy.Subscriber(self._agent_topic_prefix + "end", SimEnd,
                         self._sim_end_callback)

        rospy.Subscriber(self._agent_topic_prefix + "bye", Bye,
                         self._bye_callback)

        rospy.Subscriber(self._agent_topic_prefix + "generic_action",
                         GenericAction, self._callback_generic_action)

        self._received_action_response = False
示例#6
0
    def __init__(self, name, agent_name, perception_provider, **kwargs):

        super(AgentControl, self).__init__(name=name,
                                           requires_execution_steps=True,
                                           planner_prefix=agent_name,
                                           **kwargs)

        self._agent_name = agent_name

        self._perception_provider = perception_provider

        self._pub_generic_action = rospy.Publisher(
            get_bridge_topic_prefix(agent_name) + 'generic_action',
            GenericAction,
            queue_size=10)
示例#7
0
    def __init__(self, name, agent_name, action_type, params=[], **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param action_type: type of the MAPC action
        :param params: optional static parameters for the MAPC action
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(GenericActionBehaviour, self) \
            .__init__(name=name, requires_execution_steps=True, planner_prefix=agent_name, **kwargs)

        self._agent_name = agent_name

        self._action_type = action_type
        self._params = params
        self._pub_generic_action = rospy.Publisher(get_bridge_topic_prefix(agent_name) + 'generic_action', GenericAction
                                                   , queue_size=10)
示例#8
0
    def __init__(self, name, agent_name, agent_map, perception_provider, **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param perception_provider: the current perception
        :type perception_provider: PerceptionProvider
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(MoveToBlock, self).__init__(name=name, requires_execution_steps=True, planner_prefix=agent_name, **kwargs)

        self._agent_name = agent_name

        self._map = agent_map

        self._perception_provider = perception_provider

        self._pub_generic_action = rospy.Publisher(get_bridge_topic_prefix(agent_name) + 'generic_action', GenericAction
                                                   , queue_size=10)
示例#9
0
    def __init__(self, name, agent_name, perception_provider, **kwargs):
        """
        :param name: name of the behaviour
        :param agent_name: name of the agent for determining the correct topic prefix
        :param perception_provider: the current perception
        :type perception_provider: PerceptionProvider
        :param kwargs: more optional parameter that are passed to the base class
        """
        super(Explore_astar, self).__init__(name=name,
                                            requires_execution_steps=True,
                                            planner_prefix=agent_name,
                                            **kwargs)

        self._agent_name = agent_name
        self.perception_provider = perception_provider
        self._pub_generic_action = rospy.Publisher(
            get_bridge_topic_prefix(agent_name) + 'generic_action',
            GenericAction,
            queue_size=10)

        self.goal_path = False
        self.path = []
        self.opp_direction_dict = {'n': 's', 's': 'n', 'e': 'w', 'w': 'e'}
        self.history = []