## 3 Kinematic Parameter Identification Method
### Parameter Identification with an Improved PSO Algorithm  
After the objective function is determined, another important problem is to select a proper kinematic parameter identification algorithm to minimize the objective function. Most of the conventional kinematic parameter identification algorithms in kinematic calibration are based on the derivative of the objective function. As shown in Equations (13)-(18), for the given actual kinematic parameter vector \(\mathbf{\rho}\), the pose \(\mathbf{p}_{i}\) at the \(i\)th identification point can be computed by the global Newton-Raphson algorithm with the forward kinematics. Therefore, the objective function \(L\) cannot be expressed as an analytic formula of the actual kinematic parameter vector \(\mathbf{\rho}\). Furthermore, the derivative of the objective function \(L\) cannot also be analytically expressed. The PSO algorithm, which is proposed by [PERSON] and [PERSON] [55], can be used to solve the optimization problem with multiple variables. The basic idea of the PSO algorithm is to find the optimal solution by cooperation and information sharing among individuals in the group. The PSO algorithm has no restrictions on the derivation and continuity of the objective function, which is suitable for the discrete optimization problem. It is well known that the PSO algorithm has few parameters to be adjusted and a simple iterative process. Hence, the PSO algorithm can be directly used to identify the actual kinematic parameters of the parallel robot. The identification process based on the PSO algorithm is described as follows:  
The dimensionality space of the actual kinematic parameter Identification of the parallel robot is represented by \(d\) (\(d\) = 42), and the population space \(\mathbf{X}\) (\(\mathbf{X}\) = [\(\mathbf{X}_{1}\)\(\mathbf{X}_{2}\)\(\ldots\)\(\mathbf{X}_{N}\)]) includes \(N\) random particles. A feasible solution to the actual kinematic parameter identification of the parallel robot can be expressed as \(\mathbf{X}_{i}\) (\(\mathbf{X}_{i}\) = [\(x_{i1}\)\(x_{i2}\)\(\ldots\)\(x_{id}\)]), which describes the position of particle \(I\) in the search space. The fitness value of particle \(I\) can be computed by using Equation (22) and expressed as \(E(\mathbf{X}_{i})\). The position update of particle \(I\) can be performed by using Equation (23). \[\mathbf{X}_{i}^{t+1}=\mathbf{X}_{i}^{t}+\mathbf{V}_{i}^{t+1} \tag{23}\]  
where \(t\) (\(t\) = 1, 2, \(\ldots\), G) is the iterative number, G is the maximum iterative number, and \(\mathbf{V}_{i}\) (\(\mathbf{V}_{i}\) = [\(v_{i1}\)\(v_{i2}\)\(\ldots\)\(v_{id}\)]) represents the velocity of particle \(i\). The velocity update of particle \(I\) can be performed by using Equation (24). \[\mathbf{V}_{i}^{t+1}=w^{t}\mathbf{V}_{i}^{t}+c_{1}r_{1}\big{(}\mathbf{P}_{i}^{t}-\mathbf{X}_{i }^{t}\big{)}+c_{2}r_{2}\Big{(}\mathbf{P}_{g}^{t}-\mathbf{X}_{i}^{t}\Big{)} \tag{24}\]  
where \(w\) is the inertia weight which represents the inheritance of the current velocity, \(c_{1}\) is the local learning factor, \(c_{2}\) is the global learning factor, \(r_{1}\) and \(r_{2}\) are random numbers between 0 and 1, \(\mathbf{P}_{i}\) (\(\mathbf{P}_{i}\) = [\(p_{i1}\)\(p_{i2}\)\(\ldots\)\(p_{id}\)]) is the local optimal position vector, and \(\mathbf{P}_{g}\) (\(\mathbf{P}_{g}\) = [\(p_{g1}\)\(p_{g2}\)\(\ldots\)\(p_{gd}\)]) is the global optimal position vector. The actual kinematic parameter identification process based on the PSO algorithm begins with the initialization of a set of random particles, after which the fitness value of each particle is calculated so that the best of these fitness values is recorded as the global optimum. Thereafter, the position and velocity of each particle in each iteration are modified based on Equations (23) and (24). Next, the new fitness value of each particle is compared with the current global optimum fitness value, and the global optimal position vector is updated.