1 Introduction
1.1 Modeling
1.2 Measuring
1.3 Identifying error parameters
1.4 Implementing error compensation
1.5 Scope and contribution
1.6 Paper structure
2 Proposed kinematic calibration approach
2.1 Encoder location
2.2 Calibration points
3 Materials and methods
3.1 Industrial manipulator: the Adept Viper S650
i | \(\alpha _{i-1}\) | \(a_{i-1}\) | \(\theta _i\) | \(d_i\) |
---|---|---|---|---|
(\(^{\circ }\)) | (mm) | (\(^{\circ }\)) | (mm) | |
1 | 0 | 0 | \(\theta _1\) | 0 |
2 | \(-90\) | 75 | \(\theta _2\) | 0 |
3 | 0 | 270 | \(\theta _3\) | 0 |
4 | 90 | \(-90\) | \(\theta _4\) | 295 |
5 | \(-90\) | 0 | \(\theta _5\) | 0 |
6 | 90 | 0 | \(\theta _6\) | 80 |
3.2 Measurement system: draw-wire encoder
3.3 Kinematic calibration model
i | \(\alpha _{i_1}\) | \(a_{i-1}\) | \(\theta _i\) | \(d_i\) |
---|---|---|---|---|
(\(^{\circ }\)) | (mm) | (\(^{\circ }\)) | (mm) | |
1 | 0 | 0 | \(\theta _1\) | 0 |
2 | \(-90\) | \(75+\delta a_1\) | \(\theta _2+\delta \theta _2\) | 0 |
3 | 0 | \(270+\delta a_2\) | \(\theta _3+\delta \theta _3\) | 0 |
4 | 90 | \(-90+\delta a_3\) | \(\theta _4+\delta \theta _4\) | \(295+\delta d_4\) |
5 | \(-90\) | 0 | \(\theta _5+\delta \theta _5\) | 0 |
6 | 90 | 0 | \(\theta _6+\delta \theta _6\) | \(80+ \delta d_6\) |
\(\theta _1\) | \(\theta _2\) | \(\theta _3\) | \(\theta _4\) | \(\theta _5\) | \(\theta _6\) | \(\Psi _{i_{\theta _6}}\) | \(\Psi _{ i_{d_6}}\) | \(\Psi _{i_{\theta _5}}\) | \(\Psi _{i_{\theta _4}}\) | \(\Psi _{i_{a_3}}\) | \(\Psi _{i_{ d_4}}\) | \(\Psi _{i_{a_2}}\) | \(\Psi _{i_{\theta _3}}\) | \(\Psi _{i_{ \theta _2}}\) | \(\Psi _{i_{a_1}}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Step 1: identification of \({\delta \theta _6}\) | |||||||||||||||
0 | \(-\)90 | 210 | \(-\)90 | \(-\)26 | \(-\)180 | \(-\)1.07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | \(-\)26 | \(-\)170 | \(-\)1.08 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | \(-\)26 | \(-\)190 | \(-\)1.07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 26 | 0 | 1.07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 26 | 10 | 1.07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 26 | \(-\)10 | 1.08 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Step 2: identification of \({\delta d_6}\) | |||||||||||||||
0 | \(-\)90 | 210 | \(-\)90 | \(-\)90 | \(-\)90 | 0 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | \(-\)90 | \(-\)85 | 0.03 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | \(-\)90 | \(-\)95 | \(-\)0.03 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 90 | \(-\)90 | 0 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 90 | \(-\)85 | 0.03 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)90 | 90 | \(-\)95 | \(-\)0.03 | 1.41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Step 3: identification of \({\delta \theta _5}\) | |||||||||||||||
0 | \(-\)90 | 210 | \(-\)135 | 10 | \(-\)90 | 0.09 | 0.17 | 0.2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)135 | \(-\)5 | \(-\)90 | 0.1 | \(-\)0.08 | \(-\)0.22 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 45 | 0 | \(-\)270 | 0 | 0 | \(-\)4.19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 45 | 10 | \(-\)270 | 0.29 | \(-\)0.13 | \(-\)3.9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 45 | \(-\)5 | \(-\)270 | \(-\)0.06 | 0.08 | \(-\)4.17 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)45 | \(-\)5 | \(-\)90 | 0.06 | 0.08 | \(-\)0.13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | \(-\)45 | 10 | \(-\)90 | \(-\)0.29 | \(-\)0.13 | 0.62 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 135 | 0 | \(-\)270 | 0 | 0 | 4.19 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 135 | \(-\)5 | \(-\)270 | \(-\)0.1 | \(-\)0.08 | 4.15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 210 | 135 | 10 | \(-\)270 | 0.09 | 0.17 | 4.13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Step 4: identification of \({\delta \theta _4}\) | |||||||||||||||
0 | \(-\)90 | 206 | 0 | 45 | \(-\)90 | \(-\)1.3 | 0.18 | 2.82 | 0.43 | \(-\)0.04 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 206 | 10 | 45 | \(-\)90 | \(-\)1.29 | 0.17 | 2.8 | 0.46 | \(-\)0.03 | 0.01 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 206 | \(-\)10 | 45 | \(-\)90 | \(-\)1.29 | 0.22 | 2.81 | 0.38 | \(-\)0.05 | \(-\)0.01 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | 0 | \(-78.93\) | \(-\)90 | \(-\)0.46 | 0.18 | 0.99 | \(-\)3.04 | 0.27 | 0.08 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | 10 | \(-78.93\) | \(-\)90 | \(-\)0.16 | 0.21 | 0.34 | \(-\)2.62 | 0.36 | 0.03 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | \(-\)10 | \(-78.93\) | \(-\)90 | \(-\)0.58 | 0.22 | 1.26 | \(-\)3.15 | 0.22 | 0.13 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | 0 | \(-78.93\) | 90 | 0.46 | 0.18 | \(-\)2.81 | 3.04 | 0.27 | 0.08 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | 10 | \(-78.93\) | 90 | 0.58 | 0.22 | \(-\)2.67 | 3.15 | 0.22 | 0.13 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 239.93 | \(-\)10 | \(-78.93\) | 90 | 0.16 | 0.21 | \(-\)2.93 | 2.26 | 0.36 | 0.03 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 206 | 0 | 45 | 90 | 0.13 | 0.18 | \(-\)0.97 | \(-\)0.43 | \(-\)0.04 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 206 | 10 | 45 | 90 | 0.29 | 0.22 | \(-\)0.49 | \(-\)0.38 | \(-\)0.05 | \(-\)0.01 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 206 | \(-\)10 | 45 | 90 | 0.29 | 0.17 | \(-\)1.19 | \(-\)0.46 | \(-\)0.03 | 0.01 | 0 | 0 | 0 | 0 |
Step 5: identification of \({\delta a_3}\) | |||||||||||||||
0 | \(-\)90 | 230 | \(-\)65 | \(-\)80 | 0 | \(-\)1.15 | 1.15 | 0.19 | \(-\)1.72 | 0.25 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 230 | \(-\)60 | \(-\)80 | 0 | \(-\)1.13 | 1.13 | 0.1 | \(-\)1.69 | 0.26 | \(-\)0.02 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 230 | \(-\)70 | \(-\)80 | 0 | \(-\)1.16 | 1.17 | 0.26 | \(-\)1.73 | 0.25 | 0.02 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 230 | 65 | \(-\)80 | 0 | 1.15 | 1.15 | \(-\)2.92 | 1.72 | 0.25 | 0 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 230 | 70 | \(-\)80 | 0 | 1.16 | 1.17 | \(-\)2.88 | 1.73 | 0.25 | 0.02 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 230 | 60 | \(-\)80 | 0 | 1.13 | 1.13 | \(-\)2.96 | 1.69 | 0.26 | \(-\)0.02 | 0 | 0 | 0 | 0 |
Step 6: identification of \({\delta d_4}\) | |||||||||||||||
0 | \(-\)90 | 130 | \(-\)90 | 0 | \(-\)90 | 0 | 1.28 | 0 | 0 | \(-\)0.09 | 1.28 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 135 | \(-\)90 | 0 | \(-\)90 | 0 | 1.21 | 0 | 0 | \(-\)0.09 | 1.21 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 140 | \(-\)90 | 0 | \(-\)90 | 0 | 1.14 | 0 | 0 | \(-\)0.08 | 1.14 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 125 | \(-\)90 | 0 | \(-\)90 | 0 | 1.35 | 0 | 0 | \(-\)0.1 | 1.35 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 120 | \(-\)90 | 0 | \(-\)90 | 0 | 1.41 | 0 | 0 | \(-\)0.1 | 1.41 | 0 | 0 | 0 | 0 |
0 | \(-\)90 | 150 | \(-\)90 | 0 | \(-\)90 | 0 | 1.0 | 0 | 0 | \(-\)0.07 | 1.0 | 0 | 0 | 0 | 0 |
Step 7: identification of \({\delta a_2}\) | |||||||||||||||
0 | \(-\)110 | 230 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.35 | 0 | 0 | 0 |
0 | \(-\)110 | 235 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.43 | 0 | 0 | 0 |
0 | \(-\)110 | 240 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.52 | 0 | 0 | 0 |
0 | \(-\)110 | 245 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.6 | 0 | 0 | 0 |
0 | \(-\)110 | 250 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.68 | 0 | 0 | 0 |
0 | \(-\)110 | 255 | \(-\)90 | 0 | \(-\)90 | 0 | 0 | 0 | 0 | 0 | 0 | 0.77 | 0 | 0 | 0 |
Step 8: identification of \({\delta \theta _3}\) | |||||||||||||||
0 | \(-\)110 | 175 | \(-\)90 | 0 | \(-\)90 | 0 | 0.88 | 0 | 0 | \(-\)0.28 | 0.88 | 0.03 | \(-\)1.63 | 0 | 0 |
0 | \(-\)110 | 180 | \(-\)90 | 0 | \(-\)90 | 0 | 0.8 | 0 | 0 | \(-\)0.28 | 0.8 | 0.02 | \(-\)1.63 | 0 | 0 |
0 | \(-\)110 | 185 | \(-\)90 | 0 | \(-\)90 | 0 | 0.72 | 0 | 0 | \(-\)0.27 | 0.72 | 0.02 | \(-\)1.63 | 0 | 0 |
0 | \(-\)120 | 190 | \(-\)90 | 0 | \(-\)90 | 0 | 0.76 | 0 | 0 | \(-\)0.38 | 0.76 | 0.06 | \(-\)2.42 | 0 | 0 |
0 | \(-\)120 | 195 | \(-\)90 | 0 | \(-\)90 | 0 | 0.67 | 0 | 0 | \(-\)0.37 | 0.67 | 0.06 | \(-\)2.42 | 0 | 0 |
0 | \(-\)120 | 185 | \(-\)90 | 0 | \(-\)90 | 0 | 0.84 | 0 | 0 | \(-\)0.39 | 0.84 | 0.06 | \(-\)2.42 | 0 | 0 |
Step 9: identification of \({\delta \theta _2}\) | |||||||||||||||
\(-\)20 | \(-\)95 | 210 | \(-\)90 | \(-\)90 | 0 | 0.39 | 0.8 | \(-\)1.93 | 0.95 | \(-\)0.08 | 0.04 | 0.05 | 0.02 | 0.39 | 0.01 |
\(-\)20 | \(-\)90 | 210 | \(-\)90 | \(-\)90 | 0 | 0.36 | 0.77 | \(-\)2.06 | 0.85 | \(-\)0.01 | 0.01 | 0 | 0.34 | 0.41 | 0.01 |
\(-\)20 | \(-\)85 | 210 | \(-\)90 | \(-\)90 | 0 | 0.32 | 0.74 | \(-\)2.21 | 0.72 | 0.07 | \(-\)0.01 | \(-\)0.05 | 0.63 | 0.42 | 0.02 |
\(-\)20 | 0 | 15 | \(-\)90 | \(-\)90 | 0 | 0.71 | 0.77 | 1.49 | 1.62 | \(-\)0.31 | 1.55 | \(-\)1.38 | 1.65 | 0.41 | 0.01 |
\(-\)20 | \(-\)5 | 15 | \(-\)90 | \(-\)90 | 0 | 0.65 | 0.79 | 1.66 | 1.52 | \(-\)0.3 | 1.6 | \(-\)1.31 | 1.67 | 0.4 | 0 |
\(-\)20 | 5 | 15 | \(-\)90 | \(-\)90 | 0 | 0.78 | 0.74 | 1.29 | 1.73 | \(-\)0.33 | 1.5 | \(-\)1.43 | 1.58 | 0.43 | 0.02 |
Step 10: identification of \({\delta a_1}\) | |||||||||||||||
\(-\)160 | \(-\)125 | 5 | \(-\)90 | \(-\)90 | 0 | 0.97 | 0.54 | \(-\)2.14 | 1.85 | \(-\)1.44 | \(-\)0.01 | \(-\)0.49 | \(-\)8.99 | \(-\)1.68 | 1.89 |
\(-\)160 | \(-\)120 | 5 | \(-\)90 | \(-\)90 | 0 | 0.8 | 0.63 | \(-\)2.48 | 1.47 | \(-\)1.17 | \(-\)0.06 | \(-\)0.47 | \(-\)7.72 | 0.46 | 1.94 |
\(-\)160 | \(-\)115 | 5 | \(-\)90 | \(-\)90 | 0 | 0.6 | 0.71 | \(-\)2.73 | 1.03 | \(-\)0.86 | \(-\)0.09 | \(-\)0.42 | \(-\)6.22 | 2.58 | 1.97 |
\(-\)160 | \(-\)110 | 5 | \(-\)90 | \(-\)90 | 0 | 0.39 | 0.77 | \(-\)2.85 | 0.58 | \(-\)0.55 | \(-\)0.09 | \(-\)0.34 | \(-\)4.62 | 4.49 | 1.96 |
\(-\)160 | \(-\)105 | 5 | \(-\)90 | \(-\)90 | 0 | 0.19 | 0.81 | \(-\)2.88 | 0.14 | \(-\)0.25 | \(-\)0.06 | \(-\)0.26 | \(-\)3.08 | 6.08 | 1.92 |
3.4 Encoder location and calibration points
3.5 Experimental setup of the calibration procedure
3.6 Validation procedure
3.6.1 Validation procedure using the draw-wire encoder
3.6.2 Validation procedure using a touch probe and a granite surface plate
4 Results
4.1 Kinematic calibration results
Parameter | Nominal value | Estimated offset value |
---|---|---|
\(\theta _2\) (\(^{\circ }\)) | 0.000 | 0.675 |
\(\theta _3\) (\(^{\circ }\)) | 0.000 | \(-0.485\) |
\(\theta _4\) (\(^{\circ }\)) | 0.000 | 0.245 |
\(\theta _5\) (\(^{\circ }\)) | 0.000 | \(-0.575\) |
\(\theta _6\) (\(^{\circ }\)) | 0.000 | \(-1.215\) |
\(a_1\) (mm) | 75.000 | \(-0.005\) |
\(a_2\) (mm) | 270.000 | 0.105 |
\(a_3\) (mm) | \(-90.000\) | 0.025 |
\(d_4\) (mm) | 295.000 | \(-0.105\) |
\(d_6\) (mm) | 80.000 | 0.115 |