Search code examples
roboticsslam

How does robot do pose estimation in SLAM?


I know that in particle filter algorithm a robot can pick the best pose given the map. But how can robot predict the pose in SLAM where map is not given. Do we get data from IMU?


Solution

  • SLAM is a very broad application and there exist numerous methods on how to perform SLAM.

    The basic idea is to estimate a map of an environment and the path a robot takes through the environment at the same time. The map generally is sensed by a sensor that measures the position of prominent landmarks in the environment. The movements of the robot are often integrated by IMU, odometry or GPS sensors. The setup and algorithms used to perform SLAM may vary drastically though.

    It is not even necessary to get movement data from the robot. You can think of a Kalman filter which tracks landmark positions and robot location in it's state vector and assumes a constant position state transition model for the robot with no control input. Even though the transition model is assumed to be constant position the measurement updates of the landmark position are theoretically enough to give an estimate of the updated position of the robot.

    This is taken a step further if you consider the Structure from Motion approach where a single camera that is moved through an environment is used to estimate a map of the environment from image features and at the same time estimate the path the camera takes through that map.

    So as long as you don't have a specific sensor setup and algorithm in mind the question of "how a robot does pose estimation in SLAM" is not really productive. If you have a specific question I can maybe point you into the direction of specific literature.

    The probabilistic robotics book by Sebastian Thrun has a good intro to probabilistic approaches to SLAM.