Indoor operation rules out the use of GPS due to signal attenuation and considerable inconsistency incorporated with localization drift. In such scenarios, simultaneous localization and mapping (SLAM) provides an appealing alternative to estimate the current state of robot and construct the map.
For indoor environments, depending on the accuracy needed, two popular methods are considered:
Process of estimating the ego-motion of an agent (e.g., vehicle, human, and robot) equipped with a single or multiple cameras. Typical vision sensors are monocular, stereo and RGB-D cameras.
Dynamic motion, a lack of visible texture, and the need for precise structure and motion estimates reduce visual SLAM capabilities to construct accurate map and estimate the pose of the camera. The measurement from an inertial measurement unit (IMU) would be a good supplement for visual measurements to improve the result.
Please note that if revising the place is not required in your application (problem known as loop closure), the SLAM automatically reduces to odometry.