The Control of Tendon-Driven Dexterous Hands with Joint Simulation

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.


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 OPEN ACCESS 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][3][4][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.

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: where 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]: where 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] where 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: (4) where d represents the screw pitch of the lead screws. 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]: where 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.

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.  Figure 5. The control module of the three-DOF finger in MATLAB.
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.

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:  [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 dk , f ek , x ek and x dk 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]: where g(t) is an auxiliary signal which contains the integral term; k p (t) and k d (t) are respectively the adaptive proportional and derivative force feedback gain; e(t) = f dk − f ek . 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: where ω 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 d0 , k p0 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, () et is replaced by  (9) and (10), where x(t) = x dk − x ek 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: where λ 1 = γ 1 k e , ω v = ω d k e ; σ 1 , σ 2 and σ 3 are small positive constants.

Inverse Kinematics Solver
The 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: (12) where: 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.  where ρ, r p , L g and r t are constant, ρ = 1.52 rad, r p = 4 mm, L g = 27 mm, r t = 6.2 mm.

A A A A A A
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.

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]: where R is defined in Equation (3); Δl and Δθ are defined in Section 3.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:

The Position Control
In the free space, the finger motion is controlled by the position controller. From Figures 10-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.

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.  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.

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.

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.