Movatterモバイル変換


[0]ホーム

URL:


Next Article in Journal
Miniaturized Folded-Slot CubeSat MIMO Antenna Design with Pattern Diversity
Next Article in Special Issue
Proposal of a Real-Time Test Platform for Tactile Internet Systems
Previous Article in Journal
Deep HDR Deghosting by Motion-Attention Fusion Network
Previous Article in Special Issue
Origami-Inspired Structure with Pneumatic-Induced Variable Stiffness for Multi-DOF Force-Sensing
 
 
Search for Articles:
Title / Keyword
Author / Affiliation / Email
Journal
Article Type
 
 
Section
Special Issue
Volume
Issue
Number
Page
 
Logical OperatorOperator
Search Text
Search Type
 
add_circle_outline
remove_circle_outline
 
 
Journals
Sensors
Volume 22
Issue 20
10.3390/s22207851
Font Type:
ArialGeorgiaVerdana
Font Size:
AaAaAa
Line Spacing:
Column Width:
Background:
Article

FPGA Applied to Latency Reduction for the Tactile Internet

1
Laboratory of Machine Learning and Intelligent Instrumentation, Federal University of Rio Grande do Norte, Natal 59078-970, RN, Brazil
2
Centre for Telecommunications Research, Department of Engineering, King’s College London, London WC2R 2LS, UK
3
Department of Computer Engineering and Automation, Federal University of Rio Grande do Norte, Natal 59078-970, RN, Brazil
*
Author to whom correspondence should be addressed.
These authors contributed equally to this work.
Sensors2022,22(20), 7851;https://doi.org/10.3390/s22207851
Submission received: 27 August 2022 /Revised: 9 October 2022 /Accepted: 10 October 2022 /Published: 16 October 2022
(This article belongs to the Special IssueAdvances in Tactile Sensing and Robotic Grasping)

Abstract

:
Tactile internet applications allow robotic devices to be remotely controlled over a communication medium with an unnoticeable time delay. In bilateral communication, the acceptable round trip latency is usually 1 ms up to 10 ms, depending on the application requirements. The communication network is estimated to generate 70% of the total latency, and master and slave devices produce the remaining 30%. Thus, this paper proposes a strategy to reduce 30% of the total latency produced by such devices. The strategy is to use FPGAs to minimize the execution time of device-associated algorithms. With this in mind, this work presents a new hardware reference model for modules that implement nonlinear positioning and force calculations and a tactile system formed by two robotic manipulators. In addition to presenting the implementation details, simulations and experimental tests are performed in order to validate the hardware proposed model. Results associated with the FPGA sampling rate, throughput, latency, and post-synthesis occupancy area are analyzed.

    1. Introduction

    Tactile internet is conceptually defined as the new generation of internet connectivity which will combine very low latency with extremely high availability, reliability and security [1,2]. Another feature that has been pointed out is that this new generation will be centered around applications that use human-machine communications (H2M) alongside devices that are compatible with tactile sensations [3,4,5]. Currently, the IEEE 1918.1 standard [6] defines characteristics of the tactile internet, where both the structure and description of application scenarios and definitions are presented. A tactile internet environment is basically composed of a local device (known as a master) and a remote device (known as a slave), where the master device is responsible for controlling the slave device over the internet through a two-way data communication network [7,8]. Bidirectional communication is needed to simulate the physical laws of action and reaction, where action can be represented as sending operational commands and reaction can be represented as the forces resulting from that action. In tactile internet applications, the desired time delay for device communication is characterized by an ultra-low latency. In bilateral communication, the required round trip latency ranges from1ms up to10ms depending on the application requirements [9,10,11,12].
    According to [13], it can be noticed that in a tactile internet application,30% of the total system latency is generated by the master and slave devices. These devices demand high processing speeds as repeated execution of a variety of computationally expensive algorithms and techniques are required. These algorithms involve the use of arithmetic operations and calculations of linear and nonlinear equations that need to be computed at high sampling rates in order to maintain application fidelity. The remaining70% of the latency is caused by the communication network, which makes them unsuitable for such latency constraints [14]. To address this problem, some research groups have been studying communication networks in the context of tactile internet. The works [15,16,17] shows some types of techniques that can be used to reduce network latency.
    Other groups have been studying prediction techniques, where many algorithms have been studied and proposals using artificial intelligence (AI) have proved to be effective [18]. On the other hand, the implementation of complex AI-based prediction methods can further increase the latency of the computer systems present in master and slave devices. Alternatively, new approaches such as using field-programmable gate arrays (FPGAs) can improve the performance of master and slave devices in a tactile system environment. The FPGAs enables the creation of customizable hardware which allow algorithms to be parallelized and optimized at the logical gate level to speed up their operations. Literature results show that computationally expensive algorithms can achieve speedups of up to1000× over software implementations when custom-implemented in FPGAs [19,20,21,22,23,24,25].
    In this context, this paper has, with motivation, a hardware proposed implementation to target reducing the 30% of the total latency related to tactile devices. The project uses FPGA devices to minimize the execution time of algorithms associated with master and slave devices. FPGAs allow the parallelization of algorithms and latency reduction compared to software systems embedded in traditional architectures with general purpose processors and microcontrollers. In an effort to validate the proposed strategy, this paper presents a discrete reference model that can be adjusted for different types of master and slave devices in a tactile internet system. Validation results, throughput, and post-synthesis figures obtained for the proposed hardware implementation using FPGA devices are presented. Comparisons with other works in the literature show that using FPGA can significantly accelerate the processing speed in tactile devices. Thus, this work makes the following contributions:
    • A new discrete reference model for a tactile internet system.
    • The novel reference architecture for hardware design on FPGA for tactile master and slave devices.
    • A new reference architecture for forward and inverse kinematics on FPGA.
    • A new strategy to reduce the latency on tactile internet based on FPGA.
    • Comparison of performance of the proposed hardware model with other proposals in the literature.
    The remainder of this paper is organized as follows:Section 2 presents the related works in the literature;Section 3 introduces a new discrete reference model for a tactile internet system;Section 4 describes the PHANToM Omni robot used with master and slave device;Section 5 presents the simulated tactile internet model;Section 6 gives all detailed description of the reference hardware architectures proposed in this paper;Section 7 presents and analyzes the synthesis results obtained from the described implementation, including a comparison to other works;Section 8 presents the final considerations.

    2. Related Work

    The authors of [26] presented a tactile internet environment that used a glove type device in conjunction with a robotic manipulator. The environment was developed using a general purpose processor, which made the execution of the algorithms sequential. In order to send the data, the tactile glove produced a latency of approximately4.82ms, and the hardware responsible for performing the inverse kinematics calculations took an interval of0.95ms. The latency values obtained in this application could be improved by hardware structures that allow algorithms parallelization.
    Studies in the literature demonstrate the benefit of using FPGA to accelerate the sample rate for data acquisition from devices associated with haptic systems. The authors of [27] presented an implementation for controlling a 3-DoF (Degree of Freedom) device. The presented technique proposed to increase the device sampling rate using FPGA hardware together with a real-time operating system (RTOS) in order to increase the resolution acquisition of the stiffness sensor. The control technique presented was developed in 32-bit fixed point, and trigonometric functions were implemented using lookup tables.
    The work described in [28] presented a control system for one-dimensional haptic devices (1-DoF). The FPGA control implementation used single-precision floating point representation (IEEE std 754) and the algorithms performed all calculations in50μs. The processing time was satisfactory; however, the data frame size to be sent over the network increased with the size of the DoF. This peculiarity can increase latency for more complex haptics systems with many DoFs. In the same topic of previous works, an implementation for bilateral control of single-dimensional haptic devices (1-DoF) was presented in [29]. A more accurate control techniques based on the sliding mode control (SMC) was implemented in FPGA, and to assist in performing the complex calculations, the CORDIC (COordinate Rotation DIgital Computer) was used. The hardware was designed to locally control two devices, one master and one slave. In the implementation, a 24-bit fixed point was used, of which 9 bits in the integer part and 14 bits for the fractional, and the total execution time of the controllers was of7.2375μs.
    The works [27,28,29] presented a control that depends directly on the encoder reading of the device motors. Usually in commercial models, accessing the device electronics can be tricky requiring some reverse engineering and specific knowledge to make the appropriate encoder connections. On the other hand, some works abstract the data acquisition and work directly with robotics algorithms. These algorithms may require high computational power that can surpass the capabilities of many general-purpose processors (GPPs) that perform the operations sequentially.
    Some studies demonstrate the benefit of using FPGA to accelerate robotic manipulation algorithms related to haptic systems. A hardware architecture implemented in FPGA for performing the forward kinematics of 5-DoF robots using floating point arithmetic was described in [30]. In this hardware implementation, all the forward kinematics calculations were performed within1.24μs which represents 67 clock cycles in a frequency of54MHz. The equivalent software implementation has a total processing time of1.61036ms. Overall, the hardware implementation is1298× faster than the software implementation, which means a considerable acceleration in the forward kinematics processing time.
    The authors of the paper [31] presented an FPGA implementation of inverse kinematics, velocity calculation and acceleration of a 3-DoF robot. Three systems were created: the first one did not use any arithmetic co-processor and floating point operations were performed in software; in the second system a floating point co-processor was used which allowed the execution of the four basic mathematical operations in hardware; lastly, the third system also had a custom arithmetic co-processor but in this case it allowed hardware computation of square root. The overall times to perform the calculations were2324μs,560μs and143μs and the total logic elements used from the entire device were 4501 (4%), 5840 (5%) and 7219 (6%), respectively. The work uses hardware–software to implement inverse kinematics, in which critical parts were implemented in FPGAs to accelerate the whole process.
    In [32], a hardware able to control a 6-DoF device using 32-bit fixed point representation is presented, where 21 bits were used for the fractional part and 11 bits for the integer part. In that work, a CORDIC implementation was used to assist in performing the trigonometric calculations. The total time spent to compute the forward kinematics was3μs and for the inverse kinematics the time was4.5μs for a clock of50MHz. However, in the presented proposal, some calculations were performed sequentially, that is, for the execution of the forward kinematics it was necessary 150 clock cycles and for the inverse, 225 cycles. The use of partial parallelization in the execution of robotic manipulation algorithms provided a significant increase in system throughput. Nevertheless, it is important to note that there is still room for improvement since all calculations can be computed in parallel.
    Another hardware implementation of inverse kinematics was presented in [33]. The device used was a 10-DoF biped robot. A CORDIC implementation was used to perform the trigonometric calculations. The execution time needed to compute the kinematics of the 10 joints in FPGA was of0.44μs. In this paper, a comparison with a software implementation was also performed, and the time taken to perform the same calculations was3342μs, i.e., the gain on execution, or speedup, on custom FPGA hardware was7595×. The resulting error between both implementations was acceptable for this specific control.
    In [34], an FPGA implementation of the forward and inverse kinematics of a 5-DoF device was presented. The hardware was developed using a fixed point representation where 32 bits were used for the angles representation and 15 bits for the fractional part. For the device spatial positioning, 16 bits were used of which 7 bits for the fractional part. In the implementation of trigonometric functions, a combination of techniques using lookup tables (LUTs) and Taylor series was used. To perform the necessary calculations, a finite-state machine model (FSM) was used to reduce the use of hardware resources; however, the use of such FSM generated a sequential computation of the robotic manipulation algorithms. In this model, the forward kinematics implementation achieved a runtime of680ns and the inverse940ns, that is, for the50MHz clock, the forward kinematics took 34 clock cycles and the inverse kinematics took 47 cycles. Using such approaches to reduce the use of hardware resources increases computation runtime. For tactile device applications, it is important to optimize the runtime rather than the use of hardware resources.
    Similarly, an FPGA implementation of forward and inverse kinematics for a 7-DoF device was presented in [35]; however, only 3-DoF required to control the device movement were implemented in hardware. The proposal used a 32-bit fixed point representation and a CORDIC was used to execute the trigonometric functions. To validate the proposal, the FPGA was set to receive the three reference angles, perform the forward kinematics and then the inverse. The model was developed based on pipeline and the operating frequency used was of100MHz. As a result, the model calculation took2μs to perform the entire kinematics algorithm, which represented 200 clock cycles.
    In this context, it is possible to realize that the use of FPGA-based computing can accelerate haptic device control algorithms. Unlike traditional hardware that processes information sequentially, FPGA enables parallel information processing. However, most studies from the literature have developed partially parallel implementations, that is, implementations in which parts of the used algorithms are executed sequentially. Unlike the research previously mentioned, this study presents a new approach in which the execution of the robotic manipulation algorithms are performed in a full-parallel hardware implementation. This proposed implementation provides a latency reduction for the tactile devices and enables tactile internet applications.

    3. Discrete Model of the Tactile Internet

    A discrete model of the tactile internet system is proposed and presented inFigure 1. This model consists of seven subsystems: the Operator (OP), Master Device (MD), Hardware of the MD (HMD), Network (NW), Hardware of the SD (HSD), Slave Device (SD) and the Environment (ENV). It is assumed that the signals are sampled at timets.
    The OP is an entity responsible for generating stimuli that can be in the form of position signals, speed, force, image, sound or any other. These stimuli are sent to the devices involved so that some kind of task can be performed in some kind of environment. The environment, the ENV subsystem, receives the stimuli from the OP and generates feedback signals associated with sensations such as reactive force information and tactile information that are sent back to the OP. The interaction between the OP and the ENV is performed through the master and slave devices, MD and SD, respectively.
    Specifically in this work, MD is characterized as a local device, SD as remote one and both of them are responsible for transforming the stimuli and sensations associated with OP and ENV into signals to be processed. Tactile devices (MD and SD) can take the form of robotic manipulators, haptic devices, tactile gloves and others that may be developed in the future. In the coming years, the introduction of new types of sensors and actuators is expected that will form the basis for the development of new tactile devices.
    Although there are no tactile internet standards nor products yet, it can be affirmed that future tactile devices will be integrated with a hardware responsible for all operational metrics and calculations. Within this conjecture, this work adds a couple of modules to the discrete model (as perFigure 1), called HMD and HSD. HMD is responsible for performing all transformations and calculations associated with MD, and HSD performs the equivalent operations for the SD. Several algorithms associated with transformation, compression, control, prediction will be under the responsibility of these two modules. The authors from [36] present a few approaches focusing on the reduction of kinesthetic data and tactile signal compression, which can be applied to the model.
    Based on the model presented inFigure 1, the signals generated by the OP can be characterized by the arraya(n) expressed as
    a(n)=a1(n),,ai(n),,aNOP(n),
    whereai(n) is thei-th stimulus at then-th instant andNOP is the total number of stimuli signals generated by the OP. At everyn-th moment the stimulus array,a(n), is received by the MD which transforms the stimuli into a set ofNMD signals expressed as
    b(n)=b1(n),,bi(n),,bNMD(n),
    wherebi(n) is thei-th signal generated by MD at then-th instant. It can be stated that at eachn-th moment a set of stimulia(n) generates a set of signalsb(n) that depend on the type of MD and the sensor set associated with the device. Especially important is the fact that the signals generated by MD,b(n), have heterogeneous characteristics in which eachi-th signalbi(n) can represent an angle, spatial coordinate, pixel of an image, audio sample or any other information associated with a stimulus generated by OP. In practice, the signals grouped by theb(n) array originate from sensors coupled to the MD and the amount of data may vary according to the amount of information to be sent,NMD.
    The set of signals, expressed byb(n) are sent to the HMD (Figure 1) which has the function of processing this information before sending it to the NW subsystem. Calculations associated with calibration, linear and nonlinear transformations and signal compression are performed by the HMD. Essentially, the majority of the computational effort of MD is in this subsystem. At eachn-th instantts the HMD processes the arrayb(n) generating an information arrayc(n) expressed by
    c(n)=c1(n),,ci(n),,cNHMDf(n),
    whereci(n) is thei-th signal generated by HMD towards the subsystem NW at then-th instantts andNHMDf is the numbers of signals.NHMDf<NMD is expected to minimize latency during the transmission in the NW subsystem.
    The NW subsystem, as shown inFigure 1, characterizes the communication medium that links OP to ENV. In this model, the data propagates through two different channels called the forward channel, that transmits the OP data towards the ENV, and the backwards channel, that transmits the ENV signals towards the OP. The signal transmitted by the forward and backwards channels may be disturbed and delayed. In the case of the forward channel, the received signal,v(n), may be expressed as
    v(n)=v1(n),,vi(n),,vNHMDf(n),
    where
    vi(n)=cindif(n)+rif(n)
    in which,rif(n) represents the added noise anddif(n) represents a delays associated with thei-th information sent inc(n). In this model, the noise can be characterized as a random Gaussian variable of zero mean andσrf2 variance, and the delays are characterized as integers, that is, they occur at a granularity ofts. It is important to note that the NW subsystem can take the shape of the Internet, a metropolitan network (MAN), a local area network (LAN), or even a direct connection between an MD and a workstation or computer.
    As shown inFigure 1, the HSD receives thev(n) signal through the forward channel and has the role of generating control signals to the SD through the signal
    u(n)=u1(n),,ui(n),,uNHSDf(n),
    whereNHSDf is the number of control signals andui(n) isi-th control signal at then-th instantts associated with the arrayu(n). It is important to note that there may be various types of SD: from real robotic handlers to virtual tools in computational environments. Thus, it can be stated without loss of generality that HSD can perform an inverse processing to HMD in addition to specific algorithms associated with the type of SD. For example, if the SD is a robotic handler, HSD must additionally implement closed loop control algorithms, whereas if SD is a virtual arm HSD must implement positioning algorithms for a given virtual reality platform. SD does not have to correspond directly with MD, e.g., MD can be a glove while SD is a drone. However, it is desirable that the stimulus generated by the SD is a copy of the stimulus generated by the OP, that is, within the model presented inFigure 1, it can be understood that SD generate a signal expressed as
    a^(n)=a^1(n),,a^i(n),,a^NOP(n),
    wherea^i(n) is an estimate of thei-th stimulusai(n) generated by the OP. Thus, the estimate of the stimulus generated by OP,a^i(n), is applied to the ENV subsystem representing a given real or virtual environment in which OP is interacting.
    In the backwards direction, the stimulus actions generated by OP,a(n), and represented bya^(n), receives a group of reactions from the ENV subsystem that can be characterized in the model by the set of signals expressed by
    o(n)=o1(n),,oi(n),,oNENV(n),
    whereNENV is the number of stimulus signals andoi(n) isi-th stimulus signal at then-th instantts. Reaction signals grouped intoo(n) can be in the form of strength, touch, temperature, etc.
    Reaction signals are captured by the SD that turns this information into electrical signals from real or virtual sensors, if the SD is in a virtual reality environment. After capturing this information the SD transmits these signals to the HSD. In the model presented inFigure 1, the signals generated by the SD are expressed as
    g(n)=g1(n),,gi(n),,gNSD(n),
    wheregi(n) is thei-th signal generated by the SD at then-th instant of time,ts andNSD is the amount of signals. The HSD in turn processes this information and sends to the NW subsystem through the arrayh(n), expressed by
    h(n)=h1(n),,hi(n),,hNHSDb(n),
    wherehi(n) is thei-th signal generated by HSD at then-th instant of time,ts andNHSDb is the amount of signals.
    The signal received by the HMD through the backwards channel of the NW subsystem can be expressed as
    q(n)=q1(n),,qi(n),,qNHSDb(n),
    where
    qi(n)=hindib(n)+rib(n)
    in which,rib(n) represents an added noise anddib(n) represents a delay associated with thei-th information transmitted inq(n) by the backwards channel. Similarly to the forward channel, noise can also be characterized as a random variable Gaussian of zero mean and varianceσrb2 and delays are characterized as integers withts granularity. The HMD processes theq(n) signal information and generates a set of control signals that will act on the MD and can be characterized as
    p(n)=p1(n),,pi(n),,pNHMDb(n),
    wherepi(n) is thei-th signal generated by the HMD at then-th instant of timets andNHMDb is the number of signals. The MD in turn will synthesize the reaction stimuli generated by the environment, i.e., the ENV subsystem. Based on the model, it is possible to characterize these reaction stimuli as a signal expressed by
    o^(n)=o^1(n),,o^i(n),,o^NENV(n),
    whereo^i(n) is an estimate of thei-th stimulusoi(n) generated in the ENV subsystem. Examples of reaction stimuli generated or synthesized by MD are touch, strength and temperature.
    In addition to the latency associated with the NW subsystem that characterizes the communication medium between the OP and ENV subsystems, the MD, HMD, HSD, and SD subsystems also add latency to the system. Based on the work presented in [13,14] these components represent30% of total latency. The latency of the MD and SD subsystems are associated with sensors and actuators that can be mechanical, electrical, electromechanical and other variations. HMD and HSD latencies are associated with the processing time of the algorithms in these devices and depending on the type of hardware and implementation architecture this latency can be considerably reduced.

    4. PHANToM Omni Device Model (MD & SD)

    Based on the scheme presented inFigure 1, this section presents details associated with the MD and SD used as reference for the hardware system proposed in this research. The MD and SD are characterized as a three degree of freedom robotic manipulator, 3-DoF, called the PHANToM Omni [37] (Figure 2). The PHANToM Omni has been widely used in literature as presented in [38,39]. In this work two of this devices are going to be used: one as an MD and the other as a SD.
    As can be seen fromFigure 3, the PHANToM Omni physical structure is formed by a base, an arm with two segmentsL1 andL2 which are interconnected by three rotary jointsθ1,θ2 andθ3 and a tool. The variables presented inFigure 3 are represented by:L1 = 0.135 mm,L2 =L1,L3 = 0.025 mm andL4=L1+A whereA = 0.035 mm as described in [40]. These detailed features of the device are essential for performing the kinematics and dynamic calculations.

    4.1. Forward Kinematics

    The kinematics of manipulative devices makes use of the relationship between operational coordinates and joint coordinates. Forward kinematics (FK) correlates the angular variables of the joints with the Cartesian system. That is, given an array of joint coordinates it is possible to determine the spatial position of the tool through the equation that can be expressed by
    x=sin(θ1)(L2sin(θ3)+L1cos(θ2)),
    y=L2cos(θ3)+L1sin(θ2)+L3,
    z=L2cos(θ1)sin(θ3)+L1cos(θ1)cos(θ2)L4
    wherex,y andz are variables that determine the spatial position of the tool in the Cartesian plane.

    4.2. Inverse Kinematics

    In inverse kinematics (IK), the relationship between the joint angles and the Cartesian system is reversed, that is, given the spatial position of the tool it may be possible to determine the joint coordinates. The solution to this process is not as straightforward as in the direct kinematics. In direct kinematics, the position of the tool is determined solely by the displacements of the joints. In inverse kinematics, equations are composed of nonlinear calculations formed by trigonometric functions. Depending on the manipulator structure, multiple solutions may be possible for the same tool position, or there may be no solution for a particular set of tool positions. Based on the works [40,41,42], the value ofθ1 can be defined through the equation expressed by
    θ1=atan2x,z+L4
    wherex andz represent coordinates in the Cartesian plane andL4 corresponds to the size of the the arm segments, as shown inFigure 3.
    To calculate the other two jointsθ2 andθ3 it is necessary to perform intermediate calculations. Thus, one can obtainR,r,β,γ andα through the equations
    R=x2+(z+L4)2,
    r=(x2+z+L4)2+(yL3)2,
    γ=acosL12L22+r22L1r,
    β(n)=atan2(yL3,R),
    and
    α=acosL12+L22r22L1L2.
    After performing the intermediate calculations it is possible to calculateθ2 through the equation
    θ2=γ+β.
    Finally, the value corresponding to theθ3 joint can be obtained through the equation
    θ3=θ2+απ2.

    4.3. Kinesthetic Feedback Force

    The kinesthetic feedback force allows the environment to be “felt”, i.e., when the SD comes into physical contact with an object, the MD will receive a counter force. This model can be implemented through the equation
    τ=JTF,
    whereτ defines the torque array that will be applied to each joint (θ1,θ2 andθ3) of the PHANToM Omni associated with the MD,JT is the transpose of the Jacobian matrix andF is the force array resulting from the interaction of SD with ENV. The torque arrayτ can be expressed as
    τ=τ1,τ2,τ3.
    TheJ Jacobian matrix incorporates structural information about the handler and it is identified as
    J=J11J12J13J21J22J23J31J32J33,
    where
    J11=cos(θ1)(L2sin(θ3)+L1cos(θ2)),
    J21=0,
    J31=L1cos(θ2)sin(θ1)L2sin(θ3)sin(θ1),
    J12=L1sin(θ1)sin(θ2),
    J22=L1cos(θ2),
    J32=L1sin(θ2)cos(θ1),
    J13=L2sin(θ1)cos(θ3),
    J23=L2sin(θ3),
    and
    J33=L2cos(θ3)cos(θ1).
    The force arrayF is expressed as
    F=Fx,Fy,Fz
    and can be obtained through sensors internal or external to the device. According to Equation (26), theτ torque array representing the resulting force at each joint can be defined as
    τ1=J11Fx+J21Fy+J31Fz,
    τ2=J12Fx+J22Fy+J32Fz,
    and
    τ3=J13Fx+J23Fy+J33Fz.

    5. Simulated Tactile Internet Model

    Figure 1 andFigure 4 details the structure used for the hardware design in FPGA, in which a given operator, OP, handles a PHANToM Omni on the master side, MD, which is connected to HMD that, in this case, is a dedicated FPGA hardware. Data are transmitted through the network, the NW subsystem, to HSD which is also a dedicated hardware in FPGA. The HSD is also connected to a PHANToM Omni that interacts with the environment, the ENV subsystem.Figure 4 also details the backwards direction from the ENV and the OP.
    The OP is modeled as an information source responsible for generating a spatial trajectory through discrete signals expressed in thea(n) array. At eachn-th instantts the OP sends three variablesxOP(n),yOP(n) andzOP(n) representing the positioning of the MD tool (Figure 2 andFigure 3) in the Cartesian space an this is expressed by
    a(n)=xOP(n),yOP(n),zOP(n).
    Both devices, master and slave PHANToM Omni, and the structures that form the system were modeled and simulated on Matlab/Simulink [43] and Xilinx System Generator. This step simulates the spatial movement of the MD tool by the operator, that is, at each instant of time,ts, a spatial movement is performed and a new signala(n) is generated by the OP.
    The PHANToM Omni has encoders at its three joints that translate spatial positioning at the three anglesθ1,θ2 andθ3 (Figure 2 andFigure 3). Thus, based onFigure 4, it can be said that MD converts the signala(n) into a signal expressed as
    b(n)=θ1MD(n),θ2MD(n),θ3MD(n)
    and forwards it to the HMD at everyn-th instant of timets.
    Then, as can be seen inFigure 4, theb(n) signal propagates to the HMD, which on receiving the signal transforms the joint positioning angles,b(n), into spatial position by calculating the FK according to Equations (15)–(17). All equations are implemented in FPGA through a hardware module called the FK-HMD. The equations are implemented in parallel which can significantly increase the processing time. The use of FK is motivated by an reduction of the amount of information utilized, i.e., for aN-DoF robotic manipulatorN joint angles will be generated and that can be converted into only three values associated with the spatial position of the tool,x,y andz. On the other hand, the use of this strategy increases the amount of calculations to be performed by the MD, which is compensated by the parallel implementation of the algorithm in FPGA. It is essential to note that the use of custom hardware operating in parallel allows processing time not to be substantially affected byN.
    Based onSection 3, after the FK calculation by the FK-HMD hardware module, a new discrete signal is created that can be expressed by
    c(n)=xHMD(n),yHMD(n),zHMD(n)
    wherexHMD(n),yHMD(n) andzHMD(n) are the values of the spatial coordinate array generated by the HMD to be sent to HSD via the communication medium, NW. The FK-HMD hardware module generates a newc(n) array everyn-th instant of time.
    After the transmission through the forward channel, here called FC, the signal received by the HSD can be expressed as
    v(n)=xHSD(n),yHSD(n),zHSD(n).
    Based on Equation (5) the spatial coordinate signal received by HSD can be expressed as
    xHSD(n)=xHMDndxf(n)+rxf(n),
    yHSD(n)=yHMDndyf(n)+ryf(n),
    and
    zHSD(n)=zHMDndzf(n)+rzf(n)
    wheredxf(n),dyf(n),dzf(n),rxf(n),ryf(n) andrzf(n) are the delays and noises associated with CF.
    As, in this case, the Slave PHANToM Omni, SD, copies the movement of the master PHANToM Omni, MD, it is necessary for the HSD to perform a feedback control system on the three joints of the PHANToM Omni slave, here expressed as
    θSD(n)=θ1SD(n),θ2SD(n),θ3SD(n)
    that is,θ1SD(n),θ2SD(n),θ3SD(n) are control variables associated with DS. The control system illustrated inFigure 4 as FCS shall minimize the error,eFCS(n), betweenθSD(n) and the reference signalθHSD(n) characterized as
    θHSD(n)=θ1HSD(n),θ2HSD(n),θ3HSD(n)
    where
    e(n)=θHSD(n)θSD(n)and
    and
    e1FCS(n)e2FCS(n)e3FCS(n)=θ1HSD(n)θ2HSD(n)θ3HSD(n)θ1SD(n)θ2SD(n)θ3SD(n).
    TheθSD(n) signal is obtained from the SD via sensors (encoders) at the SD joints and theθHSD(n) signal is obtained from the IK-HSD hardware module shown inFigure 4. This hardware module implements all inverse kinematics equations presented inSection 4.2, i.e., Equations (18)–(25). There are several techniques and approaches that can be used in the FCS module ranging from more traditional techniques such as a proportional-integral-derivative controller [44] to more innovative artificial intelligence based techniques [45,46].
    The CPD-HSD and JPD-HSD modules, illustrated inFigure 4, represent the algorithms of prediction and detection in cartesian space and joints, respectively. These modules are responsible for minimizing the latency and noise added by the FC associated with the tactile internet system (Equations (46)–(48)). Depending on the prediction and detection technique used, the HSD may use only one of the modules, namely the CPD-HSD or JPD-HSD. There is still no consensus about whether the Cartesian space or joints is the best for minimizing latency and noise inserted by the channel. There are several works in the literature that present proposals using only one of the spaces and proposals that try to use the information from both simultaneously.
    Similarly to the FCS module, approaches ranging from the more traditional techniques up to more innovative techniques based on artificial intelligence have been used in the CPD-HSD and JPD-HSD modules [47,48,49,50,51]. Thus, it can be said thatθHSD(n) is an estimate of theb(n) signal generated by the MD.
    At eachn-th time, the FCS acts on the SD through theu(n) signal, detailed inFigure 1 andFigure 4, which in the case of the PHANToM Omni can be expressed as
    uHSD(n)=τ1HSD(n),τ2HSD(n),τ3HSD(n)
    whereτiHSD(n) is thei-th torque applied everyi-th joint. The FCS will act as a tracking mechanism, making the SD follow the path traveled by the MD. Finalizing the data stream associated with the forward channel, it can be said that thea^(n) signal is formed by an estimate of the spatial position generated by the OP,a^(n), i.e.,
    a^(n)=x^OP(n),y^OP(n),z^OP(n).
    The interaction of the PHANToM Omni, SD, with ENV can vary from free movement to physical contact. When some kind of physical contact occurs, the SD detects the touch and sends this information back to the HSD. As per the model detailed inFigure 4 the ENV sends back to SD the information associated with the contact force in the spatial plane, expressed here as,
    o(n)=FxENV(n),FyENV(n),FzENV(n).
    The value associated with the contact force information can be measured directly through SD-coupled force sensors or indirectly estimated through other types of sensors that may be SD-coupled or inserted into the environment [52]. In the case of the model presented inFigure 4, the SD sends to HSD the objects surface’s spatial positions through sensors spread in the ENV. The signal expressed as
    sOBJ(n)=xOBJ(n),yOBJ(n),zOBJ(n)
    represents the spatial position of the closest object from the SD tool. Thus, based on the information already described, everyn-th timets the SD sends to the HSD a signal characterized by the arrayg(n) expressed as
    g(n)=θSD(n),sOBJ(n).
    In the HSD, when the signalg(n) is received, the Split module separates theθSD(n) signal and sends it to the FCS and the FK-HSD hardware module. In addition, the signalsOBJ(n) is sent to the FB-HSD hardware module, as detailed inFigure 4. The FK-HSD hardware module performs the forward kinematics calculation similarly to FK-HMD and thus the current spatial position of the SD tool in the environment, ENV, can be obtained. Everyn-th instantts FK-HSD generates a signal expressed as
    l(n)=[xENV(n),yENV(n),zENV(n)]
    wherexENV(n),yENV(n) andzENV(n) are the spatial position of the tool in the ENV module fromθSD(n). The FBF-HSD hardware module implements the calculations associated with the generation of the feedback force from the contact between the tool and the object. Based on the work presented in [52] the contact force, represented by theh(n) signal, can be expressed as
    h(n)=FxHSD(n),FyHSD(n),FzHSD(n),
    where
    FxHSD(n)=hx(n)xOBJ(n)xENV(n),
    FyHSD(n)=hy(n)yOBJ(n)yENV(n),
    and
    FzHSD(n)=hz(n)zOBJ(n)zENV(n).
    In these equations, the constantshx(n),hy(n) andhz(n) represent the elasticity coefficients associated with the object. It is important to note that in this model theh(n) signal is a synthesized version of the real force value here characterized by theo(n) array.
    After the feedback force calculation process, as illustrated inFigure 4, theh(n) signal is transmitted to the HMD via the backwards channel (BC) which, similarly to FC, adds latency and noise. The signal received by the HMD can be expressed as
    q(n)=[FxHMD(n),FyHMD(n),FzHMD(n)]
    where
    FxHMD(n)=FxHSDndxb(n)+rxb(n),
    FyHMD(n)=FyHSDndyb(n)+ryb(n),
    and
    FzHMD(n)=FzHSDndzb(n)+rzb(n)
    wheredxb(n),dyb(n),dzb(n),rxb(n),ryb(n) andrzb(n) are the latencies and the noises associated with the BC.
    Similarly to HSD, the HMD will minimize the effect of latency and noise from operations of Cartesian and joint space. For HMD, the calculations associated with the Cartesian space will be performed by the CPD-HMD module and associated with the joint space by the JPD-HMD module. In addition to the prediction and detection calculations, the HMD must transform the force signals received through signalq(n) into a torque to be applied to the MD joints which is accomplished by the KFF-HMD hardware module. KFF-HMD implements the Equations (39)–(41) presented inSection 4.3 and generate the signal expressed as
    p(n)=τ1HMD(n),τ2HMD(n),τ3HMD(n)
    whereτiHMD(n) is the torque associated with thei-th joint of the MD. Since the PHANToM Omni is a haptic device, it already has a built-in control system, FCS, which uses as reference signal the torques associated with thep(n) array.
    After applying the torques to the MD joints via thep(n) signal, the OP receives the feedback force signal, in other words, it feels the object touched by the SD in the ENV. This sensation is identified in by theo^(n) signal expressed as
    o^(n)=F^xENV(n),F^yENV(n),F^zENV(n).
    As illustrated inFigure 4, the MD, HMD, NW, HSD, and SD subsystems have the following runtimes:tMD,tHMD,tNW,tHSD andtSD, respectively. The sum of these, times taking into account the forward direction (between OP and ENV) and the backwards direction (between ENV and OP), represent the total system latency that can be expressed as
    tlatency=2tMD+tHMD+tNW+tHSD+tSD.
    Some works presented in the literature review agree that the ideal requirement is thattlatency1ms, on the other hand, other works point out that the latency requirement can be expresses astlatency10ms, depending on the application [9,10,11,12,53]. Considering that30% of the total latency timetlatency is spent by MD, HMD, HSD, and SD, it can be understood that
    tMD+tHMD+tHSD+tSD0.3tlatency2.
    Assuming an equal time division among MD, HMD, HSD, and SD it is possible to affirm that the time associated with hardware,thardware, whether the master, HMD, or the slave device, HSD, can be expressed as
    tHMD=tHSD=thardware0.3tlatency8.
    Taking the1ms constraints into consideration and substituting this value in Equation (71), it is possible to affirm that the hardware time,thardware, must meet thethardware37.5μs constraint for all cases (condition1ms) or thethardware375μs constraint for some specific cases (10ms condition).
    Recent studies from the literature show that the1ms restriction (thardware37.5μs) is difficult to achieve using hardware devices based on embedded systems such as microprocessors and microcontrollers [26,54]. The10ms restriction (thardware375μs) is achieved in specific cases where SD is a virtual environment and HSD is a high performance processor computer [53]. Thus this work aims to minimize the execution time in HMD,tHMD, and HSD,tHSD, using FPGA. In other words, the target is to achieve athardware37.5μs.
    This paper presents a hardware reference model for the FK-HMD, KFF-HMD, IK-HSD, FK-HSD, and FBF-HSD modules illustrated inFigure 4. The complete model that will be presented in detail in the next section makes use of a parallel implementation methodology in which high throughput is prioritized, i.e., the execution time of the modulestFK,tKFF,tIK andtFBF, illustrated inFigure 4.
    This work does not propose dedicated hardware reference models for the CPD-HSD, JPD-HSD, CPD-HMD, JPD-HMD and FCS modules as there are several techniques and algorithms that can be applied to them. However, considering the hardware time constraints,thardware, it is noted that it is also important to use dedicated hardware structures with as FPGA-based circuits for these modules. Studies in the literature foresee the use of AI based techniques for these modules; however, it is essential to note that AI techniques and algorithms implemented on general purpose processor-based hardware platforms can lead to higher processing times [19,20,21,22,23,24,25].

    6. Implementation Description

    The FK-HMD and KFF-HMD hardware modules associated with the master device (HMD) and the IK-HSD, FK-HSD, and FBF-HSD hardware modules associated with the slave device (HSD) (Figure 4) were designed using a parallel implementation in order to prioritize the processing speed. The implementations were designed in FPGA using a hybrid scheme with fixed point and floating point representation in distinct parts of the proposed architecture. In the portions that adopt the fixed point format, the variables follow a notation expressed as[sV.N] indicating that the variable is formed byV bits of whichN bits are intended for the fractional part and thes symbol indicates that the variable is signed. In this case, the number of bits intended for the integer part isVN1. For the representation of floating point variables, the notation [F32] is adopted. Most of the implemented circuits were designed using a 32-bit single precision (IEEE754) floating point format representation. The fixed point format was used only on the circuit that implements the trigonometric function block (TFB) module, as illustrated inFigure 5. TFB is the module responsible for performing trigonometric operations through the hardware implementation of CORDIC (COordinate Rotation DIgital Computer) [55]. For that, a Xilinx CORDIC IP Core was used. This implementation uses data representation in a fixed-point format using the[s16.13] representation.
    As illustrated inFigure 5, the TFB module receives data from external circuits in the 32-bits floating point standard. A conversion to the fixed point numeric representation type represented by the[s16.13] notation is performed through the Float to Fixed-point (F2FP) module that has been implemented in hardware. After the CORDIC hardware operations are performed, the data in the fixed point format is transformed back to the 32-bit floating point through the Fixed-point to Float (FP2F) module which was also implemented in hardware.
    Several of the proposed methods to be presented use the constantsL1,L2,L3 andL4. They represent physical characteristics of the PHANToM Omni device as illustrated inFigure 2. These constants use the 32-bit floating point numeric representation.

    6.1. Forward Kinematics (FK-HMD and FK-HSD)

    As illustrated inFigure 4, both the hardware associated with the master device (HMD) and the hardware associated with the slave device (HSD) implement forward kinematics through the FK-HMD and FK-HSD modules, respectively. These modules have the same FPGA-implemented circuit, differing only in the input and output signals. They are designed to work with three input signals, one for each component of the angular positioning of the device’s joints, and three output signals, one for each component of the the positioning of the device’s tool in the Cartesian system. The input signals areθ1[F32](n),θ2[F32](n) andθ3[F32](n) and the output signals arex[F32](n),y[F32](n) andz[F32](n). For FK-HMD, the input signals represent theθ1MD[F32](n),θ2MD[F32](n) andθ3MD[F32](n) signals, and the output signals represent thexHMD[F32](n),yHMD[F32](n) andzHMD[F32](n) signals. In the case of the FK-HSD module, the input signals represent the signalsθ1SD[F32](n),θ2SD[F32](n) andθ3SD[F32](n) and the output signals represent the signalsxENV(n),yENV(n) andzENV(n). At everyn-th instant all the computation performed in order to calculate the forward kinematics are executed in parallel.
    Based on Equation (15), the algorithm used for calculatingx[F32](n) was implemented in FPGA through the generic circuit illustrated inFigure 6. The circuit was designed to work with three input signalsθ1[F32](n),θ2[F32](n) andθ3[F32](n) and one output signal. These signals are forwarded to TFB sub circuits where sine and cosine calculations are performed. For this process the constantsL1 andL2, three multipliers, one inverter and one adder are used.
    The calculation ofy[F32](n) based on Equation (16) was implemented in FPGA through the generic circuit shown inFigure 7. The circuit was designed to work with two input signalsθ2[F32](n) andθ3[F32](n) and one output signal. These signals are routed to TFB sub circuits to perform sine and cosine calculations. In the process flow two multipliers, two adders, one inverter and the constantsL1 andL2 are used.
    The generic circuit illustrated inFigure 8 was implemented in FPGA to perform the calculation ofz[F32](n) and it is based on Equation (17). The circuit is designed to work with three input signalsθ1[F32](n),θ2[F32](n) andθ3[F32](n) and one output signal. These signals are routed to TFB sub circuits in order to perform sine and cosine calculations. In the process flow four multipliers, two adders, one inverter and the constantsL1,L2 andL4 are used.
    In the FK-HMD module theθ1MD[F32](n),θ2MD[F32](n) andθ3MD[F32](n) input signals are received through theb(n) array (Equation (43) inSection 5), then all calculation are performed in parallel resulting in thec(n) array (Equation (44) inSection 5) with thexHMD[F32](n),yHMD[F32](n) andzHMD[F32](n) signals as shown inFigure 4. For the FK-HSD module theθ1SD[F32](n),θ2SD[F32](n) andθ3SD[F32](n) input signals enter the module via theθSD(n) array (Equation (49) inSection 5) and after performing all parallel computations, the resulting signalsxENV(n),yENV(n) andzENV(n) are output from the module via thel(n) array (Equation (49) inSection 5).

    6.2. Inverse Kinematics (IK-HSD)

    The hardware associated with the slave device (HSD) implements the inverse kinematics through the IK-HSD module, as shown inFigure 4. The IK-HSD FPGA-implemented circuit is designed to work with three input signalsxHSD[F32](n),yHSD[F32](n) andzHSD[F32](n) and three output signalsθ1HSD[F32](n),θ2HSD[F32](n) andθ3HSD[F32](n). However, to calculateθ2HSD[F32](n) (Equation (24)) andθ3HSD[F32](n) (Equation (25)) it is first necessary to perform intermediate calculations to obtain the values ofR[F32](n),r[F32](n),β[F32](n),γ[F32](n) andα[F32](n)
    Based on Equations (18), (24) and (25), algorithms for calculatingθ1HSD[F32](n),θ2HSD[F32](n) andθ3HSD[F32](n) were implemented in FPGA through the generic circuits illustrated inFigure 9,Figure 10 andFigure 11 respectively.
    As already described, and according to the illustrations shown inFigure 10 andFigure 11, to perform the calculations ofθ2HSD[F32](n) andθ3HSD[F32](n) it is first necessary to perform the intermediate calculations ofγ[F32](n) (Equation (21)),β[F32](n) (Equation (22)) andα[F32](n) (Equation (23)). However, these calculations depend on the calculation ofR[F32](n) andr[F32](n). Then, when the IK-HSD module receives the input signals at everyn-th instant the circuit shown inFigure 9 performs the calculation ofθ1HSD[F32](n) in parallel with the generic circuits illustrated inFigure 12 andFigure 13 which were implemented in FPGA to perform the calculation ofR[F32](n) andr[F32](n) based on Equations (19) and (20).
    The circuit shown inFigure 12 used to obtainR[F32](n), is designed to work with two input signalsxHSD[F32](n) andzHSD[F32](n) and one output signal. This design contains two multipliers, two adders, theL4 constant and a sub-circuit called Sqrt, which was implemented in hardware to calculate the square root.
    Ther[F32](n) calculation is performed through the circuit shown inFigure 13. This circuit is designed to work with three input signalsxHSD[F32](n),yHSD[F32](n) andzHSD[F32](n) and one output signal. The circuit consists of three multipliers, four adders, one inverter, the constantsL3 andL4, and, again, theSqrt sub-circuit.
    After the parallel processing ofθ1HSD[F32](n),R[F32](n) andr[F32](n), the circuits responsible for calculatingγ[F32](n),β[F32](n) andα[F32](n) are also executed in parallel through the FPGA implementations of the generic circuits illustrated inFigure 14,Figure 15 andFigure 16. The value ofγ[F32](n) is obtained through the circuit shown inFigure 14 which is based on Equation (21). The circuit is designed to work with an input signalr[F32](n) and one output signal. It consists of five multipliers, two adder, one divisor, one TFB sub-circuit to calculate the arccosine and the constantsL1 andL2.
    The circuit for obtainingβ[F32](n) illustrated inFigure 15 is based on Equation (22) and is designed to work with two input signalsyHSD[F32](n) andR[F32](n) and one output signal. The circuit is composed of one adder, one inverter, a TFB sub-circuit to perform the arctangent calculation and theL3 constant.
    The value ofα[F32](n) is obtained from the circuit shown inFigure 16 which is based on Equation (23) and is designed to work with an input signalr[F32](n) and one output signal. The circuit is composed of five multipliers, two adders, one inverter, one divider, one TFB sub-circuit to perform the arccosine calculation and the constantsL1 andL2.
    To complete the process, after performing the calculations ofβ[F32](n),γ[F32](n) andα[F32](n), it is possible to obtain theθ2HSD[F32](n) andθ3HSD[F32](n) values in parallel through the circuits shown inFigure 10 andFigure 11.

    6.3. KKinesthetic Feedback Force (KFF-HMD)

    As illustrated inFigure 4, the hardware associated with the master device (HMD) implements the kinesthetic feedback force through the KFF-HMD module. Based on Equation (26), the KFF-HMD module was implemented in FPGA through the generic circuit illustrated inFigure 17. This circuit is composed of sub-circuits that correspond to parts of Equation (26). The sub-circuit called JM, described in Equation (28), is responsible for calculating the Jacobian matrix. The KFF sub-circuit makes the relationship between the Jacobian matrix (JM) module and the force array from Equation (38).
    The circuit shown inFigure 17 has the input signalsθ1MD[F32](n),θ2MD[F32](n) andθ3MD[F32](n) that are received from the master device (MD) and also theFx[F32](n),Fy[F32](n) andFz[F32](n) signals that are received from the hardware associated to the slave device (HSD). The three output signals are:τ1HMD[F32](n),τ2HMD[F32](n) andτ3HMD[F32](n).
    The JM module that represents the sub-circuit responsible for performing the Jacobian matrix calculation consists of nine elements:J11[F32](n),J21[F32](n),J31[F32](n),J12[F32](n),J22[F32](n),J32[F32](n),J13[F32](n),J23[F32](n) andJ33[F32](n). The calculation ofJ21[F32](n) based on Equation (30) does not have an associated circuit since its value is 0, i.e.,J21[F32](n)=0. Based on Equation (29), the algorithm for calculatingJ11[F32](n) was implemented in FPGA according to the generic circuit illustrated inFigure 18. The circuit was designed to work with three input signals and one output signal. It uses the constantsL1 andL2 and has three TFB sub-circuits: two for performing the cosine calculation and one for obtaining the sine value.
    The calculation ofJ31[F32](n), based on Equation (31), was implemented in FPGA according to the generic circuit illustrated inFigure 19. The circuit was designed to work with three input signals and one output signal. The circuit has three TFB modules, two for sine calculation and one for cosine value and uses theL1 andL2 constants.
    The generic circuit illustrated inFigure 20 was implemented in FPGA to perform the calculation ofJ12[F32](n) and is based on Equation (32). The circuit was designed to work with two input signals and one output signal. The circuit has two TFB sub circuits to perform sine calculation and uses theL1 constant.
    Based on Equation (33), the algorithm for calculatingJ22[F32](n) was implemented in FPGA according to the generic circuit illustrated inFigure 21. The circuit was designed to work with one input signal and one output signal. The circuit has a TFB sub-circuit to perform cosine calculation and uses the constantL1.
    The calculation ofJ32[F32](n) based on Equation (34) was implemented in FPGA according to the generic circuit illustrated inFigure 22. The circuit was designed to work with two input signals and one output signal. In addition to the use of the constantL1, the circuit has two TFB sub circuits, one for performing the cosine calculation and one for the sine.
    The generic circuit illustrated inFigure 23 was implemented in FPGA to perform the calculation ofJ13[F32](n) and which is based on Equation (35). The circuit was designed to work with two inputs and one output signal. In addition to using the constantL2, the circuit has two TFB sub circuits, one for performing cosine calculation and one for the sine.
    Based on Equation (36), the algorithm for calculatingJ23[F32](n) was implemented in FPGA according to the generic circuit illustrated inFigure 24. The circuit was designed to work with one input signal and one output signal. The circuit contains a TFB sub-circuit to perform the sine calculation and uses theL2 constant.
    The calculation ofJ33[F32](n), based on Equation (37), was implemented in FPGA according to the generic circuit illustrated inFigure 25. The circuit was designed to work with two input signals and one output signal. In addition to the use of constantL2, the circuit has two TFB sub-circuits to perform the cosine calculation.
    All displayed circuits related to the JM sub-circuits are calculated in parallel at eachn-th instant. The results are then sent to the KFF module which also performs the calculations ofτ1HMD[F32](n),τ2HMD[F32](n) andτ3HMD[F32](n) in parallel. The KF circuit shown inFigure 17 is designed to work with twelve input signals and three output signals.
    Based on Equation (39), the algorithm for calculatingτ1HMD[F32](n) was implemented in FPGA according to the generic circuit illustrated inFigure 26. The circuit was designed to work with six inputs and one output.
    The calculation ofτ2HMD[F32](n) based on Equation (40) was implemented in FPGA according to the generic circuit illustrated inFigure 27. The circuit was designed to work with six inputs and one output.
    The generic circuit illustrated inFigure 28 has been implemented in FPGA to perform the calculation ofτ3HMD[F32](n) and it is based on Equation (41). The circuit was designed to work with six inputs and one output.

    6.4. Feedback Force (FBF-HSD)

    As illustrated inFigure 4 the hardware associated with the slave device (HSD) implements the feedback force via the FBF-HSD module. The FPGA-implemented circuit of the FBF-HSD module is designed to work with six input signals and three output signals. Among the six input variables,xOBJ[F32](n),yOBJ[F32](n) andzOBJ[F32](n) represent the spatial position of the closest object to the SD tool and the other threexENV[F32](n),yENV[F32](n) andzENV[F32](n) represent the spatial position of the SD tool in the ENV module. The three outputsFxHSD[F32](n),FyHSD[F32](n) andFzHSD[F32](n) represent the touch of the tool on the object. The variableshx,hy andhz represent the elasticity coefficients associated with the object. All FBF-HSD module calculations are performed in parallel.
    Based on Equation (60), the algorithm used for calculatingFxHSD[F32](n) was implemented in FPGA according to the generic circuit illustrated inFigure 29. The circuit was designed to work with two inputs signalsxOBJ[F32](n) andxENV[F32](n) and one variablehx.
    The calculation ofFyHSD[F32](n), based on Equation (61), was implemented in FPGA according to the generic circuit illustrated inFigure 30. The circuit was designed to work with two input signalsyOBJ[F32](n) andyENV[F32](n) and one variablehy.
    The generic circuit shown inFigure 31 was implemented in FPGA to perform the calculation ofFzHSD[F32](n) and it is based on Equation (62). The circuit was designed to work with two input signalszOBJ[F32](n) andzENV[F32](n) and one variablehz.

    7. Results

    The entire tactile internet model infrastructure presented inFigure 4 was implemented with the purpose of validating the FPGA hardware implementation. A spatial trajectory that represents the data sent by the OP through thea(n) (Equation (42)) signal was created to validate the entire developed environment.
    The created trajectory performs a variation in all of the three angles of the MD articulation (Figure 3). For this, it was first considered that the MD is in the initial angular position expressed asθ1MD(0)=0,θ2MD(0)=0 andθ3MD(0)=0, which corresponds to the spatial positionxOP(0)=0,yOP(0)=0.107 andzOP(0)=0.035 of the tool as illustrated inFigure 32. Initially, the first joint is moved toθ1MD(vn)=pi/2 wherev represents a quantity of samples that is equal to 4 s, thus resulting in the positionxOP(vn)=0.132,yOP(vn)=0.107 andzOP(vn)=0.167. Then, the second joint is moved toθ2MD(vn)=pi/4 which results in the positionxOP(vn)=0.093,yOP(vn)=0.013 andzOP(vn)=0.167 and, finally, the third joint moves up toθ3MD(vn)=pi/4, thus resulting in thexOP(vn)=0.186,yOP(vn)=0.025 andzOP(vn)=0.167 position. The path created is within the limits of the device workspace and takes a total time oft1=12 s of which 4 s are used to perform the movement of each joint.
    In an effort to validate the circuits from the implemented modules in FPGA, equivalent software models were used to compare the results of both implementations. The software models use a 32-bit floating point format while the hardware modules run a parallel implementation with a hybrid representation which uses both a 32-bit floating point and a fixed point representation in different parts of the proposed architecture, as presented inSection 6. In all scenarios, the signal sampling rate (or throughput) wasRs=1ts (samples per second), wherets is the time between then-th samples.
    From the experimental results, the mean square error (MSE) between the software model and the hardware implementation proposed by this work was calculated using the MSE which can be expressed as
    MSE=1Qn=0Q1(MSW[F32](n)M[F32](n))2,
    whereQ represents the number of tested samples,MSW[F32](n) corresponds to the variables of the software model andM[F32](n) corresponds to the variables of the model implemented in FPGA.
    The quantity of tested samples for the results presented here isQ=1200, which correspond to the quantity of samples of the generated trajectory. The variables that correspond to the hardware modelM[F32](n) vary according to the module in which it was implemented. In the case of forward kinematics, as the FK-HMD and FK-HSD modules have the same implementation, the values corresponding to the variablesx[F32](n),y[F32](n) andz[F32](n) change according to the respective module. For the FK-HMD module, these variables correspond toxHMD[F32](n),yHMD[F32](n) andzHMD[F32](n) and for the FK-HSD module the same variables correspond toxENV[F32](n),yENV[F32](n) andzENV[F32](n) as presented inSection 6. For inverse kinematics, the variablesM[F32](n) of the IK-HSD module correspond toθ1HSD[F32](n),θ2HSD[F32](n) andθ3HSD[F32](n). For the kinesthetic feedback force, the variablesM[F32](n) of the KFF-HMD module correspond toτ1HMD[F32](n),τ2HMD[F32](n) andτ3HMD[F32](n). For the feedback force, the variablesM[F32](n) of the FBF-HSD module correspond toFxHSD[F32](n),FyHSD[F32](n) andFzHSD[F32](n). Finally, in the MSE equation theMSW[F32](n) corresponds to the same variables as the software-implemented model.
    Table 1 shows the mean square error between the software models and the hardware ones proposed in this paper. The obtained MSE-related results prove to be noteworthy, showing that the forward kinematics (FK-HMD and FK-HSD), inverse kinematics (IK-HSD), kinesthetic feedback force (KFF-HMD) and feedback force (FBF-HSD) modules had an acceptable response, even when using a hybrid representation, compared to the software model that uses a floating point representation. It can be observed that for the variables of the FK-HMD and FK-HSD modules the error was in the range of1008, for the IK-HSD module the error was of1006, for the variables of the KFF-HMD module the error was of1007 and for the FBF-HSD module the error was in the range of1016. These values demonstrate that the FPGA implementations presented an equivalent behavior to the software models.
    In a hardware implementation, it is important to analyze some requirements post-synthesis such as available hardware usage and the execution time. In the case of FPGAs, the resources are measured through the use of lookup tables (LUTs), Registers and Digital Signal Processors (DSPs) units, to name a few. After validating the hardware-implemented models, synthesis results were obtained using the implementation designed for an FPGA Xilinx Virtex 6 XC6VLX240T-1FF1156. The used Virtex 6 FPGA has37,680 slices that group301,440 flip-flops,150,720 logical cells that can be used to implement logical functions or memories, and 768 DSP cells with multipliers and accumulators. The implementations and results used the Matlab/Simulink and the Xilinx System Generator.
    Table 2 presents the post-synthesis results related to FPGA resource utilization, sampling rate, and throughput for the modules FK-HMD, KFF-HMD, FK-HSD, IK-HSD, and FBF-HSD. The first column shows the name of the module, the next three columns called registers, LUTs and multipliers represent the amounts of resources used in the FPGA. The column register represents the number of flip-flops that were used, followed by the total percentage used. The column LUTs represents the number of LUTs that were used, followed by the total percentage used. In addition, the column multipliers represents the number of DPS48 internal multipliers that were used, followed by the total percentage used. Thets column represents the sampling rate in nanoseconds that was obtained for each hardware module. Finally, theRs column displays throughput (Rs=1ts) values in mega-samples per second for the hardware modules.
    The synthesis results presented inTable 2 show that the resources used for the FK-HMD and FK-HSD modules were the same. This means that each module, individually, used a percentage of1.01% which is equivalent to 3041 of the available hardware resources for the registers, was used5.31% with LUTs, and1.43% for embedded multipliers DSP48. The IK-HSD module had a hardware percentage consumption of1.04% for registers,9.36% for LUTs and3.52% for multipliers. The KFF-HMD module had a consumption of1.03%,8.13% and6.25% for registers, LUTs and multipliers, respectively. Finally, the FBF-HSD module used a percentage of0.11% for registers,0.82% for LUTs and1.17% for multipliers.
    Based on data presented inTable 2, the HMD modules (FK-HMD and KFF-HMD) that is associated with the MD device has consumed 6154 (2.04%) for register,20,259 (13.44%) for LUTs and 59 (7.68%) for multipliers. In the case of hardware associated with the SD device, the HSD modules (FK-HSD, IK-HSD and FBF-HSD) had consumed 6513 (2.16%) for register,23,351 (15.49%) for LUTs and 47 (6.12%) for multipliers.
    The hardware resources consumed by the HMD hardware modules and the HSD hardware modules were very low. Even if all modules are implemented in single hardware, the consumption remains low. The total sum of hardware resources used in the FPGA by all modules (FK-HMD, KFF-HMD, FK-HSD, IK-HSD and FBF-HSD) was:12,667 (4.20%) for register,43,610 (28.93%) for LUTs and 106 (13.80%) for multipliers. The low hardware resources consumption demonstrates that the proposed implementations take up little hardware space in the FPGA which allows other separate implementations to be used concomitantly.
    As perTable 2, the throughput values,Rs, obtained were significant. Values of21.27MSps for the FK-HMD and FK-HSD modules,4.58MSps for the IK-HSD module,14.28MSps for the KFF-HMD module and47.61MSps for the FBF-HSD module were achieved. These results enable critical applications that demand strict time constraints, as is the case with tactile internet applications. The times presented inTable 2 show the critical path (path in the entire design with the maximum delay) on FPGA.
    InTable 3, it is possible to see the speedup obtained about latency time constraints. The first column shows the latency constraints for1ms and10ms [9,10,11,12]. The second column shows the minimum latency values required for the application to function normally (these values are the estimates obtained by Equation (71) for both time constraints). The third column shows the latency related to the hardware implementation presented here. The speedup, fourth column, is calculated using the values of minimum time, Latency Limit, for each constraint and the time of the proposed hardware. It is worth mentioning that this is an estimate to guide the calculations.
    The1ms restriction corresponds to the maximum latency limit of37.5μs for acceptable hardware performance. For the10ms constraint, the maximum limit is375μs. The valuethardware that is presented inTable 3 and according to Equation (71), corresponds to the sum of the latencies of the five implemented modules (Table 2), two modules are associated with the MD device (FK-HMD and KFF-HMD) and three modules are associated with the SD device (FK-HSD, IK-HSD, and FBF-HSD).
    Thus, the presented value of403ns inTable 3 corresponds to the sum of the two modules related to the master component, which has a total of117ns of which47ns come from the FK-HMD module and70ns from the KFF-HMD module together with the sum of the three modules referring to the slave component, which has a total of286ns of which47ns derives from the FK-HSD module,218ns from IK-HSD and21ns from the FBS-HSD module. So for the1ms constraint, the implementation presented a93× speedup relative to the37.5μs, and for the10ms constraint, the speedup was930× relatives to the375μs limit.
    The sample rates resulted from the five modules that were implemented in this work were notably fast. The values obtained contributed to the hardware meeting the time constraint limits required in a tactile internet environment. Hardware latency showed values significantly below the required constraints, as shown inTable 3. These values are well below the 30% presented in the literature and due to the fact that the communication medium demands 70% of application latency, this value can be increased as the latency of hardware devices showed to be significantly low. In other words, it can be said that the remaining latency not spent on the hardware devices can be consumed in the network.
    It is important to remember that in a more complex tactile internet environment, there are several others more algorithms to be implemented in hardware such as prediction algorithms, dynamic control, AI based techniques, etc. However, as the proposed implementations present low hardware resource consumption, other necessary modules, as the ones previously mentioned, could also be implemented in the same shared hardware since resources would still be available.
    Table 4 presents comparisons of the results obtained by the proposed implementation of this work with equivalent results found in works from the state of the art. The first column indicates the references of related works. The next two columns show the used FPGA platform and the amount of degrees of freedom of the used device. The fourth column presents the type of numerical representation used in the implementation and, finally, the last four columns present the times obtained by each reference for latency added by the forward kinematics (FK), inverse kinematics (IK), the kinesthetic force feedback (KFF) and feedback force (FBF) modules, respectively.
    As described inTable 4, a hardware model for calculating the forward kinematics of a 5-DoF device is presented in [30]. For the trigonometric calculations, a Taylor series expansion was implemented in FPGA for computing the sine, cosine, and tangent arc functions. The proposed hardware was implemented using a 32-bit floating-point representation. The total time to perform the calculations was1240ns. The calculations are performed in parallel. Comparing to the forward kinematics (FK) implementation using 32-bit floating-point proposed by this work, the speedup was 26.38× over the model presented in [30].
    The work presented in [31] shows the results of an implementation of the inverse kinematics module using floating-point 32-bit representation. Three types of implementations are presented, but only the one with the best performance was compared. For that, it was used an Altera Cyclone IV FPGA, in which a microprocessor system based on the Nios II soft–processor was build. This processor enables to perform operations such as hardware summation multiplication, subtraction division and square root. The equations allow partial parallelization of individual operations, decreasing the computation time. The kinematic model was designed to work with a 3-DoF device, and the time required to calculate is143000ns. When compared with the proposal of inverse kinematics (IK) presented in this work, which uses 32-bit floating-point representation, this implementation presented a speedup of 655.96× over in relation to the model proposed by [31].
    The kinematics models presented in [32] described inTable 4, presented data regarding the forward and inverse kinematics implementations for controlling a 6-DoF device using the 32-bit fixed-point representation. The modules were implemented using 21-bit for the fractional part and 11-bit in the integer part. For the forward kinematics (FK),3000ns are required to perform all calculations, and for inverse kinematics (IK),4500ns is required. Based on the results of the implementations presented in this section, the implementation proposed for this work using floating-point representation had a speedup of63.82× for forward kinematics and20.64× for the inverse kinematics.
    The research presented in [33] proposed a hardware implementation of inverse kinematics to control a 10-DoF device. Although the robotic model has 10 Dof, the equations for the calculations are just composed of subtraction and division calculations. Regarding trigonometric calculations, only the tangent arc is used in the equations, and the square root used through the CORDIC module. The hardware was projected using the 32-bit fixed-point representation, however the amount of bits used in the fractional part was not specified. The architecture proposed to calculate the inverse kinematics requires440ns to perform the computation. All calculations are performed by the hardware in parallel. Comparing to the inverse kinematics (IK) implementation using 32-bit floating-point proposed by this work, the speedup was2.01× over the model presented in [33]. The processing time has a lower value when considering the DoFs, but this is due to the fact that the algorithms are less complex.
    The authors in [34] present the results of fixed-point implementation for forward and inverse kinematics to control a 5-DoF device, as described inTable 4. The proposed hardware implementation uses the numerical representation of 32-bit (15-bit to fractional part) and 16-bit (7-bit to fractional part) in different parts of the modules. The equations associated with the calculation of the forward and inverse kinematics make use of the trigonometric functions sine, cosine, arctangent, and arccosine. To perform the arctangent and arccosine, the Taylor series expansion was used. The time required to perform the calculations is680ns and940ns for forward and inverse kinematics, respectively. Comparing to the floating-point implementation proposed by this work, the speedup was14.46× for forward kinematic and4.31× for inverse kinematic over the model presented in [34].
    Differently from previous works (Table 4), in [35], the authors present unique hardware for calculating forward and inverse kinematics together. In the proposed model, the 32-bit fixed-point representation was used. The total time to perform the calculation is2000ns. The time obtained was calculated taking into account the entire process duration; however, separate times for each module were not specified. Given this scenario, by adding thets FK module time that calculates forward kinematics with the IK module, the total time resulting from both implementations reaches265ns, according toTable 4. Hence, the hardware presented in the work here developed achieved a7.54× speedup over the model presented in [35].
    Differently from previous works (Table 4), in [35], the authors present unique hardware for calculating forward and inverse kinematics together. The hardware computes all calculations in parallel. The computation of forward and inverse kinematics share the same processing time. An ARM processor was used to make the communication part between the modules, and the FPGA is used to calculate the kinematics model. The CORDIC module was used to perform trigonometric calculations. In the proposed model, the 32-bit fixed-point representation was used. The total time to perform the calculation is2000ns. The time obtained was calculated taking into account the entire process duration; however, separate times for each module were not specified. Given this scenario, by adding thets FK module time that calculates forward kinematics with the IK module, the total time resulting from both implementations reaches265ns, according toTable 4. Hence, the hardware presented in the work here developed achieved a7.54× speedup over the model presented in [35].
    It can be seen fromTable 4, that none of the works from the state-of-the-art presented the hardware implementation of all four robotics algorithms that were presented here. It is also noted that just two works used the floating-point numerical representation. The floating-point implementation of robotics algorithms proposed by this work showed significant gains when compared to the works presented in the literature as shown inTable 4. The different amounts of degrees of freedom (DoF) used in the devices can somehow influence in values of sample rate and throughput. Another factor that can also influence these values is in relation to the type of FPGA that is used to perform the synthesis. Due to the fact that the implementation of this work was designed in a parallel architecture, the increase in the amount of DoF does not necessarily reflect in a significant increase in sample rate.

    8. Conclusions

    This paper presented an FPGA hardware reference model for four modules implementing robotics-associated algorithms. The FK-HMD and FK-HSD modules implement the forward kinematics, the IK-HSD module implements the inverse kinematics, the KFF-HMD module implements the kinesthetic feedback force, and the FBF-HSM module implements the feedback force. The parallel FPGA implementation of the four modules is intended to increase the tactile system’s processing speed to meet the latency constraints required for tactile internet applications. The modules were designed using a full-parallel implementation which works on a hybrid scheme that uses fixed point and floating point representation in distinct parts of the architecture. Compared to the state-of-the-art, this work describes and implements four different robotics algorithms in FPGA. The implementations presented in this work achieve higher module processing speed when compared to equivalent implementations from the state-of-the-art. All the modules presented here were analyzed based on the synthesis results, which included the FPGA resource utilization, sampling rate, and yield. Based on the synthesis results, it was observed that the implementations achieved high module processing speed, far below the latency limit of1ms. Hardware modules accelerated93× compared to the37.5μs time constraint. This work demonstrates that using embedded systems on devices such as FPGAs enables parallel algorithm implementation, thus speeding up data processing and minimizing execution time. Runtime gains can make processing time possible for critical applications that require short time constraints or a large amount of data to be processed in a short time frame.

    Author Contributions

    All the authors have contributed in various degrees to ensure the quality of this work (e.g., J.C.V.S.J., T.M., M.D. and M.A.C.F. conceived the idea and experiments; J.C.V.S.J., T.M., M.D. and M.A.C.F. designed and performed the experiments; J.C.V.S.J., S.N.S., M.F.T., T.M., M.D. and M.A.C.F. analyzed the data; J.C.V.S.J., S.N.S., M.F.T., T.M., M.D. and M.A.C.F. wrote the paper. T.M., M.D. and M.A.C.F. coordinated the project). All authors have read and agreed to the published version of the manuscript.

    Funding

    This study was financed in part by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)—Finance Code 001.

    Acknowledgments

    The authors wish to acknowledge the financial support of the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) for their financial support.

    Conflicts of Interest

    The authors declare no conflict of interest.

    References

    1. Fettweis, G. The Tactile Internet: Applications and Challenges.Veh. Technol. Mag. IEEE2014,9, 64–70. [Google Scholar] [CrossRef]
    2. Dohler, M. The tactile internet IoT, 5G and cloud on steroids. In Proceedings of the 5G Radio Technology Seminar, Exploring Technical Challenges in the Emerging 5G Ecosystem, London, UK, 15 March 2015; pp. 1–16. [Google Scholar] [CrossRef]
    3. Aijaz, A.; Dohler, M.; Aghvami, A.H.; Friderikos, V.; Frodigh, M. Realizing The Tactile Internet: Haptic Communications over Next Generation 5G Cellular Networks.arXiv2015, arXiv:1510.02826. [Google Scholar] [CrossRef] [Green Version]
    4. Berg, D.V.D.; Glans, R.; Koning, D.D.; Kuipers, F.A.; Lugtenburg, J.; Polachan, K.; Venkata, P.T.; Singh, C.; Turkovic, B.; Wijk, B.V. Challenges in Haptic Communications Over the Tactile Internet.IEEE Access2017,5, 23502–23518. [Google Scholar] [CrossRef]
    5. Moskvitch, K. Tactile Internet: 5G and the Cloud on steroids.Eng. Technol.2015,10, 48–53. [Google Scholar] [CrossRef]
    6. Holland, O.; Steinbach, E.; Prasad, R.V.; Liu, Q.; Dawy, Z.; Aijaz, A.; Pappas, N.; Chandra, K.; Rao, V.S.; Oteafy, S.; et al. The IEEE 1918.1 “Tactile Internet” Standards Working Group and its Standards.Proc. IEEE2019,107, 256–279. [Google Scholar] [CrossRef] [Green Version]
    7. Maier, M.; Chowdhury, M.; Rimal, B.P.; Van, D.P. The tactile internet: Vision, recent progress, and open challenges.IEEE Commun. Mag.2016,54, 138–145. [Google Scholar] [CrossRef]
    8. Simsek, M.; Aijaz, A.; Dohler, M.; Sachs, J.; Fettweis, G. The 5G-Enabled Tactile Internet: Applications, requirements, and architecture. In Proceedings of the 2016 IEEE Wireless Communications and Networking Conference, Doha, Qatar, 3–6 April 2016; pp. 1–6. [Google Scholar] [CrossRef]
    9. Li, C.; Li, C.P.; Hosseini, K.; Lee, S.B.; Jiang, J.; Chen, W.; Horn, G.; Ji, T.; Smee, J.E.; Li, J. 5G-based systems design for tactile Internet.Proc. IEEE2018,107, 307–324. [Google Scholar] [CrossRef]
    10. Antonakoglou, K.; Xu, X.; Steinbach, E.; Mahmoodi, T.; Dohler, M. Toward Haptic Communications Over the 5G Tactile Internet.IEEE Commun. Surv. Tutor.2018,20, 3034–3059. [Google Scholar] [CrossRef]
    11. Nasrallah, A.; Thyagaturu, A.S.; Alharbi, Z.; Wang, C.; Shao, X.; Reisslein, M.; ElBakoury, H. Ultra-low latency (ULL) networks: The IEEE TSN and IETF DetNet standards and related 5G ULL research.IEEE Commun. Surv. Tutorials2018,21, 88–145. [Google Scholar] [CrossRef] [Green Version]
    12. Simsek, M.; Aijaz, A.; Dohler, M.; Sachs, J.; Fettweis, G. 5G-enabled tactile internet.IEEE J. Sel. Areas Commun.2016,34, 460–473. [Google Scholar] [CrossRef] [Green Version]
    13. Szabo, D.; Gulyas, A.; Fitzek, F.H.; Fitzek, F.H.; Lucani, D.E. Towards the Tactile Internet: Decreasing Communication Latency with Network Coding and Software Defined Networking. In Proceedings of the European Wireless 2015; 21th European Wireless Conference, Budapest, Hungary, 20–22 May 2015; pp. 1–6. [Google Scholar]
    14. Dohler, M.; Mahmoodi, T.; Lema, M.A.; Condoluci, M.; Sardis, F.; Antonakoglou, K.; Aghvami, H. Internet of skills, where robotics meets AI, 5G and the Tactile Internet. In Proceedings of the 2017 European Conference on Networks and Communications (EuCNC), Oulu, Finland, 12–15 June 2017; pp. 1–5. [Google Scholar] [CrossRef] [Green Version]
    15. Sachs, J.; Andersson, L.A.A.; Araújo, J.; Curescu, C.; Lundsjö, J.; Rune, G.; Steinbach, E.; Wikström, G. Adaptive 5G Low-Latency Communication for Tactile InternEt Services.Proc. IEEE2019,107, 325–349. [Google Scholar] [CrossRef]
    16. Maier, M.; Ebrahimzadeh, A. Towards immersive tactile Internet experiences: Low-latency FiWi enhanced mobile networks with edge intelligence.IEEE/OSA J. Opt. Commun. Netw.2019,11, B10–B25. [Google Scholar] [CrossRef]
    17. Mekikis, P.; Ramantas, K.; Antonopoulos, A.; Kartsakli, E.; Sanabria-Russo, L.; Serra, J.; Pubill, D.; Verikoukis, C. NFV-Enabled Experimental Platform for 5G Tactile Internet Support in Industrial Environments.IEEE Trans. Ind. Inform.2020,16, 1895–1903. [Google Scholar] [CrossRef]
    18. Yu, Q.; Wang, C.; Ma, X.; Li, X.; Zhou, X. A Deep Learning Prediction Process Accelerator Based FPGA. In Proceedings of the 2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, Shenzhen, China, 4–7 May 2015; pp. 1159–1162. [Google Scholar] [CrossRef]
    19. De Souza, A.C.; Fernandes, M.A. Parallel fixed point implementation of a radial basis function network in an fpga.Sensors2014,14, 18223–18243. [Google Scholar] [CrossRef] [PubMed] [Green Version]
    20. Da Costa, A.L.X.; Silva, C.A.D.; Torquato, M.F.; Fernandes, M.A.C. Parallel Implementation of Particle Swarm Optimization on FPGA.IEEE Trans. Circuits Syst. II Express Briefs2019,66, 1875–1879. [Google Scholar] [CrossRef] [Green Version]
    21. Coutinho, M.G.F.; Torquato, M.F.; Fernandes, M.A.C. Deep Neural Network Hardware Implementation Based on Stacked Sparse Autoencoder.IEEE Access2019,7, 40674–40694. [Google Scholar] [CrossRef]
    22. Torquato, M.F.; Fernandes, M.A.C. High-Performance Parallel Implementation of Genetic Algorithm on FPGA.Circ. Syst. Signal Process.2019. [Google Scholar] [CrossRef] [Green Version]
    23. Da Silva, L.M.D.; Torquato, M.F.; Fernandes, M.A.C. Parallel Implementation of Reinforcement Learning Q-Learning Technique for FPGA.IEEE Access2019,7, 2782–2798. [Google Scholar] [CrossRef]
    24. Lopes, F.F.; Ferreira, J.C.; Fernandes, M.A.C. Parallel Implementation on FPGA of Support Vector Machines Using Stochastic Gradient Descent.Electronics2019,8, 631. [Google Scholar] [CrossRef] [Green Version]
    25. Noronha, D.H.; Torquato, M.F.; Fernandes, M.A. A parallel implementation of sequential minimal optimization on FPGA.Microprocess. Microsystems2019,69, 138–151. [Google Scholar] [CrossRef]
    26. Arjun, N.; Ashwin, S.M.; Polachan, K.; Prabhakar, T.V.; Singh, C. An End to End Tactile Cyber Physical System Design. In Proceedings of the 2018 4th International Workshop on Emerging Ideas and Trends in the Engineering of Cyber-Physical Systems (EITEC), Porto, Portugal, 11 April 2018; pp. 9–16. [Google Scholar] [CrossRef]
    27. O’Malley, M.K.; Sevcik, K.S.; Kopp, E. Improved haptic fidelity via reduced sampling period with an FPGA-based real-time hardware platform.J. Comput. Inf. Sci. Eng.2009,9, 011002. [Google Scholar] [CrossRef]
    28. Tanaka, H.; Ohnishi, K.; Nishi, H. Haptic communication system using FPGA and real-time network framework. In Proceedings of the Industrial Electronics, IECON’09, 35th Annual Conference of IEEE, Osaka, Japan, 3–7 July 2009; pp. 2931–2936. [Google Scholar]
    29. Franc, M.; Hace, A. A study on the FPGA implementation of the bilateral control algorithm towards haptic teleoperation.Autom. -J. Control. Meas. Electron. Comput. Commun.2013,54. [Google Scholar] [CrossRef]
    30. Sánchez, D.F.; Mu noz, D.M.; Llanos, C.H.; Motta, J.M. A reconfigurable system approach to the direct kinematics of a 5 dof robotic manipulator.Int. J. Reconfigurable Comput.2010,2010. [Google Scholar] [CrossRef] [Green Version]
    31. Gac, K.; Karpiel, G.; Petko, M. FPGA based hardware accelerator for calculations of the parallel robot inverse kinematics. In Proceedings of the 2012 IEEE 17th International Conference on Emerging Technologies Factory Automation (ETFA 2012), Krakow, Poland, 17–21 September 2012; pp. 1–4. [Google Scholar] [CrossRef]
    32. Wu, M.; Kung, Y.; Huang, Y.; Jung, T. Fixed-point computation of robot kinematics in FPGA. In Proceedings of the 2014 International Conference on Advanced Robotics and Intelligent Systems (ARIS), Taipei, Taiwan, 6–8 June 2014; pp. 35–40. [Google Scholar] [CrossRef]
    33. Wong, C.C.; Liu, C.C. FPGA realisation of inverse kinematics for biped robot based on CORDIC.Electron. Lett.2013,49, 332–334. [Google Scholar] [CrossRef]
    34. Linh, H.; Thi, B.; Kung, Y.S. Digital hardware realization of forward and inverse kinematics for a five-axis articulated robot arm.Math. Probl. Eng.2015,2015. [Google Scholar]
    35. Jiang, Z.; Dai, Y.; Zhang, J.; He, S. Kinematics calculation of minimally invasive surgical robot based on FPGA. In Proceedings of the 2017 IEEE International Conference on Robotics and Biomimetics (ROBIO), Macau, China, 5–8 December 2017; pp. 1726–1730. [Google Scholar] [CrossRef]
    36. Steinbach, E.; Strese, M.; Eid, M.; Liu, X.; Bhardwaj, A.; Liu, Q.; Al-Ja’afreh, M.; Mahmoodi, T.; Hassen, R.; El Saddik, A.; et al. Haptic Codecs for the Tactile Internet.Proc. IEEE2019,107, 447–470. [Google Scholar] [CrossRef] [Green Version]
    37. Geomagic.Phantom Omni, Device Guide. Online. Available online:https://support.3dsystems.com/s/article/Haptic-Device-Guides (accessed on 12 October 2022).
    38. Song, G.; Guo, S.; Wang, Q. A Tele-operation system based on haptic feedback. In Proceedings of the IEEE International Conference on Information Acquisition, Veihai, China, 20–23 August 2006; pp. 1127–1131. [Google Scholar] [CrossRef]
    39. Sansanayuth, T.; Nilkhamhang, I.; Tungpimolrat, K. Teleoperation with inverse dynamics control for PHANToM Omni haptic device. In Proceedings of the 2012 SICE Annual Conference (SICE), Akita, Japan, 22–23 August 2012; pp. 2121–2126. [Google Scholar]
    40. Silva, A.J.; Ramirez, O.A.D.; Vega, V.P.; Oliver, J.P.O. Phantom omni haptic device: Kinematic and manipulability. In Proceedings of the Electronics, Robotics and Automotive Mechanics Conference, CERMA’09, Cuernavaca, Mexico, 22–25 September 2009; pp. 193–198. [Google Scholar]
    41. Cavusoglu, M.C.; Feygin, D.Kinematics and Dynamics of Phantom (tm) Model 1.5 Haptic Interface; EECS Department, University of California, Berkeley: Berkeley, CA, USA, 2001. [Google Scholar]
    42. San Martin, J.; Trivi no, G. A study of the Manipulability of the PHANToM OMNI Haptic Interface. In Proceedings of the VRIPHYS, Madrid, Spain, 6–7 November 2006; pp. 127–128. [Google Scholar]
    43. MATLAB.Simulink—R2016a; The MathWorks Inc.: Natick, MA, USA, 2016. [Google Scholar]
    44. Kumar, A.; Gaidhane, P.J.; Kumar, V. A nonlinear fractional order PID controller applied to redundant robot manipulator. In Proceedings of the 2017 6th International Conference on Computer Applications In Electrical Engineering-Recent Advances (CERA), Roorkee, India, 5–7 October 2017; pp. 527–532. [Google Scholar] [CrossRef]
    45. Yang, C.; Ma, H.; Fu, M. Intelligent Control of Robot Manipulator. InAdvanced Technologies in Modern Robotic Applications; Springer: Singapore, 2016; pp. 49–96. [Google Scholar] [CrossRef]
    46. Rahimi, H.; Nazemizadeh, M. Dynamic analysis and intelligent control techniques for flexible manipulators: A review.Adv. Robot.2014,28, 63–76. [Google Scholar] [CrossRef]
    47. Tang, S.H.; Ang, C.K.; Ariffin, M.K.A.B.M.; Mashohor, S.B. Predicting the Motion of a Robot Manipulator with Unknown Trajectories Based on an Artificial Neural Network.Int. J. Adv. Robot. Syst.2014,11, 176. [Google Scholar] [CrossRef]
    48. Chen, Y.; Li, L. Predictable Trajectory Planning of Industrial Robots with Constraints.Appl. Sci.2018,8, 2648. [Google Scholar] [CrossRef] [Green Version]
    49. Xiang, Y. Simulation and Analysis of Three-Dimensional Space Path Prediction for Six-Degree-of-Freedom (SDOF) Manipulator.3D Res.2019,10, 15. [Google Scholar] [CrossRef]
    50. Bócsi, B.; Nguyen-Tuong, D.; Csató, L.; Schölkopf, B.; Peters, J. Learning inverse kinematics with structured prediction. In Proceedings of the 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, San Francisco, CA, USA, 25–30 September 2011; pp. 698–703. [Google Scholar] [CrossRef]
    51. Shen, S.; Song, A.; Li, T. Predictor-Based Motion Tracking Control for Cloud Robotic Systems with Delayed Measurements.Electronics2019,8, 398. [Google Scholar] [CrossRef] [Green Version]
    52. Yang, C.; Xie, Y.; Liu, S.; Sun, D. Force Modeling, Identification, and Feedback Control of Robot-Assisted Needle Insertion: A Survey of the Literature.Sensors2018,18, 561. [Google Scholar] [CrossRef] [PubMed] [Green Version]
    53. Junior, J.C.V.S.; Torquato, M.F.; Noronha, D.H.; Silva, S.N.; Fernandes, M.A.C. Proposal of the Tactile Glove Device.Sensors2019,19, 5029. [Google Scholar] [CrossRef] [PubMed] [Green Version]
    54. Weber, P.; Rueckert, E.; Calandra, R.; Peters, J.; Beckerle, P. A low-cost sensor glove with vibrotactile feedback and multiple finger joint and hand motion sensing for human-robot interaction. In Proceedings of the 2016 25th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN), New York, NY, USA, 26–31 August 2016; pp. 99–104. [Google Scholar]
    55. Volder, J.E. The CORDIC trigonometric computing technique.IRE Trans. Electron. Comput.1959,EC-8, 330–334. [Google Scholar] [CrossRef]
    Sensors 22 07851 g001 550
    Figure 1. Proposed discrete model of the tactile internet system.
    Figure 1. Proposed discrete model of the tactile internet system.
    Sensors 22 07851 g001
    Sensors 22 07851 g002 550
    Figure 2. PHANToM Omni—MD and SD.
    Figure 2. PHANToM Omni—MD and SD.
    Sensors 22 07851 g002
    Sensors 22 07851 g003 550
    Figure 3. PHANToM Omni structure—MD and SD.
    Figure 3. PHANToM Omni structure—MD and SD.
    Sensors 22 07851 g003
    Sensors 22 07851 g004 550
    Figure 4. Detailed discrete model of a tactile internet system.
    Figure 4. Detailed discrete model of a tactile internet system.
    Sensors 22 07851 g004
    Sensors 22 07851 g005 550
    Figure 5. Proposed circuit for calculating trigonometric functions—TFB.
    Figure 5. Proposed circuit for calculating trigonometric functions—TFB.
    Sensors 22 07851 g005
    Sensors 22 07851 g006 550
    Figure 6. Proposed forward kinematics circuit for obtaining thex[F32](n) spatial coordinate (Equation (15))—FK-HMD and FK-HSD.
    Figure 6. Proposed forward kinematics circuit for obtaining thex[F32](n) spatial coordinate (Equation (15))—FK-HMD and FK-HSD.
    Sensors 22 07851 g006
    Sensors 22 07851 g007 550
    Figure 7. Proposed forward kinematics circuit for obtaining they[F32](n) spatial coordinate (Equation (16))—FK-HMD and FK-HSD.
    Figure 7. Proposed forward kinematics circuit for obtaining they[F32](n) spatial coordinate (Equation (16))—FK-HMD and FK-HSD.
    Sensors 22 07851 g007
    Sensors 22 07851 g008 550
    Figure 8. Proposed forward kinematics circuit for obtaining thez[F32](n) spatial coordinate (Equation (17))—FK-HMD and FK-HSD.
    Figure 8. Proposed forward kinematics circuit for obtaining thez[F32](n) spatial coordinate (Equation (17))—FK-HMD and FK-HSD.
    Sensors 22 07851 g008
    Sensors 22 07851 g009 550
    Figure 9. Proposed inverse kinematics circuit for obtaining theθ1HSD[F32](n) angular position (Equation (18))—IK-HSD.
    Figure 9. Proposed inverse kinematics circuit for obtaining theθ1HSD[F32](n) angular position (Equation (18))—IK-HSD.
    Sensors 22 07851 g009
    Sensors 22 07851 g010 550
    Figure 10. Proposed inverse kinematics circuit for obtaining theθ2HSD[F32](n) angular position (Equation (24))—IK-HSD.
    Figure 10. Proposed inverse kinematics circuit for obtaining theθ2HSD[F32](n) angular position (Equation (24))—IK-HSD.
    Sensors 22 07851 g010
    Sensors 22 07851 g011 550
    Figure 11. Proposed inverse kinematics circuit for obtaining theθ3HSD[F32](n) angular position (Equation (25))—IK-HSD.
    Figure 11. Proposed inverse kinematics circuit for obtaining theθ3HSD[F32](n) angular position (Equation (25))—IK-HSD.
    Sensors 22 07851 g011
    Sensors 22 07851 g012 550
    Figure 12. Proposed circuit to perform the calculation ofR[F32](n) (Equation (19))—IK-HSD.
    Figure 12. Proposed circuit to perform the calculation ofR[F32](n) (Equation (19))—IK-HSD.
    Sensors 22 07851 g012
    Sensors 22 07851 g013 550
    Figure 13. Proposed circuit to perform the calculation ofr[F32](n) (Equation (20))—IK-HSD.
    Figure 13. Proposed circuit to perform the calculation ofr[F32](n) (Equation (20))—IK-HSD.
    Sensors 22 07851 g013
    Sensors 22 07851 g014 550
    Figure 14. Proposed circuit to perform the calculation ofγ[F32](n) (Equation (21))—IK-HSD.
    Figure 14. Proposed circuit to perform the calculation ofγ[F32](n) (Equation (21))—IK-HSD.
    Sensors 22 07851 g014
    Sensors 22 07851 g015 550
    Figure 15. Proposed circuit to perform the calculation ofβ[F32](n) (Equation (22))—IK-HSD.
    Figure 15. Proposed circuit to perform the calculation ofβ[F32](n) (Equation (22))—IK-HSD.
    Sensors 22 07851 g015
    Sensors 22 07851 g016 550
    Figure 16. Proposed circuit to perform the calculation ofα[F32](n) (Equation (23))—IK-HSD.
    Figure 16. Proposed circuit to perform the calculation ofα[F32](n) (Equation (23))—IK-HSD.
    Sensors 22 07851 g016
    Sensors 22 07851 g017 550
    Figure 17. Proposed circuit to calculate kinesthetic feedback force (Equation (26))—KFF-HMD.
    Figure 17. Proposed circuit to calculate kinesthetic feedback force (Equation (26))—KFF-HMD.
    Sensors 22 07851 g017
    Sensors 22 07851 g018 550
    Figure 18. Proposed circuit to calculate the Jacobian matrixJ11[F32](n) (Equation (29))—JM.
    Figure 18. Proposed circuit to calculate the Jacobian matrixJ11[F32](n) (Equation (29))—JM.
    Sensors 22 07851 g018
    Sensors 22 07851 g019 550
    Figure 19. Proposed circuit to calculate the Jacobian matrixJ31[F32](n) (Equation (31))—JM.
    Figure 19. Proposed circuit to calculate the Jacobian matrixJ31[F32](n) (Equation (31))—JM.
    Sensors 22 07851 g019
    Sensors 22 07851 g020 550
    Figure 20. Proposed circuit to calculate the Jacobian matrixJ12[F32](n) (Equation (32))—JM.
    Figure 20. Proposed circuit to calculate the Jacobian matrixJ12[F32](n) (Equation (32))—JM.
    Sensors 22 07851 g020
    Sensors 22 07851 g021 550
    Figure 21. Proposed circuit to calculate the Jacobian matrixJ22[F32](n) (Equation (33))—JM.
    Figure 21. Proposed circuit to calculate the Jacobian matrixJ22[F32](n) (Equation (33))—JM.
    Sensors 22 07851 g021
    Sensors 22 07851 g022 550
    Figure 22. Proposed circuit to calculate the Jacobian matrixJ32[F32](n) (Equation (34))—JM.
    Figure 22. Proposed circuit to calculate the Jacobian matrixJ32[F32](n) (Equation (34))—JM.
    Sensors 22 07851 g022
    Sensors 22 07851 g023 550
    Figure 23. Proposed circuit to calculate the Jacobian matrixJ13[F32](n) (Equation (35))—JM.
    Figure 23. Proposed circuit to calculate the Jacobian matrixJ13[F32](n) (Equation (35))—JM.
    Sensors 22 07851 g023
    Sensors 22 07851 g024 550
    Figure 24. Proposed circuit to calculate the Jacobian matrixJ23[F32](n) (Equation (36))—JM.
    Figure 24. Proposed circuit to calculate the Jacobian matrixJ23[F32](n) (Equation (36))—JM.
    Sensors 22 07851 g024
    Sensors 22 07851 g025 550
    Figure 25. Proposed circuit to calculate the Jacobian matrixJ33[F32](n) (Equation (37))—JM.
    Figure 25. Proposed circuit to calculate the Jacobian matrixJ33[F32](n) (Equation (37))—JM.
    Sensors 22 07851 g025
    Sensors 22 07851 g026 550
    Figure 26. Proposed circuit to calculate the torque of theτ1HMD[F32](n) joint (Equation (39))—KFF.
    Figure 26. Proposed circuit to calculate the torque of theτ1HMD[F32](n) joint (Equation (39))—KFF.
    Sensors 22 07851 g026
    Sensors 22 07851 g027 550
    Figure 27. Proposed circuit to calculate the torque of theτ2HMD[F32](n) joint (Equation (40))—KFF.
    Figure 27. Proposed circuit to calculate the torque of theτ2HMD[F32](n) joint (Equation (40))—KFF.
    Sensors 22 07851 g027
    Sensors 22 07851 g028 550
    Figure 28. Proposed circuit to calculate the torque of theτ3HMD[F32](n) joint (Equation (41))—KFF.
    Figure 28. Proposed circuit to calculate the torque of theτ3HMD[F32](n) joint (Equation (41))—KFF.
    Sensors 22 07851 g028
    Sensors 22 07851 g029 550
    Figure 29. Proposed circuit to calculate the feedback forceFxHSD[F32](n) (Equation (60))—FBF-HSD.
    Figure 29. Proposed circuit to calculate the feedback forceFxHSD[F32](n) (Equation (60))—FBF-HSD.
    Sensors 22 07851 g029
    Sensors 22 07851 g030 550
    Figure 30. Proposed circuit to calculate the feedback forceFyHSD[F32](n) (Equation (61))—FBF-HSD.
    Figure 30. Proposed circuit to calculate the feedback forceFyHSD[F32](n) (Equation (61))—FBF-HSD.
    Sensors 22 07851 g030
    Sensors 22 07851 g031 550
    Figure 31. Proposed circuit to calculate the feedback forceFzHSD[F32](n) (Equation (62))—FBF-HSD.
    Figure 31. Proposed circuit to calculate the feedback forceFzHSD[F32](n) (Equation (62))—FBF-HSD.
    Sensors 22 07851 g031
    Sensors 22 07851 g032 550
    Figure 32. Trajectory used to validate hardware modules.
    Figure 32. Trajectory used to validate hardware modules.
    Sensors 22 07851 g032
    Table
    Table 1. Mean squared error (MSE) results for floating-point implementation.
    Table 1. Mean squared error (MSE) results for floating-point implementation.
    ModuleVariableMSE
    FK-HMDxHMD[F32](n)2.333×108
    yHMD[F32](n)8.316×109
    zHMD[F32](n)1.656×108
    KFF-HMDτ1HMD[F32](n)1.467×107
    τ2HMD[F32](n)5.207×109
    τ3HMD[F32](n)3.350×107
    FK-HSDxENV[F32](n)2.333×108
    yENV[F32](n)8.316×109
    zENV[F32](n)1.656×108
    IK-HSDθ1HSD[F32](n)3.731×106
    θ2HSD[F32](n)2.847×106
    θ3HSD[F32](n)2.702×106
    FBF-HSDFxHSD[F32](n)2.437×1016
    FyHSD[F32](n)1.731×1016
    FzHSD[F32](n)3.360×1016
    Table
    Table 2. FPGA resource utilization, sampling rate and throughput results for floating-point format.
    Table 2. FPGA resource utilization, sampling rate and throughput results for floating-point format.
    Module
    Name
    Registers
    (Flip-Flops)
    LUTsMultipliers
    (DSP48)
    ts
    (ns)
    Rs
    (MSps)
    FK-HMD3041 (1.01%)8008 (5.31%)11 (1.43%)4721.27
    KFF-HMD3113 (1.03%)12,251 (8.13%)48 (6.25%)7014.28
    FK-HSD3041 (1.01%)8008 (5.31%)11 (1.43%)4721.27
    IK-HSD3149 (1.04%)14,107 (9.36%)27 (3.52%)2184.58
    FBF-HSD323 (0.11%)1236 (0.82%)9 (1.17%)2147.61
    Table
    Table 3. Hardware speedup related to the time limits for the1ms and10ms latency constraints.
    Table 3. Hardware speedup related to the time limits for the1ms and10ms latency constraints.
    Time
    Restriction
    Latency
    Limit
    thardwareSpeedup
    1ms37.5μs403ns93×
    10ms375μs403ns930×
    Table
    Table 4. Comparative table with state of the art works.
    Table 4. Comparative table with state of the art works.
    ReferenceDeviceDoFData TypeFKIKKFFFBF
    This workVirtex 63Floating P.47ns218ns70ns21ns
    [30]Virtex 25Floating P.1240ns---
    [31]Cyclone IV3Floating P.-143,000ns--
    [32]Unknown6Fixed P.3000ns4500ns--
    [33]Cyclone IV10Fixed P.-440ns--
    [34]Cyclone IV5Fixed P.680ns940ns--
    [35]Artix 73Fixed P.2000ns--
    Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

    © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

    Share and Cite

    MDPI and ACS Style

    Junior, J.C.V.S.; Silva, S.N.; Torquato, M.F.; Mahmoodi, T.; Dohler, M.; Fernandes, M.A.C. FPGA Applied to Latency Reduction for the Tactile Internet.Sensors2022,22, 7851. https://doi.org/10.3390/s22207851

    AMA Style

    Junior JCVS, Silva SN, Torquato MF, Mahmoodi T, Dohler M, Fernandes MAC. FPGA Applied to Latency Reduction for the Tactile Internet.Sensors. 2022; 22(20):7851. https://doi.org/10.3390/s22207851

    Chicago/Turabian Style

    Junior, José C. V. S., Sérgio N. Silva, Matheus F. Torquato, Toktam Mahmoodi, Mischa Dohler, and Marcelo A. C. Fernandes. 2022. "FPGA Applied to Latency Reduction for the Tactile Internet"Sensors 22, no. 20: 7851. https://doi.org/10.3390/s22207851

    APA Style

    Junior, J. C. V. S., Silva, S. N., Torquato, M. F., Mahmoodi, T., Dohler, M., & Fernandes, M. A. C. (2022). FPGA Applied to Latency Reduction for the Tactile Internet.Sensors,22(20), 7851. https://doi.org/10.3390/s22207851

    Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further detailshere.

    Article Metrics

    No
    No

    Article Access Statistics

    For more information on the journal statistics, clickhere.
    Multiple requests from the same IP address are counted as one view.
    Sensors, EISSN 1424-8220, Published by MDPI
    RSSContent Alert

    Further Information

    Article Processing Charges Pay an Invoice Open Access Policy Contact MDPI Jobs at MDPI

    Guidelines

    For Authors For Reviewers For Editors For Librarians For Publishers For Societies For Conference Organizers

    MDPI Initiatives

    Sciforum MDPI Books Preprints.org Scilit SciProfiles Encyclopedia JAMS Proceedings Series

    Follow MDPI

    LinkedIn Facebook X
    MDPI

    Subscribe to receive issue release notifications and newsletters from MDPI journals

    © 1996-2025 MDPI (Basel, Switzerland) unless otherwise stated
    Terms and Conditions Privacy Policy
    We use cookies on our website to ensure you get the best experience.
    Read more about our cookieshere.
    Accept
    Back to TopTop
    [8]ページ先頭

    ©2009-2025 Movatter.jp