Robot localization is the process of determining where a mobile robot is located with respect to its environment. Localization is one of the most fundamental competencies required by an autonomous robot as the knowledge of the robot's own location is an essential precursor to making decisions about future actions. In a typical robot localization scenario, a map of the environment is available and the robot is equipped with sensors that observe the environment as well as monitor its own motion. The localization problem then becomes one of estimating the robot position and orientation within the map using information gathered from these sensors. Robot localization techniques need to be able to deal with noisy observations and generate not only an estimate of the robot location but also a measure of the uncertainty of the location estimate. This article provides an introduction to estimation of theoretic solutions to the robot localization problem. It begins by discussing the mathematical models used to describe the robot motion and observations from the sensors. Two of the most common probabilistic techniques, the extended Kalman filter and the particle filter, that can be used to combine information from sensors to compute an estimate of the robot location are then discussed in detail and illustrated by simple examples. A brief summary of the large body of literature on robot localization is presented next. Appendices that present the essential mathematical background and alternative techniques are provided. The MATLAB code of the localization algorithms is also available.