Exemple #1
0
 def get_unknown_regions(self):
     """
     :return: list of unknown regions
     :type: [Region]
     """
     cm = ClusterRegions()
     cm.set_region_type(RegionType.unknown)
     cm.set_field(self.field)
     cm.group_regions()
     self.unknown_regions = cm.get_result_regions()
     return self.unknown_regions
Exemple #2
0
 def get_unknown_regions(self):
     """
     :return: list of unknown regions
     :type: [Region]
     """
     cm = ClusterRegions()
     cm.set_region_type(RegionType.unknown)
     cm.set_field(self.field)
     cm.group_regions()
     self.unknown_regions = cm.get_result_regions()
     return self.unknown_regions
Exemple #3
0
    def get_obstacle_regions(self):
        """
        Searches for a list of obstacle regions with the same color. will only be calculated once.
        :return: list of obstacle regions with the same color
        :type: [Region]
        """
        if len(self.obstacle_regions) == 0:
            cm = ClusterRegions()
            cm.set_field(self.field)

            cm.set_region_type(RegionType.blue)
            cm.group_regions()

            cm.set_region_type(RegionType.green)
            cm.group_regions()

            cm.set_region_type(RegionType.red)
            cm.group_regions()

            cm.set_region_type(RegionType.cyan)
            cm.group_regions()

            cm.set_region_type(RegionType.yellow)
            cm.group_regions()

            cm.set_region_type(RegionType.magenta)
            cm.group_regions()

            cm.set_region_type(RegionType.undef)
            cm.group_regions()

            rospy.logdebug("Clustering results:")
            rospy.logdebug(cm.print_segmented_field())
            rospy.logdebug(cm.print_field())

            self.obstacle_regions = cm.get_result_regions()
        return self.obstacle_regions
Exemple #4
0
    def test6(self):
        test_field = self.make_free_map()

        test_field[1][2].set_obstacle()
        test_field[1][2].set_blue()
        test_field[1][3].set_obstacle()
        test_field[1][3].set_blue()
        test_field[1][4].set_obstacle()
        test_field[1][4].set_blue()
        test_field[1][5].set_obstacle()
        test_field[1][5].set_blue()
        test_field[1][6].set_obstacle()
        test_field[1][6].set_green()

        test_field[2][2].set_obstacle()
        test_field[2][2].set_blue()
        test_field[2][3].set_obstacle()
        test_field[2][3].set_green()
        test_field[2][4].set_obstacle()
        test_field[2][4].set_green()
        test_field[2][5].set_obstacle()
        test_field[2][5].set_green()
        test_field[2][6].set_obstacle()
        test_field[2][6].set_green()

        cm = ClusterRegions(True)
        cm.set_field(test_field)
        cm.print_field()

        cm.set_region_type(RegionType.blue)
        cm.group_regions()

        cm.set_region_type(RegionType.green)
        cm.group_regions()

        cm.set_region_type(RegionType.red)
        cm.group_regions()

        cm.set_region_type(RegionType.cyan)
        cm.group_regions()

        cm.set_region_type(RegionType.yellow)
        cm.group_regions()

        cm.set_region_type(RegionType.magenta)
        cm.group_regions()

        regions = cm.get_result_regions()

        for r in regions:
            print r.get_color_id()

        muh = [[[1, 2], [2, 2], [1, 3], [1, 4], [1, 5]],
               [[1, 6], [2, 6], [2, 5], [2, 4], [2, 3]]]

        self.assertTrue(regions[0].cell_coords in muh)
        self.assertTrue(regions[1].cell_coords in muh)
    def test6(self):
        test_field = self.make_free_map()

        test_field[1][2].set_obstacle()
        test_field[1][2].set_blue()
        test_field[1][3].set_obstacle()
        test_field[1][3].set_blue()
        test_field[1][4].set_obstacle()
        test_field[1][4].set_blue()
        test_field[1][5].set_obstacle()
        test_field[1][5].set_blue()
        test_field[1][6].set_obstacle()
        test_field[1][6].set_green()

        test_field[2][2].set_obstacle()
        test_field[2][2].set_blue()
        test_field[2][3].set_obstacle()
        test_field[2][3].set_green()
        test_field[2][4].set_obstacle()
        test_field[2][4].set_green()
        test_field[2][5].set_obstacle()
        test_field[2][5].set_green()
        test_field[2][6].set_obstacle()
        test_field[2][6].set_green()

        cm = ClusterRegions(True)
        cm.set_field(test_field)
        cm.print_field()

        cm.set_region_type(RegionType.blue)
        cm.group_regions()

        cm.set_region_type(RegionType.green)
        cm.group_regions()

        cm.set_region_type(RegionType.red)
        cm.group_regions()

        cm.set_region_type(RegionType.cyan)
        cm.group_regions()

        cm.set_region_type(RegionType.yellow)
        cm.group_regions()

        cm.set_region_type(RegionType.magenta)
        cm.group_regions()

        regions = cm.get_result_regions()

        for r in regions:
            print r.get_color_id()

        muh = [[[1, 2], [2, 2], [1, 3], [1, 4], [1, 5]], [[1, 6], [2, 6], [2, 5], [2, 4], [2, 3]]]

        self.assertTrue(regions[0].cell_coords in muh)
        self.assertTrue(regions[1].cell_coords in muh)
Exemple #6
0
    def get_obstacle_regions(self):
        """
        Searches for a list of obstacle regions with the same color. will only be calculated once.
        :return: list of obstacle regions with the same color
        :type: [Region]
        """
        if len(self.obstacle_regions) == 0:
            cm = ClusterRegions()
            cm.set_field(self.field)

            cm.set_region_type(RegionType.blue)
            cm.group_regions()

            cm.set_region_type(RegionType.green)
            cm.group_regions()

            cm.set_region_type(RegionType.red)
            cm.group_regions()

            cm.set_region_type(RegionType.cyan)
            cm.group_regions()

            cm.set_region_type(RegionType.yellow)
            cm.group_regions()

            cm.set_region_type(RegionType.magenta)
            cm.group_regions()

            cm.set_region_type(RegionType.undef)
            cm.group_regions()

            rospy.logdebug("Clustering results:")
            rospy.logdebug(cm.print_segmented_field())
            rospy.logdebug(cm.print_field())

            self.obstacle_regions = cm.get_result_regions()
        return self.obstacle_regions