- freely available
- re-usable

*Sensors*
**2014**,
*14*(1),
1723-1739;
doi:10.3390/s140101723

## Abstract

**:**An adaptive impedance control algorithm for tendon-driven dexterous hands is presented. The main idea of this algorithm is to compensate the output of the classical impedance control by an offset that is a proportion-integration-differentiation (PID) expression of force error. The adaptive impedance control can adjust the impedance parameters indirectly when the environment position and stiffness are uncertain. In addition, the position controller and inverse kinematics solver are specially designed for the tendon-driven hand. The performance of the proposed control algorithm is validated by using MATLAB and ADAMS software for joint simulation. ADAMS is a great software for virtual prototype analysis. A tendon-driven hand model is built and a control module is generated in ADAMS. Then the control system is built in MATLAB using the control module. The joint simulation results demonstrate fast response and robustness of the algorithm when the environment is not exactly known, so the algorithm is suitable for the control of tendon-driven dexterous hands.

## 1. Introduction

The control system of dexterous robot hands can control the robot fingers to reach the desired position, contact with the environment and track a specified desired force. Thereinto, stable force tracking is an important research topic, which can be solved by compliance control. Impedance force control is very practical in the field of robotic compliance control and the main concept is based on the impedance equation which is the relationship between force and position/velocity error [1].

Many researchers have improved the performance of the impedance control and expanded the application range since it was primarily proposed by Hogan [2–5]. However, the classical impedance control is unsatisfying when the environment parameters are not exactly known. To overcome this problem, Lasky et al. [6] proposed a two-loop control system that the inner-loop is a classical impedance controller and the outer-loop is a trajectory modified for force-tracking. This algorithm uses the outer-loop to automatically modify the reference position by a simple force-feedback scheme when the environment is not exactly known. Jung et al. [1] proposed an adaptive impedance control. The main idea of this algorithm is to minimize the force error directly by using a simple adaptive gain when the environment is changed. Seraji [7] proposed an adaptive admittance control based on the concept of mechanical admittance, which relates the contact force to the resulting velocity perturbation. Two adaptive PID and PI force compensators are designed in Seraji's paper.

In this paper an adaptive impedance control is proposed that uses an adaptive PID force compensator as an offset to adjust the output of the impedance controller when the environment position or stiffness is changed. It is a way that adjusts the impedance parameters indirectly, which is different from Jung's. In order to validate the algorithm, a joint simulation with MATLAB and ADAMS is presented. Firstly, the model of the tendon-driven dexterous hand is built in ADAMS referring to the robot hand of Robonaut-2, which is the first humanoid robot in space and has the typical tendon-driven dexterous hands [8]. A three-DOF finger of the robot hand is chosen as the research object. Then a control module of the robot finger is generated in ADAMS. Finally, the control system is built in MATLAB using the control module. The results of the joint simulation demonstrate that the proposed algorithm is robust. In addition, the position controller and inverse kinematics solver are designed for the tendon-driven finger.

## 2. Features of the Robot Hand and Dynamic Model

The model of the tendon-driven dexterous hand in ADAMS consists of four three-DOF fingers, a four-DOF thumb and a palm, as shown in Figure 1. For the three-DOF fingers, the fingertip's motion depends on the coupled link, as shown in Figure 1. The actuation system of the robot hand is remotely packaged in the forearm, which makes the size of the robot hand as large as a man's hand. Each unit of the actuation system consists of a brushless motor and a lead screw. The lead screw can convert rotary motion to linear motion. Each of the tendons connects the finger joint and the lead screw. The motors can drive the lead screws to control the finger motion through the tendons. Since the tendons can only transmit forces in tension, the number of tendons should be more than the DOFs. It turns out that only one tendon more than the number of DOF is needed [9], so a three-DOF finger needs four tendons.

The dynamic model of the three-DOF finger can be expressed as follows:

**M**(

**q**),

**C**(

**q**) and

**g**(

**q**) represent the inertia matrix, centrifugal term, and gravity term respectively;

**q**represents the joint angle vector;

**τ**,

**τ**

_{f}and

**τ**

_{ext}represent the joint torque vector, friction torque vector and external torque vector respectively.

**τ**

_{ext}is given by [10]:

**J**represents the Jacobian matrix,

**F**

_{t}= [

**F**

_{tx}

**F**

_{ty}

**F**

_{tz}]

^{T}represents the fingertip force.

**τ**

_{m}is defined as the motor torque vector. Then there should be a certain relationship between

**τ**and

**τ**

_{m}, which is shown as follow.

Firstly, for the three-DOF finger, the transformation from four tensions to three joint torques is given by [9,10]:

**f**is a column vector consisting of four tendon tensions;

**R**represents the mapping from tensions (

**f**) to joint torques (

**τ**) and

**r**

_{ij}is the radius of the circular surface where the j-tendon envelops itself on the i-joint (The tendons are numbered from t

_{1}to t

_{4}, as shown in Figure 2), i = 1 ∼ 3, j = 1 ∼ 4. For the three-DOF finger, r

_{11}= r

_{12}= r

_{13}= r

_{14}= 5.5 mm, r

_{21}= r

_{22}= r

_{23}= r

_{24}= 5.2 mm, r

_{33}= r

_{34}= 5.0 mm.

Secondly, the relationship between the tendon tensions and motor torques is expressed as:

According to Equations (3) and (4), the Equation (1) can be rewritten as:

The above indicates that the tendons have an impact on the control of the tendon-driven robot hand. In order to simulate the performance of the tendons in ADAMS, the tendon model is built by adding bushing force between small stiffness cylinders. The force analysis between a two small cylinders is shown in Figure 2.

The dynamic equation of the tendon model can be expressed as [11]:

**F**and

**T**represent the force and torque between the cylinders respectively;

**K**and

**C**represent the stiffness diagonal matrix and damping diagonal matrix respectively;

**R**,

**θ**,

**V**and

**ω**represent the relative displacement, angle, velocity and angular velocity between the two cylinders respectively;

**F**

_{0}and

**T**

_{0}are respectively the initial values of the force and torque. In order to get a reasonable tendon model,

**K**and

**C**should be set to appropriate values. In the control of the robot hand, the tendons that are not flexible enough will affect the finger motion but the very flexible tendons will diminish the control accuracy. Considering that, the satisfying tendon models are built by adjusting the parameters of

**K**and

**C**in ADAMS [12], as shown in Figure 3.

## 3. The Control System of Tendon-Driven Dexterous Finger

#### 3.1. The Components of the Control System

The control system is built for the three-DOF finger. It consists of a control module, adaptive impedance controller, trajectory generator, inverse kinematics solver, position controller and other modules as shown in Figure 4.

The trajectory generator provides the desired angular displacement **θ**_{d}, which need to be converted to the desired displacement **X**_{d} in Cartesian-space by forward kinematics because the output of the adaptive impedance controller is in Cartesian-space. The adaptive impedance controller consists of an impedance control part and an adaptive adjustment part. The input of the impedance control part is the difference between the desired contact force **F**_{d} and the actual contact force **F**_{e} and the output is a displacement offset **X**_{f}. And Δ**X** is defined as the output of the adaptive adjustment part. **X**_{r} = **X**_{d} + **X**_{f} + Δ**X** represents the displacement that has been adjusted in Cartesian-space. **X**_{r} can be converted to the angular displacement **θ**_{r} in joint-space by inverse kinematics. Δ**θ** represents the difference between **θ**_{r} and the actual angular displacement **θ**_{e}. The position controller can convert Δ**θ** to the tendon displacement offset Δ**l**. The control module is generated in ADAMS. It is the interface between ADAMS and MATLAB and contacts the robot model in ADAMS with the control system in MATLAB. So it can be seen as a MATLAB module that has the same effect with the model in ADAMS. The control module of the three-DOF finger is shown in Figure 5 (by the way, **θ**_{d}, **θ**_{e}, **θ**_{r}, Δ**θ** and Δ**l** are four-dimensional column matrices; **X**_{d}, **X**_{f}, **X**_{r}, Δ**X**, **F**_{d} and **F**_{e} are three-dimensional column matrices.)

In Figure 5, Δl_{1}, Δl_{2}, Δl_{3} and Δl_{4} are the input variables of the control module and represent the displacement offset of the four tendons; θ_{1}, θ_{2}, θ_{3}, θ_{4}, F_{x}, F_{y} and F_{z} are the output variables, where θ_{1}, θ_{2}, θ_{3} and θ_{4} represent the angular displacements of joints and F_{x}, F_{y} and F_{z} represent the components of the contact force.

#### 3.2. Adaptive Impedance Controller

The impedance control is based on the concept that it is neither position nor force that should be controlled, but rather the dynamic relation between the two [13]. The relation is an impedance equation, which is given by:

**E**=

**F**

_{d}−

**F**

_{e};

**M**

_{d},

**B**

_{d}and

**K**

_{d}are respectively 3 × 3 constant-positive-diagonal matrices of the desired inertial, damping and stiffness. The impedance parameters

**M**

_{d},

**B**

_{d}and

**K**

_{d}should keep the system in the critical damping state or overdamping state at least. And increasing

**M**

_{d}will result in large impact to environment. A large

**B**

_{d}can increase the response time and have no vibration. For position accurate tracking, a large

**K**

_{d}should be selected [14]. According to these, the suitable impedance parameters for specified control system can be got.

For a classical impedance control, Δ**X** = 0 and **X**_{f} = **X**_{r} − **X**_{d}. So, Equation (7) can be expressed in the Laplace domain as follows:

According to Equation (8), the structure diagram of the impedance control compensator is shown in Figure 6. However, the impedance control compensator is only suitable for a specific environment and the impedance parameters can't be changed in the whole control process. If the environmental parameters changed or weren't exact, the performance of the controller would be unsatisfactory. Hence an adaptive adjustment is needed to change the impedance parameters indirectly according to the environment changes.

The key of the adaptive adjustment is to get an adaptive offset Δ**X** to compensate the output of the impedance control. Let Δx_{k}, f_{d}_{k}, f_{e}_{k}, x_{e}_{k} and x_{d}_{k} respectively represent the k-th element of Δ**X**, **F**_{d}, **F**_{e}, **X**_{e}, **X**_{d} (k = 1–3, **X**_{e} represents the actual position of the fingertip in Cartesian-space). Then Δx_{k} can be expressed as follows [7]:

_{p}(t) and k

_{d}(t) are respectively the adaptive proportional and derivative force feedback gain; e(t) = f

_{d}

_{k}− f

_{e}

_{k}. Equation (9) is a PID expression of force error in nature, so this adaptive adjustment compensator can respond quickly to the change of the force error, that is to say, to the change of the environment. It is the reason why this expression is used as the compensator of impedance control. g(t), k

_{p}(t) and k

_{d}(t) are given by:

_{p}and ω

_{d}are the positive position and velocity weighting factors respectively; α

_{1}, β

_{1}and γ

_{1}are the positive integral adaptation gains respectively; α

_{2}, β

_{2}and γ

_{2}are the positive or zero proportional adaptation gains. Let α

_{2}, β

_{2}and γ

_{2}equal to zero to simplify the expressions. And k

_{d}

_{0}, k

_{p}

_{0}and g

_{0}are the initial values and equal to zero. Since the actual contact force is measured by the force sensor, there is often a noisy signal. Therefore the derivative of the force error is unsatisfying. To solve this problem, ė(t) is replaced by −k

_{e}ẋ(t) in Equations (9) and (10), where x(t) = x

_{d}

_{k}− x

_{e}

_{k}and k

_{e}is a positive constant. In addition, σ-modification terms are used to modify the adaptive compensator to ensure the robustness of the control system [7,15]. Finally the modified expressions of the compensator are given by:

_{1}= γ

_{1}k

_{e}, ω

_{v}= ω

_{d}k

_{e}; σ

_{1}, σ

_{2}and σ

_{3}are small positive constants.

#### 3.3. Inverse Kinematics Solver

The Cartesian and joint coordinate systems are built, as show in Figure 7, where O_{0} is the Cartesian coordinate system; O_{1}, O_{2}, O_{3} and O_{4} are respectively the coordinate system of each joint.

The Denavit-Hartenberg(D-H) parameters of the robot finger are listed in Table 1.

where η_{i}_{−1} represents the rotation angle round Y_{i}_{−1} axis; L_{i}_{−1} is defined as the distance from Z_{i}_{−1} to Z_{i}; d_{i} is defined as the distance from Y_{i}_{-1} to Y_{i}.

According to Figure 7 and Table 1, the kinematics equation of the three-DOF finger is expressed as:

The following equations can be obtained from Equation (12):

In addition, there is relationship between θ_{3} and θ_{4} due to the coupled structure, as shown in Figure 8.

The relational expressions between θ_{3} and θ_{4} are given by:

_{p}, L

_{g}and r

_{t}are constant, ρ = 1.52 rad, r

_{p}= 4 mm, L

_{g}= 27 mm, r

_{t}= 6.2 mm.

It is easy to get the solution of θ_{1} from Equation (13). However, Equations (14–17) are nonlinear and the computation cost is high, which is a limitation of inverse kinematics [16]. Therefore it is not easy to get the solutions of θ_{2}, θ_{3} and θ_{4}. Since the control system is built in MATLAB, the fsovle function in MATLAB can be used to solve the nonlinear equations. The fsovle function solves the equations by the iterative method and hence the initial values of the iteration have a great influence on the simulation speed. Since the angular displacements are continuous, the current solutions can be used as the initial values of the next iteration.

#### 3.4. The Position Controller

In order to control the position of the robot finger accurately, it is necessary to get the relationship between the joint angular displacements and the tendon displacements. Due to the particular design and neglecting the tendon elasticity, the relationship can be expressed as [9,10]:

**R**is defined in Equation (3); Δ

**l**and Δ

**θ**are defined in Section 3.1.

## 4. Simulation and Analysis

#### 4.1. Simulation Setups

The control system is built in MATLAB using the control module, as shown in Figure 9. The sample time of the simulation is 0.001 s. The simulation is mainly to validate the performance of the adaptive impedance control in uncertain environment and the reasonableness of the robot finger model. The impedance parameters and the adaptive parameters are given by:

#### 4.2. The Position Control

In the free space, the finger motion is controlled by the position controller. The simulation time is set to 0.5 s. The final-desired angular displacements of the joints are [0, −0.17, −1.25]^{T} rad. Then the position controller controls the finger motion according to the desired trajectories. The results are shown in Figures 10, 11 and 12.

From Figures 10, 12 and 12, we may conclude that the actual angular displacements lag behind the desired one at the beginning. The reason is that the finger is driven by tendons which have elasticity and it takes some time for the tendons to go from slack to tight in the simulation. So, on the whole, the results are satisfactory.

#### 4.3. Uncertainties in Environment Stiffness

Firstly, the robot finger is required to track on the environment which is a cylinder and has the stiffness of 10,000 N/m. The desired contact force is [−3, 6, 0]^{T} N. The fingertip makes contact with the environment at about 0.48 s, as shown in Figure 13. The force tracking results are shown in Figure 14.

In the next simulation, the environment stiffness is modified as 80,000 N/m and other conditions remain unchanged. After rerunning, the force tracking results are shown in Figure 15.

Figures 14 and 15 show that the average error of the force tracking is both less than 0.5 N in different stiffness although the actual force is oscillating due to the tendons, so on the whole, the force tracking results are satisfying when the environment stiffness is different, that is to say, without knowing the environment stiffness information, the force control algorithm performs well.

#### 4.4. Uncertainties in Environment Position

In order to validate the robustness without knowing the environment position, let the environment position suddenly change at 0.65 s in the simulation. The change takes 0.005 s and the direction is shown in Figure 16. The displacement of the environment is 0.5 mm. The environment stiffness is 10,000 N/m and other conditions remain unchanged. The force tracking results are shown in Figure 17.

Comparing the force plot of Figure 17 with that of Figure 14 shows that the contact force changes at 0.65 s in Figure 17 due to the sudden change of environment position and the force overshoots are about 70% on x-direction and 65% on y-direction and the settling time is about 0.02 s. These demonstrate that without knowing the environment position information, the force control algorithm is robust.

Another simulation is carried out for the moving environment, as shown in Figure 18. The velocity of the environment movement is 0.025 m/s. There is dynamic friction between fingertip and environment due to the relative sliding. Hence, the desired force is set to [−3, 6, −1.88]^{T} N, where the force on z-direction is decided by friction coefficient. And the environment stiffness is also 10,000 N/m. The force tracking results are shown in Figure 19. Figure 19 shows that the environment movement has little impact on the force tracking results. This simulation demonstrates that the algorithm can perform diverse tasks.

## 5. Conclusions

In the joint simulation with ADAMS and MATLAB, the results of the position tracking and force tracking are satisfactory on the whole. In particular, the control system can keep the contact force near to expected value when the position or stiffness of the environment is uncertain, so the proposed adaptive impedance control algorithm is robust and the control system is suitable for a tendon-driven hand and the dexterous hand model built in ADAMS is reasonable. However, the tendon friction and joint friction are not considered in the robot hand model built in ADAMS. The friction can affect the control performance in practice, so the following research should build the friction model for the tendons and joints.

## Acknowledgments

This work was supported by the National Natural Science Foundation of China (Grant No. 51105196) and Natural Science Foundation of Jiangsu Province (Grant No. BK2011733).

## Conflicts of Interest

The authors declare no conflict of interest.

## References

- Jung, S.; Hsia, T.C.; Bonitz, R.G. Force tracking impedance control of robot manipulators under unknown environment. IEEE Trans. Control Syst. Technol.
**2004**, 12, 474–483. [Google Scholar] - Platt, R.; Abdallah, M.; Wampler, C. Multiple-Priority Impedance Control. Proceedings of the IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 6033–6038.
- Jung, S.; Hsia, T.C. Force Tracking Impedance Control of Robot Manipulators for Environment with Damping. Proceedings of the 33rd Annual Conference of the IEEE Industrial Electronics Society, Taipei, Taiwan, 5–8 November 2007; pp. 2742–2747.
- Chen, Z.; Lii, N.Y.; Jin, M.; Fan, S.W.; Liu, H. Intelligent Robotics and Applications; Liu, H.H., Ding, H., Xiong, Z.H., Zhu, X.Y., Eds.; Springer Berlin Heidelberg: Berlin, Germany, 2010; pp. 1–12. [Google Scholar]
- Biagiotti, L.; Liu, H.; Hirzinger, G.; Melchiorri, C. Cartesian Impedance Control for Dexterous Manipulation. Proceedings of the 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems, Las Vegas, NV, USA, 27–31 October 2003; pp. 3270–3275.
- Lasky, T.A.; Hsia, T.C. On Force-Tracking Impedance Control of Robot Manipulators. Proceedings of the 1991 IEEE International Conference on Robotics and Automation, Sacramento, CA, USA, 9–11 April 1991; pp. 274–280.
- Seraji, H. Adaptive Admittance Control: An Approach to Explicit Force Control in Compliant Motion. Proceedings of the 1994 IEEE International Conference on Robotics and Automation, San Diego, CA, USA, 8–13 May 1994; pp. 2705–2712.
- Diftler, M.A.; Mehling, J.S.; Abdallah, M.E.; Radford, N.A.; Bridgwater, L.B.; Sanders, A.M.; Askew, R.S.; Linn, D.M.; Yamokoski, J.D.; Permenter, F.A.; et al. Robonaut—The First Humanoid Robot in Space. Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 2178–2183.
- Abdallah, M.E.; Platt, R.; Wampler, C.W.; Hargrave, B. Applied Joint-Space Torque and Stiffness Control of Tendon-Driven Fingers. Proceedings of the 10th IEEE-RAS International Conference on Humanoid Robots (Humanoids), Nashville, TN, USA, 6–8 December 2010; pp. 74–79.
- Borghesan, G.; Palli, G.; Melchiorri, C. Design of Tendon-Driven Robotic Fingers: Modeling and Control Issues. Proceedings of the 2010 IEEE International Conference on Robotics and Automation, Anchorage, AK, USA, 3–7 May 2010; pp. 793–798.
- Li, H.J.; Yang, Z.J. Study on the modelling for wire rope substances in Adams. Mech. Manag. Dev.
**2007**, 4, 4–5. [Google Scholar] - Li, J.W.; Bu, C.G.; Wang, L. The application of Macro command in ADAMS in building the virtual prototype of cable drill. Mach. Tool Hydraul.
**2011**, 39, 150–153. [Google Scholar] - Heinrichs, B.; Sepehri, N.; Thornton-Trump, A.B. Position-based impedance control of an industrial hydraulic manipulator. IEEE Control Syst.
**1997**, 17, 46–52. [Google Scholar] - Sadjadian, H.; Taghiradf, H.D. Impedance Control of the Hydraulic Shoulder a 3-DOF Parallel Manipulator. Proceedings of the IEEE International Conference on Robotics and Biomimetics, Kunming, China, 17–20 December 2006; pp. 526–531.
- Ioannou, P.A.; Kokotovic, P.V. Adaptive systems with reduced models. Lect. Notes Control Inf. Sci.
**1983**, 47, 162. [Google Scholar] - Escande, A.; Mansard, N.; Wieber, P.B. Fast Resolution of Hierarchized Inverse Kinematics with Inequality Constraints. Proceedings of the 2010 IEEE International Conference on Robotics and Automation, Anchorage, AK, USA, 3–7 May 2010; pp. 3733–3738.

i | η_{i}_{−1}/(°) | L_{i}_{−1}/mm | d_{i}/mm | θ_{i}/rad |
---|---|---|---|---|

1 | 90.0 | 21 | 0 | θ_{1} |

2 | −90.0 | 9 | 0 | θ_{2} |

3 | 0 | 45 | 0 | θ_{3} |

4 | 0 | 30 | 0 | θ_{4} |

© 2014 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).