# A Gesture-Based Teleoperation System for Compliant Robot Motion
## 3 Gesture-Based Teleoperation System for Robot Motion
### Gesture Language Library and Interaction Logic
#### 3.1.2 Interaction Logic  
Based on the above gesture library, it is able to coordinate different motion modes and system states. In this paper, a finite state machine (FSM) is used to represent the system states: initial mode, coarse motion mode, fine motion mode, single-axis mode, clutch mode and reproduction state. Their switching conditions are shown in Figure 8.  
The above modes were designed according to the requirements of assembly skills. Because the assembly process involves contact between parts, considering the uncertainties and unsteadiness in hands motion, a 1:1 mapping will directly transfer the disturbances into the robot motion, which may generate huge contact forces and cause serious damages for robot and parts. Therefore, in this paper, coarse, fine, single-axis motion modes are proposed. When the robot moves in a large free space, it is desirable to use coarse mode to improve the demonstration efficiency; when the robot moves in a small space or requires to contact the parts, it is essential to use fine motion mode to improve the teleoperation accuracy and system safety.  
\begin{table}
\begin{tabular}{c c c} \hline \hline \# & **Name** & **Meanings** \\ \hline
1 & Task Start & Start a new task, from standby mode to task mode \\
2 & Task Stop & End a task, from task mode to standby mode \\
3 & Task Clutch & Clutch task, robot doesn’t response the motion command \\
4 & Start reproduction & Autonomous Repeating the learned motions \\
5 & Coarse Motion Mode & Moves with big motion scaling factor \\
6 & Fine Motion Mode & Moves with small motion scaling factor \\
7 & Single-axis Mode & Moves only along the gratitude direction \\
8 & Open Gripper & Open the robot gripper or tool \\
9 & Close Gripper & Close the robot gripper or tool \\
10 & Rotation Motion Mode & Rotate the robot tool \\ \hline \hline \end{tabular}
\end{table}
Table 1: The proposed gesture commands for teleoperation.  
Figure 6: Interaction logic for the gesture-based teleoperation system.  
Figure 7: The predefined static gestures.  
Many assembly processes, such as insertion, pick and placing operations, all include a linear movement along one direction. Therefore, a single-axis mode was introduced to increase the robustness of such motions. The clutch mode was proposed to achieve two goals--reducing teleoperation difficulty and increasing the motion range. When teleoperating a complex task, the operator may need a rest or to split the whole task into several subtasks. In the clutch mode, the robot stands still and the data acquisition is stopped. The operator can leave and then come back to continue later. The other reason is to increase the motion range. The leap motion has a limited sensing range. However, the robot may need to operate a part that is far away. The clutch mechanism provides a means to reset the mapping origins in (3). When in clutch mode, the operator can relocate his/her hands. Once switching back to motion mode, the new mapping origins are recorded, and the large movements can be realized in pieces by renewing the origins. The process is similar to operating the mouse on a small mouse pad.  
Initially, the teleoperation platform is in standby mode. Once a start task gesture is detected, it will switch to motion mode with coarse motion. Then, it can be clutched using clutch gesture and switch to fine motion mode using fine motion gesture. In fine motion mode, once the single axis motion gesture is held, the robot will go into single-axis mode. When a stop task gesture is detected, the system will go back to the initial state. A reproduction gesture will trigger the learning process, and then the robot will repeat the learn motion autonomously. The gripper opens, and close gestures are active throughout the teleoperation process.