LCAS / topological_navigation

The topological navigation framework
Apache License 2.0
31 stars 36 forks source link

All manager services available and working on new map type #44

Closed adambinch closed 3 years ago

adambinch commented 3 years ago

To resolve https://github.com/LCAS/topological_navigation/issues/34.

These services have namespace /topological_map_manager2. Service definitions are used from the strands navigation repo: https://github.com/strands-project/strands_navigation/tree/indigo-devel/strands_navigation_msgs/srv New package topological_navigation_msgs added to store additional service and message definitions. Currently one srv has been added WriteTopologicalMap.srv used by the services /topological_map_manager2/write_topological_map and /topological_map_manager2/switch_topological_map.

To create a map in the new format, load in an old format map tmap.tmap directly from a file using the old map manager. The new manager will automatically convert it to the new format. Then call the /topological_map_manager2/write_topological_map service or use a service to modify the new map and it will be written to tmap.yaml

Whenever a service is used that modifies the map, the file is automatically overwritten. Therefore when loading a map using the map manager 2, it is cached in $HOME/.ros/topological_maps so a backup is available if mistakes are made.

To load a new format map use the new node topological_navigation/scripts/map_manager2.py. To load an existing map rosrun topological_navigation map_manager2.py MAP_FILENAME To create a new map rosrun topological_navigation map_manager2.py -n MAP_FILENAME

adambinch commented 3 years ago

Ready for testing/review @gpdas @Jailander