Implementation considerations
High-Level Architecture
Run both localizers in the system:
amcl → coarse/global localization
slam_localizer (e.g. slam_toolbox) → fine/docking localizationTF / Pose Switching
Ensure only one source effectively drives map → odom at a time.Switching Trigger
Switching would be based region (geofence): robot enters a predefined docking zone (polygon/radius in map frame).Pose Initialization
When switching AMCL → SLAM:
Use the current AMCL pose as the initial pose for SLAM localization.
Wait until SLAM is stable before exposing its TF/pose to the rest of the system.Nav2 Integration
Nav2 always sees a single, consistent global frame (e.g. map).
After a switch:
Trigger a replan or clear costmaps if needed to handle small pose jumps.
Keep controller paused until a valid pose from the new localizer is available.
Have anyone done this before or working on it? I want help to implement this on my turtlebot3 simulation. Give me suggestions and thank you in advance.
-
I assume you have map of the initial area robot is starting, since you start your pose with AMCL. Then later when your robot explores a new unknown location you switch to SLAM until the map is obtained. What exactly is the question here?unlut– unlut2025年12月24日 06:34:25 +00:00Commented Dec 24, 2025 at 6:34
-
meta.stackoverflow.com/q/421831/16805423Brentspine– Brentspine2025年12月24日 07:05:24 +00:00Commented Dec 24, 2025 at 7:05
-
right now i am using amcl for navigation, but when my robot goes in docking region i want to switch to slam localization for better accuracy. how this switching can be implemented in runtime?addie_2k4– addie_2k42025年12月25日 04:54:49 +00:00Commented Dec 25, 2025 at 4:54