^{*}

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

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.

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 [

Many researchers have improved the performance of the impedance control and expanded the application range since it was primarily proposed by Hogan [

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 [

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

The dynamic model of the three-DOF finger can be expressed as follows:
_{f} and _{ext} represent the joint torque vector, friction torque vector and external torque vector respectively. _{ext} is given by [_{t} = [ _{tx} _{ty} _{tz}]^{T} represents the fingertip force. _{m} is defined as the motor torque vector. Then there should be a certain relationship between _{m}, which is shown as follow.

Firstly, for the three-DOF finger, the transformation from four tensions to three joint torques is given by [_{ij}_{1} to _{4}, as shown in _{11} = _{12} = _{13} = _{14} = 5.5 mm, _{21} = _{22} = _{23} = _{24} = 5.2 mm, _{33} = _{34} = 5.0 mm.

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

According to

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

The dynamic equation of the tendon model can be expressed as [_{0} and _{0} are respectively the initial values of the force and torque. In order to get a reasonable tendon model,

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

The trajectory generator provides the desired angular displacement _{d}, which need to be converted to the desired displacement _{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 _{d} and the actual contact force _{e} and the output is a displacement offset _{f}. And Δ_{r} = _{d} + _{f} + Δ_{r} can be converted to the angular displacement _{r} in joint-space by inverse kinematics. Δ_{r} and the actual angular displacement _{e}. The position controller can convert Δ_{d}, _{e}, _{r}, Δ_{d}, _{f}, _{r}, Δ_{d} and _{e} are three-dimensional column matrices.)

In _{1}, Δ_{2}, Δ_{3} and Δ_{4} are the input variables of the control module and represent the displacement offset of the four tendons; _{1}, _{2}, _{3}, _{4}, _{x}_{y}_{z}_{1}, _{2}, _{3} and _{4} represent the angular displacements of joints and _{x}_{y}_{z}

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 [_{d} − _{e}; _{d}, _{d} and _{d} are respectively 3 × 3 constant-positive-diagonal matrices of the desired inertial, damping and stiffness. The impedance parameters _{d}, _{d} and _{d} should keep the system in the critical damping state or overdamping state at least. And increasing _{d} will result in large impact to environment. A large _{d} can increase the response time and have no vibration. For position accurate tracking, a large _{d} should be selected [

For a classical impedance control, Δ_{f} = _{r} − _{d}. So,

According to

The key of the adaptive adjustment is to get an adaptive offset Δ_{k}_{d}_{k}_{e}_{k}_{e}_{k}_{d}_{k}_{d}, _{e}, _{e}, _{d} (_{e} represents the actual position of the fingertip in Cartesian-space). Then Δ_{k}_{p}_{d}_{d}_{k}_{e}_{k}_{p}_{d}_{p}_{d}_{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 _{d}_{0}, _{p}_{0} and _{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, _{e}ẋ_{d}_{k}_{e}_{k}_{e}_{1} = _{1}_{e}_{v}_{d}k_{e}_{1}, _{2} and _{3}

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

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

where _{i}_{−1} represents the rotation angle round _{i}_{−1} axis; _{i}_{−1} is defined as the distance from _{i}_{−1} to _{i}_{i}_{i}_{-1} to _{i}

According to

The following equations can be obtained from

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

The relational expressions between _{3} and _{4} are given by:
_{p}, _{g} and _{t} are constant, _{p} = 4 mm, _{g} = 27 mm, _{t} = 6.2 mm.

It is easy to get the solution of _{1} from _{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.

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 [

The control system is built in MATLAB using the control module, as shown in

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

From

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

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

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

Comparing the force plot of

Another simulation is carried out for the moving environment, as shown in ^{T} N, where the force on

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.

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

The authors declare no conflict of interest.

The model of the dexterous hand in ADAMS.

Force analysis between a two small cylinders of the tendon model.

The tendon model in the three-DOF finger.

The components of the control system.

The control module of the three-DOF finger in MATLAB.

The structure diagram of the impedance control compensator.

The coordinate systems buit in the finger model.

The coupled structure of the three-DOF finger.

The Control system built in MATLAB.

The desired and actual angular displacements of the 1-joint.

The desired and actual angular displacements of the 2-joint.

The desired and actual angular displacements of the 3-joint.

The finger makes contact with the environment in ADAMS.

The force tracking results when environment stiffness is 10,000 N/m.

The force tracking results when environment stiffness is 80,000 N/m.

The direction of the row is the direction of the change.

The force tracking results when environment position changed at 0.65 s.

The finger makes contact with moving environment.

The force tracking results while the environment is moving.

The D-H parameters of the robot finger.

_{i}_{−1}/(°) |
_{i}_{−1}/mm |
_{i} |
_{i} | |
---|---|---|---|---|

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

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

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

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