## 5 Implementation and Experimental Results  
In this paper, the proposed FaaS-FR model was implemented in a mobile robot and tested object recognition, speech recognition, and object handling motion. Figure 6 shows the schematic of the implemented FaaS-FR. The functions of the robot service were distributed with SAP, PSP, and HPP which worked for their own tasks. Figure 7 shows a two-handed mobile robot as a testbed of the edge. The system of the edge was Raspberry Pi 3 using Linux OS (Ubuntu) that has low computing power, and a desktop computer with Windows 10 was used as the fog robot server. Table 4 shows the system specifications of the edge and the fog robot server. In the vision module, there is an Xtion sensor made by ASUS for acquiring RGB-depth (RGB-D) data. For the listening model, there was a microphone on the edge system to capture the human speech, which was transferred to Google Cloud to get the recognized text data [24]. The acquired text data was transferred to a parsing cloud, Link Grammar Parser server [25], to obtain the parsed sentence. Link Grammar Parser adopts Penn Treebank rules for syntactic parsing in which a sentence is segmented with phrases [26]. The test scenario of the FaaS-FR was that a user asks a speech order to the robot to move an object and place it a specific position. For the execution of the order, the robot used the listening module for understanding the human speech, the vision module for 3D object recognition, and the motion module to bring the object. The FaaS-FR based SCS distributed tasks on the edge, a robot fog server, and clouds. Table 5 shows the functions and fog computing types. For the listening module, speech recognition was executed with the cloud (Google Cloud), but the NLP was done on the fog server (Link Parser server). For speech recognition, the edge first acquired \begin{table}
\begin{tabular}{c c c} \hline \hline
**Episodes** & **Primitive Actions** & **Atomic Functions** \\ \hline \multirow{4}{*}{bring \(o_{i}\) to \(p_{oi}\)} & identify \(o_{i}\) & (search \(o_{i}\) in the object descriptor) \\  & pick up \(o_{i}\) & extend (\(o_{i}\)), grasp (\(o_{i}\)), retract () \\ \cline{1-1}  & move the hand to \(p_{oi}\) & move\_hand\_to (\(p_{oi}\)) \\ \cline{1-1}  & place \(o_{i}\) & open\_hand (\(o_{i}\)), retract () \\ \hline \hline \end{tabular}
\end{table} 
Table 3: An example of action events with the action descriptor. a human speech and transferred it to the Google Cloud to get the text of the speech. The speech recognition application utilized Google Cloud speech API as a PaaS. The result of speech recognition was transferred to the fog robot server to recognize the meaning of the sentence with syntactic and semantic parsing. The event interpreter requested a motion to execute the order of the human. In the case of the vision module, if the scene is changed, the module transfers the captured RGB-D data to the fog server, then the server runs an object recognition application. In this paper, for the object recognition, You Only Look Once (Yolo), a convolution neural network (CNN), was adopted [27]. It produced bounding boxes (BBXs) and labels of the objects in the RGB image. The trained weight files were brought from a cloud (Yolo server), but the object recognition was done on the fog robot server as a SaaS. The depth data were converted to XYZ coordinates for being used for 3D object segmentation, which is done by thresholding on the dot product values of normal vectors of the coordinates as the similarity of the vector orientation. From the segmented 3D data, the real coordinates of the objects were obtained to be handled by the robot. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Specification** & **Edge** & **Fog Robot Server** \\ \hline System & Raspberry Pi 3 B & Desktop \\ CPU & Quad Cortex A54 & Intel® CoreTM i7-770 \\ Clock & 1.2 GHz & 3.6 GHz \\ RAM & 1 GB SDRAM & 8 GB RAM \\ Network & Wifi & LAN \\ Bandwidth & 14.4 Mbit/sec & 94.5 Mbit/sec \\ \hline \hline \end{tabular}
\end{table}