In this project, we propose particle filter slam method to localize robot and generate environment map. In every iteration, given a set of lidar odometry data, 2D Lidar scan data and joint data, we estimate robot body pose in world frame and perform particle filter prediction step. We then perform update step to generate new particle and weight, and estimate robot body pose in world frame. In the end, we use robot body pose as well as lidar scan to compute log-odd map, and then update our occupied map.