# Use of a Force-Torque Sensor for Self-Calibration of a 6-DOF Medical Robot

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Robot Description and Forward Kinematics

#### 2.1. Robot Description and the Main Reference Frames

_{1}; the corresponding joint variable is denoted by q

_{1}. Five other servomotors are also used in order to actuate the robot revolute joints: SM

_{2}and SM

_{3}, for the left five bar mechanism, and SM

_{4}and SM

_{5}for the right side (Figure 1a). The sixth servomotor—attached to the link having ${L}_{14}$ as its length—is used to rotate the probe about the x axis of the last reference frame (F

_{6}), which is defined as follows: the origin of F

_{6}is located midway between G

_{1}and G

_{2}; its x axis (x

_{6}) is defined to pass through G

_{1}and G

_{2}, and z

_{6}is pointing toward the probe center.

_{i}between the anchor points of the two proximal links, and the four mobile links having L

_{ij}(j = 1, 2, 3, 4) as lengths. The five links connect five revolute joints (A

_{i}, B

_{i}, C

_{i}, D

_{i}, E

_{i}), among which only two (A

_{i}and C

_{i}) are actuated through servomotors SM

_{i}

_{×2}and SM

_{i}

_{×2+1}: the corresponding two angles are denoted q

_{i}

_{×2}and q

_{i}

_{×2+1}, respectively. A total of five angles of active joints are considered (q

_{2}, …, q

_{6}).

_{1}and E

_{2}are linked through the probe support (Figure 1a), which has a universal joint at each extremity G

_{i}. The x coordinate of G

_{i}with respect to the base frame is denoted by ${d}_{4i}$.

- F
_{0}: The reference frame of the robot base, located on the robot base at O_{0}. As shown in Figure 1a, the x axis (x_{0}) is aligned with the axis of the linear guide, and z_{0}is normal to the plane defined by the platform of the robot base. The translation ${T}_{0}^{world}={\left[\begin{array}{ccc}{x}_{0}& {y}_{0}& {z}_{0}\end{array}\right]}^{T}$ and the orientation (α_{0}, β_{0}, γ_{0}), described in XYZ fixed Euler angles, of F_{0}with respect to F_{world}, are expected to be identified by the calibration process. - F
_{world}: The world reference frame (Figure 1a), associated with the robot work-cell. It has approximately the same orientation as F_{0}. - F
_{1}to F_{6}: The reference frames associated with the joints (F_{1}, F_{2}, …, F_{6}). These frames are not shown. - F
_{tool}: The tool reference frame associated with the robot probe (Figure 2). The origin of F_{tool}is described to be the center of the end-effector (i.e., the probe), and its orientation is considered to be the same as that of F_{6}. Knowing that the end-effector orientation is not used in our calibration process, therefore, only the translation ${T}_{\text{tool}}^{6}={\left[\begin{array}{ccc}{x}_{t}& {y}_{t}& {z}_{t}\end{array}\right]}^{T}$ of F_{tool}with respect to F_{6}is considered.

#### 2.2. Position Equations

**ψ**= [q

_{1}, q

_{2}, …, q

_{6}]

^{T}of the active joint variables, the end-effector’s pose with respect to the world frame is represented by homogeneous matrices as follows:

**R**(α,β,γ) =

**R**

_{x}(γ)

**R**

_{y}(β)

**R**

_{z}(α), and the translation matrix by

**T**(x,y,z) =

**T**

_{x}(x)

**T**

_{y}(y)

**T**

_{z}(z), where

**R**

_{u}(ϕ) and

**T**

_{u}(d) are the rotation/translation operator along the u axis with value ϕ/d. Since robot joints are only included in ${A}_{\text{wrist}}^{0}$, then ${A}_{\text{base}}^{\text{world}}$, ${A}_{\text{sensor}}^{\text{wrist}}$ and ${A}_{\text{tool}}^{\text{sensor}}$ in Equation (1) are constant matrices, which can be defined directly by parameter sets [x

_{0}, y

_{0}, z

_{0}, α

_{0}, β

_{0}, γ

_{0}], [x

_{S}, y

_{S}, z

_{S}, α

_{S}, β

_{S}, γ

_{S}] and [x

_{T}, y

_{T}, z

_{T}, α

_{T}, β

_{T}, γ

_{T}]. The following paragraphs present the calculation of ${A}_{\text{wrist}}^{0}$.

_{i}on ith five-bar mechanism as follows:

_{i}

_{1}and L

_{i}

_{3}are the lengths of the four swinging links as shown in Figure 1, and $\delta {q}_{i}$ is the offset of ith active joint. The vector ${r}_{{O}_{i}{A}_{i}}$ is calculated as follows:

_{i}are obtained as follows:

_{base}are obtained by a transformation matrix ${A}_{i}^{0}$ as follows:

_{i}, which is the angle between ${r}_{{A}_{i}{C}_{i}}$ and the normal of the x

_{0}y

_{0}plane, is calculated as follows:

_{wrist}w.r.t. F

_{base}is obtained from the corresponding rotation matrix ${R}_{\text{wrist}}^{\text{base}}\left(\alpha ,\beta ,\gamma \right)$, where α, β and γ are the fixed XYZ Euler angles. The rotation angle along x

_{0}is directly obtained as $\gamma ={q}_{D{E}_{1}}+{q}_{6}+\delta {q}_{6}$. According to the design of the tool part shown in Figure 2,

_{wrist}w.r.t. F

_{base}is calculated as follows:

_{wrist}w.r.t. F

_{base}is expressed as follows:

#### 2.3. Force and Torque Equations

_{gravity}is assigned at the tool part’s center of gravity, as shown in Figure 3. When the robot is not in contact with its environment, the gravity force

**f**

_{G}in frame F

_{gravity}is the cause of the force and torque on the force sensor. The forward kinematic solution to obtain the force and torque in force sensors is:

_{gravity}is in alignment with F

_{world}, rather than fixed relative to the tool part. The wrench of the gravity force of the tool part w.r.t. the F

_{gravity}is

_{Tool}is the mass of the tool part and g is the gravitational constant. Since gravity is a pure force, ${\mathsf{\tau}}_{\mathrm{G}}^{\text{gravity}}={\left[\begin{array}{ccc}0& 0& 0\end{array}\right]}^{T}$.

_{gravity}keeps the same orientation with F

_{world}, then ${R}_{\text{gravity}}^{\text{wrist}}={R}_{\text{world}}^{\text{wrist}}={\left({R}_{\text{base}}^{\text{world}}{R}_{\text{wrist}}^{\text{base}}\right)}^{T}$. ${p}_{\text{gravity}}^{\text{wrist}}={\left[\begin{array}{ccc}{x}_{G}& {y}_{G}& {z}_{G}\end{array}\right]}^{T}$ is the translation offset of the origin of F

_{gravity}w.r.t. F

_{wrist}. ${p}_{\text{gravity}}^{\text{wrist}}\times $ is the vector product operation, and it is equal to

_{sensor}w.r.t. F

_{wrist}:

_{sensor}is defined in the information given by the sensor manufacturer. During assembly, its orientation w.r.t. F

_{wrist}is expressed by Euler-XYZ angles:

## 3. Parameters Used During Calibration

- The lengths of the ten links of the two five-bar mechanisms: L
_{11}, L_{12}, L_{13}, L_{14}, L_{21}, L_{22}, L_{23}and L_{24}. - The y and z coordinates of the anchor points of the two proximal links of the five-bar mechanisms: A
_{1y}, A_{1z}, C_{1y}, C_{1z}, A_{2y}, A_{2z}, C_{2y}, C_{2z}. - The offsets of the six active joints: δq
_{1}, δq_{2}, δq_{3}, δq_{4}, δq_{5}, δq_{6}. - The offset parameters for the tool part: d
_{31}, d_{32}, d_{41}, d_{42}, d_{5}. - The parameters defining the base with respect to the world frame: x
_{0}, y_{0}, z_{0}, α_{0}, β_{0}, γ_{0}. - The position of the tool frame with respect to the wrist frame: x
_{T}, y_{T}, z_{T}, α_{T}, β_{T}, γ_{T}. - The parameters to describe the sensor frame w.r.t. the wrist frame: x
_{S}, y_{S}, z_{S}, α_{S}, β_{S}, γ_{S}. - The parameters to describe the offset of gravity frame w.r.t. the wrist frame: x
_{G}, y_{G}, z_{G}. - The mass of the tool part: m
_{Tool}.

## 4. Calibration Process

- Develop the calibration model: the forward kinematics, presented in Section 2.2.
- Create a pool
**Ω**of 40,000 configurations uniformly distributed inside the whole robot workspace. Create a set**Ω**_{t}of 336 configurations uniformly distributed inside the target workspace (see Section 4.3). We note that the configurations of the set**Ω**_{t}are different from these of**Ω**. - Select 100 configurations to be used in the identification process. These configurations are chosen through an observability analysis, as explained in Section 4.1.
- Take the force and torque measurements, for all robot configurations (
**Ω**_{t}and**Ω**). Measurements are done by using the robot force-torque sensor. We note that in this paper all measurements are generated by simulation, as explained in Section 4.3 and Section 5. - Identify the robot parameter values by using the calibration configurations selected in step 3; the identification approach is presented in details in Section 4.2.
- Evaluate the accuracy after calibration, as explained in Section 5.

#### 4.1. Selection of Calibration Configurations

**Ω**of 40,000 configurations uniformly distributed inside the whole robot workspace, a set of 100 calibration configurations is selected among

**Ω**. This is done by using an approach commonly called observability analysis. This analysis is used to obtain the optimal set of the calibration configurations, and is based on the singular value decomposition (SVD) of the identification Jacobian matrix

**J**. The matrix

**J**is composed of the derivatives of the end-effector force and torque vector (Equation (17)), with respect to all of the robot independent parameters. The Jacobian matrix is also used in the linearization of the force and torque equations (Equation (17)), around the calibration configurations (i.e., Taylor approximation). This linearization allows identifying the parameter values, as explained in Section 4.2. The nominal values of the robot’s independent parameters are represented by the vector

**p**. The matrix

_{nom}**J**is calculated as follows, for i = 1…n.

_{i}is the 6 × m Jacobian matrix at the ith calibration configuration, n is the number of calibration configurations, and m is the number of considered parameters (not all of which are necessarily identifiable). In our case, n = 100 and m = 49.

**J**

_{i}is given by:

**J**is also used to find the non-identifiable parameters. The rank r

_{J}of the Jacobian

**J**represents the number of identifiable parameters. If r

_{J}< m, then m − r

_{J}parameters are non-identifiable; the corresponding columns should be removed from

**J**. This procedure is carried out using an algorithm that is based on the approach proposed in [21]. The stop criteria is when m becomes equal to r

_{J}. The algorithm proceeds as follows:

- Remove all zero columns from
**J**. The corresponding parameters have no impact on the calibration model. - Calculate the condition number, c
_{J}, of J. The condition number is used to evaluate how good is the matrix**J**for the parameter identification. With a bad condition number (high value), the solutions are unstable with respect to small changes in measurement errors. Therefore, to have a robust identification system, the condition number should be as small as possible. - Remove, one at a time, the column related to each parameter from
**J**, and calculate both the new rank and condition number (${r}_{J}^{*}$ and ${c}_{J}^{*}$) for the new Jacobian matrix**J**^{*}. The column that, if eliminated, results in the maximum reduction of the condition number and gives the same rank (${r}_{J}^{*}$ = r_{J}), is definitively removed (i.e., the corresponding parameter will be not subject to the identification process). - Replace
**J**with**J***, and repeat the process from step (2).

_{1}and calculated by using the singular value of the Jacobian identification matrix (i.e., the sensitivity matrix). The procedure of selecting the calibration configurations is based on the DETMAX algorithm, which was initially proposed in [24].

_{1}seems to be the most appropriate index for the kinematic calibration. This was also confirmed by our simulation, through a comparison of the five observability indices that were presented in the literature and thoroughly detailed in [26]. The convergence of O

_{1}is represented in Figure 4, and is calculated as follows:

_{1}… σ

_{m}are the singular values of the Jacobian identification matrix for the m = 29 identifiable parameters.

#### 4.2. Parameter Identification Process

**J**, which relates the force and torque errors to the 29 unknown parameter values. The matrix

**J**is built by the linearization of the forward kinematics model (Equation (17)) around each calibration configuration. The parameter values are identified by means of an iterative algorithm, in which the parameters’ vector is initialized by

**p**, and is updated at each iteration (i.e., replaced by the vector

_{nom}**p**

_{identified}of the identified values). The matrix

**J**is also iteratively updated, since its calculation is based on

**p**.

- (a)
- Matrix
**J**is calculated, as explained in Section 4.1. This calculation involves**p**and the values of the vector**ψ**= [q_{i}_{1}, q_{2},…, q_{6}]^{T}(i = 1,…, n) of active joints of the 100 calibration configurations. - (b)
- A system of linear equations is formed by the measured force and torque errors, the unknown robot’s parameter errors, and the Jacobian matrix
**J**. In order to maintain acceptable variance of each parameter (i.e., proper convergence in the linear system), parameter scaling is implemented, by using the column scaling approach proposed in [24]. The scaled matrix obtained is denoted by**J**_{scal}, and it is used to identify the robot’s scaled parameter errors (**Δ**_{scal}), as follows:$${\Delta}_{scal}={\left({J}_{scal}^{T}{J}_{scal}\right)}^{-1}{J}_{scal}^{T}\left[\begin{array}{c}F{x}_{meas,1}-F{x}_{est,1}\\ \begin{array}{l}F{y}_{meas,1}-F{y}_{est,1}\\ F{z}_{meas,1}-F{z}_{est,1}\\ T{x}_{meas,1}-T{x}_{est,1}\\ T{y}_{meas,1}-T{y}_{est,1}\\ T{z}_{meas,1}-T{z}_{est,1}\end{array}\\ \vdots \\ F{x}_{meas,n}-F{x}_{est,n}\\ \begin{array}{l}F{y}_{meas,n}-F{y}_{est,n}\\ F{z}_{meas,n}-F{z}_{est,n}\\ T{x}_{meas,n}-T{x}_{est,n}\\ T{y}_{meas,n}-T{y}_{est,n}\\ T{z}_{meas,n}-T{z}_{est,n}\end{array}\end{array}\right]$$_{meas,i}, Fy_{meas,i}, Fz_{meas,i}, Tx_{meas,i}, Ty_{meas,i}, Tz_{meas,i}]^{T}is the vector of the measured force and torque i, and [Fx_{est,i}, Fy_{est,i}, Fz_{est,i}, Tx_{est,i}, Ty_{est,i}, Tz_{est,i}]^{T}is the corresponding estimated vector. The estimated vector is calculated by substituting in the forward kinematic equation (Equation (17)): The vector**p**of the parameters’ values and the vector**ψ**of the active joint variables. The vector_{i}**p**is initialized by its nominal values**p**, and updated after each iteration of this identification algorithm._{nom} - (c)
- The parameter errors, which represent the difference between the real values and the nominal values of the parameters, are denoted by
**Δ**, and calculated as follows:$$\Delta =diag{\left({D}_{1},{D}_{2},\cdots ,{D}_{m}\right)}^{-1}{\Delta}_{scal}$$_{j}, (j = 1, 2, …, m) are the scaling coefficients, defined as follows: ${D}_{j}=\sqrt{{\displaystyle \sum _{i=1}^{6n}{J}_{i,j}^{2}}}$. Also, n is the number of calibration configurations, and**J**_{ij}is the element of the Jacobian matrix located at the ith row and the jth column. - (d)
- Finally, the vector of the identified parameter values is$${p}_{identified}={p}_{\text{nom}}+\Delta $$

**p**

_{identified}has been calculated, the

**p**vector is replaced by the last

**p**

_{identified}vector obtained, and the estimation process is restarted from step (a).

^{−16}, and the system converged towards a solution after five iterations.

#### 4.3. Validation after Calibration

**Ω**), which are the remaining configurations among the initial set

_{w}**Ω**composed of 40,000 configurations (Figure 6a) uniformly distributed within the whole robot workspace: 100 calibration configurations are selected from

**Ω**, through the observability analysis, to be used in the parameter identification process, and 39,900 configurations are used in the validation after calibration.

**Ω**and

_{w}**Ω**), by using the following algorithm:

_{t}**Loop 1**

**Ω**and

_{w}**Ω**:

_{t}**Loop 2**

- (a)
- Calculate the desired position, by using the identified parameter values and the active joint angles
**ψ**= [q_{1}, q_{2},…, q_{6}]^{T}of the validation configuration. The end-effector position is the translation vector of the homogeneous matrix presented in Equation (1). - (b)
- Calculate the actual position, by using the actual parameter values (generated by simulation) and the active joint angles of the calibration validation. In case of experimental tests, the actual position is obtained by measurement.
- (c)
- Calculate x, y, and z position errors (Ex, Ey, and Ez), by evaluating the difference between the desired and the actual position, obtained in steps (a) and (b), respectively.
- (d)
- Calculate the composed error ($\sqrt{E{x}^{2}+E{y}^{2}+E{z}^{2}}$) by using results obtained in step (c).

**End Loop 2**

**End Loop 1**

## 5. Simulation Study

_{x}are generated within ± 1 N, and similarly for F

_{y}and F

_{z}). The data acquisition is simulated by generating 100 measurements (i.e., force and torque errors) for each calibration configuration of the robot. As it is known that the number of identifiable parameters is 29, the number of calibration configurations that are used in the identification process is 100, in order to over-constrain the calibration model.

_{1}is the most appropriate index for calibrating our robot, since it gives the smallest position (and force/torque) errors, after calibration. Moreover, deeper statistical analyses were carried out on the results obtained by the five indices. First we verified whether the data distributions are Gaussian or not, and then used parametric or non-parametric tests accordingly. Therefore a Kolmogorov-Smirnov test (not shown) was achieved, and it showed that all observability indices provide Gaussian distribution. Based on these results, we decided to use parametric analyses (i.e., ANOVA analysis, and t-test).

_{3}and O

_{4}were clearly poorer than results obtained by the other indices (O

_{1}, O

_{2}, and O

_{5}). Thus, only O

_{1}, O

_{2}, and O

_{5}are considered in the t-Test. The results of this test are shown in Table 5, and they show that the position errors obtained by these three indices are quite different, since the t Stat value is significantly lower than –t_Critical_two-tail, for all pairs of comparisons. Furthermore, to take into account multiple comparison effects, a post-hoc correction is included (Bonferroni correction). As summarized in Table 5, results show that all the t-tests were statistically significant (i.e., there are significant differences between the performances of the observability indices).

_{1}leads to the best robot accuracy: it gives not only the smallest mean errors, but also the smallest maximum errors. Also, O

_{1}has a small standard deviation, which means that position errors are closely distributed around the mean value.

- -
- Using continuous tracking approach: taking several measurements for each robot calibration configuration (i.e., the same applied force), and then averaging the collected data. Most sensors, and data collection card allow a frequency upper than 100 Hz.
- -
- Calibrating the wrench sensor only in a limited range, in which the sensor will be actually used. This will reduce the measurement uncertainty.

## 6. Conclusions

## Acknowledgments

## Author Contributions

## Conflicts of Interest

## References

- Beasley, R.A. Medical robots: Current systems and research directions. J. Robot.
**2012**, 2012. [Google Scholar] [CrossRef] - Speich, J.E.; Rosen, J. Medical robotics. In Encyclopedia of Biomaterials and Biomedical Engineering; CRC Press: Boca Raton, FL, USA, 2004; pp. 983–993. [Google Scholar]
- Zhao, L.; Yen, A.K.W.; Coulombe, J.; Bigras, P.; Bonev, I.A. Kinematic analyses of a new medical robot for 3D vascular ultrasound examination. Trans. Can. Soc. Mech. Eng.
**2013**, 38, 227–239. [Google Scholar] - Vieyres, P.; Poisson, G.; Courrèges, F.; Smith-Guerin, N.; Novales, C.; Arbeille, P. A Tele-Operated Robotic System for Mobile Tele-Echography: The Otelo Project. In M-Health: Emerging Mobile Health Systems; Istepanian, R.S.H., Laxminarayan, S., Pattichis, C.S., Eds.; Springer US: New York, NY, USA, 2006; pp. 461–473. [Google Scholar]
- Pierrot, F.; Dombre, E.; Dégoulange, E.; Urbain, L.; Caron, P.; Gariépy, J.; Mégnien, J.L. Hippocrate: A safe robot arm for medical applications with force feedback. Med. Image Anal.
**1999**, 3, 285–300. [Google Scholar] [CrossRef] - Broeders, I.A.M.J.; Ruurda, J. Robotics revolutionizing surgery: The Intuitive Surgical “Da Vinci” system. Ind. Robot Int. J.
**2001**, 28, 387–392. [Google Scholar] [CrossRef] - Shimachi, S.; Hirunyanitiwatna, S.; Fujiwara, Y.; Hashimoto, A.; Hakozaki, Y. Adapter for contact force sensing of the da Vinci
^{®}robot. Int. J. Med. Robot. Comput. Assist. Surg.**2008**, 4, 121–130. [Google Scholar] [CrossRef] [PubMed] - Schulz, A.P.; Seide, K.; Queitsch, C.; von Haugwitz, A.; Meiners, J.; Kienast, B.; Tarabolsi, M.; Kammal, M.; Jürgens, C. Results of Total Hip Replacement Using the Robodoc Surgical Assistant System: Clinical Outcome and Evaluation of Complications for 97 Procedures. Int. J. Med. Robot. Comput. Assist. Surg.
**2007**, 3, 301–306. [Google Scholar] [CrossRef] [PubMed] - Hogan, N.; Krebs, H.I.; Charnnarong, J.; Srikrishna, P.; Sharon, A. MIT-MANUS: A workstation for manual therapy and training. I. In Proceedings of the IEEE International Workshop on Robot and Human Communication, Tokyo, Japan, 1–3 September 1992; pp. 161–165.
- Krebs, H.I.; Ferraro, M.; Buerger, S.P.; Newbery, M.J.; Makiyama, A.; Sandmann, M.; Lynch, D.; Volpe, B.T.; Hogan, N. Rehabilitation robotics: Pilot trial of a spatial extension for MIT-Manus. J. NeuroEng. Rehabil.
**2004**, 1, 5. [Google Scholar] [CrossRef] [PubMed][Green Version] - Galvez, J.A.; Reinkensmeyer, D.J. Robotics for gait training after spinal cord injury. Top. Spinal Cord Inj. Rehabil.
**2005**, 11, 18–33. [Google Scholar] [CrossRef] - Otr, O.V.D.N.; Reinders-Messelink, H.A.; Bongers, R.M.; Bouwsema, H.; van der Sluis, C.K. The i-LIMB hand and the DMC plus hand compared: A case report. Prosthet. Orthot. Int.
**2010**, 34, 216–220. [Google Scholar] [PubMed] - Low, K. Robot-assisted gait rehabilitation: From exoskeletons to gait systems. In Proceedings of the Defense Science Research Conference and Expo (DSR), Singapore, 3–5 August 2011; pp. 1–10.
- Joubair, A.; Slamani, M.; Bonev, I.A. Kinematic calibration of a 3-DOF planar parallel robot. Ind. Robot
**2012**, 39, 392–400. [Google Scholar] [CrossRef] - Joubair, A.; Slamani, M.; Bonev, I.A. Kinematic calibration of a five-bar planar parallel robot using all working modes. Robot. Comput. Integr. Manuf.
**2013**, 29, 15–25. [Google Scholar] [CrossRef] - Joubair, A.; Nubiola, A.; Bonev, I.A. Calibration efficiency analysis based on five observability indices and two calibration models for a six-axis industrial robot. SAE Int. J. Aerosp.
**2013**, 6, 161–168. [Google Scholar] [CrossRef] - Nubiola, A.; Slamani, M.; Joubair, A.; Bonev, A.I. Comparison of two calibration methods for a small industrial robot based on an optical CMM and a laser tracker. Robotica
**2013**, 32, 447–466. [Google Scholar] [CrossRef] - Joubair, A.; Bonev, I.A. Absolute accuracy analysis and improvement of a hybrid 6-DOF medical robot. Ind. Robot
**2015**, 42, 44–53. [Google Scholar] [CrossRef] - Kim, H.S. Kinematic calibration of a Cartesian parallel manipulator. Int. J. Control Autom. Syst.
**2005**, 3, 453–460. [Google Scholar] - Huang, T.; Hong, Z.Y.; Mei, J.P.; Chetwynd, D.G. Kinematic calibration of the 3-DOF module of a 5-DOF reconfigurable hybrid robot using a double-ball-bar system. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Beijing, China, 9–15 October 2006; pp. 508–512.
- Joubair, A.; Bonev, I.A. Kinematic calibration of a six-axis serial robot using distance and sphere constraints. Int. J. Adv. Manuf. Technol.
**2014**, 77, 515–523. [Google Scholar] [CrossRef] - Joubair, A.; Bonev, I.A. Non-kinematic calibration of a six-axis serial robot using planar constraints. Precis. Eng.
**2015**, 40, 325–333. [Google Scholar] [CrossRef] - Gabiccini, M.; Stillfried, G.; Marino, H.; Bianchi, M. A data-driven kinematic model of the human hand with soft-tissue artifact compensation mechanism for grasp synergy analysis. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems—IROS, Tokyo, Japan, 3–7 November 2013.
- Mitchell, T.J. An algorithm for the construction of D-optimal experimental designs. Technometrics
**1974**, 42, 203–210. [Google Scholar] - Sun, Y.; Hollerbach, J. Observability index selection for robot calibration. In Proceedings of the IEEE International Conference on Robotics and Automation, Pasadena, CA, USA, 19–23 May 2008.
- Joubair, A.; Bonev, I.A. Comparison of the efficiency of five observability indices for robot calibration. Mech. Mach. Theory
**2013**, 70, 254–265. [Google Scholar] [CrossRef]

**Figure 1.**(

**a**) The MedRUE robot prototype with the tool part and (

**b**) a five-bar mechanism of the MedRUE where (i = 1, 2).

**Figure 4.**Evolution of the observability index O

_{1}with respect to the selection algorithm iterations.

**Figure 6.**The positioning of the robot end-effector within (

**a**) the whole robot workspace; 40,000 configurations inside the whole robot workspace; and (

**b**) the target workspace; 336 configurations inside the area where the patient’s leg will be located.

Param. | Nom. | Actual | Identified, without Meas. Errors | Identified, with Meas. Errors |
---|---|---|---|---|

A_{1y} (mm) | −233.000 | −233.000 | −233.000 | −233.000 |

A_{1z} (mm) | 178.000 | 178.612 | 178.612 | 178.659 |

C_{1y} (mm) | −83.000 | −84.005 | −84.005 | −84.002 |

C_{1z} (mm) | 438.000 | 438.000 | 438.000 | 438.000 |

A_{2y} (mm) | −233.000 | −232.267 | −232.267 | −232.294 |

A_{2z} (mm) | 178.000 | 177.325 | 177.325 | 177.485 |

C_{2y} (mm) * | −83.000 | −83.000 | −83.000 | −83.000 |

C_{2z} (mm) | 438.000 | 438.112 | 438.112 | 438.210 |

L_{11} (mm) | 400.000 | 400.730 | 400.730 | 400.742 |

L_{12} (mm) | 520.000 | 520.221 | 520.221 | 520.321 |

L_{13} (mm) | 400.000 | 398.485 | 398.485 | 398.502 |

L_{14} (mm) | 520.000 | 520.332 | 520.332 | 520.271 |

L_{21} (mm) | 400.000 | 399.799 | 399.799 | 399.774 |

L_{22} (mm) | 520.000 | 518.336 | 518.336 | 518.505 |

L_{23} (mm) * | 400.000 | 400.000 | 400.000 | 400.000 |

L_{24} (mm) | 520.000 | 520.445 | 520.445 | 520.460 |

d_{41} (mm) | 41.500 | 41.660 | 41.660 | 41.657 |

d_{42} (mm) * | 41.500 | 41.500 | 41.500 | 41.500 |

d_{5} (mm) * | 0.000 | 0.000 | 0.000 | 0.000 |

x_{T} (mm) * | 0.000 | 0.000 | 0.000 | 0.000 |

y_{T} (mm) * | 0.000 | 0.000 | 0.000 | 0.000 |

z_{T} (mm) * | 134.600 | 134.600 | 134.600 | 134.600 |

α_{T} (º) * | 67.512 | 67.512 | 67.512 | 67.512 |

β_{T} (º) * | 0.000 | 0.000 | 0.000 | 0.000 |

γ_{T} (º) * | 0.000 | 0.000 | 0.000 | 0.000 |

x_{0} (mm) * | 109.000 | 109.000 | 109.000 | 109.000 |

y_{0} (mm) * | 139.000 | 139.000 | 139.000 | 139.000 |

z_{0} (mm) * | −31.000 | −31.000 | −31.000 | −31.000 |

α_{0} (º) * | 0.000 | 0.000 | 0.000 | 0.000 |

β_{0} (º) | 0.000 | 0.525 | 0.525 | 0.531 |

γ_{0} (º) | 0.000 | −0.134 | −0.134 | −0.176 |

δq_{2} (º) | 0.000 | 0.313 | 0.313 | 0.342 |

δq_{3} (º) | 0.000 | −0.052 | −0.052 | −0.014 |

δq_{4} (º) | 0.000 | 0.500 | 0.500 | 0.529 |

δq_{5} (º) | 0.000 | 0.135 | 0.135 | 0.173 |

δq_{6} (º) | 0.000 | 0.102 | 0.102 | 0.097 |

x_{S} (mm) * | 41.500 | 41.500 | 41.500 | 41.500 |

y_{S} (mm) * | 0.000 | 0.000 | 0.000 | 0.000 |

z_{S} (mm) * | 41.700 | 41.700 | 41.700 | 41.700 |

α_{S} (º) | −67.512 | −67.397 | −67.397 | −67.430 |

β_{S} (º) | 0.000 | −0.525 | −0.525 | −0.528 |

γ_{S} (º) | 0.000 | 0.185 | 0.185 | 0.196 |

x_{G} (mm) | 0.000 | 0.576 | 0.576 | 0.571 |

y_{G} (mm) | 0.000 | 0.059 | 0.059 | 0.042 |

z_{G} (mm) | 152.400 | 153.132 | 153.132 | 153.136 |

m_{Tool} (g) | 0.365 | 0.365 | 0.365 | 0.365 |

Force (N) | Torque (N.m) | |||||||
---|---|---|---|---|---|---|---|---|

Mean | Mean % w.r.t. Max | Max | STD | Mean | Mean % w.r.t. Max | Max | STD | |

Whole Workspace | ||||||||

Before | 0.0703 | 24.84 | 0.2830 | 0.0454 | 0.0100 | 28.33 | 0.0353 | 0.0056 |

After | 0.0004 | 20.00 | 0.0020 | 0.0003 | 0.0000 | 0.00 | 0.0002 | 0.0000 |

Improvement % | 99.43 | - | 99.29 | 99.34 | 100.00 | - | 99.43 | 100.00 |

Target Workspace | ||||||||

Before | 0.0474 | 46.33 | 0.1023 | 0.0264 | 0.0055 | 60.44 | 0.0091 | 0.0018 |

After | 0.0008 | 61.54 | 0.0013 | 0.0002 | 0.0002 | 66.67 | 0.0003 | 0.0000 |

Improvement % | 98.31 | - | 98.73 | 99.24 | 96.36 | - | 96.70 | 100.00 |

Mean (mm) | Mean% w.r.t. Max | Max (mm) | STD (mm) | |
---|---|---|---|---|

Whole Workspace | ||||

Before | 8.9135 | 42.76 | 20.8437 | 2.9138 |

After | 0.2860 | 60.24 | 0.4748 | 0.0418 |

Improvement % | 96.79 | - | 97.72 | 98.57 |

Target Workspace | ||||

Before | 9.0118 | 73.64 | 12.2382 | 1.6537 |

After | 0.2771 | 86.43 | 0.3206 | 0.0157 |

Improvement % | 96.93 | - | 97.38 | 99.05 |

**Table 4.**Composite force, torque and position errors after calibration using the five observability indices.

Force (N) | Torque (N.m) | Position (mm) | |||||||
---|---|---|---|---|---|---|---|---|---|

Mean | Max | STD | Mean | Max | STD | Mean | Max | STD | |

Whole Workspace | |||||||||

O_{1} | 0.0004 | 0.0020 | 0.0003 | 0.0000 | 0.0002 | 0.0000 | 0.2860 | 0.4748 | 0.0418 |

O_{2} | 0.0024 | 0.0189 | 0.0031 | 0.0003 | 0.0021 | 0.0003 | 0.3818 | 0.9391 | 0.1070 |

O_{3} | 0.0644 | 0.0497 | 0.1011 | 0.0114 | 0.0553 | 0.0112 | 8.8182 | 10.1284 | 0.4050 |

O_{4} | 0.0122 | 0.0356 | 0.0099 | 0.0013 | 0.0040 | 0.0011 | 4.5199 | 6.2311 | 0.3134 |

O_{5} | 0.0006 | 0.0031 | 0.0004 | 0.0001 | 0.0003 | 0.0000 | 0.4552 | 0.6767 | 0.0637 |

Target Workspace | |||||||||

O_{1} | 0.0005 | 0.0012 | 0.0002 | 0.0001 | 0.0001 | 0.0000 | 0.2771 | 0.3206 | 0.0157 |

O_{2} | 0.0008 | 0.0014 | 0.0003 | 0.0002 | 0.0003 | 0.0000 | 0.3527 | 0.4493 | 0.0231 |

O_{3} | 0.0387 | 0.0569 | 0.0282 | 0.0025 | 0.0043 | 0.0052 | 7.5427 | 10.7637 | 0.7089 |

O_{4} | 0.0124 | 0.0228 | 0.0047 | 0.0013 | 0.0025 | 0.0005 | 4.4836 | 5.8925 | 0.1638 |

O_{5} | 0.0003 | 0.0008 | 0.0001 | 0.0000 | 0.0001 | 0.0000 | 0.4318 | 0.5937 | 0.0320 |

t-Test | |||
---|---|---|---|

O_{1} vs. O_{2} | O_{1} vs. O_{5} | O_{2} vs. O_{5} | |

t Stat | −655.874 | −304.773 | 421.3063 |

t Critical two-tail | 1.960001 | 1.959993 | 1.959993 |

Post-hoc correction (Bonferroni correction) Target p-value = $\frac{\alpha}{\text{number}\text{of}\text{t-Test}}=\frac{0.05}{3}=0.0167$ | |||

p-value(from t-test) | 0.000000 | 0.000000 | 0.000000 |

Test statistically significant | yes | yes | yes |

**Table 6.**Composite position errors after calibration, inside the target workspace, using different measurement errors.

Err. (N) | Mean | Max | STD |
---|---|---|---|

±0.2 | 0.0759 | 0.0885 | 0.0039 |

±0.4 | 0.1124 | 0.1992 | 0.0042 |

±0.6 | 0.1874 | 0.2845 | 0.0070 |

±0.8 | 0.2174 | 0.3014 | 0.0103 |

±1 | 0.2771 | 0.3206 | 0.0157 |

© 2016 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 (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Joubair, A.; Zhao, L.F.; Bigras, P.; Bonev, I.A. Use of a Force-Torque Sensor for Self-Calibration of a 6-DOF Medical Robot. *Sensors* **2016**, *16*, 798.
https://doi.org/10.3390/s16060798

**AMA Style**

Joubair A, Zhao LF, Bigras P, Bonev IA. Use of a Force-Torque Sensor for Self-Calibration of a 6-DOF Medical Robot. *Sensors*. 2016; 16(6):798.
https://doi.org/10.3390/s16060798

**Chicago/Turabian Style**

Joubair, Ahmed, Long Fei Zhao, Pascal Bigras, and Ilian A. Bonev. 2016. "Use of a Force-Torque Sensor for Self-Calibration of a 6-DOF Medical Robot" *Sensors* 16, no. 6: 798.
https://doi.org/10.3390/s16060798