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
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
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)