GRASP : Robotic Hand Modeling and Simulation Environment

There are number of efforts to build robotics system modeling and simulation environments using Mat lab. For example, in reference [1], a Mat lab Toolbox for the iRobot Create (MTIC) was reported. It was mentioned that, “The toolbox replaces the native low level numerical commands, with a set of high level, intuitive, Mat lab functions (aka "wrappers")” [1]. In terms of modeling complexity, furthermore, Shaoqiang et al. [2] have mentioned that, “Biped robots are often treated as inverted pendulums for its simple structure. But modeling of robot and other complex machines is a time-consuming procedure. A new method of modeling and simulation of robot based on SimMechanics is proposed”, Shaoqiang et al. [2]. Over number of years, Corke [3], has been working towards a MATLAB based robotic arm simulation. Hence, Corke [3], has introduced the well-known book for MATLAB environment with associated libraries. This is known as “Robotics Toolbox for Matlab”, Corke [3]. The environment was a very useful tool for modeling robotic arms. It was also an easy methodology and coding for modeling and simulation different robotics arm structures. Jambak, et al. [4], mentioned the importance and paramount of Robot Simulation Software nowadays. This is to increase the accuracy and efficiency of industrial robot. They adopted a project using “virtual reality interface design methodology and utilizes MATLAB/Simulink and V-Realm Builder as the tools”. They also mentioned that, “a robot model has been developed and a Robot Simulation Software life cycle has been implemented”, Jambak et al. [4].


Literature and related studies
There are number of efforts to build robotics system modeling and simulation environments using Mat lab. For example, in reference [1], a Mat lab Toolbox for the iRobot Create (MTIC) was reported. It was mentioned that, "The toolbox replaces the native low level numerical commands, with a set of high level, intuitive, Mat lab functions (aka "wrappers")" [1]. In terms of modeling complexity, furthermore, Shaoqiang et al. [2] have mentioned that, "Biped robots are often treated as inverted pendulums for its simple structure. But modeling of robot and other complex machines is a time-consuming procedure. A new method of modeling and simulation of robot based on SimMechanics is proposed", Shaoqiang et al. [2]. Over number of years, Corke [3], has been working towards a MATLAB based robotic arm simulation. Hence, Corke [3], has introduced the well-known book for MATLAB environment with associated libraries. This is known as "Robotics Toolbox for Matlab", Corke [3]. The environment was a very useful tool for modeling robotic arms. It was also an easy methodology and coding for modeling and simulation different robotics arm structures. Jambak, et al. [4], mentioned the importance and paramount of Robot Simulation Software nowadays. This is to increase the accuracy and efficiency of industrial robot. They adopted a project using "virtual reality interface design methodology and utilizes MATLAB/Simulink and V-Realm Builder as the tools". They also mentioned that, "a robot model has been developed and a Robot Simulation Software life cycle has been implemented", Jambak et al. [4].
Furthermore, in reference to Olivier [5], Cyberbotics, it was reported that, Webots TM has a number of essential features intended to make such simulation tool both easy to use and powerful: -Models and simulates any mobile robot, including wheeled, legged and flying robots.
-Includes a complete library of sensors and actuators.
-Lets you program the robots in (C, C++ and Java), or from third party software through TCP/IP.
-Transfers controllers to real mobile robots, including Aibo®, Lego®, Mindstorms®, Khepera®, Koala®, and Hemisson®. that imitates the movement of a human hand". They used the graphic design as a foundation to find the kinematics and dynamic properties of the robotic hand. Furthermore Miller and Allen [8] have both presented the GRASPIT! In reality, GRASPIT! is a dexterous robotic hand simulation code. It was reported that the work focus of the grasp analysis, has been on force-closure grasps, which are useful for pick-and-place type tasks. Miller and Allen in [8], have also reported that, "This work discusses the different types of world elements and the general robot definition, and presented the robot library".
Miller et al [9]. have furthermore developed a simulation platform, where they focused on (Design/methodology/approach), as they are unlike other simulation systems. However, the simulation system was built specifically to analyze grasps by robotics hand. Miller et al. [9] also reported that, "It can import a wide variety of robot designs by using standard descriptions of the kinematics and link geometries. Various components support the analysis of grasps, visualization of results, dynamic simulation of grasping tasks, and grasp planning".
Jagdish et al. [10], have proposed and presented in their chapter, a fast as well as automatic hand gesture detection and recognition system. It was worked towards a reorganization of a hand gesture, hence an appropriate command is to be sent to the robot hand. Jagdish et al. [10], also mentioned that, once robot receives a command, it does a pre-defined work and keeps doing until a new command arrives.
Corrales et al. [11], have developed a kinematic, dynamic and contact models of a three-fingered robotic hand. The hand name was (BarrettHand), as this to obtain a complete description of the system which is required for manipulation tasks and simulation. Corrales et al. [11] have also stated that, "The developed models have been implemented on a software simulator based on the EASY JAVA simulations platform. Several experiments have been performed in order to verify the 3 accuracy of the proposed models with regard to the real physic system".
Gourret et al. [12], have addressed the problem of simulating deformations between objects and the hand of a synthetic character during a hand grasping progression. Hence, a numerical method based on finite element theory was developed and used to allow considering into account active forces of the each finger on the object and the reactive forces of the object on the fingers. Magnus [13], stated that, "before the implementation of the controller was made on the real hand it was tested and development on a simulation created in MATLAB/ simulink with help from a graphic physics engine called GraspIt!".
In this context, Magnus [13], have also looked into movements of the hand finger, and found how this is affected by the force from a leaf spring and a tendon that bends the finger. They also exposed the hand fingers to contact forces. They used these results and all these components to create models that are used in the simulation, hence to make the finger perform accurately.
Tarmizi et al. [14], as justified by increasing demands robotics hands both modeling and simulation, and due to the increasingly gaining importance amongst researchers for industrial and medical applications. Tarmizi et al. also stated that, "a multifinger robot hand with five fingers is modeled and simulated for grasping task. This was done using a CAD tool known as SOLID WORKS, and an analytical tool known as SimMechanics of MATLAB". In fact, obtained simulation results, indicated that the improved performance of grasping functions for robotics hands.
Ramasamy and Arshad [7], used animation techniques, hence, this to facilities designs and three dimensional graphic of an robotic hand, and its movement animation that imitates movements of the human hand. Such graphic designs, are hence, used as a foundation to find the kinematics and dynamic properties of the robotic hand. The end result is a robotic hand simulation that comes with analyses of the kinematics and dynamic properties".
Boughdiri et al. [15], have mentioned that there are numerous simulation results that shown, the derived dynamic model can predict the motion of the multi-fingered hand in free motion without holding any object. Additionally they have developed dynamic model that used and led to decoupling dynamic characteristics, by which the control of different parts of the system are simulated. They have reported a model-based computed torque technique, as for tracking control of the multi-fingered hand.
Ohol and Kajale [16] have looked into a number of issues related to robotic hand simulation. This includes; required task for the robots, as this becoming more complicated. In addition, handling of objects with various properties, e.g. material, size, mass, and physical interaction between the finger and an object. Ohol and Kajale [16] have stated in their research that, "Design procedure, solid modeling, force analysis and simulation have been discussed for further dynamic analysis towards confirmation of the viability".
Chan and Yun-Hui [17], have further looked into the issue of a dynamic simulator, that can helps and facilitates developments and applications of a multi-fingered robot hand. They indicated that, the existing dynamic simulators cannot effectively simulate dexterous manipulation of a multi-fingered robot hand. This is due to the lack of capability to cope with frequent changes in contact constraints and grasping configurations as well as impulsive collision occurring during manipulation. Chan and Yun-Hui, [17] also mentioned that, "We propose a unified framework to model free motions, collisions, and different contact motions including sticking, rolling, and sliding". Hence they proposed a innovative transition model for handling transitions between these contact motions. Finally, a 3D dynamic simulator has been developed to simulate dexterous robotic manipulation tasks, while involving combination of different contacts. That was based on a unified dynamic model. Simulation results indicated and confirmed the validity of the dynamic model and the simulator efficiency.

Main article contribution
In an effort to synthesis a dexterous multi-finger robotic hand MODELING and SIMULATION environment, this research framework was thoroughly focused towards the utilization and employment of Matlab-based platform coding, for a kinematics and dynamic simulation of an (n) number of fingers hand, with (m) number of joint within each finger dexterous robot hand.
The coding software is referred to as the "e_Grasp". e_Grasp was coded using Matlab functions and routine, with some associated Matlab libraries. The main motivation for selecting Matlab as the programming environment, this due to the availability of extended libraries and the ability to link Matlab with other external libraries.
The simulator was built to be even supportive for complicated modelbased control algorithms for hand-object movements. Examples of which include the Computed Torque approach, and adaptive control. The simulator was also linked with MATLAB AI tools, as an attempt to make use of available AI techniques for implementing intelligent hand manipulation.

Manuscript organization
Within this manuscript, we shall be introducing e_Grasp simulator, where the main features of such modeling and simulation space are presented. We shall also show how this environment is linked to other internal Matlab main Toolboxes and external C++ libraries. Particularly, this manuscript is presenting a long term research framework, which is actually focused for dexterous robotics manipulation that have gained experience and achieved over a number of years, where it was totally dedicated towards building a robotic hand modeling and simulation environment. The manuscript was divided into six sections. Section 3 gives a brief introduction and literatures related to this research theme. In Section 4 we present he simulator integrated structure and blocks. Robotics hand model building, as in relation to hands kinematics and dynamics, are therefore introduced in Section 5. Section 6 gives the simulator HIERARCHCY and DATA_STRUCTURE. This focuses on coding features for dexterous hand simulation. In Section 7 we show few e_Grasp simulation results. Finally, in Section 8, we provide conclusions and draw few concluding remakes.

Simulator Integrated Structure and Blocks
Multi finger robotics hands do represent complicated dynamic and interrelated closed chain kinematics system. Therefore, modeling and simulation of such systems, always represent challenging tasks. This is illustrated in Figure 1. Here we show the top level building blocks of the e_Grasp simulator hierarchy. It composes of five building units. The first is the top level (which includes the hand motion planning and higher USER commands), within such environment task definition is developed. In this top unit an appropriate supervisory software has been developed to facilitate the communication with the various functions of the hand. Typically the user can state the needed motion parameters, like velocities and positions. The second level of hierarchy, is the controllers array box; motion and force control hardware aspects are mainly located within this unit. The third level of hierarchy is dedicated towards the mechanical hand and the drive box used for actuation. Finally, the last level of hierarchy is dedicated towards the level hand motion sensing and instrumentations. Within Section 5, the theme of hand design will be further expanded; hence, kinematic and dynamic modeling matters are therefore discussed in further details.
The e_GRASP has developed its awareness, as a result of the continuous demands to look into the most challenges effort, which is modeling and simulating dexterous robotic hands. Most computer controlled systems used for robotics control, have distributed simulators, which are dedicated to specific tasks. For a six degrees of freedom arm, six simulators they are usually dedicated for the production of digitally controlled motion, hence parallel motion of all the DOF is achieved. All of these DOF are then managed by a single upper simulator. Multi-simulators are unusual distributed simulators which may be utilized to share the computational load for the same task, for providing redundancy in computation, or for sharing the multi axis controllability load in a system.
For multi-fingered robot hands, a few dedicated simulation structures have been used in practice. For multi-fingered robot hands, and due to the large number of actuators to be controlled by a supervisory software, the design adopted here comprises of (n) linked motion simulators, simulating the digital control, for hand tendon displacement control. Furthermore, the simulator is to consider control of hand distal joints, as each distal joint in the hand is also digitally force controlled.
Due to the large number of actuators and the need to have a user friendly software interface, a TOP SUPERVISORY code has been written for the purpose of hand programming and coordinating the various units over the hand entire system. Smooth fingertip Cartesian motion is an essential capability for robot hands in general, therefore for achieving an (n) path Cartesian point of fingertip motion, the motion is required to be planned, such that, fingertips pass near to defined via points without stopping. The e_Grasp hand simulator should be featuring the below listed features: (i) Model robotic hand kinematics and dynamics.
(vi) Linking the simulator to others MATALB toolboxes.
(vii) Optimization, and optimal force distribution.
(viii) Linking to external tools, and others C++ libraries.   H is formed by matrix multiplication of all the individual link matrices. While forming such a product, sub-results can be derived. This will be useful while solving hand inverse kinematics. By multiplying for simulation purposes, and for a simple situation of three joints in a finger, forward kinematics are expressed in terms of forward transformation matrix ( ) While describing fingers kinematic, it is also essential to describe their kinematics with respect to fixed Cartesian frames in the hand palm. These frames are essential elements for a grasped object motion. To define the fingertips of the four fingers to a fixed Cartesian frame, a permanent palm frame has been placed at the base of the first finger sub-system. This is illustrated in Figure 2.
Other hand digits: Each of the fingers is related to the hand palm reference coordinate (attached to the root of the first finger) by transformations which are designated by d2, d3 and d4 for second, third, and fourth fingers respectively. Due to the position of the second finger in the hand palm, the fingertip location with respect to the hand palm is defined by the kinematics equation, as obtained by multiplying the finger transformation matrix ( ) H by the transformation matrix which represents the displacement of that finger from the origin of the palm coordinate frame. If displacement of the second finger is defined by ( ) 4 th finger: Eq (2)-(5) do constitute the kinematics model of a (n) digits fingers hand. They also specify the computation of the position and orientation of frame 3 in reference to frame (0, initial), for each finger. These are the basic kinematics equations for simulating hand kinematics.

Simulator library building: (inverse kinematics)
In order to describe a finger position, reverse problem must be considered. Given a finger posture in terms of 3D components (P x , P y , P z ), what are the corresponding joint coordinates? In Section (5.1), the issue of computing position and orientation of the fingertip frame ( ) 0 3 H was considered relative to a frame fixed at the hand palm. Here we are summing a given a set of joint angles of the finger. In this section, inverse kinematics is presented. Expressed another way, the inverse kinematics problem is given a frame or a homogeneous ( ) H matrix numerical values. In contrast to forward kinematics, inverse kinematics problem does not have a general analytical solution. Given the desired position and orientation of the fingertip relative to the finger root, how we compute a set of joint angles which will achieve this desired result within a constrained kinematic system? The Cartesians upon which to base a decision vary, but a reasonable choice would be the closest solution. A finger will be considered kinematically solvable, if joint variables can be determined by an algorithm which allows one to determine all the sets of joint variables associated with a given position and orientation. We shall restrict the attention to closed form solution. In this context closed form means a solution method based on analytic expressions or on the solution of a polynomial. Within closed form solutions, two methods of obtaining a solution are distinguished. FIRST APPROACH: In Finger revolute joints Finger 1 st joint proximal Finger 2 nd joint medial Finger 3 rd joint distal ------Finger joint n A (distal) reference to eq (2), and frame assignment given in Figure 2, we desire a solution for joint space vector ( ) This result in: Likewise using ( ) cos θ This results in: Searching for a suitable value of ( ) 2 cos θ in Equ (9): The initial solution is that which corresponds to a known orientation vectors. SECOND APPROACH: A geometric approach for solving the inverse kinematic problem is a technique of decomposing the spatial geometry of the finger into several plane geometry problems. Joint space vectors is solved for, using tools of plane geometry. Figure  2b also displays the kinematics and geometric configuration of one finger. Applying rules of geometry to one finger shape, this results in the following equations describing the joint space vector in terms of the given (P x ) (P y ) (P z ) fingertip vector. From Figure 2c, and for the triangle as due to finger geometry: Motion Finger. Using the geometric model of the finger for the simulator is an easy and quick approach to obtaining the joint space vector. One drawback of the geometric method is that: at a definite finger posture the geometric configuration of the finger fails to give a solution. Refer to Figure 1 to observe that certain configurations of the fingertip where the solution is not well defined, hence multiple solutions may appear. However as θ gets large enough, the fingertip location P t goes to a position with respect to (0) and T r angles where the cosine rule used in eq (13) is not applicable. To achieve realistic finger solutions, hand simulator source code has been designed in such a way as, to get the inverse kinematic for the finger model using the geometric approach. Subsequently, once joint space vector are evaluated for, orientation vectors are evaluated, as they constitute columns of the well-known finger Jacobian matrix of J θ We shall use two known methods in literature to find the inverse kinematics geometric and algebraic approaches of solutions fail to give definite solution.

Simulator library building: building hand Jacobian
The Jacobian matrix plays important role in hand simulation. Differential changes in finger end locations, are caused by as results of joint differential changes. The number of rows in a Jacobian is determined by the number of degrees of freedom in Cartesian space required by the task which is, in turn, determined by the degrees of mobility of a task. In fact, the JACOBIAN is a multi-dimensional form of the derivative of a function of several variables. Since the Jacobian is a differential formula of a matrix, hence it is possible to obtain elements of that matrix using the CHAIN FORMULA as far as the functions of independent variables. For the finger Jacobian J θ there are a number of techniques which have been developed for the Jacobian calculation by: Waldron Algorithm, Renand Algorithm, Paul's Algorithm, [18,19]. Location of a fingertip is characterized by relative positioning of frame f i+1 attached to the fingertips, with respect to a frame f 0 . In addition, a fingertip velocity is always a vector in the tangent space of the frame space, which is related by the Jacobian matrix J θ . Such framings are illustrated in details in Figure 3.

Simulator library building: jacobian singularities avoidance
Due to the fact the Jacobian is a position dependent matrix, in particular finger configurations, the matrix becomes not full of rank. When this occurs the Jacobian rows and column vectors are linearly dependent, thus do not span the ( ) 3 1 × ∈ℜ vector space of X. Therefore, there exists at least one direction in which the fingertip cannot be moved no matter how the joint velocities θ 1 , through θ 3 are chosen.
Here we shall introduce the derivation of a finger Jacobian matrix in terms of D-H matrices. In Eq (5), the Jacobian is defined with respect to the reference frame, frame (0) at the finger root. However, for our purpose it has been assumed that the points of contact are stationary on the grasped object and another algorithm can be implemented based upon the kinematic model of the finger. Such algorithm is based on the method shown by Paul [19]. From the time when all joints are revolute, the three columns of the matrix are given by:  While using this algorithm, it is necessary to evaluate the orientation vectors of a finger posture, which are assumed to be known by using the geometric finger model and the forward transformation matrix. Paul's algorithm can be used to calculate the Jacobian of an (n) degrees of freedom arm, where each degree of freedom corresponds to one joint. Thus, each column in the Jacobian is a vector which describes the differential motion of a joint. A revolute joint has a differential rotation around the axis of rotation Z axis: To relate a fingertip position to a set of joint angles of the fingers, one may make use of the forward solution and obtain the fingertip matrix ( ) 0 3 H . Paul [19] has presented a routine that relates differential changes in joint variables, to the differential changes in the tip position and orientation. This is summarized here as: Further application of the algorithm, and using the relation defined by eq (17) Leading to (2 nd ) column of J θ to be ( ) Hence Θ J is finally written as: Eq (23) has been verified using Matlab software, and using velocity cross product (VCP) technique used by Fu et al. [20]. Since each finger has a 3-DOF mechanism responsible for producing translational differentials motion at the fingertip, the Jacobian matrix can be rewritten in terms of differentials motion of the fingertip. The methodology taken here is to divide the simulation environment into (n) main blocks of simulators. Respectively, individual blocks have been dedicated for the simulation and control of the (m) joints of one finger. This is shown in Figure 4.

Simulator Hierarchicy
Top level: simulator data structure Configuration of hand simulating software was based on an  assumption, of using discrete time joint-space controllers. This is clearly illustrated in Figure 5. That was also based on using a model of MOTION CONTROLLER. There a number of available real-tome DSP controllers. Example of which is the national semiconductor product, (LM628) motion processor. For simulation purposes, there are up to (n×m) motion processors that have been employed for the overall hand control. Individual single processors were dedicated control an individual DOF in the hand. Overall MatLab supervisory coding and software designing for the entire hand simulation, is to be run on high speed machine. However, it was also achieved while using an up-to-date high speed Laptops. High speed machine is needed, as this requires communicating with (n×m) separated controllers blocks via (n×m) processors hardware. From software viewpoint, simulating coordinated hand control, takes place at different computational levels. The hand hierarchical nature leads inherently to a bottom-up supervisory simulation design. Top level of concurrency, looks at entire hand simulation.

e_GRASP hand data structure and classes
At start, we shall define a finger data structure to contain a finger name. The "." operator, used in the case of Structure. Field tells mat lab to access the field named field in the structure.

Joints space and fingers simulation: non closed chain dynamics simulation
For simulating whole hand dynamics, either in open or closed loops, it is therefore important to have a model of the individual joint dynamics. This consists of a model of a single discrete time motion closed controller. A good model is an (n) bit controller, connected with a D/A converter, driving current amplification. The digital closed loop system also requires a simulation for measuring the individual joint displacement and position. In order to create an entire closed loop simulator model of the individual joints, and for describing the whole closed chain system, the following sub-sections will rather focus on the dynamics of a single joint controller, as this will be leading to a finger simulation, hence, leading to entire hand simulation.

Discrete time simulation of a single axis joint
Digital simulation of the lower level of individual joints, is discussed and simplified. That is because the control input for ith joint depends only on locally measured variables, not on the variables of the other joints. Moreover, computations are easy and do not involve solving the complicated derived nonlinear hand inverse dynamics. Contrary to this, for manipulation and exertion of forces points of view, an additional joint torque control has to be added, this is for an exertion of grasping forces throughout object motion. From literature, a typical PID controllers expressed by: In eq (24), u(t) is input to the joint controller, and e(t) is the controller output. Digitizing eq (24), resulting in: A simplified dynamical model of the joint with the electric actuator may be written as: terms are effective inertia and effective damping coefficients of actuators shafts. This also includes the joint inertia. The joint position trajectory is calculated by a trajectory planning routine. This is passed to the digital control as number of pulses.
A typical joint space closed loop transfer function, relating an input to the joint, to its output, (block diagram shown in Figure 6, this is expressed by: Individual joint space controllers synthesis, was achieved using and supported by Matlab. Matlab environment, with its control toolbox synthesis and facilities, provided an aid to the controller testing and simulation. Typical design tools do include, Nyquist diagram, Modulus Frequency response, and time step response. For achieving a discreet time simulation within Matlab, the finger joints were being controlled digitally rather than in analog approach. Moving from continuous time domain to discrete time domain, Within (Z) domain, sampling time has an important role in determining the system stability. We start to do that by initially modeling the D/A converter in terms of sampling rate, ( ) including actuator, is evaluated. In addition, the computed discretetime poles of eq (29) are, as well, function of the variable factor in the system, the scalar value of the proportional gain (k p ).

Simulation of joints-space controllers
Furthermore, in Figure 6 we show the bottom low-level controller block diagram, and the associated parameters. This is to avoid a joint dynamic behavior that is not desirable, as due to the amount of joint motion disturbances. Therefore we need to overcome any undesirable effects. The use of adjusted parameters control law have the effect of making the response behavior enhanced. The location of adjusting the full PID control parameters can be seen in enhancing fingers motion. As this will be rather simulated later; the choice of low proportional gain in addition to the integral and derivative has the effect of decreasing the corresponding (rise time) as compared with the result for a purely high proportional gain.

N Configuration hand motion: (creation of arrays, pointers, and records)
The simulator has a large data structure. This is to comprehend the complicated fingers motion. System points of contact motions are generated by specifications of (r) direction of motion. From an object to be moved within the work-space of the hand, principle axes of motions are defined in addition to Cartesian fingertips paths. If fingertips paths are specified as (H, K, L, U,......), for the (n) fingers, then for (n) segments path, the Cartesian segment (localities in space), are passed and download to the entire hand controller coding. This is based on the use of such data structure: As indicated earlier, every finger segment vector consists of an ARRAY (Data_Type). This is for storage of finger joints positions and velocities. In accordance to the specified path coordinates, hand controller creates array of Matlab based records. At the ending phase of the (RECORDS) and (POINTERS) creation, the hand controller holds (n × n) of records containing the Cartesian motion information of (n) segment paths for the individual fingers.

Simulation of joint force control
For simulating a joint torque dynamics and control, this requires a continuous measurement of the joint torque via some typical sensors. It is an essential for a joint torque sensor to be enclosed within a closed loop system. Furthermore, this is to be incorporated within the position control loop. While discussing the simulating aspects of a joint force control, the mechanism of transmission at joints do play an important role in the performance of the servo system itself. The problem of closing a joint force control feedback loop is the non-ideal transmission and drive system, i.e. presence of STICTION, COGGING, COULOMBIC friction, together with higher order resonance modes in the system. Furthermore, equivalent rotational stiffness do play an essential role in force control simulation. It relates the change in joint torque with changes in joint displacement and has to be computed for a rotational system. For a specific geometry of joint pulley and cantilever beam, a joint space rotational stiffness is mathematically expressed: and χ is a parameter representing the force sensor stiffness. For an ideal actuator characteristic, the system force control transfer function is given by: Hence, for simulation of the force proportional control system, a typical control law is considered: In eq (34), ( ) ps k is the force loop controller gain, where ( ) τ r is the desired behavior, whereas the term ( ) τ f is the finger actual joint torque. Furthermore, Eq (34) represents an ideal mechanism for controlling a joint torque. While examining a real typical physical construction of a force sensor, joint transmission system, and grasped object compliance, do add complexity to force control system. There is also variation in the dynamics of the finger due to its configuration dependence, however such changes are masked by the actuator dynamics. A grasped object compliance plays an important role in the response of the force controller. There exists the following linkage between ( ) τ f and ( ) θ ∆ , the angular displacement of the driving pulley. This is expressed by: In eq (35), δ is the compound rotational stiffness of the finger mechanical structure, as expressed in terms of: (i) sensor rotational stiffness, (ii) the grasp rigidity characteristics, (iii) and stiffness of the tendon. This is expressed by: While considering eq (34) and eq (35), a relation between τ f and τ r is expressed by: Eq (37) gives the torque response of the closed loop system is controllable by υ and k p parameters. The simulation behavior of the designed force servo system, does not remain uniform even for constant gains k p . This is due to the fact, that δ involves some varying quantities η and v p . For instance increases from a very stiff environment while it decreases for a compliant object surface. Additionally v p , tendon stiffness, might change if a greater stretching force is applied to its ends. The behavior could be further simplified by taking into account that the robot hand has been categorized to be grasping a rigid object, hence η is having a very high value. v p is quite a high quantity for the routed tendon due to the short length of the tendon and the use of high stiffness tendon characteristics. An equivalent rotational stiffness υ, by itself is a function of the physical construction of the sensor and its location in the finger. Having considered such assumptions, Eq (36) is totally dominated by an equivalent rotational stiffness. Here υ is a function of the sensor physical parameters. Finally, for real time simulation of the force closed loop system (feedback control), we transform the dynamics from time domain to frequency domain, i.e. relying on Laplace transform of the entire force closed loop control transfer function. This is expressed as: Finally, for real time simulation of the force closed loop system (feedback control), we transform the dynamics from time domain to frequency domain, i.e. relying on Laplace transform of the entire force closed loop control transfer function. This is expressed as: In eq (38), p i , is a conversion ratio. It relates the a conversion from a desired fingertip force, into a volts within the loop. The expressed relation of Eq (38), does indicate the changing parameters that do affect the force closed loop dynamics. Therefore, the built simulator environment is to take care of such parameters while simulating a typical a joint closed loop system.

Closed chain hand-object simulation: advanced control laws (computed torque method)
One of the great benefits of such a simulation instrument, is an ability to simulate robotics hands, under advanced control laws. Typical example is the Cartesian computed torque control law. In addition, other advanced control laws is the sliding mode control. In reality, such control methodologies are complicated, and do require massive computational requirements. However, they were made easy while using e_Grasp simulator. More results will be shown over the next Section. In addition, adaptive or even ANN based nonlinear control can also be simulated through the e_Grasp simulator. For (m) joints (in a finger), with (n) fingers robotic hand, the individual fingers are modeled by the time varying equation of motion: as grab sub-matrices Finally, eq (43) expresses a typical Cartesian based hand controller using PID, that will be simulated through the e_Grasp.

Result and Analysis
In particular, e_Grasp has been used successfully as a tool for motion and manipulation analysis of robotic multifinger hands. In this respect, for running this environment, this needs a Matlab environment.
The code has been also tested lately on MATLAB Version 7.8.0.347 (R2009a). The simulator has been tested over a number of times. For validating the e_Grasp simulator potential, we shall present within this section few simulation results as related to a control for moving while grasping a grasp by a robot hand. The chosen hand is of four fingers, where each finger is having three rotational joints, i.e. ( ) The simulation environment gives the user an ability to select the hand configuration, dynamic and kinematics parameters, nature of fingertip contact, control sampling rate, law of controller, simulation time, in addition to others simulation parameters. There are large number of results to be shown, as a result of running the simulator, however, we shall show only few graphics results. In this respect, in Figure 7a, we show the simulator graphical interface with other plotting graphics and the m-editor in Matlab. Furthermore, in Figure 7b we show part of simulator interfacing with other Matlab related toolboxes. In this respect, here we show the Matlab optimization toolbox being interfaced with e_Grasp simulator to compute optimal forces and torques needed by hand fingers to make an object motion.
For a demonstration, a 3D grasp movement is shown in Figure  8. A grasp object of a known dimension and weight was manipulated by movements of fingertips, while applying a suitable set of fingertips forces. The grasp was moved in periodic sinusoidal movement. Results shown that, simulating a 3D grasp movements was made an easy task while using the e_Grasp simulator. Dynamics of a grasped object can be changed while alternating both Cartesian controller parameters and joints parameters. This leads to make a grasp motion stable, oscillatory, faster, or slower. Furthermore, Figure 9 displays a finger joint-space closed loop displacement performance. The simulator has taken into account fingertip rotations during a course of a grasp motion. Furthermore, in Figure 10 we show a simulation of hand torques, while grasping an object in 3-D space. The figure shows how torques are computed in response to motion. The simulator was able to transform a grasp from an initial posture to another over a minimum time. For such a simulation, the simulation environment offers a full adjustment of the three terms PID controller parameters, hence they have been selected for minimum overshoot. A grasped object movements can be made much unstable or even with less overshoot over its movement path in 3D. In Figure 11 we show a typical simulator capabilities. The figure is showing the computed error while comparing artificial neural network output with actual joint-space output. The 2nd finger joint-space motion simulations are therefore realistic in terms of displacement and motion. Joint space torques are very realistic in terms of producing an adequate amount of torques for fingertip movements. In Figure 12, we also display an important ability of the e_Grasp, which the ability of linking its output to other Matlab toolboxes. Here we show a link between e_Grasp with Matlab fuzzy toolbox. The figure shows an adaptation of fuzzy membership functions for optimal forces    learning via fuzzy system. In addition, the package is also able to be linked with much advanced Matlab functionalities, which is the ANN tools. In addition to the basic functions, the simulation package can also provide more analysis of hand movement. For example, Figure 13 shows the ability to plot training patterns for hand ANN training. Such patterns were also used for learning and understanding the hand for optimization of fingertips contact forces.

Conclusions
Software simulation of an (n) DOF articulated robotic hand system is not an obvious task. Specifically, such simulators are truly needed for testing purposes, and for viewing hand performance before physical implementation. This manuscript has focused on a developed simulation software for supervising and controlling a fully described (kinematically and dynamically) (n) fingers robotic hand. The simulation environment was achieved via Matlab with a link to other available Matlab toolboxes. The developed simulator also has the ability to be linked internally to Matlab toolboxes, in addition, to be externally linked to other libraries, like (C ++ ), for a possible real-time hand control. The simulator even has the ability for linking high level commands to the low-level digital motion processor. The simulator has proved to be an effective way to look and view kinematics and dynamics models of robotic hand. These models are found to be essential elements for hand object dynamic simulation. Next stage, is to take the simulator further, with graphical interfaces and functionalities.