I'm doing some research on navigation algorithms in ROS and I want to test kidnapped robot problem in gazebo. Looking on internet I saw the two solutions are particle and kalman filter. I know that amcl already implements particle filter and you can use kalman filter with this package, but the problem with them is that amcl needs robot's initial position. So my question is does amcl realy solve the kidnapped robot problem and are there any other methods for solving this issue?
AMCL doesn't need initial pose. When the initial pose is not given, it will initialize the particles uniformly across the map. After moving the robot enough distance, particle filter will converge to correct pose.
AMCL solves kidnapped robot problem by adding random particles. When the robot is kidnapped, number of random particles added will increase. Of the random particles, which are near the actual pose of the robot get highest weight and upon resampling, more particle will be added near the correct pose. After few sensor updates and resampling, pf will converge to actual pose of the robot.
There are many solutions proposed for kidnapped robot problem in research. Most of them use additional setup or additional sensors.