Next Article in Journal
Creating Customized CGRAs for Scientific Applications
Previous Article in Journal
CDM Protection Test Structure for I/O Cells in a Submicronic Technology
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Self-Calibration for the General Cable-Driven Serial Manipulator with Multi-Segment Cables

School of Mechatronics Engineering, Harbin Institute of Technology, Harbin 150001, China
*
Author to whom correspondence should be addressed.
Electronics 2021, 10(4), 444; https://doi.org/10.3390/electronics10040444
Submission received: 14 January 2021 / Revised: 30 January 2021 / Accepted: 6 February 2021 / Published: 11 February 2021
(This article belongs to the Section Systems & Control Engineering)

Abstract

:
This paper focuses on the kinematic calibration problem for the general cable-driven serial manipulator (CDSM) with multi-segment cables to improve its motion control accuracy. Firstly, to fully describe the calibration parameters of cables, links, joint positions, and the transmission system, this paper proposes a new cable routing description method named cable-routing configuration struct (CRCS), which provides a complete set of parameters to be calibrated for the proposed self-calibration algorithm. Then, a self-calibration algorithm for CDSM with motor incremental encoders is proposed, which can calibrate the robot at one time only using sufficient measured motor and joint positions. Its premise, the initial cable length, needs to be calibrated. Finally, the parameters of a three-DOF (degree of freedom) six-cable CDSM were described using the CRCS description method, and a comparative experiment was carried out on the same motion controller using the parameters before and after calibration. The experiment results of trajectory tracking error showed that the calibration parameters obtained by the proposed calibration algorithm can significantly improve the motion control accuracy of the three-DOF six-cable CDSM. This verified the correctness and effectiveness of the proposed calibration algorithm.

1. Introduction

Cable-driven robots have been applied in many fields, for example, medical rehabilitation [1], assembly in a complex narrow cavity [2,3], automatic charging in electric vehicles [4], nuclear reactors [5], etc. High positioning and trajectory tracking accuracies is the basis of performing complex tasks. To reduce the inaccuracy resulting from manufacturing defects, assembly misalignments, compliance, and wear of connecting mechanisms [6], the calibration for key kinematic parameters is critical.
Currently, researchers are designing calibrations algorithm for cable-driven robots [6,7,8,9,10,11,12,13,14,15,16]. In ref. [6], the attachment points’ locations of cables were calibrated by using the robot’s internal sensors, i.e., motor encoders, instead of external measurement devices. Besides, the closed-form forward kinematics of the three-DOF and one-DOF cable-driven parallel manipulators (CDPMs) are formulated and then applied in the proposed calibration algorithm. This constrains the adaptability of the algorithm for complex systems. In ref. [7], the link parameters were firstly calibrated using joint encoders and then the attachment points’ locations and constant coefficients from motor positions to cable lengths were calibrated by using motor encoders. Compared with [6], no forward kinematic model is used in the calibration algorithm. Nevertheless, there are implicit assumptions in this algorithm, that is, absolutely accurate measurements of the joint encoders and known initial cable lengths. In ref. [8], a generic calibration method for the initial cable lengths of CDPMs with relative encoders was proposed based on forward kinematics. However, this algorithm requires the knowledge of attachment points’ locations beforehand. The calibration algorithm proposed by [9] uses cable lengths and tensions to directly determine end-effector’s pose, and does not calibrate parameters, for example, link lengths. This algorithm is completely different from the method of indirect calibration of parameters to improve the pose accuracy of the end-effector. However, it is suitable for cable-driven manipulators (CDMs) with a low number of cables (for example, CDPMs). For CDMs with a large number of cables (for example, CDSMs), the measurement experiment that this method relies on is more complicated. In ref. [10], a kinematic calibration algorithm based on rope length residuals was proposed. The realization of this algorithm requires the use of an external motion capture system to measure cable length, so it is not a self-calibration algorithm. The methods in [11] and [15] are also not a self-calibration algorithm, because they need to install laser distance sensors and API (Automated Precision Instrument Inc.) laser device, respectively. In ref. [12], a method of how to select the robot configuration for calibration to obtain the maximum calibration accuracy was proposed. It is out of the scope of this paper. Nevertheless, the platform for verifying this method is still a 6-DOF CDPM. Similar to ref. [6], the algorithm in [13] also relies on the forward kinematics model of CDPM. This algorithm is not applicable to complex CDSM, because the forward kinematics solution of CDSM is complicated. In ref. [14], the calibration and self-calibration methods for CDPMs were only conceptually described. In ref. [16], a calibration method based on parameter sensitivity analysis was proposed, but there are many types of sensors used.
In view of the above shortcomings, this paper proposes a novel calibration model for CDSMs with motor incremental encoder and joint encoder that does not depend on the forward kinematics model, and the cable initial length is one of its parameters to be calibrated. The parameters to be calibrated in the proposed algorithm also include the attachment points’ locations of the actuation cables, the link parameters, the joint encoder measurements, and the coefficients from motor positions to cable lengths. These parameters can be integrated together to complete their calibration in a single calibration test. Compared with the separate calibration processes for attachment points’ locations and link parameters in [7], using the same sensor measurement data to calibrate the integrated parameters in a single time has better compatibility of each parameter. Compared to the above calibration solutions for CDPMs, the proposed algorithm has three advantages, including its independence on forward kinematics, the calibration for integrated parameters in a single time, and used sensors only including internal motor and joint encoders. Besides, the initial cable length can be calibrated using this algorithm.
Most of the existing research for cable-driven manipulator calibration is focused on CDPMs [9,10,11,12,13,14,15,16]. Literature [6] and [7] are the rare research work that takes CDSM as the research object. Unlike CDSMs, each of the CDPM’s cables consists of only one segment. Although [6] studied the 7-DOF cable-driven serial manipulators (CDSMs), the final simulation studies focused on two separate sub-modules of the CDSMs, i.e., the six-cable three-DOF shoulder and two-cable one-DOF elbow. The simulation study in [7] also focused on only the shoulder sub-module of the seven-DOF CDSM. That is to say, although the research objects in [6] and [7] are CDSMs, the calibration method proposed is still the existing algorithm for CDPMs. In summary, the calibration for CDSMs with multi-segment cables has not been studied thus far. In the proposed algo-rithm, the data required for calibration includes the measured motor and joint posi-tions, which can be selected from certain motion trajectory of CDSMs. The motion tra-jectory should meet the following conditions: all cables have retracting or releasing motion and are tensioned, and all joints have clockwise or counterclockwise motion. The resulting motor encoders’ relative changes and the joint encoders’ measurements are captured and then used to calibrate for the integrated parameters.
To systematically build a framework for the modeling and control of multilink cable-driven manipulators (CDMs) with complex cables’ arrangement, it is necessary to find a method that can orderly store and clearly express the complicated cable-routing information. In ref. [17], a generalized model named cable-routing matrix (CRM), which can encapsulate all possible combinations in cable routing, was proposed. However, the segment whose ends are on the same link, which is defined as constant segment because of its fixed length, is not considered in CRM, which can be derived from Property 2 in [17]. From the perspective of inverse dynamics modeling, for intermediate members, i.e., k = 1 ,   2 , , p 1 , the resultant force and moment of the above-mentioned constant segment’s cable tension on the link are zero, which will not affect the inverse dynamics modeling. But for the end links, i.e., k = 0 ,   p , the resultant force and moment are not zero, which makes the generalized dynamic model proposed by [17] limited. This paper does not focus on inverse dynamic modeling. Nevertheless, it is clear that the cable-routing expression described by CRM is not suitable for the cable attachment point calibration work in this paper. Therefore, this paper proposes a novel general cable-routing description method for various CDMs which can support the calibration work by providing integrated parameters and simultaneously remedy the present drawbacks. Therefore, this paper proposes a generic method called cable-routing configuration struct (CRCS), which can fully describe various CDMs (including CDPMs and CDSMs) and intends to make up for the shortcomings of the existing method in [17]. Based on this, the proposed calibration model can work for both CDPMs and CDSMs.
Clarifying the relationship among CDM, CDSM, and CDPM (see Figure 1) helps explain why the proposed algorithm is practical for both CDSMs and CDPMs. As shown in Figure 1, their relationship is expressed from the perspective of the cable’s segment number. Generally, the segment number of CDPM’s all cables is one. The segment number of CDPM’s cables is diverse, but there are always cables with more than one segment. It is noted that the above-mentioned cable segment refers to the segment defined in Section 2.2 whose length changes with the joint angle (for CDSM) or the end-effector’s pose (for CDPM). The essence of the proposed CRCS method is to describe the cable segment information. Therefore, the CDSM and CDPM that meet different cable segment conditions in Figure 1 can be described by this method. Further, the integrated parameters provided by CRCS can be calibrated using the proposed calibration algorithm.
The contributions of this paper are presented as follows:
  • A novel self-calibration model is proposed, which realizes the calibration of integrated parameters in a single time, and only depends on the motors’ incremental encoders. Besides, the calibration object includes the cable initial length.
  • A more general cable-routing description method for various CDSMs than existing methods is presented, which integrates the complete parameters to be calibrated.
  • This paper takes the lead in the calibration research for CDSMs with multi-segment cables. The experiment results expressing the influence of the calibrated parameters on robot’s motion accuracy are published, and the validity and correctness of the proposed calibration model are verified.
This paper is organized as follows. In Section 2, the cable-routing configuration struct is defined. In Section 3, the self-calibration model is proposed. Experiments are conducted and results are analyzed in Section 4. Finally, this paper is concluded in Section 5.

2. Cable-Routing Configuration Struct

2.1. Notations Description

The key mathematical notations and their meanings used in the design of the description method and the self-calibration algorithm for CDSMs are shown in Table 1.

2.2. System Description

The cable arrangement system of the entire CDSM system consists of the arrangement of each cable in the system. Further, the arrangement of a single cable is composed of all the segments of the cable, where the section of a cable between two adjacent attachment points is defined as the cable segment. Finally, the arrangement of a single segment is determined by the attachment points at its ends. Taking a three-DOF three-cable CDSM as an example, the relationship among the arrangements of the entire CDSM system, single cable in the system, and single segment is illustrated in Figure 2.
In fact, to fully describe the routing arrangement of a single cable, the required information includes the cable number i and all segments l i j of all cables, where l i j denotes the j -th segment of cable i , i = 1 ,   2 , , m denotes the cable number, j = 1 ,   2 , , t i 1 denotes the number of the segment of the i -th cable, m represents the total number of the CDSM’s cables, t i and ( t i 1 ) represent the total number of attachment points and segments of cable i , respectively. In Figure 2, there are m = 3 , t 1 = 7 , t 2 = 4 , t 3 = 5 . To fully describe the routing arrangement of a single segment, the required information includes the two attachment points A i j k i j and A i , j + 1 , k i , j + 1 at its two ends, i.e., the coordinates of the two cable attachment points r k i j ,   A i j k i j   k i j and r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1   k i , j + 1 with respect to the frames O k i j and O k i , j + 1 of the links where they are located respectively, and the homogeneous transformation matrix A k i , j + 1 k i j of frame O k i , j + 1 with respect to frame O k i j , where A i j k i j denotes the j -th attachment point of cable i on link k i j , k i j = 0 ,   1 ,   2 , , p denotes the link number where attachment point j of cable i is located, and p + 1 represents the total number of links of the CDSM. In Figure 2, there are p = 3 , k 11 = 0 , k 12 = 1 , k 13 = 1 , k 14 = 2 , k 15 = 2 , k 16 = 3 , k 17 = 3 ; k 21 = 0 , k 22 = 1 , k 23 = 1 , k 24 = 2 ; k 31 = 0 , k 32 = 1 , k 33 = 1 , k 34 = 3 , k 35 = 3 .
The segment vector l i j k i j with respect to frame O k i j can be given by:
l i j k i j = R k i , j + 1 k i j r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1   k i , j + 1 + r k i j ,   k i , j + 1 k i j r k i j ,   A i j k i j   k i j ,
where r k i j ,   k i , j + 1 k i j denotes the vector from the origin of frame O k i j to the one of O k i , j + 1 with respect to frame O k i j , R k i , j + 1 k i j denotes the rotation matrix of frame O k i , j + 1 with respect to frame O k i j , they constitute the rotation matrix and translation vector parts of the homogeneous matrix A k i , j + 1 k i j respectively, and its detailed form is A k i , j + 1 k i j = ( R k i , j + 1 k i j r k j ,   k i , j + 1 k i j 0 1 ) , which is a function of the parameters of links from k i , j + 1 to k i , j and the positions of joints from k i , j + 1 to k i , j . If k i j = k i , j + 1 , i.e., the two adjacent cable attachment points are on the same link, the homogeneous matrix becomes an ( 4 × 4 ) identity matrix.
According to Equation (1), the segment length of l i j k i j can be given by:
ι i j = l i j k i j ,
and further the total length of cable i can be given by:
l i = j = 1 t i 1 ι i j .

2.3. Cable-Routing Configuration Struct (CRCS)

The cable segment can be divided into constant and variable segments. The segments of l 32 and l 34 in Figure 2b are constant segments. The variable segment refers to the cable segment whose segment length or vector changes with joint positions, for example, l 31 and l 33 in Figure 2b. According to the joint distribution of joint positions that affect the length or vector of the segment, the variable segment can be divided into single-joint (for example, l 31 in Figure 2b) and multi-joint (for example, l 33 in Figure 2b) variable segments.
For a segment, the following segment routing struct (SRS) is constructed:
𝓒 i j = { l i j k i j , ι i j | i , j , k i j , k i , j + 1 , r k i j ,   A i j k i j   k i j , r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1   k i , j + 1 , q k i j , , q k i , j + 1 , k i j , , k i , j + 1 } ,
which includes the cable number of the segment, the segment number, two link numbers where the two attachment points are located, the coordinates of the two attachment points, the joint positions from joint k i j to joint k i , j + 1 , and the link parameters from link k i j to link k i , j + 1 , where k = ( k 1 , k 2 , , k v k ) T v k × 1 denotes the parameters of link k , q k = ( q k 1 , q k 2 , , q k n k ) T n k × 1 denotes the vector of joint positions of joint k , where v k and n k denotes the total numbers of link parameters and joint positions of link k , respectively. The homogeneous matrix A k i , j + 1 k i j , which is essentially the forward kinematics between the above two link frames, can be computed using these joint variables q k i j , , q k i , j + 1 and link parameters k i j , , k i , j + 1 . The segment vector l i j k i j and length ι i j can be computed via Equations (1) and (2) using these quantifies, respectively.
Based on SRS, the following cable-routing configuration struct (CRCS) can be construct:
𝓒 = { 𝓛 , ι , l | 𝓲 , 𝓳 , 𝓴 j , 𝓴 j + 1 , 𝓠 j , 𝓠 j + 1 , q , } ,
where 𝓲 ( i = 1 m t i m ) × 1 denotes the vector of cable number, whose detailed form is given by:
𝓲 = ( 1 , 1 , , 1 t 1 1 , 2 , 2 , , 2 t 2 1 , , m , m , , m t m 1 ) T ,
𝓳 ( i = 1 m t i m ) × 1 denotes the vector of the segment number, whose detailed form is given by:
𝓳 = ( 1 , 2 , , t 1 1 , 1 , 2 , , t 2 1 , , 1 , 2 , , t m 1 ) T ,
𝓴 j ( i = 1 m t i m ) × 1 and 𝓴 j + 1 ( i = 1 m t i m ) × 1 denote the number vectors of the attachment points j and j + 1 , respectively, whose detailed forms are given by:
𝓴 j = ( k 11 , k 12 , , k 1 , t 1 1 , k 21 , k 22 , , k 2 , t 2 1 , , k m 1 , k m 2 , , k m , t m 1 ) T ,
and
𝓴 j + 1 = ( k 12 , k 13 , , k 1 , t 1 , k 22 , k 23 , , k 2 , t 2 , , k m 2 , k m 3 , , k m , t m ) T ,
respectively, 𝓠 j 3 × ( i = 1 m t i m ) and 𝓠 j + 1 3 × ( i = 1 m t i m ) denote the coordinate matrices of the attachment points A i j k i j and A i ( j + 1 ) k j + 1 , whose detailed forms are given by:
𝓠 j = ( 𝓠 1 j , 𝓠 2 j , , 𝓠 m j )
and
𝓠 j + 1 = ( 𝓠 1 , j + 1 , 𝓠 2 , j + 1 , , 𝓠 m , j + 1 ) ,
respectively, 𝓠 i j = ( r k i 1 ,   A i 1 k i 1   k i 1 , r k i 2 ,   A i 2 k i 2   k i 2 , , r k i , t i 1 ,   A i , t i 1 , k i , t i 1   k i , t i 1 ) 3 × ( t i 1 ) and 𝓠 i , j + 1 = ( r k i 2 ,   A i 2 k i 2   k i 2 , r k i 3 ,   A i 3 k i 3   k i 3 , , r k i , t i ,   A i , t i , k i , t i   k i , t i ) 3 × ( t i 1 ) denote the combinations of the former and latter attachment points’ coordinates of all segments of cable i , respectively, = ( 1 T , 2 T , , p T ) T v × 1 denotes the vector of the link parameters and q = ( q 1 T , q 2 T , , q p T ) T n × 1 denotes the vector of the joint variables of the entire CDSM, where v = k = 1 p v k and n = k = 1 p n k denote the total number link parameters and joint variables of the entire CDSM, respectively.
Let:
𝓐 = ( A k 12 k 11 , A k 13 k 12 , , A k 1 , t 1 k 1 , t 1 1 , A k 22 k 21 , A k 23 k 22 , , A k 2 , t 2 k 2 , t 2 1 , , A k m 2 k m 1 , A k m 3 k m 2 , , A k m , t m k m , t m 1 ) 4 × 4 ( i = 1 m t i m ) ,
be the matrix formed by horizontally connecting the homogeneous transformation matrices between the link k i j and link k i , j + 1 , which can be computed by using the link parameters and joint variables q .
The symbol 𝓛 3 × ( i = 1 m t i m ) denotes the matrix of the combination of all segment vectors, ι ( i = 1 m t i m ) × 1 denotes the vector of all segment lengths, l = ( l 1 l m ) T m × 1 denotes the vector of all cable lengths. These three quantities can be computed and stored in corresponding locations by extracting the stored information from the CRCS, substituting it into Equations (1)–(3), and then storing the calculation results into the corresponding locations:
𝓛 ( : , 𝒾 i j ) = l i j k i j = 𝓡 k i , j + 1 k i j 𝓠 j + 1 ( : , 𝒾 i j ) + 𝓻 k i j ,   k i , j + 1 k i j 𝓠 j ( : , 𝒾 i j ) ,
ι ( 𝒾 i j ) = ι i j = l i j k i j ,
and
l ( i ) = l i = j = 1 t i 1 l i j ,
where 𝒾 i j = n = 1 n = i 1 ( t n 1 ) + j denotes the index of the segment j of cable i in the vector 𝓲 , 𝓳 , the symbols 𝓠 j + 1 ( : , 𝒾 i j ) and 𝓠 j ( : , 𝒾 i j ) denote extracting the 𝒾 i j -th row of the matrices of 𝓠 j + 1 and 𝓠 j , 𝓡 k i , j + 1 k i , j and 𝓻 k i j ,   k i , j + 1 k i j denote the rotation matrix and translation vector of the homogeneous transformation matrix 𝓐 ( : ,   4 𝒾 i j 3 : 4 𝒾 i j ) , which are extracted from the 𝒾 i j -th sub-matrix of the matrix 𝓐 , respectively.
So far, the illustration of the meaning of the quantities stored in CRCS is complete. Then, the extraction of the attachment points’ coordinates and the homogeneous transformation matrix, computation and storage operations of segment vector, segment and cable lengths are explained.

3. Self-Calibration Model

3.1. Basic Model used for Calibration

The cable length model in Equation (3) can be rewritten by emphasizing the dependence of the cable length vector on the fixed attachment points’ locations, link parameters, and the joint positions:
l = l ( r A , , q ) ,
where r A = ( ( r k 11 ,   A 11 k 11   k 11 ) T , , ( r k m , t m ,   A m , t m , k m , t m   k m , t m ) T ) T ( 3 i = 1 m t i ) × 1 denotes the vector of attachment points’ locations.
In addition, if the motor encoders are incremental, the cable length is composed of the initial cable length and the cable length increment, which results in another form of cable length model:
l = l 0 + l r = l 0 + diag ( h ) ϑ ,
where l 0 m × 1 denotes the cable length l ( 0 ) at the initial (zero) moment, which is a constant, l r denotes the increment vector of cable length, there is l r ( 0 ) = 0 , ϑ = ( ϑ 1 , ϑ 2 , , ϑ m ) T m × 1 denotes the vector of motor positions, h = ( h 1 , h 2 , , h m ) T m × 1 denotes the vector of the coefficients from motor positions to cable lengths, diag ( h ) m × m denotes the diagonal matrix satisfying the i -th diagonal element is equal to the i -th element of h . Moreover, h i ( i = 1 , , m ) can be computed using N i r i / P i , where N i , r i , and P i denotes the i -th motor’s counts number corresponding to per mm movement of ball-screw, the reduction ration of the i -th motor, the lead of the i -th ball-screw, respectively.
For the initial cable length l 0 , there is the following analysis: Since the motor encoders are incremental, the measurement of l 0 determines whether the cable length l can be measured without external measuring equipment. If l cannot be measured in real time, the calibration cannot be completed only using Equation (9). However, the motor positions can be measured in real time using motor encoders. Therefore, the calibration can be completed by combining Equation (10). The premise is that the initial cable length is regarded as one of the parameters to be calibrated.
Let ϑ n , h n , l 0 n , r A n , n , and q n denote the nominal values of the vectors of motor positions ϑ , the coefficients from motor positions to cable lengths h , the initial cable length l 0 , the attachment points’ locations r A , the link parameters , and the joint positions q , respectively, ϑ m represents the measured value of the motor position vector ϑ , where the detailed form of ϑ n can be computed by:
ϑ n = [ diag ( h n ) ] 1 ( l ( r A n , n , q n ) l 0 n ) ,
the nominal values of the fixed parameters of h n , r A n , and n are set equal to the design data of the mechanical structure, the detailed form of l 0 n can be computed by:
l 0 n = l ( r A n , n , q n ( 0 ) ) ,
which is equal to the cable length calculated using the joint angle measurement q n ( 0 ) at zero moment, and q n is set equal to the data provided by the joint encoders.

3.2. Self-Calibration Method

Substituting Equation (10) into Equation (9) gives:
l Δ = l 0 + diag ( h ) ϑ l ( r A , , q ) = 0 .
On the assumption of small deviations, at first approximation, it is possible to derive the following relation according to Equation (13):
l Δ ϑ Δ ϑ = ( l Δ h Δ h + l Δ l 0 Δ l 0 + l Δ r A Δ r A + l Δ Δ + l Δ q Δ q ) ,
where Δ ϑ , Δ h , Δ l 0 , Δ r A , Δ , and Δ q denote the deviations between the parameter’s values of the real structure and the nominal ones, l Δ / ϑ m × m , l Δ / h m × m , l Δ / l 0 m × m , l Δ / r A m × ( 3 i = 1 m t i ) , l Δ / m × v , and l Δ / q m × n denote the matrices whose elements are the partial derivatives of the components of the function in Equation (13) with respect to the single parameter.
Further, Equation (14) can be compactly rewritten as:
Δ ϑ = ( l Δ ϑ ) 1 l Δ ζ Δ ζ = Y ( ζ n ) Δ ζ ,
where ζ = [ h T   l 0 T   r A T   T   q T ] T u × 1 denotes the vector grouped by the parameters to be calibrated, u = 2 m + 3 i = 1 m t i + v + n denotes the total number of the parameters to be calibrated, Δ ζ = ζ m ζ n denotes the parameter variations with respect to the nominal values, and Y ( ζ n ) = ( l Δ / ϑ ) 1 ( l Δ / h   l Δ / l 0   l Δ / r A   l Δ /   l Δ / q ) m × u denotes the calibration matrix computed using the nominal values of the parameters ζ n .
According to the known ζ n , ϑ n , and the multiple sets of the measurements of ϑ m , the parameter variations Δ ζ can be computed. Since Equation (15) constitutes a system of m equations into u unknowns with m < u , a sufficient number of motor position measurements should be performed to obtain a system of at least u equations. Hence, assuming that the motor position is measured 𝓅 times at different manipulator poses, the corresponding 𝓅 equations of Equation (15) are combined to form:
Δ ϑ ¯ = [ ϑ m 1 ϑ n 1 ϑ m 𝓅 ϑ n 𝓅 ] = [ Δ ϑ 1 Δ ϑ 𝓅 ] = [ Y 1 Y 𝓅 ] Δ ζ = Y ¯ Δ ζ .
For the nominal values of the parameters required to compute Y i , it should be noted that the mechanical geometric parameters are constant, and the joint variable q i depends on the manipulator configuration at pose i , where i = 1 , 2 , , 𝓅 . To avoid ill-conditioning of Y ¯ , there is m 𝓅 u . Therefore, the least square solution of Equation (16) can be given by:
Δ ζ = ( Y ¯ T Y ¯ ) 1 Y ¯ T Δ ϑ ¯ ,
where ( Y ¯ T Y ¯ ) 1 Y ¯ T denotes the left pseudo-inverse matrix of Y ¯ . The computation of Y ¯ in Equation (17) uses the nominal values of the parameters ζ n . Based on the computed Δ ζ , the first parameter estimate is given by:
ζ = ζ n + Δ ζ .
The above estimate procedure should be iterated until Δ ζ converges within the set threshold δ , which is shown in Figure 3.
At each iteration, the calibration matrix Y ¯ should be updated with the parameter estimates ζ obtained in Equation (18) at the previous iteration. Simultaneously, the deviation Δ ϑ ¯ should be computed as the difference between the measured values for the 𝓅 motor positions and the corresponding motor positions computed by Equations (11) and (12) with the values of the parameters at the previous iteration. As a result of the kinematic calibration procedure for a generic CDSM, more accurate estimates of the real link geometric parameters, coordinates of the attachment points, initial cable lengths, and the transmission coefficients, as well as possible corrections to make on the joint encoders’ measurements are obtained.

4. Experiment

4.1. Experimental Setup

Taking a plane three-DOF six-cable CDM as an example, as shown in Figure 4, the above-mentioned generalized cable arrangement description method is used to describe the robot.
The number of the CDSM’s cable is m = 6 , and the numbers of these cables’ attachment points are t 1 = 4 , t 2 = 4 , t 3 = 6 , t 4 = 6 , t 5 = 8 , t 6 = 8 . Hence, the vector of cable number can be given by:
𝓲 = ( 1 , 1 , 1 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ) T 30 × 1 ,
the vector of the segment number can be given by:
𝓳 = ( 1 , 2 , 3 , 1 , 2 , 3 , 1 , 2 , 3 , 4 , 5 , 1 , 2 , 3 , 4 , 5 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ) T 30 × 1 ,
the link vectors where the attachment points j and j + 1 are located can be given by:
𝓴 j = ( 𝓴 1 j , 𝓴 2 j , 𝓴 3 j , 𝓴 4 j , 𝓴 5 j , 𝓴 6 j ) T 30 × 1 ,
where 𝓴 1 j = ( k 11 , k 12 , k 13 ) = ( 0 , 0 , 0 ) , 𝓴 2 j = ( k 21 , k 22 , k 23 ) = ( 0 , 0 , 0 ) , 𝓴 3 j = ( k 31 , k 32 , k 33 , k 34 , k 35 ) = ( 0 , 0 , 0 , 1 , 1 ) , 𝓴 4 j = ( k 41 , k 42 , k 43 , k 44 , k 45 ) = ( 0 , 0 , 0 , 1 , 1 ) , 𝓴 5 j = ( k 51 , k 52 , k 53 , k 54 , k 55 , k 56 , k 57 ) = ( 0 , 0 , 0 , 1 , 1 , 2 , 2 ) , 𝓴 6 j = ( k 61 , k 62 , k 63 , k 64 , k 65 , k 66 , k 67 ) = ( 0 , 0 , 0 , 1 , 1 , 2 , 2 ) , and:
𝓴 j + 1 = ( 𝓴 1 , j + 1 , 𝓴 2 , j + 1 , 𝓴 3 , j + 1 , 𝓴 4 , j + 1 , 𝓴 5 , j + 1 , 𝓴 6 , j + 1 ) T 30 × 1 ,
where 𝓴 1 , j + 1 = ( k 12 , k 13 , k 14 ) = ( 0 , 0 , 1 ) , 𝓴 2 , j + 1 = ( k 22 , k 23 , k 24 ) = ( 0 , 0 , 1 ) , 𝓴 3 , j + 1 = ( k 32 , k 33 , k 34 , k 35 , k 36 ) = ( 0 , 0 , 1 , 1 , 2 ) , 𝓴 4 , j + 1 = ( k 42 , k 43 , k 44 , k 45 , k 46 ) = ( 0 , 0 , 1 , 1 , 2 ) , 𝓴 5 , j + 1 = ( k 52 , k 53 , k 54 , k 55 , k 56 , k 57 , k 58 ) = ( 0 , 0 , 1 , 1 , 2 , 2 , 3 ) , 𝓴 6 , j + 1 = ( k 62 , k 63 , k 64 , k 65 , k 66 , k 67 , k 68 ) = ( 0 , 0 , 1 , 1 , 2 , 2 , 3 ) , respectively, the coordinate vectors of the attachment point A i j k i j and A i ( j + 1 ) k j + 1 can be written as:
𝓠 j = ( 𝓠 1 j , 𝓠 2 j , 𝓠 3 j , 𝓠 4 j , 𝓠 5 j , 𝓠 6 j ) T 30 × 3 ,
where:
𝓠 1 j = ( r 0 ,   A 110 0 , r 0 ,   A 120   0 , r 0 ,   A 130   0 ) 3 × 3 ,   𝓠 2 j = ( r 0 ,   A 210   0 , r 0 ,   A 220   0 , r 0 ,   A 230   0 ) 3 × 3 , 𝓠 3 j = ( r 0 ,   A 310   0 , r 0 ,   A 320   0 , r 0 ,   A 330 0 , r 1 ,   A 341 1 , r 1 ,   A 351 1 ) 3 × 5 ,   𝓠 4 j = ( r 0 ,   A 410   0 , r 0 ,   A 420   0 , r 0 ,   A 430 0 , r 1 ,   A 441 1 , r 1 ,   A 451 1 ) 3 × 5 ,   𝓠 5 j = ( r 0 ,   A 510   0 , r 0 ,   A 520   0 , r 0 ,   A 530 0 , r 1 ,   A 541 1 , r 1 ,   A 551 1 , r 2 ,   A 562   2 , r 2 ,   A 572   2 ) 3 × 7 , 𝓠 6 j = ( r 0 ,   A 610   0 , r 0 ,   A 620   0 , r 0 ,   A 630 0 , r 1 ,   A 641 1 , r 1 ,   A 651 1 , r 2 ,   A 662   2 , r 2 ,   A 672   2 ) 3 × 7 ,   and 𝓠 j + 1 = ( 𝓠 1 , j + 1 , 𝓠 2 , j + 1 , 𝓠 3 , j + 1 , 𝓠 4 , j + 1 , 𝓠 5 , j + 1 , 𝓠 6 , j + 1 ) T 30 × 3 ,
where:
𝓠 1 , j + 1 = ( r 0 ,   A 120   0 , r 0 ,   A 130   0 , r 1 ,   A 141   1 ) 3 × 3 , 𝓠 2 , j + 1 = ( r 0 ,   A 220   0 , r 0 ,   A 230   0 , r 1 ,   A 241   1 ) 3 × 3 ,
𝓠 3 , j + 1 = ( r 0 ,   A 320   0 , r 0 ,   A 330   0 , r 1 ,   A 341   1 , r 1 ,   A 351   1 , r 2 ,   A 362 2 ) 3 × 5 ,
𝓠 4 , j + 1 = ( r 0 ,   A 420   0 , r 0 ,   A 430   0 , r 1 ,   A 441   1 , r 1 ,   A 451   1 , r 2 ,   A 462 2 ) 3 × 5 ,
𝓠 5 , j + 1 = ( r 0 ,   A 520   0 , r 0 ,   A 530   0 , r 1 ,   A 541   1 , r 1 ,   A 551   1 , r 2 ,   A 562 2 , r 2 ,   A 572   2 , r 3 ,   A 583   3 ) 3 × 7 ,
𝓠 6 , j + 1 = ( r 0 ,   A 620   0 , r 0 ,   A 630   0 , r 1 ,   A 641   1 , r 1 ,   A 651   1 , r 2 ,   A 662 2 , r 2 ,   A 672   2 , r 3 ,   A 683   3 ) 3 × 7 , respectively, and the matrix formed by horizontally connecting the homogeneous transformation matrices between the link k i j and link k i , j + 1 can be given by:
𝓐 = ( 𝓐 1 , 𝓐 2 , 𝓐 3 , 𝓐 4 , 𝓐 5 , 𝓐 6 ) 4 × 120
where 𝓐 1 = ( A 0 0 , A 0 0 , A 1 0 ) 4 × 12 , 𝓐 2 = ( A 0 0 , A 0 0 , A 1 0 ) 4 × 12 , 𝓐 3 = ( A 0 0 , A 0 0 , A 1 0 , A 1 1 , A 2 1 ) 4 × 20 , 𝓐 4 = ( A 0 0 , A 0 0 , A 1 0 , A 1 1 , A 2 1 ) 4 × 20 , 𝓐 5 = ( A 0 0 , A 0 0 , A 1 0 , A 1 1 , A 2 1 , A 2 2 , A 3 2 ) 4 × 28 , 𝓐 6 = ( A 0 0 , A 0 0 , A 1 0 , A 1 1 , A 2 1 , A 2 2 , A 3 2 ) 4 × 28 . The detailed form of A 1 1 , A 2 1 , A 3 2 , and A 4 3 is given in Appendix A.
The number of the CDSM’s link is p + 1 = 4 . The vector of the link parameters can be expressed as = ( 1 T , 2 T , 3 T ) T 15 × 1 , where 1 = ( l 11 , l 12 , l 13 , α 11 , α 12 ) T , 2 = ( l 21 , l 22 , l 23 , α 21 , α 22 ) T , 3 = ( l 31 , l 32 , l 33 , α 31 , α 32 ) T denote the parameters of link 1, 2, and 3, respectively, l k 1 , l k 2 , l k 3 and α k 1 , α k 2 ( k = 1 , 2 , 3 ) denote the length and angle parameters of link k , respectively. Hence, the number of the link parameters is v = 15 . The nominal coefficients vector from motor positions to cable lengths is h n = ( 22000 , 22000 , 22000 , 22000 , 22000 , 22000 ) T 6 × 1 , which is obtained by using the motor’s counts number of 4000 count/mm, the motors’ reduction ration of 22, and the ball-screws’ lead of 4 mm. The vectors of joint and motor positions can be written as q =   [ θ 1 θ 2 θ 3   ] T n × 1 and ϑ = [ ϑ 1     ϑ 2     ϑ 3     ϑ 4     ϑ 5     ϑ 6 ] T 6 × 1 , respectively, where the DOF number is n = 3 .
Hence, the total number of parameters to be calibrated is u = 2 m + 3 i = 1 m t i + v + n = 2 × 6 + 3 × 36 + 15 + 3 = 138 . The number of the groups of measured motor and joint positions should satisfy 𝓅 u / m = 138 / 6 = 23 . In this experiment, thirty, forty, fifty, sixty, seventy, eighty, ninety, and one hundred are selected as the number of the measured postures to explore the relationship between it and the convergent accuracy.
The measured joint and motor positions for calibration are given in Figure 5 and Figure 6, respectively. The motor positions are expressed as ϑ i / h i ( i = 1 , , 6 ), which is more intuitive. These positions are extracted from the same motion trajectory of CDSM at specific time intervals. This is because the encoder is incremental. Thus, the position points intercepted from the motion trajectories of different time bases do not have the same initial zero position of the motor position, which makes the calibration meaningless. At these time points, the corresponding cable tensions must be positive and approximately equal, which can avoid the influence of cable elasticity. The nominal values of motor positions ϑ n computed using Equation (11) and initial cable lengths l 0 n computed using Equation (12) are given in Figure 6 and Table 2, respectively. Appendix B gives the calculation steps of the calibration matrix.
It is noted that, compared with other motor positions in Figure 6, the nominal positions of motor 3 and 4 are obvious not in accordance with the measured ones. This is because the movements of motors 3 and 4 corresponding to the joint position in Figure 5 are small, which are significantly smaller than the other four motors’ movements. Therefore, the influence of the return error of the backlash hysteresis is more obvious. On the other hand, the reason for the small movement of these two motors is that the clockwise movement of joint 1 and the counterclockwise movement of joint 2 make the variable segments’ lengths ι 33   ( ι 43 ) and ι 35   ( ι 45 ) of cable 3 (cable 4) retract (release) and release (retract), respectively (see Figure 4), which makes the change of the entire cable length of cable 3 small and directly leads to a small amount of motor movement.

4.2. Calibration Results

Figure 7 shows the relationship between convergence accuracy and different numbers of the measured positions. The calibration positions with a total of thirty, forty, fifty, sixty, seventy, eighty, ninety, and one hundred used in Figure 7 are actually the positions labeled one to thirty, to forty, to fifty, to sixty, to seventy, to eighty, to ninety, to one hundred in Figure 5 and Figure 6. When the total number of calibration data exceeds 90, the convergence accuracy is as low as 0.0812. The calibration results when the number of calibration positions is 90 is shown below: Table 2 gives the calibrated values of initial cable lengths. The nominal and calibrated values of coefficients from motor positions to cable lengths, these attachment points’ coordinates, and link parameters are given in Table 3, Table 4 and Table 5, respectively. Figure 8 gives the difference between nominal and calibrated values of joint positions.

4.3. Comparison of Repetitive Motion Accuracy before and after Calibration

To verify the validity of the calibration results on the actual trajectory tracking accuracy of the robot, a motion tracking experiment on a certain trajectory with the same motion controller using the nominal and calibrated parameters was carried out. The desired motion is a single reciprocating motion between two joint positions ( 15 ° , 35 ° , 10 ° ) and ( 10 ° , 10 ° , 0 ° ) . Trajectory planning uses the cubic spline method. The time of a single reciprocating movement is 5 s. The trajectory tracking error after repeated twenty times is shown in Figure 9.
According to Figure 9, the following results can be drawn: First, the trajectory tracking error using the calibration parameters is significantly lower than that using the nominal parameters. Especially the high tracking accuracy of first and second joint angles will greatly improve the pose accuracy of the end-effector. Second, there are obvious jumps in the trajectory tracking error when nominal parameters are used, such as about 74 s and 94 s of second joint angle. When the calibration parameters are used, this phenomenon is improved. These results show the calibration parameters obtained by the proposed calibration algorithm can significantly improve the accuracy of CDSM’s motion control.
Judging from the experiments in this paper, the calibration results have indeed improved the trajectory tracking accuracy of the CDSM, which indicates that the inconsistency between the nominal and measured values of motors 3 and 4 in Figure 6 does not affect the calibration accuracy, and conversely the calibrated parameters can deal with errors such as backlash hysteresis of the transmission system. For the small motor movement that causes the above obvious inconsistency, on the one hand, it makes the backlash hysteresis of the transmission system more obvious, which helps to achieve the harmony between the calibrated parameters and these inherent errors through carrying out calibration, thereby improving the trajectory tracking accuracy of the CDSM. On the other hand, in the case of small motor movement, the error of the motor positions measured by encoders is relatively large, which is not conducive to accurate calibration.
Hence, how to choose the CDSM’s configurations to balance the two aspects is a valuable issue. It is similar to the research work of [12] and is beyond the scope of this paper. Its research result’s possibilities include that the inconsistency has no or little effect on the calibration accuracy (the experiment in this paper is an example), or the calibration accuracy will be further improved after the inconsistency is eliminated. If the latter is true, it is a feasible solution to plan the manipulator’s trajectory that can avoid releasing and retracting two segments of the same cable.
It should be noted that although the calibration result has improved the trajectory tracking accuracy of the robotic arm, how does the small motor movement affect the calibration result? Does it have no effect or little impact, or the calibration accuracy will be affected after the small motor movement is eliminated.
It should be noted that, although the calibration results to enhance the accuracy of tracking problem, but how it affects the amount of exercise on a small motor calibration results, is little or no effect, or is there after calibration accuracy to eliminate a small amount of exercise machine.

5. Conclusions

This paper proposes a self-calibration algorithm for general CDSM. First, to fully describe the waiting calibration parameters of cables, links, joint positions, and the transmission system of CDSM, a new cable path description method called cable-routing configuration struct (CRCS) was proposed. This method has the advantages of convenient storage and retrieval of known system parameters, and it makes up for the shortcomings of some cable attachment points missing in the existing methods, and provides a complete set of parameters to be calibrated for the proposed self-calibration algorithm. Next, this paper proposes a self-calibration method for CDSM with incremental motor encoders and joint encoders, which can calibrate the robot integrated parameters at one time only based on a sufficient number of measured motor positions, and does not depend on the forward kinematics model. This algorithm is better than the existing method of separately calibrating the link and cable parameters in terms of compatibility between parameters. In addition, the cable initial length is also used as a parameter to be calibrated. Finally, a comparative experiment of the trajectory tracking error obtained by the same controller using the nominal and calibration parameters was carried out in a three-DOF six-cable CDSM. The results verified the correctness and effectiveness of the proposed calibration method. Simultaneously, the CRCS description method proved to be meaningful.
Further research focuses on the relationship between convergence accuracy of the self-calibration algorithm in this paper and different position combinations (or CDSM’s configurations) used in calibration. In particular, the CDSM’s trajectory planning algorithm that can achieve large motor movement will be analyzed, to further clarify the impact of small motor movement on the calibration accuracy.

Author Contributions

Y.L. and H.L. developed the methodology; Y.L. and P.Q. conceived and designed the experiments; Y.L. and P.Q. wrote the original draft of the paper; S.D. and D.W. reviewed and edited the paper. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Acknowledgments

The authors thank Tian Lan and Xiaolong Liu for the helpful suggestions.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A

The detailed form of the homogeneous matrices is given as:
A 1 0 = [ c 1 α 11 α 12 0 s 1 α 11 α 12 11 s 1 + 12 s 1 α 11 + 13 s 1 α 11 α 12 0 1 0 0 s 1 α 11 α 12 0 c 1 α 11 α 12 11 c 1 + 12 c 1 α 11 + 13 c 1 α 11 α 12 0 0 0 1 ] ,
A 2 1 = [ c 2 α 21 α 22 0 s 2 α 21 α 22 21 s 2 + 22 s 2 α 21 + 23 s 2 α 21 α 22 0 1 0 0 s 2 α 21 α 22 0 c 2 α 21 α 22 21 c 2 + 22 c 2 α 21 + 23 c 2 α 21 α 22 0 0 0 1 ] ,
A 3 2 = [ c 3 α 31 α 32 0 s 3 α 31 α 32 31 s 3 + 32 s 3 α 31 + 33 s 3 α 31 α 32 0 1 0 0 s 3 α 31 α 32 0 c 3 α 31 α 32 31 c 3 + 32 c 3 α 31 + 33 c 3 α 31 α 32 0 0 0 1 ] ,
A 0 0 = A 1 1 = A 2 2 = A 3 3 = ( I 0 0 1 ) .

Appendix B

The length of j -th ( j = 1 , 2 , , t i 1 ) segment of cable i ( i = 1 , , m ) can be re-written as:
ι i j = l i j k i j T l i j k i j .
Substituting Equation (1) into Equation (A5) gives:
l i j k i j T l i j k i j = ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 + ( r k i j , k i , j + 1 k i j ) T r k i j , k i , j + 1 k i j + ( r k i j , A i j k i j k i j ) T r k i j , A i j k i j k i j             + 2 ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T ( R k i , j + 1 k i j ) T r k i j , k i , j + 1 k i j + 2 ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T ( R k i , j + 1 k i j ) T ( r k i j , A i j k i j k i j )             + 2 ( r k i j , k i , j + 1 k i j ) T ( r k i j , A i j k i j k i j ) ,
where:
R k i , j + 1 k i j = ( c k j + 1 α k j + 1 1 α k j + 1 2 0 s k j + 1 α k j + 1 1 α k j + 1 2 0 1 0 s k j + 1 α k j + 1 1 α k j + 1 2 0 c k j + 1 α k j + 1 1 α k j + 1 2 ) = ( n k i , j + 1 k i j s k i , j + 1 k i j a k i , j + 1 k i j ) , ( R k i , j + 1 k i j ) T = ( n k i j k i , j + 1 s k i j k i , j + 1 a k i j k i , j + 1 ) , r k i j , k i , j + 1 k i j = ( k j + 1 1 s k j + 1 + k j + 1 2 s k j + 1 α k j + 1 1 + k j + 1 3 s k j + 1 α k j + 1 a k j + 1 2 0 k j + 1 1 c k j + 1 + k j + 1 2 c k j + 1 α k j + 1 1 + k j + 1 3 c k j + 1 α k j + 1 a k j + 1 2 ) , r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1   k i , j + 1 = ( r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1 , x   k i , j + 1 r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1 , y   k i , j + 1 r k i , j + 1 ,   A i ( j + 1 ) k i , j + 1 , z   k i , j + 1 ) ,   r k i j ,   A i j k i j   k i j = ( r k i j ,   A i j k i j , x   k i j r k i j ,   A i j k i j , y   k i j r k i j ,   A i j k i j , z   k i j ) .

Appendix B.1. Partial Derivatives with Respect to Cable Attachment Points

Computing the partial derivative of Equation (A5) with respect to each coordinate of the cable attachment point A i j k i j gives:
ι i j r k i j , A i j k i j , x k i j = 1 ι i j ( r k i j , A i j k i j , x k i j + ( r k i j + 1 , A i ( j + 1 ) k i j + 1 k i , j + 1 ) T ( n k i j k i j + 1 ) + ( r k i j , k i j + 1 , x k i j ) ) ι i j r k i j , A i j k i j , y k i j = 1 ι i j ( r k i j , A i j k i j , y k i j + ( r k i j + 1 , A i ( j + 1 ) k i j + 1 k i , j + 1 ) T ( s k i j k i j + 1 ) + ( r k i j , k i j + 1 , y k i j ) ) ι i j r k i j , A i j k i j , z k i j = 1 ι i j ( r k i j , A i j k i j , z k i j + ( r k i j + 1 , A i ( j + 1 ) k i j + 1 k i , j + 1 ) T ( a k i j k i j + 1 ) + ( r k i j , k i j + 1 , z k i j ) ) .
Computing the partial derivative of Equation (A5) with respect to each coordinate of the cable attachment point A i ( j + 1 ) k i , j + 1 gives:
ι i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , x k i , j + 1 = 1 l i j ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , x k i , j + 1 + ( r k i j , k i , j + 1 k i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T n k i j + 1 k i j ) ι i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , y k i , j + 1 = 1 l i j ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , y k i , j + 1 + ( r k i j , k i , j + 1 k i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T s k i , j + 1 k i j ) . ι i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , z k i , j + 1 = 1 l i j ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , z k i , j + 1 + ( r k i j , k i , j + 1 k i j r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T a k i , j + 1 k i j )

Appendix B.2. Partial Derivatives with Respect to Link Parameters

Before computing the partial derivative with respect to link parameters, the partial derivatives of Equation (A5) with respect to x and z coordinate of r k i j , k i , j + 1 k i j are computed as:
ι i j r k i j , k i , j + 1 , x k i j = 1 ι i j ( r k i j , k i , j + 1 , x k i j + ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T n k i j k i , j + 1 + ( r k i j , A i j k i j , x k i j ) ) ι i j r k i j , k i , j + 1 , z k i j = 1 ι i j ( r k i j , k i , j + 1 , z k i j + ( r k i , j + 1 , A i ( j + 1 ) k i , j + 1 k i , j + 1 ) T a k i j k i , j + 1 + ( r k i j , A i j k i j , z k i j ) ) ,
the partial derivative of Equation (A5) with respect to x and z coordinate of n k i , j + 1 k i j are computed as:
ι i j n k i , j + 1 , x k i j = 1 ι i j ( r k i j , k i , j + 1 , x k i j r k i j , A i j k i j , x k i j ) r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , x k i , j + 1 ι i j n k i , j + 1 , z k i j = 1 ι i j ( r k i j , k i , j + 1 , z k i j r k i j , A i j k i j , z k i j ) r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , x k i , j + 1 ,
the partial derivative of Equation (A5) with respect to x and z coordinate of a k i , j + 1 k i j are computed as:
ι i j a k i , j + 1 , x k i j = 1 ι i j ( r k i j , k i , j + 1 , x k i j r k i j , A i j k i j , x k i j ) r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , z k i , j + 1 ι i j a k i , j + 1 , z k i j = 1 ι i j ( r k i j , k i , j + 1 , z k i j r k i j , A i j k i j , z k i j ) r k i , j + 1 , A i ( j + 1 ) k i , j + 1 , z k i , j + 1 .
Computing the partial derivative of Equation (A5) with respect to the link lengths k j + 1 1 , k j + 1 2 and k j + 1 3 gives:
ι i j k j + 1 1 = 1 ι i j ( ι i j r k i j , k i , j + 1 k i j , x r k i j , k i , j + 1 , x k i j k j + 1 1 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j k j + 1 1 ) ι i j k j + 1 2 = 1 ι i j ( ι i j r k i j , k i , j + 1 k i j , x r k i j , k i , j + 1 , x k i j k j + 1 2 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j k j + 1 2 ) , ι i j k j + 1 3 = 1 ι i j ( ι i j r k i j , k i , j + 1 k i j , x r k i j , k i , j + 1 , x k i j k j + 1 3 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j k j + 1 3 )
where:
r k i j ,   k i , j + 1 , x k i j k j + 1 1 = s k j + 1 ,   r k i j ,   k i , j + 1 , z k i j k j + 1 1 = c k j + 1 ,   r k i j ,   k i , j + 1 , x k i j k j + 1 2 = s k j + 1 α k j + 1 1 ,   r k i j ,   k i , j + 1 , z k i j k j + 1 2 = c k j + 1 α k j + 1 1 , r k i j ,   k i , j + 1 , x k i j k j + 1 3 = s k j + 1 α k j + 1 1 α k j + 1 2 ,   r k i j ,   k i , j + 1 , z k i j k j + 1 3 = c k j + 1 α k j + 1 1 α k j + 1 2 .
Computing the partial derivative of Equation (A5) with respect to the link angles α k j + 1 1 and α k j + 1 2 gives:
ι i j α k j + 1 1 = 1 ι i j ( ι i j r k i j , k i , j + 1 , x k i j r k i j , k i , j + 1 , x k i j α k j + 1 1 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j α k j + 1 1 + ι i j n k i , j + 1 , x k i j n k i , j + 1 , x k i j α k j + 1 1 + ι i j n k i , j + 1 , z k i j n k i , j + 1 , z k i j α k j + 1 1 + ι i j a k i , j + 1 , x k i j a k i , j + 1 , x k i j α k j + 1 1 + ι i j a k i , j + 1 , z k i j a k i , j + 1 , z k i j α k j + 1 1 ) ι i j α k j + 1 2 = 1 ι i j ( ι i j r k i j , k i , j + 1 , x k i j r k i j , k i , j + 1 , x k i j α k j + 1 2 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j α k j + 1 2 + ι i j n k i , j + 1 , x k i j n k i , j + 1 , x k i j α k j + 1 2 + ι i j n k i , j + 1 , z k i j n k i , j + 1 , z k i j α k j + 1 2 + ι i j a k i , j + 1 , x k i j a k i , j + 1 , x k i j α k j + 1 2 + ι i j a k i , j + 1 , z k i j a k i , j + 1 , z k i j α k j + 1 2 ) ,
where:
r k i j ,   k i , j + 1 , x k i j α k j + 1 1 = k j + 1 2 c k j + 1 α k j + 1 1 + k j + 1 3 c k j + 1 α k j + 1 1 α k j + 1 2 , r k i j ,   k i , j + 1 , z k i j α k j + 1 1 = k j + 1 2 s k j + 1 α k j + 1 1 k j + 1 3 s k j + 1 α k j + 1 1 α k j + 1 2 , r k i j ,   k i , j + 1 , x k i j α k j + 1 2 = k j + 1 3 c k j + 1 α k j + 1 1 α k j + 1 2 ,   r k i j ,   k i , j + 1 , z k i j α k j + 1 2 = k j + 1 3 s k j + 1 α k j + 1 1 α k j + 1 2 , n k i , j + 1 , x k i j α k j + 1 1 = n k i , j + 1 , x k i j α k j + 1 2 = s k j + 1 α k j + 1 1 α k j + 1 2 ,   n k i , j + 1 , z k i j α k j + 1 1 = n k i , j + 1 , z k i j α k j + 1 2 = c k j + 1 α k j + 1 1 α k j + 1 2 , a k i , j + 1 , x k i j α k j + 1 1 = a k i , j + 1 , x k i j α k j + 1 2 = c k j + 1 α k j + 1 1 α k j + 1 2 ,   a k i , j + 1 , z k i j α k j + 1 1 = a k i , j + 1 , z k i j α k j + 1 2 = s k j + 1 α k j + 1 1 α k j + 1 2 .

Appendix B.3. Partial Derivatives with Respect to Joint Positions

Computing the partial derivative of Equation (A5) with respect to the joint position θ k j + 1 gives:
ι i j θ k j + 1 1 = 1 ι i j ( ι i j r k i j , k i , j + 1 , x k i j r k i j , k i , j + 1 , x k i j θ k j + 1 + ι i j r k i j , k i , j + 1 , z k i j r k i j , k i , j + 1 , z k i j θ k j + 1 + ι i j n k i , j + 1 , x k i j n k i , j + 1 , x k i j θ k j + 1 + ι i j n k i , j + 1 , z k i j n k i , j + 1 , z k i j θ k j + 1 + ι i j a k i , j + 1 , x k i j a k i , j + 1 , x k i j θ k j + 1 + ι i j a k i , j + 1 , z k i j a k i , j + 1 , z k i j θ k j + 1 ) ,
where:
r k i j ,   k i , j + 1 , x k i j θ k j + 1 = k j + 1 1 c k j + 1 + k j + 1 2 c k j + 1 α k j + 1 1 + k j + 1 3 c k j + 1 α k j + 1 1 α k j + 1 2 , r k i j ,   k i , j + 1 , z k i j θ k j + 1 = k j + 1 1 s k j + 1 k j + 1 2 s k j + 1 α k j + 1 1 k j + 1 3 s k j + 1 α k j + 1 1 α k j + 1 2 , n k i , j + 1 , x k i j θ k j + 1 = n k i , j + 1 , x k i j α k j + 1 2 ,   n k i , j + 1 , z k i j θ k j + 1 = n k i , j + 1 , z k i j α k j + 1 2 ,   a k i , j + 1 , x k i j θ k j + 1 = a k i , j + 1 , x k i j α k j + 1 2 ,   a k i , j + 1 , z k i j θ k j + 1 = a k i , j + 1 , z k i j α k j + 1 2 .
The partial derivatives of the segment length ι i j with respect to other unrelated cable attachment points, link parameters, and joint angles are equal to zero. So far, the partial derivatives of the segment length ι i j with respect to of r A , , and q have been solved. For Cable i , according to Equation (3), the partial derivatives of cable length l i with respect to these parameters is equal to the sum of the partial derivative of the segment length ι i 1 , , ι i , t i 1 with respect to these parameters.

Appendix B.4. Partial Derivatives with Respect to Initial Cable Length

The partial derivative of Equation (13) with respect to initial cable length l 0 can be given as:
l Δ / l 0 = I 6 × 6 ,
where I 6 × 6 denotes 6 × 6 identity matrix.

Appendix B.5. Partial Derivatives with Respect to Coefficients of Transmission System

The partial derivative of Equation (13) with respect to coefficients of transmission system h can be given as:
l Δ / h = diag ( ϑ ) .

Appendix B.6. Partial Derivatives with Respect to Motor Positions

The partial derivative of Equation (13) with respect to coefficients of transmission system h can be given as:
l Δ / ϑ = diag ( h ) .
In summary, the calibration matrix Y can be obtained by combining Equations (A7)–(A14).

References

  1. Cui, X.; Chen, W.; Jin, X.; Agrawal, S.K. Design of a 7-dof cable-driven arm exoskeleton (carex-7) and a controller for dexterous motion training or assistance. IEEE-ASME Trans. Mech. 2017, 22, 161–172. [Google Scholar] [CrossRef]
  2. Yao, Y.; Du, Z.; Wei, Z. Research on the snake-arm robot assembly system. Aeronaut. Manuf. Technol. 2015, 21, 26–30. [Google Scholar]
  3. Buckingham, R.; Chitrakaran, V.; Conkie, R.; Ferguson, G.; Graham, A.; Lazell, A. Snake-arm robots: A new approach to aircraft assembly. SAE Tech. Paper 2007. [Google Scholar] [CrossRef]
  4. Lou, Y.; Di, S. Design of a cable-driven auto-charging robot for electric vehicles. IEEE Access. 2020, 8, 15640–15655. [Google Scholar] [CrossRef]
  5. Buckingham, R.; Graham, A. Nuclear snake-arm robots. Ind. Robot. 2012, 39, 6–11. [Google Scholar] [CrossRef]
  6. Mustafa, S.K.; Yang, G.; Yeo, S.H.; Lin, W.; Chen, M. Self-calibration of a biologically inspired 7 dof cable-driven robotic arm. IEEE-ASME Trans. Mech. 2008, 13, 66–75. [Google Scholar] [CrossRef]
  7. Chen, Q.; Chen, W.; Yang, G.; Liu, R. An integrated two-level self-calibration method for a cable-driven humanoid arm. IEEE Trans. Autom. Sci. Eng. 2013, 10, 380–391. [Google Scholar] [CrossRef]
  8. Lau, D. Initial length and pose calibration for cable-driven parallel robots with relative length feedback. In Cable-Driven Parallel Robots; Mechanisms and Machine Science; Gosselin, C., Cardou, P., Bruckmann, T., Pott, A., Eds.; Springer: Cham, Switzerland, 2018; Volume 53, pp. 140–151. [Google Scholar]
  9. Borgstrom, P.H.; Jordan, B.L.; Borgstrom, B.J.; Stealey, M.J.; Kaiser, W.J. NIMS-PL: A cable-driven robot with self-calibration capabilities. IEEE Trans. Robot. 2009, 25, 1005–1015. [Google Scholar] [CrossRef] [Green Version]
  10. Sen, Q.; Kunlong, B.; Bin, Z.; Ning, W. Kinematic calibration of a cable-driven parallel robot for 3d printing. Sensors 2018, 18, 2898. [Google Scholar]
  11. Xuejun, J.; Jinwoo, J.; Seong, K.; Eunpyo, C.; Jong-Oh, P.; Chang-Sei, K. Geometric parameter calibration for a cable-driven parallel robot based on a single one-dimensional laser distance sensor measurement and experimental modeling. Sensors 2018, 18, 2392. [Google Scholar]
  12. Wang, H.; Gao, T.; Kinugawa, J.; Kosuge, K. Finding measurement configurations for accurate robot calibration: Validation with a cable-driven robot. IEEE Trans. Robot. 2017, 33, 1156–1169. [Google Scholar] [CrossRef]
  13. Miermeister, P.; Pott, A.; Verl, A. Auto-calibration method for overconstrained cable-driven parallel robots. In Proceedings of the ROBOTIK 2012, 7th German Conference on Robotics, Munich, Germany, 21 May 2012; pp. 301–306. [Google Scholar]
  14. Alexandre, J.; Sandretto, D.; Daney, D.; Gouttefarde, M.; Baradat, C. Calibration of a fully-constrained parallel cable-driven robot. In Romansy 19—Robot Design, Dynamics and Control. CISM International Centre for Mechanical Sciences; Padois, V., Bidaud, P., Khatib, O., Eds.; Springer: Vienna, Austria, 2013; Volume 544, pp. 77–84. [Google Scholar]
  15. Duan, X.; Qiu, Y.; Duan, Q.; Du, J. Calibration and motion control of a cable-driven parallel manipulator based triple-level spatial positioner. Adv. Mech. Eng. 2014, 5, 1–10. [Google Scholar] [CrossRef] [Green Version]
  16. Surdilovic, D.; Radojicic, J.; Bremer, N. Efficient calibration of cable-driven parallel robots with variable structure. In Cable-Driven Parallel Robots; Mechanisms and Machine Science; Poot, A., Bruckmann, T., Eds.; Springer: Cham, Switzerland, 2015; Volume 32, pp. 113–128. [Google Scholar]
  17. Lau, D.; Oetomo, D.; Halgamuge, S.K. Generalized modeling of multilink cable-driven manipulators with arbitrary routing using the cable-routing matrix. IEEE Trans. Robot. 2013, 29, 1102–1113. [Google Scholar] [CrossRef]
Figure 1. The relationship among CDM (cable-driven manipulator), CDSM (cable-driven serial manipulator), and CDPM (cable-driven parallel manipulator) from the perspective of the cable’s segment number.
Figure 1. The relationship among CDM (cable-driven manipulator), CDSM (cable-driven serial manipulator), and CDPM (cable-driven parallel manipulator) from the perspective of the cable’s segment number.
Electronics 10 00444 g001
Figure 2. Arrangements of a three-DOF three-cable CDSM’s cable system, single cable, and single segment in the system; (a) The arrangements of a three-DOF three-cable CDSM system; (b) Cable 3 of the CDSM; (c) The third segment of cable 3.
Figure 2. Arrangements of a three-DOF three-cable CDSM’s cable system, single cable, and single segment in the system; (a) The arrangements of a three-DOF three-cable CDSM system; (b) Cable 3 of the CDSM; (c) The third segment of cable 3.
Electronics 10 00444 g002
Figure 3. Calibration algorithm.
Figure 3. Calibration algorithm.
Electronics 10 00444 g003
Figure 4. Protype of a plane three-DOF six-cable CDM. (a) Front side; (b) Back side; The first two attachments A i 10 , A i 20 of cable i ( i = 1 , , 6 ) are located at two fixed reversing pulleys, which is not shown in this figure.
Figure 4. Protype of a plane three-DOF six-cable CDM. (a) Front side; (b) Back side; The first two attachments A i 10 , A i 20 of cable i ( i = 1 , , 6 ) are located at two fixed reversing pulleys, which is not shown in this figure.
Electronics 10 00444 g004
Figure 5. Measured joint positions q n for calibration.
Figure 5. Measured joint positions q n for calibration.
Electronics 10 00444 g005
Figure 6. Measured motor positions for calibration and its nominal values.
Figure 6. Measured motor positions for calibration and its nominal values.
Electronics 10 00444 g006
Figure 7. Convergent accuracies of different numbers of measured positions.
Figure 7. Convergent accuracies of different numbers of measured positions.
Electronics 10 00444 g007
Figure 8. Difference between nominal and calibrated values of joint positions.
Figure 8. Difference between nominal and calibrated values of joint positions.
Electronics 10 00444 g008
Figure 9. Trajectory tracking errors of the same controller using the nominal and calibration values.
Figure 9. Trajectory tracking errors of the same controller using the nominal and calibration values.
Electronics 10 00444 g009
Table 1. Notations and their meanings used in the design of the self-calibration algorithm.
Table 1. Notations and their meanings used in the design of the self-calibration algorithm.
NotationsMeanings
i Cable number
j Segment number
k i j Link number where attachment point j of cable i is located
l i j The j -th segment vector of cable i
l i j k i j The segment vector with respect to frame O k i j
ι i j Segment length
l i Cable length
A i j k i j The j -th attachment point of cable i on link k i j
r k i j ,   A i j k i j   k i j The cable attachment point’s coordinates with respect to the frames O k i j
r k i j ,   k i , j + 1 k i j The vector from the origin of frame O k i j to the one of O k i , j + 1 with respect to frame O k i j
A k i , j + 1 k i j The homogeneous transformation matrix of frame O k i , j + 1 with respect to frame O k i j
q k The vector of joint positions of joint k
q The vector of the joint variables of the entire CDSM
k The parameters of link k
The vector of the link parameters of the entire CDSM
𝓛 The matrix of the combination of all segment vectors
ι The vector of all segment lengths
l The vector of all cable lengths
𝓒 The cable-routing configuration struct (CRCS)
r A The vector of attachment points’ locations
h The vector of the coefficients from motor positions to cable lengths
ϑ The vector of motor positions
l 0 The vector of the cable lengths at the initial (zero) moment
Y Calibration matrix
ζ Integrated parameters
Table 2. Nominal and calibrated values of initial cable lengths.
Table 2. Nominal and calibrated values of initial cable lengths.
Parameter l 0,1   ( mm ) l 0,2   ( mm ) l 0,3   ( mm ) l 0,4   ( mm ) l 0,5   ( mm ) l 0,6   ( mm )
Nominal365.9410.2778.7810.91103.61102.6
Calibrated364.3412.6774.5814.71106.21098.9
Table 3. Nominal and calibrated values of coefficients from motor positions to cable lengths.
Table 3. Nominal and calibrated values of coefficients from motor positions to cable lengths.
Parameter h 1   ( Count / mm ) h 2   ( Count / mm ) h 3   ( Count / mm ) h 4   ( Count / mm ) h 5   ( Count / mm ) h 6   ( Count / mm )
Nominal22,00022,00022,00022,00022,00022,000
Calibrated22,47622,64521,13522,28621,77522,636
Table 4. Nominal and calibrated values of attachment points’ coordinates.
Table 4. Nominal and calibrated values of attachment points’ coordinates.
A i j k j Nominal Value r k j , A i j k j k j (mm) Calibrated Value (mm)
A 110 r 0 , A 110 0 (−135, 145, −170)(−134.7056, 144.7175, −170.6476)
A 120 r 0 , A 120 0 (−135, 0, −170)(−135.0169, −0.8203, −168.5460)
A 130 r 0 , A 130 0 (−135, 0, −75)(−133.6496, −0.4076, −75.4996)
A 141 r 1 , A 141 1 (89.4932, 0, −292.6467)(90.3141, 0.1460, −292.3908)
A 210 r 0 , A 210 0 (135, 145, −170)(135.4817, 145.0531, −169.9080)
A 220 r 0 , A 220 0 (135, 0, −170)(136.6902, −1.4975, −170.9204)
A 230 r 0 , A 230 0 (135, 0, −75)(134.5120, −1.5962, −75.6662)
A 241 r 1 , A 241 1 (192.7064, 0, −220.3761)(192.6127, 0.1161, −220.3101)
A 310 r 0 , A 310 0 (−95, 238, −170)(−94.0255, 237.3885, −170.4087)
A 320 r 0 , A 320 0 (−95, 20.5, −170)(−95.2836, 19.7725, −169.5771)
A 330 r 0 , A 330 0 (−95, 20.5, −75)(−94.7733, 19.3083, −74.6078)
A 341 r 1 , A 341 1 (83.1839, 20.5, −283.6360)(83.6958, 20.4633, −283.7045)
A 351 r 1 , A 351 1 (−63, 20.5, −34)(−63.3168, 20.4400, −33.8549)
A 362 r 2 , A 362 2 (−210.4091, 20.5, −265.5221)(−211.0330, 21.8121, −264.3562)
A 410 r 0 , A 410 0 (95, 238, −170)(94.5417, 237.3128, −168.2358)
A 420 r 0 , A 420 0 (95, 20.5, −170)(96.3329, 21.9336, −168.8182)
A 430 r 0 , A 430 0 (95, 20.5, −75)(95.9179, 21.5593, −74.5564)
A 441 r 1 , A 441 1 (186.3970, 20.5, −211.3654)(185.3462, 20.4809, −209.6222)
A 451 r 1 , A 451 1 (63, 20.5, −34)(62.5947, 21.2907, −33.8836)
A 462 r 2 , A 462 2 (−84.4091, 20.5, −265.5221)(−84.9520, 19.3120, −264.3745)
A 510 r 0 , A 510 0 (−55, 144, −170)(−54.6633, 144.5745, −170.6377)
A 520 r 0 , A 520 0 (−55, −20.5, −170)(−53.7499, −19.5351, −170.1096)
A 530 r 0 , A 530 0 (−55, −20.5, −75)(−54.5923, −19.6761, −73.6925)
A 541 r 1 , A 541 1 (83.1839, −20.5, −283.6360)(82.2378, −19.8186, −284.4778)
A 551 r 1 , A 551 1 (−63, −20.5, −34)(−62.1101, −20.5494, −33.6611)
A 562 r 2 , A 562 2 (−210.4091, −20.5, −254.5221)(−208.8414, −20.4535, −255.0402)
A 572 r 2 , A 572 2 (−63, −20.5, −34)(−63.8670, −20.3929, −34.7197)
A 583 r 3 , A 583 3 (−54.0640, −20.5, −47.4040)(−53.0214, −19.5981, −46.1340)
A 610 r 0 , A 610 0 (55, 144, −170)(56.6044, 144.2717, −168.9483)
A 620 r 0 , A 620 0 (55, −20.5, −170)(55.9646, −20.1404, −171.4271)
A 630 r 0 , A 630 0 (55, −20.5, −75)(55.0254, −20.4330, −75.2431)
A 641 r 1 , A 641 1 (186.3970, −20.5, −211.3654)(186.4638, −19.0058, −211.7643)
A 651 r 1 , A 651 1 (63, −20.5, −34)(62.5720, −20.3985, −34.2693)
A 662 r 2 , A 662 2 (−84.4091, −20.5, −254.5221)(−84.0592, −20.8294, −254.7374)
A 672 r 2 , A 672 2 (63, −20.5, −34)(64.5470, −19.3600, −34.2149)
A 683 r 3 , A 683 3 (54.0640, −20.5, −123.1160)(54.9236, −20.8250, −122.6008)
Table 5. Nominal and calibrated values of link parameters.
Table 5. Nominal and calibrated values of link parameters.
Parameter 11 (mm) 12 (mm) 13 (mm) α 11 ( ° ) α 12 ( ° )
Nominal5524655035
Calibrated54.3245.356.4−0.334.5
Parameter 21 (mm) 22 (mm) 23 (mm) α 21 ( ° ) α 22 ( ° )
Nominal552575535−35
Calibrated52.8258.354.436.4−35.6
Parameter 31 (mm) 32 (mm) 33 (mm) α 31 ( ° ) α 32 ( ° )
Nominal5585.260−350
Calibrated55.487.40.6−35.50.8
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Lou, Y.; Lin, H.; Quan, P.; Wei, D.; Di, S. Self-Calibration for the General Cable-Driven Serial Manipulator with Multi-Segment Cables. Electronics 2021, 10, 444. https://doi.org/10.3390/electronics10040444

AMA Style

Lou Y, Lin H, Quan P, Wei D, Di S. Self-Calibration for the General Cable-Driven Serial Manipulator with Multi-Segment Cables. Electronics. 2021; 10(4):444. https://doi.org/10.3390/electronics10040444

Chicago/Turabian Style

Lou, Ya’nan, Haoyu Lin, Pengkun Quan, Dongbo Wei, and Shichun Di. 2021. "Self-Calibration for the General Cable-Driven Serial Manipulator with Multi-Segment Cables" Electronics 10, no. 4: 444. https://doi.org/10.3390/electronics10040444

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop