# Analysis of Open Architecture 6R Robot Forward and Inverse Kinematics Adaptive to Structural Variations

Authors: Chong Wang; Dongxue Liu; Qun Sun; Tong Wang
Journal: Mathematical Problems in Engineering
 (2021)

---

## Abstract

This paper presents a kinematic analysis for an open architecture 6R robot controller, which is designed to control robots made by domestic manufactures with structural variations. Usually, robot kinematic studies are often introduced for specific robot types, and therefore, difficult to apply the kinematic model from one to another robot. This study incorporates most of the robot structural variations in one model so that it is convenient to switch robot types by modifying model parameters. By combining an adequate set of parameters, the kinematic models, especially the inverse kinematics, are derived. The kinematic models are proved to be suitable for many classic industrial robot types, such as Puma560, ABB IRB120/1600, KAWASAKI RS003N/RS010N, FANUC M6iB/M10iA, and therefore be applicable to those with similar structures. The analysis and derivation of the forward and inverse kinematic models are presented, and the results are proven to be accurate.


---

## Body

## 1. Introduction

Kinematics analysis is one of the most important procedures for robot control. In the year 2018, the annual production volume of industrial robots reached 390 thousand; many of them are increasingly made by small or medium manufactures. A rising issue is that robots produced by different companies may have different structures, e.g., Figure1; however, according to literature, robot kinematic models are often introduced for specific robot types rather than in a universal form. This leads to the fact that many robots with varying dimensional parameters must firstly derive a correct kinematic model in the controller.Figure 1
Variations in industrial robot structures.For the purpose of reducing the inconvenience, this study aims to develop an open architecture controller in which the kinematic models are given a universal form so that they can apply to different robot types by changing parameters. The approach was based on the classic DH modelling method for well-known Puma560 analysis as presented in many text books [1]. This study introduced more link and offset parameters, which can be modified or set to zero for different robot structures, and the forward and reverse solutions were rederived for this expended DH model. Compared with other analysis methods such as those based on screw theory, this approach is more understandable to general robot users and easy to implement in practice.The Denavit–Hatenberg (DH) modelling approach is the most widely utilized method to analyze robot kinematics [1–11]. However, due to the variations in industrial robot structures as shown in Figure 1, many studies are associated with specific robot types [9–12] using specific relative link length and offset parameters, and therefore are difficult to adapt to different robot structures.Today the large majority of industrial 6R robots are equipped with orthogonal wrists, where the axes of the last three joints intersect on one point. A distinctive example is a UR-5 robot that uses offset wrist, in which case joint 4 and joint 6 are parallel and vertical to joint 5. For common industrial 6R robots, as can be represented by ABB IRB120/IRB1600 as shown in Figure1, the major structural differences lie in the arm configurations, especially the offset distances of joint 2 and joint 3. Studies on Puma560 robot are most widely presented in university textbook [1] and discussed in the literature [2–4, 11]. However, Puma560 is somehow different from a normal industrial 6R robot since its link 3 is offset and the axis is not aligned with the axis of joint 1. For ABB IRB1600, the offset exists in link 2 and therefore, it cannot use the models for Puma560 and IRB120.In terms of DH modelling, Puma560 is the most widely used example. The DH modelling approach takes robot section length, joint mounting angle, and offset distance to create a transformation matrix, from which the end point position can be calculated in forward kinematics, and on the contrary, the joint angles can be determined by known end status from inverse kinematics. More recent academic studies on robot kinematics are often based on screw theory [13–15], which provides better solutions, but are difficult to be utilized by domestic robot manufactures. For the robot controllers with fast CPUs, numerical solutions are always possible, and therefore, the studies on numerical approach are also well documented [16–18]. This study aims to develop open architecture kinematic models and controllers for small or medium robot manufactures, and therefore DH modelling remains in focus.Robot dynamics is an important area besides analysis of kinematics, and relative studies are plenty [19–21], among which the Lagrange method is the most utilized approach. This study validates the robot on a controller developed on ARM and DSP, and control signals go through Panasonic A6 series motor drivers to drive motors. Since A6 drivers can be configured to use pulse mode and current control mode, and in the former case, it uses the internal PID controller to cancel out loading effects. For simplification purposes, this study uses pulse control mode in experiments and therefore, dynamics modelling is not required.


## 2. DH Models and Forward Kinematics

From the above investigations, a general 6R robot DH model should take adequate offset and length parameters into account, while the joint orthogonal status can be configured by one set of parameters, provided the input joint rotation angles can be adjusted to a specific robot type where necessary. Based on such premise, the DH parameters are listed in Table1, where α stands for the joint orthogonal angle, a for link length, and d for link offset. Note the coordinate orientations in this form may be different from the definitions made by some original companies; however, the differences can always be cancelled out using some extra coordinate transformations after the model calculation.Table 1
DH parameters of general 6R robots.
Linkiαi−1ai−1di10°002−90°a1d230°a2−d34−90°a3d4590°006−90°0d6Following this arrangement, the DH model diagram for the general 6R robot can be established as shown in Figure2. It can be seen for Puma560 and ABB IRB120 that a1 is zero. Thus, the axes of joint 1 and joint 2 intersect instead of being away. For Puma560, d2 and d3 both are present but are unequal, while for ABB IRB1600, d2 and d3 are identical, although its link appears to be on one side.Figure 2
DH model diagram for general 6R robot.Besides, for industrial 6R robots, the axes of the last three joints intersect on a single pointp, while the actual geometrical center of the robot end without considering tool apparatus is point p′, which represents the genuine TCP of the robot. In many university textbooks and works of the literature, for Puma560 modelling, the calculations were often evaluated on point p. In many actual applications or simulations, such as in ABB Robot Studio, the evaluations can only be made on the genuine TCP p′. For later comparison purposes, this study presents results for Puma560 on point p, while for other robots, the results on p′ will be evaluated. The origin of the coordinate systems was made on point O0, without considering the base height h0, which is included in Table 2 but not actually used in calculations.Table 2
DH parameters for some different robot types.
Robot typea1a2a3d2d3d4d6h0Puma5600431.820.32149.090433.070∗400ABB IRB120027070909030272187ABB IRB160015047510821521560065486.5FANUC M6iB150600100140140615100450FANUC M10iA150600200207207640100450Kawasaki RS003N12025000025080250Kawasaki RS010N100650020720770088430The complete sets of parameters for some different robot types are given in Table2. Note for Puma560, d6 is taking 0 only because the evaluation is made on point p as mentioned above. Also, note apart from Puma560, d2 and d3 are always identical, which indicates for most industrial 6R robots, link 3 and the axis of joint 1 are in the same plane. Many robot DH models do not include d2 and d3 since the effects can be cancelled out. This study keeps all the parameters in the model in case variations are made by different manufactures.Based on the DH model diagram in Figure2, the forward DH transformation matrixes can be described in equations (1) and (2), where Tmn stands for transformation from the mth coordinate system to the nth coordinate system.(1)T01=T01,T02=T01T12,…,T06=T01T12T23T34T45T56,(2)T01=c1−s100s1c10000100001,T12=c2−s20a1001d2−s2−c2000001,T23=c3−s30a2s3c300001−d30001,T34=c4−s40a3001d4−s4−c4000001,T45=c5−s50000−10s5c5000001,T56=c6−s6000010−s6−c6000001.The matrix product of the above leads to the transformation from the origin to the last coordinate system of the robot, which can be described below, wheren, o, and a correspond to the normal vector, the orientation vector, and the approaching vector.(3)T06=T01T12T23T34T45T56=nxoxaxpxnyoyaypynzozazpz0001.In a robot control system based on a Python environment, the forward kinematic model can be directly calculated using matrix multiplication functions. In a different coding system, the equations might have to be configured manually. To simplify the trigonometric function representations, use symbolss and c in place of sin and cos and define c23 = c2c3 − s2s3, s23 = c2s3 + s2c3. Then, the equations of the forward kinematic model can be written as below.(4)nx=c1c23c4c5c6−s4s6−s23s5c6+s1s4c5c6+c4s6,ny=s1c23c4c5c6−s4s6−s23s5c6−c1s4c5c6+c4s6,nz=−s23c4c5c6−s4s6−c23s5c6,ox=c1c23−c4c5s6−s4c6+s23s5s6−s1s4c5s6−c4s6,oy=s1c23−c4c5s6−s4c6−s23s5c6+c1s4c5s6−c4s6,oz=s23c4c5s6+s4c6+c23s5s6,ax=−c1c23c4s5+s23c5−s1s4s5,ay=−s1c23c4s5+s23c5+c1s4s5,az=s23c4s5−c23c5,px=c1a3c23−d4s23+a2c2+a1−s1d2−d3,py=s1a3c23−d4s23+a2c2+a1+c1d2−d3,pz=−a3s23−d4c23−a2s2.Since the output ofT06 represents the position of the wrist intersection point p, while in many cases, users measure and evaluate the position of robot genuine TCP, i.e., point p′, which should include parameter d6 in the calculation. Without considering other robot tool configurations, the actual robot end point p′ can be calculated using one more matrix transformation as follows:(5)T6p′=10000100001d60001,T0p′=T06T6p′=nxoxaxpx+axd6nyoyaypy+ayd6nzozazpz+azd60001.Clearly, when a specific tool is installed, the TCP position may be shifted by modifications in equation (5). For inverse calculation purposes, equation (5) should be firstly reversed to recover T06 so that the inverse analysis as presented in the following section may commence.


## 3. Inverse Kinematic Models

### 3.1. Calculate Joint 1 Angleθ1

The approach to calculateθ1 is similar to that mentioned in the classic Puma560 model in the textbook [1]. In order to calculate θ1, it is necessary to construct an equation where the only unknown parameter is θ1, and all the other parameters are known constants. For this purpose, investigate the transformation matrix T16, which can be obtained either by multiplying the inverse matrix of T01 with T06, or by multiplying T12, T23, T34, T45, and T56, as represented follows:(6)T01−1T06=T12T23T34T45T56=T16,(7)T01−1T06=c1s100−s1c10000100001nxoxaxpxnyoyaypynzozazpz0001.In the above,px and py are already known from equation (4). To calculate θ1, investigate the element (2, 4) of the matrix product in equation (7) and that of T16, the below relationship can be established:(8)−s1px+c1py=d2−d3.Differed from the Puma560 model, in equation (8), there is a parameter d3 that is not used in Puma560 robot. To facilitate analysis, define the following functions:(9)px=ρcosφ,py=ρsinφ.Substitute equation (9) into (8), then the solution of θ1 can be obtained.(10)θ1=atan2py,px−atan2d2−d3,±px2+py2−d2−d32.


### 3.2. Calculate Joint 3 Angleθ3

Letting the element (1, 4) and (3, 4) of matrixT16 and T01−1T06 be identical, the below can be obtained:(11)c1px+s1py=a3c23−d4s23+a2c2+a1,(12)−pz=a3s23+d4c23+a2s2.For equations (8), (11), and (12), sum up the squares of left and right sides, and the two sides should still be identical; therefore,(13)a3c3−d4s3=k,where k is as follows:(14)k=px2+py2+pz2+E−a22−a32−d2−d32−d422a2.In the above equation, the termE is introduced due to the parameter a1, which is not present in the classic Puma560 model. From analysis the term E can be written as follows:(15)E=a12−2a1c1px−2a1s1py.Since equations (8) and (13) are in a similar format, θ3 can be solved in a similar manner as follows:(16)θ3=atan2a3,d4−atan2k,±a32+d42−k2.


### 3.3. Calculate Joint 2 Angleθ2

To deriveθ2, the method is new from the classic Puma560 model since it involves parameters a1 and a3. The analysis is performed on the transformation matrix T26, as follows:(17)T02−1T06=T23T34T45T56=T26.The principle of derivingθ2 relies on searching for an equation where the unknown parameter is θ2 while the rest parameters only include θ1 and θ3, which are already worked out. Therefore, the above equation is rewritten in the following form:(18)T02−1T06=c1c2s1c2−s2−c2a1−c1s2−s1s2−c2s2a1−s1c10−d220001nxoxaxpxnyoyaypynzozazpz0001=T26.By looking into element (1, 4) of the above equation andT26, the following relationship can be identified:(19)c2c1px+s1py−a1−s2pz=c3a3−s3d4+a2.To help resolve equation (19), define the equations below:(20)A=c1px+s1py−a1,B=pz,C=c3a3−s3d4+a2.Then equation (19) can be transformed into the following form, which again has a similar structure as equation (8):(21)c2A−s2B=C.Then, the final solution ofθ2 can be obtained as follows:(22)θ2=atan2A,B−atan2C,±A2+B2−C2.


### 3.4. Calculate Joint 4 Angleθ4

Similarly, to calculateθ4 the method is to analyze the transformation matrix T36, as follows:(23)T03−1T06=T34T45T56.By analyzing the (1, 3) and (3, 3) elements of the matrixes on the two sides, the following relationships can be identified:(24)axc1c23+ays1c23−azs23=−c4s5,−axs1+ayc1=s4s5.If the operational condition satisfiess5≠0, then there is a definite solution for θ4.(25)θ4=atan2−axs1+ayc1,−axc1c23−ays1c23+azs23.If the condition iss5=0, then the robot is in a singular posture. In this case, θ4 can be taken with an arbitrary value that does not affect the end results.


### 3.5. Calculate Joint 5 Angleθ5

To deriveθ5 it is possible to investigate T46 as given by the following:(26)T04−1T06=T45T56=T46,T04−1T06=c1c23c4+s1s4s1c23c4−c1s4−s23c4−a2c3c4+d2s4−a3c4−c1c23c4+s1s4−s1c23c4−c1s4s23c4a2c3c4+d2s4+a3c4−c1s23−s1s23−c23a2s3−d40001nxoxaxpxnyoyaypynzozazpz0001=T46=c5c6−c5s6−s50s6c600s5c6−s5s6c500001.From the equality of elements (1, 3) and (3, 3) on the two sides, the following relationships can be derived:(27)axc1c23c4+s1s4+ays1c23c4−c1s4−azs23c4=−s5,ax−c1s23+ay−s1s23+az−c23=c5.These give the solution forθ5 as follows:(28)θ5=atan2s5,c5.


### 3.6. Calculate Joint 6 Angleθ6

Finally calculatingθ6 requires working on T56 and the relationships derived from elements (3, 1) and (1, 1) are the following:(29)−nxc1c23s4−s1c4−nys1c23c4+c1s4+nzs23s4=s6,nxc1c23c4+s1s4c5−c1s23s4+nys1c23c4−c1s4c5−s1s23s5−nzs23c4c5+c23s4=c6.The above gives a unique solution forθ6 as follows:(30)θ6=atan2s6,c6.In addition, the symmetric solutions of the robot wrist angles do not affect end results. Therefore, there are extra solutions forθ4, θ5, and θ6 as follows:(31)θ4′=θ4+180°,θ5′=−θ5,θ6′=θ6+180°.


## 3.1. Calculate Joint 1 Angleθ1

The approach to calculateθ1 is similar to that mentioned in the classic Puma560 model in the textbook [1]. In order to calculate θ1, it is necessary to construct an equation where the only unknown parameter is θ1, and all the other parameters are known constants. For this purpose, investigate the transformation matrix T16, which can be obtained either by multiplying the inverse matrix of T01 with T06, or by multiplying T12, T23, T34, T45, and T56, as represented follows:(6)T01−1T06=T12T23T34T45T56=T16,(7)T01−1T06=c1s100−s1c10000100001nxoxaxpxnyoyaypynzozazpz0001.In the above,px and py are already known from equation (4). To calculate θ1, investigate the element (2, 4) of the matrix product in equation (7) and that of T16, the below relationship can be established:(8)−s1px+c1py=d2−d3.Differed from the Puma560 model, in equation (8), there is a parameter d3 that is not used in Puma560 robot. To facilitate analysis, define the following functions:(9)px=ρcosφ,py=ρsinφ.Substitute equation (9) into (8), then the solution of θ1 can be obtained.(10)θ1=atan2py,px−atan2d2−d3,±px2+py2−d2−d32.


## 3.2. Calculate Joint 3 Angleθ3

Letting the element (1, 4) and (3, 4) of matrixT16 and T01−1T06 be identical, the below can be obtained:(11)c1px+s1py=a3c23−d4s23+a2c2+a1,(12)−pz=a3s23+d4c23+a2s2.For equations (8), (11), and (12), sum up the squares of left and right sides, and the two sides should still be identical; therefore,(13)a3c3−d4s3=k,where k is as follows:(14)k=px2+py2+pz2+E−a22−a32−d2−d32−d422a2.In the above equation, the termE is introduced due to the parameter a1, which is not present in the classic Puma560 model. From analysis the term E can be written as follows:(15)E=a12−2a1c1px−2a1s1py.Since equations (8) and (13) are in a similar format, θ3 can be solved in a similar manner as follows:(16)θ3=atan2a3,d4−atan2k,±a32+d42−k2.


## 3.3. Calculate Joint 2 Angleθ2

To deriveθ2, the method is new from the classic Puma560 model since it involves parameters a1 and a3. The analysis is performed on the transformation matrix T26, as follows:(17)T02−1T06=T23T34T45T56=T26.The principle of derivingθ2 relies on searching for an equation where the unknown parameter is θ2 while the rest parameters only include θ1 and θ3, which are already worked out. Therefore, the above equation is rewritten in the following form:(18)T02−1T06=c1c2s1c2−s2−c2a1−c1s2−s1s2−c2s2a1−s1c10−d220001nxoxaxpxnyoyaypynzozazpz0001=T26.By looking into element (1, 4) of the above equation andT26, the following relationship can be identified:(19)c2c1px+s1py−a1−s2pz=c3a3−s3d4+a2.To help resolve equation (19), define the equations below:(20)A=c1px+s1py−a1,B=pz,C=c3a3−s3d4+a2.Then equation (19) can be transformed into the following form, which again has a similar structure as equation (8):(21)c2A−s2B=C.Then, the final solution ofθ2 can be obtained as follows:(22)θ2=atan2A,B−atan2C,±A2+B2−C2.


## 3.4. Calculate Joint 4 Angleθ4

Similarly, to calculateθ4 the method is to analyze the transformation matrix T36, as follows:(23)T03−1T06=T34T45T56.By analyzing the (1, 3) and (3, 3) elements of the matrixes on the two sides, the following relationships can be identified:(24)axc1c23+ays1c23−azs23=−c4s5,−axs1+ayc1=s4s5.If the operational condition satisfiess5≠0, then there is a definite solution for θ4.(25)θ4=atan2−axs1+ayc1,−axc1c23−ays1c23+azs23.If the condition iss5=0, then the robot is in a singular posture. In this case, θ4 can be taken with an arbitrary value that does not affect the end results.


## 3.5. Calculate Joint 5 Angleθ5

To deriveθ5 it is possible to investigate T46 as given by the following:(26)T04−1T06=T45T56=T46,T04−1T06=c1c23c4+s1s4s1c23c4−c1s4−s23c4−a2c3c4+d2s4−a3c4−c1c23c4+s1s4−s1c23c4−c1s4s23c4a2c3c4+d2s4+a3c4−c1s23−s1s23−c23a2s3−d40001nxoxaxpxnyoyaypynzozazpz0001=T46=c5c6−c5s6−s50s6c600s5c6−s5s6c500001.From the equality of elements (1, 3) and (3, 3) on the two sides, the following relationships can be derived:(27)axc1c23c4+s1s4+ays1c23c4−c1s4−azs23c4=−s5,ax−c1s23+ay−s1s23+az−c23=c5.These give the solution forθ5 as follows:(28)θ5=atan2s5,c5.


## 3.6. Calculate Joint 6 Angleθ6

Finally calculatingθ6 requires working on T56 and the relationships derived from elements (3, 1) and (1, 1) are the following:(29)−nxc1c23s4−s1c4−nys1c23c4+c1s4+nzs23s4=s6,nxc1c23c4+s1s4c5−c1s23s4+nys1c23c4−c1s4c5−s1s23s5−nzs23c4c5+c23s4=c6.The above gives a unique solution forθ6 as follows:(30)θ6=atan2s6,c6.In addition, the symmetric solutions of the robot wrist angles do not affect end results. Therefore, there are extra solutions forθ4, θ5, and θ6 as follows:(31)θ4′=θ4+180°,θ5′=−θ5,θ6′=θ6+180°.


## 4. Model Validations

### 4.1. Validation of the Forward Kinematic Model

The forward kinematic models were calculated in a robot control software developed in a Python environment, which was purposely made to construct an open architecture robot control system. A test run on ABB IRB120 is shown in Figure3. For comparison purposes, ABB Robot Studio v.6.04 was employed with a IRB120 model. By configuring the input joint angles to the same degrees and then measuring the end coordinate values, the identical results can be obtained. Note in this ABB robot the original posture of link 2 is vertical upward, while the direct output of θ2 = 0 in the DH models results in link 2 horizontal, as for Puma560. Therefore, the control software performs an initial subtraction of 90 degrees for θ2 for this ABB robot.Figure 3
Example run on ABB IRB120 in the Python software.The forward kinematic modelling results for some robot types are shown in Table3. For the ABB robots, the results were compared with those measured in ABB Robot Studio v.6.04 and proven to be consistent. The results for the Puma560 robot were compared with the literature and again showed consistency. Attention should be paid to joint 2 angles, which is the original value for Puma560, while for the ABB robots, the presented θ2 values subtract 90 degrees were the actual inputs for the DH models.Table 3
Forward kinematic modelling results for some robot types.
PUMA560PUMA560ABB120ABB120ABB1600ABB1600J1 (deg)020−1072.530−27.49J2 (deg)∗0202029.82062.47J3 (deg)020−30−54.970−67.18J4 (deg)0204037.06087.03J5 (deg)0205025.480−21.26J6 (deg)020−6050.12055.28X (mm)452.1283.34430.132116.454815.01071.912Y (mm)149.09188.992−39.844432.20.0−584.298Z∗ (mm)−433.07−492.497341.522431.209583.0382.645RX (deg)−180160.588−142.538−85.816−18082.755RY (deg)0−57.03054.0242.3979040.951RZ (deg)012.058−57.746−6.896−0−121.013In order to further support comparisons, the DH models for the mentioned robots were redeveloped in MATLAB Robotics Toolbox v10.4, and the end position values are consistent with those shown in Table3. Below graphs were recorded in MATLAB Robotics Toolbox, where Figure 4 shows Puma560 at the two positions suggested in Table 3, and Figure 5 for ABB120 and Figure 6 for ABB1600, respectively.Figure 4
The forward kinematic modelling results for Puma560.
(a)(b)Figure 5
The forward kinematic modelling results for ABB IRB120.
(a)(b)Figure 6
The forward kinematic modelling results for ABB IRB1600.
(a)(b)There are other methods often utilized for robot validations, such as simulations in ADAMS and in ROS (Robot Operating System) environments. However, to practice these simulations, it is necessary to construct an environment identical to the current study and redevelop models in these environments. Comparatively, MATLAB Robotics Toolbox is very simple to reconstruct DH models in different forms, and therefore, it is chosen as the major validation tool.


### 4.2. Validation of the Inverse Kinematic Model

By entering the end coordinate values and run inverse models in the Python software, all the possible solutions can be worked out, and the optimal solution can be selected by minimizing absolute angle changes comparing with the previous posture. For validation purposes, all the 8 solutions for Puma560 data set 2 were recorded and shown in Table4. It can be seen that solution 1 is consistent with the original inputs.Table 4
Inverse kinematic solutions of Puma560 data set 2.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1∗20.0001920.0000419.9999420.0004320.0000319.99989Solution220.0001920.00004165.373171.66486126.2009−146.0638Solution3−67.5924152.3718519.99994−117.6758772.49085114.39521Solution4−67.5924152.37185165.373−77.09362119.95148−101.11077Solution520.0001920.0000419.99994−159.9996−20.00003−160.00011Solution620.0001920.00004165.373−8.33514−126.200933.9362Solution7−67.5924152.3718519.9999462.32413−72.49085−65.60479Solution8−67.5924152.37185165.373102.90638−119.9514878.88923For different robot types, the angle range of each joint may be different. This study assumes the angle range for each joint is from −180° to 180° as for Puma560 configurations, although some specific robot types may have different angle ranges, and these should be altered accordingly in the real application. For the ABB IRB120 robot, there are also 8 solutions, and Table5 shows the solutions for data set 1. It can be seen that solution 1 is consistent with the original inputs in Table 3.Table 5
Inverse kinematic solutions of ABB IRB 120 data set 1.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1∗−9.9999719.99977−29.9997439.9996749.99976−59.99978Solution2−9.9999719.99977−123.9003339.30978128.99056−4.40317Solution3169.99988−70.38190−29.99974−148.60783109.03982−20.40059Solution4169.99988−70.38190−123.90033−118.7893634.18343−88.06442Solution5−9.9999719.99977−29.99974−140.00033−49.99976120.00022Solution6−9.9999719.99977−123.90033−140.69022−128.99056175.59683Solution7169.99988−70.38190−29.9997431.39217−109.03982159.59941Solution8169.99988−70.38190−123.9003361.21064−34.1834391.93558For the ABB IRB1600 data set 2, the 8 inverse solutions are shown in Table6, where one can recognize solution 5 is consistent with the original inputs.Table 6
Inverse kinematic solutions of ABB IRB 1600 data set 2.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1−27.4900562.46982−67.17977−92.9704221.25992−124.7196Solution2−27.4900562.46982−92.41242−43.5976831.67582−178.8865Solution3152.5098−112.26975−67.1797776.5904121.85514−113.50012Solution4152.5098−112.26975−92.4124237.3925936.60483−69.43954Solution5∗−27.4900562.46982−67.1797787.02958−21.2599255.28039Solution6−27.4900562.46982−92.41242136.40232−31.675821.11348Solution7152.5098−112.26975−67.17977−103.4096−21.8551466.49988Solution8152.5098−112.26975−92.41242−142.6074−36.60483110.56046


## 4.1. Validation of the Forward Kinematic Model

The forward kinematic models were calculated in a robot control software developed in a Python environment, which was purposely made to construct an open architecture robot control system. A test run on ABB IRB120 is shown in Figure3. For comparison purposes, ABB Robot Studio v.6.04 was employed with a IRB120 model. By configuring the input joint angles to the same degrees and then measuring the end coordinate values, the identical results can be obtained. Note in this ABB robot the original posture of link 2 is vertical upward, while the direct output of θ2 = 0 in the DH models results in link 2 horizontal, as for Puma560. Therefore, the control software performs an initial subtraction of 90 degrees for θ2 for this ABB robot.Figure 3
Example run on ABB IRB120 in the Python software.The forward kinematic modelling results for some robot types are shown in Table3. For the ABB robots, the results were compared with those measured in ABB Robot Studio v.6.04 and proven to be consistent. The results for the Puma560 robot were compared with the literature and again showed consistency. Attention should be paid to joint 2 angles, which is the original value for Puma560, while for the ABB robots, the presented θ2 values subtract 90 degrees were the actual inputs for the DH models.Table 3
Forward kinematic modelling results for some robot types.
PUMA560PUMA560ABB120ABB120ABB1600ABB1600J1 (deg)020−1072.530−27.49J2 (deg)∗0202029.82062.47J3 (deg)020−30−54.970−67.18J4 (deg)0204037.06087.03J5 (deg)0205025.480−21.26J6 (deg)020−6050.12055.28X (mm)452.1283.34430.132116.454815.01071.912Y (mm)149.09188.992−39.844432.20.0−584.298Z∗ (mm)−433.07−492.497341.522431.209583.0382.645RX (deg)−180160.588−142.538−85.816−18082.755RY (deg)0−57.03054.0242.3979040.951RZ (deg)012.058−57.746−6.896−0−121.013In order to further support comparisons, the DH models for the mentioned robots were redeveloped in MATLAB Robotics Toolbox v10.4, and the end position values are consistent with those shown in Table3. Below graphs were recorded in MATLAB Robotics Toolbox, where Figure 4 shows Puma560 at the two positions suggested in Table 3, and Figure 5 for ABB120 and Figure 6 for ABB1600, respectively.Figure 4
The forward kinematic modelling results for Puma560.
(a)(b)Figure 5
The forward kinematic modelling results for ABB IRB120.
(a)(b)Figure 6
The forward kinematic modelling results for ABB IRB1600.
(a)(b)There are other methods often utilized for robot validations, such as simulations in ADAMS and in ROS (Robot Operating System) environments. However, to practice these simulations, it is necessary to construct an environment identical to the current study and redevelop models in these environments. Comparatively, MATLAB Robotics Toolbox is very simple to reconstruct DH models in different forms, and therefore, it is chosen as the major validation tool.


## 4.2. Validation of the Inverse Kinematic Model

By entering the end coordinate values and run inverse models in the Python software, all the possible solutions can be worked out, and the optimal solution can be selected by minimizing absolute angle changes comparing with the previous posture. For validation purposes, all the 8 solutions for Puma560 data set 2 were recorded and shown in Table4. It can be seen that solution 1 is consistent with the original inputs.Table 4
Inverse kinematic solutions of Puma560 data set 2.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1∗20.0001920.0000419.9999420.0004320.0000319.99989Solution220.0001920.00004165.373171.66486126.2009−146.0638Solution3−67.5924152.3718519.99994−117.6758772.49085114.39521Solution4−67.5924152.37185165.373−77.09362119.95148−101.11077Solution520.0001920.0000419.99994−159.9996−20.00003−160.00011Solution620.0001920.00004165.373−8.33514−126.200933.9362Solution7−67.5924152.3718519.9999462.32413−72.49085−65.60479Solution8−67.5924152.37185165.373102.90638−119.9514878.88923For different robot types, the angle range of each joint may be different. This study assumes the angle range for each joint is from −180° to 180° as for Puma560 configurations, although some specific robot types may have different angle ranges, and these should be altered accordingly in the real application. For the ABB IRB120 robot, there are also 8 solutions, and Table5 shows the solutions for data set 1. It can be seen that solution 1 is consistent with the original inputs in Table 3.Table 5
Inverse kinematic solutions of ABB IRB 120 data set 1.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1∗−9.9999719.99977−29.9997439.9996749.99976−59.99978Solution2−9.9999719.99977−123.9003339.30978128.99056−4.40317Solution3169.99988−70.38190−29.99974−148.60783109.03982−20.40059Solution4169.99988−70.38190−123.90033−118.7893634.18343−88.06442Solution5−9.9999719.99977−29.99974−140.00033−49.99976120.00022Solution6−9.9999719.99977−123.90033−140.69022−128.99056175.59683Solution7169.99988−70.38190−29.9997431.39217−109.03982159.59941Solution8169.99988−70.38190−123.9003361.21064−34.1834391.93558For the ABB IRB1600 data set 2, the 8 inverse solutions are shown in Table6, where one can recognize solution 5 is consistent with the original inputs.Table 6
Inverse kinematic solutions of ABB IRB 1600 data set 2.
J1 (deg)J2 (deg)J3 (deg)J4 (deg)J5 (deg)J6 (deg)Solution1−27.4900562.46982−67.17977−92.9704221.25992−124.7196Solution2−27.4900562.46982−92.41242−43.5976831.67582−178.8865Solution3152.5098−112.26975−67.1797776.5904121.85514−113.50012Solution4152.5098−112.26975−92.4124237.3925936.60483−69.43954Solution5∗−27.4900562.46982−67.1797787.02958−21.2599255.28039Solution6−27.4900562.46982−92.41242136.40232−31.675821.11348Solution7152.5098−112.26975−67.17977−103.4096−21.8551466.49988Solution8152.5098−112.26975−92.41242−142.6074−36.60483110.56046


## 5. Experiments

The experiments were carried out with an open architecture robot controller made with DSP and ARM computer as shown in Figure7(a). The robot calibration was carried out on a Dynalog CompuGauge platform, as shown in Figure 7(b). The open architecture controller consists of a handheld ARM upper computer as the user command interface, a DSP board as the mid-layer signal processer, and a bottom layer Panasonic A6 series motor driver to generate current to drive A6 motors on the robot. The kinematic models were built in the ARM upper computer to enable users to define robot motion commands. The commands were sent to the DSP, which converts the requirements into a corresponding signal frequency and pulse numbers. Then, the processed control signals were sent to A6 drivers to generate the correct current to drive motors.Figure 7
The robot testing equipment. (a) Robot controller. (b) Dynalog CompuGauge calibration equipment.
(a)(b)The A6 motor drivers can be configured to pulse control mode or current control model. In the pulse control mode, the AC server motors are controlled in a very similar way to stepper motors, i.e., the motor shaft ration is proportional to the number of input pulses. In this case, the driver uses an internal closed loop PID controller to cancel out the loading effects so that the proportion always remains constant. This means in the pulse control mode, the robot dynamics do not need to be modelled and the robot still produces good positioning accuracy. For this advantage, the pulse control mode was employed in the current stage of development. An example testing trace obtained in the Dynalog CompuGauge platform was shown in Figure8.Figure 8
Testing trace of linear interpolation.The Dynalog CompuGauge platform can record robot motion data. A group of data for validating robot repeated positioning accuracy is given in Table7. On average of each axis, the controller gives repeated positioning accuracy within 0.05 mm.Table 7
Repeated positioning accuracy testing data.
X1Y1Z1X2Y2Z2X3Y3Z3Calculated150.917571.526115.126331.109265.102322.413−180.367650.2861.5371150.892571.493115.122331.073265.081322.292−180.412650.3831.5322150.934571.491115.121331.082265.088322.381−180.404650.3741.5243150.946571.497115.067331.108265.093322.448−180.395650.3281.5314150.936571.501114.944331.162265.149322.383−180.406650.3321.5225150.967571.52114.939331.235265.202322.354−180.405650.3751.4476150.954571.456115.115331.16265.205322.295−180.372650.2841.5337150.957571.486115.159331.176265.106322.331−180.394650.2631.4328150.965571.494115.109331.11265.136322.233−180.397650.2621.3759150.875571.468114.975331.104265.125322.385−180.408650.2771.47710150.874571.496115.004331.031265.049322.369−180.399650.3291.344Mean150.930571.490115.056331.124265.123322.347−180.399650.3211.472Deviation−0.0130.0360.071−0.015−0.0210.0660.032−0.0350.065Standard deviations0.0362280.0175990.0823920.0592830.0510620.0611110.0112230.0470840.06996


## 6. Conclusions

This paper has investigated the structural variations in industrial 6R robots with the aim of developing open architecture 6R robot controller. The main results of the paper are summarized below:(1)
The analysis employed a classic Puma560 DH modelling approach but introduced more link offset and length parameters to suit different robot types. The major newly derived equations include equations (8)–(10), (14)–(16), (20)–(22).(2)
The forward and inverse kinematic models have been developed and can apply to different robot types by modifying structural parameters.(3)
Model validations have been carried out for Puma560, ABB IRB120, and ABB IRB1600 and showed satisfactory results.(4)
The forward model outputs have been compared with ABB Robot Studio and MATLAB Robotics Toolbox and showed good consistency.(5)
The inverse model outputs have been calculated in Python software and compared thoroughly to prove the validity of the model.(6)
The model was employed on an open architecture controller based on ARM and DSP, and the average accuracy of each axis is within 0.05 mm.The development of the kinematic models makes it possible to construct an advanced open architecture robot controller, which can adapt to different robot types and the environment with minimum changes in the control software. This progress would benefit small or medium robot manufacturers in the future.



---

*Source: 4516109-2021-03-16.xml*