## 3 Calibration Method
### The Calibration Model  
Since the proposed calibration method aims at redundantly-actuated CDPRs, i.e., the driving cable number \(m\) is larger than the robot DOF \(n\), the differential equations Equation (7) can be separated into two parts: one part is an \(n\) by \(n\) square matrix, and the other part is an \((m-n)\) by \(n\) matrix, specifically expressed as follows:  
\[J_{C}d\mathbf{X}=B_{C}, \tag{10}\]  
\[\mathbf{J}_{M}d\mathbf{X}=\mathbf{B}_{M}, \tag{11}\]  
where:  
\[\mathbf{J}_{Cij}=\frac{\partial f_{i}}{\partial p_{j}},(i=1,...n;j=1,...n), \tag{12}\]  
\[\mathbf{J}_{Mij}=\frac{\partial f_{i}}{\partial p_{j}},(i=n+1,...m;j=1,...n), \tag{13}\]  
\[\mathbf{B}_{Ci}=-\left(\frac{\partial f_{i}}{\partial^{c}\mathrm{A}_{i}}d^{c} \mathrm{A}_{i}+\frac{\partial f_{i}}{\partial^{c}\mathrm{B}_{i}}d^{c} \mathrm{B}_{i}+\frac{\partial f_{i}}{\partial\theta_{i}}d\theta_{i}+\frac{ \partial f_{i}}{\partial d_{i}}dd_{i}\right),(i=1,...n), \tag{14}\]  
\[\mathbf{B}_{Mi}=-\left(\frac{\partial f_{i}}{\partial^{c}\mathrm{A}_{i}}d^{c} \mathrm{A}_{i}+\frac{\partial f_{i}}{\partial^{c}\mathrm{B}_{i}}d^{c} \mathrm{B}_{i}+\frac{\partial f_{i}}{\partial\theta_{i}}d\theta_{i}+\frac{ \partial f_{i}}{\partial d_{i}}dd_{i}\right),(i=n+1,...m). \tag{15}\]  
It is worth noting that the winch diameters \(d_{i}(i=1,...m)\) are constant. Thus, the \(dd_{i}\) in Equation (11) is zero. However, two cases should be considered for the motor rotary angles \(\theta_{i}\). For angles \(\theta_{1}\sim\theta_{n}\), they are controlled by the robot controller. Assuming the control error is negligible, \(d\theta_{1}\sim d\theta_{n}\) in Equation (11) should be zeros. \(d\theta_{n+1}\sim d\theta_{m}\) are approximate instead of the difference between the theoretical length of cables and the real length of measuring cables measured by internal motor encoders. However, for angles \(\theta_{n+1}\sim\theta_{m}\), they are the measuring data obtained by the encoders of these corresponding motors. Thus, the \(\theta_{n+1}\sim\theta_{m}\) in Equation (11) must remain. Therefore, \(\mathbf{B}_{C}\) and \(\mathbf{B}_{M}\) can be simplified to:\[\mathbf{B}_{Ci}=-\left(\frac{\partial f_{i}}{\partial^{e}\mathsf{A}_{i}}d^{e}\mathsf{A} _{i}+\frac{\partial f_{i}}{\partial^{e}\mathsf{B}_{i}}d^{e}\mathsf{B}_{i} \right),(i=1,...n) \tag{16}\]  
\[\mathbf{B}_{Mi}=-\left(\frac{\partial f_{i}}{\partial^{e}\mathsf{A}_{i}}d^{e} \mathsf{A}_{i}+\frac{\partial f_{i}}{\partial^{e}\mathsf{B}_{i}}d^{e}\mathsf{ B}_{i}+\frac{\partial f_{i}}{\partial\theta_{i}}d\theta_{i}\right),(i=n+1,...m) \tag{17}\]  
Then, substitute Equations (10) and (11):  
\[\mathbf{J}_{\text{M}}\cdot\mathbf{J}_{\text{C}}{}^{-1}\cdot\mathbf{B}_{\text{C}}=\mathbf{B}_{M}, \tag{18}\]  
where \(\mathbf{J}_{\text{M}}\), \(\mathbf{J}_{\text{C}}{}^{-1}\), \(\mathbf{B}_{\text{C}}\), and \(\mathbf{B}_{M}\) are detailed in Equations (12), (13), (15) and (16). By noting \(\mathbf{d}\mathbf{q}\) as a vector containing all the unknown parameters to be calibrated, i.e., the coordinates of the attachment points on the fixed base and the moving platform \(\mathbf{d}\mathbf{q}=\left[d^{e}\mathsf{A}_{1},d^{e}\mathsf{A}_{2},d^{e}\mathsf{A}_{ 3},\cdots,d^{e}\mathsf{A}_{m},d^{e}\mathsf{B}_{1},d^{e}\mathsf{B}_{2},d^{e} \mathsf{B}_{3},\cdots,d^{e}\mathsf{B}_{m}\right]^{\mathsf{T}}\), Equation (18) can be rearranged to the following form:  
\[\mathbf{J}_{err}\cdot\mathbf{d}\mathbf{q}=d\mathbf{\theta} \tag{19}\]  
where \(\mathbf{J}_{err}\) is called the error Jacobian matrix, which has \((m-n)\) lines and \(r\) columns and \(r\) represents the number of the unknown parameters to be calibrated. The \(\mathbf{\theta}\) represents the vector of motor angles used for measurement, which consists of \((m-n)\) components.