In the field of robotics, aerospace, and biomedical engineering, the accurate measurement of multi-dimensional forces and moments is crucial. The six-axis force sensor, capable of detecting forces and torques along three orthogonal axes, plays a vital role in these applications. However, due to manufacturing imperfections, installation errors, and environmental factors, the relationship between the input forces and the output signals of a six-axis force sensor is often non-linear. This non-linearity can lead to significant measurement errors, necessitating precise calibration methods. In this paper, we propose a novel static calibration algorithm based on least squares curve fitting for an orthogonal parallel six-axis force sensor. Our approach aims to improve the accuracy of the calibration process compared to traditional linear methods, ensuring higher precision in real-world applications.
The orthogonal parallel six-axis force sensor features a unique structure that minimizes coupling between force components and enhances load-bearing capacity. It consists of a fixed platform, a force measurement platform, support columns, and six measuring branches. Each branch is equipped with strain gauges to detect axial forces. The vertical and horizontal branches are symmetrically distributed around the central axis, connected via elastic spherical hinges. This design simplifies the measurement principle and allows for decoupled force detection. Below, we present an image illustrating the typical setup of such a sensor system.

To establish a mathematical model for the orthogonal parallel six-axis force sensor, we consider the equilibrium of forces and moments on the measurement platform. Using screw theory, the relationship between the external six-dimensional force vector and the axial forces in the branches can be expressed as:
$$ F_s = G f $$
where \( F_s = [F_x, F_y, F_z, M_x, M_y, M_z]^T \) represents the external force and moment vector, and \( f = [f_1, f_2, f_3, f_4, f_5, f_6]^T \) denotes the axial forces in the six branches. The matrix \( G \) is the first-order static influence coefficient matrix, which maps the branch forces to the external loads. For the orthogonal parallel structure, this matrix is derived from the geometry of the sensor. The positions of the connection points on the fixed and measurement platforms are given by:
$$ B_i = [a_1 \cos \xi_i, a_1 \sin \xi_i, -L]^T, \quad i = 1, 2, 3 $$
$$ b_i = [a_1 \cos \xi_i, a_1 \sin \xi_i, 0]^T, \quad i = 1, 2, 3 $$
$$ \xi = [-\pi/3, \pi/3, \pi] $$
$$ B_j = \left[ a_2 \cos \theta_j – \frac{L}{2} \sin \theta_j, a_2 \sin \theta_j – \frac{L}{2} \cos \theta_j, -a_3 \right]^T, \quad j = 4, 5, 6 $$
$$ b_j = \left[ a_2 \cos \theta_j + \frac{L}{2} \sin \theta_j, a_2 \sin \theta_j – \frac{L}{2} \cos \theta_j, -a_3 \right]^T, \quad j = 4, 5, 6 $$
$$ \theta = [0, 2\pi/3, 4\pi/3] $$
Here, \( a_1 \) is the radius of the platforms, \( a_2 \) is the radius of the circle inscribed in the triangle formed by the horizontal branches, \( a_3 \) is the vertical distance between the measurement platform and the horizontal branches, and \( L \) is the length of the branches. The matrix \( G \) is then computed as:
$$ G = \begin{bmatrix}
\frac{b_1 – B_1}{\|b_1 – B_1\|} & \cdots & \frac{b_6 – B_6}{\|b_6 – B_6\|} \\
\frac{B_1 \times b_1}{\|b_1 – B_1\|} & \cdots & \frac{B_6 \times b_6}{\|b_6 – B_6\|}
\end{bmatrix} $$
Substituting the geometric parameters, we obtain a non-singular matrix \( G \), which allows us to invert the relationship as \( f = G^{-1} F_s \). This model forms the basis for our calibration approach, as it defines the ideal linear mapping between external forces and branch forces. However, in practice, non-linearities arise, necessitating a more sophisticated calibration method.
The least squares method is a widely used technique for sensor calibration, as it minimizes the sum of squared errors between observed and predicted values. For a set of experimental data points \( (x_i, y_i) \), where \( i = 1, 2, \ldots, n \), the goal is to find a function \( \phi(x) \) that approximates the data. The error for each point is defined as \( e_i = y(x_i) – \phi(x_i) \), and the overall error is the Euclidean norm of the error vector:
$$ \| e \|_2 = \sqrt{\sum_{i=1}^n e_i^2} = \sqrt{\sum_{i=1}^n [y(x_i) – \phi(x_i)]^2} $$
Minimizing this error leads to the least squares solution. For curve fitting, we consider a polynomial of degree \( n \):
$$ \phi(x) = v_0 + v_1 x + v_2 x^2 + \cdots + v_n x^n = \sum_{k=0}^n v_k x^k $$
The sum of squared errors is:
$$ S_T = \sum_{i=0}^m [\phi(x_i) – y_i]^2 = \sum_{i=0}^m \left[ \sum_{k=0}^n v_k x_i^k – y_i \right]^2 $$
To find the coefficients \( v_0, v_1, \ldots, v_n \) that minimize \( S_T \), we take partial derivatives with respect to each \( v_j \) and set them to zero:
$$ \frac{\partial S_T}{\partial v_j} = 2 \sum_{i=0}^m \left[ \sum_{k=0}^n v_k x_i^k – y_i \right] x_i^j = 0, \quad j = 0, 1, \ldots, n $$
This results in a system of linear equations known as the normal equations:
$$ \sum_{k=0}^n \left( \sum_{i=0}^m x_i^{j+k} \right) v_k = \sum_{i=0}^m x_i^j y_i, \quad j = 0, 1, \ldots, n $$
In matrix form, this can be written as:
$$ \begin{bmatrix}
m+1 & \sum x_i & \cdots & \sum x_i^n \\
\sum x_i & \sum x_i^2 & \cdots & \sum x_i^{n+1} \\
\vdots & \vdots & \ddots & \vdots \\
\sum x_i^n & \sum x_i^{n+1} & \cdots & \sum x_i^{2n}
\end{bmatrix}
\begin{bmatrix}
v_0 \\
v_1 \\
\vdots \\
v_n
\end{bmatrix}
=
\begin{bmatrix}
\sum y_i \\
\sum x_i y_i \\
\vdots \\
\sum x_i^n y_i
\end{bmatrix} $$
Solving this system yields the optimal coefficients for the polynomial fit. This method ensures that the fitted curve closely matches the experimental data, providing a robust basis for calibration.
For the calibration of the six-axis force sensor, we apply the least squares curve fitting to establish the relationship between the applied forces and moments and the output voltages from the branches. The general form of the fitting polynomial is:
$$ F_s = G_0 + G_1 [U] + G_2 [U]^2 + \cdots + G_n [U^n] $$
where \( F_s \) is the applied six-dimensional force vector, \( U \) is the vector of output voltages from the branches, and \( [U^i] \) denotes the element-wise \( i \)-th power of the voltage vector. The matrices \( G_0, G_1, \ldots, G_n \) are the curve fitting coefficients. When \( n = 1 \), this reduces to linear least squares fitting, which is commonly used but may not capture non-linearities effectively.
To determine the calibration matrices, we conduct loading tests where known forces and moments are applied to the sensor, and the corresponding output voltages are recorded. For each direction of force or moment, we establish a separate polynomial relationship. For example, for the force in the x-direction \( F_x \), we have:
$$ F_x = G_{x0}^i + G_{x1}^i U_x + G_{x2}^i [U_x^2] + \cdots + G_{xn}^i [U_x^n] $$
Similarly, for other components:
$$ F_y = G_{y0}^i + G_{y1}^i U_y + G_{y2}^i [U_y^2] + \cdots + G_{yn}^i [U_y^n] $$
$$ F_z = G_{z0}^i + G_{z1}^i U_z + G_{z2}^i [U_z^2] + \cdots + G_{zn}^i [U_z^n] $$
$$ M_x = G_{xT0}^i + G_{xT1}^i U_{xT} + G_{xT2}^i [U_{xT}^2] + \cdots + G_{xTn}^i [U_{xT}^n] $$
$$ M_y = G_{yT0}^i + G_{yT1}^i U_{yT} + G_{yT2}^i [U_{yT}^2] + \cdots + G_{yTn}^i [U_{yT}^n] $$
$$ M_z = G_{zT0}^i + G_{zT1}^i U_{zT} + G_{zT2}^i [U_{zT}^2] + \cdots + G_{zTn}^i [U_{zT}^n] $$
Here, the superscript \( i \) denotes the branch index, and the subscripts indicate the direction and order of the fit. By constructing the error sum for each equation and solving the normal equations, we obtain the fitting coefficients. These coefficients can be organized into matrices for each order \( k \):
$$ G_{jk} = \begin{bmatrix}
G_{x0}^1 & G_{y0}^1 & G_{z0}^1 & G_{xT0}^1 & G_{yT0}^1 & G_{zT0}^1 \\
G_{x0}^2 & G_{y0}^2 & G_{z0}^2 & G_{xT0}^2 & G_{yT0}^2 & G_{zT0}^2 \\
G_{x0}^3 & G_{y0}^3 & G_{z0}^3 & G_{xT0}^3 & G_{yT0}^3 & G_{zT0}^3 \\
G_{x0}^4 & G_{y0}^4 & G_{z0}^4 & G_{xT0}^4 & G_{yT0}^4 & G_{zT0}^4 \\
G_{x0}^5 & G_{y0}^5 & G_{z0}^5 & G_{xT0}^5 & G_{yT0}^5 & G_{zT0}^5 \\
G_{x0}^6 & G_{y0}^6 & G_{z0}^6 & G_{xT0}^6 & G_{yT0}^6 & G_{zT0}^6
\end{bmatrix}_k $$
These matrices form the calibration model that maps the output voltages to the applied forces and moments. The accuracy of this model depends on the degree of the polynomial fit, with higher degrees potentially capturing more non-linearities but requiring more computational effort.
To validate our calibration algorithm, we conducted static loading tests on an orthogonal parallel six-axis force sensor prototype. The sensor was mounted on a 6-degree-of-freedom robotic arm, and known forces and moments were applied sequentially. The output voltages from the six branches were recorded via an A/D converter. We performed 20 loading and unloading cycles for each direction to ensure data reliability. The experimental setup included a DC power supply set to 24 V, and data was processed using custom software.
The calibration procedure involved applying pure forces and moments in each of the six directions and recording the corresponding branch voltages. The data was then used to compute the fitting coefficients for different polynomial degrees. For linear fitting (\( n = 1 \)), the calibration matrix \( G \) was obtained as:
$$ G = \begin{bmatrix}
0.4975 & 1.3136 & 1.6004 & -2.2971 & 3.3070 & 0.5939 \\
0.2771 & -1.4422 & 1.2492 & 4.6481 & 3.5532 & -0.5243 \\
0.9911 & -0.1670 & 1.4586 & 1.5734 & -2.1034 & 1.7741 \\
0.0423 & -0.1920 & -0.0559 & 0.2589 & -0.2336 & -0.0968 \\
-1.5018 & 0.9150 & -0.6014 & -0.3230 & -0.7989 & -0.4862 \\
0.6645 & 0.4547 & 0.0573 & -0.2504 & 0.2423 & -1.9279
\end{bmatrix} $$
The linearity error, which measures the deviation from ideal linear behavior, was computed for each direction. The linearity matrix \( E_L \) is defined as the percentage of the maximum deviation relative to the full-scale output. For \( n = 1 \), the linearity matrix was:
$$ E_L = \begin{bmatrix}
0.0550 & 0.0151 & 0.0209 & 0.0540 & 0.0550 & 0.0673 \\
0.0232 & 0.0385 & 0.0215 & 0.0288 & 0.0258 & 0.0606 \\
0.0117 & 0.0115 & 0.0544 & 0.0409 & 0.0455 & 0.0154 \\
0.0410 & 0.0313 & 0.0491 & 0.0380 & 0.0391 & 0.0368 \\
0.0097 & 0.0118 & 0.0551 & 0.0828 & 0.0512 & 0.0537 \\
0.0126 & 0.0776 & 0.0337 & 0.0361 & 0.0361 & 0.0284
\end{bmatrix} $$
The maximum non-linearity error for \( n = 1 \) was 8.28%. For quadratic fitting (\( n = 2 \)), the calibration matrices were more complex. The coefficient matrices \( G_0 \), \( G_1 \), and \( G_2 \) were obtained as follows:
$$ G_0 = \begin{bmatrix}
-0.3308 & 0.5188 & -0.6141 & -0.9605 & -0.1196 & -0.1805 \\
0.7661 & -3.3307 & -0.2267 & -1.0614 & -0.9984 & 0.2023 \\
-0.3929 & -0.3929 & 0.1336 & 0.8671 & 0.4867 & 0.5859 \\
0.0362 & -1.0393 & 0.1273 & -0.2354 & -0.7218 & -0.8350 \\
0.4602 & -0.7632 & 0.7114 & 0.5967 & 0.6601 & 2.9325 \\
0.0715 & 0.0135 & 0.2240 & 0.0363 & -0.2000 & -0.1617
\end{bmatrix} $$
$$ G_1 = \begin{bmatrix}
0.4748 & 1.5046 & 1.7408 & -2.6541 & 3.5309 & -0.7197 \\
0.3394 & -0.9275 & 1.3698 & 4.6125 & 3.8325 & -0.6514 \\
0.3394 & -0.1728 & 1.6103 & 1.7543 & -2.5954 & 1.9129 \\
0.0442 & -0.3519 & -0.0553 & 0.2471 & 0.2573 & -0.4033 \\
-1.4053 & 0.9359 & -0.7207 & -0.1686 & -0.7882 & -0.3803 \\
0.6492 & 0.4846 & 0.0553 & -0.2363 & 0.2946 & -1.8640
\end{bmatrix} $$
$$ G_2 = \begin{bmatrix}
0.0009 & -0.0080 & -0.0058 & 0.0149 & -0.0093 & 0.0052 \\
-0.0026 & -0.0215 & -0.0050 & 0.0015 & -0.0116 & 0.0053 \\
-0.0026 & 0.0002 & -0.0063 & -0.0075 & 0.0205 & -0.0058 \\
-0.0001 & 0.0067 & -0.0000 & 0.0005 & -0.0205 & 0.0128 \\
-0.0040 & -0.0009 & 0.0050 & -0.0064 & -0.0004 & -0.0044 \\
0.0006 & -0.0012 & 0.0003 & -0.0006 & -0.0022 & -0.0027
\end{bmatrix} $$
The linearity matrix for \( n = 2 \) was:
$$ E_L = \begin{bmatrix}
0.0149 & 0.0610 & 0.0263 & 0.0439 & 0.0388 & 0.0101 \\
0.0168 & 0.0660 & 0.2371 & 0.0367 & 0.0531 & 0.0176 \\
0.0156 & 0.0090 & 0.0395 & 0.5287 & 0.0343 & 0.0267 \\
0.0289 & 0.0307 & 0.4268 & 0.3923 & 0.0225 & 0.0680 \\
0.0128 & 0.0180 & 0.2755 & 0.0488 & 0.0201 & 0.0576 \\
0.0346 & 0.0439 & 0.1892 & 0.2565 & 0.0236 & 0.0137
\end{bmatrix} $$
The maximum non-linearity error for \( n = 2 \) was 6.80%, which is lower than that for linear fitting. This demonstrates that the curve fitting approach improves calibration accuracy by better capturing the non-linearities in the six-axis force sensor.
To further analyze the performance, we computed the deviation between the calculated forces \( F_c \) and the applied forces \( F_s \) as \( \Delta L = F_c – F_s \). This deviation vector \( \Delta L = [\Delta L_{Fx}, \Delta L_{Fy}, \Delta L_{Fz}, \Delta L_{Mx}, \Delta L_{My}, \Delta L_{Mz}] \) was used to evaluate the sensor’s static characteristics. The linearity for each direction was calculated as the average deviation relative to the full-scale output. For instance, for the x-direction force \( F_x \), the linearity \( E_{LFx} \) is given by:
$$ E_{LFx} = \left[ \frac{\text{ave}(\Delta L_{Fx1})}{F_{xm}}, \frac{\text{ave}(\Delta L_{Fx2})}{F_{ym}}, \frac{\text{ave}(\Delta L_{Fx3})}{F_{zm}}, \frac{\text{ave}(\Delta L_{Fx4})}{F_{xm}}, \frac{\text{ave}(\Delta L_{Fx5})}{F_{ym}}, \frac{\text{ave}(\Delta L_{Fx6})}{F_{zm}} \right] $$
where \( F_{xm}, F_{ym}, F_{zm}, M_{xm}, M_{ym}, M_{zm} \) are the full-scale outputs for each component. The overall linearity matrix \( E_L \) provides a comprehensive view of the sensor’s performance across all directions.
Our results indicate that the curve fitting method significantly reduces non-linearity errors compared to traditional linear calibration. The improvement is particularly evident in directions where non-linear effects are pronounced, such as moments around the z-axis. The use of higher-degree polynomials allows for a more accurate representation of the sensor’s behavior, leading to better measurement precision in practical applications.
In conclusion, we have developed and validated a static calibration algorithm for orthogonal parallel six-axis force sensors based on least squares curve fitting. This method addresses the non-linearities inherent in sensor systems due to manufacturing and environmental factors. By employing polynomial fits of various degrees, we achieved a notable reduction in linearity errors, with the quadratic fit (\( n = 2 \)) yielding a maximum error of 6.80% compared to 8.28% for linear fitting. This demonstrates the superiority of our approach in enhancing the accuracy of six-axis force sensor measurements. Future work could explore adaptive fitting techniques or real-time calibration updates to further improve performance in dynamic environments.
The proposed calibration algorithm is not only effective for the specific sensor design discussed here but also offers a general framework that can be adapted to other multi-axis force sensors. By leveraging mathematical modeling and statistical optimization, we provide a robust solution for high-precision force measurement, which is essential for advanced robotics and automation systems. The integration of curve fitting into the calibration process represents a significant step forward in sensor technology, ensuring reliable and accurate data acquisition for critical applications.