1 Introduction

Using robots in well structured and defined environments has taken place for decades, in such environments robots perform repetitive tasks with high precision and speed. However, there are more demanding tasks that have to be performed in unstructured and non-deterministic environments. In such conditions, the robots must adapt to changing and uncertain conditions, which implies providing the robot with multiple sensors and more sophisticated control schemes [1]. One way to deal with robot applications in unstructured environments is by introducing a human in the loop, such that the human provides the robot with the skill to take fast decisions and to adapt to the environment, this idea gives rise to the so called collaborative robots (cobots), which are nonholonomic passive systems entitled to interact with human operators [2,3,4]. Automotive industry [3], surgery [5], training devices [2] and rehabilitation [6] are some applications where cobots have been used.

Cobots’ operation principle is based on creating virtual guiding surfaces, for that purpose, continuously variable transmissions (CVTs) connected to the joints of the links conforming the kinematic chain are used [3, 7]. A figure representing the operating principle of a human-cobot system (cobotic system) is shown in Fig. 1. In a cobotic system, the system perfomance depends on a shared control, where the human operator exerts the whole movement force and the cobot provides a virtual guiding surface. Virtual guiding surfaces are implemented by means of continuously variable transmissions (CVT) that constrain the velocity rate among the joints of the kinematic chain [4]. There exist different kinds of CVT, for example the passively adaptative rotary-to-linear CVT [8], nevertheless, for cobotic systems, the spherical CVT and the CVT based on differential gear trains are the most used [3, 4].

Fig. 1
figure 1

Operating principle of a cobotic system

In order to constrain the velocity rate among the joints of the kinematic chain, drive motors directly connected to the input of the CVT are used. For cobotic systems, if the drive motor (control action) is not active, then the transmission rate between one joint and the following joint is fixed, so the pair of joints behaves like a one degree of freedom mechanism along a fixed path. By activating the control system (drive motor), the transmission rate in the CVT can be controlled, implying that a desired path can be imposed. That is, cobots are passive devices where the human operator supplies the force to the system to perform the entrusted task [3, 4].

Different control schemes for cobotic systems in order to control the drive motor directly connected to the CVT have been proposed. In [9, 10], path following controllers for assistance cobotic systems with rolling wheels as CVT are proposed. Although rolling wheels can be considered as CVT, because of the nature of their movement, the proposed controller can not be applied to spherical CVT or CVT based on differential gear trains. In [11], three control methods are presented to move the cobot as if it were unconstrained, by computing virtual surfaces that automatically adjust the CVT’s transmission ratio in order to follow a desired trajectory; however, these methods are not free of singularities, since the virtual surfaces are created in task space and the Jacobian of the manipulator is needed to obtain the transmission ratio on the CVT drive rolls. In [12], basic cobot structures and control algorithms of the CVTs are presented with a novel singularity avoidance on the transmission ratio relationship, by swapping between master and slave joint axes when the transmission ratio values tends to infinity; nevertheless, Jacobian is needed to get the required transmission ratio, and the kinematic singularity may occur due to the positions of the mechanism even though singularities are avoided on the CVT’s transmission relationship.

Other control schemes for nonholonomic manipulators not interacting with human operators have been proposed. In [13], constraints of nonholonomic gears are deeply considered for mechanical design and control of manipulators with passive joints, where an open loop and a closed loop controllers are presented for the nonholonomic manipulators. In [14], two different control approaches are presented to stabilize a three-link nonholonomic manipulator by changing the transmission ratio, using ball-gears installed at some joints of the manipulator, such that the velocities transmission of the ball-gears are automatically adjusted. In [15], a nonlinear control algorithm is used to adjust the transmission ratio of a CVT for a vehicle with spark ignition, where dynamics of the engine and the wheel is used to track a desired speed at the wheels. It is noteworthy that controllers for nonholonomic devices described in this paragraph can not be used in cobotic systems since they do not consider the direct interaction with human operators.

Based on the above, this paper presents a free singularities control method for cobotic systems. The control method is based on articular space where the Jacobian is not needed to compute the CVT transmission ratio, so, it is free of singularities. In order to avoid high values of the transmission ratio, a control method of velocity transmission ratio, based on [16], is also used.

The paper is organized as follows. In Sect. 2, a classical cobot controller and the proposed velocity controller are presented. Section 3, shows experimental results of a comparison between a classical cobot controller and the proposed velocity control. Finally, in Sect. 4, conclusions of this document are discussed.

2 Velocity Ratio Controller Applied to Cobotic Systems

For better understanding of the proposed controller and the operational principles of cobotics systems, dynamic modelling of a planar two degree of freedom cobotic system is presented. Such modelling is based on differential-algebraic equations (DAE) because the performance and operation of collaborative robots are kinematically constrained by the continuosly variable transmission [17]. Equation (1) shows the DAE model representing a planar 2-dof cobotic system with CVT based on differential gear train, where the angular displacements of the links (\(\theta \)), the mass and inertia matrix (\(M(\theta )\)), the Coriolis matrix (\(C(\theta ,\dot{\theta })\)), the friction matrix (B), the transpose of the Jacobian matrix (\(J^T\)), the force exerted by the human operator (F), the torques exerted by the differential gear train at robot joints (\(\tau \)), the sun radius of the differential gear train (\(r_s\)), the ring radius of the differential gear train (\(r_r\)) and the angular velocity control (\(\omega _s\)) are involved.

$$\begin{aligned} M(\theta ) \ddot{\theta } + C(\theta ,\dot{\theta }) \dot{\theta } + B\dot{\theta }= & {} \tau + J^T F\nonumber \\ \dot{\theta _1}(r_r + r_s) - \dot{\theta _2} r_r - \omega _s r_s= & {} 0. \end{aligned}$$
(1)

From Eq. (1), it can be deduced that the performance and operation of a cobotic system depends on the inertial parameters of the kinematic chain, the nonholonomic constraint imposed by the differential gear train, the force exerted by the human operator and the angular velocity control [17].

Fig. 2
figure 2

Cartesian trajectories diagram

In general, for fully actuated robots, synchronization of the motors to get a movement of the endpoint is advisable, nevertheless, in cobotic systems, motors are not used to actuate the joints of the system, while the endpoint trajectory control is achieved via the joint velocities [3, 4]. There exist different ways to control cobots [18,19,20], however, most of the cobot controls are based on the cobot kinetic relation between link velocities and joint velocities, the so called Jacobian, such that they are affected by singularities on this Jacobian. In this work a controller that is only based on velocity ratios between the desired and actual joint velocities is proposed, thereby being free of Jacobian singularities.

2.1 Classical Cobot Velocity Control

For the sake of comparison a standard classical control for a cobotic system is considered [18]. Following [18], the velocity control action to drive the motor of a 2-dof cobotic system with CVT is given by,

$$\begin{aligned} V_s = V (I + G_V tan(\varDelta T) + G_R \varDelta R). \end{aligned}$$
(2)

Figure 2 shows a schematic diagram of the vectors used for the cobot controller operating principle, where X is the actual position of the end effector, \(X_d\) is the desired trajectory, T is a tangential vector trough point X and \(T_d\) is a tangential vector trough point \(X_d\). Moreover, for the purposes of this document, \(V_s \in \mathbf {R}^{2 \times 1}\) is the Cartesian control velocity vector, \(V \in \mathbf {R}^{2 \times 1}\) is the actual velocity vector of the end effector, \(I \in \mathbf {R}^{2 \times 1}\) is a vector of entries with value one, \(\varDelta T \in \mathbf {R}^{2 \times 1}\) is the vector error of direction motion based on the Cartesian trajectory, \(\varDelta T = T_d - T\), \(\varDelta R \in \mathbf {R}^{2 \times 1}\) is the vector error of position motion based on the Cartesian trajectory, \(\varDelta R = X_d - X\), \(G_V \in \mathbf {R}^{2 \times 2}\) is the diagonal matrix of velocity gains and \(G_R \in \mathbf {R}^{2 \times 2}\) is the diagonal matrix of position gains.

As it was mentioned, in a cobotic system, the human operator provides the necessary force to move the whole system and the cobot controller only directs the movement of the human operator, i.e., if the human operator does not provide a force to move the system, the system remains without movement despite the control action. From Eq. (2), if the motion velocity of the human operator is zero, the actual velocity of the cobot is \(V=0\), and so \(V_s=0\), implying that the cobotic system does not move.

From kinematic equation of the cobot we can acquire the control velocity vector of the motor shaft based on Cartesian control velocity vector \(V_s\), such expression is given by Eq. (3), where \(\dot{\theta }_c \in \mathbf {R}^{2 \times 1} \) is the control velocity vector of joint shafts, and \(J^{-1} \in \mathbf {R}^{2 \times 2}\) is the inverse of the well known Jacobian matrix of a planar 2-dof robot [21].

$$\begin{aligned} \dot{\theta }_c = J^{-1} V_s \end{aligned}$$
(3)

So that, if the Jacobian matrix J loses rank, then a singularity between joint and control velocities arises.

2.2 Singularity Free Velocity Ratio Controller

Considering a 2-dof planar cobot, the proposed controller is based on the velocity relation of the end effector (second link) \(\dot{\theta }_2\), the first link \(\dot{\theta }_1\) and the angular velocity control \(\omega _s\), that is given by Eq. (1), it can be seen that by obtaining the values of \(\dot{\theta _1}\) and \(\dot{\theta _2}\), the desired angular velocity \(\omega _s\) can be computed.

From Eq. (1), the angular velocity control can be obtained from the transmission rate on the differential gear train as follows,

$$\begin{aligned} \omega _s = \frac{\dot{\theta _1}(r_r + r_s) - \dot{\theta _2} r_r}{r_s} \end{aligned}$$
(4)

which by defining the joint position vector \(\theta = \begin{bmatrix} \theta _1\\ \theta _2 \end{bmatrix}\) and thus the joint velocity vector \(\dot{\theta } = \begin{bmatrix} \dot{\theta _1}\\ \dot{\theta _2} \end{bmatrix}\) can be written in a matrix form as,

$$\begin{aligned} \begin{bmatrix} \omega _s \\ 0 \end{bmatrix}=\mathbf {A} \dot{\theta } \end{aligned}$$
(5)

where \( \mathbf {A}= \begin{bmatrix} \alpha _1&-\,\alpha _2 \\ 0&0 \end{bmatrix}\), and \(\alpha _1=\frac{r_r+r_s}{r_s}\) y \(\alpha _2 = \frac{r_r}{r_s}\).

To take into account the prescribed desired trajectory for the end point of the cobot, the desired joint velocity vector can be computed. By denoting the desired joint position and velocity vectors as \(\theta _d\) and \(\dot{\theta }_d\), the position and velocity errors can be defined as,

$$\begin{aligned} \mathbf {e_p}= & {} {\theta }_{\mathbf {d}}-{{\theta }} \end{aligned}$$
(6)
$$\begin{aligned} \mathbf {e_v}= & {} \dot{{\theta }}_\mathbf {d}-{\dot{{\theta }}}. \end{aligned}$$
(7)

Such that a controller can be proposed at velocity the level necessary to compensate for joint deviations and therefore deviations on the motion along the desired path. The velocity controller is proposed as follows,

$$\begin{aligned} \dot{{\theta }}_{\mathbf {m}} =\mathbf {A}{\dot{{\theta }}}-\varOmega [\mathbf {K_1}\mathbf {e_p}+\mathbf {K_2}\mathbf {e_v}] \end{aligned}$$
(8)

where \(\mathbf {K_1},\mathbf {K_2}\) are diagonal matrix gains, and \(\varOmega \) is a square matrix, which represents the velocity ratio control action.

Notice that the proposed velocity controller is based on measurements of the joint coordinates. Furthermore by a proper definition of \(\varOmega \) several properties can be induced on the cobot behavior. For instance it is desirable that when there is no human interaction with the cobot, the controller switches off, meanwhile when there is human interaction with the cobot, the controller must proportionally react to the error to be compensated, increasing the control action in response to a larger error and decreasing it for smaller errors. This fact means that the controller proportionally reacts to the deviation between the human motion and the desired path.

To achieve the previously described cobot behavior, \(\varOmega \) is proposed as a velocity ratio control for the CVT, the velocity ratio is defined between the desired and actual joint values, as follows,

$$\begin{aligned} C_i = \left| \frac{\dot{\theta }_{di}}{\dot{\theta _i}} \right| \end{aligned}$$
(9)

For the particular case of the 2-dof cobot shown in Fig. 3, the previous expression results in,

$$\begin{aligned} C_1= & {} \left| \frac{\dot{\theta }_{d1} (r_r + r_s)}{\omega _s r_s + \dot{\theta _2} r_r} \right| \\ C_2= & {} \left| \frac{\dot{\theta }_{d2} (r_r)}{ \dot{\theta _1}(r_r + r_s) - \omega _s r_s} \right| . \end{aligned}$$

In order to take into account the maximum transmission ratio, the above velocity ratios can be normalized as follows,

$$\begin{aligned} C_{1n}= & {} \frac{C_1}{{ Max} (C_1,C_2)} \\ C_{2n}= & {} \frac{C_2}{{ Max} (C_1,C_2)}. \end{aligned}$$

These normalized values represent the amount of velocity that each joint has to vary in order to achieve the desired velocity reference. By taking these normalized ratios, we can write \(\varOmega \) as follows,

$$\begin{aligned} \varOmega = \begin{bmatrix} \varOmega _1&\quad 0 \\ 0&\varOmega _2 \end{bmatrix} = \begin{bmatrix} 1 - C_{1n}&\quad 0 \\ 0&\quad 1 - C_{2n} \end{bmatrix} \end{aligned}$$

So, finally the velocity ratio control action to be driven by the motor is given by,

$$\begin{aligned} \dot{{\theta }}_{\mathbf {m}} = \mathbf {A}{\dot{\theta }}-\begin{bmatrix} \varOmega _1&\quad 0 \\ 0&\quad \varOmega _2 \end{bmatrix} [\mathbf {K_1}\mathbf {e_p}+\mathbf {K_2}\mathbf {e_v}] \end{aligned}$$
(10)

In the next section, a comparison between the classic cobot controller described by Eqs. (2) and (3) and the proposed cobot controller described by Eq. (10) is presented.

3 Experimental Validation

3.1 Experimental Platform and Results

The manufactured experimental prototype used to validate the proposed cobot controller is shown in Fig. 3. The links of the cobot were manufactured with aluminum 6061-T6 and the second link is connected to the differential gear train by means of a pulley-belt 1:1 transmission, with a “V" belt. Synchronization of joint velocities in order to compute the cobot control is needed, so, optical encoders directly connected to the links were used. With the optical encoders, the angular displacements and the angular velocities (computed via numerical processing of the encoder measurements) of the links were obtained.

Fig. 3
figure 3

Experimental cobot

Table 1 Physical parameters

Table 1 shows the physical parameters of the manufactured prototype, where \(L_1\) and \(L_2\) are the lenghts of the first and second links respectively, \(d_1\) and \(d_2\) are the distances to the mass center for each link, \(m_1\) and \(m_2\) are the masses of the links, \(I_1\) and \(I_2\) are the inertia moments, \(r_r\) represents the ratio of the ring gear and \(r_s\) represents the ratio of the sun gear.

Experimental validation is achieved by means of two tests. In the first test, the cobotic system (human-cobot) performs a desired circle trajectory, a comparison between the control described by Eq. (10) (proposed control) and the control described by Eq. (3) (standard cobot control) is conducted. Notice that both controllers showed very similar behavior. In the second test, the cobotic system should perform an ellipsoidal path, which brings the cobot system near a kinematic singularity. Comparison results between the proposed control and the standard cobot control, showed that the proposed one is able to deal with the kinematic singularity.

3.1.1 Circle Reference

Equation (11) shows the parametric equations of the circular reference used to validate the proposed controller, where \(t_n = \frac{2 \times \pi \times t}{t_f} - \pi \), \(t_f = 30~\hbox {s}\), while the equation components are expressed in meters and \(0 \le t \le 30\) s.

$$\begin{aligned} { xe}= & {} 0.38 + 0.08 \times \cos (t_n) \nonumber \\ { ye}= & {} -\,0.20 - 0.08 \times \sin (t_n). \end{aligned}$$
(11)

The initial conditions of the system are shown in Table 2, where \(\theta _{1}(0)\) and \(\theta _{2}(0)\) are the initial angles of the first and second links respectively and \(\dot{\theta }_{1}(0)\) and \(\dot{\theta }_{2}(0)\) are the initial angular velocities of the first and second links respectively. The initial conditions are the same for both tested controllers.

Table 2 Initial conditions for circle reference

For the standard cobot velocity control the gains are tuned as \(G_{V1} = -\,6.7523,G_{V2} = 8.6286,G_{R1}=0.0630\), and \(G_{R2} = -\,0.0843\), while for the proposed controller the gains are \(K_{11}=0.0752,K_{12}=0.0862,K_{21}=0.0050\) and \(K_{22} = 0.0050\). Figure 4 shows the cobot links angular displacement for both controllers. It can be seen that the human-cobot performance for both tests have the same pattern of motion while the operator follows the desired circle path, the link velocity profiles are shown in Fig. 5.

The human-cobot task is achieved by using any of both controllers, where for both tests, the end effector trajectories in Cartesian Space are shown in Fig. 6. The velocity control action for the motor by using both controllers it is shown in Fig. 7, where both velocity shaft profiles are within the same magnitude to accomplish the desired task.

Fig. 4
figure 4

Links displacement comparison for desired circle path

Fig. 5
figure 5

Links velocity comparison for desired circle path

Fig. 6
figure 6

End effector trajectory comparison for desired circle path

Fig. 7
figure 7

Control action comparison for desired circle path

3.1.2 Ellipsoidal Reference

As second test trajectory an ellipsoidal reference is considered, such trajectory is chosen because its relation to the measure of manipulability [22], which provides information about the quality of kinematic structure while executing a motion task. It is well know that when a robot reach a singularity, the manipulability ellipsoid degenerates, losing one of its principal axes and in such configuration the robot can not move in certain directions or stands forces. The proposed ellipsoidal trajectory forces the robot to reach a singular pose as its rightest point, which allows comparing a classical cobot control against the proposed controller that is free of kinematic singularities, see Fig. 8. As shown by the first case scenario of a circle reference, for any trajectory that is singularity free, the proposed controller renders the same performance as classical cobot controls, nonetheless at the ellipsoidal reference it is clear the advantages of our proposal. Equation (12) shows the parametric equations of the ellipsoidal path used to validate the proposed controller, where \(t_n = \frac{\pi \times t}{t_f} - \frac{\pi }{2},t_f = 20~\hbox {s}\), while the equation components are expressed in meters and \(0 \le t \le 20\) s.

$$\begin{aligned} { xe}= & {} 0.45 + 0.10 \times \cos (t_n) \nonumber \\ { ye}= & {} - 0.04 \times \sin (t_n). \end{aligned}$$
(12)

The initial conditions of the system for ellipsoidal reference are shown in Table 3, where \(\theta _{1}(0)\) and \(\theta _{2}(0)\) are the initial angles of the first and second links respectively and \(\dot{\theta }_{1}(0)\) and \(\dot{\theta }_{2}(0)\) are the initial angular velocities of the first and second links respectively. The initial conditions were the same for both tested controllers.

Fig. 8
figure 8

End effector trajectory comparison for desired ellipsoidal path

Table 3 Initial conditions for ellipsoidal reference

For the standard cobot velocity control the gains are tuned as \(G_{V1} = -7.7523,G_{V2} = 9.6286,G_{R1}=0.6063\), and \(G_{R2} = -0.0843\), while for the proposed controller the gains are \(K_{11}=0.0700,K_{12}=0.0800,K_{21}=0.0050\) and \(K_{22} = 0.0030\). The end effector trajectories in Cartesian Space are shown in Fig. 8, where it can be seen that for this test, the human-cobot task is not achieved by using the standard controller. This can be explained since the inverse of the Jacobian matrix for the standard controller cannot proplerly give a velocity control profile to be driven by the motor shaft. In contrast, since the proposed controller is designed in the Joint Space, it does not need the Jacobian Matrix to obtain the velocity control profiles to be driven for the motor.

From the above, it can be seen that the performance of the two controllers differs substantially. In these experimental tests, when the standard controller is used and the singularity occurs, the human operator losses control of the system and the human has to force the cobot to keep it without motion. In contrast, by using the proposed controller the task is achieved and there is no need to force the cobot to acomplish the desired task. Those behaviors can be seen in the angular displacements and velocity profiles for both controllers shown in Figs. 9 and 10, respectively.

Fig. 9
figure 9

Links displacement comparison for desired ellipsoidal path

Fig. 10
figure 10

Links velocity comparison for desired ellipsoidal path

Finally, Fig. 11 shows the control action comparison between both controllers. Here, it can be seen that the standard control reaches a higher velocity than that of the proposed controller. The maximum velocity is reached when the singularity occurs, nevertheless, the velocity is minimized by the force exerted by the human operator.

Fig. 11
figure 11

Control action comparison for desired ellipsoidal path

4 Conclusions

This document proposes a velocity ratio control for cobotic systems which can deal with kinematic singularities. This is an advantage compared to standard control of cobot systems that requires mapping Cartesian velocities to joint velocities through the Jacobian. An experimental comparison between the proposed control and a standard one, shows that when being far from singularities both controllers present very similar performance, however, when approaching a kinematic singularity the standard cobot control gets unstable, while the proposed velocity ratio control is able to execute the desired trajectory. Since the proposed controller allows to perform tasks that are close to kinematic singularity points, it can be said that the cobots’ workspace can be fully exploited. Also, it is important to remember that cobots’ performance mainly depends on the human operator, so, in some cases, the human operator could take the cobot to singularity points, where the proposed cobot controller could deal with such circunstamces.

Notice that the proposed controller is based on joint space rather than in Cartesian space, thus avoiding the mapping through the Jacobian matrix. Furthermore, instead of defining a velocity error between actual joint and desired velocities, a ratio is introduced, such that the goal of the control is to achieve a velocity ratio as closed as possible to one. The velocity ratio is considered based on the intrinsic properties of the CVT, where there are already several velocity ratios implied.