コード例 #1
0
static void carmen_map_read_gridmap(carmen_FILE *fin, carmen_FILE *fout)
{
  int size_x, size_y;
  float resolution;
  float *complete_map = NULL;
  carmen_map_t map;

  int chunk_type, chunk_size;
  char chunk_description[12];

  if(carmen_map_advance_to_chunk(fin, CARMEN_MAP_GRIDMAP_CHUNK) < 0) {
      fprintf(stderr, "Error: Could not find a gridmap chunk.\n");
      fprintf(stderr, "       This file is probably not a map file.\n");
      carmen_fclose(fin);
    }

  chunk_type = carmen_fgetc(fin);
  carmen_fread(&chunk_size, sizeof(int), 1, fin);
  carmen_fread(chunk_description, 10, 1, fin);

  chunk_description[10] = '\0';

  if(CARMEN_MAP_CHUNK_IS_NAMED(chunk_type)) {
    if(read_string(NULL, -1, fin) < 0) {
      carmen_warn("Error: Unexpected EOF.\n");
      carmen_fclose(fin);
    }
  }

  carmen_fread(&size_x, sizeof(int), 1, fin);
  carmen_fread(&size_y, sizeof(int), 1, fin);
  carmen_fread(&resolution, sizeof(float), 1, fin);

  printf("%d %d %lf\n", size_x, size_y, resolution);

  carmen_grid_mapping_create_new_map(&map, size_x, size_y, resolution);
  complete_map = (float *)calloc(map.config.x_size * map.config.y_size, sizeof(float));

  carmen_fread(complete_map, sizeof(float) * size_x * size_y, 1, fin);

  for (int i = 0; i < map.config.x_size * map.config.y_size; i++)
  {
	  map.complete_map[i] = complete_map[i];
  }


  carmen_map_write_all(fout, map.map,
  			map.config.x_size,
  			map.config.y_size,
  			map.config.resolution,
  			(char *)"",	(char *)"", (char *)"", (char *)"Generated by LCAD-UFES",
  			NULL, 0, NULL, 0, NULL, 0);
  free(complete_map);
  free(map.complete_map);
  free(map.map);
}
コード例 #2
0
void
save_local_map()
{
	carmen_FILE *fp;
	fp = carmen_fopen("local.map", "w");
	carmen_map_write_all(fp, local_map.map,
				local_map.config.x_size,
				local_map.config.y_size,
				local_map.config.resolution,
				(char *) "", (char *) "", (char *) "", (char *) "Generated by big_map",
				NULL, 0, NULL, 0, NULL, 0);
	carmen_fclose(fp);
}