# Vibration Suppression for Improving the Estimation of Kinematic Parameters on Industrial Robots

Authors: David Alejandro Elvira-Ortiz; Rene de Jesus Romero-Troncoso; Arturo Yosimar Jaen-Cuellar; Luis Morales-Velazquez; Roque Alfredo Osornio-Rios
Journal: Shock and Vibration
 (2016)

---

## Abstract

Vibration is a phenomenon that is present on every industrial system such as CNC machines and industrial robots. Moreover, sensors used to estimate angular position of a joint in an industrial robot are severely affected by vibrations and lead to wrong estimations. This paper proposes a methodology for improving the estimation of kinematic parameters on industrial robots through a proper suppression of the vibration components present on signals acquired from two primary sensors: accelerometer and gyroscope. A Kalman filter is responsible for the filtering of spurious vibration. Additionally, a sensor fusion technique is used to merge information from both sensors and improve the results obtained using each sensor separately. The methodology is implemented in a proprietary hardware signal processor and tested in an ABB IRB 140 industrial robot, first by analyzing the motion profile of only one joint and then by estimating the path tracking of two welding tasks: one rectangular and another one circular. Results from this work prove that the sensor fusion technique accompanied by proper suppression of vibrations delivers better estimation than other proposed techniques.


---

## Body

## 1. Introduction

Industry tries to automate most of its processes as part of an update that is focused on improving quality standards. This is done by developing tasks in which a robotic system can directly supervise that the process is taking out properly and correcting the problems that may arise along the way. High-precision and high-accuracy in robotics require the study of robot kinematics, dynamics, and control [1]. Forward kinematics is generally used to compute the position and orientation of the robot end-effector as a function of the angular position at each joint [2]. Through this forward kinematics it is possible to identify error parameters by measuring the complete pose of the robot end-effector [3]. Industrial robots are used in several tasks like pick-and-place, painting, welding, and machining operations, where high positioning accuracy is required [4]. However, there are several factors that can affect the proper performance of a robotic manipulator, for example, resolution of the sensors, computer round-off, and one of the most important: vibration [5]. In this sense, it becomes relevant to develop methodologies that allow carrying out proper and reliable measurements by suppressing some error factors present on signals. Besides, all measurements from sensors are contaminated with noise. Noisy measurements are not desirable on the estimation of kinematic parameters because wrong values on the signal produce wrong estimations.The estimation of kinematic parameters in industrial robots has been widely studied. There are many works focused on the improvement of the measurement of the pose of the manipulator end-effector. Artificial vision is one of the most common techniques used for this task [6, 7]. One of the advantages of this technique is that it is a noninvasive system. However, this methodology requires much signal processing, and as the images are acquired in 2D, many assumptions must be done in order to obtain spatial information, which affects the accuracy in the estimation. Laser tracking is another technology that has been recently used to know the configuration of an industrial robot [5, 8]. Yet, it requires a device to be placed on the robot end-effector, so the dimensions of this device introduce an error factor. The solutions mentioned so far use only one sensor. On the other hand, sensor fusion is being used to obtain more accurate results because it tries to compensate for the problems and mistakes from a single sensor with the information provided by different sensors [2, 9–11]. Although all these techniques yield favorable results, they still can be improved. Good noise suppression leads into obtaining better accuracy in the estimation of kinematic parameters in industrial robots, where the acquired signals can be processed to fix some troubles due to manufacturing errors or some other undesired interferences such as vibrations.Current researches reported in literature point out that the encoder in servomotors and the accelerometer are two of the most widely used sensors for monitoring motion dynamics and vibrations on computerized numeric control (CNC) machines and robotic manipulator arms [9]. The accelerometer is used to measure the inclination or angular position of several CNC and robotics systems [2, 9–13]. Nevertheless, accelerometers have been also used for monitoring vibrations in many structures like bridges [14], washing machines [15], CNC machines [16], and industrial robots [9]. The output signal of an accelerometer contains merged information from both, inclination with respect to gravity and vibrations; therefore, a separation of these parameters is desirable for further kinematics and vibration monitoring. Great effort has been done trying to suppress vibrations and noise components from the inclination signals in an accelerometer. In [17], a methodology using a classical linear filter and an orthogonal decomposition is presented. This methodology delivers good noise suppression but it introduces much delay to the system. The use of finite impulse response (FIR) filters [18] and infinite impulse response (IIR) filters [19] is well studied too for this application. The problem when using FIR filters is that it is common that a high order of the filter is required to obtain satisfactory results. This is traduced in a high computational cost that turns the system slow. On the other hand, IIR filters generally produce phase distortion; that is, the phase is not linear with frequency. Moreover, IIR filters are prone to instabilities when implemented. In [20] the noise reduction is carried out by using genetic algorithms and wavelet decomposition. This is a novel technique but the mathematical analysis is quite complex and requires much computational effort, so the implementation for online applications is seriously compromised. Another very useful technique for noise reduction is the Kalman filter (KF). The popularity of KF rests in its capability for reducing errors in a least square sense [21]. According to [22] KF has many applications and among the most important are sensorless control, diagnosis, and fault-tolerant control of ac drives; distributed generation and storage systems; robotics, vision, and sensor fusion techniques; applications in signal processing and instrumentation and real-time implementation of KF for industrial control systems. In this sense, KF represents one of the best options for vibration suppression on accelerometer signals.As it can be seen from the aforementioned research works, many of them are focused on the estimation of kinematic parameters. In order to obtain a reliable estimation of these kinematic parameters, it is important to provide the system with a filtering stage for noise and undesired vibration suppression. The developed methodologies so far offer a good estimation of parameters such as angular position, velocity, and acceleration; nevertheless, the reported stages for noise and undesired vibration reduction require high computational effort, which is a major disadvantage for online applications. Additionally, most of the methodologies use only one sensor for estimating kinematic parameters so the limitations of the sensor are also limitations of the methodology.The main contribution of this work is the vibration suppression using a KF to improve the accuracy on the estimation of industrial robot dynamics; the use of KF provides a technique that does not require high computational effort so the developed methodology can easily work for online applications. Moreover, the sensor fusion of accelerometer and gyroscope improves the results delivered by each sensor separately. This paper proposes a methodology to acquire signals from an accelerometer and a gyroscope; these signals contain information of the motion profile of every axis of the robot merged with noise due to vibration, which is attenuated by a KF. Another KF is used for signal fusion of both, accelerometer and gyroscope. Several study cases are developed to prove the efficiency of the methodology. First, the motion profile of only one link of the manipulator is studied; then, the industrial robot is programmed to perform a circular welding task and a rectangular welding task. The trajectory of the industrial robot is monitored to determine the motion error. A comparison of the results with the vibration components and without them is presented to prove that the results from the proposed methodology improve those results obtained from other reported methodologies. The proposed methodology is implemented in a Field Programmable Gate Array (FPGA) to obtain a hardware signal processor allowing a fast and reliable online system. The proposed methodology is implemented on an ABB IRB 140 industrial robot to prove its efficiency.


## 2. Theoretical Background

This section establishes the relationship between the estimated parameters and robot dynamics, where the accelerometer provides information about acceleration of an axis of the robot relative to gravity, while the gyroscope does the same but with the angular velocity.


### 2.1. Robot Kinematics

The parameters that describe the architecture of the industrial robot ABB IRB 140 [23] are shown in Figure 1, where x
i, y
i, and z
i are the axis name of each joint, a
i is the distance between the axes z
i and z
i
+
1, and b
i is an offset measured along previous z
i
-
1 to the common normal. From the diagram, the Denavit-Hartenberg (D-H) parameters are calculated and summarized in Table 1 where α
i is the angle between z
i
-
1 and z
i and θ
i is the angle between x
i
-
1 and x
i and denotes the rotation of the joint along the z
i
-
1 axis, so it is the angular position of each joint.Table 1
D-H parameters for the robot.
Jointi
a
i
b
i
α
i
θ
i
1
70
352
-
π
/
2
θ
1
2
360
0
0
θ
2
-
π
/
2
3
0
0
π
/
2
θ
3
+
π
4
0
380
-
π
/
2
θ
4
5
0
0
π
/
2
θ
5
6
0
65
π
/
2
θ
6
-
π
/
2Figure 1
Architecture of the industrial robot ABB IRB 140.The proposed system is able to obtain two measurements of the angular position of each joint, except for the first joint, where the movement is always perpendicular to gravity force, so an accelerometer cannot detect changes in this joint and only the data from the gyroscope is used. However, neither the accelerometer nor the gyroscope delivers information of the angular position directly, so it is necessary to process the signals to obtain a value for the current angular position.


#### 2.1.1. Forward Kinematics

Forward kinematics provides the position and orientation (roll, pitch, and yaw) of the robot through the angular position of each joint. In this case, the forward kinematics is calculated through the standard Denavit-Hartenberg notation. The notation is a transformation matrixT
i
0 relating the reference coordinate frame (
X
0
,
Y
0
,
Z
0
) with the coordinate frame of the joint (
X
i
,
Y
i
,
Z
i
). The notation requires obtaining the link parameters of the robot. Those parameters are the link length (
a
i
), the link twist (
α
i
), the joint distance (
b
i
), and the joint angle (
θ
i
) [23]. The mentioned parameters are summarized in Table 1. Those parameters are used to estimate the transformation matrix T
i
0 presented in(1)
T
i
0
=
M
i
d
i
0
1
,where M
i (see (2)) contains the rotation information and d
i is a vector containing the position of the link i (see (3)):(2)
M
i
=
m
i
,
1,1
m
i
,
1,2
m
i
,
1,3
m
i
,
2,1
m
i
,
2,2
m
i
,
2,3
m
i
,
3,1
m
i
,
3,2
m
i
,
3,3
(3)
d
i
=
X
i
Y
i
Z
i
.Therefore, forward kinematics can be calculated using (2) and (3). Position is directly estimated through (3). Orientation can be estimated using (4) to (6), where ∅
i, β
i, and γ
i are the rotations along X
0, Y
0, and Z
0 axis, respectively: (4)
∅
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
3,3
2
m
i
,
3,3
(5)
β
i
=
tan
-
1
⁡
-
m
i
,
3,1
1
-
m
i
,
3,1
(6)
γ
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
1,1
2
m
i
,
1,1
.


### 2.2. Joint Angular Position

The joint angular position is calculated with both gyroscope and accelerometer sensors. Afterwards, the obtained information is fused through a Kalman filter. In the case of the gyroscopes, the angular joint positionθ
G
i can be calculated using (7), where ω
i is the current measure from the gyroscope, S is the minimum value that can be measured with the gyroscope, and T is the sample period of the signal:(7)
θ
G
i
=
θ
G
i
-
1
+
ω
i
S
T
.Concerning the estimation of the angular joint position using accelerometers (
θ
A
i
), the corresponding equations are summarized in Table 2. Such equations assume that the accelerometers provide a noise-free signal, which is unrealistic; thus, the signal requires a filtering stage before being used.Table 2
Equations to estimate the angular position of each joint using accelerometers.
Jointi
Equation
1
—
2
θ
A
2
=
t
a
n
-
1
A
x
A
y
-
90
°
3
θ
A
3
=
tan
-
1
⁡
A
y
A
z
4
θ
A
4
=
t
a
n
-
1
A
y
A
z
-
90
°
5
θ
A
5
=
t
a
n
-
1
A
y
A
z
+
90
°
6
θ
A
6
=
tan
-
1
⁡
A
x
A
z


### 2.3. Kalman Filter

KF is a filter that is based on the use of stochastic variables for estimating the feedback gainK. The tasks in which it is used are many and varied. Its stochastic nature makes it very useful for working with noise suppression and system identification and even to fuse signals online. A Kalman filter works similarly to a feedback controller; the filter estimates the next state of the signal (predict) and then it obtains feedback in the form of noisy measurements to modify the predicted state (correct). General equations for the “predict” stage are presented in(8)
X
k
∗
=
S
X
k
-
1
+
B
u
k
-
1
P
k
∗
=
S
P
k
-
1
S
T
+
Q
,where S matrix relates the previous state X
k
-
1 and the estimated current state X
k
∗, u is an optional control input, and B defines the relation between u and X
k
∗. Q is the signal covariance and P
k
∗ is the a priori estimated error covariance.In the case of the “correct” stage, the required equations are summarized in (9), where R is the measurement noise covariance, H relates the measurements (Z
k) with the current state X
k, K
k is a gain factor that minimizes the a posteriori estimated error covariance (P
k), and I is the identity matrix:(9)
K
k
=
P
k
∗
H
T
H
P
k
∗
H
T
+
R
-
1
X
k
=
X
k
∗
+
K
k
Z
-
H
X
k
∗
P
k
=
I
-
K
k
H
P
k
∗
.


## 2.1. Robot Kinematics

The parameters that describe the architecture of the industrial robot ABB IRB 140 [23] are shown in Figure 1, where x
i, y
i, and z
i are the axis name of each joint, a
i is the distance between the axes z
i and z
i
+
1, and b
i is an offset measured along previous z
i
-
1 to the common normal. From the diagram, the Denavit-Hartenberg (D-H) parameters are calculated and summarized in Table 1 where α
i is the angle between z
i
-
1 and z
i and θ
i is the angle between x
i
-
1 and x
i and denotes the rotation of the joint along the z
i
-
1 axis, so it is the angular position of each joint.Table 1
D-H parameters for the robot.
Jointi
a
i
b
i
α
i
θ
i
1
70
352
-
π
/
2
θ
1
2
360
0
0
θ
2
-
π
/
2
3
0
0
π
/
2
θ
3
+
π
4
0
380
-
π
/
2
θ
4
5
0
0
π
/
2
θ
5
6
0
65
π
/
2
θ
6
-
π
/
2Figure 1
Architecture of the industrial robot ABB IRB 140.The proposed system is able to obtain two measurements of the angular position of each joint, except for the first joint, where the movement is always perpendicular to gravity force, so an accelerometer cannot detect changes in this joint and only the data from the gyroscope is used. However, neither the accelerometer nor the gyroscope delivers information of the angular position directly, so it is necessary to process the signals to obtain a value for the current angular position.


### 2.1.1. Forward Kinematics

Forward kinematics provides the position and orientation (roll, pitch, and yaw) of the robot through the angular position of each joint. In this case, the forward kinematics is calculated through the standard Denavit-Hartenberg notation. The notation is a transformation matrixT
i
0 relating the reference coordinate frame (
X
0
,
Y
0
,
Z
0
) with the coordinate frame of the joint (
X
i
,
Y
i
,
Z
i
). The notation requires obtaining the link parameters of the robot. Those parameters are the link length (
a
i
), the link twist (
α
i
), the joint distance (
b
i
), and the joint angle (
θ
i
) [23]. The mentioned parameters are summarized in Table 1. Those parameters are used to estimate the transformation matrix T
i
0 presented in(1)
T
i
0
=
M
i
d
i
0
1
,where M
i (see (2)) contains the rotation information and d
i is a vector containing the position of the link i (see (3)):(2)
M
i
=
m
i
,
1,1
m
i
,
1,2
m
i
,
1,3
m
i
,
2,1
m
i
,
2,2
m
i
,
2,3
m
i
,
3,1
m
i
,
3,2
m
i
,
3,3
(3)
d
i
=
X
i
Y
i
Z
i
.Therefore, forward kinematics can be calculated using (2) and (3). Position is directly estimated through (3). Orientation can be estimated using (4) to (6), where ∅
i, β
i, and γ
i are the rotations along X
0, Y
0, and Z
0 axis, respectively: (4)
∅
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
3,3
2
m
i
,
3,3
(5)
β
i
=
tan
-
1
⁡
-
m
i
,
3,1
1
-
m
i
,
3,1
(6)
γ
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
1,1
2
m
i
,
1,1
.


## 2.1.1. Forward Kinematics

Forward kinematics provides the position and orientation (roll, pitch, and yaw) of the robot through the angular position of each joint. In this case, the forward kinematics is calculated through the standard Denavit-Hartenberg notation. The notation is a transformation matrixT
i
0 relating the reference coordinate frame (
X
0
,
Y
0
,
Z
0
) with the coordinate frame of the joint (
X
i
,
Y
i
,
Z
i
). The notation requires obtaining the link parameters of the robot. Those parameters are the link length (
a
i
), the link twist (
α
i
), the joint distance (
b
i
), and the joint angle (
θ
i
) [23]. The mentioned parameters are summarized in Table 1. Those parameters are used to estimate the transformation matrix T
i
0 presented in(1)
T
i
0
=
M
i
d
i
0
1
,where M
i (see (2)) contains the rotation information and d
i is a vector containing the position of the link i (see (3)):(2)
M
i
=
m
i
,
1,1
m
i
,
1,2
m
i
,
1,3
m
i
,
2,1
m
i
,
2,2
m
i
,
2,3
m
i
,
3,1
m
i
,
3,2
m
i
,
3,3
(3)
d
i
=
X
i
Y
i
Z
i
.Therefore, forward kinematics can be calculated using (2) and (3). Position is directly estimated through (3). Orientation can be estimated using (4) to (6), where ∅
i, β
i, and γ
i are the rotations along X
0, Y
0, and Z
0 axis, respectively: (4)
∅
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
3,3
2
m
i
,
3,3
(5)
β
i
=
tan
-
1
⁡
-
m
i
,
3,1
1
-
m
i
,
3,1
(6)
γ
i
=
tan
-
1
⁡
1
-
m
i
,
3,1
2
-
m
i
,
1,1
2
m
i
,
1,1
.


## 2.2. Joint Angular Position

The joint angular position is calculated with both gyroscope and accelerometer sensors. Afterwards, the obtained information is fused through a Kalman filter. In the case of the gyroscopes, the angular joint positionθ
G
i can be calculated using (7), where ω
i is the current measure from the gyroscope, S is the minimum value that can be measured with the gyroscope, and T is the sample period of the signal:(7)
θ
G
i
=
θ
G
i
-
1
+
ω
i
S
T
.Concerning the estimation of the angular joint position using accelerometers (
θ
A
i
), the corresponding equations are summarized in Table 2. Such equations assume that the accelerometers provide a noise-free signal, which is unrealistic; thus, the signal requires a filtering stage before being used.Table 2
Equations to estimate the angular position of each joint using accelerometers.
Jointi
Equation
1
—
2
θ
A
2
=
t
a
n
-
1
A
x
A
y
-
90
°
3
θ
A
3
=
tan
-
1
⁡
A
y
A
z
4
θ
A
4
=
t
a
n
-
1
A
y
A
z
-
90
°
5
θ
A
5
=
t
a
n
-
1
A
y
A
z
+
90
°
6
θ
A
6
=
tan
-
1
⁡
A
x
A
z


## 2.3. Kalman Filter

KF is a filter that is based on the use of stochastic variables for estimating the feedback gainK. The tasks in which it is used are many and varied. Its stochastic nature makes it very useful for working with noise suppression and system identification and even to fuse signals online. A Kalman filter works similarly to a feedback controller; the filter estimates the next state of the signal (predict) and then it obtains feedback in the form of noisy measurements to modify the predicted state (correct). General equations for the “predict” stage are presented in(8)
X
k
∗
=
S
X
k
-
1
+
B
u
k
-
1
P
k
∗
=
S
P
k
-
1
S
T
+
Q
,where S matrix relates the previous state X
k
-
1 and the estimated current state X
k
∗, u is an optional control input, and B defines the relation between u and X
k
∗. Q is the signal covariance and P
k
∗ is the a priori estimated error covariance.In the case of the “correct” stage, the required equations are summarized in (9), where R is the measurement noise covariance, H relates the measurements (Z
k) with the current state X
k, K
k is a gain factor that minimizes the a posteriori estimated error covariance (P
k), and I is the identity matrix:(9)
K
k
=
P
k
∗
H
T
H
P
k
∗
H
T
+
R
-
1
X
k
=
X
k
∗
+
K
k
Z
-
H
X
k
∗
P
k
=
I
-
K
k
H
P
k
∗
.


## 3. Methodology

A general diagram of the methodology is presented in Figure2. The methodology is summarized in five stages: instrumentation and data acquisition system; vibration suppression that is the main module of this methodology and makes the difference between having good and accurate results or not; angular position estimation; data fusion and forward kinematics. Generally, the methodology is described as follows: 6 gyroscopes and 5 accelerometers are placed on the robot, signals from the sensors are acquired with an FPGA-based data acquisition system, and then the signals are filtered to suppress the vibration present on the signals; next, two angular positions for each joint are estimated: one from the accelerometer signals and another one from the gyroscope signals. The next step is the fusion of the two angular position signals for each link so only one signal is obtained for each link. Finally, the six angular positions are taken to estimate the position of the robot end-effector by its forward kinematics. So the system delivers three outputs X, Y, and Z that are the coordinates of the robot position. The data acquisition system and in general all the processing for this methodology are implemented in a hardware signal processor, which is a proprietary FPGA-based system, allowing implementing this methodology online. It is important to mention that KF is used for both, vibration suppression and data fusion. Nevertheless, two KF are used, one for vibration suppression and another one for data fusion. Although both are KF, the parameters of each one are different for every stage; that is why it is necessary to use two different KF. Following subsections describe each stage in detail.Figure 2
Methodology.


### 3.1. Instrumentation

The use of accelerometers and gyroscopes on ABB IRB 140 robot requires placing them adequately in specific positions. The instrumentation of the robot consists of 5 triaxial accelerometers and 6 triaxial gyroscopes. In the case of gyroscopes only one axis per sensor is utilized. For the accelerometers two axes per sensor are used as can be seen in Table2. Also, there is no accelerometer in joint 1 since in its case it does not provide information about the angular position. Therefore, the system has to filter and fuse the information from 16 sensor measurements. The data acquisition system (DAS) is FPGA-based. Data from sensors are acquired and stored in this DAS; then they can be sent to a personal computer or remain in the DAS to be processed.


### 3.2. Vibration Suppression

Since signals from accelerometers have merged information of vibration and inclination, it is necessary to eliminate the vibration components in order to correctly estimate the angular position of every link of the robot. Moreover, gyroscopes are not exempt from noise coming from the vibration, so every signal must be properly filtered before being used. KF is used for this purpose. For designing the filter, (8) to (9) are used. Concerning the vibration suppression stage, matrix S is an identity matrix; B
=
0; X
=
[
A
i
-
1
X
∗
,
A
i
-
1
Y
∗
,
A
i
-
1
Z
∗
]
T for accelerometers and X
=
[
V
i
-
1
∗
]
T for gyroscopes; Z
=
A
(
i
-
1
)
X
,
A
(
i
-
1
)
Y
,
A
(
i
-
1
)
Z
T for accelerometers and Z
=
[
V
(
i
-
1
)
]
T for gyroscopes; Q is a diagonal matrix containing the covariance of each signal; likewise, R is a diagonal matrix with the noise covariance of each signal and H is an identity matrix. The correct use of KF allows good vibration suppression. This vibration suppression is the key for having a good performance of the methodology, because the sensor fusion is fully exploited when the signals are properly filtered.


### 3.3. Angular Position Estimation

Once the signals are filtered to remove the vibration present on them, the angular position of the link is estimated using both, accelerometer and gyroscope. Since the gyroscope is a sensor that originally yields signals measuring angular velocity, it can be easily inferred that an integration must be done for obtaining the angular position from the data collected from this sensor. This integration is presented in (7). Concerning the gyroscope, the estimation of the angular position is carried out following the diagram shown in Figure 3. Gyroscope measurements are equal to zero when it is static, so it is necessary to establish an initial condition. In this particular case the initial condition is the first instantaneous measurement of the angular position from the accelerometer. It is noteworthy that this digital integration introduces a cumulative error in each iteration. This error is known as “drift.” The sensor fusion is intended to reduce such errors. For calculating the position with the gyroscope, the first step is to receive the input signal ω, which is the gyroscope signal after being filtered. The position value is initialized on a “init” value, (7) is applied, and an instantaneous value of angular position is obtained. If the task has already been completed, the final position signal is delivered; otherwise the process is repeated until the task is finished.Figure 3
Angular position estimation with gyroscope.As the accelerometer is not used in axis 1, the initial position value for this axis must be taken from the robot controller. As mentioned, each sensor is triaxial, but for purposes of this work, only one axis of each gyroscope is used. Table3 shows the relation of the axes of each gyroscope used for the estimation of the angular position.Table 3
Gyroscope axis used for estimating angular position.
Robot link
Gyroscope axis
1
Y
2
Z
3
Y
4
Y
5
Y
6
XTo estimate the angular position of each link with the accelerometer, the vector components of the acceleration are used according to Table2. The process to estimate the angular position with this sensor is very similar to the previous one shown in Figure 3. The first step is to receive the input signals from the accelerometer; the signal must be filtered before being used for estimating the angular position. The corresponding equation from Table 2 is applied and an instantaneous value of the angular position is estimated. If the task has already been completed the final position signal is delivered; otherwise the process is repeated until the task is finished. It is necessary to remember that only two signals per accelerometer are used in this step.


### 3.4. Data Fusion

As aforementioned, KF can also be used for fusing signals. In this paper KF is used for this purpose because it can predict the future value of the signal with less delay than other filters. In this stage Kalman filter is designed for the sensor fusion of two signals; in this case the parameters of the general equations (8) to (9) are S
=
1; B
=
0; X
=
θ
i
∗; Z
=
θ
A
i
,
θ
G
i
T; Q is the covariance of the angular position; R is a diagonal matrix with the noise covariance of each input signal; and H
=
1,1
T. To implement this filter, it is necessary to follow the diagram of Figure 3 but using the parameters described in this section.


### 3.5. Forward Kinematics Estimation

The forward kinematics is the last stage of this methodology. Through forward kinematics the position of the robot end-effector can be estimated. Figure4 shows the process necessary to obtain this position. The signal θ
i of each link must be known. Once the angular position of the six axes is acquired, the transformation matrix T
0
6 is calculated. From this matrix the vector d
6, containing the position of the robot end-effector, is obtained to give a current estimation; if the task has already been completed the final position signal is delivered; otherwise the process is repeated until the task is finished.Figure 4
Forward kinematics estimation.


## 3.1. Instrumentation

The use of accelerometers and gyroscopes on ABB IRB 140 robot requires placing them adequately in specific positions. The instrumentation of the robot consists of 5 triaxial accelerometers and 6 triaxial gyroscopes. In the case of gyroscopes only one axis per sensor is utilized. For the accelerometers two axes per sensor are used as can be seen in Table2. Also, there is no accelerometer in joint 1 since in its case it does not provide information about the angular position. Therefore, the system has to filter and fuse the information from 16 sensor measurements. The data acquisition system (DAS) is FPGA-based. Data from sensors are acquired and stored in this DAS; then they can be sent to a personal computer or remain in the DAS to be processed.


## 3.2. Vibration Suppression

Since signals from accelerometers have merged information of vibration and inclination, it is necessary to eliminate the vibration components in order to correctly estimate the angular position of every link of the robot. Moreover, gyroscopes are not exempt from noise coming from the vibration, so every signal must be properly filtered before being used. KF is used for this purpose. For designing the filter, (8) to (9) are used. Concerning the vibration suppression stage, matrix S is an identity matrix; B
=
0; X
=
[
A
i
-
1
X
∗
,
A
i
-
1
Y
∗
,
A
i
-
1
Z
∗
]
T for accelerometers and X
=
[
V
i
-
1
∗
]
T for gyroscopes; Z
=
A
(
i
-
1
)
X
,
A
(
i
-
1
)
Y
,
A
(
i
-
1
)
Z
T for accelerometers and Z
=
[
V
(
i
-
1
)
]
T for gyroscopes; Q is a diagonal matrix containing the covariance of each signal; likewise, R is a diagonal matrix with the noise covariance of each signal and H is an identity matrix. The correct use of KF allows good vibration suppression. This vibration suppression is the key for having a good performance of the methodology, because the sensor fusion is fully exploited when the signals are properly filtered.


## 3.3. Angular Position Estimation

Once the signals are filtered to remove the vibration present on them, the angular position of the link is estimated using both, accelerometer and gyroscope. Since the gyroscope is a sensor that originally yields signals measuring angular velocity, it can be easily inferred that an integration must be done for obtaining the angular position from the data collected from this sensor. This integration is presented in (7). Concerning the gyroscope, the estimation of the angular position is carried out following the diagram shown in Figure 3. Gyroscope measurements are equal to zero when it is static, so it is necessary to establish an initial condition. In this particular case the initial condition is the first instantaneous measurement of the angular position from the accelerometer. It is noteworthy that this digital integration introduces a cumulative error in each iteration. This error is known as “drift.” The sensor fusion is intended to reduce such errors. For calculating the position with the gyroscope, the first step is to receive the input signal ω, which is the gyroscope signal after being filtered. The position value is initialized on a “init” value, (7) is applied, and an instantaneous value of angular position is obtained. If the task has already been completed, the final position signal is delivered; otherwise the process is repeated until the task is finished.Figure 3
Angular position estimation with gyroscope.As the accelerometer is not used in axis 1, the initial position value for this axis must be taken from the robot controller. As mentioned, each sensor is triaxial, but for purposes of this work, only one axis of each gyroscope is used. Table3 shows the relation of the axes of each gyroscope used for the estimation of the angular position.Table 3
Gyroscope axis used for estimating angular position.
Robot link
Gyroscope axis
1
Y
2
Z
3
Y
4
Y
5
Y
6
XTo estimate the angular position of each link with the accelerometer, the vector components of the acceleration are used according to Table2. The process to estimate the angular position with this sensor is very similar to the previous one shown in Figure 3. The first step is to receive the input signals from the accelerometer; the signal must be filtered before being used for estimating the angular position. The corresponding equation from Table 2 is applied and an instantaneous value of the angular position is estimated. If the task has already been completed the final position signal is delivered; otherwise the process is repeated until the task is finished. It is necessary to remember that only two signals per accelerometer are used in this step.


## 3.4. Data Fusion

As aforementioned, KF can also be used for fusing signals. In this paper KF is used for this purpose because it can predict the future value of the signal with less delay than other filters. In this stage Kalman filter is designed for the sensor fusion of two signals; in this case the parameters of the general equations (8) to (9) are S
=
1; B
=
0; X
=
θ
i
∗; Z
=
θ
A
i
,
θ
G
i
T; Q is the covariance of the angular position; R is a diagonal matrix with the noise covariance of each input signal; and H
=
1,1
T. To implement this filter, it is necessary to follow the diagram of Figure 3 but using the parameters described in this section.


## 3.5. Forward Kinematics Estimation

The forward kinematics is the last stage of this methodology. Through forward kinematics the position of the robot end-effector can be estimated. Figure4 shows the process necessary to obtain this position. The signal θ
i of each link must be known. Once the angular position of the six axes is acquired, the transformation matrix T
0
6 is calculated. From this matrix the vector d
6, containing the position of the robot end-effector, is obtained to give a current estimation; if the task has already been completed the final position signal is delivered; otherwise the process is repeated until the task is finished.Figure 4
Forward kinematics estimation.


## 4. Experimental Setup

Figure5 shows the experimental setup of this work. It consists of an ABB IRB-140 robot instrumented with accelerometers and gyroscopes. The desired trajectory is programed on the robot through the controller provided by the manufacturer. Both sensors, accelerometer and gyroscope, are mounted on a proprietary board, which sends the information via RS-485 protocol to the data acquisition system. All the signal processing is carried out using a proprietary FPGA-based hardware signal processor. It contains an FPGA SPARTAN-3E-1600; a static Random Access Memory (RAM) IS61LV5128AL with capacity of 4 Mb and a dynamic RAM MT48LC16M16A2 of 256 Mb. So this system allows acquiring and storing the data to process them either online or offline. In order to validate the proposed measurement system two welding paths are performed in the robot since they are repetitive tasks commonly used in the industry. During the robot operation the set of sensors are monitored and sent to a hardware signal processor for their treatment. The information is sent to a PC for display and validation purposes.Figure 5
Experimental setup.


### 4.1. Sensor Characteristics

The sensor characteristics are summarized in Table4. Both sensors, the accelerometer and the gyroscope, provide the information in digital format.Table 4
Sensor characteristics.
Sensor
Description
Features
Accelerometer
LIS331DLH
Digital three-axis accelerometer, up to 1000 Hz user selectable bandwidth, user selectable scale of ±2.0 g/4.0 g/8.0 g (g = 9.81 m/s2), a 16-bit rate value data output, 1 mg/digit sensitivity, and communication protocol I2C and SPI.
Gyroscope
L3GD20
Digital three-axis gyroscope, up to 760 Hz user selectable bandwidth, user selectable scale of ±250/500/2000 dps, a 16-bit rate value data output, 8.75 mdps/digit sensitivity, and communication protocol I2C and SPI.


### 4.2. Calibration

All sensors and the hardware signal processor are properly calibrated to validate the methodology proposed in this paper. The manufacturer calibrated the sensors and the parameters of that calibration appear on the data sheet of the accelerometer [24] and gyroscope [25], respectively. Some sensors required a correction factor because of the architecture of the robot. Figure 6 shows the home position of the robot and according to the robot controller, for this configuration, the angular position of every link must be zero. Nevertheless, due to the positioning of the sensors these values do not correspond to the expected values. Therefore, it was necessary to add the correction factors shown in Table 2 for correcting the values delivered by each accelerometer. For gyroscopes, this calibration was not necessary since they are initialized with the first value acquired by the accelerometer.Figure 6
ABB IRB 140 home position.For the hardware signal processor, a calibration process as the one presented for the accelerometers is carried out. In this case, the correction factors are those due to the Denavit-Hartenberg parameters of the manipulator. From Table1 it can be inferred that the values of θ
2, θ
3, and θ
6 must be corrected to obtain the expected results.Additionally, a kinematic calibration process is performed. This calibration process allows ensuring that the measurement and results are not affected by mechanical parameters of the robot such as flexion on the joints and links. For this work the recursive least square (RLS) algorithm is proposed. The principle of least squares states that the unknown parameters of a mathematical model must be calculated so that the overall solution minimizes the sum of the squares of the errors made in the results of every single equation.


## 4.1. Sensor Characteristics

The sensor characteristics are summarized in Table4. Both sensors, the accelerometer and the gyroscope, provide the information in digital format.Table 4
Sensor characteristics.
Sensor
Description
Features
Accelerometer
LIS331DLH
Digital three-axis accelerometer, up to 1000 Hz user selectable bandwidth, user selectable scale of ±2.0 g/4.0 g/8.0 g (g = 9.81 m/s2), a 16-bit rate value data output, 1 mg/digit sensitivity, and communication protocol I2C and SPI.
Gyroscope
L3GD20
Digital three-axis gyroscope, up to 760 Hz user selectable bandwidth, user selectable scale of ±250/500/2000 dps, a 16-bit rate value data output, 8.75 mdps/digit sensitivity, and communication protocol I2C and SPI.


## 4.2. Calibration

All sensors and the hardware signal processor are properly calibrated to validate the methodology proposed in this paper. The manufacturer calibrated the sensors and the parameters of that calibration appear on the data sheet of the accelerometer [24] and gyroscope [25], respectively. Some sensors required a correction factor because of the architecture of the robot. Figure 6 shows the home position of the robot and according to the robot controller, for this configuration, the angular position of every link must be zero. Nevertheless, due to the positioning of the sensors these values do not correspond to the expected values. Therefore, it was necessary to add the correction factors shown in Table 2 for correcting the values delivered by each accelerometer. For gyroscopes, this calibration was not necessary since they are initialized with the first value acquired by the accelerometer.Figure 6
ABB IRB 140 home position.For the hardware signal processor, a calibration process as the one presented for the accelerometers is carried out. In this case, the correction factors are those due to the Denavit-Hartenberg parameters of the manipulator. From Table1 it can be inferred that the values of θ
2, θ
3, and θ
6 must be corrected to obtain the expected results.Additionally, a kinematic calibration process is performed. This calibration process allows ensuring that the measurement and results are not affected by mechanical parameters of the robot such as flexion on the joints and links. For this work the recursive least square (RLS) algorithm is proposed. The principle of least squares states that the unknown parameters of a mathematical model must be calculated so that the overall solution minimizes the sum of the squares of the errors made in the results of every single equation.


## 5. Results and Discussion

Figure7(a) shows the raw signal for one axis of one of the accelerometers. The motion profile can be easily seen. Nevertheless, it is clear that the signal contains noise. This noise is due to the vibration present on the robot and it affects the right estimation of the angular position on every axis. Figure 7(b) shows the spectrogram of the raw signal from the sensor. In this figure, the motion profile is clearly distinguished as a DC component, but also the components due to spurious vibration appear. Figure 7(b) shows that the vibration motion profile and spurious vibrations are in different frequency bands; that is why it is inferred that noise due to vibration can be reduced using the proper filter. Figure 7(c) presents a zoom to the vibration zone marked as 1 in Figure 7(b). In this zone it is possible to see that for the time between 2 and 6 seconds there are vibration components in the band from 10 to 20 Hz and the amplitude of these components is up to −40 dB. Looking at the time that the mentioned components appear, it can be inferred that these vibrations are due to the start of the motion, because the robot motors need a great effort to change the manipulator from rest to motion. On the other hand, Figures 7(d) and 7(e) show the time between 26 and 28 seconds. For this period there are vibrations comprised in two different bandwidths. Figure 7(d) shows that there are peaks of vibration in the band from 0 to 15 Hz with an amplitude of −30 dB, whereas Figure 7(e) shows that there is also vibration of high amplitude (up to −46 dB) at the frequencies between 50 and 60 Hz. These components appear at the end of the motion task, so it can be assumed that they are due to the inertia needed to stop the manipulator. Some other components of vibration appear in Figure 7(b); these components are also comprised in frequencies lower than 25 Hz and they can be attributed to the changes on the direction followed by the robot. However, the amplitude is not as high as that amplitude present on the analyzed zones.Figure 7
One axis motion profile with noise due to vibration.
(a)
Accelerometer raw signal
(b)
Spectrogram of the raw signal
(c)
Zoom to zone of vibration 1
(d)
Zoom to zone of vibration 2
(e)
Zoom to zone of vibration 3Conversely, Figure8 shows the same signal of Figure 7 but after applying the filter. The motion profile in Figure 8(a) looks smoother than the one in Figure 7(a), proving that the filter really works and helps to diminish the vibration components present on the signal. Figure 8(b) shows the spectrogram of the signal after being filtered. Once again the motion profile appears as a DC component on the figure, while the noise appears spread on other frequencies. However, this time the zones presenting noise due to vibration are less than those in Figure 7(b), and also the amplitude of the components of vibration is higher in Figure 7(b) than in Figure 8(b), because of the filtering stage for reducing the spurious vibration levels; after this filtering stage, the acceleration signal presents some marginal spurious vibration in one zone. This zone is between 26 and 28 seconds at the bandwidth from 0 to 15 Hz, but the amplitude is highly attenuated when compared to the unfiltered signal. The zone described is the same marked as 2 in Figure 7(b), so Figure 8(c) presents a zoom of that zone but after applying KF. It is clear that the remaining spurious vibrations are greatly attenuated by the KF, highlighting the efficiency of the filtering stage. The amplitude of the vibration is reduced from −30 to −45 db, which is a noticeable reduction. The other two zones that presented important levels of vibration before filtering are also marked in Figure 8(b), but now there are no visible spurious vibrations remaining on these zones, meaning that they are attenuated to levels below the background noise.Figure 8
One axis motion profile without noise due to vibration.
(a)
Accelerometer filtered signal
(b)
Spectrogram of the filtered signal
(c)
Zoom to the vibration zoneTo have a better indicator on how the vibration signal is attenuated by the KF, Figure9 shows the vibration levels extracted from the original signal of the accelerometer before and after the filtering stage. The signals used in the comparison are the same that are shown in Figures 7(a) and 8(a). The vibration level is obtained experimentally by using a high-pass IIR filter. It is important to mention that this filter is used only to show the magnitude of the vibration present in the acquired signals but it is not a part of the proposed methodology. Figure 9 corroborates the fact that the highest levels of vibration are present at the beginning and at the end of the task, and it is remarkable that the levels of vibration are almost imperceptible after applying the KF, indicating the right operation of the filtering stage.Figure 9
Comparison of the vibration levels before and after the KF from the acceleration signal.The same analysis is performed to every link of the robot and for each axis of the sensor. Table5 summarizes the extracted parameters. This table contains the peak amplitude, the mean value, and the RMS value of the vibrations. The KF clearly diminishes the peak values of the vibrations. The maximum amplitude of the vibration is high for some links (above 1 g) without filtering. These peak values introduce high errors when estimating angular position so it is of great importance to suppress them. In addition, the RMS value is considerably lower after filtering; this RMS value represents the deviation level of the vibrations from the mean and consequently, reducing the RMS value lowers the error introduced in the following processing stages.Table 5
Analysis of the vibration parameters on each robot link.
Robot link
Sensor axis
Vibration level (g) 1 g = 9.81 m/s2
Before KF
After KF
Peak
Mean
RMS
Peak
Mean
RMS
1
x
0.2571
6.61
×
10
-
5
0.9799
0.0030
1.94
×
10
-
6
0.0052
y
0.5154
5.98
×
10
-
6
0.3129
0.0060
-
3.36
×
10
-
7
0.0028
z
0.2057
4.38
×
10
-
6
0.5902
0.0017
2.90
×
10
-
7
0.0036
2
x
0.9713
-
4.53
×
10
-
7
0.0150
0.0099
4.61
×
10
-
6
0.0003
y
1.6390
-
6.34
×
10
-
7
0.0178
0.0054
-
2.78
×
10
-
9
0.0003
z
0.4696
5.86
×
10
-
7
0.0087
0.0009
1.03
×
10
-
8
0.0001
3
x
0.6392
3.63
×
10
-
7
0.0940
0.0018
2.30
×
10
-
8
0.0001
y
0.5938
-
1.32
×
10
-
7
0.0152
0.0057
-
2.19
×
10
-
8
0.0003
z
1.6423
-
2.46
×
10
-
8
0.0198
0.0100
-
4.88
×
10
-
9
0.0003
4
x
1.6434
-
2.10
×
10
-
7
0.0170
0.0051
2.71
×
10
-
9
0.0003
y
0.9624
9.98
×
10
-
8
0.0189
0.0093
1.99
×
10
-
8
0.0003
z
0.2382
-
1.52
×
10
-
7
0.0096
0.0013
4.68
×
10
-
9
0.0001
5
x
0.2733
8.15
×
10
-
8
0.0140
0.0051
5.52
×
10
-
9
0.0002
y
0.3477
-
3.29
×
10
-
7
0.0183
0.0018
-
1.80
×
10
-
9
0.0002
z
1.0015
-
1.86
×
10
-
6
0.0260
0.0120
-
2.20
×
10
-
8
0.0004
6
x
0.4371
3.71
×
10
-
8
0.0150
0.0063
3.47
×
10
-
9
0.0002
y
0.4735
6.89
×
10
-
8
0.0163
0.0015
1.78
×
10
-
9
0.0002
z
0.5328
2.37
×
10
-
7
0.0230
0.0032
2.23
×
10
-
9
0.0003A more complex and detailed analysis of the modes of vibration and the frequencies presented on each mode was carried out in [26] for a structure very similar to the one used for this methodology. Since both mechanisms are similar, the behavior of them is expected to be similar too. However, an analysis as complex as the aforementioned is left for future research.For the gyroscope, Figure10 shows the signal before and after applying the filter to suppress the vibration. It is easy to see that, before the filter, the signal contains noise and the information about the motion profile of the joint of the robot is not accurate. After applying the filter, the motion profile appears and the noise on the signal is greatly reduced.Figure 10
Signals from gyroscope before and after KF.As aforementioned, to prevent errors due to mechanical parameters of the manipulator, the RLS method is applied for calibration of the robot kinematic parameters. The first study case is a rectangular welding task. The tracking of the rectangular welding task without filtering the components of spurious vibration is shown in Figure11(a). When trying to estimate the trajectory for this task, without filtering the components of vibration merged on data from sensors, the path estimated presents fluctuations and there are zones where the estimated value is far from the desired value. Furthermore, it is very notorious that the task starts and ends in different positions, which is not correct. This is a very inaccurate estimation, and any decision based on these results may not be correct. After applying the filter to suppress the vibration, the estimation of the trajectory is greatly improved (see Figure 11(b)). Now the estimated values are not so far from the expected. The tracking of the path is smoother than when not applying the filter; there are still areas where the path does not match the expected but this is less marked than in previous case. In addition, it is easy to see that when the vibration is suppressed the trajectory starts and ends in the same position. These results clearly show the effect of vibration when trying to estimate the position of an industrial robot.Figure 11
Tracking of the rectangular welding task.
(a)
Without vibration suppression
(b)
With vibration suppressionThe second study case is a circular welding task. For this case there are also two different situations: the first one is when the estimation of the trajectory is carried out with the data contaminated with spurious vibration and the second when the filter is used to diminish the noise present on the signals from sensors. In the case of circular welding task, the effect of vibrations is even more notorious than in the rectangular one (Figure12(a)). The trajectory presents more fluctuations and the estimated values are further from the expected than in the previous case. It is more evident that the start and end of the trajectory are in different positions, which is erroneous. Nevertheless, after filtering the signals and repeating the estimation of the path for the circular trajectory, the results improve even more than in the rectangular task (Figure 12(b)). Most of the estimated values match the expected; the trajectory is smooth and in this case the problem with the start and end positions is corrected, proving the good performance of the proposed methodology.Figure 12
Tracking of circular welding task.
(a)
Without vibration suppression
(b)
With vibration suppressionTo have a better indicator of the efficiency of this work, the graphics of the evolution of the error on the estimations are presented. Figure13 shows the error before and after applying the filter to suppress the vibration on rectangular welding task. When the filter is not applied, the maximum value of the error exceeds 20 mm. This error is unacceptable and it leads to a bad performance on the task programed on the robot. When the vibration is reduced through the filter, the maximum value of the error does not exceed the 2 mm, which means that filtering the noise due to vibration improves the performance over ten times. In the case of the error for the circular path it is clear that the error is higher than in the rectangular path (Figure 14). The highest value of the error is almost 30 mm when the vibration is present. When the filter removes the vibration, the maximum error is of less than 1 mm. Therefore, in order to have accurate measurements it is necessary to separate the noise from the relevant information.Figure 13
Error present on the estimation of the rectangular path.Figure 14
Error present on the estimation of the circular path.Table6 summarizes the values of the mean square error (MSE) and the mean of the error. This corroborates the results present in Figures 13 and 14. Both the MSE and the mean of the error are much higher when the vibration is present in the data. The error is clearly reduced when data is not contaminated with vibration.Table 6
Mean square error and mean of the error for robot path tracking.
PATH
MSE (mm)
Mean (mm)
With vibration
Without vibration
With vibration
Without vibration
Rectangular
5.375
0.6274
5.5181
0.4353
Circular
43.7230
0.3325
28.4337
0.2086Additionally, and in order to show that the estimation of kinematic parameters is better using the sensor fusion than with other techniques, Table7 shows a comparative of the MSE and the mean error of the estimation using three different estimation techniques: accelerometer only, gyroscope only, and the fusion of accelerometer and gyroscope. This analysis uses the values of the error considering that vibration is not present on the signals from sensors.Table 7
Comparison of error for different techniques.
PATH
MSE (mm)
Mean (mm)
Accelerometer
Gyroscope
Fusion
Accelerometer
Gyroscope
Fusion
Rectangular
1.0096
1.5053
0.6274
0.7160
1.1359
0.4353
Circular
0.9656
2.5431
0.3325
0.5951
1.6018
0.2086From results in Table7, it is clear that the methodology that offers the best results is the fusion of signals. The worst results are obtained when using the gyroscope. This is because gyroscopes deliver very accurate results when they start working, but as the process progresses, the drift appears. This is an error introduced when estimating the position from the angular velocity data. Accelerometers offer better results than gyroscope. However, accelerometer only provides information about the acceleration relative to gravity and, in this particular case, the first joint of the robot under test does not present any variation of acceleration relative to gravity, so in order to obtain a value for the position of the robot, it is necessary to use expected data and not the real. The aforementioned problems can be corrected using the sensor fusion, and it is notorious that also the estimation of the kinematic parameters improves.


## 6. Conclusion

A system capable of providing complete joint kinematics and position of an industrial robot is proposed and tested in a 6 degrees of freedom' robot. The system is based on KF technique for vibration suppression and for fusing the measurements of two primary sensors: gyroscopes and accelerometers. It is remarkable that although a calibration method is used to compensate errors due to external factors, vibration severely affects the estimation of the kinematic parameters of the manipulator. KF proves to be a great tool for suppressing vibration in order to obtain accurate results, and the introduced delay is not significant, so the task can be used online. Without this stage, all the results are meaningless so it is very important to carry out a proper suppression of the noise due to vibration. The fusion of these sensors adds improvements to measurements delivered by every sensor separately. By using these sensors and techniques, the estimation of robotic kinematic parameters is improved. Results from this work show that sensor fusion is not affected by the cumulative error caused by using the gyroscope or the accelerometer information. This cumulative error highly affects the results using another technique leading to a lack of accuracy which is traduced in undesired positioning problems. According to Table6, fusion sensor technique delivers results up to 8 times better than gyroscope technique and 2 times better than accelerometer. This is a good improvement considering that industrial robots are designed to do repetitive and accurate tasks and a lack of any of these two aspects represents losses to the enterprise.



---

*Source: 6954012-2016-03-30.xml*