Keywords

1 Introduction

The prerequisite requirement of the robotic modeless calibration is the successful self-calibration of the camera [1, 2] or other measurement device, such as laser tracking system [3]. Both internal and external parameters of the camera need to be calibrated accurately [4, 5]. Then the modeless robot calibration is divided into two steps [6].

The first step is to measure the position errors for all grid points on a standard calibration board, which is installed on the robot’s workspace. A calibrated camera is used to find 4 neighboring position errors. This process can be considered as a measurement process, which is shown in Fig. 1.

Fig. 1.
figure 1

Setup of the modeless calibration.

At each grid point, a calibrated camera is used to check the position errors of the end-effector of the robot. In Fig. 1, the desired position of the grid point 0 is (x0, y0), and the actual position of the robot end-effector is \( \left( {x^{\prime}_{\text{0}} ,y^{\prime}_{0} } \right) \). The position errors for this grid point are \( e_{x} = x_{0} - x^{\prime}_{0} \), and \( e_{y} = y_{0} - y^{\prime}_{0} \). The robot will be moved to all these grid points on the standard calibration board, and all position errors on these grid points will be measured and stored in the memory for future usage.

In the second step, the robot’s end-effector is moved to a target position that is located in the range of the workspace. The target position error could be found by an interpolation technique using the stored 4-neighboring grid position errors around the target position, which were obtained from the first step. Finally, the target position could be compensated with the interpolation results to obtain more accurate positions.

Triantafilis and Suzana et al. reported approaches of using fuzzy interpolation methods to estimate the soil layer and geographical distributions for GIS database [7, 8]. Song et al. described a fuzzy logic methodology for 4-dimensional (4D) systems with optimal global performance using enhanced cell state space [9]. The most popular interpolation techniques applied in the position compensations of the modeless robotic calibration include the bilinear interpolation and fuzzy interpolation methods; both methods can achieve satisfactory interpolation results for general calibration process [2, 10]. The bilinear interpolation technique assumes that the error of the target position is located on the surface that is constructed by the position errors of 4-neighboring grid points around the target position [9]. The fuzzy interpolation method assumes that the workspace can be divided into a group of smaller cells, and the target positions can be obtained by interpolating position errors on 4 neighboring grid points in cells via fuzzy inference system [10]. Consequently, the target point’s errors are estimated according to the equations of the error surface or fuzzy inference techniques. Since the actual position errors are randomly distributed, and it is impossible to pinpoint a position on the error surface at any given moment, the traditional interpolation technique is unable to provide an accurate estimation of the position errors. Fuzzy error interpolation technique utilizes the fuzzy inference system to estimate the position errors, which is consistent with the random distributed nature of position errors. The position errors can be considered as a fuzzy set at any given moment of the time. The fuzzification process takes into account of a range of error rather only a crisp error value. Therefore, the fuzzy error interpolation technique has the fundamentals to improve error estimation results.

However, more and more robots calibration techniques developed by using artificial neural network (ANN) are reported in recent years [11,12,13,14,15,16,17,18].

This study describes a technique for the position error estimations and compensations of the modeless robots and manipulators calibration process based on a shallow neural network (SNN) fitting function method. A feedforward neural network or called shallow neural network fitting technique is utilized to estimate the position errors based on errors on the 4 neighboring grind points. With this method, the calibration accuracy can be significantly improved and the calibration process can also be greatly simplified. A comparison among three different error interpolation methods, bilinear, fuzzy interpolation and SNN, are performed, and the simulation results indicate that the SNN method outperforms the other methods.

This paper is organized in 4 sections. After this introduction section, the principle of the fuzzy interpolation technique is provided in Sects. 2. A simulation is given in Sect. 3 to illustrate the effectiveness of the SNN technique. Section 4 presents the conclusion.

2 Fuzzy Error Interpolation Method

2.1 Overview of the Fuzzy Interpolation System

Figure 2 shows the definition of the fuzzy error interpolation inference system.

Fig. 2.
figure 2

Definition of the fuzzy error interpolation system

Each square that is defined by 4 grid points is called a cell; and each cell is divided into 4 equal smaller cells, which are NW, NE, SW and SE, respectively (Fig. 2a). The position error at each grid point is defined as P1, P2, P3 and P4.

For the fuzzy inference system, we apply the fuzzy error interpolation method in two dimensions separately, so the inputs to the fuzzy inference system are ex and ey and the outputs are eex and eey (Fig. 2b). The control rules are shown in Fig. 2c, and will be discussed following the discussion of membership functions.

2.2 Membership Functions

In this study, the distance between two neighboring grid points on the standard calibration board is 20 mm in both x and y directions, which is a standard value for a mid-size calibration workspace. The calibration board includes a total of 20 by 20 cells, which is equivalent to a 400 by 400 mm space.

The input membership functions for both x and y directions and the predefined output membership functions are shown in Fig. 3. The predefined output membership functions are used as a default one, and the final output membership function will be obtained by shifting the default one by the actual error values on the grid points.

Fig. 3.
figure 3

Input and output membership functions.

The gaussian-bell waveforms are selected as the shape of the membership functions for both inputs (Fig. 3a) in x and y directions. The ranges of inputs are between −10 mm and 10 mm (20 mm intervals). Zhuang and Wu reported a histogram method to estimate the optimal membership function distribution [19]. However in our case, a gaussian-bell shape is selected due to the fact that most errors in real world match this distribution. We use W and E to represent the location of inputs in x direction, N and S to represent the location of inputs in y direction.

Figure 3b shows an example of the output membership functions, which are related to the simulated random errors at neighboring grid points. Each Pxi and Pyi correspond to the position error at the ith grid point in x and y directions, respectively. During the design stage, all output membership functions are initialized to a gaussian waveform with a mean of 0 and a range between –0.5 and 0.5 mm, which is a typical error range for this workspace in robotic calibration (Fig. 3c). These output membership functions will be determined based on the errors of the neighboring grid points around the target in the workspace as mentioned above. For example, during the compensation process if the input position in the x direction is in the NW area of a cell, the associated output membership function should be modified based on the position error in the NW grid point P1. This modification is equivalent to shifting the Px1 Gaussian waveform (Fig. 3b) and allowing the center of that waveform to be located at x0 = the position error value of the P1 in the x direction. A similar modification should be performed for the position error in the y direction. It can be seen from Fig. 3b that for the position compensation process, the performance loss would be significant if the default membership function is utilized, which is shown in Fig. 3c.

2.3 Control Rules

The control rules shown in Fig. 2c can be interpreted as follows after the output membership functions are determined:

$$ \begin{array}{*{20}l} { \bullet \,{\text{If}}\,e_{x} \,{\text{is}}\,{\text{W}}\,{\text{and}}\,e_{y} \,{\text{is}}\,{\text{N}},\,ee_{x} \,{\text{is}}\,{\text{P}}_{\text{x1}} \,{\text{and}}\,ee_{y} \,{\text{is}}\,{\text{P}}_{\text{y1}} \,({\text{NW}}).} \hfill \\ { \bullet \,{\text{If}}\,e_{x} \,{\text{is}}\,{\text{W}}\,{\text{and}}\,e_{y} \,{\text{is}}\,{\text{S}},\,ee_{x} \,{\text{is}}\,{\text{P}}_{\text{x3}} \,{\text{and}}\,ee_{y} \,{\text{is}}\,{\text{P}}_{\text{y3}} \,({\text{SW}}).} \hfill \\ { \bullet \,{\text{If}}\,e_{x} \,{\text{is}}\,{\text{E}}\,{\text{and}}\,e_{y} \,{\text{is}}\,{\text{N}},\,ee_{x} \,{\text{is}}\,{\text{P}}_{\text{x2}} \,{\text{and}}\,ee_{y} \,{\text{is}}\,{\text{P}}_{\text{y2}} \,({\text{NE}}).} \hfill \\ { \bullet \,{\text{If}}\,e_{x} \,{\text{is}}\,{\text{E}}\,{\text{and}}\,e_{y} \,{\text{is}}\,{\text{S}},\,ee_{x} \,{\text{is}}\,{\text{P}}_{\text{x4}} \,{\text{and}}\,ee_{y} \,{\text{is}}\,{\text{P}}_{\text{y4}} \,({\text{SE}}).} \hfill \\ \end{array} $$
(1)

Each Pi should be considered as a combination of two error components, Pxi and Pyi, which are corresponding to errors in both x and y directions. The error on NW grid point should take more weight if the target position (input) is located inside the NW area on a cell. Similar conclusion can be derived for errors on SW, NE and SE grid points.

2.4 Fuzzy Inference System

The fuzzy inference system implemented in this study is an on-line one. This means that output of the fuzzy system is not obtained from the pre-defined lookup table, but from a real time fuzzy inference calculation that utilizes the pre-defined input membership functions and the real time position errors. The input error variables can be expressed as a label set L(E), where E is a linguistic input variable:

$$ {\text{L}}\left( {\text{E}} \right) = \left\{ {{\text{NW}},{\text{NE}},{\text{SW}},{\text{SE}}} \right\} $$
(2)

Assume that ui 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 [21]:

$$ u = \frac{{\sum\limits_{i = 1}^{m} {(u_{i} \times U_{i} )} }}{{\sum\limits_{i = 1}^{m} {u_{i} } }} $$
(3)

where u is the current crisp output of the fuzzy inference system. Equation (3) 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 four neighboring grid points around the target position. These relationships can be expressed as:

$$ u_{i} = F_{i} \left( {{\text{P}}_{1} ,{\text{P}}_{2} ,{\text{P}}_{3} ,{\text{P}}_{4} } \right) $$
(4)
$$ U_{i} = Q_{i} \left( {\text{P}_{1} ,{\text{P}}_{2} ,{\text{P}}_{3} ,{\text{P}}_{4} } \right) $$
(5)

where \( F_{i} \) and \( Q_{i} \) are randomly distributed functions. Substituting (4) and (5) into (3), we obtain:

$$ u = \frac{{\sum\limits_{i = 1}^{m} {F_{i} (P_{1} ,\,P_{2} ,\,P_{3} ,\,P_{4} )\, \times Q_{i} (P_{1} ,\,P_{2} ,\,P_{3} ,\,P_{4} )} }}{{\sum\limits_{i = 1}^{m} {F_{i} (P_{1} ,\,P_{2} ,\,P_{3} ,\,P_{4} )} }} $$
(6)

In (6), both \( F_{i} \) and \( Q_{i} \) 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 on-line process.

3 Simulation Results

Extensive simulation study has been performed to illustrate the effectiveness of the proposed SNN technique in comparison to bilinear and fuzzy interpolation methods. The uniform distributed random error is used for the simulation study due to its popularity. We estimate the valid workspace of the robot to be 400 × 400 mm. We choose the size of each cell to be 20 × 20 mm after taking into consideration the repeatability of the robot. Consequently, the workspace consists of 20 cells in each direction. In our simulation, we simulate actual position based on in this format:

$$ P_{a} = \left( {x_{i} ,y_{i} } \right) + A^{ * } rand\left( {x,y} \right) $$
(7)

where (xi, yi) is the nominal position, and A is the amplitude of the uniformly distributed noise in the interval (−0.5, 0.5) for the random component.

We implemented MATLAB® Neural Network Toolbox® to perform these simulation studies [20]. Figure 4 shows the training, validation and testing process of this fitting SNN. The Levenberg-Marquardt algorithm is used for this training.

Fig. 4.
figure 4

Performance of the used SNN (training, validation and testing).

After the first epoch training process, the mean square error (MSE) is reduced below 0.01, and the best validation result is in the first epoch (0.0096). The testing result is also good with all errors being about 0.01. Figure 5 shows a comparisons in mean error, maximum error and STD values among bilinear, fuzzy interpolation and SNN technique in the histograms.

Fig. 5.
figure 5

Comparison among bilinear, fuzzy interpolation and SNN.

It can be seen that both mean errors and maximum errors of SNN are much smaller than those of fuzzy interpolation and bilinear methods. For the uniform distributed error, the mean error of the SNN method is approximately 60% to 70% smaller compared with those of bilinear and fuzzy interpolation methods. The maximum errors of the SNN technique is about 40% to 50% smaller than those of bilinear and fuzzy interpolation techniques.

The simulated results show the effectiveness of the SNN fitting method in reducing the position errors in the modeless robot compensation process.

4 Conclusion and Summary

A shallow neural network fitting method is presented in this paper. The compensated position errors in a modeless robot calibration can be greatly reduced by the proposed technique. Simulation results demonstrate the effectiveness of the proposed shallow neural network (SNN) fitting method. One typical error model, uniform distributed error, is utilized for comparison and simulation study purpose. This SNN technique is ideal for the modeless robot position compensation, especially the high accuracy (<10 μm) robot calibration process.