# Fuzzy Interpolation and Other Interpolation Methods Used in Robot Calibrations

Authors: Ying Bai; Nailong Guo; Gerald Agbegha
Journal: Journal of Robotics
 (2012)

---

## Abstract

A novel interpolation algorithm, fuzzy interpolation, is presented and compared with other popular interpolation methods widely implemented in industrial robots calibrations and manufacturing applications. Different interpolation algorithms have been developed, reported, and implemented in many industrial robot calibrations and manufacturing processes in recent years. Most of them are based on looking for the optimal interpolation trajectories based on some known values on given points around a workspace. However, it is rare to build an optimal interpolation results based on some random noises, and this is one of the most popular topics in industrial testing and measurement applications. The fuzzy interpolation algorithm (FIA) reported in this paper provides a convenient and simple way to solve this problem and offers more accurate interpolation results based on given position or orientation errors that are randomly distributed in real time. This method can be implemented in many industrial applications, such as manipulators measurements and calibrations, industrial automations, and semiconductor manufacturing processes.


---

## Body

## 1. Introduction

A suitable interpolation method is important to fit the target pose errors based on the pose errors of the neighboring grid points around the target. In recent years, many advanced interpolation algorithms have been designed and developed by different researchers [1–5]. Jakobsson et al. developed a technique for interpolation with quotients of two radial basis function expansions to approximate functions with poles [6]. Duan et al. constructed a bivariate rational interpolation method using both function values and partial derivatives of the function that was interpolated as the interpolation data. They developed a new rational interpolation with a biquadratic denominator to create a space surface using only values of the interpolated function and designed a bivariate rational Hermite interpolation to create a space surface using both function values and the first-order partial derivatives of the function and presented a weighted rational cubic spline interpolation using two kinds of rational cubic splines with quadratic denominator [7–11].Luo et al. developed a range-restrictedC1 interpolation local scheme to scattered data. Cμ-rational spline function classes over triangles and quadrilaterals were investigated [12]. Hu and Tan presented an adaptive osculatory rational interpolation for image processing that preserves the contours or edges [13]. Zhao and Tan introduced block-based inverse differences to extend the point-based Thiele-type interpolation to the block-based Thiele-like blending rational interpolation. Also, a bivariate analogy and numerical examples were given to show the effectiveness of their method [14]. Sarfraz and Hussein developed a smooth curve interpolation scheme for positive, monotonic, and convex data by using piecewise rational cubic functions [15].Goodman and Meek presented a planar interpolation method using a pair of rational spirals to solve planar and two-point G2 Hermite interpolation problem [16]. Hussain and Sarfraz used a C1 piecewise rational cubic function to visualize the data arranged over a rectangular grid [17]. Bejancu Built a new treatment of univariate semicardinal interpolation for natural cubic splines, and the solution was obtained as a Lagrange series with suitable localization and polynomial reproduction properties [18]. Zhu and Wang applied the Noether-type theorem of piecewise algebraic curves on cross-cut partitions and used interpolation along a piecewise algebraic curve [19]. Maleknejad and Derili used box spline quasiinterpolants based on local linear functionals of point evaluator and integral type to reproduce the whole spline space [20].Among those interpolation methods, two of them are very popular and widely implemented in most industrial and manufacturing processes, trilinear and cubic spline interpolation algorithms [21–26].Both linear and cubic spline interpolation methods can achieve satisfactory interpolation results for a common measurement and calibration process [27]. Generally, the linear interpolation method is based on the assumption that the error distribution is approximately linear, and the interpolated errors are obtained from three plans that are constructed based on 8 neighboring errors on the grid points around the target cubic cell [28]. The cubic spline interpolation technique also assumes that the error of the target pose is located on a cubic curve that is constructed by the pose errors of 8 neighboring grid points around the target [28, 29]. In essence, both methods approximate a spatial error surface based on the errors of known points and assume that the error of the target point is located on that surface. Consequently, the target pose error is estimated by utilizing the equations of the error surface. However, since the actual pose errors are randomly distributed with the time and locations in the measured machine workspace, and therefore it is impossible to pinpoint a pose on the error surface at any given moment accurately, the result is that the traditional interpolation techniques may not provide an accurate estimation of the pose errors.The fuzzy error interpolation technique utilizes a fuzzy inference system to estimate machine or manipulator pose errors, which is consistent with the random distributed nature of the pose errors. These pose errors can be considered as a fuzzy set at any given moment of time. The fuzzification process takes into account a range of errors rather than only a crisp error value. Therefore, the fuzzy error interpolation technique has the potential to improve the error estimation and compensation results for the target.Fuzzy interpolation techniques have been rapidly developed and implemented in many academic and industrial fields in recent years [30–42]. Different strategies of fuzzy interpolation have been developed and applied in real applications. Triantafilis et al. and Dragicevic et al. reported approaches of using fuzzy interpolation methods to estimate the soil layer and geographical distributions for GIS database [43, 44]. Song et al. described a fuzzy logic methodology for four-dimensional (4D) systems with optimal global performance using enhanced cell state space [45]. Li et al. reported a multidimensional fuzzy interpolation neural network to perform the fuzzy interpolations for a multidimensional system [46]. Chang et al. reported to use fuzzy interpolation methods to obtain the trajectory data for a multijoint animation robot [47]. Bai et al. developed a robot calibration algorithm to calibrate parallel machine tools using fuzzy interpolation techniques [48]. A control algorithm combined with Lagrange fuzzy interpolation, which was reported by ChengWang and Shanzhen Xu can be used to improve control effect and enhance control precision effectively compared with traditional fuzzy control algorithm [49]. Bai et al. developed a mind assistant system using fuzzy interpolation technique to support the judgment of emotion state for elderly living alone [48]. A supervisory semiactive, nonlinear control system combined with a fuzzy interpolation algorithm is reported by Kim et al. to improve the controllability of a MISO controller [50].A comparison between trilinear, cubic spline, and fuzzy interpolation methods used in accurate measurements and compensations for machine or manipulator calibration are discussed in this paper. The simulation results show that the fuzzy interpolation outperform other interpolation methods.The remainder of the paper is organized into the following four sections. The principles of the two popular traditional interpolation techniques, trilinear and cubic spline, are outlined in Section2. Section 3 discusses the fuzzy error interpolation method. Results from a simulation study are given in Section 4 to illustrate the effectiveness of the fuzzy error interpolation technique. The conclusion is provided in Section 5.


## 2. Trilinear and Cubic Spline Methods

The trilinear and cubic spline interpolation methods are designed to construct a surface based on the known errors of neighboring points. The target pose error is then derived by using an error surface equation. The operation principles of the trilinear and spline interpolation methods are discussed in this section.


### 2.1. Trilinear Interpolation

Trilinear interpolation is a computational process of linearly interpolating points within a 3D box given values at the vertices of the box, and it is the most common application in interpolating within cells of a volumetric dataset [29, 30]. The whole process can be simplified to perform three consecutive linear interpolations along three coordinate axes:  x,y, and z, respectively.Refer to Figures1 and 2, and assume that it is a unit cube with the lower-left-base vertex at the origin. The coordinate values at each vertex will be denoted by C000,C100,C010,…C111.  Let xd, yd, and zd be the differences between the target of x, y, z and the smaller coordinate related to the cubic lattice [x], [y], and [z], the error values at 8 corners of the cubic lattice are V000,V100,V010,… and so forth …V111, which is
(1)xd=x-[x],yd=y-[y],zd=z-[z].Figure 1
Eight corner points.Figure 2
3D trilinear interpolation.We can first perform the linear interpolation along thez-axis (pushing the front face of the cube to the back), which is
(2)V00=V000(1-zd)+V100zd,V10=V010(1-zd)+V110zd,V01=V001(1-zd)+V101zd,V11=V011(1-zd)+V111zd.Then we interpolate these values alongy-axis, as we were pushing the top edge to the bottom, giving:
(3)V0=V00(1-yd)+V10yd,V1=V01(1-yd)+V11yd.Finally, we interpolate these values alongx-axis (walking through a line), and this gives us a predicted error value for the target point:
(4)tp=V0(1-xd)+V1xd.The above operations can be illustrated by the following sequence: first we perform linear interpolation betweenC000 and C100 to find V00, C001 and C101 to find V01, C011 and C111 to find V11, C010 and C110 to find V10. Then we do interpolation between C00 and C10 to find V0, C01 and C11 to find V1. Finally, we calculate the error value C via linear interpolation of C0 and C1. In practice, a trilinear interpolation is identical to three successive linear interpolations, or two bilinear interpolations combined with a linear interpolation.Combining (1) through (4), we can obtain the following equation to interpolate the error value Vxyz at the target position [x,y,z] assumed that the cubic lattice is a unit one:(5)
V
x
y
z
=
V
000
(
1
-
x
)
(
1
-
y
)
(
1
-
z
)
+
V
100
x
(
1
-
y
)
(
1
-
z
)
+
V
010
(
1
-
x
)
y
(
1
-
z
)
+
V
001
(
1
-
x
)
(
1
-
y
)
z
+
V
101
x
(
1
-
y
)
z
+
V
011
(
1
-
x
)
y
z
+
V
110
x
y
(
1
-
z
)
+
V
111
x
y
z
.In general, the box will not be of unit size nor will it be aligned at the origin. Simple translation and scaling (possibly of each axis independently) can be used to transform into then out of this simplified situation.As illustrated in Figures1 and 2, the trilinear interpolation technique is based on two assumptions. First, the pose error of the target ep must be located on three error surfaces, which is built based on errors of 8 neighboring grid points around a cubic cell.  Secondly, the error surface has to be constructed prior to the application of the trilinear interpolation technique. However, these assumptions have their drawbacks. Pose errors on each cell are randomly distributed and the error curving surfaces, ex, ey, and ez, are also randomly distributed at any given moment. One can consider the  ex(x,y,z,α,β,γ) as a fourth-dimensional function value based on the pose [x,y,z,α,β,γ] inside each cell. The same consideration is applied to ey(x,y,z,α,β,γ) and ez(x,y,z,α,β,γ).  Therefore, the compensation accuracy of bilinear interpolation is limited by these assumptions.


### 2.2. Cubic Spline Interpolation

The cubic spline method is to estimate a cubic surfaceS(x,y,z) based on the position errors of the neighboring grid points around the target. This method assumes that both the 1st- and the 2nd-order derivatives (S′(x,y,z) and  S′′(x,y,z)) of the interpolated points are existing, and the function S′′(x,y,z) is a trilinear surface on each cubic cell [43]. To simplify our discussion, consider the one-dimensional situation. Since the function S′′(x) is a linear function at the interval of each cell in the x-direction, the error function S(x) should be a cubic curve. If a and b are two neighboring points in the x direction, we define two values Ma and Mb as
(6)Ma=S′′(a),Mb=S′′(b).A linear equation can be derived as follows:(7)S′′(x)=(b-x)Ma+(x-a)Mbb-a.After quite a bit of manipulation, this result is in the cubic polynomial [11]:
(8)S(x)=(b-x)3Ma+(x-a)3Mb6(b-a)+(b-x)S(a)+(x-a)S(b)b-a-(b-a)[(b-x)Ma+(x-a)Mb]6.By using the tridiagonal matrix,Ma and Mb can be derived. By substituting these 2nd-order derivatives back to (8), any point’s error in x-direction can be interpolated.An example of a 2D error surfaces inx direction, ex(x,y), and in y-direction, ey(x,y), for a cell is shown in Figure 3. The error surfaces are estimated based on neighboring grid position errors around the target position using the cubic spline technique.Error surfaces inx- and y-directions on a cell.
(a)
inx-direction
(b)
iny-directionCompared with trilinear interpolation method, the cubic spline method uses a more arbitrary shaped surface to approximate the error. Therefore, it provides more accurate position compensation results for known positions around a target. For unknown interpolated data, such as random noises, the interpolation results may not as good as desired since the interpolated data are randomly distributed noises.


## 2.1. Trilinear Interpolation

Trilinear interpolation is a computational process of linearly interpolating points within a 3D box given values at the vertices of the box, and it is the most common application in interpolating within cells of a volumetric dataset [29, 30]. The whole process can be simplified to perform three consecutive linear interpolations along three coordinate axes:  x,y, and z, respectively.Refer to Figures1 and 2, and assume that it is a unit cube with the lower-left-base vertex at the origin. The coordinate values at each vertex will be denoted by C000,C100,C010,…C111.  Let xd, yd, and zd be the differences between the target of x, y, z and the smaller coordinate related to the cubic lattice [x], [y], and [z], the error values at 8 corners of the cubic lattice are V000,V100,V010,… and so forth …V111, which is
(1)xd=x-[x],yd=y-[y],zd=z-[z].Figure 1
Eight corner points.Figure 2
3D trilinear interpolation.We can first perform the linear interpolation along thez-axis (pushing the front face of the cube to the back), which is
(2)V00=V000(1-zd)+V100zd,V10=V010(1-zd)+V110zd,V01=V001(1-zd)+V101zd,V11=V011(1-zd)+V111zd.Then we interpolate these values alongy-axis, as we were pushing the top edge to the bottom, giving:
(3)V0=V00(1-yd)+V10yd,V1=V01(1-yd)+V11yd.Finally, we interpolate these values alongx-axis (walking through a line), and this gives us a predicted error value for the target point:
(4)tp=V0(1-xd)+V1xd.The above operations can be illustrated by the following sequence: first we perform linear interpolation betweenC000 and C100 to find V00, C001 and C101 to find V01, C011 and C111 to find V11, C010 and C110 to find V10. Then we do interpolation between C00 and C10 to find V0, C01 and C11 to find V1. Finally, we calculate the error value C via linear interpolation of C0 and C1. In practice, a trilinear interpolation is identical to three successive linear interpolations, or two bilinear interpolations combined with a linear interpolation.Combining (1) through (4), we can obtain the following equation to interpolate the error value Vxyz at the target position [x,y,z] assumed that the cubic lattice is a unit one:(5)
V
x
y
z
=
V
000
(
1
-
x
)
(
1
-
y
)
(
1
-
z
)
+
V
100
x
(
1
-
y
)
(
1
-
z
)
+
V
010
(
1
-
x
)
y
(
1
-
z
)
+
V
001
(
1
-
x
)
(
1
-
y
)
z
+
V
101
x
(
1
-
y
)
z
+
V
011
(
1
-
x
)
y
z
+
V
110
x
y
(
1
-
z
)
+
V
111
x
y
z
.In general, the box will not be of unit size nor will it be aligned at the origin. Simple translation and scaling (possibly of each axis independently) can be used to transform into then out of this simplified situation.As illustrated in Figures1 and 2, the trilinear interpolation technique is based on two assumptions. First, the pose error of the target ep must be located on three error surfaces, which is built based on errors of 8 neighboring grid points around a cubic cell.  Secondly, the error surface has to be constructed prior to the application of the trilinear interpolation technique. However, these assumptions have their drawbacks. Pose errors on each cell are randomly distributed and the error curving surfaces, ex, ey, and ez, are also randomly distributed at any given moment. One can consider the  ex(x,y,z,α,β,γ) as a fourth-dimensional function value based on the pose [x,y,z,α,β,γ] inside each cell. The same consideration is applied to ey(x,y,z,α,β,γ) and ez(x,y,z,α,β,γ).  Therefore, the compensation accuracy of bilinear interpolation is limited by these assumptions.


## 2.2. Cubic Spline Interpolation

The cubic spline method is to estimate a cubic surfaceS(x,y,z) based on the position errors of the neighboring grid points around the target. This method assumes that both the 1st- and the 2nd-order derivatives (S′(x,y,z) and  S′′(x,y,z)) of the interpolated points are existing, and the function S′′(x,y,z) is a trilinear surface on each cubic cell [43]. To simplify our discussion, consider the one-dimensional situation. Since the function S′′(x) is a linear function at the interval of each cell in the x-direction, the error function S(x) should be a cubic curve. If a and b are two neighboring points in the x direction, we define two values Ma and Mb as
(6)Ma=S′′(a),Mb=S′′(b).A linear equation can be derived as follows:(7)S′′(x)=(b-x)Ma+(x-a)Mbb-a.After quite a bit of manipulation, this result is in the cubic polynomial [11]:
(8)S(x)=(b-x)3Ma+(x-a)3Mb6(b-a)+(b-x)S(a)+(x-a)S(b)b-a-(b-a)[(b-x)Ma+(x-a)Mb]6.By using the tridiagonal matrix,Ma and Mb can be derived. By substituting these 2nd-order derivatives back to (8), any point’s error in x-direction can be interpolated.An example of a 2D error surfaces inx direction, ex(x,y), and in y-direction, ey(x,y), for a cell is shown in Figure 3. The error surfaces are estimated based on neighboring grid position errors around the target position using the cubic spline technique.Error surfaces inx- and y-directions on a cell.
(a)
inx-direction
(b)
iny-directionCompared with trilinear interpolation method, the cubic spline method uses a more arbitrary shaped surface to approximate the error. Therefore, it provides more accurate position compensation results for known positions around a target. For unknown interpolated data, such as random noises, the interpolation results may not as good as desired since the interpolated data are randomly distributed noises.


## 3. Fuzzy Error Interpolation Method

From the structure of the trilinear interpolation technique, it can be observed that the method assumes that the position error on the target pointP(x,y,z)must be located on the intersection of the three plans that are built based on errors of the 8 neighbouring grid points P1–P8. However in the real world, this assumption may not hold.  The compensation accuracy of using this interpolation technique is limited by this assumption. For the cubic spline interpolation method, the assumption is that all interpolated data should be definite or with little degree of uncertainty. However, this assumption cannot be satisfied when the interpolated data are random noises, and therefore the interpolation results may not be as good as desired.In order to solve this problem and to improve the measurement and compensation accuracy, a dynamic online fuzzy interpolation method is introduced. The traditional fuzzy inference system uses predefined membership functions and control rules to construct lookup tables and then picks up the associated control output from the lookup table as the fuzzy inference system works in an application. This kind of system is often called an offline fuzzy inference system because all inputs and outputs have been defined prior to the application process. This offline fuzzy system may not meet accuracy requirements in certain applications based on the following reasons First, the pose error of the target is estimated based on errors of 8 neighbouring grid points, and these neighbouring errors are randomly distributed. The offline fuzzy output membership functions are defined based on the errors range, say the neighbouring errors’ range. However, this range estimation is not as good as the one deduced from the actual errors obtained on 8 grid points. Second, since each cell needs one lookup table for the offline fuzzy system, it needs a large memory space to save a great number of lookup tables, which is both space and time consuming, and therefore not suitable for real-time processing. For example, in our study, the robot workspace is divided into40×40×40 small cubic cells, and each cell is 20×20×20 mm3.  Assume that one lookup table is for one cubic cell, and this needs about 64000 lookup tables! By using an online dynamic fuzzy inference system, one can estimate the target pose error by combining the output membership functions, which are obtained from real errors on the neighbouring grid points, with the control rules in real-time after this online fuzzy system is implemented. Therefore, we do not need any offline lookup tables at all. This means that one cannot determine the output membership functions until the fuzzy inference system is applied to a real process, and this is based on the real errors on the grid points, not a range.The definition of this dynamic online fuzzy inference algorithm is shown in Figure4. Each small cube, which is surrounded by 8 neighboring grid points, is defined as a cubic cell.  Furthermore this cubic cell is divided into 8 equal smaller cubic cells, which are also shown in Figure 4(a).Definition of the fuzzy interpolation inference system.
(a)
(b)
(c)The pose error at each grid point is defined asP1, P2, P3, P4, P5, P6, P7, and P8. For the fuzzy inference system, the interpolation method is divided into three dimensions separately, so the inputs to the fuzzy inference system are ex, ey, and ez.  The outputs are eex, eey, eez, eeα, eeβ, and eeγ,   which are shown in Figure 4(b).The control rule is shown in Figure4(c), which is straightforward and based on the human being knowledge. It is worth to note that each Pi should be considered as a combination of three position and three orientation error components on each grid point.The distance between the neighboring grid points of each cell on the workspace is 20 mm inx-, y- and z-directions for our current study, which is a standard interval for a small-size calibration workspace. Totally, the workspace includes 20 by 20 by 20 cells, which is equivalent to a 400 by 400 by 400 mm3 space. This is a typical workspace of most popular manipulators implemented in semiconductor manufacturing operations [46, 50, 51]. The input membership functions for x-, y-, and z-directions, and the predefined output membership functions are shown in Figure 5.Input and output membership functions.
(a)
(b)
(c)The predefined output membership functions are used as default ones, and the actual output membership function will be obtained by shifting the default one based on the actual error values on the grid points.   For each   cell,   8 output  membership functions are implemented, and each one is associated with the error at one grid point. In Figure5(b), only 4 position output membership functions are shown here because of the space limitation. In a real application, total 8 orientation and 8 position membership functions should be utilized.The Gaussian-bell waveforms are selected as the shape of the membership functions for three inputs. As shown in Figure5(a), the ranges of inputs are between −10 and 10 mm (20 mm interval on grid points). The reason for this selection is that the Gaussian-bell waveform has a smooth curve and therefore can make measurements more accurate [43, 44]. W and E represent the inputs located at different areas in the x-direction, N and S represent those in the y-direction, and L and U represent those in the z-direction. Unlike the traditional fuzzy inference system, in which all membership functions should be determined to produce the lookup table prior to the implementation of the fuzzy system, in this study, the output membership functions will not be defined until the implementation of the fuzzy error interpolation to compensate the pose errors. So the output membership functions will be determined during the application of the fuzzy inference system online or dynamically. Figure 5(b) shows an example of the output membership functions, which are related to the simulated random errors at neighboring grid points. Each Pxi, Pyi, and Pzi corresponds to the pose error at the ith grid point, respectively. During the design stage, all output membership functions should be initialized to a gaussian waveform with a mean of 0 and a range that is close to the actual possible output range which can be estimated based on the different manipulators for the different applications. These output membership functions will be determined online based on the errors of the neighboring grid points around the target point in the workspace during the compensation process.The control rules shown in Figure4(c) can be interpreted as follows after the output membership functions are determined:(9)(i)IfexisW,eyisNandezisU,theneexisPx1,eeyisPy1andeezisPz1,andeeαisα1,eeβisβ1andeeγisγ1.(P1)(ii)IfexisW,eyisNandezisL,theneexisPx3,eeyisPy3andeezisPz3,andeeαisα3,eeβisβ3andeeγisγ3.(P3)(iii)IfexisW,eyisSandezisU,theneexisPx5,eeyisPy5andeezisPz5,andeeαisα5,eeβisβ5andeeγisγ5.(P5)(iv)IfexisW,eyisSandezisL,theneexisPx7,eeyisPy7andeezisPz7,andeeαisα7,eeβisβ7andeeγisγ7.(P7)(v)IfexisE,eyisNandezisU,theneexisPx2,eeyisPy2andeezisPz2,andeeαisα2,eeβisβ2andeeγisγ2.(P2)(vi)IfexisE,eyisNandezisL,theneexisPx4,eeyisPy4andeezisPz4,andeeαisα4,eeβisβ4andeeγisγ4.(P4)(vii)IfexisE,eyisSandezisU,theneexisPx6,eeyisPy6andeezisPz6,andeeαisα6,eeβisβ6andeeγisγ6.(P6)(viii)IfexisE,eyisSandezisL,theneexisPx8,eeyisPy8andeezisPz8,andeeαisα8,eeβisβ8andeeγisγ8.(P8)
The control rules are straightforward, and they are based on the human knowledge. The error on P1 grid point should carry larger weight if the target position (input) is located inside the NWU area on a cell. Similar consideration should be given for errors on all other grid points.The input error variables can be expressed as a label setL, with E being a linguistic input variable:
(10)L(E)={NWU,NWL,NEU,NEL,SWU,SWL,SEU,SEL}.Assume thatui is the membership function, Ui the universe of discourse, and m the number of contributions, the traditional output of the fuzzy inference system can be represented as
(11)u=∑i=1m(ui×Ui)∑i=1mui,
where u  is the current crisp output of the fuzzy inference system, and (11) is obtained by using the center-of-gravity method (COG). In this study, both ui and Ui in the output membership functions are randomly distributed variables, and the actual values of these variables depend upon the position errors of 8 neighboring grid points around the target position. These relationships can be expressed as
(12)uxi=Fxi(Px1,Px2,Px3,Px4,Px5,Px6,Px7,Px8),Uxi=Qxi(Px1,Px2,Px3,Px4,Px5,Px6,Px7,Px8),
where Fxi is the membership function of the input pose in the x-direction, and it is a predetermined membership function as shown in Figure 5(a). Qxi is the real error output membership function, which is a randomly distributed function, and it gives the error output contributions in the x direction. This membership function is determined by the real pose errors at the 8 neighboring grid points in the x-direction:  Px1–Px8. This membership function determines the degree to which the current pose input belongs to each different real error output based on the 8 control rules defined in (9) in the x direction, and it is equivalent to the universe of discourse or a weighing factor. Substituting (12) into (11), one obtains:
(13)ui=∑i=1mFxi(Px1,Px2,…Px8)×Qxi(Px1,Px2,…Px8)∑i=1mFxi(Px1,Px2,Px3,Px4,Px5,Px6,Px7,Px8).Hereux represents the final error output of the fuzzy interpolation method in the x direction. In (13), Qxi will not be determined until the fuzzy error interpolation technique is applied in an actual compensation process, which means that this fuzzy inference system is an online process. The final crisp output of the fuzzy error interpolation system is determined by the neighboring pose errors of 8 grid points. Similar calculations can be implemented for the error outputs in the y- and z-directions as well as three orientations.The advantage of using the online fuzzy inference system is that the control output has the real-time control ability, but the drawback is that this type of control has a relative longer response time because of the calculation performed in the fuzzy inference system. This shortcoming becomes of little importance as the availability of high-speed CPUs for the controllers.


## 4. Simulation  Results

Extensive simulation studies have been performed with a PUMA 560 robot in order to illustrate the effectiveness of the proposed fuzzy error interpolation technique in comparison to the trilinear and cubic spline interpolation methods. The simulated position error is a uniformly distributed random noiseU [−0.05, 0.05] mm, and the simulated orientation error is also a uniformly distributed random noise U [−0.001, 0.001] radian degrees. Figure 6(a) shows a comparison of interpolated position errors using three interpolation techniques: trilinear, cubic spline, and fuzzy. Figure 6(b) shows a histogram comparison among three interpolation methods. Figures 7(a) and 7(b) show the comparisons of three interpolation techniques for orientation compensation results.Simulated interpolation results—position errors.
(a)
(b)Simulated interpolation results—orientation errors.
(a)
(b)It can be found that the fuzzy interpolation method has more accurate compensation result for both position and orientation errors compared with both trilinear and cubic spline methods. The max position error of the fuzzy interpolation method is about 0.026 mm, which is about 41% smaller compared with the error obtained from the trilinear method (0.044 mm) and 25% smaller with respect to the error interpolated from the cubic spline method (0.033 mm). For the mean position errors, the fuzzy interpolation method also outperforms the other two methods. Similar comparison results can be obtained from the orientation errors shown in Figure7.The numbers in the horizontal axes in Figures6 and 7 are the number of errors in 20 cubic cells.The FIA method provided in this paper has better performances compared with other interpolation methods. One possible shortcoming of this method is that it may need high-speed computer and large memory space to process and store predefined data on all grid points. However, this disadvantage can be easily overcome by using high-speed CPUs and huge memory spaces in today’s computers.


## 5. Conclusions

A comparison of fuzzy error interpolation technique with trilinear and cubic spline interpolation methods used for high accuracy measurement and calibration of robots is discussed and analyzed in this paper. The simulation results show that the measurement and calibration results can be greatly improved when a fuzzy interpolation method is adopted.  By using this fuzzy error interpolation algorithm, both position and orientation errors, especially for the random-distributed errors, can be significantly reduced and suppressed, and therefore the measurement and calibration accuracy can be greatly improved. This algorithm can be conveniently implemented in the real manufacturing process to reduce the production cost and operation times. The key technology used in this algorithm is the dynamic and online process in which the output membership functions are determined online based on the real position and orientation errors of the grid points around the target.



---

*Source: 376293-2012-07-05.xml*