2.1. Kinetostatic Model
The kinematic model of the IPAnema 3 Mini used for this work is taken from [
4]. With reference to
Figure 2,
is a coordinate system fixed on the robot frame, and
is a coordinate system on the end-effector. The pose of the platform in
is defined through the position vector
and the rotation matrix
. For each cable, the position vector of the anchor point on the frame is
in
, whereas the position vector of the anchor point on the end-effector is
in
, for
. For the robot at hand the cable mass is negligible, so that each cable can be modeled as a straight line segment
in
:
If
, the cable direction is
, and the force equilibrium of the end-effector is given by
where
is the so-called
structure matrix,
is the array of cable forces, and
is the
n-dimensional vector representing the total external wrench acting on the end-effector. For the IPAnema 3 Mini, the number of cables is
and the end-effector has
DOFs.
The inverse kinetostatic problem consists in solving Equation (
2) to find the cable tensions. In rigid-body mechanics, this problem has, in general,
solutions for a CDPR with
redundant cables because there are
n equilibrium equations and
m unknowns. Since cables can only exert positive forces, all solutions involving negative tensions must be discarded. In many practical cases, it is desirable to maintain cable forces always higher than a lower limit
greater than zero to prevent cables from becoming slack and smaller than a maximum value
to avoid cable damage. One solution among the infinitely many possible can be chosen in order to achieve a suitable force distribution. In this paper, the inverse kinetostatic problem is solved by applying the method presented in [
29], which is easily applicable in real time. In particular, the minimum 2-norm solution of the cable-tension array is used since this force distribution is continuous during a trajectory, and it minimizes cable forces.
2.2. Friction Model
To control cable forces without using any force sensor, the main problem is to find the correlation between the torque
applied by the motor and the actual force
applied on the end-effector, namely:
where
is the drum radius,
is the inertial torque produced by the moving parts of the winch (motor shaft, drum, …),
is the torque generated by friction phenomena between the motor and the cable attachment point on the end-effector, and
and
are the cable velocity and acceleration, respectively. In the IPAnema 3 Mini robot, no gearboxes are used, so the drums are directly connected to the motor shafts. This means that the friction torque
is generated only by the motor, the drum, and the pulleys.
Figure 3 shows a scheme of one cable kinematic chain, representing the mechanical parts that generate the friction torque
, including the location of the force sensor (a Futek LRM200 JR S-Beam load cell with a maximum load capacity equal to 25 lb). Since it is mounted on the third pulley, a friction force
makes the measurement of the force different from the real one acting on the end-effector due to the friction between the third pulley and the cable attachment point to the end-effector. In general,
and
depend on both the cable force and velocity. The geometric and inertia properties of the mechanical parts of the winch are known, as well as the desired force
(found by the force distribution algorithm). The motion law of the motor is computed through the robot inverse kinematics, which provides
and
. The motor motion law allows one to compute the inertial torque
. Accordingly, the only unknown term in Equation (
3) is
. To determine this quantity, it is necessary to build a friction model by means of experimental tests.
An experimental study was conducted on the kinematic chain of one winch (
Figure 3) by detaching the cable from the end-effector. Different weights were attached to the cable:
kg,
kg,
kg,
kg,
kg,
kg, and
kg. These values approximately cover the tension interval defined for the robot operation, from
N to
N. The weights were moved up and down with trajectories reaching several values of steady-state constant velocity:
m/min,
m/min, 1 m/min, 2 m/min, 3 m/min, 4 m/min, 5 m/min, and 6 m/min. The lower and higher velocities are called
m/min and
m/min. These values are the ones where only the portions of the motion laws with a constant velocity were analyzed. A scheme of the winch kinematic chain during the experiments is shown in
Figure 4. Pulley 1 guides the cable arriving from the drum; pulleys 2, 3, and 4 are used to add the force sensor in the kinematic chain; pulley 5 guides the wire to the end-effector. During the constant-velocity portion of the motion, the term
in Equation (
3) is zero, and
, where
m is the mass of the weight attached to the cable, and
g is the gravitational acceleration. The torque measured by the motor is saved, and its mean value is computed during different movements with the same constant velocity in the same direction. In this way, two different torques were obtained for each velocity and force of the cable, one for the movement in the positive direction and one for the movement in the negative direction. By inserting these torques in Equation (
3) as
, one can find the value of
corresponding to a given velocity and cable tension for each motion direction. The distinction between the different movement directions is necessary since the results obtained with the experimental tests show different frictions in the two cases. The constant velocity used to build the friction model is the one set for the motor, whose value is supposed to be correct without the necessity of measuring the real velocity with an external sensor. This is acceptable since the velocity set for the motor will be used as an input of the final friction model in the control scheme.
During the tests for the estimation of the friction model parameters, the cable routing in the first four pulleys is the same as in the working robot, so the friction that arises in this part of the kinematic chain is the same during the tests and during the robot operation. The same can be said for friction effects in the drum and the motor. However, this is not strictly true for friction effects in the last pulley of the kinematic chain. During testing, in fact, the wrapping angle is always equal to
(see
Figure 4). In contrast, during operation, this angle varies with the trajectory of the end-effector. Its value is always between
and
for the higher pulleys of the robot and between
and
for the lower ones. The approximation adopted for the estimation of friction parameters is, thus, better suited for the higher pulleys than for the lower ones. This is due to the fact that, in all the tested trajectories, the force-controlled cables (namely, the ones in which the friction model is applied) are the higher ones. The scheme shown in
Figure 4 allows one to execute friction tests by only detaching the i-th cable from the end-effector without touching any other part of the robot. This means that friction tests can easily be executed whenever necessary (e.g., if some mechanical parts change or the friction parameters change in time due to wear of some components). This is the main advantage of the simplified friction model introduced in this section; its suitability will be assessed by the experiments reported in
Section 4.
By analyzing the set of points obtained in the tests, we chose a model for estimating the friction torque that is linear in the force and parabolic in the velocity, namely,
The function shape at the right-hand side of Equation (
4) is chosen as the best fit for the registered data. The shape is the same for the positive and negative motion directions, but the coefficients
found through a best-fitting procedure differ. Since our experiments provide data to estimate dynamic friction only starting from the minimum velocity
(the tests conducted with smaller velocities showed little repeatability, and thus, were considered unreliable), it is necessary to model the friction torque for velocities in the interval
. This was achieved by using a polynomial
with degree four in
v for every force value, i.e., the polynomial coefficients are functions of
f, and they are recomputed for every input force value. In this way, the complete model of the friction torque is
The 4 degrees of allow one to impose five conditions for the computation of coefficients :
; this condition is necessary to represent the behavior of the dynamic friction that is zero at rest (static friction is not modeled);
continuity of the polynomial at the borders: and ;
continuity of the derivative of the polynomial at the borders: , and .
The resulting coefficients are
The coefficients obtained for the friction torque model are listed in the first two rows of
Table 1. These data are obtained by applying the Matlab function
lsqnonlin with a step tolerance and a function tolerance both equal to
. The
lsqnonlin function implements a nonlinear least squares solver for curve-fitting problems, and it is used to find the coefficients
and
on the right-hand side of Equation (
5) that minimize the 2-norm of the error vector between the friction torques computed with the model in Equation (
5), and the torques recorded during the friction tests.
Figure 5 represents the friction torque model described in Equation (
5) with the coefficients listed in
Table 1. The black points are the results provided by the experimental tests. The model is considered to give a good estimation of the physical phenomenon since the coefficient of determination [
45] is higher than 0.9 (if
, the function exactly interpolates the input data). It is interesting to note that the maximum value of the predicted friction torque is
Nm, which is approximately
of the nominal motor torque (equal to
Nm). This suggests the importance of the friction model introduced in this section.
Experimental tests were carried out to develop a customized friction model for each winch of the robot, but the results obtained on the control of the overall robot do not show an appreciable improvement in performance compared to the use of the same friction model for all winches (as long as all the winches and the kinematic chains between the drums and the attachment points on the end-effector are the same). For this reason, the same friction model developed on one winch was applied to all the winches. The details of this analysis are not reported for the sake of brevity.
During the tests executed for developing the friction torque model, the data recorded by the load cell mounted in the kinematic chain (
Figure 3) were saved. These data allowed us to derive a model for the friction force
. This model is analogous to that in Equation (
5), with
replacing
and distinct coefficients
(third and fourth rows of
Table 1):
Using a friction model to correct the force measured by the load cells is necessary to obtain an accurate estimation of the actual force acting on the cable attachment point [
43]. The measured forces are not used for the new control algorithms described in this paper, but they were exploited during the validation experiments described in
Section 4.
2.3. Following-Error Model
As an alternative to using the motor torque in the feedback loop to control the cable forces (see
Section 3), we propose using the so-called
following-error (FE), which is the difference between the position set for the motor and the actual one. This is because the torque that the motor measures is usually noisy, and it must be filtered before it can be used in a feedback control loop. Filtering the torque means introducing a delay, which could be a problem for fast movements. The FE has a noisy behavior too, but its oscillations are usually appreciably smaller than the torque ones. Our experiments show that the FE can be used in a feedback loop without any filter.
The IPAnema 3 Mini is equipped with Beckhoff servomotors AM3121-0201 connected to Beckhoff EL7201 terminals, which receive inputs from a programmable logic control (PLC) program developed in TwinCAT 3.1 and running with a cycle time of 1 ms. The motors are controlled in velocity (i.e., a velocity command is given to the motor by the PLC program every millisecond), with a PI controller at the drive level. The position feedback loop is closed in the PLC program with a different P controller that was untouched in this work. If the integral part of the PI controller of the drive is removed, a pure proportional controller designed only through its gain
acts on the motor. In this configuration, when an external torque is applied to the motor shaft, the latter moves to a position that allows the motor torque to balance the external one. Due to the proportional nature of the control law, the position reached by the motor is different from the commanded one, so that an FE arises. In practice, the motor behaves as a torsional spring: an FE on the shaft gives a specific torque and vice versa. This behavior was modeled through experimental tests similar to those used to model the friction torque. In this case, the tests were executed in a static way by applying different loads to the cable with different values of
. By recording the motor torque
and the motor FE for every test, a set of FE points (every one corresponding to a given torque and a given
) is found, which provides, through a best-fit procedure, the coefficient
in the static model reported below (
Figure 6):
However, Equation (
8) is insufficient to model the FE during a movement. Indeed, while executing the dynamic tests to model the friction torque, the FE was also recorded. Even though in those tests, the complete PI controller at the drive level was used, an FE approximately proportional to the cable velocity (and not influenced by the applied force) was observed. The corresponding coefficient
was obtained through a best-fit procedure.
To obtain the final model of the FE, the terms depending on the torque and the cable velocity are summed together:
In this work,
is always equal to 200. This default value was considered appropriate to avoid a transmission that is too stiff (with a higher
) or too compliant (with a smaller
). Tests with different values of
were performed, but they are not reported here for the sake of brevity.
In the experimental tests, the FE is computed as a difference between the actual cable length and the commanded one. So it is measured in meters, as a length. The values of the coefficients
and
are found with the same procedure used for the computation of the friction model coefficients, i.e., by using the Matlab function
lsqnonlin with a step tolerance and a function tolerance both equal to
. Their values are
, and
, with
expressed in newtons per meter and
v in meters per minute. These values lead to a coefficient of determination
of the FE model equal to 0.999. The coefficients
and
differ by several orders of magnitude, but the value that multiplies
in Equation (
9) is
. Working with coefficients with this order of magnitude was not a problem since double-precision variables were used in the PLC code.