## 1 Introduction  
The main task while developing a mobile robot is to achieve secure and robust navigation in a given environment. The environment defines the type of navigation, i.e., a mobile robot can perform indoor, outdoor in a structured environment or outdoor in an unstructured environment navigation [1]. To achieve such a goal, the ability of the robot to localize itself is crucial. In outdoor environments, this task becomes a real challenge. The higher density of moving objects, the terrain irregularities, and the characteristics of illumination that are present in an outdoor environment make robot motion estimation difficult and, consequently, the process of localizing it [2]. In such conditions, sensors like inertial measurement units (IMU) or encoders tend to present considerable errors. One of the most common solutions is to use satellite-based localization systems by using a receiver of global navigation satellite systems (GNSS). However, in confined environments such as tunnels, urban canyons, or steep slope hills, a signal blockage might occur, which makes the use of GNSS an unreliable solution [3]. Hereupon, the development and use of a satellite redundant localization system are essential. In this context emerges visual odometry (VO). In 2004, [PERSON] et al. [4] created this concept based on the fundamentals of wheel odometry. VO in the monocular case uses a single camera to track the robot motion between consecutive image frames [5]. On one hand, this consists of a hardware-inexpensive solution. On the other hand, the use of a single camera has inherent issues. Estimating the relative motion of the robot while it is performing pure rotations can lead to high errors due to the fast change of the world view and consequent low overlap between images. Also, to perceive the motion scale of a mobile robot using a single camera without any prior knowledge about the environment or other sources of information is not possible due to the unavailability of depth information [6]. To improve VO performance, the use of omnidirectional cameras in this context has increased since they allow to capture more information about the scene and to track individual features over a more extensive set of consecutive images [7]. Even so, monocular omnidirectional VO benefits from the use of other sources of information such as inertial and/or range sensors. With a fusion of information from a variety of sources, it is possible to extract the main features of each one and deal more robustly with their limitations. To obtain an acceptable motion estimation using a single camera and custom sensors can be time intensive. To achieve real-time performance under these conditions, optimization techniques should be used. In this context, the migration from homogeneous to heterogeneous computing is a logical solution. Heterogeneous computing was defined as \"the well-orchestrated and coordinated effective use of a suite of diverse high-performance machines (including parallel machines) to provide superspeed processing for computationally demanding tasks with diverse computing needs\" [8]. One of the standard topologies used in heterogeneous computing is a combination of core processing unit- (CPU) and graphical processing unit- (GPU)-based resources. The collaboration between these two processing units is a key approach to achieve high levels of performance in nowadays systems [9]. Usually, the CPU works as host where the main code is executed while the GPU runs the so-called kernels. To facilitate the implementation of this topology, open computing language (OpenCL) [10] was developed. This framework supports a variety of devices such as CPUs, GPUs, and others. It supports C-based programming languages to work on these devices and offers application programming interfaces (API) to facilitate the interface between the mentioned devices. In this work, we propose a localization system suitable for ground robots with GPU-based optimization techniques, which we call FAST-FUSION.