Closed stevemartinov closed 4 years ago
Because SLAM is solving the problem of mapping and localizing at the same time. No SLAM implementation I'm aware of will allow the user to "relocalize" during the map building process. For a filter based slam, its impossible because there's no logical way to handle multiple tracks and resampling the particle filter for the continuity. For a graph based slam, while technically possible, it would be a terrible idea and would likely severely degrade map quality. I think you posted something about this on ROS answers too, initial_pose
is a unique topic to AMCL. You should not assume any other package uses this the same way you shouldn't expect any other package other than move_base to use the rviz built in topics / tools for navigation in 2D. I only offer the init pose topic in my localization mode to make it an easy transition to test and that capability is generally required for production systems in case of failure in localization mode.
The localization mode will not allow you to serialize a map, so there's no bad idea to be had, its been rendered impossible.
After I made a map, I noticed that only in Localization mode I can use the initial position and it is obvious by looking at ROS code. However, after implementing the same function in sync slam mode, it simply ignored the request for the initial pose estimate. What is the underlying difference that I cannot implement this function?
Also, why it is a bad idea to serialize a map during the localization mode? As I was thinking to use the localization mode and after map has been affected by the changes (dynamic environment) I would simply resave the current map and reuse again in a localization mode