Beispiel #1
0
    def classify(self, ids, types=None, unknown_threshold=0.0):
        # type: (List[str], List[str], float) -> List[ClassificationResult]
        """
        Classifies the entities with the given IDs
        :param ids: list with IDs
        :type ids: List[str]
        :param types: list with types to identify
        :type: types: List[str]
        :param unknown_threshold: objects with a probability lower than this unknown_threshold are not set as a type
        :type unknown_threshold: float
        :return: List of classification results
        :rtype: List[ClassificationResult]
        """

        res = self._ed_classify_srv(ids=ids,
                                    unknown_probability=unknown_threshold)
        if res.error_msg:
            rospy.logerr("While classifying entities: %s" % res.error_msg)

        posteriors = [
            dict(zip(distr.values, distr.probabilities))
            for distr in res.posteriors
        ]

        # Filter on types if types is not None
        return [
            ClassificationResult(_id, exp_val, exp_prob, distr)
            for _id, exp_val, exp_prob, distr in zip(
                res.ids, res.expected_values, res.expected_value_probabilities,
                posteriors) if types is None or exp_val in types
        ]
Beispiel #2
0
 def classify(self, ids, types=None):
     entities = [
         self._entities[_id] for _id in ids if _id in self._entities
     ]
     return [
         ClassificationResult(e.id, e.type, random.uniform(0, 1), None)
         for e in entities
     ]
Beispiel #3
0
 def _classify(*args, **kwargs):
     return [ClassificationResult("foobar", "bar", 0.5, None)]
Beispiel #4
0
    from robot_skills.classification_result import ClassificationResult
    import rospy
    from robocup_knowledge import knowledge_loader
    import sys
    common_knowledge = knowledge_loader.load_knowledge("common")

    if len(sys.argv) > 1:
        robot_name = sys.argv[1]

        rospy.init_node('test_get_order')

        robot = get_robot(robot_name)
        operator_name = ds.VariableDesignator(resolve_type=str, name='name_des')
        drink_str_designator = ds.VariableDesignator(resolve_type=str, name='drink_str_des')

        available_drinks = [ClassificationResult('beer', None, None, None),
                            ClassificationResult('juice', None, None, None),
                            ClassificationResult('coke', None, None, None)]

        available_drinks_designator = ds.VariableDesignator(initial_value=available_drinks,
                                                            resolve_type=[ClassificationResult],
                                                            name='objects_list_des')

        unavailable_drink_designator = ds.VariableDesignator(initial_value="tea_bag",
                                                             resolve_type=str,
                                                             name='unav_drink_str_des')

        name_options = common_knowledge.names
        objects = common_knowledge.objects
        learn_check_designator = ds.VariableDesignator(initial_value=True, resolve_type=bool, name='learn_check_des')
Beispiel #5
0
    import sys
    common_knowledge = knowledge_loader.load_knowledge("common")

    if len(sys.argv) > 1:
        robot_name = sys.argv[1]

        rospy.init_node('test_get_order')

        robot = get_robot(robot_name)
        operator_name = ds.VariableDesignator(resolve_type=str,
                                              name='name_des')
        drink_str_designator = ds.VariableDesignator(resolve_type=str,
                                                     name='drink_str_des')

        available_drinks = [
            ClassificationResult('beer', None, None, None),
            ClassificationResult('juice', None, None, None),
            ClassificationResult('coke', None, None, None)
        ]

        available_drinks_designator = ds.VariableDesignator(
            initial_value=available_drinks,
            resolve_type=[ClassificationResult],
            name='objects_list_des')

        unavailable_drink_designator = ds.VariableDesignator(
            initial_value="tea_bag",
            resolve_type=str,
            name='unav_drink_str_des')

        name_options = common_knowledge.names