Control System Design of the YWZ Multi-fingered Dexterous Hand

The manipulation  abilities  of  a multi‐fingered dexterous  hand,  such  as motion  in  real‐time,  flexibility, grasp  stability  etc.,  are  largely dependent  on  its  control system.This  paper  developed  a  control  system  for theYWZ  dexterous  hand,  which  had  five  fingers  and twenty degrees of freedom (DOFs). All of the finger joints of  the YWZ dexterous handwere active  joints driven by twenty  micro‐stepper  motors  respectively.  The  main contribution of  this paper was  that we were able  to use stepper motor control to actuate the handʹs fingers, thus, increasing the hands feasibility. Based the actuators of the YWZ dexterous hand, we firstly developed an integrated circuit  board  (ICB),  which  was  the  communication hardware  between  the  personal  computer  (PC)  and  the YWZ  dexterous  hand.  The  ICB  included  a  centre controller,  twenty  driver  chips,  a  USB  port  and  other electrical  parts.  Then,  a  communication  procedure between  the PC and  the  ICB was developed  to send  the control  commands  to  actuate  the YWZ dexterous  hand. Experiment results showed that under this control system, the motion  of  the  YWZ  dexterous  hand was  real‐time; both  the motion accuracy and  the motion stability of  the YWZ dexterous hand were reliable. Compared with other types  of  actuators  related  to  dexterous  hands,  such  as pneumatic  servo  cylinder,  DC  servo  motor,  shape memory  alloy  etc.,  experiment  results  verified  that  the stepper motors as actuatorsfor  the dexterous handswere effective, economical, controllable and stable.


Introduction
The successful development of industrial robots has largely beenrelatedto the robotic end-effecters that can perform specific manufacturing and handling tasks.But, the traditional end-effecters lack the capacity to perform general object manipulation.More and more research is now paying attention to the multi-fingered dexterous hand inspired by the versatility of the human hand.Multi-fingered dexterous handsare electromechanical equipment, which include mechanical structures and control systems.The manipulation abilities of a multi-fingered dexterous hand, such as motion in real-time, flexibility, grasp stability etc., are largely dependent on its control system.So, a stable and effective control system isthe kernelfor a dexterous hand.
In recent years, several control systems have been developed for different dexterous multi-fingered hands.
The Utah/MIT hand developed by Jacobsen et al. used the pneumatic servo cylinder as the external-actuator to drive the finger joint, however, with the pneumatic servo cylinder it is difficult to achieve real-time movement of the hand [1].The Stanford / JPL hand developed by Mason et al. used 12 DC servo motors as the actuators to drive the finger joints using the servo closed loop control [2].The Hitachi hand developed by Nakano et al. used the shape memory alloy as the actuator, which has fast response and strong load capacity, but fatigueseasily and has a short of life [3].The DLR-Ⅰhand developed by Butterfass et al. used linear motors as the actuators to drive the finger joints, however, the analogue signals for themotion control reduced the motion reliability of the dexterous hand [4,5].The HIT/DLR-Ⅱ hand developed by Butterfass, Liu et al. used disc drive motors as the driven component of finger joints and the position sensors for closed loop control [6,7,8,9].
In this paper we use micro-stepper motors [10] as the internal actuators of the YWZ multi-fingered dexterous hand to analyse and test its motion characteristics, which are expected to achieve grasping accuracy, reliability, stability and real-time movement.

YWZ multi-fingered dexterous hand
We designed a full driven dexterous hand named"YWZ dexterous hand", which has five fingers and an independent palm.In addition to its thumb, the other four fingers are of the same modular mechanical structures.All of the finger joints of the YWZ dexterous handare active joints driven by twenty micro-stepper motors respectively.

Mechanical structure of the YWZ dexterous hand
The YWZ dexterous hand has 20 independent active finger joints [11].Each joint has a pair of spiral bevel gears with a 1:1 transmission ratio.In order to improve the grasp capacity of the dexterous hands, we specially designed a novel thumb, which is vertical to the palm.The thumb can be moved along the sliding groove to adjust itsinitial position and can be rotated to set its initial orientation relative to the palm.Inspired by the versatility of the human hand, each finger of the YWZ dexterous hand has three joints, including a metacarpal joint (MP), proximal joint (PIP) anddistal joint (DIP).Figure 1 shows the overall mechanism of YWZ dexterous hand.

DOFs of the YWZ dexterous hand
Each finger of the YWZ dexteroushand has four DOFs， including three bending DOFs and one swing DOF.The DIP and PIP are bending DOFs.For the MP, there is one bending DOF and one swing DOF (see Figure 2).So the YWZ dexterous hand has 20 DOFs.Every DOF is driven by one micro-stepper motor.For the forefinger, as an example (see Figure 2),motor 1 drives the bending DOF of the MP, motor 2 drives the swing DOF of the MP, the bending DOFs of the PIP and DIP are driven by motor 3 and motor 4 respectively.Table 1  All materials of theYWZ dexterous robot hand are stainless steel, so the weight of theYWZ dexterous robot hand is nearly2 kilograms, which is a little heavier thansome other dexterous robot hands.

Control system skeleton of the YWZ dexterous hand
According to the mechanical structure of the YWZ dexteroushand we chose micro-stepping motors to satisfy the finger joints' torque and speed requirements.Three types of micro-stepping motors and their parameters are listed in Table 3.The step-angle of each motor is 1.8°.
Because with stepping motorsthe torque decreases while the rotation speed increases, we need to control the rotation speed of the stepping motors in certain ranges to achieve stable torque.3. Hardware design of the control system According the control system skeleton, we designed and manufactured an integrated circuitboard (ICB) to achieve the control system functions.ICB integrates a controller, 20 driver chips, a power interface, a USB port and other electrical components.

Controller
The ATxmega128A1 is a high-performance, low-power, 78 programmable I/O ports, 8/16-bit Atmel® AVR® XMEGATM microcontroller [12], which is widely used in motor control, industrial control, factory automation and medical applications etc.In this control system, the ATxmega128A1 is used to deal with the control commands (control data) sent by the PC.The control data, such as the code of each motor, the rotation direction of each motor and the pulse numbers of each motor, are distributed to corresponding driver chips by ATxmega128A1.Then, the driver chips drive these stepper motors to realize the motion of the finger joints.
The first function of the controller is the serial communication.The controller receives the control data through the USB port, checks the control data through the cyclic redundancy check (CRC) and verifies the correctness of the control data.Next, the controller assigns the control data to 20 groups of DMOS H bridges of driver chips to realize the rotation of the stepper motors.Thirdly, the controller can adjust the rotation speed of the stepper motors by defining pulse period to achieve stable and large motor torque.Here, we set all stepper motors' rotation speedsto 5r/s .

Current protection and chip cooling of the ICB
In order to prevent the current which flows through the motor windings from becoming too large, the driver chip has an internal pulse width modulation (PWM) current control circuitry to satisfy the different currents of the different stepper motors.So we chose the value of sampling resistor (RS)as equation 1.
Here: I means the rate current, VREF means thereference voltage and RS means the sampling resistor.
The driver chip VREF is 3.3V .
Initially, the diagonal pair of source receiver (a pair of upper and lower leg T1, T4) is in the output state and current flows through the motor winding and thesample resistor(see Figure 4).The voltage on the sampling resistor increases following the increase of current.When the voltage on the sampling resistor equals the reference voltage, the current will decrease until the fixed time off t (see equation 2) is over.Then, the correct output leg will be restartedand the current in the motor winding increases again.
Here, RT means the resistor, CT means the capacitance (see Figure 4).
So PWM current control circuitry can limit the current value to a designated value and ensure the current is stable in the ranges of the limited value.
To prevent overheating of the driver chip, the driver chip integrates a low-voltage shutdown, thermal protection circuit and protective circuit of circulation.If necessary, cooling fans shall be installed to expel heat and avoid the driver chip burning out.

Physical prototype of ICB
Based on the above analysis, we welded all electrical components in a rectangle circuit board.Figure 5 shows the physical prototype of the ICB.The software design of the control system is divided into two parts.One part is the serial communication, which transfers the control data between the ICB and PC.Another is the internal procedure establishment of the ATxmega128A1, which is to implement the synchronous motion of the YWZ dexterous hand through checking and distributing the control data.Figure 6 shows the software program flow of the control system.

Serial communication between the ICB and PC
To realize the serial communication between ICB and PC, it is necessary to set the baud rate, start bit, data bit, stop bit and communication protocol etc.
The baud rate represents the data transmission rate and affects the real-time motion of the YWZ dexterous hand.
Here, we set the baud rate as 38400 / bit s , which can satisfy the synchronous motion requirements of the YWZ dexterous hand.Start bit corresponding logic "0" represents the first bit of one transmission data frame which is acquiescent.Data bit represents the length of the transmission data and we set 8 bits of the data bit.Stop bits corresponding logic "1" represents the bit of one transmission data frame and we set1 bit of the stop bits.
We set a hexadecimal data format to express the control command as the communication protocol: a1-8b1-8c1-8d1-8e1-8f1-8g1-8h1-8i1-8j1-8k1-8l1-8m1-8n1-8 o1-8p1-8q1-8r1-8s1-8t1-8wxyz.Here, 20 letters represent the 8-bit motion data of the 20 stepper motors.The 8-bit motion data is constructed as follows: The first and second bit represent the code of the stepper motor; the third and fourth represent the rotation direction of the stepper motor (01: forward, 02: reverse); The fifth, sixth, seventh and eighth bit represent the pulse numbers of the stepper motor (one pulse driving one step-angle, maximum pulse number is 65535).Character string "wxyz" is the check key of thecyclic redundancy check (CRC), the CRC can be calculated according to the data referring to the motion data of the 20 stepper motors with certain rules.
Using the Windows API and Visual C++ platform, we developed a serial communication procedure sending the control commands to the controller.In addition the controller receives and checks the control commands which must accord with the communication protocol.

Internal procedure of the controller
Using the AVR studio 4 platform we developedthe internal procedure of the ATxmega128A1 which includes external clock configuration, I/O port initialization, pulse frequency, serial communication and main program etc.
In order to achieve real-time control, we configured an external clock to provide a clock signal for the controller.The clock signal frequency is 32MHZ .For the YWZ dexterous hand a faster data processing speed can achieve a faster responding speed.The I/O port can be set in the input or output state using the I/O pins.Here, we keep the I/O port in output state.The pulse frequency is used to control the stepper motor speed with the counter of the controller.We set the pulse frequency as 1000 / s , which means the stepper motors' rotation speed is 5 / r s .We configured the baud rate as the same as that of the PC to process the serial communication.CRC is used to check the transmission data to ensure the data integrity.
Once the controller has received the control commands, the 20 counters start to count the pulse number and the controller sends the pulses to the corresponding driver chips driving the stepper motors.When the counted pulse number equals the pulse numbers of the control commands, the counter is reset and the motion of the YWZ dexterous hand is over.

Experiments
Integrating the hardware and software of the control system, we tested the motion of the YWZ dexterous hand to validate the performance of this control system.Figure 7 shows the whole testing platform, which includesthe PC, ICB, YWZ dexterous hand and external poweretc.Oncethe rotation angles of the finger joints are set, the PC sends these control data to the ICB driving the YWZ dexterous hand.Two special hand poses ("OK" hand  In the first step we measured the ideal angle values of the finger joints, which kept the YWZ dexterous hand in the ideal position of the "OK" hand pose or "V" handpose.In the second step, based on the ideal angle values, we calculated the pulse numbers.In the third step, we inputted the pulse numbers to the PC andthe PC sent the control commands to the ICB which drove the finger joints to move to the realistic position of the "OK" hand pose orthe "V" handpose.In the fourth step we measured the actual angle values of the finger joints.In the last step the angle errors of the ideal angle values and the actual angle values were evaluated, and we also analysed the motion of the YWZ dexterous handin real-time.

"OK" hand pose
For the ideal position of the"OK" hand pose, we measured the ideal finger joint angle values of the thumb and index finger.For the thumb: MP(bend) was 38.2°, MP(swing) was 0°, PIP was 63.7° and DIP was 3.1°.For the index finger: MP(bend) was 42.5°, MP(swing) was 0°, PIP was 40.4°andDIP was 19.8°.So, we calculated the pulse numbers for the corresponding stepper motors as follows: 21 pulses for motor 1, 0 pulses for motor 6, 35 pulses for motor 11, 2 pulses for motor 16, 24 pulses for motor2, 0 pulse for motor7, 22 pulses for motor12 and 11 pulses for the motor 17.
(01010015020100180000000000000000000000000000000000 0000000000000000000000000000000B0100230C0100160000 00000000000000000000100100021101000B000000000000000 000000000F6DF)was the control command sent to the ICB by the PC.When the control command was accomplished, the actual finger joint angle values were measured.Table 4 shows the errors between the ideal and actual angle values of the "OK" hand pose.Figure 8 shows the part motion scenes of the "OK" hand pose.Figure 9 shows the finger joints' motion time of the "OK" hand pose.

"V" hand pose
For the ideal position of the "V" hand pose we measured the ideal finger joint angle values of the thumb, index finger, middle finger, ring finger and little finger.For the thumb: MP (bend) was 38.3°, MP(swing) was 14.5°, PIP was63.7°,DIP was 4.2°.For the index finger: MP(bend) was 0°, MP(swing) was 13.1°, PIP was 0°, DIP was 0°; For middle finger: MP(bend) was 0°, MP(swing) was 13.4°, PIP was 0°, DIP was 0°.For the ring finger: MP(bend) was 46.9°, MP(swing) was 0°, PIP was 39.7°, DIP was 21.4°.For the little finger: MP(bend) was 43.1°, MP(swing) was 0°, PIP was 41.3°, DIP was 20.5°.So, we calculated the pulses numbers for the corresponding stepper motors as follows: 21 pulses for motor 1, 5 pulses for motor 6, 35 pulses the for motor 11, 3 pulses for motor 16, 0 pulse for motor 2, 8 pulses for motor 7, 0 pulse for motor 12, 0 pulse for motor17, 0 pulse for motor 3, 8 pulses for motor8, 0 pulse for motor 13, 0 pulse for motor 18, 26 pulses for motor 4 , 0 pulse motor for 9, 22 pulses for motor 14, 12 pulses for motor 19, 24 pulses for motor 5, 0 pulses for motor 10, 23 pulses for motor 15, 11 pulses for motor 20.  5 shows the errors between the ideal and actual angle values of the "V" hand pose.Figure 10 shows the part motion scenes of the "OK" hand pose.Figure 11 shows the finger joints' motion time of the "OK" hand pose.From tables 4 and 5 we found the angle value was smaller, the error was bigger.In particular, the error of the thumb DIP in table 4 was 19% and the error of the thumb DIP in table 5 was 26%, but their absolute differences were small, which did not affect the hand poses.The errors were caused by the assembly clearance, stepper motor shake, stepper motor resolution etc.Furthermore, we could use subdivision technology to increase the stepper motor resolution.High resolution of the stepper motor could reduce the motion errors of the YWZ dexterous hand.
From figures 9 and 11, the motion time of each finger joint was less than 40ms.The response time of the ICB was 16 ms.
The experiment results showed that stable real-time movement of the YWZ dexterous hand was achieved with this control system.

Conclusions
For controlling the full driven YWZ dexterous hand we developed a control system which included the hardware circuit and driving software.Experiment results verifiedthat both the motion errors and response time of this control system were acceptable.The main contribution of this paper was that we were able to use stepper motor control to actuate the handʹs fingers, increasing the hands feasibility, motion accuracy, stability, as well as real-time movement.This control system also avoided the complicated design of the closed loop control circuit and was reliable.

Figure 1 .
Figure 1.Mechanical structure of the YWZ dexterous hand

Figure 2 .
Figure 2. Mechanical structure of the forefinger

Figure 3 .
Figure 3.Control system skeleton of the YWZdexterous hand

Figure 4 .
Figure 4. DMOS H bridge of driver chipAccording to the stepper motor parameters, we selectedthe A3977 driver chip, whose rated voltage is 37V and rated current is 2.5A.The input signals of the A3977 driver chip are ʺSTEPʺ (step) and ʺDIRʺ (direction) signal streams to drive the stepper motor through DMOS H bridge.The A3977 driver chip has two internal DMOS H bridges,one DMOS H bridge driving one coil winding of the stepping motor.One signal of ʺSTEPʺ drives one step-angle of the stepper motor.The signal of ʺDIRʺ determines the rotation direction of the stepper motor.With reference to Figure4, the current flows from the OUT A to OUT B when T1 and T4 are turned on.Current flows from the OUT B to OUT A when T2 and T3 are turned on.So,the A3977 driver chipsaccomplish the drive of the stepper motors.

3. 3
Power supply ICB is used to drive three different types of stepper motor have the different voltage values.Four LM2596 switching voltage regulators are integrated in the ICB to unify the input power.By selecting the appropriate resistances, inductors, output capacitors, forward feed capacitors and diodes, the LM2596 can provide three different voltage values satisfying the three different types of stepper motors.

Figure 8 .Figure 9 .
Figure 8.Motion scenes of the "OK" hand pose the control command sent to the ICB by the PC.When the control command was accomplished, the actual finger joint angle values were measured.Table

Table 1 .
Relationship between micro-stepper motors and finger joints 2.3 Geometricdimensionsand weight of the YWZ dexterous handAccording to the model design method, the fingers of the YWZ dexterous hand have the same mechanical structures and geometric dimensions.The finger can be

Table 3 .
Parameters of the stepper motors

Table 4 .
Errors between ideal and actual angle values of the "OK" hand pose

Table 5 .
Errors between the ideal and actual angle values of the "V" hand pose