Gravity Compensation for Six-Axis Force Sensor in Robotic Interactive Tasks

In modern industrial applications, robots are increasingly deployed in interactive scenarios such as polishing, grinding, and collaborative tasks with humans. Accurate force perception is crucial in these contexts, and the six-axis force sensor plays a pivotal role in measuring contact forces between the robot end-effector and the environment. However, the six-axis force sensor is susceptible to zero-point drift due to factors like temperature variations and installation preload, and the gravitational force of the end-effector introduces significant errors that vary with robot orientation. This paper addresses these challenges by proposing a comprehensive method for zero calibration and gravity compensation of the six-axis force sensor. Our approach leverages force equivalence principles and requires only a minimal set of robot posture data and corresponding six-axis force sensor measurements to compute compensation parameters. Through static and dynamic experiments, we demonstrate the effectiveness of our method in achieving high precision force measurement, with average relative errors for force and torque reduced to 2.07% and 1.35% in static tests, and 1.50% and 0.75% in dynamic tests, respectively. Furthermore, we apply this method to constant force control in robotic polishing, showcasing its practical utility in enhancing force tracking performance.

The integration of six-axis force sensors in robotic systems enables real-time monitoring of interaction forces, which is essential for tasks requiring precise contact control. For instance, in polishing operations, maintaining a constant contact force ensures consistent material removal and surface quality. However, the raw measurements from the six-axis force sensor include contributions from the sensor’s zero-point offset and the end-effector’s gravity, both of which must be compensated to obtain the true external contact force. Traditional methods often overlook installation angles or require complex calibration procedures, leading to inaccuracies. Our method simplifies this process by utilizing robot posture data to derive compensation parameters, accounting for zero-point drift, installation errors, and gravitational effects. This paper details the theoretical foundation, algorithmic implementation, and experimental validation of our approach, emphasizing its robustness and applicability in various robotic interactive tasks.

To model the interaction forces, we consider a robot system where a six-axis force sensor is mounted between the robot wrist and the end-effector. The sensor measures forces and torques that comprise three components: the sensor zero-point, the gravitational force of the end-effector, and the external contact forces. In robotic polishing or similar applications, where motion speeds are relatively low, inertial forces can be neglected, simplifying the force analysis. Thus, the measured force $F$ and torque $T$ from the six-axis force sensor can be expressed as:

$$ F = F_0 + {}^S G + F_r $$
$$ T = T_0 + l \times {}^S G + T_r $$

Here, $F_0$ and $T_0$ represent the zero-point offsets of the six-axis force sensor, ${}^S G$ is the gravitational force vector of the end-effector expressed in the sensor coordinate system ${S}$, $l$ is the position vector of the end-effector’s center of gravity in ${S}$, and $F_r$ and $T_r$ are the external contact force and torque, respectively. The gravitational force ${}^S G$ varies with the robot’s orientation, as it depends on the transformation between the sensor frame and the base frame. To compensate for these effects, we establish coordinate systems: the robot base frame ${B}$, the wrist frame ${W}$, and the sensor frame ${S}$. The orientation of ${S}$ relative to ${B}$ is given by the rotation matrix ${}^B_S R$, which can be derived from robot posture data and the fixed transformation ${}^W_S R$ between the wrist and sensor frames. Thus, the gravitational force in the sensor frame is:

$$ {}^S G = {}^S_B R \, {}^B G $$

where ${}^B G$ is the constant gravitational force vector in the base frame, which incorporates the robot’s installation tilt. The objective of zero calibration and gravity compensation is to determine the parameters $F_0$, $T_0$, $l$, and ${}^B G$, enabling the calculation of true contact forces $F_r$ and $T_r$ from sensor measurements $F$ and $T$ at any robot posture.

Our method for computing these compensation parameters involves collecting data from the six-axis force sensor at multiple robot postures where no external forces are applied, meaning $F_r = 0$ and $T_r = 0$. Under these conditions, the equations simplify to:

$$ F – F_0 – {}^S G = 0 $$
$$ T – T_0 – l \times {}^S G = 0 $$

Substituting ${}^S G = {}^S_B R \, {}^B G$ into the force equation yields:

$$ F = {}^S_B R \, {}^B G + F_0 $$

This can be rewritten in matrix form as:

$$ F = \begin{bmatrix} {}^S_B R & I_3 \end{bmatrix} \begin{bmatrix} {}^B G \\ F_0 \end{bmatrix} $$

where $I_3$ is the 3×3 identity matrix. By recording sensor force measurements $F_1, F_2, \ldots, F_n$ and corresponding orientation matrices ${}^S_B R_1, {}^S_B R_2, \ldots, {}^S_B R_n$ from $n$ different postures, we form the system:

$$ \begin{bmatrix} F_1 \\ F_2 \\ \vdots \\ F_n \end{bmatrix} = \begin{bmatrix} {}^S_B R_1 & I_3 \\ {}^S_B R_2 & I_3 \\ \vdots & \vdots \\ {}^S_B R_n & I_3 \end{bmatrix} \begin{bmatrix} {}^B G \\ F_0 \end{bmatrix} $$

This is represented as $f = A g$, where $f$ is a $3n$-dimensional vector, $A$ is a $3n \times 6$ matrix, and $g$ is the 6-dimensional parameter vector $\begin{bmatrix} {}^B G & F_0 \end{bmatrix}^T$. For $n \geq 3$, this overdetermined system can be solved using least squares:

$$ g = (A^T A)^{-1} A^T f $$

Similarly, for the torque equation, we have:

$$ T = l \times {}^S G + T_0 $$

Expressing the cross product as a matrix multiplication, we define the skew-symmetric matrix $M$ from ${}^S G = \begin{bmatrix} g_x & g_y & g_z \end{bmatrix}^T$:

$$ M = \begin{bmatrix} 0 & -g_z & g_y \\ g_z & 0 & -g_x \\ -g_y & g_x & 0 \end{bmatrix} $$

Thus, the torque equation becomes:

$$ T = M l + T_0 = \begin{bmatrix} M & I_3 \end{bmatrix} \begin{bmatrix} l \\ T_0 \end{bmatrix} $$

With torque measurements $T_1, T_2, \ldots, T_n$ and corresponding matrices $M_1, M_2, \ldots, M_n$ derived from ${}^S G$ at each posture, we form:

$$ \begin{bmatrix} T_1 \\ T_2 \\ \vdots \\ T_n \end{bmatrix} = \begin{bmatrix} M_1 & I_3 \\ M_2 & I_3 \\ \vdots & \vdots \\ M_n & I_3 \end{bmatrix} \begin{bmatrix} l \\ T_0 \end{bmatrix} $$

This system, denoted $t = B h$, where $h = \begin{bmatrix} l & T_0 \end{bmatrix}^T$, is solved as:

$$ h = (B^T B)^{-1} B^T t $$

Once the compensation parameters are determined, real-time zero calibration and gravity compensation for the six-axis force sensor at any robot posture involve computing ${}^S G$ from the current orientation ${}^S_B R$ and ${}^B G$, then applying:

$$ F_r = F – F_0 – {}^S G $$
$$ T_r = T – T_0 – l \times {}^S G $$

To validate our method, we conducted experiments using an industrial robot equipped with a six-axis force sensor and a custom end-effector for polishing tasks. The robot used was a Nachi MC20-01 with a repeatability of ±0.06 mm, and the six-axis force sensor was an ATI Mini45 IP65, with specifications detailed in Table 5.

Table 5: Specifications of the Six-Axis Force Sensor
Parameter Fx/Fy Fz Tx/Ty Tz
Range 580 N 1160 N 20 Nm 20 Nm
Calibration Accuracy 1.25% 1.25% 1.25% 1.25%

For parameter calculation, we collected data at five random robot postures, represented by roll-pitch-yaw angles and converted to rotation matrices. The sensor measurements at these postures are summarized in Table 6.

Table 6: Six-Axis Force Sensor Measurements at Different Postures
Posture Fx (N) Fy (N) Fz (N) Tx (Nm) Ty (Nm) Tz (Nm)
1 17.95 38.88 57.46 -1.44 2.85 -0.78
2 32.24 21.71 55.74 -0.39 3.59 -0.31
3 14.01 -6.09 72.95 1.29 2.89 0.41
4 40.06 0.73 33.59 0.92 3.41 0.31
5 21.80 -28.65 30.93 2.70 2.26 1.06

Using these data, we computed the compensation parameters via the least squares method, as shown in Table 7.

Table 7: Computed Compensation Parameters for the Six-Axis Force Sensor
Parameter Value
$F_0$ [-8.15, 8.86, 32.05]^T N
$T_0$ [0.42, 0.47, -0.00]^T Nm
$l$ [-27.20, -1.24, 61.21]^T mm
${}^B G$ [-0.09, 0.91, -48.29]^T N

Static compensation experiments were performed by applying known weights (0.5 kg to 3 kg) to the end-effector at additional postures. The relative errors for force and torque were calculated as:

$$ E_F = \frac{ \| F_m – F_r \| }{ \| G + F_r \| } \times 100\% $$
$$ E_T = \frac{ \| T_m – T_r \| }{ \| G \times l + F_r \times l_t \| } \times 100\% $$

where $F_m$ and $T_m$ are the compensated measurements, $F_r$ and $T_r$ are the true force and torque, $G$ is the end-effector gravity, and $l_t$ is the weight application point. The results, averaged over multiple tests, showed force and torque errors of 2.07% and 1.35%, respectively, confirming the accuracy of our six-axis force sensor compensation method.

Dynamic experiments involved moving the robot between postures while recording sensor data. The compensated forces and torques remained near zero, with relative errors of 1.50% for force and 0.75% for torque, demonstrating that inertial effects are negligible under slow motion and that the six-axis force sensor compensation performs robustly.

We further applied our method to constant force control in robotic polishing. Using a voice coil actuator-based end-effector for active force control, we implemented a PID controller to maintain desired contact forces. The control law is:

$$ u = \frac{ F_d + K_p F_e + K_i \int_0^t F_e \, d\tau + K_d \frac{dF_e}{dt} }{ K_m } $$

where $u$ is the control current, $F_d$ is the desired force, $F_e = F_d – F_c$ is the force error, $F_c$ is the compensated contact force from the six-axis force sensor, and $K_m$ is the motor constant. Experiments compared force tracking with and without gravity compensation. Without compensation, force control exhibited significant errors and overshoot, especially at low forces, due to unaccounted gravitational components. With compensation, the system achieved stable force tracking across different postures and force setpoints, as summarized in Table 8.

Table 8: Force Control Performance with and Without Gravity Compensation
Condition Force Setpoint (N) Average Error (%) Overshoot (%)
Without Compensation 5 25.6 40.2
With Compensation 5 2.1 5.3
Without Compensation 20 18.7 22.4
With Compensation 20 1.8 3.9

In conclusion, our method for zero calibration and gravity compensation of the six-axis force sensor effectively addresses key challenges in robotic force perception. By leveraging robot posture data and a simple least squares approach, we eliminate the effects of zero-point drift, installation errors, and gravitational forces. Experimental results validate the method’s precision in both static and dynamic scenarios, and its application to constant force control underscores its practical value. Future work could explore adaptive compensation for varying payloads and integration with more complex control strategies. The six-axis force sensor remains a critical component in advancing robotic interaction capabilities, and our contribution enhances its reliability in industrial applications.

The robustness of our six-axis force sensor compensation method stems from its mathematical foundation and minimal data requirements. Unlike previous approaches that ignore installation angles or rely on additional sensors, our technique uses inherent robot kinematics to derive accurate parameters. This not only reduces costs but also simplifies implementation in existing systems. Moreover, the six-axis force sensor’s versatility makes it suitable for diverse tasks beyond polishing, such as assembly, rehabilitation robotics, and human-robot collaboration. As robots continue to evolve, precise force sensing will be indispensable, and methods like ours will play a vital role in ensuring high-performance interactions.

In summary, the six-axis force sensor is empowered by our compensation algorithm to deliver reliable force measurements, facilitating advanced robotic applications. We encourage further research into real-time parameter updates and machine learning enhancements to handle dynamic environments. The six-axis force sensor, when properly compensated, unlocks new potentials in automation, and we are committed to refining these techniques for future innovations.

Scroll to Top