Пример #1
0
 def sense(self, action):
     """
     Perform an action at current location and get the belief distribution
     over all categories.
     """
     try:
         req = InfoMaxRequest()
         req.num_objects = self.num_objects
         req.objectNames = self.category_names
         req.actionNames = self.action_names
         req.numCats = self.num_categories
         req.catID = self.objects[self.current_location]
         req.actionID.val = action
         
         rospy.logdebug('calling sense service with action %d (%s) on object %d(%s)' %
                        (req.actionID.val, self.action_names[req.actionID.val], req.catID, self.category_names[req.catID]))
                        
         if not self.robot_server: res = self.get_belief_distribution(req)
         else: res = self.robot_server.handle_infomax_request(req)
         self.current_location = res.location
         self.current_state = res.state
         
         return res
     except rospy.ServiceException as e:
         rospy.logerr('Service call failed: %s' % e)
         return None
Пример #2
0
    def sense(self, action):
        """
        Perform an action at current location and get the belief distribution
        over all categories.
        """
        try:
            req = InfoMaxRequest()
            req.num_objects = self.num_objects
            req.objectNames = self.category_names
            req.actionNames = self.action_names
            req.numCats = self.num_categories
            req.catID = self.objects[self.current_location]
            req.actionID.val = action

            rospy.logdebug(
                'calling sense service with action %d (%s) on object %d(%s)' %
                (req.actionID.val, self.action_names[req.actionID.val],
                 req.catID, self.category_names[req.catID]))

            if not self.robot_server: res = self.get_belief_distribution(req)
            else: res = self.robot_server.handle_infomax_request(req)
            self.current_location = res.location
            self.current_state = res.state

            return res
        except rospy.ServiceException as e:
            rospy.logerr('Service call failed: %s' % e)
            return None