This assignment utilizes a particle filter to localize a lost robot given the map, its odometry and a laser rangefinder. The algorithm was completed by initializing particles, programming motion model, sensor model and resampling. Parameters were tuned to yield proper results. Vectorization and Parallelization were implemented to improve the performance of the algorithm. Robotdata1.log and robotdata2.log were used to test our algorithm and results are uploaded as videos. The implementation is successful in both data and can be repeated, proving the performance, repeatability and robustness of the algorithm.