## 1 Introduction
### Related Works  
Various camera configurations may be used to develop VO systems. One of the most popular approaches involves the use of outward-facing sensors that allow for the calculation of the distance from a robot to surrounding objects. Stereo cameras are widely employed for this purpose [1; 2; 3; 4; 5]. For example, in [6], stereo, event-based cameras (sensors that respond to changes in the intensity values of an image) are combined with an IMU to compute VO, while in [7], stereo cameras are used in conjunction with a GPS and an IMU to achieve VO. Other commonly used sensors are RGB-D cameras [8; 9], which capture both color (RGB) and depth (D) information, and omnidirectional cameras [10], which provide a 360-degree field of view, although they may require more complex image-processing algorithms. Another popular solution is the use of monocular cameras [11; 12; 13], which have the advantage of a lower hardware cost, although they may not perform as competitively as other sensors due to their susceptibility to scale drift [14]. To address this drawback and achieve a reliable VO algorithm, sensor fusion can be employed. For example, in [11; 15], a monocular camera is combined with an IMU to achieve a robust VO for micro-aerial vehicles and multicopters, respectively. However, the movement estimation problem with monocular cameras can be significantly simplified in the case of indoor mobile robots, for which an assumption of constant height can be made to reduce the problem to a planar motion estimation, which can be effectively handled using single monocular cameras, as in [12; 13]. In [16], a VO system for these types of robots was developed using a downward-facing monocular camera in combination with a forward-looking stereo camera. Once a sequence of images is obtained using these sensors, robust and reliable algorithms are needed to compute the pose of the robot. For this purpose, the most popular algorithms are those that take advantage of the geometry or features detected in the environment to compute the VO [14]. These algorithms can be broadly divided into two classes: feature-based methods and direct methods. Feature detection algorithms aim to extract a set of image descriptors from each frame and track them across subsequent images to estimate the motion of the robot by minimizing the reprojection error. For this purpose, several types of feature descriptors can be used, with SIFT and ORB descriptors being among the most popular ones. Additionally, after the features are matched, a filtering process may be added to eliminate outliers that could introduce errors into the algorithm. The disadvantage of this approach is its reliance on the detection and matching of image descriptors, which presents problems in low-texture environments. Furthermore, most feature detectors are optimized for speed, rather than precision, necessitating compensation by averaging movement estimations over multiple features [15], which increases the computational cost of the method. These correspondences can then be used to obtain a set of 2D vectors, called the motion field, that describe the movement of all elements in an image and can subsequently be used to compute the relative 3D movement between a robot and the environment. On the other hand, direct methods aim to estimate the motion of a robot from spatial and temporal variations in image intensity. These algorithms, which use all the information available in each frame, have exhibited better performance than feature-based methods in terms of robustness in scenes with low texture or cases of camera defocus and motion blur [15]. However, the computational cost of obtaining the photometric errors needed for these methods is higher than that of the reprojection errors used in feature-detection methods. In [12; 13], a VO algorithm was developed by cutting a template centered on one frame of a sequence and progressively moving it around in the next frame, minimizing the photometric error to obtain the movement between consecutive images.