# Solving the Time-Varying Inverse Kinematics Problem for the Da Vinci Surgical Robot
## Example Analysis and Discussion
### Solution of Proposed Method
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Joint**Step (\({}^{\circ}\)) & **Output** & **Error** & **Input** & **Joint**Step (\({}^{\circ}\)) & **Output** & **Error** & **Input** \\
**Joint** & **h = 20** & **Error** & **Input** & **Joint** & **Joint** & **h = 20** & **Error** & **Input** \\ \hline \(\theta_{1}\) (\(\circ\)) & 10.000000000004 & 0.0000000000004 & 10 & 15.3999999999996 & 0.0000000000003 & 15.4 \\ \(\theta_{2}\) (\(\circ\)) & -124.99999995 & 0.0000000005 & \(-125\) & \(\theta_{2}\)(\(\circ\)) & -116.499999995 & 0.0000000005 & \(-116.5\) \\ \(\ln\) (mm) & 10.0000000001 & 0.000000000001 & 100 & \(\ln\)(mm) & 101.30000000001 & 0.000000000001 & 101.3 \\ \(\theta_{3}\) (\(\circ\)) & 99.99999995 & 0.000000005 & 100 & \(\theta_{3}\)(\(\circ\)) & 86.3999999999996 & 0.0000000000004 & 86.4 \\ \(\theta_{4}\) (\(\circ\)) & -14.00000000000000000 & 0.00000000000008 & \(-14\) & \(\theta_{4}\)(\(\circ\)) & 13.699999999998 & 0.000000000002 & 13.7 \\ \(\theta_{5}\) (\(\circ\)) & 18.0000000002 & 0.000000002 & 18 & \(\theta_{6}\)(\(\circ\)) & -15.899999996 & 0.000000004 & \(-15.9\) \\ \(\theta_{6}\) (\(\circ\)) & 0.421 & & & & 0.406 & \\ \hline
**Joint**Step (\({}^{\circ}\)) & **Output** & **Error** & **Input** & **Joint** & **Error** & **Input** \\
**Joint** & **h = 10** & **Error** & **Input** & **Joint** & **Joint** & **h = 20** & **Error** & **Input** \\ \hline \(\theta_{1}\) (\(\circ\)) & -52.400000000000000000 & 0.000000  
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline
**Joint** & **Step (\({}^{\circ}\))** & **Output** & **Error** & **Input** & **Joint** & **Step (\({}^{\circ}\))** & **Output** & **Error** & **Input** \\ \hline \(\theta_{1}\) (\({}^{\circ}\)) & 9.999999999999998 & 0.0000000000000002 & 10 & 15.399999999995 & 0.00000000000005 & 15.4 \\ \(\theta_{2}\) (\({}^{\circ}\)) & -12.9999999999 & 0.000000000005 & \(-125\) & \(\theta_{2}\) (\({}^{\circ}\)) & -116.499999995 & 0.0000000005 & \(-116.5\) \\ \(\theta_{3}\) (\({}^{\circ}\)) & 9.99999999999 & 0.0000000000001 & 100 & \(\mu_{1}\) (mm) & 101.300000000002 & 0.00000000002 & 101.3 \\ \(\theta_{4}\) (\({}^{\circ}\)) & 9.999999995 & 0.0000000005 & 100 & \(\mu_{5}\) (\({}^{\circ}\)) & 86.399999999998 & 0.0000000000002 & 86.4 \\ \(\theta_{5}\) (\({}^{\circ}\)) & -13.9999999999 & 0.0000000000005 & \(-14\) & \(\theta_{4}\) (\({}^{\circ}\)) & 13.699999999991 & 0.0000000000009 & 13.7 \\ \(\theta_{6}\) (\({}^{\circ}\)) & 10.8000000002 & 0.000000002 & 18 & \(\theta_{6}\) (\({}^{\circ}\)) & -15.899999991 & 0.0000000004 & \(-15.9\) \\ \(\theta_{7}\) (\({}^{\circ}\)) & 0.016 & & & 0.016 & & \\ \hline
**Joint** & **Step (\({}^{\circ}\))** & **Output** & **Error** & **Input** & **Joint** & **Step (\({}^{\circ}\))** & **Output** & **Error** & **Input** \\ \hline \(\theta_{1}\) (\({}^{\circ}\)) & 50.24000000000000002 & 0. In order to verify the proposed method, we build a simulation model in Adams. Firstly, we gave a random movement for the simulation model, then we obtained the matrix of the end pose from the simulation result (Figure 5a), which included the position and the orientation. Secondly, the matrixes were imported to the algorithm we proposed as input. Thirdly, we used our solution to drive the robot model. In the final results, depicted in Figure 5b, we see that the curve obtained by our algorithm is very close to the target curve. This means the proposed method is of high accuracy.