**2. SAMBA Calibration Method**

The machine tool error parameters are gathered using the scale and master balls artefact (SAMBA) method, which consists in probing special artefacts and using the raw probing data to estimate the machine error parameters as an indirect method through a mathematical model. The SAMBA hardware part is composed of a reconfigurable uncalibrated master ball artefact (RUMBA) and a length standard; all mounted on the machine table. The processing of the raw probing data allows estimating the machine errors parameters, the artefact positions, the stylus tip coordinates (as the tool), and the volumetric errors.

Let the topology of the machine be wCBXFZYSt wherein the workpiece branch includes C-, Band X-axis and the tool branch includes the Z- and Y-axis and the spindle. The two branches are linked by the foundation frame F. W, S and t stand for the workpiece, the spindle and the tool, respectively. The nominal kinematics of the machine is

$${}^{\rm av}T\_{t\_n} = \left( {}^{\rm F}T\_X {}^{X}T\_B {}^{B}T\_C {}^{C}T\_{w\_n} \right)^{-1} \left( {}^{\rm F}T\_Z {}^{Z}T\_Y {}^{Y}T\_S {}^{S}T\_{t\_n} \right) \tag{1}$$

where the first parenthesis is the homogeneous transformation matrix (HTM) of the workpiece to the frame and the second one is the HTM of the tool to the frame. However, the kinematics of a real machine contains the errors as follows:

$$\begin{aligned}{}^{uu}T\_{t\_{d}} &= ({}^{F}T\_{X\_{0}}{}^{X\_{0}}T\_{X\_{0}'}{}^{X\_{0}'}T\_{X}{}^{X}T\_{X'}{}^{X'}T\_{R\_{0}}{}^{R\_{0}}T\_{R\_{0}'}{}^{R\_{0}}T\_{R}{}^{B}T\_{R\_{0}'}{}^{C\_{0}}T\_{C\_{0}}{}^{C\_{0}}T\_{C\_{0}'}{}^{C\_{0}}T\_{C\_{0}'}{}^{C\_{0}}T\_{C\_{0}'}{}^{C\_{0}}T\_{T\_{C}}{}^{T}T\_{T\_{w}}{}^{w\_{n}}T\_{w\_{n}})^{-1} \\ & ({}^{F}T\_{Z\_{0}}{}^{Z\_{0}}T\_{Z\_{0}'}{}^{Z\_{0}'}T\_{Z}{}^{Z\_{0}}T\_{Z\_{0}'}{}^{Z\_{1}'}T\_{Y\_{0}}{}^{Y\_{0}}T\_{Y\_{0}'}{}^{Y\_{Y}}T\_{Y}{}^{Y\_{Y}}T\_{Y}{}^{S\_{1}}T\_{S}{}^{S\_{1}}T\_{S\_{n}'}{}^{S\_{1}}T\_{t\_{n}}{}^{t\_{n}}\end{aligned} \tag{2}$$

where *X*0, *Y*0, *Z*0, *B*0, *C*0, *wn*, *S*, and *tn* are the nominal joint positions. *X* 0, *Y* 0, *Z* 0, *B* 0, and, *C* <sup>0</sup> are the actual joint positions before movement. X, Y, Z, B, and C describe the nominal motion and *X* , *Y* , *Z* , *B* , *C* , *wa*, *S* , and *ta* describe the error motions. The erroneous five-axis machine requires 30 intra-axis errors (error motions) and eight inter-axis errors (axis location errors). Considering the two spindle lateral offsets and the three linear axis scale gain errors add another five parameters. However, different error models have been studied which typically contain all or a few of those errors [16,17]. The "13" machine error model, describing the erroneous machine, is studied in this paper due to its advantages such as short measuring time and simple indexation design. This error model consists of eight axis location errors, the two spindle offsets, and the three linear gains errors [16]. The model mainly contains inter-axis errors. However, the three linear gain errors, EXX1, EYY1 and EXX1 associated with the intra-axis errors EXX, EYY, and EZZ, respectively, are significant error sources and thus they are added to the model.

The strategy of SAMBA method is applied wherein B- and C-axis fully rotate. By releasing ball positions, which are not accessible, by the touch probe in some indexations, a number of joint positions are achieved for which the following Jacobian is constructed

$$E\_V = JE\_P \tag{3}$$

where *E*<sup>V</sup> is the volumetric error, *J* is the Jacobian and *E*<sup>P</sup> contains the machine error parameters. Provided a well-conditioned system a least square solution is found via the pseudo inverse

$$E\_P = f^\dagger E\_V \tag{4}$$

where *J*† is the pseudo-inverse of *J*. The main steps of the SAMBA method are as follows: machine error model selection, artefact selection, indexation design (relative positions of the rotary axes) and verification, probing G-code generation, probing on the real machine tool and data processing.

## **3. SAMBA Test on Experimental Machine Tool**

Figure 1 shows the probing process with an MP700 Renishaw touch trigger probe of the SAMBA method of four accessible master balls and one scale bar artefact installed on the pallet of the HU40-T machine tool and Table 1 presents the nominal position of the ball centers. The tough trigger probe contacts the workpiece, which triggers the acquisition of the X-, Y- and Z- axis readings. The master ball is always measured twice. For each of these measurements, the master ball artefact is measured with fast and slow probing speed. The first measurement is to get a better estimate of the ball position, before re-measuring it using this new center as a target for the probing. For the second measurement, the probing approaches are adjusted to ensure the spherical surface is touched with an approach close to the local surface normal. The second master ball artefact positions are recorded.

For each measurement, the same probing strategy is applied. It is probed at +45 and −135 degree, to get a plane for the measurements at –45 and +135 degree. Then a point on the pole is taken. A simple geometric calculation is used to estimate the centre. For the SAMBA probing process, the Renishaw MP700 touch trigger probe has negligible pre-travel variation errors (0.25 um) thus it is not compensated.

A total of 109 balls probing for 32 angular axes indexations pairs are recorded from which 13 machine error parameters, six balls coordinates and three tool coordinates are estimated. Axes indexations include 0◦, ±10◦, ±30◦, ±60◦, and ±90◦ for the B-axis; from zero to 360◦ and reverse for the C-axis by 90◦ steps and from zero to 360◦ for the spindle axis by 90◦ steps. During the measurement, the laboratory temperature varied between 21 and 23 ◦C and the machine tool is started in the cold condition before each measurement. The test was repeated 11 times on different days over a two month period.

**Figure 1.** Scale and master ball artefact (SAMBA) measurement process on the HU40-T five-axis machine tool.

**Table 1.** SAMBA balls position.

