A Survey of FPGA Robotics Applications in the Period 2010 – 2019

Article history: Received: 08 January, 2021 Accepted: 03 April, 2021 Online: 27 June, 2021 FPGAs constitute a flexible and increasingly popular controlling solution for robotic applications. Their core advantages regarding high computational performance and software-like flexibility make them suitable controller platforms for robots. These robotic applications include localization / navigation, image processing, industrial or even more complex procedures such as operating on medical or human assistant tasks. This paper provides an overview of the publications regarding different robotic FPGA application fields as well as the most commonly-used robot types used for those applications for the 10-year period of 2010-2019. A short description of each paper reviewed is also included, providing a total view of FPGA technology trends in robotic applications over the last decade.


Introduction
Field programmable gate array (FPGA) devices are reconfigurable circuits composed of numerous interconnected logic cells. FPGAs contain an array of programmable logic blocks, and a hierarchy of "reconfigurable interconnects" that allow the blocks to be wired together. They are still used as a highperformance computing platform in multiple applications nowadays, despite their overshadowing by CPUs and GPUs. The general core advantages of FPGAs are that they can be easily connected to most types of circuits due to their protocolindependent serial links and they offer hard real-time computations and highly parallel effective programming with low power consumption, using algorithmic high-level synthesis [1]. FPGAs can be reconfigured and reprogrammed according to the user's requirements, unlike fixed hardware structures that CPUs have. This allows users to utilize them in a vast variety of applications.
Robots today are used for multiple tasks, for both industrial and consumer purposes that require high performance and low power consumption. They can be used for manufacturing or logistics purposes, while offering medical, educational, home, defense and other activities in the services' sector. So, the applications implemented on FPGAs in the robotics sector contain several multi-factorial tasks from multiple domains. Primarily those tasks include vision, sound or touch response systems and object tracing through processing of a high data flow coming from sensor inputs. Furthermore, increased real-time requirements for controlling robotics' functionalities such as the movement of a robot, make FPGAs to be a more attractive processing solution since they can be reconfigured as many times as it is necessary, even during runtime, while they are utilized, until the required functionality is properly achieved. FPGAs can actually rewire their internal circuitry in order to allow configuration, after the control system is installed onto the field. Moreover, the highpower consumption of robotics applications indicates FPGAs as suitable computational systems in comparison to other solutions. In fact, the advantages of using reconfigurable dynamic systems do not exclusively lie on the increased adaptability to changing conditions, but also on reducing power consumption without affecting the robot's capabilities. Overall, the size and speed of an FPGA is similar to the application-specific integrated circuit (ASIC), but their shorter design cycle and reconfigurability capabilities make them more flexible for use in robotic applications [2].
FPGAs are a mature implementation technology, spanning over 35 years of technology improvements. At the same time, after 70 years of evolution in robotics the controlling complexity of them has reached a level that only high-end processing cores can handle. Investigating the blending between the robotics and the FPGAs in the related literature, we located a gap. In this paper, we aim to answer the research question: Given all the advantages in CPUs and GPUs, is it viable to use FPGAs in robotics applications, and if yes which are the areas that FPGAs excel in the robotics domain and what challenges loom ahead? Towards ASTESJ ISSN: 2415-6698 this, we investigated IEEE listed scientific publications in the 10-year period between 2010 and 2019 in order to get an overall view of the typical application fields of FPGAs in robotic applications. Figure 1 shows the absolute quantity of the total publications regarding journals, conferences, early-access articles and magazines in the IEEE Xplore and ACM digital library depicting the actual publication tendency over the last 27 years, since the library includes publication data since 1993. The total publications count from 1993 to 2019 regarding FPGAs in robotics is 1174 publications, including the aforementioned four types of publications. The publication count for the testing period of 2010-2019 counts 815 publications in total, where 762 are conference papers, 49 journal papers, 2 early-access articles and 2 magazine articles. The average publication number over the 10 year investigation period is almost 80 publications per year. As accrued from Figure 1 This tendency lasted for almost a decade, until 2009 and since then the robotic FPGA applications -according to the publications count -remain relatively steady with fluctuating tendencies. Since the total publications for the tested time period are almost 800, the researchers choose to analyze 20 popular publications for each year, in order to imprint the latest scientific tendencies. The total number of publications tested for the 10-year period is 200.
The paper is structured as follows. First, a brief theoretical analysis of the modern robot types regarding their application fields and interaction mechanism is given, according to the latest literature trends. The description of the three main robot categories as classified in this survey, follows. The six main FPGA application fields, as uncovered in the survey analysis, are then quoted. The conclusion section sums up our findings, as indicated by the survey findings. All reviewed literature is quoted with application field and robot type categorization, a short description of each paper and the year of the publication.

Related Work
A shortlist of FPGA-related studies uncovering related application fields, architectures and technology trends has been revealed in the survey. The most detailed view for survey applications for a distinct period of time is included in [1]. 22 distinct technology applications of FPGAs (+ "other" quoted as distinct category) for a 15-year period are documented, investigating 815 publications in the IEEE Xplore and ACM digital library for the aforementioned duration. This survey offers a relatively indicative view of the FPGA technology trends until 2015, however it does not investigate the FPGA architectures designed specifically for robotics applications. Paper [3] highlights the availability of reconfigurable applications as platforms for digital controllers and quotes the most important factors for the technology trend of FPGAs utilization in comparison to other architectures, primarily due to the acceleration and flexibility of FPGAs, reduction of costs and reduced energy consumption. Study [4] quotes a general description of FPGAs, regarding their use as accelerators and simulator platforms, the usage of their integrated memory and their fault tolerance as well as the programming languages and computation methodologies. However, it does not quote applications per year or include a specific distinction of application fields The FPGA virtualization techniques are included in [5], separated into three categories -resource level, node level and multi-node level. The first level investigates whether FPGA's resources are reconfigurable or not. The node level explores the applications needed in both software and hardware terms regarding virtualization at a single FPGA. The existing architectures of how to connect multiple FPGAs are described in the multi-node level. The survey [6] investigates FPGA's routing architectures, dividing them into island-style routing and hierarchical routing. Furthermore, it quotes a brief description of the recent technology applications of FPGAs, distinguishing them into eight distinct categories. In conclusion, there are no specific surveys like this one and for this reason we believe our paper will play a pivotal role as a reference for researchers in the field of implementing robotic applications on FPGAs.

Application Fields of FPGAs in Robotics
In our survey, we categorized the papers into 6 major categories, according to the application. In order for an application field to be categorized as a distinct category, at least 5 publications had to be identified in the databases. Some application fields can be mixed, for instance, a robotic controller may use a regular FPGA algorithm and Fuzzy logic architecture or a navigation application can use SoC FPGA image processing systems. Distinct categories as well as mixed ones are referred to the Application Field column of Table 1, where the research overview is depicted. The Robot type column includes the type of robot which this publication's application is designed for. A short description of the publication's application regarding the algorithms used, the software or the type of the FPGA controller chips is included in the next column. The publication year and the reference number are depicted in the last two columns of Table 1.

Classification of Robots
While there is no strict classification of robots, most robotic applications can be either categorized according to their mechanism of interaction or according to their application field [7]. Figure 2 depicts the robot classification according to their mechanism of interaction [7]: Figure 2: Robot classification by interaction mechanism [7] The basic classification of robots according to their application field is shown on Figure 3. It has to be noted that the six sub-categories of Fig. 3 can also include variations. For instance, educational robots can either be wheeled or humanoid (legged) and industrial robots can be either articulated robots, cartesian robots, parallel, spherical, or SCARA, etc. [8]. The aforementioned categories are based on the primary means of navigation (for educational robots) or the robot's basic configuration (for industrial robots).
However, this survey includes the robotic applications that are FPGA-applied, so the classification of robots is done according to those categories that can use the application fields found in the survey publications and analyzed in the next chapter. The main robot categories of the FPGA-based robotic applications included in this survey are the following: • Industrial Robots (A1) • Autonomous Mobile Robots (A2) • Humanoid Robots (A3) For a robot type to be classified as a distinct category, at least 5 publications had to be found for the selected period. In other cases, this column is classified as "other", implying a different type of robot, described in the "description" column such as medical, defense, educational, etc.

Industrial Robots
Industrial robots constitute one of the major of the FPGArelated publications in this survey, as depicted in Fig. 4 The articulated robot type is amongst the most common types of industrial robotics. It includes a mechanical arm conjoined to a stable base. Rotary joints connecting the arm associations may vary from two to ten joints although the most common robots are the ones with six joints. The joints give the robot additional freedom to its movement while the joints can be either orthogonal or parallel. Cartesian or Gantry robots are also amongst the most common robot types. They have a rectangular configuration with three prismatic joints (X, Y, Z) allowing linear motion, while some Gantry robots have an additional wrist allowing rotational motion. Cylindrical robots use a main arm making an up-anddown motion. This arm is internally embedded with a cylinder allowing the extension/reaction motion. Cylindrical robots use a 3-dimensional coordinated architecture using a specifically selected reference axis for selecting point positions. Cylindrical robots are mostly used in picking-placing materials operations. SCARA (Selective Compliance Assembly Robot Arm) robots use two parallel joints providing movement at a specifically selected track. The rotary tracks are placed vertically and the operating tooling attached to the arm moves horizontally, making SCARA robots most suitable for vertical assembly operations where efficient and quick pick and place operation is critical. The primary characteristic of the Delta robots is their parallel link configuration consisting of parallel joint connections linked to a common stable base. The positioning of the effector is controlled with the robotic arm making the robot type suitable for speedy pick-and-place applications. Polar (or spherical) robots use stationary arms with spherical work envelopes which can be placed in a polar-coordinated architecture. They use one linear and two rotary joints conjoining the links and a twisting joint conjoined to the arm.

Autonomous Mobile Robots
Autonomous Mobile Robots (AMR) have been classified as a distinct category because they can be used for industrial as well as domestic, medical, defense or educational purposes. An AMR is designed to move on wheels or with legs (human walking simulation is excluded from AMR category) across the ground floor to specified locations operating as a flexible assistant performing numerous tasks. The movement of an AMR is accomplished by using a total of advanced on-board sensors, FPGA-architectures and processors that allow it to comprehend and interpret its external environment. The aforementioned means offer the AMR the capability of combining the information from multiple different sources such as video or GPS in order to navigate when there is a malfunction or full absence of data from one or more data sources. The core operation of an AMR is its control system, where FPGAs may constitute an implementation solution in many cases. While FPGA-based control systems are analytically explained in the next section, the design requirements of an effective AMR control system typically include: • Multiple sensor and processor integration: As mentioned above, the possible malfunction, unreliability or inapplicability of any individual sensor or set of sensors must be coped with the integration and effective operation of the rest of AMR sensors. Furthermore, AMR must be able to accomplish all assigned tasks despite concurrent and often conflicting actions that need to be performed.
• Reactivity to environment: AMR should be capable of reacting to unscheduled sudden changes in the external environment by executing fast and efficient decisions in order to fulfill the assigned tasks. Software and architecture efficiency play a crucial role at that requirement, including the accuracy and usability of FPGA software algorithms.
• Reprogrammability and Expandability: An expandable architecture of an AMR allows the incremental build-up of the system and its continuous improvement and evolution. FPGA chips offer a significant advantage over other processing solutions in this case since they are reconfigurable and can be programmed to adopt a different behavior every time is required, changing the configuration of FPGA's internal circuitry.

Humanoid Robots
Humanoid robots are robotic applications that mimic human body structures in both behavioral and motion terms. They are considered a relatively complex robot type since it is necessary to consider their mechanical (musculoskeletal) structure, the computational and sensory nervous system, the applied methods of information processing in the robot's primary decision-making units and the applied software algorithms as a whole and for any given application that they have to perform. FPGA chips can be used for multiple humanoid robotic applications such as their motion control, communication modules between robots and users, visual sensing and processing that constitute the robot's total behavior in mimicking human functionality. However, the primary distinguishing element of humanoids in comparison to other robot types is their human mimetic motion and human-like robot reaction. The first element involves the robot's skeleton structure, the body proportions, the muscle arrangement and the joint performance [10]. Human-like robot reaction mainly represents the robot's responses for safety. This can be applied actively by using a feedback loop or passively by applying a suitable robot's mechanical design. Humanoids with high gains actuators tend to have a low performance on estimating correctly the forces applied by the human for specific functions, while the usage of integrated early-stage additional sensors shows better performance on that specific task [11]. FPGA chips constitute an efficient choice as a fused sensor architecture.

Application Fields
The sections analyzed below, will briefly introduce the primary application domains of FPGA-related technology components on robotics applications. These applications can be either mathematical and software algorithms, hardware FPGAoriented architectures, mixed systems with FPGA components or combinations of all the above.

Robotic controllers
A robot constitutes an autonomous closed-loop control application because it is affected by the inputs from its sensors. Due to the highly effective integration of the intellectual properties of the embedded processors in the FPGA, the mathematical algorithms executing the demanding computations required by the robot controllers can be implemented by software in the FPGA. This application field mainly includes the coding of FPGA motion control systems of immobile robotic applications and industrial robots. Industrial immobile robots are widely used in order to solve tasks such as assembly, handling or welding.
Servo control is the most crucial part of robotic controller architecture since a possible failure to maintain a closed-loop behavior may delay the production process, damage the robot itself or even cause accidents and danger for human life. A servocontrol solution based on FPGAs is considered amongst the most effective ones. Specifically, an FPGA-based control interface is responsible for multiple tasks in the robotic operation such as decoding feedback position data, processing communication signals and control outputs and transmitting the data to the actuators. The instructions provided to the robot used to perform specific actions are processed by the robotics control system. The programming language is actually used to describe all the variables that affect the robotics operation, primarily regarding movements on specifically set paths. There are several path types that a robot can operate under, depending on its purpose. The simplest type of robot motion is the movement from one point to the other, without having to perform any other parallel simultaneous actions. This motion can be executed as joint displacements and this type of control is called joint control [12]. The joint control motion expresses the interactions of position, acceleration and speed in the robot's language describing the necessary movements to perform the requested action. The main limitation of this control method is that the user needs joint dimensional information since he must comprehend the robot's joint displacements in order to drive the robot into the desired position. This limitation can be overcome by using the Cartesian space, which helps to interpret robot's movements by using Cartesian coordinates, based on the Jacobian Transpose matrix. This type of control is called Cartesian control. Due to this reason, the mathematical algorithms representing the kinematics of Cartesian control motion are significantly important in order to propose the most suitable control structures. The FPGA-based controller is then used to transform the trajectory created in the Cartesian space into a parallel robot's trajectory in joint space. This application field includes research undertaken for kinematics algorithms and software applications regarding the robotic controllers, mainly representing immobile robots executing industrial tasks.

Mapping -Navigation
This application field includes research regarding autonomous mobile robots, analyzing the usage of FPGA controllers in crucial operations, such as robot's localization, mapping and navigation. In general, the navigation of robots is divided into two parts: The 1st part is about the robot being capable of selecting the most suitable path between a starting and a finishing (goal) point. This path can be computed by either making calculations based on preloaded existing data or by processing incoming real-time data by GPS and other applications. The 2nd part includes the robot's real-time effectiveness on adapting its behavior to the external environment characteristics, such as avoiding obstacles, making turns and so on. FPGA applications can be used for both parts. Robot navigation is performed by using line following and obstacle avoiding algorithms that can operate with sensor data and probabilistic algorithms that study traffic and external environment patterns. The FPGA control unit is receiving and processing all incoming data from sensors and modules in order to choose the most suitable path.
Localization is another crucial process of mobile robotics as it is used in order to determine a robot's position in relation to an external reference point, called landmark. There are two localization methods: The first method calculates the distance from the landmark and its angle relative to the north, called the azimuth. The second method measures the angles to the object from two different positions, called triangulation. FPGA control units can process data and by applying the proper algorithms are capable of determining the right course. In recent years both localization techniques have been replaced by GPS location and navigation. FPGA receivers are often used to process GPS data and apply the proper navigation algorithms.
Simultaneous Localization and Mapping (SLAM) is the nextin-line step in robot mapping and navigation. A primary task of a mobile robot in an unknown environment is to create and frequently update a map of the environment and compute its current location within this map at the same time. This operation is called the SLAM operation. At normal conditions, the robot can use sensor or odometry measurements to gather information over its environment in order to perform localization and mapping. SLAM is used when these conditions are altered such as the localization at an underwater or space mission. Some researchers have proposed the use of probabilistic methods, such as Extended Kalman Filters [13]. The Extended Kaman Filters (EKF) algorithm simultaneously computes a model map of the environment and the current robot position based on odometric and exteroceptive sensor data. FPGA-based architectures usually implement the EKG algorithm. Alternative solutions avoiding the errors produced by odometry rely on scan-matching techniques that usually rely on range measurements acquired from robot sensors. Such an approach is the SMG algorithm [14]. This algorithm can perform SLAM by applying highly improved parameters which in turn considerably increase the algorithm's computational requirements. A considerable acceleration over software can be managed, by using the programmable resources of FPGA circuits and the parallelization properties of the algorithm.

Image Processing
FPGAs are widely used for the execution of digital image processing algorithms. They are used even more intensively, specifically in the case of real-time embedded applications, where latency and power are considered important issues. Typical topics in digital image processing are the evaluation of single images or numerous frames of a video signal for specifically set criteria such as movement information extraction or object tracking. For example, an FPGA embedded in a camera can execute image processing directly via the transmission of the image through the sensor. The camera provides a fully processed output stream that way, rather than just an image sequence.
The sector of robotics significantly benefits from the advantages provided by digital image processing on FPGAs. The image processing system of a robot is crucial for the enhancement of processing performance, since it includes the ability for spatial recognition and multiple detective algorithms to carry out the mission tasks. These tasks primarily include localization/navigation in the case of autonomous mobile robots. The primary reason for applying algorithms in FPGA robotics is the parallelism option which allows advantageous capabilities such as real-time image filtering for pre-processing purposes. Moreover, the local memory embedded in current FPGA architectures allows the buffering of pertinent image information to limit the communication with external memories, a situation that can potentially form a bottleneck [1].
Furthermore, FPGAs are more effective in comparison to CPUs in several aspects, regarding the ideal image processing system. CPUs execute their operations sequentially, so the first operation must process the entire image before the second operation starts. Since FPGAs are operating in parallel, every operation of the algorithm can operate on different pixels of the image simultaneously. This denotes that the time needed to receive the first processed pixel and process the whole image is much shorter, in comparison to an exclusive CPU application. Even if a combined co-processing FPGA-CPU architecture is used to transfer or receive images from the CPU, the total processing time is still shorter than an architecture that exclusively uses the CPU. Moreover, image processing architectures for robotics based both on USB and PC interface, are usually applied by multithread software solutions, so hard real-time response cannot be achieved for the proper integration of image and behavioral usage. Therefore, a robotic vision system that can perform image processing through an FPGA, which is directly connected to the CMOS sensor is more efficient.

Neural Networks
Artificial Neural Networks (ANNs) can be used in a variety of tasks performed by robots such as trajectory and image recognition, vehicle control, image processing, pattern and sequence recognition and medical diagnostics. They are statistical models destined to adapt and self-program, by applying learning algorithms that make them execute the aforementioned tasks. ANNs operate as parallel distributed computing networks and they operate correspondingly to the biological neural system. According to this, there are multiple input signals directed to neurons. Every input is assigned to a relative weight value which correspondingly influences the impact of that specific input. In modelling, weight values are the adaptive coefficients within the network that calculate the magnitude of the input signal. The neuron output signal is then created by adding all the weighted inputs algebraically, simulating the biological cell body [15].
In order to perform properly, developers arrange ANN architectures in specific layers that are implemented in parallel. Since ANNs require significant computational power, they are better implemented using parallel hardware architecture [16]. ANNs can be implemented by using either software or hardware implementation. Software implementation is the favorite choice, supporting ANN training and simulation on sequential computers for imitating a large variety of neural network models, with significant flexibility. That is so since the developers do not need to know the internal operations of the neural network elements, but can be exclusively focused on the software application of the ANN. On the contrary, hardware FPGA-based architectures offer high applicability and the significant advantage of parallelism. The two basic characteristics of the FPGA-based reconfigurable computing architecture are its dynamic adoption and parallelism. These architectures are most suitable to apply ANNs as a developer can achieve concurrency and easily reconfigure in order to adjust the topology and the weights of an ANN. In total, FPGAbased architectures offer numerous advantages for neural implementations such as: • Prototyping through reprogrammability: The neural FPGAbased architectures can be directly tested in order to find the most effective one, without any additional costs. Furthermore, an effective application architecture already developed and implemented can be later replaced by another one, without the need to design a new chip.
• Embedment: FPGA architectures can be used for all kinds of embedded applications, in order to take advantage of the effectiveness of neural calculations.
• On-chip leaning: Usually on-chip learning is avoided as it is considered a complicated process that can easily lead to loss of efficiency due to a number of reasons. On the contrary, offchip learning is a more preferable choice when there are no requirements for dynamic learning. In the case of FPGAs, onchip learning can be executed before the chosen implementation of the learned ANN on the same chip.
• Mapping: FPGA-based ANN architectures can be mapped onto more modern and effective FPGAs, whenever technology advancements indicate so. The basic prerequisite for ANN implementation is the scalability level of the implementation method.

Fuzzy Logic Control
Control algorithms for detailed dynamic models often require the exact specification of accurate target values. These equations may be complex and nonlinear, requiring longer "run-time" in order to get processed. An alternative approach to the usage of classical logic controllers described in section III subsection B.1 is the usage of Fuzzy logic control algorithms, which use imprecise specifications in order to reach the same goal. Fuzzy logic controllers are implemented to applications that are difficult by nature to model precisely. They are often considered more robust algorithms in planning parameter value changes, in comparison to regular control algorithms, since they do not require high precision and high computational power.
In the sector of robotics, fuzzy logic controllers are often used for automatic navigation purposes. This is due to their capacity to process a high number of imprecise and incomplete input signals. In such a case, signal input processing may allow robots to navigate in uncertain environments. A robot is equipped with multiple sensors that allow it to sense and process the environmental information. Fuzzy controllers receive sensor outputs as inputs for processing according to the fuzzy rule database that dictates the robot's possible behaviors. The robot decision making mechanism implemented by the fuzzy controller consists of three basic steps in order to reach the final decision. First, during fuzzification a crisp input value is converted to a fuzzy value that is performed by the use of the information in the fuzzy rule database. Next, fuzzy inference (rule evaluation) formulates the mapping from a given input to an output using fuzzy logic, applying the rules to the fuzzy inputs. The mapping includes the rule framework under which robot's decision making will take place. Then, during the defuzzification step the values from the output variables are calculated from the fuzzy values resulting in the controller's final decision [17]. In total, fuzzy algorithms allow the robot to choose amongst various combinations of decisions the most effective one, rather than being forced to make a pre-designed single decision.
A fuzzy logic controller is capable of processing inputs from a wide range of sensors. For instance, ultrasonic navigation sensors can calculate the distance between a robot and the obstacles of the external environment. GPS applications can be used for localization purposes, detecting the robot's current position. Fuzzy algorithms constitute a suitable controller solution for navigation in 2D and 3D environments, industrial robot manipulators [18], image processing algorithms [19] and several other robotic domains that require high computational power.

Swarm Robotics
Swarm robotics is the task of using multiple robots to perform different activities simultaneously, rather than using one robotic application with enhanced capabilities. It is considered a distributed approach that aims at coordinating robot behaviour by copying natural decision mechanisms of the biological entities (humans, animals). These algorithmic mechanisms allow a group of robots to achieve performance levels that could never be achieved by a single or a few robotic applications. The usage of multiple robots may significantly shorten manufacturing time, performing different tasks with simpler, scalable and more robust robotic applications. The major issue in swarm robotics is the effectiveness and precision of the coordination algorithms, as they are usually performing on the same physical object or environment.
There are two main approaches of designing swarm robotics. The first approach is the centralized system, according to which a primary robot acts as a leader-coordinator for the rest of the robots of the swarm [20]. In FPGA robotic controllers, this is a relatively simple solution for navigation tasks. In this case, a master (leader) robot plans the path planning to traverse to the direction of a certain goal point, with the rest of the robots to follow. The behavioral control mechanism creates a constant mutual communication between the leader and the followers, whose behaviour is checked and corrected at specific time periods, according to the leader's motion. The core advantage of this approach is that all follower or slave robots can be simple robotic applications compared to the master robotic unit. The main disadvantage is that if the leader robotic unit fails to perform as planned or properly communicate with the followers, then the whole swarm fails to complete the task. The second approach is the decentralized system that operates without a leader robotic unit and it is not affected by the cases of a single swarm unit failure or miscommunication amongst swarm members (agents). According to this approach, the motion of each robot is coordinated using local information exchange such as speed, obstacle existence or geographical coordinates, by the closest neighbor agents at a given time period. These motions are usually developed according to animal aggregations. Also, there is a physical decentralized system based on the physical interaction among agents. The communication amongst robots is either directional, by exerting forces to each other or in directional by manipulating or placing a common object. Directional communication may be applied by transmitting/receiving digital signals (WiFi, Bluetooth, etc), sound or light. In directional communication may be applied by either leaving optical markings in the ground or placing/manipulating an object in the environment that will be used as a marking point by other agents [20]. In total, the centralized architectures are simpler and used primarily for navigation purposes while decentralized architectures are more complicated and can be used for performing activities such as simulations, biotechnology or military tasks.
In Figure 4 and Figure 5 the robot types and the distribution of FPGA applications found in this survey are depicted, according to the total count of 200 publications tested.

Reviewed Literature
In this section, we present and analyze the examined research publications of the IEEE & ACM database. For each application field, we present the publications by giving a short description for each publication. Only selected publications that utilized high performance, throughput and efficiency were selected. This description for each publication includes a summary of the publication, the key points and its specifications.

Application Field: Image Processing
In [161] we see an approach about a real time image processing patrol service robot. The robot consists of a CMOS camera module that sends data to the FPGA board. The genetic algorithm optimizes threshold values for the filtering operations according to various lighting environments. The visual navigation system has been developed for the linkage between flexible hardware circuits and real-time software applications for robot vision purposes. Experimental results show the feasibility of the proposed methodology.
In 2013, an FPGA algorithm used to detect corners in colored stereo images by implementing Harris corner detection technique [155]. The FPGA used is the XC5VLX50 and the architecture consists of 3 pipeline modules consisting of OmniVision image sensors in RGB555 format. Data is stored into a single DDR2 memory of Micron. By using less than 75% of FPGA resources and a 100MHz system clock, the authors achieved a corner detection rate of 0.33 pixels per clock cycle (ppcc) corresponding to a corner detection frequency of 54Hz for the stereo images. They highlighted the performance benefits of their methodology by conducting experiments.
A novel human-robot communication algorithm for both voice recognition and image processing embedded in an autonomous mobile robot [149] is proposed. The main controller is built on a Spartan FPGA processor, processing visual and voice information. The result of the research is a very flexible and powerful development tool for human-robot multimodal communication research and implementation. The hardware resources of this robot are wisely integrated by using the LabView graphical software toolkit, enabling a large amount of voice signals and image processing algorithms testing. The designed software drivers also allow various sensor modality including vision and speech signals analyzing. Endowed with these novel capabilities, the mobile robot displays intelligence and cooperativeness in its behavior, and becomes a versatile hardware system for human-robot multimodal communication implementation.
In 2014, researchers proposed a bio-inspired event-driven vision system using pseudo-simultaneous sensing [137]. The control system consists of a Spartan6 FPGA implementing a Convolutional Neural Network and a 3D construction algorithm. Experimental results demonstrate the application of this paradigm to implement Gabor filters and 3D stereo reconstruction systems. This architecture can be applied to real systems which need efficient and high-speed visual perception, like vehicle automatic driving, robotic applications in unstructured environments, or intelligent surveillance in security systems. Experimental results highlight the performance gains of the proposed methodology.
The authors of [147] published a research paper about a hexapod (6-legged spider like) robot using an FPGA-based robotic platform (Spartan 6). The system architecture involves an image sensor controller, a servo-motor controller and an AVR processor. Overall, the implementation of the servo motor controller in an FPGA has offered several advantages in terms of circuit design flexibility and simultaneous command executions when compared to conventional microcontroller-based system.
In 2014, researchers proposed an FPGA-based OV driver for VGA cameras [132]. For their implementation, they used an FPGA board (Cyclone EP2C5T144C8N) and optimized it using VHDL. The results from the conducted experiments suggest that the devised solution outperforms when compared to the coexisting implementations in terms of resources utilization.
Researchers published a research paper implementing a visual sensor unit for mapping and localization using a six-dimensional Micro Aerial Vehicle (MAR -drone) [126]. The sensor design is based on a XILINX FPGA System-on-Chip combining FPGA resources with an ARM A9 Dual-core processor One year later, a group of researchers proposed a real-time machine vision system for an industrial robot that grasps items from an assembly line [119]. The items are in the same class, meaning that they have the same general shape but different details. The conducted experiments suggest that the machine parts can be located accurately under arbitrary in-plane rotations and can be classified correctly according to the details in their shapes. Guo's system can run with an industrial camera at a resolution of 640×480 and a speed of 50 fps (frames per second) or higher.
In 2015, the authors of an interesting research paper proposed a pragmatic incremental algorithm for achieving gain control and white balancing on an FPGA [112]. The proposed methodology significantly reduces the effects of the variations in lighting on the thresholds. In their paper, they propose a new color space which maximises the hue separation of the different coloured regions to improve the colour discrimination. All of the algorithms are designed to operate on data directly streamed from the camera, enabling a low latency FPGA implementation. The authors conducted real world experiments to evaluate the stability and performance of the proposed prototype.
In 2015, a group of researchers proposed a humanoid robot head with a vision system which has 22 degrees of freedom, including eyebrows sliding mechanism, the eye mechanism, jaw and neck mechanism [108]. The control system of the proposed prototype is an FPGA board. Facial movements are realized through driving traction mechanisms by controlling servos.The vision system of the robot S HFR-II Ihas a human-computer interaction interface with four kinds of work patterns,which includes facial expression recognitions and representations, face recognitions, gender recognitions and expression representations. The authors conducted experiments and the results suggest that the robot can recognize six basic expressions and vividly reproduce them.
Similarly to the aforementioned paper, in the same year, a group of researchers published an implementation of a face recognition system that captures facial images and recognizes a face and detects slight expressional changes of the test image [104]. In this paper, the authors read various facial images and store them. Then, images are compared bit by bit and any mismatch is detected. If the image is matched then a "Match found" message is displayed.
The author of [97] proposed a hardware accelerator to reduce the computation time of the scale-space analysis and the feature detection of the KAZE algorithm on Zynq-SoC family of FPGAs.
An interesting paper is proposed by [91] demonstrates an implementation of image mosaic algorithm on the Xilinx Zynq-7020 FPGA board. The system is able to process more than 60 frames per second (fps) and is capable of maintaining low power consumption. The authors verified the proposed methodology in a synthetic environment simulated using MATLAB.
A real time target tracking and positioning system based on FPGA is proposed by the authors of [89]. The hardware platform for the design is the development board by XilinxˊThe system uses monocular camera to measure the orientation of target in real time. It acquires the video stream from a CMOS camera. The system realizes target tracking by extracting the color of the target as the feature, filteringˈdetecting feature of the target and then displaying on the screen. The system realizes target positioning according to the centroid of the tracked target, then computing the orientation which can be used for the intelligent robot vision.
A group of researchers proposed a system that integrates different techniques to perform dimensional measurement of thick steel plate bevels using a DE0-Nano FPGA board [88]. The groove modeling is achieved through the use of line detection algorithms that look for straight lines and segments. The system level modeling and synthesis and the integration to the whole digital linear welding system, using only 28% of the FPGA's slices. Results Show the approach is a viable option to automate the process that is currently widely adopted in industry.
An interesting work about a high speed ball target tracking system based on FPGA (ZYNQ) [85] is proposed. With a CMOS sensor, the original frame can be transferred to the FPGA port. After the video streams go through the parallel image processing core, the color and corner features can be extracted. When compared to the predefined target's pattern, the target can be detected. The authors conducted real-world experiments to verify the feasibility of the proposed methodology.
In 2017, a group of researchers published their paper about an FPGA based real-time virtual blind cane system for the visually impaired, detecting obstacles in front of the user in real time [70]. Described three novel architectures of image segmentation, implemented on Virtex UltraScale XCVU190-2FLGC2104EES9847 FPGA. Working as a blind cane, the proposed system helps a blind person find the type of obstacle and the distance to it. The distance from the user to the obstacle is estimated by extracting the laser coordinate points on the obstacle, as well as tracking the system pointing angle. The paper provides a simple method to classify the obstacle's type by analyzing the laser intersection histogram. Real experimental results were also presented in the paper to highlight the validity and accuracy of the proposed system.
The same year, a group of researchers presented three novel architectures of image segmentation, implemented on Virtex UltraScale XCVU190-2FLGC2104EES9847 FPGA [69]. The sequential design which allows control over minute details of arithmetic design, The hybrid architecture provides a full fledged parallel and pipelined implementation of the algorithm and the hybrid architecture overall provides at least two times gain in acceleration.
One year later, a group of researchers propose a real time tracking hardware based on FPGA [60]. They converted a simulated and verified MATLAB code directly into HDL. The key point of their research is that the simulated and hardware outputs were consistent. Three types tracking algorithms (Kalman filter, extended Kalman filter and αβγ filter) were implemented to validate the proposed methodology.
In 2018, a research paper about a design approach of accelerating the execution of a robust algorithm based on Horn's quaternion solution [59] is proposed. The authors presented a HW architecture as well as its FPGA implementation. In their research paper, they also included results of the experiments they conducted. Figure 6 depicts the total number of research papers that implemented FPGA Image Processing and the total Image Processing papers in robotics, from 2010 to 2019. It is evident that the popularity of FPGA and Image processing is steadily growing.

Application Field: Robotic Controller
A group of researchers propose an inverse kinematic algorithm for a parallel milling robot. The proposed robot consists of three robotic arms connected to a moving platform inside which there is a rotating spindle along a trajectory in the cartesian x, y, z space. The system is implemented using Altera Cyclone IV FPGA chip and it is evaluated by experimental results.
A group of researchers propose a robotic platform based on Lego Mindstorms in [162]. In their research, they included hardware, software and mechanical modules. A mathematical model for the motor and the PI controller are included. Experimental results highlight the performance gains of their implementation.
A system architecture controlling and monitoring household appliances through GSM. The system consists of an FPGA Xilinx SP605 implemented in VHDL, the GSM circuit, the PIR sensor and the interface circuit that monitors the appliances A connecting algorithm for interfacing the FPGA-based controllers to high level robotic software frameworks. The Unity-Link algorithm conjoins PC-processed architectures with nodes that provide demanding real-time control of distributed robotic systems A group of researchers published their paper about an inverse kinematics FPGA algorithm for a biped robot, based on CORDIC operators of hyperbolic and circular vectoring. The speed of the proposed hardware FPGA application is compared to that of the Nios II CPU. The authors evaluated the proposed methodology by conducting experiments in a synthetic environment.
In 2019, the authors of [25] proposed an FPGA implementation of an adaptive neuro-fuzzy control for a teleoperation system. The controllers were developed in the MATLAB-Simulink environment and were implemented on FPGA using Simulink's fixed point tool and HDL Coder. The experimental results were very promising, as the latencies of these filters on the Field Programmable Gate Array (FPGA) platform were below 300ns with an average latency reduction of 188% (maximum of 570%) over the software versions running on a desktop PC CPU. This open-source event-based filter IP library for FPGA was tested on two different platforms and scenarios using different synthesis and implementation tools for Lattice and Xilinxvendors.  Figure 7 depicts the total number of research papers that implemented FPGA Robotic Controllers and the total Robotic Controllers papers in robotics, from 2010 to 2019. It is evident that the popularity of FPGA and Robotic Controllers is increasing.

Application Field: Neural Network
In 2012, the authors proposed an FPGA-based Neural Network algorithm for lane following of autonomous mobile robots [164]. The neural function consists of two main parts, the fixed points coding and the Sigmoïde function coding. The VHDL simulation is compiled in A Quartus II and implemented in Cyclone EP2C35F484C6 FPGA. The experimental results are promising and suggest high performance gains.
In [163], the authors publish their research paper about a stereo vision landing system architecture for an Unmanned Aerial Vehicle (UAV). The proposed FPGA-based Artificial Neural Network (ANN) algorithm is designed to apply real-time object tracking, 3D position computation via Visual Odometry methodology, Euclidean distance estimation from the landing target and horizontal displacement. The algorithm implementation was done on a Xilinx XC2V100 FPGA chip In the same year, the authors proposed a Neural Processing Unit implementation [120] which reached a range from 6k to 90k iterations per second for the targeted neural map size. The authors propose a Neural Processing Unit designed as a programmable accelerator implementing recent equations close to selforganizing maps and neural fields. The proposed architecture is validated on FPGAdevices and compared to state of the art solutions. The trade-off proposed by this dedicated but programmable neural processing unit allows us to achieve significant improvements and makes our architecture adapted to many embedded systems.
An alternative architecture that exploits stochastic computation for doing classification with deep belief networks was proposed by the authors of [110] in 2015. The network was trained offline in MATLAB on the MNIST training dataset, and then implemented on an FPGA for classification at variable stochastic computation precision. Experimental results highlight the performance gains of the proposed methodology.

Application Field: Mapping & Navigation
In [146], a color tracking algorithm was proposed for autonomous mobile robots, using a CMOS camera and an ultrasonic sensor. The design implementation was done on a Digilent Nexys2 FPGA. The video is captured and further processed by the FPGA board and displayed on a 3.2 inch screen. They conducted real world experiments to evaluate the stability and performance of their prototype.
A group of researchers proposed a processor embodying a Radio Frequency Identification Detection (RFID) algorithm and a CORDIC algorithm on a Kintex-7 FPGA platform [140]. The proposed system is used for navigation and anti-collision purposes. Experimental results highlight the performance gains of the proposed methodology.
In [135], a Micro Aerial Vehicle (MAV) architecture was proposed consisting of two subsystems: a) An image processing subsystem consisting of two VGA cameras and an Inertial Measurement Unit (IMU) and b) A control system using an Altera SoC FPGA. The interesting aspect of this research is that motion estimation and outlier rejection algorithms were included.
In the same year, an FPGA-based in-door flight localization/navigation system with a pan-tilt camera was proposed [129]. The FPGA (XC6SLX100) was used for image analysis and quad rotor control. The authors validated the proposed methodology by conducting real world experiments.
The authors of [119] proposed an improved ant colony system algorithm for path planning by establishing two new mechanisms for pheromone updating. They included partial pheromone updating and opposite pheromone updating. The authors evaluated the proposed methodology by conducting experiments in a synthetic environment. [114] presents an effective data cache configuration where the number of active ways and hence its total capacity can be configured at run-time. When using the best data cache configuration, a reduction of 7% the power consumed at a 1% execution time penalty is suggested and it is the same result for the SLAM-EKF algorithm.
The authors of [113] present a novel methodology based entirely on the on-board approach. The obstacle avoidance system that is proposed is suitable for running on low-power embedded devices, leveraging a light-weight low power stereo vision system on FPGA used on Micro Aerial Vehicles (MAVs).
A group of researchers proposed a robot navigation system using a combination of sophisticated image processing algorithms [111]. Their system is used to generate a map and an extended A* algorithm to plan the path. A turtlebot localizes itself in an environment containing several obstacles and a destination. The authors evaluated the proposed methodology by conducting experiments in a synthetic environment. [109] presents an FPGA-based hardware architecture of EKF Prediction Stage applied to the Mobile Robotics Localization Problem. It runs on an Altera Cyclone IV FPGA with a Nios II processor, adapted to the mobile platform Pioneer 3AT. The experimental results look very promising, as the execution time results point out that the hardware solution has a speed up factor greater than 2 in comparison with the embedded software implementations.
In 2015, a hardware structure for a vision-based autonomous vehicle navigation system was proposed [107]. Results showed that it is possible to implement the structure without consuming a high number of FPGA resources and achieve acceptable execution times. Analyzing the final hardware structure this goal was achieved with a considerably high frame-rate.
In the same year, an investigation was conducted [100]on the amount and sophistication of sensing and processing hardware needed by a mobile robot for performing high-level tasks in real time, such as azimuth calculation and dynamic obstacle tracing. The paper suggests that one ultrasonic sensor along with a coordinate rotation digital computer processor are adequate for azimuth calculation while one more ultrasonic sensor is required for dynamic obstacle tracing.
In [98], a hardware architecture is proposed to accelerate Rapidly-Exploring Random Trees (RRT) path planning algorithm using multiple Kd-trees to conduct the parallel search. The authors evaluated the proposed methodology by conducting experiments in a synthetic environment.
One year later, the authors of [78] propose a technique to evaluate sparse equations on an FPGA by restricting the maximum amount of items in the system. The implementation is done using CλaSH which allows a transformation from mathematical descriptions to a hardware design. The system uses a sparse data notation and puts constraints on the number of loop closures to restrict the amount of computations. Experimental results highlight the performance gains of the proposed methodology.
The first multilevel implementation of the Harris-Stephens corner detector and the Oriented FAST and rotated BRIEF (ORB) feature extractor running on FPGA hardware was published [74] in 2017. The Tarsier device performs excellently as it successfully generates descriptors for real images with sufficiently low latency for integration into a 1080p resolution 60 fps loop.
In the same year, the authors of [62] present their research about the development of a neuromorphic system on a Spartan 6 FPGA generating locomotion patterns (gaits) for three different legged robots (biped, quadruped, and hexapod). The authors validated the proposed methodology by conducting real world experiments. Moreover, the proposed spiking neuron model consumes less hardware resources and power than those based on coupled.
In 2019, an angular position tracking control was implemented using modified D channel PID algorithm [40]. It was developed in such a way that the reading of data, the calculation of the control signals, and the controlling of the motors are all implemented on FPGA. Experimental results highlight the performance gains of the proposed methodology.

Application Field: Fuzzy Logic Control
In 2012 a fuzzy-logic controller [168] for an autonomous navigation robot was proposed. The controller is implemented using an Atmega16 microcontroller and tested using the whole robotic application. The FPGA implementation consists of the Fuzzy logic controller, the UART receiver (it translates data between serial to parallel form), the LCD controller (for controlling the LCD operations) and the ASCII to binary converter and binary to ASCII controllers.
In the same year, an interesting work is proposed about an autonomous parking FPGA-based system for a mobile robot [167]. The system scans the area for available parking space and performs the necessary maneuvers for parking. The whole system consists of three major parts, the car-like robot design, the development of a simulation model using MATLAB and Simulink and the fuzzy logic controller design. The evaluation of the paper was performed using a synthetic realistic environment.
A group of researchers published their research paper about an autonomous mobile robotic platform [165]. Their prototype is designed within the context of a robotic course. The system uses two separate FPGA-based controllers: A Proportional integral derivative (PID) controller and a fuzzy logic-based controller. Apart from the FPGA card, the robot's hardware design consists of two motors, eight sonar sensors, a radio frequency identification reader and a Basic Stamp microcontroller. For the modeling and implementation, they utilized MATLAB and Simulink.
Two fuzzy logic algorithms are developed: one for avoiding obstacles and another for avoiding obstacles / reaching a specific point. For the obstacle avoidance an ultrasonic sensor is used, while software is implemented using LabVIEW modules In 2013, an interesting work is proposed about a fuzzy logic algorithm that is applied on an autonomous mobile robot for line tracking and obstacle avoidance tasks [145]. The software is implemented by an Altera Quartus platform while Eclipse software is used to simulate the fuzzy rules. Several practical tests that were conducted by the authors reveal the effectiveness of the proposed fuzzy rules for which MRTQ was able to track the path more precisely and softly at different speeds and avoid the detected obstacle through the path readily.
In 2013, a paper was presented about a fuzzy-logic color extractor used on NI myRIO embedded system package [133]. In total, the fuzzy logic module, the real-time module, and the FPGA LabVIEW module are required for the implementation of the extractor on myRIO embedded device. The authors conducted multiple experiments and evaluated its effectiveness and performance gains.
In 2015, an interesting work is proposed about an omnidirectional mobile platform control using the artificial intelligence technique of Fuzzy Logic; the control allows a practical and reliable driving control of 4 omni-directional wheels implemented on FPGA. The experimental results show increased performance and low power consumption.

Application Field: SWARM
In 2015, an interesting work is proposed about a behavioural control algorithm of a centralized swarm consisting of two robots [101]. In this paper, the authors present the challenges of multi robots and how the leader and follower robots can change their mode of behavioural control by switching between centralization and decentralization methods with a novel approach using implicit communication. According to the authors and their experimental results, the proposed implementation is very energy efficient. Robots are developed with minimal sensors (ultrasonic sensors, digital compass, RF Transceiver (PMOD-RF2)) and are implemented using a Spartan 3e FPGA board Another interesting implementation was proposed by the authors of [84] in 2014. The heuristic approach based leader follower method is incorporated between robots for behavioural control. The robots were able to navigate in both static and dynamic conditions by using the modified M* based obstacle avoidance mechanism with CORDIC module. The proposed methodology was validated by the implementation of the algorithm on Spartan 6 FPGAs (XC6SLX45 CSG324C).
In 2015, an interesting work is proposed about a pragmatic incremental algorithm for achieving gain control and white balancing on an FPGA [112]. The proposed methodology significantly reduces the effects of the variations in lighting on the thresholds. In their paper, they propose a new color space which maximises the hue separation of the different coloured regions to improve the colour discrimination. All of the algorithms are designed to operate on data directly streamed from the camera, enabling a low latency FPGA implementation.

Discussion
In the 2000s, FPGAs were seen as an inexpensive alternative to the traditional ASICs (Application Specific Integrated Circuit) for heavy computation tasks. Along with the decreased production cost and the technological advancements, this led to the increased popularity of FPGAs. This time period had significant improvements. Most importantly, they were software as well as hardware programmable. In boards released in the late 2000s, for the first time, the microprocessor was not the simple hardware block dropped into the FPGA as was done in older days, but included a full environment with caches, busses, Network-on-Chip and peripherals. Bundled software included operating systems, compilers and middleware: an entire ecosystem, rather than an integrated function block. The increased capabilities of FPGA boards of this era led to the increased usage in robotic applications, such as image processing, robotic controllers, mapping and navigation. In these fields, 10% of the published research papers utilize FPGA boards, presumably for the performance benefits they offer.
In the early and mid 2010s, FPGAs started to gain prominence in another field: neural networks, fuzzy logic control and swarm. Running neural network inference models takes significant processing power. Graphics processing units (GPUs) are often used to accelerate inference processing, but in some cases, highperformance FPGAs might actually outperform GPUs in analyzing large amounts of data for machine learning.
Just as customers seeking custom integrated circuits 30 years ago were attracted to FPGAs over the complexity of ASICs, many are now attracted to multicore processors, graphic processing units (GPU) and software-programmable Application Specific Standard Products (ASSPs). These alternative solutions provide pre engineered systems with software to simplify mapping problems onto them. They sacrifice some of the flexibility, the performance and the power efficiency of programmable logic for ease-of-use. It is clear that, while there are many FPGA users who need to exploit the limits of FPGA technology, there are many others for whom the technological capability is adequate, but who are daunted by the complexity of using that technology.
The complexity and capability of devices have driven an increase in capability of design tools. Modern FPGA tool-sets include high-level synthesis compilation from C, Cuda and OpenCL to logic or to embedded microprocessors. Vendorprovided libraries of logic and processing functions meet design costs. Working operating systems and hypervisors control FPGA SoC operation. Team modules, including control, are built into FPGA design systems. Some capabilities are built by the vendors themselves, others are part of the growing FPGA ecosystem. Clearly, usability is critical to this next age of FPGAs and their adoption in robotics. If FPGA manufacturers focus on ease of use and solve the steep learning curve, FPGAs will be able to compete with GPUs and become dominant in high performance applications.

Conclusions
This survey revealed popular technological, research and industry trends of the past 10 years, regarding robot types used and processed in the research as well as application fields of the FPGAs. As depicted in Figure 4, the vast majority of robots for which applications are being developed are autonomous mobile robots especially when the algorithms developed for these robots are related to localization, mapping and navigation purposes.
In order to further increase the execution speed and efficiency of algorithms, developers utilize FPGA boards, as they offer an innovative solution. The popularity of FPGA boards has been steadily increasing over the last decades, as we can see in Figure  1. FPGAs offer significant advantages over software running on a CPU or GPU, including execution speed and energy efficiency. In a traditional local system, the FPGA board is typically located onsite, along with the other components of the device. However, in modern systems, FPGA boards can be found in the cloud, along with a high performance traditional server. As the server receives data from modern embedded IoT systems, images the server offloads the necessary information to be processed on the FPGA boards. Many boards support PCIe connectivity, with a maximum theoretical bandwidth of 15.75 GB/s in version 3.0. The main disadvantage of FPGA boards, however, is the increased engineering cost and complexity. The development process on FPGA boards includes the design of custom hardware circuits. Traditionally, these hardware circuits are described via Hardware Description Languages (HDL), such as VHDL and Verilog, whereas software is programmed via one of a plethora of programming languages, such as Java, C and Python. An upcoming trend on FPGA is High Level Synthesis (HLS). HLS is allows the programming of FPGAs using regular programming languages such as OpenCL or C++, allowing for a much higher level of abstraction. However, even when using high level languages, programming FPGAs is still an order of magnitude more difficult than programming instruction based systems. Accelerating the computation process via FPGA boards is only efficient at larger scales, where the performance gain of the system outweighs the increased complexity and engineering cost.
The parallel architectures offered by the FPGAs easily offer the high computational power that continuous real-time localization and navigation tasks demand at a low cost, while mixed FPGA/DSP controllers offer flexibility over the process of complex image data that robotic visual systems include. This particular finding is in accordance with the high number of mapping / navigation application fields shown in Figure 5, for each consecutive year. As shown, the mapping and navigation application field is between half and one third of the total application fields for the 10-years tested period.
As depicted in Figure 4, the field of industrial robotics is the second most usually appearing robot field in the 2010-2019 publication search. FPGAs constitute a flexible solution in the implementation of kinematics algorithms that parallel multi-axis industrial robots often use, in comparison to DSP controllers. The example of the commonly used CORDIC algorithm implemented for rotation tasks in industrial robotics reveals the flexibility of FPGAs. That specific algorithm includes a significant extent of mathematical functions, so the development of a VLSI-based FPGA algorithm is often preferred as the implementation architecture of building a controller for multi-axis motion of robotic limbs. Figure 5 shows the high number of robotic controllers found in the survey, representing the flexibility of FPGAs in industrial robotic control.
Humanoid robots are the third most commonly appeared robot type in the survey. The multi-sensory humanoid robotic applications often demand multi-processor controllers based on mixed DSP/FPGA circuitry. The FPGA connectivity with DSP processors constitutes an effective solution of robotic applications that require multi-processing. The FPGA application fields applied to humanoid robots include regular robotic controllers for motion purposes, image processing applications for the process of visual data for pure image processing or mapping and navigation tasks, or neural network architectures for navigation or else. Swarm robotics also constitutes a wide FPGA application field. Complex behavioural algorithms which demand high computational power and high-levels of real-time communication between swarm members, can be easily implemented through FPGA architectures.

Conflict of Interest
The authors declare no conflict of interest. financed by the European Union and national resources through the B.P. WESTERN GREECE 2014-2020 (project code: DΕΡ5 -0019433). Table 1 contains other significant works that were reviewed but not fully addressed in section 4. A multi-layer neural network perceptron application using a Spartan III FPGA chip designed to drive two servomotors of an autonomous mobile robot. A fuzzy-logic controller for an autonomous navigation robot. The controller is implemented using an Atmega16 microcontroller and tested using the whole robotic application. The FPGA implementation consists of the 4.5ler, the UART receiver (it translates data between serial to parallel form), the LCD controller (for controlling the LCD operations) and the ASCII to binary converter and binary to ASCII controllers 2012 148

4.3
A hardware application of an FPGA-based controller using an artificial neural approach. The controller is capable of landscape learning, path planning, obstacle avoidance and sensory motor controlling. The controller is implemented as a SoC embedded on the robot, using a Virtex 6 VLX240T FPGA. The basic architecture of the controller consists of three basic layers: the pre-processing layer, the Self Organizing Map layers based on Kohonen maps and the computing layer