Keywords

1 Introduction

The cable-driven parallel robots (CDPR) or wire-robots have been recently addressed in numerous researches focusing on their advantages for implementing large spans, fast moving, lightweight and heavy-duty active spatial mechanisms. In comparison to a more general class of cable robots (e.g. spatial advanced robotized crane systems), the wire robots, especially the so called over-constrained structures, offer benefits such as ease of reconfiguration and adaptation to specific applications. Thereby the robot structures may be often changed, commonly by exchanging the working platform or varying locations of the robot wires attachments (pulleys, winches) in the space. Moreover, in specific CDPR systems, the change of common working platform or wire locations is closely related to the robot function.

Fig. 1
figure 1

STRINGMAN—patient attachments supported by lifting-system and wire-attach function (position based force/damping control)

A typical example represents the gait rehabilitation robot STRINGMAN [1]. This wire robot is unique, since its common platform interconnecting all cables represents the upper body of a patient (Fig. 1). The wires are connected to a harness carried by a patient performing gait training. The role of STRINGMAN is to provide weight suspension and gait balancing support (see [1] for more details). The procedures of patient attachments (Fig. 1) and detachments, facilitated by specific wire-tension control algorithms (based on force and impedance control) and patient lift-systems, represent a part of typical robot operations. The dimensions of the established “platform” practically vary for each patient, and efficient robot calibration and commissioning become crucial functions of the control system. Typical for the STRINGMAN are considerable inaccuracies, due to elasticity of the harness (human body attachment), which are tackled by the control system, relying on the interaction (force and impedance) control, rather than on the position control, supported by human tracking sensors (IMU, local wire-position sensors, vision etc.).

Another typical variable CDPR system requiring continuous calibration represents the so called extended-crane systems (Fig. 2). An extended-crane represents a combination of a wire robot and a conventional crane. The robot configuration is created to support task decomposition between the overhead crane (mainly performs the weight balancing and gross motion) and the side wire system (mainly responsible for fine lateral positioning and orientation). The extended crane can considerably improve flexibility and efficiency of assembly of heavy parts with complex irregular geometry. The side wires have been still applied for such operations in industrial practice but in pure manual manipulation form, to support fine-positioning of heavy parts carried by cranes. However, such repetitive operations are due to higher inertia of handling parts (ergonomic safe limit is ca. 20 kg) quite dangerous for human health and may cause serious back-pain problems. In extended crane systems the work-piece itself represents a common platform providing several attachment points. The side-wires (winches) carriers are commonly realized by mobile units with uncertain locations (Fig. 2). Fast calibration after commissioning, as well as following each new part attachment, should improve wire-robot models and model-based control.

A further example of variable structure and reconfigurable wire robot systems represent large CDPRs for agricultural applications (Fig. 3). To meet higher system flexibility and application requirements in various agricultural plants, it is convenient to implement these systems by means of mobile pillars that transport winches and platform, and can be fixed on stand-on legs at some locations to provide stable wire-robot structure [2]. The exact locations of winches thereby should be identified by calibration after system configuration/reconfiguration and commissioning.

Fig. 2
figure 2

Extended-crane system

Fig. 3
figure 3

Large wire-robots with mobile pillars for agricultural applications

Calibration, i.e. estimation of geometric and kinematic parameters of CDPRs, or in more general case of parallel robots, has been recently addressed in several researches [28]. Both system classes with characteristic structures, including closed-loops between attached legs/wires and platform, offer a specific possibility for the calibration based only on internal (proprioceptive) sensing, referred to as “implicit loop method” [3]. As remarked by Wampler et all. [2], closed-loop relations provide additional information for calibrations that are equivalent to the end-point pose measurements in convenient industrial-robots with open kinematic chains. Additionally, redundancy of over-constrained wire-robots provides supplementary information for calibration [4]. The procedures for wire-robot calibration based on “implicit loop method” and proprioceptive sensors applications (e.g. local motor rotation/sliding sensors used for control purposes) are often referred to as “self-calibration” [4, 5]. Various specific self-calibration procedures (referred to as tension- and jitter-based self-calibration) have been developed in [6] for a planar wire-robot structures, in which some wires keep the length constant while remaining wires vary length or tension.

As is well known, the self-calibration in complex (e.g. non-negligible pulleys) and large wire-robots structures described by non-linear models, including wire cable elasticity [9, 10] with considerable parameter uncertainties may become also complex and converge to local minima that provide wrong information for identification. Linearized iterative methods that include direct-kinematics in the loop [6], also in general doesn’t ensure convergence (contraction processes), producing the steps that deteriorate calibration procedure. Therefore complete identification schemes that tackle both parameter and pose uncertainties have been recently proposed [6].

In large scale robots (Figs. 2 and 3), however, the self-calibration procedure may become time-consumable and information from the external sensors can considerably improve the calibration, especially in non-linear systems with expressed cable sag and elasticity effects [8]. Thereby beside costly laser trackers [8] also relatively cheap sensors, such as cameras [3] or IMU’s [1] (with additional external sensors, i.e. closed-loop based data fusion and drift compensation) may be applied.

This paper provides novel calibration methods that combine force/impedance control with external/internal CDPR calibration, which is based on affordable sensors and quite efficient for calibration of frequently reconfigurable wire-robots. This approach is based on an explicit linearized mathematical parameter sensitivity model of complex wires structures including pulleys. To cope with large dimension and non-linearity, an approximation method based on sequential linear programming (SLP) and linear recursive approximations based on smaller calibration sub-problems [11] has been developed. Several simulation examples demonstrate the feasibility and robustness of the calibration performance against higher parametric deviations and measurement disturbances.

2 Kinematic Analysis

Kinematic models of wire-robots provides background for detailed parameter sensitivity analysis In Fig. 4, a general model of wire-robot with n-wires (i \(=\) 1,..., n) is given. In a over-constrained wire-robot structure ensuring 6DOF motion plus wires tension is \(n\ge 7\). Using the notion from (Fig. 4), the position of the ith wire platform attachment point B\(_{i}\) is defined by

$$\begin{aligned} \mathbf{p}_i =\mathbf{a}_i +\mathbf{L}_i =\mathbf{p}+\mathbf{b}_i \end{aligned}$$
(1)

where \(\mathbf{a}_i \) and \(\mathbf{b}_i \) are position vectors of pulley and platform attachment points A\(_{i}\) and B\(_{i}\) wrt. base and local platform frames respectively, \(\mathbf{p}\) is the position vector of the platform reference frame and

$$\begin{aligned} \mathbf{L}_i ={\overrightarrow{A_i C_i}} + {\overrightarrow{C_i T_i}}+\mathbf{l}_i \end{aligned}$$
(2)

where \(\mathbf{l}_i \) is the wire-length vector, while C\(_{i}\) and T\(_{i}\) denote centre of the pulley and wire tangent points (Fig. 4).

Fig. 4
figure 4

Wire-robot structure

During an arbitrary platform displacement, the wire performs a complex composite motion consisting of: transferred motion, representing the entire wire plane \(\{A_i B_i C_i T_i\}\) rotation (rolling motion of the pulley) around the fixed pulley axis \(\mathbf{e}_i \), and relative motion in the wire plane. The relative motion consists of relative translation i.e. change of the relative length in the actual cable direction (due to cable control, i.e. via a winch or linear slider mechanism (not presented in the Fig. 4), and a relative rotation of the wire around the pulley (i.e. point \(\mathrm{T}_{i}\) that represents actual pole of the velocity). Based on this analysis, the expressions for absolute wire end-point velocities and accelerations are obtained

$$\begin{aligned} {\mathbf{v}}_i ={\dot{\mathbf{p}}}_i ={{{\mathbf {\omega }}}_e}_i \times {\mathbf{L}}_i +{{{\mathbf {\omega }}}_r}_i \times {\mathbf{l}}_i +{\mathop {\mathbf{l}}\limits ^{*}}_{i} ={\mathbf{v}}_p +{{\mathbf {\omega }}}_p \times {\mathbf{b}}_i \end{aligned}$$
(3)
$$\begin{aligned} {\mathbf{a}}_i ={\ddot{{\mathbf{p}}}}_i&= {{{\varvec{\varepsilon }}}_e}_i \times {\mathbf{L}}_i +{{{\varvec{\varepsilon }}}_r}_i \times {\mathbf{l}}_i +{{{\mathbf { \omega }}}_e}_i \times ({{{\mathbf {\omega }}}_e}_i \times {\mathbf{L}}_i)+{{{\mathbf { \omega }}}_e}_i \times ({{{\mathbf { \omega }}}_r}_i \times {\mathbf{l}}_i)+{{{\mathbf { \omega }}}_r}_i\nonumber \\&\quad \times ({{{\mathbf { \omega }}}_r}_i \times {\mathbf{l}}_i) + 2({{\mathbf { \omega }}}_ei +{{{\mathbf { \omega }}}_r}_i)\times {\mathop {\mathbf{l}}\limits ^{*}}_{i} + {\mathop {\mathbf{l}}\limits ^{{*}{*}}}_i ={\mathbf{a}}_p +{{\varvec{\varepsilon }}}_p \times {\mathbf{b}}_i +{{\mathbf { \omega }}}_p \times ({{\mathbf { \omega }}}_p \times {\mathbf{b}}_i) \end{aligned}$$
(4)

where \({{{\mathbf { \omega }}}_e}_i \) and \({{{\varvec{\varepsilon }}}_e}_i \) denote pulley rotation velocity and acceleration around \({\mathbf{e}}_i \) (Fig. 5), \({{{\mathbf { \omega }}}_r}_i \) and \({{{\varvec{\varepsilon }}}_r}_i \) relative wire rotation velocity and acceleration around wire-plane normal \({\mathbf{n}}_i \), \({\mathop {\mathbf{l}}\limits ^{*}}_i \) and \({\mathop {\mathbf{l}}\limits ^{{*}{*}}}_i \) are linear wire relative velocity and acceleration due to cable length changes, \({\mathbf{v}}_p \) and \({{\mathbf { \omega }}}_p \), \({\mathbf{a}}_p \) and \({{\varvec{\varepsilon }}}_p \) are platform linear and angular velocities and acceleration vectors respectively. Relative velocity components and their directions are shown in (Fig. 5). The projections of the velocity and acceleration vectors (3, 4) into wire-length vector direction, defined by unit vector \({\mathbf{l}}_{i0} ={{\mathbf{l}}_i}/{l_i}\), i.e. scalar multiplication of these equations by \({\mathbf{l}}_{i0} \) yields the magnitudes of wire linear relative velocity

Fig. 5
figure 5

Velocity vectors components

$$\begin{aligned} {\mathop l\limits ^{*}}_i =[{\mathbf{l}}_{i0}^{\quad T}\quad -{\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{b}}_i}}] {\mathbf{t}}_p \end{aligned}$$
(5)

where \({\mathbf{t}}_p =[{\mathbf{v}}_p^{T}\quad {{\mathbf { \omega }}}_p^{T}]^{T}\) is the platform twist vector, while \(\underline{\underline{{\mathbf{b}}_i}} \) denotes skew-symmetric \(3\times 3\) matrix formed from the elements of the vector \({\mathbf{b}}_i \) in order to represent the vector product in the matrix form. Scalar multiplication of (4) by \({\mathbf{l}}_{i0} \) yields the magnitude of wire relative acceleration

$$\begin{aligned} {\mathop l\limits ^{{*}{*}}}_i =\omega _{e_i}^{2}[({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i][({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{n}}}_i)\cdot {\vec {\mathbf{l}}}_{i0}]+\omega _{r_i}^{2}l_i +[{\mathbf{l}}_{i0}^{\quad T}\quad -{\mathbf{l}}_{i0}^{\quad T}{\underline{\underline{{\mathbf{b}}_i}}}] {\dot{\mathbf{t}}}_p -\mathbf{l}_{i0}^{\quad T}{\underline{\underline{{{\mathbf {\omega }}}_p}}} {\underline{\underline{{\mathbf{b}}_i}}} {{\mathbf {\omega }}}_p \end{aligned}$$
(6)

where the first two components represent the projections of centrifugal accelerations components (corresponding to the pulley and relative wire rotations), while the remaining parts define projections of platform tangential and centrifugal accelerations into the wire directions.

The expressions for vectors of angular pulley and wire relative rotations are obtained by scalar multiplication of (3) by vectors \({\mathbf{n}}_{l_i} ={\mathbf{n}}_i \times {\mathbf{l}}_{i0} \) and \({\mathbf{n}}_i \) respectively in terms of platform twist vector

$$\begin{aligned} \omega _{e_i} =\frac{1}{({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i}[{\mathbf{n}}_i^{T}\,{-}\,{\mathbf{n}}_i^{T}{\underline{\underline{{\mathbf{b}}_i}}}]{\mathbf{t}}_p \end{aligned}$$
(7)
$$\begin{aligned} \omega _{r_i} =\frac{1}{l_i}[-{\mathbf{l}}_{i0}^{\quad T}{\underline{\underline{{\mathbf{n}}_i}}} \quad {\mathbf{l}}_{i0}^{\quad T}{\underline{\underline{{\mathbf{n}}_i}}} {\underline{\underline{{\mathbf{b}}_i}}}]{\mathbf{t}}_p \end{aligned}$$
(8)

3 Wire-Robot Jacobian and Its Time-derivative

The relationship between relative wire velocity, defining the cable length variations, and platform twist vector is defined by the wire-robot Jacobian

$$\begin{aligned} {\mathop {\mathbf{l}}\limits ^{*}} ={\mathbf{Jt}}_p \end{aligned}$$
(9)

where \(\mathop {\mathbf{l}}\limits ^{*} =[{\mathop l\limits ^{*}}_1 \ldots {\mathop l\limits ^{*}}_i \ldots {\mathop l\limits ^{*}}_n]^{T}\) and Jacobian matrix \({\mathbf{J}}\in \mathfrak {R}^{n\times 6}\) is

$$\begin{aligned} {\mathbf{J}}^{T}=\left[ {{\begin{array}{lllll} {{\mathbf{l}}_{10}}&{} \cdots &{} {{\mathbf{l}}_{i0}} &{}\cdots &{} {{\mathbf{l}}_{n0}} \\ {\underline{\underline{{\mathbf{b}}_1}} {\mathbf{l}}_{10}}&{} \cdots &{} {\underline{\underline{{\mathbf{b}}_i}} {\mathbf{l}}_{i0}} &{}\cdots &{}{\underline{\underline{{\mathbf{b}}_n}} {\mathbf{l}}_{n0}} \\ \end{array}}} \right] \end{aligned}$$
(10)

The time derivative of wire Jacobian is obtained by differentiating (9) (the same result is obtained by substituting (7) and (8) in (6))

$$\begin{aligned} \mathop {\mathbf{l}}\limits ^{{*}{*}} ={\mathbf{J}}{\dot{\mathbf{t}}}_p +{\dot{\mathbf{J}}}t_p \end{aligned}$$
(11)

where based on (10) is

$$\begin{aligned} {\dot{\mathbf{J}}}^{T}=\left[ \begin{array}{ccccc} {\dot{\mathbf{l}}}_{10} &{}\cdots &{} {\dot{\mathbf{l}}}_{i0} &{}\cdots &{}{\dot{\mathbf{l}}_{n0}} \\ {\underline{\underline{\dot{\mathbf{b}}}_1}} \mathbf{l}_{10} +\underline{\underline{{\mathbf{b}}_1}} {\dot{\mathbf{l}}}_{10} &{} \cdots &{} {\underline{\underline{\dot{\mathbf{b}}}_i}} {\mathbf{l}}_{i0} +\underline{\underline{{\mathbf{b}}_i}} {\dot{\mathbf{l}}}_{i0} &{} \cdots &{} {\underline{\underline{\dot{\mathbf{b}}}_n}} {\mathbf{l}}_{n0} +\underline{\underline{{\mathbf{b}}_n}} {\dot{\mathbf{l}}}_{n0} \\ \end{array} \right] \end{aligned}$$
(12)

Taking into account that the time derivatives of the constant intensity vectors \({\mathbf{l}}_{i0} \) and \({\mathbf{b}}_i \) (considering an ideal rigid platform) are

$$\begin{aligned} \begin{array}{l} {\dot{\mathbf{l}}}_{i0} ={{\mathbf {\omega }}}_{e_i} \times {\mathbf{l}}_{i0} +{{\mathbf {\omega }}}_{r_i} \times {\mathbf{l}}_{i0} \\ {\dot{\mathbf{b}}}_i ={{\mathbf {\omega }}}_i \times {\mathbf{b}}_i \\ \end{array} \end{aligned}$$
(13)

and substituting (7) and (8) yields

$$\begin{aligned} {\dot{\mathbf{J}}}={\mathbf{t}}_p^{T}\otimes \mathbf{J}={\mathbf{t}}_p^{T}\otimes [\mathbf{J}_1^{T}\ldots \mathbf{J}_\mathrm{i}^{T}\ldots \mathbf{J}_\mathrm{n}^{T}]^{T} \end{aligned}$$
(14)

where J is a \(n(6) \times 1 (6)\) block matrix (numbers outside parenthesis define block matrix dimension, while within parenthesis the dimension of each block-matrix element has been given), \(\otimes \) is the Kronecker’s product (each block-element of J is by \({\mathbf{t}}_p^{T}\) multiplied) and the block element \({\mathbf{J}}_\mathrm{i} \in \mathfrak {R}^{6 \times 6}\) has the form

$$\begin{aligned} \mathbf{J}_\mathrm{i} =\left[ \begin{array}{@{}ll@{}} {-\frac{1}{l_i}\underline{\underline{{\mathbf{n}}_i}} {\mathbf{l}}_{i0} {\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{n}}_i}} -\frac{1}{({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i}{\mathbf{n}}_i \mathbf{l}_{i0}^{\quad T}\underline{\underline{{\mathbf{e}}_i}}} &{} {\frac{1}{l_i}\underline{\underline{{\mathbf{n}}_i}} {\mathbf{l}}_{i0} {\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{n}}_i}} \underline{\underline{{\mathbf{b}}_i}} +\frac{1}{({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i}{\mathbf{n}}_i \mathbf{l}_{i0}^{\quad T}\underline{\underline{{\mathbf{e}}_i}} \underline{\underline{{\mathbf{b}}_i}}} \\ {-\frac{1}{l_i}\underline{\underline{{\mathbf{b}}_i}} \underline{\underline{{\mathbf{n}}_i}} {\mathbf{l}}_{i0} {\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{n}}_i}} -\frac{1}{({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i}\underline{\underline{{\mathbf{b}}_i}} {\mathbf{n}}_i \mathbf{l}_{i0}^{\quad T}\underline{\underline{{\mathbf{e}}_i}}}&{} {\frac{1}{l_i}\underline{\underline{{\mathbf{b}}_i}} \underline{\underline{{\mathbf{n}}_i}} {\mathbf{l}}_{i0} {\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{n}}_i}} \underline{\underline{{\mathbf{b}}_i}} +\frac{1}{({\vec {\mathbf{e}}}_i \times {\vec {\mathbf{L}}}_i)\cdot {\vec {\mathbf{n}}}_i}\underline{\underline{{\mathbf{b}}_i}} {\mathbf{n}}_i {\mathbf{l}}_{i0}^{\quad T}\underline{\underline{{\mathbf{e}}_i}} \underline{\underline{{\mathbf{b}}_i}} +\underline{\underline{{\mathbf{b}}_i}} \underline{\underline{{\mathbf{l}}_{i0}}}} \\ \end{array} \right] \nonumber \\ \end{aligned}$$
(15)

4 Parameter Sensitivity Model

The kinematic model sensitivity analysis provides a framework for the development of the calibration procedure. The above presented CDPR kinematic model includes several parameters definitions: robot structure (vectors  \({\vec {\mathbf{e}}}_i \)  and  \({\vec {\mathbf{a}}}_i \), pulley radius \({ r}_{i})\), platform dimension, i.e. wire attachment points (vectors  \({\tilde{\vec {\mathbf{b}}}}_i \), where \(\widetilde{\cdot }\) -denotes vectors in local-platform coordinate systems), and variable platform position and rotation vectors  \({\mathbf{x}}_p =[{\mathbf{p}}_p^{T}\quad {\mathbf{o}}_p^{T}]^{T}\). The rotation vector \({\mathbf{o}}_p \) takes different forms dependent on selected rotation presentation (e.g. axis-angle, Cardan-, Euler- etc. angles). The measurable wire length \({ s}_{i}\), on a sliding- or a winch drive, consists of the active wire-length \(l_i \) and the pulley arc of the contact length (Fig. 6). The basic kinematic relationships for the calibration thus include

$$\begin{aligned} \begin{array}{l} s_i =r_i \delta _i +l_i \\ {\mathbf{p}}_i ={\mathbf{a}}_i +{\mathbf{L}}_i ={\mathbf{p}}+{\mathbf{b}}_i ={\mathbf{p}}+\mathbf{{R}}{\tilde{\mathbf{b}}}_i \\ {\mathbf{L}}_i =\overrightarrow{A_i C_i}+\overrightarrow{C_i T_i}=r_i \left[ {\vec {e}_i \times \vec {n}_i -\frac{1}{l_i}l_i \times \vec {n}_i} \right] \\ \end{array} \end{aligned}$$
(16)

where \(\delta _i =\prec A_i T_i \) is the circular segment angle between points \({ A}_{i}\) and \({ T}_{i}\) (see Fig. 6). The kinematic loop closure between two wire chains i and j over the platform requires additionally

$$\begin{aligned} {\mathbf{a}}_i -{\mathbf{a}}_j +{\mathbf{L}}_i -{\mathbf{L}}_j ={\mathbf{R}}({\tilde{\mathbf{b}}}_i -{\tilde{\mathbf{b}}}_j) \end{aligned}$$
(17)

The kinematic model parameters (1617) uniquely define the position and orientation of platform, i.e. wire attachment points \({ B}_{i}\), in the space. By means of these parameters two basic kinematic tasks inverse (IK) and direct-forward kinematics (DK) can be solved. The IK is trivial in CDPRs, mainly based on simple geometric considerations: starting from given  \({\mathbf{x}}_p \), i.e. known \({ B}_{i}\), determining the tangent on pulley (Thales’ circle), following by computation of \(\delta _i \) and finally \(s_i \) (16). Further transformation to corresponding motor angle or linear drive position is also easy and depends on specific transmission train (Fig. 7). As well known, DK that determines platform pose starting from measured \(s_i \) appears to be more complex in parallel manipulators, and has been usually solved by iterative numeric procedures [9] optimized for real-time applications (control).

Fig. 6
figure 6

Wire transmission chains with linear sliders (left) and winches (right)

Fig. 7
figure 7

Right-triangles relationships

In the reconfigurable systems, however, the fixed wire-robot parameters (\({\vec {\mathbf{e}}}_i \), \({\vec {\mathbf{a}}}_i \), \({\tilde{\vec {\mathbf{b}}}}_i)\) are unknown or uncertain and should be estimated before operation. The linearization of (16) around an initial nominal parameter-model configuration (\({\vec {\mathbf{e}}}_{i0} \), \({\vec {\mathbf{a}}}_{i0} \), \({\tilde{\vec {\mathbf{b}}}}_{i0})\) and an initial model pose (\({\mathbf{p}}_0 \), \({\mathbf{R}}_0)\) yields

$$\begin{aligned} \Delta {\mathbf{a}}_i +\Delta {\mathbf{L}}_i&=\Delta {\mathbf{p}}+\mathbf{{R}}_0 \;\Delta {\tilde{\mathbf{b}}}_i +\underline{\underline{\Delta {\mathbf{o}}}} \;{\mathbf{R}}_0 {\tilde{\mathbf{b}}}_{i0} \nonumber \\ \Delta s_i&=r_i \Delta \delta _i +\Delta l_i \end{aligned}$$
(18)

where \(\underline{\underline{\Delta {\mathbf{o}}}} \) represents skew-symmetric matrix of infinitesimal platform rotations. The above equations provide a framework for a complete identification concerning both parameter and pose uncertainties.

The efficiency of the calibration can be improved by considering explicit dependency between wire-robot parameters (\({\vec {\mathbf{e}}}_i \), \({\vec {\mathbf{a}}}_i \), \({\tilde{\vec {\mathbf{b}}}}_i)\) and cable length \(\Delta l_i \) (\(\Delta s_i)\) deviations

$$\begin{aligned} l_i =l_i \left( {{\mathbf{a}}_i ,{\tilde{\mathbf{b}}}_i ,{\mathbf{e}}_i ,{\mathbf{p}},\mathbf{{o}}} \right) =l_i \left( {{\mathbf{a}}_i ,{\tilde{\mathbf{b}}}_i ,{\mathbf{e}}_i ,{\mathbf{x}}} \right) \end{aligned}$$
(19)

and

$$\begin{aligned} dl_i&=\frac{\partial l_i}{\partial {\mathbf{x}}^{T}}d{\mathbf{x}}+\frac{\partial l_i}{\partial {\tilde{\mathbf{b}}}_i^{T}}d{\tilde{\mathbf{b}}}_i +\frac{\partial l_i}{\partial {\mathbf{a}}_i^{T}}d{\mathbf{a}}_i +\frac{\partial l_i}{\partial {\mathbf{e}}_i^{T}}d{\mathbf{e}}_i \nonumber \\ \Delta l_i&=\frac{\partial l_i}{\partial {\mathbf{x}}^{T}}\Delta {\mathbf{x}}+\frac{\partial l_i}{\partial {\tilde{\mathbf{b}}}_i^{T}}\Delta {\tilde{\mathbf{b}}}_i +\frac{\partial l_i}{\partial {\mathbf{a}}_i^{T}}\Delta {\mathbf{a}}_i +\frac{\partial l_i}{\partial {\mathbf{e}}_i^{T}}\Delta {\mathbf{e}}_i \end{aligned}$$
(20)

The relationship between \(\Delta l_i \) and the platform pose deviations \(\Delta {\mathbf{x}}=\left[ \begin{array}{ll} {\Delta {\mathbf{p}}^{T}} &{}{\Delta {\mathbf{o}}^{T}} \\ \end{array} \right] ^{T}\) is governed by the wire-robot Jacobian (910).

$$\begin{aligned} \frac{\partial l_i}{\partial {\mathbf{x}}^{T}}=\left[ \begin{array}{ll} {{\mathbf{l}}_{i0}^{\quad T}}&{} {-{\mathbf{l}}_{i0}^{\quad T}\underline{\underline{\mathbf{b}}} _i} \\ \end{array} \right] \end{aligned}$$
(21)

The Jacobian (10) and the equivalence between linear displacement \(\Delta {\mathbf{p}}\), i.e. \(\Delta {\mathbf{p}}_i \), and platform parameters deviations \(\Delta {\tilde{\mathbf{b}}}_i \), given by \(\Delta {\mathbf{p}}_i ={\mathbf{R}} \Delta {\tilde{\mathbf{b}}}_i \), yields

$$\begin{aligned} \frac{\partial l_i}{\partial {\tilde{\mathbf{b}}}_i^{T}}={\mathbf{l}}_{i0}^{\quad T} \end{aligned}$$
(22)

The partial derivatives of \(l_i \) with respect to remaining parameter vectors may be computed based on the geometrical relations in right triangles (Fig. 7)

$$\begin{aligned} l_i^{2}&=\overline{C_i B_i} ^{2}-r_i^{2} \nonumber \\ \overline{C_i B_i}^{2}&=\left( {{\mathbf{L}}_i \cdot {\mathbf{e}}_i} \right) ^{2}+\left( {({\mathbf{L}}_i \times {\mathbf{e}}_i)\cdot {\mathbf{n}}_i -r_i} \right) ^{2} \nonumber \\ L_i^{2}&=\left( {{\mathbf{L}}_i \cdot {\mathbf{e}}_i} \right) ^{2}+\left( {({\mathbf{L}}_i \times {\mathbf{e}}_i)\cdot {\mathbf{n}}_i} \right) ^{2} \end{aligned}$$
(23)

yielding

$$\begin{aligned} l_i^{2}=L_i^{2}-2 \left( {({\mathbf{L}}_i \times {\mathbf{e}}_i)\cdot {\mathbf{n}}_i} \right) ^{2} \end{aligned}$$
(24)

From (2324), considering generalized partial derivative transformation

$$\begin{aligned} \frac{\partial l_i}{\partial {\mathbf{u}}_i^{T}}=\frac{\partial \left( {l_i^{2}} \right) ^{1/2}}{\partial {\mathbf{u}}_i^{T}}=\frac{1}{2l_i}\frac{\partial \left( {l_i^{2}} \right) }{\partial {\mathbf{u}}_i^{T}}=\frac{1}{2l_i}\frac{\partial \left( {L_i^{2}-2r_i \left( {{\mathbf{L}}_i \times {\mathbf{e}}_i} \right) \cdot {\mathbf{n}}_i} \right) }{\partial {\mathbf{u}}_i^{T}} \end{aligned}$$
(25)

and taking into account the relationships

$$\begin{aligned} \frac{\partial L_i^{2}}{\partial \mathbf{a}_i^{T}}=-2{\mathbf{L}}_i^{T}\;\mathrm{and}\;\frac{\partial \left( {\left( {{\mathbf{L}}_i \times {\mathbf{e}}_i } \right) \cdot {\mathbf{n}}_i} \right) }{\partial {\mathbf{a}}_i^{T}}=- \left( {{\mathbf{e}}_i \times {\mathbf{n}}_i} \right) ^{T} \end{aligned}$$
(26)

yields the desired partial derivatives with respect to \({\mathbf{a}}_i \)

$$\begin{aligned} \frac{\partial l_i}{\partial {\mathbf{a}}_i^{T}}=\frac{1}{l_i}\left( {-{\mathbf{L}}_i^{T}+r_i ({\mathbf{e}}_i \times {\mathbf{n}}_i)^{T}} \right) =-\frac{1}{l_i}{\overrightarrow{{C_{i}} {B_{i}}}}^{T} \end{aligned}$$
(27)

In other words, an infinitesimal variation \(\delta \) \({\mathbf{a}}_{i}\) that is orthogonal to \(\overrightarrow{{C_{i}} {B_{i}}}\) doesn’t cause the variation of the cable length \(\delta l_{i}=0\) (Fig. 8).

Fig. 8
figure 8

Geometric proof of (26)—virtual displacement in direction orthogonal to \({\vec {C_{i} B_{i}}}\) doesn’t produce wire-length changes (\(\delta l_{i}\)=0)

Finally the variations \(\delta {e}_{i}\) which are compatible with other constraints (small rotations of e\(_{i}\) around A\(_{i})\), cause

$$\begin{aligned} \frac{\partial l_i}{\partial {\mathbf{e}}_i^{T}}=\frac{r_i}{l_i}\frac{{\mathbf{L}}_i^{T}{\mathbf{e}}_i}{\left( {{\mathbf{L}}_i \times {\mathbf{e}}_i} \right) \cdot {\mathbf{n}}_i}{\mathbf{L}}_i^{T} \end{aligned}$$
(28)

Due to constrained space the proof of (28), which is also based on relationship (2325), as well as on the statement that \({\mathbf{L}}_{i}\) is not changed during e\(_{i}\) variations (points A\(_{i}\) and B\(_{i}\) remain fixed) (Fig. 5), is omitted. The deviations \(\delta \) \({\mathbf{ e}}_{i}\) of pulley axes are related to small angular rotations (errors) around two orthogonal axes defined by the rotation vector \(\delta \) \({\mathbf{ o}}_{i}\) with respect to a local coordinate frame attached to the e\(_{i}\). This relationship is defined by

$$\begin{aligned} \delta e_i =\delta o_i \times e_i =\underline{\underline{\delta o_i}} {}e_i =-\underline{\underline{e_i}} {}\delta o_i =-R_i \underline{\underline{\tilde{e}_i}} {}R_i^{T}\delta o_i =-R_i \underline{\underline{\tilde{e}_i}} {}\delta \tilde{o}_i \end{aligned}$$
(29)

where “\(\sim \)” denotes vectors defined by projections into local frames, R\(_{i}\) is rotation matrix of this frame with respect to the base coordinate system. Substituting (29) into (28) defines parameter sensitivity of the \({ l}_{i}\) variations to small axis \({ e}_{i}\) deviations \(\delta {\tilde{\mathbf{o}}}_i =[{\begin{array}{lll} {\delta \tilde{o}_{ix}}&{} {\delta \tilde{o}_{iy}}&{} 0 \\ \end{array}}]\).

The parameter sensitivity model (1729) provides a framework for the development of novel calibration procedures that is described in the following.

5 Calibration Procedure

Let us consider the extended-crane system in (Fig. 9) and the large over-constrained agricultural robots (Fig. 10). In principle, the calibration starts from a new wire-robot (on the example of an extended-crane) to be configured by attaching the wires to the common-workpiece (platform). At the beginning the winches have been fixed at known but uncertain locations defined by  \({{\varvec{a}}}_{i}\) w.r.t. a base frame of reference. The crane transports the workpiece to the assembly locations and the operator can manually attach the wires using local winch force/impedance (precisely damping) control. Thereby the wire-tension, i.e. force sensors, built in all winches (see [13] for more details), including also the main crane wire, have been utilized. After attachment, the tension wire control ensures the tension of all wires that are required to fix the workpiece in a desired, but also uncertain pose \({\mathbf{x}}_{j}\) (\(=1\)...N\(_{x})\), where N\(_{x}\) denotes number of poses used in calibration. The local wires have been calibrated to provide an effective wire length measurements \({ s}_{i}\)(i \(=1\),...n) of the winches, for each pose. For the measurements of \({\mathbf{x}}_{j}\) after initial point calibration (details have been also omitted), various sensors such as IMU’s with additional drift compensation sensors (including also internal implicit wire-robot sensors and constraints equations) and Kalman-filtering techniques may be used (it is not the focus of this paper).

Fig. 9
figure 9

Configuration of an extended crane system: transportation, wires attachment and tension

During calibration the platform moves to the poses \({\mathbf{x}}_{j ,}\)for example by combining the Cartesian space jogging and wire-tension control ensuring a steady-state stable pose. A previous selection of the points (calibration experiment design ensuring some optimality criterion, see [14]), may considerably improve the quality of identification, however, it is also out of the scope of this paper.

Fig. 10
figure 10

Deviation model of a large span wire-robot

Calibration can be described briefly as the following problem. For the given set of measurements \(M=\{{\mathbf{x}}_j ,s_i ({\mathbf{x}}_j)\}\), and initial (model) parameters values \(\hat{{P}}=\{{\hat{\mathbf{{a}}}}_i ,{\hat{\tilde{\mathbf{{b}}}}}_i ,{\hat{\mathbf{{e}}}}_i\}\), identify the system parameters \(P=\{{\mathbf{a}}_i ,{\tilde{\mathbf{b}}}_i ,{\mathbf{e}}_i\}\) that in an optimal way fit the set of measurements and kinematic model constraints (1721).

The calibration procedure involves the following linear approximation steps (Algorithm 1):

  • Estimation of initial wire lengths based on the IK model

    $$ \hat{{l}}_{ij} =l_i^{-1}\left( {{\hat{\mathbf{{a}}}}_i ,{\hat{\tilde{\mathbf{{b}}}}}_i ,{\hat{\mathbf{{e}}}}_i ,{\mathbf{x}}_j} \right) $$
  • Estimation of wire active lengths based on total cable length measurements taking nominal values for the non-measurable wire contact arc \(\delta _{ij} \approx \hat{{\delta }}_{ij} \) based on

    $$ \bar{{l}}_{ij} =s_{ij} -r_i \delta _{ij} $$
  • Optimal fitting of parameters by minimizing cable length errors (squares) \(\Delta l_{ij} =\bar{{l}}_{ij} -\hat{{l}}_{ij} \). Using derived explicit sensitivity model (26) this leads to solving a linear regression problem, in the considered case

    $$ \Delta {\mathbf{a}}=inv{} \left( {{\mathbf{R}}^{T}{\mathbf{R}}} \right) {}{} {\mathbf{R}}^{T}\Delta {\mathbf{l}}_{N_j} $$

where the regression matrix \({\mathbf{R}}\in \mathfrak {R}^{\mathop N\nolimits _j \cdot n \times n\cdot 3}\) includes parameter Jacobians (10).

In the illustrative example, 20 platform measuring points have been selected nearly to the middle of the working space (which may be realized by practical tensions) (Fig. 10). Instead of an extended crane, an over-constrained robot with n=8 wires has been considered. This robot represents an example of large agricultural wire-robot (Fig. 10) with the nominal span of 100 m and relatively large parameter perturbations. For the sake of simplicity only estimation of a will be considered. For this purpose a set of the following attachment points for simulating measurements has been selected

$$ \begin{array}{llllllllll} {\mathbf{a}}_0 &{}= &{}[50 &{}-50 &{}-50 &{}50 &{}50 &{}-50 &{}-50 &{}50 \\ &{}&{}50 &{}50 &{}-50 &{}-50 &{}50 &{}50 &{}-50 &{}-50 \\ &{}&{}25 &{}25 &{}25 &{}25 &{}0 &{}0 &{}0 &{}0] \\ \end{array} $$

As initial model parameters the following vector has been selected with a relatively large initial deviation 2-norm of \(\Delta \mathrm{a(0)}\approx 4\) (m)

$$ \begin{array}{lrrrrrrr} {\hat{\mathbf{a}}}= &{}[46.9980 &{}-52.3952 &{}-51.0638 &{}51.9303 &{}48.0770 &{}-51.5475 &{}-50.4222 \\ &{}48.1406 &{}52.0706 &{}47.5845 &{}-53.0748 &{}-50.4700 &{}52.5282 &{}53.4440 \\ &{}-50.2576 &{}-48.4173 &{}22.3897 &{}28.2407 &{}26.6444 &{}22.3588 &{}-2.8097 \\ &{}&{}&{}&{} &{}-3.4949 &{}1.3985 &{}2.3109] \\ \end{array} $$

If we neglect the position measurements errors (ideal sensors case), the Algorithm 1 converges very fast, reducing the initial errors after only few steps to 2-norm \(\Delta \mathrm{a}\approx 10^{-10}\)(m). The cable length (and contact arc angles \(\delta _{ij})\) residuum become also almost nullified.

However, this is a very simplified case that doesn’t meet the practice, since the platform position measurements are also erroneous. Therefore the position errors have been randomly added to any measurements with again relative large errors, with uniform distribution errors and 2-norm \(\Delta x(0)\approx 0.04\) (m). When the errors have been included, the linear regression fitting converges to an optimum with relatively large deviations and 2-norm \(\Delta \mathrm{a(4)}\approx 0.1987\) (m). Thereby relatively large residuum’s of cable lengths 2-norm \(\Delta \mathrm{l(4)}\approx 0.0415\)(m) (often of the same order as initial \(\Delta {\mathbf{x}})\) has been achieved, where the index in parenthesis denotes number of iterations.

These residua cannot be reduced by further iterations since a local optimum has been reached. In order to advance the calibration, a logical improvement may be the estimation of both \(\Delta {\mathbf{a}}\) and position errors measurements \(\Delta {\mathbf{x}}\). However, this leads to a large linear optimization problem with commonly very bad conditioning and scaling of the regressor. The linear constrained fitting algorithms may limit parameters exploding, however, bad convergence and numerical errors remains typical problems. In order to tackle these limitations, a next sequential optimization step has been proposed.

The aim of the next sequential sub-estimation step (Algorithm 2) is to

  • identify position errors by means of the wire robot Jacobian and thus to reduce (commonly after next few steps 2-norm \(\Delta \mathrm{l}<0.0001\)(m);

  • reduce further the residuum \(\Delta \mathrm{a}\) by performing sequential optimization with more stable fitting of smaller problems. Thereby both \(\Delta {\mathbf{x}}\) and \(\Delta {\mathbf{a}}\) gradients have to be computed iteratively.

As a result the cable length error can be considerably improved, while \(\Delta {\mathbf{a}}\) reduction remains usually not significant (0.10 m) (dependent on selected start points).

To remove further \(\Delta {\mathbf{a}}\) errors, finally the following sub-problem has to be solved (Algorithm 3)

  • self-calibration by checking all possible closed loops with the wires based on (17–19) (there are totally 28 loop closure equations for each point in the considered case).

After this step finally the typical results have been achieved: 2-norm \(\Delta {\mathbf{a}}<0.01\) (m), while 2-norm \(\Delta {\mathbf{l}}<10^{-4}\)(m) has been kept small by iterative position errors estimations.

Commonly all the above Algorithms steps require a few iterations (4–6) representing smaller sub-problems and are quite suitable for real-time applications.

$$ \begin{array}{lrrrrrrr} {\mathbf{a}}= &{}[50.0032 &{}-49.9968 &{}-49.9968 &{}50.0032 &{}50.0032 &{}-49.9968 &{}-49.9968 \\ &{}50.0032 &{}49.9905 &{}49.9905 &{}-50.0095 &{}-50.0095 &{}49.9905 &{}49.9905 \\ &{}-50.0095 &{}-50.0095 &{}25.0025 &{}25.0025 &{}25.0025 &{}25.0025 &{}0.0025\\ &{}&{}&{}&{} &{}0.0025 &{}0.0025 &{}0.0025] \\ \end{array} $$

It is worth mentioning that the calibration of pulley axes orientation errors \(\delta {\tilde{\mathbf{o}}}_i \) appears to be sensitive to the wire contact arc \(\delta _{ij} \approx \hat{{\delta }}_{ij} \) errors which are not measurable. Therefore the calibration of these angles based on both parameter sensitivity model and internal loop closure must be performed synchronously.

6 Conclusion

This paper has presented the detailed modeling of wire-robot kinematic models parameter sensitivity and application for calibration in general wire-robot systems with pulley elements. The novel algorithms include exact mathematical models to avoid complex numerical procedures and apply sequential gradient methodology to cope with large parameters fitting and bad conditioning problems.

The developed calibration procedures appear to be especially effective for variable structure CDPR systems, which cover classes of robots in which the common robot platform represents a working object to be manipulated, itself. Such systems are typical in novel CDPRs referred as extended-cranes wire robots under development at IPK. An illustrative example presents the performance of the developed calibration algorithms for large-scale cable robots with relatively higher parameter uncertainities.

The future work will focus on implementation in the mock-up extended crane system of which a presentation has been planned in September 2014.