#
Six-Axis Force Torque Sensor Model-Based In Situ Calibration Method and Its Impact in Floating-Based Robot Dynamic Performance^{ †}

^{*}

^{†}

Next Article in Journal

Next Article in Special Issue

Next Article in Special Issue

Previous Article in Journal

Previous Article in Special Issue

Previous Article in Special Issue

Dynamic Interaction Control Lab at Istituto Italiano di Tecnologia, 16163 Genova, Italy

Author to whom correspondence should be addressed.

This paper is an extension version of the conference paper: Francisco, J.A.C.; Gabriele, N.; Silvio, T.; Francesco, N.; Daniele, P. Model Based In Situ Calibration with Temperature compensation of 6 axis Force Torque Sensors. In Proceedings of the 2019 International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, Canada, May 20–24, 2019.

Received: 22 October 2019
/
Revised: 4 December 2019
/
Accepted: 10 December 2019
/
Published: 13 December 2019

(This article belongs to the Special Issue Sensors for Biomechanics Application)

A crucial part of dynamic motions is the interaction with other objects or the environment. Floating base robots have yet to perform these motions repeatably and reliably. Force torque sensors are able to provide the full description of a contact. Despite that, their use beyond a simple threshold logic is not widespread in floating base robots. Force torque sensors might change performance when mounted, which is why in situ calibration methods can improve the performance of robots by ensuring better force torque measurements. The Model-Based in situ calibration method with temperature compensation has shown promising results in improving FT sensor measurements. There are two main goals for this paper. The first is to facilitate the use and understanding of the method by providing guidelines that show their usefulness through experimental results. Then the impact of having better FT measurements with no temperature drift are demonstrated by proving that the offset estimated with this method is still useful days and even a month from the time of estimation. The effect of this is showcased by comparing the sensor response with different offsets simultaneously during real robot experiments. Furthermore, quantitative results of the improvement in dynamic behaviors due to the in situ calibration are shown. Finally, we show how using better FT measurements as feedback in low and high level controllers can impact the performance of floating base robots during dynamic motions. Experiments were performed on the floating base robot iCub.

Robots are expected to perform highly dynamical motions. Being able to perform these motions repeatably and reliably is an active research topic. A crucial part of these motions is the interaction of the robot with other objects or the environment. Whenever an interaction happens there exist an exchange of forces. Therefore, knowledge of the forces exchanged at contacts is a fundamental part of endowing robots with the ability to perform dynamical motions. The six-axis force-torque (FT) sensors convey a complete information of a contact force by providing measurements of the three axes of forces and three axes of torques. Robots with their base fixed to the ground have been using FT sensors to measure contact forces since a long time [1,2,3]. Despite being common sensors in many floating base platforms [4,5,6,7,8,9], their potential use in floating base robots has not been full documented. One of the reasons is that the reliability of this sensors may decrease after mounting them [10,11,12,13]. The Model-Based In Situ Calibration Method has shown promising results in the improvement of the reliability of force torque sensors [14]. By extending its benefits and showcasing the improvement of floating base robots performance with this method, we aim to encourage the use of this sensor in these types of platforms in more effective ways.

The most common phenomena used in FT sensors to measure forces is the change in resistance of silicon due to strain [15]. In more technical words, the piezoresistive response to strain of semiconductor material. This material also changes resistance with temperature. Because of this, depending on the calibration procedure, the sensor might suffer from temperature drift [14,16,17]. This is the undesired change of measurement due to changes in temperature. Methods to deal with temperature compensation such as an array of strain gauges in a Wheatstone Bridge configuration are ineffective in these sensors due to the inner structure of FT sensors.

Typically, the offset in FT sensors is removed before use. Commonly floating base robots use this sensor to detect and measure contacts. Thus, the time of collision is unknown a priori. Removing the offset after the sensor has established contact would make the value measured by the FT sensor incorrectly. Therefore, minimizing the effect of drift in the FT sensors can improve the reliability of the sensor in floating base robots.

The typical calibration procedure considers, first, identifying the offset when no load is applied on the sensor. Then, carefully placing some weights in specific positions to have well known forces and torques in order to span the space of the sensor. To resolve the coupling effects, it is necessary to have calibration points with as many orientations of the force vector as possible based on the sensor’s coordinate system. The calibration data should ideally be a representative dataset of what the sensor will be subjected to.

Due to the nature of the technology used, solving with least squares remains the most popular [18]. Calibrations of these sensors are known to loose effectiveness over time. Leading companies for FT sensors [19,20] recommend to calibrate the sensors at least once a year. This normally implies that the sensor must be unmounted, sent back to them and then mounted again.

The most common calibration procedure is a quasi-static calibration of the sensor. Calibration procedures can be classified into ex situ when the sensor is calibrated in a place different where is used, and in situ if it is calibrated on the place it will be used.

Ex situ calibration is usually performed using specialized structures [1,21,22,23] or relying on previously calibrated sensors [24,25,26,27]. The latter has the disadvantage of trusting on the calibration of another sensor which might not be perfect. The in situ methods allow to perform the calibration in the sensor’s final destination, avoiding the decreases in performance that arise from mounting and removing the sensors from its working structure. Some in situ calibration methods have relied on other FT sensors [27,28]. Others exploit known relationships between some quantities such as joint torques [29] or acceleration measurements [10] to obtain the reference forces. Some calibrate the sensor mounted in their final position by designing a calibration bench that accommodates the sensor and the mounted structure [30]. This requires the design of a particular structure and the mounting and dismounting of the whole part to calibrate one sensor. Six-dimensional force/torque sensors can be calibrated based on the shape from motion method with complex algorithm. This requires the use of thre different sets of weights and a minimal setup with a fixed pulley. It requires a calibration of the sensor three times per load, so in total, nine datasets [31]. In all of these methods, the effect of temperature is either not considered or carefully controlled when calibrating without accounting for changes in the working conditions. Other methods exploit the encoders and the model of the robot to provide the reference forces and torques [11]. This method was successfully improved to account for temperature by considering temperature effects on the sensor as linear [14].

There are two main contributions of this paper. The first is to provide useful tips to better exploit the Model-Based in situ calibration method with temperature compensation in a simple way. The other is to showcase the impact of the improved measurements obtained with this calibration in the dynamic performance of floating base robots.

The paper is structured as follows: in Section 2, the in situ calibration method is detailed. It also contains a description of the robotic platform and the ways the sensor information is used in such a platform. Section 3 contains the useful tips to better exploit the Model Based in situ calibration method with temperature compensation in a simple way and shows a way to exploit the generic formulation to simultaneously estimate offset and calibration matrix. We also describe two new types of datasets with the aim to discuss how to understand sensor excitation easily. A simple non-intrusive method to exploit the resulting calibration is described. A description of the constant offset hypothesis can be found as well. Section 4 details how the experiments were setup, the datasets used and how the results were validated. In Section 5, the results are used to verify the usefulness of the tips, the constant offset hypothesis and improvements in floating-based robot performance when using the Model-based in situ calibration method with temperature compensation. Conclusions can be found in Section 6.

In this section, the developed in situ calibration method is described in detail. Starting from the general mathematical model of the FT sensor to the problem statement that is solved through the Model-Based in situ calibration method.

There are two physical laws at play in strain gauge force sensors. One is common to all kinds. It is the relationship between the deformation of a spring and forces, it is the Hooke’s law of elasticity.
where f is the force value in $\mathrm{N}$, k is a constant of the material $\mathrm{N}{\mathrm{m}}^{-1}$ and $\u2206x$ is the displacement (or strain) in $\mathrm{meter}$. It is valid as long as the material does not reach plastic deformation. Another definition of Hooke’s Law is the relationship between engineering stress and engineering strain for elastic deformation [32]. Stress $\sigma $ ($\mathrm{Pa}$) is expressed in terms of force applied to a certain cross-sectional area A (${\mathrm{m}}^{2}$) of an object,

$$f=k\u2206x,$$

$$\sigma =f/A.$$

For FT sensors A is the cross-section of an internal beam of the FT sensor. Strain $\u03f5$ is the deformation of a physical body under the action of applied forces. It has no units. Strain is calculated as
Using the other definition of Hooke’s Law the relationship between stress and strain is:
where $\mathrm{E}$ is the modulus of elasticity of the material and depends on the kind of stress and strain applied to it. The other principle depends on the type of sensing technology. For semiconductor strain gauges it is the piesoresistive effect. The model is the linear function [15]:
where R is the resistance value in $\mathsf{\Omega}$, $\u03f5$ is the strain, ${S}_{\u03f5}$ is the gauge factor of the conductor, ${R}_{o}$ is the resistance with no stress applied in $\mathsf{\Omega}$.

$$\u03f5=\frac{{l}_{i}-{l}_{0}}{{l}_{0}}=\frac{\u2206l}{{l}_{0}},$$

$$\sigma =\mathrm{E}\u03f5$$

$$R={R}_{o}(1+{S}_{\u03f5}\u03f5),$$

Combining both physical effects gives the following transfer function:

$$R={R}_{o}(1+{S}_{\u03f5}\frac{f}{\mathrm{E}A})={R}_{o}(1+{S}_{\u03f5}\frac{f}{k})$$

Therefore the most used model for predicting the force-torque from the raw strain gauges measurements of the sensor is a linear model. The inverse function is:
where

$$f=\frac{(R-{R}_{0})k}{{S}_{\u03f5}{R}_{0}}=\frac{Rk}{{S}_{\u03f5}{R}_{0}}-\frac{k}{{S}_{\u03f5}}=cR-O,$$

$$\begin{array}{cc}\hfill c=& \frac{k}{{S}_{\u03f5}{R}_{0}}\\ \hfill O=& \frac{k}{{S}_{\u03f5}}.\end{array}$$

Considering possible errors during the calibration procedure, linear regression is the most suitable approximation function. Multi-axis force-torque sensors usually contain multiple strain gauges, each of them can be seen as a separate sensor. Because of this, multiple regression is a valid option for this kind of sensor. Therefore, each force axis will be calibrated using the information from all strain gauges,
where ${f}_{i}$ is the force in the i-th axis in $\mathrm{N}$ or $\mathrm{N}\mathrm{m}$ depending on the axis, ${R}_{m}$ is the digital response of the m-th strain gauge in bit counts, ${c}_{m}$ is the slope of the linear model of the m-th strain gauge in $\mathrm{N}/\mathrm{bit}$ and ${O}_{m}$ is the bias of the m-th strain gauge. The orientation of ${f}_{i}$ with regards to the m-th strain gauge will change the value of k required. It depends on the strain being normal, shear or a combination of both. As a result, the array of ${c}_{m}$ coefficients ${C}_{m}$ and ${O}_{m}$ will be different for each i-th axis. Taking this in consideration, the approximation function for these sensors for all axes has the following form:
where $\mathrm{f}\in {\mathbb{R}}^{6}$ are the 6D forces, $C\in {\mathbb{R}}^{6\times m}$ is the calibration matrix in $\mathrm{N}/\mathrm{bit}$, $r\in {\mathbb{R}}^{m}$ are the raw measurements (sensor’s response in bit counts) and $o\in {\mathbb{R}}^{6}$ is the offset which is also a 6D force vector. Both the calibration matrix C and the offset o are unknown and need to be estimated. This formulation allows to calibrate all axes at the same time although they can be considered independent problems.

$${f}_{i}={c}_{1}{R}_{1}-{O}_{1}+{c}_{2}{R}_{2}-{O}_{2}+\dots {c}_{m}{R}_{m}-{O}_{m},$$

$$\mathrm{f}=Cr+o$$

Calibrating an FT in situ requires a dataset of samples $({r}_{i},{\mathrm{f}}_{i}),\phantom{\rule{4pt}{0ex}}i=1\dots N$ obtained from the sensor mounted on the robot. When no contact force is acting on the limb on which the FT sensor is mounted, the expected force-torque applied on the sensor can be computed using the robot model and the instantaneous joints position, velocity and acceleration [33,34,35]. Since reference forces ${\mathrm{f}}_{i}$ are obtained this way, the method is named Model Based In Situ Calibration. The robot parameters are assumed to be known. There are three main components to this method. The first is to formulate the calibration problem decoupling the offset estimation problem from the calibration matrix estimation problem. The second one is to cast the calibration matrix estimation problem as a regularized least square problem, in which the regularization considers the known information of a previous calibration matrix. Lastly, having a way to consider other phenomena that might be creating some drift, the assumption considered is that other phenomena are also linear.

The multiple linear regression problem in Equation (9) can be solved using the least squares technique. The problem is stated as follows:
where N is the number of data samples in the dataset. The offset is usually estimated separately from the calibration matrix. Because the offset can vary across different experiments due to temperature drift. The offset is removed from the raw measurements separately, and the calibration problem is reduced to:
where ${\widehat{\mathrm{f}}}_{i}$ and ${\widehat{r}}_{i}$ are the reference 6D forces and raw measurements respectively with the offset removed.

$$\underset{C,o}{\text{arg min.}}\phantom{\rule{4pt}{0ex}}\phantom{\rule{3.33333pt}{0ex}}\frac{1}{N}\sum _{i=1}^{N}{\u2225{\mathrm{f}}_{i}-C{r}_{i}-o\u2225}^{2}$$

$$\underset{C}{\text{arg min.}}\phantom{\rule{4pt}{0ex}}\phantom{\rule{3.33333pt}{0ex}}\frac{1}{N}\sum _{i=1}^{N}{\u2225{\widehat{\mathrm{f}}}_{i}-C{\widehat{r}}_{i}\u2225}^{2}.$$

In ex situ calibration matrix estimation methods, the input data $({r}_{i},{\mathrm{f}}_{i}),\phantom{\rule{4pt}{0ex}}i=1\dots N$ are obtained by applying a set of known masses in known locations with the sensor mounted on a workbench. Thus, this kind of ex situ calibration matrix will be referred as Workbench matrix. Assuming the calibration performed on the sensor was correct, the new calibration matrix must be similar to the Workbench matrix. To enforce this assumption, a regularization term to penalize the difference with respect to the Workbench matrix is introduced. The new calibration matrix is obtained through the following optimization problem:
where ${C}_{w}\in {\mathbb{R}}^{6\times \rho}$ is the Workbench matrix given by the sensor producer, $\lambda $ is used to penalize the regularization term and N is the number of data points in the dataset. The regularization is added in order to try to keep the calibration matrix as close to the Workbench matrix, but keeping an improved performance after the sensor is mounted on the robot.

$${C}^{\ast}=\underset{C\in {\mathbb{R}}^{6\times 6}}{\text{arg min.}}\phantom{\rule{4pt}{0ex}}\phantom{\rule{3.33333pt}{0ex}}\frac{1}{N}\sum _{i=1}^{N}{\u2225{\widehat{\mathrm{f}}}_{i}-C{\widehat{r}}_{i}\u2225}^{2}+\lambda {\u2225C-{C}_{w}\u2225}^{2}$$

The form of the solution is obtain following these steps:

- Consider the Matrix form of the least squares$${\u2225{F}^{\top}-C{R}^{\top}\u2225}^{2}+\lambda {\u2225C-{C}_{w}\u2225}^{2},$$
- Given $X\in {\mathbb{R}}^{m\times n}$, $\mathrm{vec}(X)\in {\mathbb{R}}^{nm}$ indicates the column vector attained by stacking the columns of the matrix X. Due to the definition of $\mathrm{vec}(\phantom{\rule{0.166667em}{0ex}}\xb7\phantom{\rule{0.166667em}{0ex}})$, it follows that$$\mathrm{vec}(AXB)=\left({B}^{\top}\otimes A\right)\mathrm{vec}(X),$$
- If we consider that $C{R}^{\top}={I}_{6}C{R}^{\top}$, where ${I}_{6}$ is a 6 by 6 identity matrix, then, using the Kronecker property mentioned in Equation (14), we can put Equation (13) in the column vectorized form:$${\u2225\mathrm{vec}({F}^{\top})-(R\otimes {I}_{6})\mathrm{vec}(C)\u2225}^{2}+\lambda {\u2225\mathrm{vec}(C)-\mathrm{vec}({C}_{w})\u2225}^{2}.$$
- The minimum of a quadratic form take place when the derivative is equal to 0. Using vector differentiation properties, the solution to Equation (15) can be written as$$\mathrm{vec}({C}^{\ast})={({K}_{R}^{\top}{K}_{R}+\lambda {I}_{6\ast 6})}^{-1}({K}_{R}^{\top}\mathrm{vec}({F}^{\top})+\lambda \mathrm{vec}({C}_{w})),$$

When considering other phenomena as linear variables the final form of the problem can be expressed as:
where ${C}_{t}\in {\mathbb{R}}^{6\times 1}$ are the added linear variables calibration coefficients and $t\in {\mathbb{R}}^{n}$ are the added linear variable values. In this case, the problem is not only to estimate the calibration matrix C and the offset o, but also ${C}_{t}$ which accounts for the temperature changes in the sensor.

$${C}^{\ast},{C}_{t}^{\ast}=\underset{C\in {\mathbb{R}}^{6\times 6}}{\text{arg min.}}\phantom{\rule{4pt}{0ex}}\phantom{\rule{3.33333pt}{0ex}}\frac{1}{N}\sum _{i=1}^{N}{\u2225{\widehat{\mathrm{f}}}_{i}-(C\widehat{{r}_{i}}+{C}_{t}t)\u2225}^{2}+\lambda {\u2225C-{C}_{w}+{C}_{t}-{C}_{{t}_{w}}\u2225}^{2}.$$

Given that $C{\widehat{r}}_{i}+{C}_{t}t=\begin{array}{c}\hfill [C,{C}_{t}]\end{array}\begin{array}{c}\hfill \left[{\widehat{r}}_{i}t\right]\end{array}$ adding a linear variable can be seen as adding an extra raw signal to the previous described solution. What needs to be done is:

- Augment the raw measurements matrix R with the added linear value ${R}_{a}=[R,t],t\in {\mathbb{R}}^{n}$, in R each column has all the raw measurements of a given raw signal.
- Augment the Workbench matrix by adding the coefficients regarding the added linear variable ${C}_{{w}_{a}}=[{C}_{w},{C}_{{t}_{w}}]$, where ${C}_{{t}_{w}}$ is the added linear variable value at the time of calibration. If is not available, is recommended to set it as a vector of zeros ${0}_{6\times 1}$.
- Since ${C}_{{w}_{a}}\in {\mathbb{R}}^{6\times \rho +1}$ this should be reflected in $L=\lambda \ast {I}_{6\ast (\rho +1)}$, if the Workbench coefficients of the added linear variable ${C}_{{t}_{w}}$ are not provided, it is suitable to set the last a values in the diagonal($L$) to 0. This avoids influencing the coefficients of the added variable with any previous information.
- The final form of the solution is$$\mathrm{vec}({\begin{array}{c}\hfill C,{C}_{t}\end{array}}^{\ast})={({K}_{{R}_{a}}^{\top}{K}_{{R}_{a}}+L)}^{-1}({K}_{{R}_{a}}^{\top}\mathrm{vec}({F}^{\top})+L\mathrm{vec}({C}_{{w}_{a}}))$$

This formulation allows to easily expand the solution to m number of extra linear variables. The extra linear variable can have its offset removed or not. Assumptions can be made by taking the first value and consider it as the offset of that variable.

Two methods are proposed to remove the offset from the estimation problem.

- In Situ offset estimation proposed in [10], but instead of accelerometers measurements the force torque reference values estimated with the model of the robot are used.
- Centralized offset removal is obtained by removing the mean value from the raw measurements (${\mu}_{r}$) and the reference values (${\mu}_{f}$).

In both cases, we end up with a modified version of the raw data in which the effect of the offset is removed. With a little abuse of notation we have:
where ${\widehat{r}}_{i}$ and ${\widehat{\mathrm{f}}}_{i}$ are the data used to solve the model-based in situ calibration problem (12).

$${\widehat{r}}_{i}=\left\{\begin{array}{cc}{r}_{i}-{o}_{r}\hfill & \mathrm{in}\phantom{\rule{4.pt}{0ex}}\mathrm{situ}\phantom{\rule{4.pt}{0ex}}\mathrm{offset}\phantom{\rule{4.pt}{0ex}}\mathrm{estimation}\hfill \\ {r}_{i}-{\mu}_{r}\hfill & \mathrm{centralized}\phantom{\rule{4.pt}{0ex}}\mathrm{offset}\phantom{\rule{4.pt}{0ex}}\mathrm{removal}\hfill \end{array}\right.$$

$${\widehat{\mathrm{f}}}_{i}=\left\{\begin{array}{cc}{\mathrm{f}}_{i}\hfill & \mathrm{in}\phantom{\rule{4.pt}{0ex}}\mathrm{situ}\phantom{\rule{4.pt}{0ex}}\mathrm{offset}\phantom{\rule{4.pt}{0ex}}\mathrm{estimation}\hfill \\ {\mathrm{f}}_{i}-{\mu}_{f}\hfill & \mathrm{centralized}\phantom{\rule{4.pt}{0ex}}\mathrm{offset}\phantom{\rule{4.pt}{0ex}}\mathrm{removal}\hfill \end{array}\right.$$

Each offset estimation type is based on a different assumption:

- physical assumption: mass generates a sphere in the force space when making spherical movements.
- mathematical assumption: taking out the mean from the dataset implies no offset in the calibration data.

Two types of datasets that were used previously to calibrate a sensor.

**Grid**: moving the legs creating a grid pattern while being on a fixed pole. The contact happens at the waist of the robot. The leg is not bent to avoid changes in the center of mass of the leg during the experiment.**Balancing Support leg**: doing an extended one foot balancing demo with widespread leg movements. The contact is on the support leg foot. Either right (BSR) or left (BSL) depending on the support leg.

A calibration dataset could be formed by one of these kinds of dataset or a combination of them.

Previous results showed that the sphere estimation type using the Grid dataset gave the best results when no temperature was taken into account [11]. Adding the temperature required considering more than one dataset to incorporate multiple temperatures. It was proven that adding the temperature led to a further increase in performance. Mixing types of datasets gave better results [14]. The in situ offset estimation type with temperature was shown to be better, followed closely by the centralized offset removal with or without temperature, using the same $\lambda $ value.

In those tests, no temperature offset was considered. The validation datasets were collected the same day in between the calibration datasets. The results shown were about the external force estimation, but how this affects robot performance was not presented.

The experimental platform is the floating base robot iCub. It is a child-sized humanoid robot originally developed during the RobotCub European Project for research in embodied cognition [36] by the iCub Facility at the Italian Institute of Technology.

It has 53 degrees of freedom (DoF), weighs around 33 kg and is 104 cm tall. The DoFs are distributed as in the following way: six for each leg, three for the torso, six for the head and eyes, seven for each arm and nine for each hand. One additional servo motor is used to open and close the eyelids. For the calibration, only a subset of 32 DOFs (legs, torso, arms, and neck) are used. The version of iCub used is known as 2.5. It has Brushless Direct Current electric motor (BLDC) with an Harmonic Drive transmission, making them suitable for joint torque control.

More details on the actuation and mechanics of the iCub 2.5 can be found in [4]. An image of the robot is presented in Figure 1.

The iCub has various sensors including inertial measurement units (IMU), force-torque (FT) sensors, cameras, microphones, joint encoders and tactile sensor arrays, that cover the surface of the robot. Six custom-made six-axis FT sensors [37]) are placed as shown in Figure 1. Only the force-torque sensors mounted on the legs and feet have temperature sensors. These sensors use silicon strain gauge technology.

The interface to interact with the iCub is through Yet Another Robot Platform (YARP). More specifically, YARP supports building a robot control system as a collection of programs communicating in a peer-to-peer way, with an extensible family of connection types (tcp, udp, multicast, local, MPI, mjpg-over-http, XML/RPC, tcpros, ...) that can be swapped in and out.

The force-torque sensing has five main uses in the iCub:

- To estimate the FT sensors offset before experiments.
- As a threshold to know if a stable contact has been established between the robot and the ground.
- To give the feedback to the low-level joint torque controller.
- To estimate dynamical quantities used by high-level controllers, such as the center of pressure (CoP) and the zero moment point (ZMP).
- To give feedback to high-level controllers.

To Estimate the FT Sensors Offset before Experiments

A typical sequence before using the robot, involves removing the offset when only one contact with the environment exists. This offset estimation requires the information from the mass vector. This can be imposed in a known robot configuration or measured using an IMU. This offset is then subtracted from the measurements. There are three possibilities to estimate the offset:

- The robot is hanging from the torso and mass is measured with IMU.
- The robot is standing on one leg and the mass is measured using IMU.
- The robot is standing on one leg and the mass is imposed to be acting in the axis normal to the ground.

As a Threshold

The simplest use is as a threshold. When the load on the sensors reaches a chosen value, the controllers change state assuming a stable contact has been achieved. The chosen value can be a percentage of the total body weight of the robot. Example of applications are balancing [38] and standing up [39].

To Calculate Dynamic Quantities

The forces acting on a moving robot can be separated into two categories: forces exerted by contact and forces transmitted without contact (mass and, by extension, inertia forces). The CoP is linked to the former, and the ZMP to the latter. Nonetheless, it has been shown that both points coincide [40]. Therefore, is possible to use the contact force information to calculate dynamic quantities such as the ZMP and by extension affect the estimation of the center of mass (CoM).

The CoP is defined as the point where the resultant force can be exerted with a zero resultant moment. When the contact is with a flat ground the CoP and ZMP, can be calculated as:
where ${P}_{CoP}={P}_{ZMP}$ is the CoP (ZMP), ${}_{s}\tau $ is the torque measurement of the FT sensor at the ankle and ${}_{s}f$ is the vertical force measurement of the FT sensor at the ankle.

$${P}_{CoP}={}_{s}\tau /{}_{s}f,$$

Using the linear inverted pendulum model constraining the height of the CoM to be constant (${P}_{Co{G}_{z}}$), the CoM dynamics can be estimated from the ZMP with the following equation:
The FT sensor measurements have a direct impact on the estimation of the ZMP and as a consequence in estimation of the CoM. This information is used in a walking controller [41].

$${\ddot{P}}_{CoM}=({P}_{CoM}-{P}_{ZMP})\frac{g}{{P}_{Co{M}_{z}}},$$

As Feedback for Joint Torque Controller

The scheme of this controller can be seen in Figure 2. Description of the variables in the scheme can be found in Table 1. It is a PID controller with friction compensation. The feedback values are the estimated joint torques using the measurements from the FT sensor [35].

As Feedback for Jerk Controller

A recent method for exploiting force-torque sensing is to use the estimated contact force as feedback to a high-level jerk controller of floating base systems with contact-stable parametrised force feedback [42].

The momentum rate-of-change equals the summation of all the external wrenches acting on the robot. In a multi-contact scenario, the external wrenches reduce to the contact forces plus the mass force:
where $H\in {\mathbb{R}}^{6}$ is the robot’s momentum, ${A}_{k}\in {\mathbb{R}}^{6\times 6}$ is the matrix mapping the k-th contact wrench to the momentum dynamics, ${}^{\mathcal{I}}{o}_{{\mathcal{C}}_{k}}\in {\mathbb{R}}^{3}$ is the origin of the frame associated with the k-th contact, and ${}^{\mathcal{I}}{o}_{CoM}\in {\mathbb{R}}^{3}$ is the CoM position.

$$\begin{array}{c}\dot{H}={\displaystyle \sum _{k=1}^{{n}_{c}}}{A}_{k}{\mathrm{f}}^{k}-mg{e}_{3}=A\mathrm{f}-mg{e}_{3},\\ A:=\phantom{\rule{1.42262pt}{0ex}}[{A}_{1},\dots \phantom{\rule{1.42262pt}{0ex}},{A}_{{n}_{c}}]\in {\mathbb{R}}^{6\times 6{n}_{c}},\\ {A}_{k}=\left[\begin{array}{cc}{I}_{3}& {0}_{3}\\ S({\phantom{\rule{0.166667em}{0ex}}}^{\mathcal{I}}{o}_{{\mathcal{C}}_{k}}-{\phantom{\rule{0.166667em}{0ex}}}^{\mathcal{I}}{o}_{CoM})& {I}_{3}\end{array}\right],\end{array}$$

By considering the invertible parametrization ${\mathrm{f}}^{k}=\varphi ({\xi}^{k})$, it is possible to ensure the friction cone constraints while avoiding to use inequality constraints. The mentioned controller uses the following optimisation problem:
where ${K}_{d},{K}_{p},{K}_{i}\in {\mathbb{R}}^{6\times 6}$ are symmetric and positive definite matrices, ${H}_{d}$ is the reference momentum, X is the adjoint transformation matrix from the contact to the base of the robot [43] and u is the control input.

$$\begin{array}{l}\underset{u=\dot{\xi}}{\text{arg min.}}\phantom{\rule{3.33333pt}{0ex}}{\u2225{\ddot{H}}^{d}-\ddot{H}(\dot{\xi})\u2225}^{2}\\ \mathrm{subject}\phantom{\rule{4.pt}{0ex}}\mathrm{to}:\end{array}$$

$$\begin{array}{c}\ddot{H}(\dot{\xi})=\dot{X}\varphi (\xi )+X{\delta}_{\xi}\varphi (\dot{\xi}),\end{array}$$

$$\begin{array}{c}{\ddot{H}}^{\ast}={\ddot{H}}_{d}-{K}_{d}(\dot{H}-\dot{{H}_{d}})-{K}_{p}(H-{H}_{d})-{K}_{i}{\int}_{0}^{t}(H-{H}_{d})dt.\end{array}$$

The contact forces are calculated using the FT measurement. In this controller, the FT sensor measurements are directly used as feedback since they affect directly the computation of the momentum rate-of-change.

One of the aims of the paper is to provide useful tips to use the calibration method more effectively. The effectiveness of this tips is shown using real robot experiments.

From the resulting generic formulation to add linear variables, described in Section 2.2.3, it is possible to formulate the problem in a way that the offset does not have to be removed from the calibration data before computing the least squares solution. This offset estimation type is named one shot estimation. It estimates the offset as another set of coefficients of the calibration matrix by adding a linear variable in which the reference values are all 1. Contrary to the other two offset estimation types it makes no assumptions and allows the least squares to simultaneously solve the offset with the calibration matrix.

Based on availability and excitation of the sensor, two more types of datasets were studied.

**Balancing Non-Support leg**: doing an extended one foot balancing demo with widespread leg movements. The contact is on the other leg foot. Either left (BNSL) or right (BNSR) depending on the support leg.**Z-Torque**: doing movements designed to generate torques around the z axis, while the robot is on a fixed pole.

After adding this two dataset types the resulting 3D force space and 3D torque space with all types of datasets are depicted in Figure 3. Studying the results of these new types of datasets allows to understand how the calibration results are affected by the excitation of the sensor represented in the 3D force space and 3D torque space.

Considering that most of the drift is assumed to be caused by temperature, it follows that by properly compensating the temperature drift, the offset of the sensor itself should be time invariant. This can be proven by using the offset estimated at the time of the calibration and applying it on some other time while the sensor is subjected to different temperatures.

The result from the Model-based in situ calibration is a new calibration matrix. It is when using this calibration matrix that the improved measurements are obtained. Therefore, the new calibration matrix should be used somehow by the robot to obtain the improved measurements and better dynamic performance as a consequence.

It is possible that is not easy to change the current calibration matrix of the sensor. In these cases, the proposed solution takes the form of a secondary calibration matrix. The secondary calibration matrix is the required transformation of the current calibration matrix to the new calibration matrix. It requires the knowledge of the current calibration matrix used by the sensor. It is calculated as follows:

$$C={C}_{s}\ast {C}_{w}\to {C}_{s}=C\ast {C}_{w}^{-1}$$

Before using the values obtained through force-torque sensing, they can be corrected by pre-multiplying with the secondary calibration matrix. This way the measurements used by the robot are the same as if the sensor was calibrated using the in situ calibration matrix.

The contribution of the temperature can be added separately. In case no temperature calibration is available, these coefficients are loaded as zeros by default. This is helpful in cases where temperature measurements are available for some but not all sensors.

Instead of estimating the offset before the experiment, the offset estimated by the calibration method can be used by summing the offset after the new calibration matrix and temperature compensation is applied.

The improvement in the measurements among the different estimation types is compared among the different kinds of possible calibration datasets to select the best way to improve the FT sensor performance. For comparison, results using the Workbench matrix are included as an estimation type in its own. At a first stage, the different dataset types were compared on their own. To further test the robustness of the in situ estimation, a different set of calibration and validation datasets were collected.

The validation datasets were taken on two different days, both different from the day the calibration datasets were collected. This was done to test the robustness to possible different ambient conditions. The datasets and their temperatures are showen in Table 2.

The calibration datasets were grouped into:

- noTz, as indicated by name none of the Z-torque datasets were included.
- onlySupportLegs, from the balancing datasets, only the support leg was included. All other dataset types were included.
- AllGeneral, all dataset types were included.

The reasoning behind this arrangement of datasets is to see what combination of datasets provides the best results. Since it was proven before that Grid and Balancing together improve the calibration, the variables to test are the inclusion of Z-torque and non-support leg datasets.

Each strategy of offset estimation is considered an estimation type. Including temperature as a linear variable (wT) or not (nT) in the estimation are also considered different estimation types. If the temperature is considered, it is possible to take the first value as an offset (rTO) or not (dTO). Considering the three offset removal possibilities, adding the temperature as a linear variable to each of them and the temperature offset option results in the following nine estimation types:

- Sphere with no temperature (
**SnTdTO**): Refers to the fact that the in situ offset removal is obtained by expecting a sphere in the force space when generating circular motions. No temperature considered. - Centralized with no temperature (
**CnTdTO**): Refers to the centralized offset removal method without considering temperature. - One Shot with no temperature (
**OnTdTO**): Refers to estimate the offset and the calibration matrix at the same time without considering temperature. - Sphere with temperature (
**SwTdTO**): Refers to including temperature into the sphere type. But no temperature offset is considered. - Centralized with temperature (
**CwTdTO**): Refers to including the temperature into the centralized type. But no temperature offset is considered. - One Shot with no temperature (
**OwTdTO**): Refers to estimate the offset and the calibration matrix at the same time considering temperature. But no temperature offset is considered. - Sphere with temperature (
**SwTrTO**): Refers to including temperature into the sphere type. Removing temperature offset. - Centralized with temperature (
**CwTrTO**): Refers to including the temperature into the centralized type. Removing temperature offset. - One Shot with no temperature (
**OwTrTO**): Refers to estimate the offset and the calibration matrix at the same time considering temperature. Removing temperature offset.

The logic behind the estimation type names can be seen in Figure 4.

The evaluation could be roughly divided in three parts: one to observe the results of each estimation type, another to check the expected improvement on the robot of the generated calibration matrices and a third to verify the impact of using the contributions in a real robot. The sensor to calibrate is located near the hip of the left leg of an iCub robot.

To understand better the behavior of the estimation types three comparisons are done. The first uses the mean square error (MSE) calculated between the force-torque data using the new calibration matrix and the model-based estimated data. A lower value would indicate a better fitting of the data. Mean Square Error (MSE) of each axis is calculated as follows:
where ${\mathrm{f}}_{i}^{r}$ is the 6D force reference vector and ${\widehat{\mathrm{f}}}_{i}^{c}$ is the 6D force vector obtained using the estimated calibration matrix of each estimation type. A second way is to compute the mean of the absolute value of the difference between matrices. This is to get a general idea of how much the calibration matrices differ one from the other. The third way is looking at the offset values. This is to see how the different estimation types affect the estimation of the offset. Although there is no ground truth for the offset to serve as a comparison, similarity in the offset values might indicate a general idea of what the true offset might be.

$$MSE=\frac{1}{N}\sum _{i=1}^{N}{({\mathrm{f}}_{i}^{r}-{\widehat{\mathrm{f}}}_{i}^{c})}^{2},$$

The selection of the best calibration matrix is done using the contact force validation described in a previous work [11]. It emulates the contact force estimation algorithm in an offline environment. This form of evaluation permits to check the performance of the mean value of magnitude of the force or the value of each axis over a set of validation experiments. This is relevant since there is no guarantee that a $\lambda $ value or the same type of estimation gives the best results in all axes. The reason is that each axis can be seen as a separate problem.

The $\lambda $ values used are: [0, 1, 5, 10, 50, 100, 1000, 5000, 10,000, 50,000, 100,000, 500,000, 1,000,000]. The $\lambda $ values where selected to span a reasonable range based on the tests to make C converge to ${C}_{w}$, which happened when $\lambda \approx 1e+08$. The validation is performed on each combination of calibration dataset (3), estimation type (9), and $\lambda $ value (13). In total 352 calibration matrices are evaluated counting the Workbench matrix.

In most cases the dynamic behaviors of iCub are obtained through high-level controllers. They contain many tuning parameters that affect the behavior of the robot. The measurements of the sensor are used mainly in an indirect way by the high-level controllers. Therefore, finding quantitative measures of the improvement in the dynamic motions of the iCub caused by the in situ calibrated sensor is a challenging. Nonetheless, from the uses of the FT sensor on iCub, three quantitative methods were used:

- Contact force values when switching contact.
- Accepted gains values used in the low-level controller.
- Simultaneous online comparison of force torque measurements performance using different offsets.

Contact force values when switching contact

The test performed consist in switching from single support to double support.

If the offset is calculated with the robot standing on one foot the sequence is:

- Single support → double support → other single support.

Instead if the offset is calculated with the robot in the air the sequence is:

- Double support → single support → double support → other single support.

Since the robot is standing on flat ground it is expected that the only force acting on the robot feet is mass on the z axis. With no other force acting on the robot the forces in x and y should cancel each other in double support or be 0 when on single support. With this as a ground truth, is possible to evaluate the estimated contact forces at the feet when switching.

Accepted gains values used in the low-level controller

The robot was tuned to the maximum gain value in which the robot is able to perform the balancing demo in a satisfactory way. Beyond a certain value, the robot is observed to vibrate and fall. For this test, the high level gains of the controller are kept the same and only the low-level controller gains are changed. A higher gain value indicates that the robot is able to rely more on the measurements of the sensor as feedback. Thus, being able to use higher gains is better if it does not introduce unstable behaviors.

Simultaneous online comparison of force torque measurements performance using different offsets

For this experiment the offsets used were estimated with a month difference with respect to the experiment date. The comparison between the expected FT value and the actual value obtained after applying both the offset and the secondary calibration matrix correction. Three different offsets where used:

- offset${}_{noTemp}$: is the estimated offset from the best calibration matrix without temperature one month before experiments.
- offset${}_{temp}$: is the estimated offset from the best calibration matrix using temperature one month before experiments.
- online: is the offset calculated on the online on the robot the day of the experiment when the robot was just turned on. The temperature was 26 ${}^{\circ}\mathrm{C}$. It uses the same secondary calibration matrix as the one from offset${}_{noTemp}$.

Three simultaneous estimation applications are launched. One for each type of offset used. The ground truth is calculated offline in the sections of the experiments in which there was only one contact with the environment. Multiple experiments were performed on the robot in the span of three hours to allow the FT sensors to heat up.

To verify the behavior of the estimation types only the results from a single calibration dataset is showed. The one selected is the onlySupportLegs dataset. Nonetheless, the results extend to the other two calibration datasets.

The MSE error of each estimation type is shown in Table 3. This value is linked to the calibration dataset in which the calibration matrix was estimated and is affected by the number of calibration points. Although the value can not be compared among datasets, the tendencies are similar. One of them is how the MSE drops by taking temperature into account. For sphere types (SnTdTO, SwTdTO and SwTrTO), removing the temperature offset further reduces the error while for the centralized (CnTdTO, CwTdTO and CwTrTO) and OneShot (OnTdTO, OwTdTO and OwTrTO) types there seems to be no benefit. It can be observed that the fitting from the centralized and OneShot types are identical. For the calibration datasets considered, the Centralized/OneShot types give better results in general. The only exceptions appear in the noTz calibration dataset. In this dataset the sphere types have an slight advantage in three axis: ${f}_{x}$, ${\tau}_{x}$ and ${\tau}_{z}$.

Table 4, shows a comparison between the different estimation types including the Workbench matrix. In general, the highest values are obtained when comparing with the Workbench matrix. From these, the most different matrices are the ones obtained not considering temperature. Sphere type with no temperature (SnTdTO) is the most different of all with respect to the Workbench matrix.

Is possible to see that the resulting calibration matrix from centralized types is the same as the one obtained through One shot types. The calibration matrix does not change between using the temperature offset (CwTrTO) or not (CwTdTO) for the centralized types.

Taking into account the $\lambda $ values and looking at the difference with respect to the Workbench matrix as shown in Figure 5. The effect of the regularization parameter becomes clear. The higher the value the smaller the difference with respect to the Workbench matrix.

Is worth noticing that taking into account the temperature makes the matrix more similar to the Workbench matrix even for $\lambda =0$. Since the new calibration matrix is expected to be relatively close to the Workbench matrix, this similarity even when no penalization is used can be interpreted as a sign of better calibration. Considering this it can be seen that the sphere estimation types benefits from adding the temperature and even more from taking out the temperature offset. The centralized types benefit from adding the temperature, even if there seems to be no added benefit from considering the temperature offset.

The estimated offsets can be seen in Table 5. It shows that taking into account the temperature offset changes the results of the offset estimation. The estimated offsets without temperatures are not very different between them. Something similar can be seen for the offset obtained considering the temperature offset. In contrast, the offset including temperature, but neglecting the temperature offset, has considerably different behavior between the sphere and the other types.

The estimate offset varies more on the Centralized and Oneshot types. Is noteworthy that the fitting of the data is equal even if the offsets are different as seen from the MSE error in Table 3. The temperature coefficients and the calibration matrix are the same. What changes is the contribution from temperature. It seems that the offset estimation of the Centralized/OneShot types collects both the force-torque offset and the temperature offset into the force-torque offset if no temperature offset is explicitly removed. Therefore using the temperature offset might facilitate to gauge the offset purely in terms of forces with not temperature influence.

This validation was performed twice. One using only the calibration matrices estimating the offset in a few of the samples and the other using also the estimated offsets. The results of the contact force validation are shown in Table A1 and Table A2. From the evaluation of the estimation types behavior is clear that the Centralized types and the Oneshot types give the same result. Because of this only the Sphere types and the OneShot were considered.

In this case, the offset is calculated taking some samples of the test experiments in which is known the robot is on one foot and not moving or moving slowly. The offset calculation includes not only the forces but also the temperature if coefficients are available.

The best result is achieved by OwTdTO and OwTrTO with $5.498$ N with $\lambda =1000$ as the average magnitude of the contact force. In general, better results are achieved by including the temperature and using the OneShot estimation types. The results with the SwTrTO are also close to the best result. The SwTdTO type in noTz dataset has the worst performance. The error is reduced greatly by removing the temperature offset, as seen from the fact that SwTrTO has a consistently lower value than SwTdTO in each dataset. Therefore removing the temperature offset is relevant for the sphere types. The added benefit of the previous calibration matrix information seems more relevant for estimation types that do not consider the temperature. It is also possible to appreciate that increasing $\lambda $ is beneficial up to a certain point after which it increases the error. This is expected since the Workbench is considered to be correct when the sensor was unmounted, so becoming similar to it has benefits. On the other hand, the mounting changed the effectiveness of it, so being to close has lower performance. This is quite clear in Figure 6. The contact force magnitude of the new calibration matrices is a considerable lower than the Workbench for all the validation datasets.

When using the estimated offset, the best result is obtained by OwTrTO with $\lambda $ 100 on the calibration dataset AllGeneral, Table A2. A graphic representation of the results can be seen in Figure 7. The average magnitude of the external force is $5.8647$ N which is close to the one obtained estimating the offset on the validation dataset. It hints that the estimated offset can be replace the offset calculated before the experiment.

Grouping the results by dataset, the calibration datasets can be ordered from best to worst in the following order: AllGeneral, onlySupportLegs and noTz. The behavior of a group of results by dataset is clear using the pallets of colors in Figure 6 and Figure 7. There is a big improvement when adding the Z-Torque dataset and just a small improvement from adding the Balancing Non-Support Leg on top of that. Showing that the Z-Torque gives relevant new information to the calibration dataset, while the Balancing Non-Support Leg adds few more information. Therefore, for the considered dataset types the optimal combination is composed of Grid, Z-Torque, Balancing Support Leg. The Balancing Non-Support Leg can be considered optional and not strictly required. The fact that the best results not using the estimated offset is without using the Balancing Non-Support Leg dataset reinforces the previous statement. It can be seen that adding the temperature creates a clear difference in the results of a dataset. It almost divides each different calibration set results in two.

These results are congruent with the space each dataset covers in the forces and torques 3D space. In Figure 3, is possible to see that Balancing Non-Support leg is more or less contained between the Grid and Balancing Support Leg. The other three dataset types are clearly different among them. Therefore is possible to use that graphical representation to gauge the expected usefulness of a dataset.

Table 6 shows the best results by axis and the performance of the Workbench matrix. From the difference in the results with respect to the Workbench is possible to see that the most affected axis by the mounting are ${f}_{x}$ and ${f}_{y}$. Is possible to see that ${f}_{z}$, ${\tau}_{x}$ and ${\tau}_{y}$, actually perform better using the estimated offset. The fact that only the ${f}_{y}$ and ${f}_{z}$ get better results in both cases taking into account the temperature might imply these are the axis mainly affected by the temperature drift.

By improving the measurements of the six-axis FT sensor through in situ calibration, it was possible to see improvements in the behavior of the floating base robot iCub.

Results are shown in Table 7 and Table 8. It can be observed that using the in situ calibrated sensors, reduces the error in the contact forces and is more coherent when switching from a contact to another. This behavior can also be observed in the attached video. The red lines are the estimated values for the external force. There is a smoother transition in the length of the lines during the switching of double support and single support when using the new calibration matrix. Also the contact forces remain close to the expected values during the execution of the demo. This observed by how small the red lines are on the parts of the robot not in contact.

The balancing demo [38] was observed to have oscillations of the robot when reaching the different pre-defined position tasks. After the six-axis FT measurements were improved, it was feasible to increase the gains of the low-level controller between 10 and 15 units depending on the joint. In some joints, this signified a 50% increase. It was observed that the movements of the robot seemed more defined and there were clearly fewer oscillations and less time required to switch to the next position task. Moreover, it was clear that the same gains without the in situ estimated matrix make the robot fail immediately. Thanks to the reliability of the measurements, the feedback of the low-level controller is more useful to control the robot creating a faster convergence to the desired value. This can be observed in the attached Video S1.

Based on the resulting coefficients of the temperature, ${C}_{t}$ = [${f}_{x}$−0.0933, ${f}_{y}$ 0.2048, ${f}_{z}$ 1.3342, ${\tau}_{x}$ −0.0155, ${\tau}_{y}$ 0.0027, ${\tau}_{z}$ 0.0039], it can be seen that the most affected axis is the force on z. The comparison for ${f}_{z}$ axis is shown in Figure 10. The online offset is close to the estimated value only at $26.6$ ${}^{\circ}\mathrm{C}$. This temperature is similar to the temperature when the offset was estimated. The average temperature at the sensors after a a few mins is around $36.2$ ${}^{\circ}\mathrm{C}$. At this temperature, the offset estimated without temperature has very similar results as the one with temperature. When the robot reaches $43.5$ ${}^{\circ}\mathrm{C}$ only the offset computed with temperature is still close to the estimated value as it has been for all the temperatures. Therefore, the need to re-estimate the offset before every experiment disappears.

Besides the quantitative evaluations of performance, an important qualitative behavior was observed when the measurements were used in high level controllers. During the experiments for the jerk control of floating base systems with contact-stable parametrised force feedback, it was observed that without the secondary calibration matrices the error in the estimated external forces was so big that the controller was unable to perform the experiments. Using the secondary calibration matrices reduced the error to $\pm 2.5N$ [42]) in the worst case. The error was low enough to successfully perform the experiments by using the regularization term.

Compared to other in situ calibration methods [10], the Model based in situ calibration method avoids the need to install other sensors or specialized structures on the robot to perform the calibration. This avoids effort and possible human errors introduced in the estimation of the position of the other sensors with respect to the FT sensor.

In the previous Model Based formulation without temperature [11], less amount of data was used to calibrate the sensor. When considering only one type of dataset for calibration, the sphere types outperform the centralized ones. If more than one type of dataset was to be combined, it needed to be collected immediately one after the other for having the assumption of same offset still valid for both datasets. It was observed that even after the sensors were calibrated the offset estimated during calibration not suitable to use on the robot. The reason was that the measurements would drift and the estimated offset would not be valid after a short time. This was resolved by introducing the temperature as linear variable [14].

In the previous paper of model-based in situ calibrations with temperature compensation, results showed that the sphere types still had a certain advantage over centralized types. In those experiments, the amount of data used in calibration had less types of datasets equivalent to the noTz dataset here. By including the new types of datasets better results were obtained. Also, the one shot gave better performance than the sphere type. This shows a correlation between estimation type and types of calibration data used. The experiments described here show that datasets for calibration can be taken in different days in different conditions. This makes the data collection less restrictive despite the need for more data types. In the previous validation dataset, the offset was estimated at the beginning of the datasets. This is similar to the performance of the online estimated offset. This masked the difference in performance of the centralized offset with temperature and without. In here, the benefits of the method are further highlighted by showing the impact in the performance of floating base robots due to better FT measurements and the advantages of using the temperature are extended.

The developed algorithm has been proven to improve the measurements of the sensor and the dynamic behavior of a floating base robot. It successfully accounts for temperature drift and can be extended to account for other lineal phenomena, allowing controllers to reliably use the sensor measurements as feedback, be it directly or indirectly.

The new offset formulation is shown to give identical results as the centralized offset with the added benefit that the offset and calibration matrix are estimated simultaneously. The graphic representation of the sensor excitation in the 3D force and torque space has proven useful to provide intuitive insight into the comprehensive excitation of the sensor. In the Figure 3, it is evident to see that Z-Torque type of dataset provides new information. It is also visible that the Balancing Non-Support Leg gives redundant information. This was confirmed when looking at the results grouping by a calibration dataset. Considering it is possible to generate random movements of the robot and then evaluate if the dataset provides new useful data, this avoids the need to carefully design the joint trajectories for the calibration data. Since the approach is model-based, robot simulations can easily provide this graphic sensor excitation representation. The use of the secondary matrix allows a simple non-intrusive way to provide the improved measurements to the robot. It was shown that by adding the temperature we are able to use the offset of the sensors as a constant. This proves that the drift is mainly generated by the temperature. Furthermore, using offsets that were estimated a month in advance proves the robustness of the estimation of both calibration matrix and offset. It also demonstrates a higher reliability of the sensor measurements. The possibility to use a constant offset eliminates the need to estimate the offset before every experiment. This is especially useful for floating base robots that have a harder time anticipating the exact time of contact. It minimizes the preparation steps for using the robot and allows to do longer experiments without the need to stop. The improvement in robot performance is clear from the contact force coherence when switching or the fact that low and high-level controllers are able to perform better when using the FT measurements after in situ calibration.

The relationship between the regularization parameter and performance is clearly shown. This may allow to further refine and guide the selection of regularization parameters. The comparison with previous results suggests that the relevance and impact of each offset estimation strategy may be linked to the amount of data available. For small amounts of data, the physical assumption gives the highest improvements. With bigger amounts of data having no assumptions to estimate more accurately the calibration. The loss of effectiveness when using the physical assumption could be related to the fact that it does not consider temperature at all for offset estimation.

As future work, ways to account for nonlinearities will be explored. Studying the dynamical response of the sensor is also interesting and might provide further improvements in the performance of the sensor.

The following are available online at https://www.mdpi.com/1424-8220/19/24/5521/s1, Video S1: SensorInsitu Video.

Conceptualization, F.J.A.C. and S.T.; methodology, F.J.A.C.; software, F.J.A.C.; validation, F.J.A.C., S.T. and D.P.; formal analysis, F.J.A.C.; investigation, F.J.A.C.; resources, F.J.A.C.; data curation, F.J.A.C.; writing–original draft preparation, F.J.A.C.; writing—review and editing, F.J.A.C., S.T., D.P.; visualization, F.J.A.C.; supervision, S.T. and D.P.; project administration, D.P.; funding acquisition, D.P.

This paper was supported by EU An.Dy Project. This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 731540.

The authors declare no conflict of interest.

$\mathit{\lambda}$ | Total | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Data Set | Estimation Type | 0 | 1 | 5 | 10 | 50 | 100 | 1000 | 5000 | 10,000 | 50,000 | 100,000 | 500,000 | 1,000,000 | By Type | By Dataset |

SnTdTO | 14.7353 | 14.7229 | 14.6936 | 14.6531 | 14.3588 | 14.0140 | 10.5665 | 12.1406 | 13.3500 | 13.4198 | 12.9258 | 12.1937 | 12.0329 | 173.8069 | ||

SwTdTO | 20.8714 | 20.8546 | 20.8302 | 20.7792 | 20.4633 | 20.0729 | 15.2905 | 11.1392 | 11.5100 | 12.2514 | 12.0020 | 11.6935 | 11.8216 | 209.5798 | ||

SwTrTO | 8.0631 | 8.0634 | 8.0598 | 8.0505 | 8.0048 | 7.9535 | 8.0022 | 9.6557 | 10.5474 | 11.7435 | 11.8696 | 11.8197 | 11.8223 | 123.6554 | ||

noTz | OnTdTO | 21.4168 | 21.4005 | 21.3597 | 21.2985 | 20.8185 | 20.2611 | 13.5881 | 10.7362 | 12.2508 | 12.5915 | 12.0330 | 11.4229 | 11.5627 | 210.7403 | |

OwTdTO | 6.8583 | 6.8588 | 6.8500 | 6.8391 | 6.7752 | 6.7267 | 7.5632 | 10.5579 | 11.5182 | 11.8767 | 11.7000 | 11.3755 | 11.5138 | 117.0134 | ||

OwTrTO | 6.8583 | 6.8588 | 6.8500 | 6.8391 | 6.7752 | 6.7267 | 7.5632 | 10.5579 | 11.5182 | 11.8767 | 11.7000 | 11.3755 | 11.5138 | 117.0134 | 951.8093 | |

SnTdTO | 8.9899 | 8.9870 | 8.9852 | 8.9788 | 8.9340 | 8.8807 | 8.1122 | 7.0044 | 7.0709 | 8.7356 | 9.3448 | 10.1252 | 10.3787 | 114.5273 | ||

SwTdTO | 7.8568 | 7.8522 | 7.8563 | 7.8474 | 7.8220 | 7.7810 | 7.2966 | 6.7480 | 6.9413 | 8.5509 | 9.1050 | 9.8410 | 10.2381 | 105.7365 | ||

SwTrTO | 5.9704 | 5.9744 | 5.9739 | 5.9719 | 5.9617 | 5.9476 | 5.8722 | 6.2594 | 6.8156 | 8.6707 | 9.2587 | 10.0058 | 10.2779 | 92.9601 | ||

suppOnly | OnTdTO | 8.4813 | 8.4812 | 8.4742 | 8.4694 | 8.4277 | 8.3757 | 7.6485 | 6.5679 | 6.5622 | 7.9906 | 8.5353 | 9.3383 | 9.8301 | 107.1824 | |

OwTdTO | 5.5253 | 5.5224 | 5.5242 | 5.5197 | 5.5159 | 5.5066 | 5.4980 | 6.0596 | 6.6191 | 8.1749 | 8.6419 | 9.3260 | 9.7944 | 87.2280 | ||

OwTrTO | 5.5253 | 5.5224 | 5.5242 | 5.5197 | 5.5159 | 5.5066 | 5.4980 | 6.0596 | 6.6191 | 8.1749 | 8.6419 | 9.3260 | 9.7944 | 87.2280 | 594.8624 | |

SnTdTO | 8.8400 | 8.8376 | 8.8288 | 8.8280 | 8.7825 | 8.7298 | 7.9563 | 6.7394 | 6.7075 | 8.4183 | 9.1163 | 10.0199 | 10.3114 | 112.1158 | ||

SwTdTO | 7.6831 | 7.6772 | 7.6757 | 7.6696 | 7.6372 | 7.6019 | 7.1228 | 6.5264 | 6.6573 | 8.3207 | 8.9462 | 9.8235 | 10.2860 | 103.6277 | ||

SwTrTO | 5.9078 | 5.9070 | 5.9082 | 5.9047 | 5.8935 | 5.8812 | 5.7327 | 5.9845 | 6.4650 | 8.3763 | 9.0411 | 9.9018 | 10.2382 | 91.1419 | ||

All | OnTdTO | 8.3123 | 8.3180 | 8.3107 | 8.3098 | 8.2603 | 8.2133 | 7.4991 | 6.3815 | 6.3095 | 7.7947 | 8.4078 | 9.3503 | 9.8907 | 105.3580 | |

OwTdTO | 5.6319 | 5.6321 | 5.6326 | 5.6320 | 5.6240 | 5.6056 | 5.5185 | 5.9089 | 6.4084 | 7.9956 | 8.5170 | 9.3321 | 9.8544 | 87.2930 | ||

OwTrTO | 5.6319 | 5.6321 | 5.6326 | 5.6320 | 5.6240 | 5.6056 | 5.5185 | 5.9089 | 6.4084 | 7.9956 | 8.5170 | 9.3321 | 9.8544 | 87.2930 | 586.8295 | |

Total By $\lambda $ | 163.1593 | 163.1028 | 162.9699 | 162.7426 | 161.1946 | 159.3902 | 141.8470 | 140.9359 | 150.2790 | 172.9581 | 178.3033 | 185.6028 | 191.0157 | |||

Workbench | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 |

$\mathit{\lambda}$ | Total | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Data Set | Estimation Type | 0 | 1 | 5 | 10 | 50 | 100 | 1000 | 5000 | 10,000 | 50,000 | 100,000 | 500,000 | 1,000,000 | By Type | By Dataset |

SnTdTO | 14.761 | 14.751 | 14.725 | 14.689 | 14.426 | 14.127 | 11.224 | 13.534 | 14.833 | 14.739 | 14.207 | 13.434 | 13.179 | 182.63 | ||

SwTdTO | 21.386 | 21.367 | 21.349 | 21.305 | 21.053 | 20.725 | 17.116 | 14.779 | 14.856 | 14.452 | 14.022 | 13.594 | 13.671 | 229.68 | ||

SwTrTO | 8.7331 | 8.7367 | 8.7304 | 8.7365 | 8.7305 | 8.7276 | 9.1473 | 10.916 | 11.609 | 11.811 | 11.597 | 11.059 | 10.887 | 129.42 | ||

noTz | OnTdTO | 21.959 | 21.944 | 21.912 | 21.859 | 21.439 | 20.958 | 15.469 | 13.667 | 14.719 | 14.673 | 14.182 | 13.785 | 13.973 | 230.54 | |

OwTdTO | 7.469 | 7.4694 | 7.4693 | 7.454 | 7.4014 | 7.3759 | 8.1999 | 10.817 | 11.619 | 11.667 | 11.393 | 10.94 | 11.026 | 120.3 | ||

OwTrTO | 7.469 | 7.4694 | 7.4693 | 7.454 | 7.4014 | 7.3759 | 8.1999 | 10.817 | 11.619 | 11.667 | 11.393 | 10.94 | 11.026 | 120.3 | 1012.9 | |

SnTdTO | 9.4503 | 9.4505 | 9.4492 | 9.4439 | 9.4308 | 9.3986 | 9.1777 | 9.4486 | 10.032 | 11.329 | 11.628 | 11.967 | 11.943 | 132.15 | ||

SwTdTO | 10.132 | 10.132 | 10.131 | 10.124 | 10.131 | 10.144 | 10.313 | 10.951 | 11.404 | 12.072 | 12.181 | 12.458 | 12.6 | 142.77 | ||

SwTrTO | 7.0649 | 7.0602 | 7.0611 | 7.0615 | 7.0675 | 7.0794 | 7.2527 | 7.919 | 8.2931 | 8.8514 | 8.9516 | 9.0766 | 9.0849 | 101.82 | ||

suppOnly | OnTdTO | 9.9833 | 9.9845 | 9.9838 | 9.9833 | 9.9844 | 9.9951 | 10.069 | 10.639 | 11.161 | 12.163 | 12.418 | 12.9 | 13.14 | 142.4 | |

OwTdTO | 6.0123 | 6.0116 | 6.0139 | 6.0117 | 6.0181 | 6.026 | 6.2234 | 7.0101 | 7.4735 | 8.3683 | 8.6422 | 9.1567 | 9.4101 | 92.378 | ||

OwTrTO | 6.0123 | 6.0116 | 6.0139 | 6.0117 | 6.0181 | 6.026 | 6.2234 | 7.0101 | 7.4735 | 8.3683 | 8.6422 | 9.1567 | 9.41 | 92.378 | 703.91 | |

SnTdTO | 9.3042 | 9.3057 | 9.298 | 9.296 | 9.2784 | 9.2545 | 8.9752 | 9.071 | 9.5762 | 10.919 | 11.254 | 11.654 | 11.691 | 128.88 | ||

SwTdTO | 9.9729 | 9.9645 | 9.9677 | 9.9716 | 9.9789 | 9.9759 | 10.093 | 10.658 | 11.074 | 11.782 | 11.918 | 12.228 | 12.421 | 140.01 | ||

SwTrTO | 6.9187 | 6.9182 | 6.9185 | 6.9183 | 6.9151 | 6.9269 | 6.9783 | 7.4763 | 7.8228 | 8.4421 | 8.5773 | 8.7733 | 8.8471 | 98.433 | ||

All | OnTdTO | 9.712 | 9.722 | 9.7206 | 9.7194 | 9.7138 | 9.722 | 9.7785 | 10.278 | 10.791 | 11.868 | 12.14 | 12.667 | 12.97 | 138.8 | |

OwTdTO | 5.8685 | 5.868 | 5.8659 | 5.8647 | 5.8708 | 5.8657 | 5.9457 | 6.5411 | 6.99 | 8.0151 | 8.3514 | 8.9122 | 9.227 | 89.186 | ||

OwTrTO | 5.8685 | 5.868 | 5.8659 | 5.8647 | 5.8708 | 5.8657 | 5.9457 | 6.5411 | 6.99 | 8.0151 | 8.3514 | 8.9122 | 9.227 | 89.186 | 684.49 | |

Total | 178.08 | 178.03 | 177.94 | 177.77 | 176.73 | 175.57 | 166.33 | 178.07 | 188.34 | 199.2 | 199.85 | 201.61 | 203.73 | |||

Workbench | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 | 16.6642 |

- Watson, P.C.; Drake, S.H. Pedestal and wrist force sensors for automatic assembly. In Proceedings of the 5th International Symposium on Industrial Robots, Chicago, IL, USA, 22–24 September 1975; pp. 501–511. [Google Scholar]
- Gorinevsky, D.M.; Formalsky, A.M.A.M.; Schneider, A.I. Force Control Robotics Systems; CRC Press: Boca Raton, FL, USA, 1997; p. 350. [Google Scholar]
- Lu, S.J.; Chung, J. Collision detection enabled weighted path planning: A wrist and base force/torque sensors approach. In Proceedings of the 12th International Conference on Advanced Robotics, ICAR ’05, Seattle, WA, USA, 18–20 July 2005; pp. 165–170. [Google Scholar] [CrossRef]
- Parmiggiani, A.; Maggiali, M.; Natale, L.; Nori, F.; Schmitz, A.; Tsagarakis, N.G.; Victor, J.S.; Becchi, F.; Sandini, G.; Metta, G. The Design of the iCub Humanoid Robot. Int. J. Humanoid Rob.
**2012**, 9, 1250027. [Google Scholar] [CrossRef] - Hirai, K.; Hirose, M.; Haikawa, Y.; Takenaka, T. The development of Honda humanoid robot. In Proceedings of the 1998 IEEE International Conference on Robotics and Automation (Cat. No.98CH36146), Leuven, Belgium, 20–20 May 1998; pp. 1050–4729. [Google Scholar] [CrossRef]
- Asfour, T.; Regenstein, K.; Azad, P.; Schroder, J.; Bierbaum, A.; Vahrenkamp, N.; Dillmann, R. ARMAR-III: An integrated humanoid platform for sensory-motor control. In Proceedings of the 6th IEEE-RAS International Conference on Humanoid Robots, Genova, Italy, 4–6 December 2006; pp. 169–175. [Google Scholar] [CrossRef]
- Kaneko, K.; Kanehiro, F.; Kajita, S.; Hirukawa, H.; Kawasaki, T.; Hirata, M.; Akachi, K.; Isozumi, T. Humanoid robot HRP-2. In Proceedings of the IEEE International Conference on Robotics and Automation, New Orleans, LA, USA, 26 April–1 May 2004; pp. 1083–1090. [Google Scholar] [CrossRef]
- Kaneko, K.; Kanehiro, F.; Morisawa, M.; Akachi, K.; Miyamori, G.; Hayashi, A.; Kanehira, N. Humanoid robot hrp-4-humanoid robotics platform with lightweight and slim body. In Proceedings of the Intelligent Robots and Systems (IROS), San Francisco, CA, USA, 25–30 September 2011; pp. 4400–4407. [Google Scholar]
- Englsberger, J.; Werner, A.; Ott, C.; Henze, B.; Roa, M.A.; Garofalo, G.; Burger, R.; Beyer, A.; Eiberger, O.; Schmid, K.; et al. Overview of the torque-controlled humanoid robot TORO. In Proceedings of the 2014 IEEE-RAS International Conference on Humanoid Robots, Madrid, Spain, 18–20 November 2014; pp. 916–923. [Google Scholar]
- Traversaro, S.; Pucci, D.; Nori, F. In situ calibration of six-axis force-torque sensors using accelerometer measurements. In Proceedings of the 2015 IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 26–30 May 2015; pp. 2111–2116. [Google Scholar] [CrossRef]
- Andrade Chavez, F.J.; Traversaro, S.; Pucci, D.; Nori, F. Model based in situ calibration of six axis force torque sensors. In Proceedings of the 2016 IEEE-RAS 16th International Conference on Humanoid Robots (Humanoids), Cancun, Mexico, 15–17 November 2016; pp. 422–427. [Google Scholar] [CrossRef]
- Atkeson, C.G.; Babu, B.P.W.; Banerjee, N.; Berenson, D.; Bove, C.P.; Cui, X.; DeDonato, M.; Du, R.; Feng, S.; Franklin, P.; et al. No falls, no Resets: Reliable humanoid behavior in the DARPA robotics challenge. In Proceedings of the 2015 IEEE-RAS 15th International Conference on Humanoid Robots (Humanoids), Seoul, Korea, 3–5 November 2015; pp. 623–630. [Google Scholar] [CrossRef]
- DeDonato, M.; Polido, F.; Knoedler, K.; Babu, B.P.W.; Banerjee, N.; Bove, C.P.; Cui, X.; Du, R.; Franklin, P.; Graff, J.P.; et al. Team WPI-CMU: Achieving Reliable Humanoid Behavior in the DARPA Robotics Challenge. J. Field Rob.
**2017**, 34, 381–399. [Google Scholar] [CrossRef] - Chavez, F.J.A.; Nava, G.; Traversaro, S.; Nori, F.; Pucci, D. Model Based In Situ Calibration with Temperature compensation of 6 axis Force Torque Sensors. In Proceedings of the 2019 International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, 20–24 May 2019; pp. 5397–5403. [Google Scholar] [CrossRef]
- Fraden, J. Force and Strain. In Handbook of Modern Sensors; Springer International Publishing: Cham, Switzerland, 2016; pp. 413–428. [Google Scholar] [CrossRef]
- OMEGA. Transactions in Measurement and Control Volume 3, Force-Related Measurements; Putman Publishing Company and OMEGA Press LLC: Philadelphia, PA, USA, 1998; p. 85. [Google Scholar]
- Helmick, D.; Okon, A.; DiCicco, M. A comparison of force sensing techniques for planetary manipulation. In Proceedings of the Aerospace Conference, Big Sky, MT, USA, 4–11 March 2006; p. 14. [Google Scholar]
- Braun, D.; Wörn, H. Techniques for Robotic Force Sensor Calibration. In Proceedings of the 13th International Workshop on Computer Science and Information Technologies (CSIT 2011), Chongqing, China, 20–22 August 2011. [Google Scholar]
- Automation, A.T.I.I. Six-Axis Force/Torque Transducer Installation and Operation Manual. Available online: http://www.ura.com.tw/images/FT/ForceTorque (accessed on 12 December 2019).
- Weiss Robotics. KMS 40 Assembly and Operating Manual; Weiss Robotics: National City, CA, USA, 2013. [Google Scholar]
- Uchiyama, M.; Bayo, E.; Palma-Villalon, E. A systematic design procedure to minimize a performance index for robot force sensors. J. Dyn. Syst. Meas. Contr.
**1991**, 113, 388–394. [Google Scholar] [CrossRef] - Bilz, J.; Allevato, G.; Butz, J.; Schafer, N.; Hatzfeld, C.; Matich, S.; Schlaak, H.F. Analysis of the measuring uncertainty of a calibration setup for a 6-DOF force/torque sensor. In Proceedings of the 2017 IEEE Sensor, Glasgow, UK, 29 October–1 November 2017; pp. 1–3. [Google Scholar] [CrossRef]
- Sun, Y.; Liu, Y.; Liu, H. Analysis calibration system error of six-dimension force/torque sensor for space robot. In Proceedings of the 2014 IEEE International Conference on Mechatronics and Automation, Tianjin, China, 3–6 August 2014; pp. 347–352. [Google Scholar] [CrossRef]
- Faber, G.S.; Chang, C.C.; Kingma, I.; Martin Schepers, H.; Herber, S.; Veltink, P.H.; Dennerlein, J.T. A force plate based method for the calibration of force/torque sensors. J. Biomech.
**2012**, 45, 1332–1338. [Google Scholar] [CrossRef] [PubMed] - Oddo, C.M.; Valdastri, P.; Beccai, L.; Roccella, S.; Carrozza, M.C.; Dario, P. Investigation on calibration methods for multi-axis, linear and redundant force sensors. Meas. Sci. Technol.
**2007**, 18, 623. [Google Scholar] [CrossRef] - Al-Mai, O.; Ahmadi, M.; Albert, J. Design, Development and Calibration of a Lightweight, Compliant Six-Axis Optical Force/Torque Sensor. IEEE Sensors J.
**2018**, 18, 7005–7014. [Google Scholar] [CrossRef] - Cursi, F.; Malzahn, J.; Tsagarakis, N.; Caldwell, D. An online interactive method for guided calibration of multi-dimensional force/torque transducers. In Proceedings of the 2017 IEEE-RAS 17th International Conference on Humanoid Robotics (Humanoids), Birmingham, UK, 15–17 November 2017; pp. 398–405. [Google Scholar] [CrossRef]
- Roozbahani, H.; Fakhrizadeh, A.; Haario, H.; Handroos, H. Novel Online Re-Calibration Method for Multi-Axis Force/Torque Sensor of ITER Welding/Machining Robot. IEEE Sens. J.
**2013**, 13, 4432–4443. [Google Scholar] [CrossRef] - Shimano, B.; Roth, B. On Force Sensing Information and Its Use in Controlling Manipulators. IFAC Proc. Vol.
**1977**, 10, 119–126. [Google Scholar] [CrossRef] - Wu, B.; Wu, Z.; Shen, F. Research on calibration system error of 6-axis force/torque sensor integrated in humanoid robot foot. In Proceedings of the 2010 8th World Congress on Intelligent Control and Automation, Jinan, China, 7–9 July 2010; pp. 6878–6882. [Google Scholar] [CrossRef]
- Sun, Y.; Li, Y.; Liu, Y.; Liu, H. An online calibration method for six-dimensional force/torque sensor based on shape from motion combined with complex algorithm. In Proceedings of the 2014 IEEE International Conference on Robotics and Biomimetics (ROBIO 2014), Bali, Indonesia, 5–10 December 2014; pp. 2631–2636. [Google Scholar] [CrossRef]
- Callister, W.D. Materials Science and Engineering-an Introduction; John wiley & sons: Genoa, Italy, 2007. [Google Scholar]
- Fumagalli, M.; Ivaldi, S.; Randazzo, M.; Natale, L.; Metta, G.; Sandini, G.; Nori, F. Force feedback exploiting tactile and proximal force/torque sensing. Auton. Robots
**2012**, 33, 381–398. [Google Scholar] [CrossRef] - Del Prete, A.; Natale, L.; Nori, F.; Metta, G. Contact force estimations using tactile sensors and force/torque sensors. Hum. Robot Int.
**2012**, 2012, 0–2. [Google Scholar] - Traversaro, S. Modelling, Estimation and Identification of Humanoid Robots Dynamics. Ph.D. Thesis, Italian Institute of Technology, Genoa, Italy, 2017. [Google Scholar]
- Sandini, G.; Metta, G.; Vernon, D. Robot Cub: An open framework for research in embodied cognition. In Proceedings of the 4th IEEE/RAS International Conference on Humanoid Robots, Santa Monica, CA, USA, 10–12 November 2004; pp. 13–32. [Google Scholar] [CrossRef]
- Fumagalli, M.; Randazzo, M.; Nori, F.; Natale, L.; Metta, G.; Sandini, G. Exploiting proximal F/T measurements for the iCub active compliance. In Proceedings of the 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Taipei, Taiwan, 18–22 October 2010; pp. 1870–1876. [Google Scholar] [CrossRef]
- Pucci, D.; Romano, F.; Traversaro, S.; Nori, F. Highly dynamic balancing via force control. In Proceedings of the 2016 IEEE-RAS 16th International Conference on Humanoid Robots (Humanoids), Cancun, Mexico, 15–17 November 2016. [Google Scholar] [CrossRef]
- Romano, F.; Nava, G.; Azad, M.; Camernik, J.; Dafarra, S.; Dermy, O.; Latella, C.; Lazzaroni, M.; Lober, R.; Lorenzini, M.; et al. The CoDyCo Project Achievements and Beyond: Toward Human Aware Whole-Body Controllers for Physical Human Robot Interaction. IEEE Rob. Autom. Lett.
**2018**, 3, 516–523. [Google Scholar] [CrossRef] - Sardain, P.; Bessonnet, G. Forces acting on a biped robot. center of pressure-zero moment point. IEEE Trans. Syst. Man Cybern. Part A Syst. Hum.
**2004**, 34, 630–637. [Google Scholar] [CrossRef] - Romualdi, G.; Dafarra, S.; Hu, Y.; Pucci, D. A Benchmarking of DCM Based Architectures for Position and Velocity Controlled Walking of Humanoid Robots. In Proceedings of the IEEE-RAS International Conference on Humanoid Robots, Beijing, China, 6–9 November 2018; pp. 966–973. [Google Scholar] [CrossRef]
- Gazar, A.; Nava, G.; Chavez, F.J.A.; Pucci, D. Jerk Control of Floating Base Systems with Contact-Stable Parametrised Force Feedback. arXiv
**2019**, arXiv:1907.11906. [Google Scholar] - Featherstone, R. Rigid Body Dynamics Algorithms; Springer: Barcelona, Spain, 2008. [Google Scholar]

Description | SI Unit | |
---|---|---|

Gains | ||

${K}_{p}$ | Coefficient for the proportional term of PID | DC%^{1}/$\mathrm{N}\mathrm{m}$ |

${K}_{d}$ | Coefficient for the derivative term of PID | DC%$\mathrm{s}$/$\mathrm{N}\mathrm{m}$ |

ine ${K}_{i}$ | Coefficient for the integral term of PID | DC%/$\mathrm{N}\mathrm{m}{\mathrm{s}}^{-1}$ |

${K}_{PWM}$ | Transformation matrix between PWM and joint torque | $\mathrm{N}\mathrm{m}$/DC% |

${K}_{\tau}$ | ${K}_{\tau}=1/{K}_{PWM}$ | DC%/$\mathrm{N}\mathrm{m}$ |

${K}_{bemf}$ | Coefficient of Viscous friction | $\mathrm{N}\mathrm{m}\mathrm{s}{\mathrm{rad}}^{-1}$ |

${\overline{K}}_{\tau}^{real}$ | Transformation matrix between PWM and Motor torque | $\mathrm{N}\mathrm{m}$/DC% |

Torque variables | ||

${\tau}^{d}$ | Joint Torque set as a reference via high-level controller | $\mathrm{N}\mathrm{m}$ |

${\tau}^{est}$ | Joint Torque estimated via WBD in the firmware | $\mathrm{N}\mathrm{m}$ |

${\tau}^{PID}$ | Joint torque error after passing through the PID | $\mathrm{N}\mathrm{m}$ |

${\tau}^{ff}$ | Feed forward term for the joint torque | $\mathrm{N}\mathrm{m}$ |

${\tau}^{f}$ | Joint torque term for compensating friction | $\mathrm{N}\mathrm{m}$ |

${\tau}_{m}$ | Motor torque obtained by transformation of PWM | $\mathrm{N}\mathrm{m}$ |

${\tau}_{bias}$ | Bias Force= CoriolisForce+GravityForce | $\mathrm{N}\mathrm{m}$ |

Other variables | ||

q | Joint Position | ${}^{\circ}$ or $\mathrm{rad}$ |

$\dot{q}$ | Joint velocity | ${}^{\circ}{\mathrm{s}}^{-1}$ or $\mathrm{rad}{\mathrm{s}}^{-1}$ |

$\theta $ | Motor shaft Position | ${}^{\circ}$ or $\mathrm{rad}$ |

$\dot{\theta}$ | Motor shaft velocity ${}^{\ast}$ | ${}^{\circ}{\mathrm{s}}^{-1}$ or $\mathrm{rad}{\mathrm{s}}^{-1}$ |

Type | Day | Temperature ${}^{\circ}$C | |
---|---|---|---|

Start | End | ||

Validation Data Sets | |||

Balancing Support Leg | 1 | 38.0 | 38.2 |

Balancing No Support Leg | 1 | 38.3 | 38.4 |

Grid | 2 | 27.3 | 27.7 |

Z-Torque | 2 | 27.7 | 27.8 |

Balancing Support Leg | 2 | 34.7 | 34.8 |

Calibration Data Sets | |||

Grid | 3 | 28.8 | 29.7 |

Grid$\_2$ | 3 | 42.2 | 41.9 |

Z-Torque | 3 | 29.7 | 29.8 |

Z-Torque$\_2$ | 3 | 41.9 | 41.8 |

Balancing Support leg Left | 3 | 30.8 | 31.0 |

Balancing Support leg Left_2 | 3 | 41.8 | 41.8 |

Balancing No Support leg Left | 3 | 31.4 | 31.6 |

Balancing No Support leg Left$\_2$ | 3 | 41.9 | 41.8 |

EstimationType | ${\mathit{f}}_{\mathit{x}}$ ($\mathbf{N}$)${}^{2}$ | ${\mathit{f}}_{\mathit{y}}$ ($\mathbf{N}$)${}^{2}$ | ${\mathit{f}}_{\mathit{z}}$ ($\mathbf{N}$)${}^{2}$ | ${\mathit{\tau}}_{\mathit{x}}$ ($\mathbf{N}\mathbf{m}$)${}^{2}$ | ${\mathit{\tau}}_{\mathit{y}}$ ($\mathbf{N}\mathbf{m}$)${}^{2}$ | ${\mathit{\tau}}_{\mathit{z}}$ ($\mathbf{N}\mathbf{m}$)${}^{2}$ |
---|---|---|---|---|---|---|

SnTdTO | 12.1358 | 3.4528 | 62.1595 | 0.1222 | 0.0826 | 0.0299 |

SwTdTO | 8.1290 | 3.4495 | 41.7705 | 0.1193 | 0.0781 | 0.0299 |

SwTrTO | 10.8075 | 3.3826 | 5.7261 | 0.1192 | 0.0823 | 0.0299 |

CnTdTO | 7.9941 | 3.4504 | 56.4681 | 0.1202 | 0.0764 | 0.0298 |

CwTdTO | 8.0358 | 3.3441 | 3.5042 | 0.1188 | 0.0759 | 0.0297 |

CwTrTO | 8.0358 | 3.3441 | 3.5042 | 0.1188 | 0.0759 | 0.0297 |

OnTdTO | 7.9941 | 3.4504 | 56.4681 | 0.1202 | 0.0764 | 0.0298 |

OwTdTO | 8.0358 | 3.3441 | 3.5042 | 0.1188 | 0.0759 | 0.0297 |

OwTrTO | 8.0358 | 3.3441 | 3.5042 | 0.1188 | 0.0759 | 0.0297 |

EstimationType | Workbench | SnTdTO | SwTdTO | SwTrTO | CnTdTO | CwTdTO | CwTrTO | OnTdTO | OwTdTO | OwTrTO |
---|---|---|---|---|---|---|---|---|---|---|

Workbench | 0 | 33.0389 | 28.1952 | 20.3309 | 31.0110 | 18.3735 | 18.3735 | 31.0110 | 18.3735 | 18.3735 |

SnTdTO | 33.0389 | 0 | 6.9890 | 15.9404 | 2.8109 | 16.4152 | 16.4152 | 2.8109 | 16.4152 | 16.4152 |

SwTdTO | 28.1952 | 6.9890 | 0 | 10.2228 | 4.5113 | 10.7766 | 10.7766 | 4.5113 | 10.7766 | 10.7766 |

SwTrTO | 20.3309 | 15.9404 | 10.2228 | 0 | 14.3387 | 2.1403 | 2.1403 | 14.3387 | 2.1403 | 2.1403 |

CnTdTO | 31.0110 | 2.8109 | 4.5113 | 14.3387 | 0 | 14.5363 | 14.5363 | 0 | 14.5363 | 14.5363 |

CwTdTO | 18.3735 | 16.4152 | 10.7766 | 2.1403 | 14.5363 | 0 | 0 | 14.5363 | 0 | 0 |

CwTrTO | 18.3735 | 16.4152 | 10.7766 | 2.1403 | 14.5363 | 0 | 0 | 14.5363 | 0 | 0 |

OnTdTO | 31.0110 | 2.8109 | 4.5113 | 14.3387 | 0 | 14.5363 | 14.5363 | 0 | 14.5363 | 14.5363 |

OwTdTO | 18.3735 | 16.4152 | 10.7766 | 2.1403 | 14.5363 | 0 | 0 | 14.5363 | 0 | 0 |

OwTrTO | 18.3735 | 16.4152 | 10.7766 | 2.1403 | 14.5363 | 0 | 0 | 14.5363 | 0 | 0 |

EstimationType | ${\mathit{f}}_{\mathit{x}}$ ($\mathbf{N}$) | ${\mathit{f}}_{\mathit{y}}$ ($\mathbf{N}$) | ${\mathit{f}}_{\mathit{z}}$ ($\mathbf{N}$) | ${\mathit{\tau}}_{\mathit{x}}$ ($\mathbf{N}\mathbf{m}$) | ${\mathit{\tau}}_{\mathit{y}}$ ($\mathbf{N}\mathbf{m}$) | ${\mathit{\tau}}_{\mathit{z}}$ ($\mathbf{N}\mathbf{m}$) |
---|---|---|---|---|---|---|

SnTdTO | 55.4488 | 4.7026 | −24.7221 | −0.0345 | −0.3811 | 0.5427 |

SwTdTO | 60.0955 | 4.8701 | −35.1782 | 0.0944 | −0.5585 | 0.5305 |

SwTrTO | 58.8686 | 5.5569 | −42.5960 | 0.1131 | −0.4363 | 0.5453 |

CnTdTO | 55.1129 | 4.7137 | −24.2897 | −0.0422 | −0.3659 | 0.5439 |

CwTdTO | 59.1127 | 8.4534 | −83.3496 | 0.3281 | −0.1478 | 0.5903 |

CwTrTO | 56.5174 | 6.0268 | −45.0282 | 0.0878 | −0.2893 | 0.5602 |

OnTdTO | 55.1129 | 4.7137 | −24.2897 | −0.0422 | −0.3659 | 0.5439 |

OwTdTO | 59.1127 | 8.4534 | −83.3496 | 0.3281 | −0.1478 | 0.5903 |

OwTrTO | 56.5174 | 6.0268 | −45.0282 | 0.0878 | −0.2893 | 0.5602 |

Using Only Estimated C | Using Estimated C +o | ||||
---|---|---|---|---|---|

Axis | Best C | Value | Best C | Value | Workbench |

${f}_{x}$ | SuppOnly $\lambda $5 OnTdTO | 3.03893 N | All General $\lambda $5000 OnTdTO | 3.14859 N | 8.9007 N |

${f}_{y}$ | SuppOnly $\lambda $1000 SwTdTO | 2.42722 N | All General $\lambda $10 OwTrTO | 3.05630 N | 11.1776 N |

${f}_{z}$ | SuppOnly $\lambda $10 OwTrTO | 2.61958 N | SuppOnly $\lambda $1000 OwTrTO | 2.40174 N | 3.9954 N |

${\tau}_{x}$ | SuppOnly $\lambda $1 SnTdTO | 0.68899 Nm | All General $\lambda $100 OnTdTO | 0.58208 Nm | 0.7901 Nm |

${\tau}_{y}$ | SuppOnly $\lambda $10000 OnTdTO | 0.48474 Nm | SuppOnly $\lambda $100000 OnTdTO | 0.43218 Nm | 0.7146 Nm |

${\tau}_{z}$ | SuppOnly $\lambda $100000 SnTdTO | 0.15184 Nm | All General $\lambda $100 OwTdTO | 0.18044 Nm | 0.2769 Nm |

Contact Forces | Error | ||||||
---|---|---|---|---|---|---|---|

Support | In Situ | ${\mathit{F}}_{\mathit{x}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{F}}_{\mathit{y}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{F}}_{\mathit{z}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{x}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{y}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{z}}$ ($\mathrm{N}\mathrm{m}$) |

Double | No | −14.0252 | −6.8170 | 342.5232 | −14.0252 | −6.8170 | 17.8122 |

Double | Yes | −5.5024 | 0.4523 | 324.2421 | −5.5024 | 0.4523 | −0.4689 |

Left | No | −17.5327 | 18.1905 | 342.6850 | −17.5327 | 18.1905 | 17.9740 |

Left | Yes | −2.4991 | −0.6910 | 325.3190 | −2.4991 | −0.6910 | 0.6080 |

Right | No | −28.3467 | −9.4651 | 343.5918 | −28.3467 | −9.4651 | 18.8808 |

Right | Yes | −8.3183 | −0.0448 | 323.8349 | −8.3183 | −0.0448 | −0.8761 |

Contact Forces | Error | ||||||
---|---|---|---|---|---|---|---|

Support | In Situ | ${\mathit{F}}_{\mathit{x}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{F}}_{\mathit{y}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{F}}_{\mathit{z}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{x}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{y}}$ ($\mathrm{N}\mathrm{m}$) | ${\mathit{E}}_{\mathit{z}}$ ($\mathrm{N}\mathrm{m}$) |

Left | No | 0.0733 | 0.0390 | 323.9000 | 0.0733 | 0.0390 | −0.8110 |

Left | Yes | 0.0119 | 0.0543 | 324.2001 | 0.0119 | 0.0543 | −0.5109 |

Double | No | −4.3180 | −31.3537 | 324.2382 | −4.3180 | −31.3537 | −0.4728 |

Double | Yes | −8.1497 | −5.3398 | 326.7298 | −8.1497 | −5.3398 | 2.0188 |

Right | No | −36.9491 | −21.6199 | 343.4446 | −36.9491 | −21.6199 | 18.7336 |

Right | Yes | 7.6190 | −7.2226 | 321.7694 | 7.6190 | −7.2226 | −2.9416 |

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).