Maps are used extensively to understand the surrounding environment and to navigate through it. This has motivated research in localization and mapping and as a result numerous algorithms have been proposed to construct different types of maps. The mapping problem involves many difficulties such as: the estimation of the sensor position and orientation at each observation, the correct interpretation of data and the error minimization in aligning observations. In this paper a comprehensive overview of the visual SLAM problem is provided along with a comparison of different algorithms used in the construction of 3D maps. The algorithms have been tested on standard 3D datasets of indoor environments.