## 3 Experiments and Results
### Experiments
#### 3.2.6 Sim2 real Transfer  
To test the performance of the presented DNN-based IK solver on the real robot, the following experiment is performed. The robot is placed inside a motion capture structure as can be seen in Figure 14, with markers placed on its end-effector. As a technicality, while in simulation, the ROS controller could be bypassed and joint space positions resulting from the inference could be directly commanded to the robot. The real robot requires the actual robot ROS controller, as commanding the resulting joint space positions directly without a low-level controller might result in a crash. Therefore, the inference here is implemented as an ROS package which is a layer of abstraction above the robot ROS controller. It is designed as a software component to allow the user to specify a Cartesian space target and enable the robot's low-level software controllers to receive a joint space target. As such, once it receives a goal in the shape of a Cartesian 3D \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Method** & **MSE** & **Failures** & **Time** \\ \hline SubnetMlp & 0.6901 & 0 & 0.91 s \\ \hline Newton–Raphson & 2.9338 & 9456 & 27.76 s \\ \hline [PERSON]–Marquardt & 27,560.6995 & 9416 & 12.89 s \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Comparison of the different metrics for the SubnetMlp model and classic solvers. position and quaternion orientation, it is normalized and fed to the DNN model, which has been previously loaded. The resulting output is de-normalized and sent to the low-level controller of the robot's arm. This way, it is the robot's own planner and controller which execute the movement, and the DNN is exclusively used for IK purposes. Therefore, we can obviate dynamic effects internal to the ROS controller and focus only on the study of the IK transformation, which is static. The IK solvers transform the Cartesian space target into the joint space target. When transitioning to the real robot, two additional errors are introduced. The first error is at the joint level, which is the discrepancy between the joint space target and the joint space position actually achieved (as read by the encoders). Table 7 describes this error, both in terms of joint space error, as well as the transformation of each of these two components via Forward Kinematics to depict the magnitude of this error in the Cartesian space. The second error is due to all other mechanical aspects, such as additional tolerances and small mechanical deformations of the links. This kind of error may only be measured by external devices that serve as a ground truth. As presented in the beginning of this section, a motion capture system has been introduced to quantify this source of errors, which is a common design decision when opting for a ground truth. Motion capture markers have been placed on the robot's tray surface to mark its position with respect to the world coordinate system. To detect the end-effector position, six markers have been placed on the flat surfaces on both sides of the gripper. An illustration of the points detected by the system can be seen in Figure 15.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline  & **Joint Target** & **Joint Reached** & \multicolumn{2}{c}{**FK (Joint Targets)**} & **FK (Joint Reached)** \\ \hline \(\theta_{1}\) & \(1.3630\) & \(1.3631\) & \(\mathbf{X}\) & \(-0.1582\) & \(-0.1580\) \\ \(\theta_{2}\) & \(0.4001\) & \(0.4002\) & \(\mathbf{Y}\) & \(0.1291\)  
Table 8 describes this error, comparing the expected Cartesian space position given the joint space position actually achieved (as read by the encoders) and transformed to this space via Forward Kinematics, versus the motion capture system detected positions, to depict the magnitude of this error in the Cartesian space with respect to the corresponding ground truth. Finally, Table 9 includes the summary of results, providing the mean and standard deviation corresponding to both errors.