# Console map management: load, save, basic visualization¶

maplab can have multiple maps loaded in its database at the same time. Each map has a unique name, called the map key. Map keys can only contain alphanumeric characters as well as hyphen (-) and underscore (_) characters. Other characters are not supported.

The command prompt indicates the currently selected map inside the <> brackets (if there’s no content in the <> brackets, no map is currently active). All commands operate on the selected map.

## Creating a new map¶

You can create a new, empty map with the key my_empty_key using

create_new_map --map_key my_empty_key


You can also load a map from the file system. You can use a VI map from one of the provided [[Sample Datasets]]:

load --map_folder <path/to/the/downloaded/map>


Note: the folder vi_map, in which the actual map data is stored, doesn’t need to be specified.

By default, the map key is automatically generated from the path, e.g. if the path is path/to/the/downloaded/map, the map key will be map. You can manually define the key under which the map should be stored in maplab by using the map_key flag when using load:

load --map_key my_map_key --map_folder <path/to/the/downloaded/map>


After loading or creating a new map, maplab automatically changes the selected map to the new map.

Notice, how after the load operation, the loaded map has automatically been selected.

You can use the load_all command to load all maps from a given folder at once:

load_all --maps_folder path/to/maps/to/load


(The flag maps_folder is optional. If it’s not specified, the current path (.) will be taken.)

This command loads all maps from the given folder into maplab. The keys are generated from the folder name the individual map is located in.

## Saving a map¶

To save a map back to the file system, you can use the following command:

save


This will try to save the map to its map folder (by default the folder where the map was loaded from). Alternatively, the path to save the map in can be specified with the --map_folder flag. By default, if a map already exists in the given path, nothing will be saved. If you want to overwrite existing files, add the --overwrite flag to the save command. Your save call can look like this:

save --map_folder path/to/save/the/map --overwrite


### Saving all maps¶

Similar to the load command, saving can also be applied for multiple maps with the save_all command. If no argument is given, the maps will be saved into their map folder. Alternatively, the flag --maps_folder can be specified. This indicates a path where all maps will be saved into. E.g., if --maps_folder is set to maps_path, the map with the key my_map_key will be stored into maps_path/my_map_key. Similar to the normal save command, the flag --overwrite needs to be specified if pre-existing maps should be overwritten.

Example call:

save_all --maps_folder path/to/save/maps/into --overwrite


## Listing all loaded maps and changing the selected map¶

Use ls to list all maps that are loaded in the current maplab session. The selected map will be highlighted in green.

ls lists all map keys and shows the map’s respective map folder next to here. Check out TODO to learn more about the map folder.

To change the selected map, use the select command. E.g. you can do

select --map_key my_empty_map


Note that the map key in the orange brackets should change to show the newly selected map:

# Inspecting and visualizing a map¶

You can use the ms (map statistics) command to get information about the selected map. In the case of the vi_app_test map, the output of ms should look similar to this:

VI-Map:

Mission 0:              c7957efb9cf29d4874676106d6beb551  Viwls
Vertices:             405
Landmarks:            8359
Camera 0:             8359 (g:0 b:0 u:8359)
Observations:         174464
Distance travelled [m]:  23.406851
Start to end time:    1970_01_01_03_13_13 to 1970_01_01_03_13_53
T_G_M                 unknown


To visualize a map, use the v (visualize) command. You can then look at the map in rviz. Make sure you have a roscore running and start rviz in a new terminal with

rosrun rviz rviz


On the left side, click the Add button and select the data you want to visualize. In the tab By topic, select Marker from /vi_map_edges/viwls and PointCloud2 from vi_map_landmarks, should give you a view similar to this:

## Map management in the console¶

### Renaming a map¶

rename --map_key my_new_map_key


This will rename the currently selected map to my_new_map_key.

### Copying a map¶

copy_map --target_map_key copied_map_key


This will copy the currently selected map into copied_map_key.

### Deleting a map¶

delete


This will delete the currently selected map from the console. The map on the file system will not be touched and will remain.