{"id":21103091,"url":"https://github.com/robotnikautomation/multimap_server","last_synced_at":"2025-10-04T17:48:07.881Z","repository":{"id":46143899,"uuid":"259604144","full_name":"RobotnikAutomation/multimap_server","owner":"RobotnikAutomation","description":"Map server implementation that allows to offer multiple maps simultaneously. Based on the code of the map_server package at http://wiki.ros.org/map_server","archived":false,"fork":false,"pushed_at":"2024-09-17T08:51:49.000Z","size":2423,"stargazers_count":16,"open_issues_count":5,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-17T11:21:02.299Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotnikAutomation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-28T10:25:36.000Z","updated_at":"2024-07-12T07:36:33.000Z","dependencies_parsed_at":"2023-01-23T11:15:19.213Z","dependency_job_id":"0c8406f0-bea4-4216-83c6-99bc52025e1f","html_url":"https://github.com/RobotnikAutomation/multimap_server","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fmultimap_server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fmultimap_server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fmultimap_server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Fmultimap_server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotnikAutomation","download_url":"https://codeload.github.com/RobotnikAutomation/multimap_server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225444585,"owners_count":17475354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T23:57:39.877Z","updated_at":"2025-10-04T17:48:02.561Z","avatar_url":"https://github.com/RobotnikAutomation.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# multimap_server\nMap server implementation based on the map_server package at http://wiki.ros.org/map_server that extends the functionality of the original.\n\n## 1 multimap_server\nMap server implementation that allows to offer multiple maps simultaneously.\nYou can pass a .yaml file as an argument to load an initial set of maps. An example can be found in config/multimap_server_config.yaml\n\n### 1.1 Published Topics\n* map_metadata (nav_msgs/MapMetaData)\n\n    Receive the map metadata via this latched topic. One for each map.\n* map (nav_msgs/OccupancyGrid)\n\n    Receive the map via this latched topic. One for each map.\n* environments (multimap_server_msgs/Environments)\n\n    Contains information about the currently loaded environments.\n\n### 1.2 Services\n* load_environments (multimap_server_msgs/LoadEnvironments)\n\n    Load a new environment using an environment .yaml file.\n\n    - **environments_url**: Path to environment .yaml file to be loaded\n\n    Example:\n    ```\n    rosservice call /load_environments \"environments_url: '/home/rb1/maps/robotnik_environments.yaml'\"\n    ```\n\n* load_map (multimap_server_msgs/LoadMap)\n\n    Load a new map using a map .yaml file. You also have to define a namespace, a desired map_name and a frame_id for the new map.\n\n    - **map_url**: Path to map .yaml file to be loaded\n    - **ns**: Namespace in which the map will be loaded. If it matches with an existing environment, the map will be loaded on that environment. Otherwise, a new environment will be created.\n    - **map_name**: Desired name for the published map\n    - **global_frame**: frame_id in which the map will be published. It will be ignored if the environment already exists.\n\n    Example:\n    ```\n    rosservice call /load_map \"map_url: '/home/rb1/maps/robotnik_routes_map.yaml' ns: 'robotnik_floor_0' map_name: 'routes' global_frame: 'level_0_map'\"\n    ```\n\n* dump_environments (std_srvs/Trigger)\n\n    Unloads all environments and maps.\n\n* dump_map (multimap_server_msgs/DumpMap)\n\n    Unloads a map from an environment.\n\n    - **ns**: Name of the environment in which the map is loaded. This is the same as the map namespace.\n    - **map_name**: Name of the map to be unloaded.\n\n    Example:\n    ```\n    rosservice call /dump_map \"ns: 'robotnik_floor_1' map_name: 'localization'\"\n    ```\n\n\n### 1.3 Bringup\nrosrun multimap_server multimap_server (path_to_environments_yaml_file)\n\n\n\n## 2 online_map_saver\nMap saver implementation that runs continuously and offers a service to save maps on demand.\n\n### 2.1 Services\n* save_map (multimap_server_msgs/SaveMap)\n    Save a map by specifying the static_map/dynamic_map service associated to it.\n\n    - **map_service**: Service offered by the map publisher/creator to retrieve the map\n    - **map_filename**: Desired name for the saved map:\n      - If a name is given, the map will be saved in the current working directory\n      - If an absoulte path is given, the map will be saved there as long as the path exists and it can be modified by the user.\n    - **use_default_thresholds**: If true, the default thresholds (free = 0, occ = 100) will be used. Otherwise, the values will be taken from the fields threshold_occupied and threshold_free.\n    - **threshold_occupied**: Value between 1 and 100\n    - **threshold_occupied**: Value between 0 and 100\n\n    Examples:\n    ```\n    rosservice call /save_map \"{map_service: '/floor_0/localization/static_map', map_filename: 'localization_map_0', use_default_thresholds: true, threshold_occupied: 0.0, threshold_free: 0.0}\"\n    ```\n    ```\n    rosservice call /save_map \"{map_service: '/gmapping/dynamic_map', map_filename: '/home/rb1/maps/robotnik_warehouse_map', use_default_thresholds: true, threshold_occupied: 0.0, threshold_free: 0.0}\"\n    ```\n\n\n### 2.2 Bringup\nrosrun multimap_server online_map_saver\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Fmultimap_server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotnikautomation%2Fmultimap_server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Fmultimap_server/lists"}