Key words

1 Introduction

The design of end-effector robotic tools has traditionally taken place in an application-oriented fashion within the framework of the mechanical design theory [7]. Among the rich variety of robotic end-effectors, those generally defined as robotic hands are considered suited not only for grasping, but also for dexterous manipulation. We can define a multi-fingered robotic hand as an end-effector in which the base, or palm, spans several serial chains in a tree-like structure.

There are a great variety of designs for robotic hands. Some designs mimic the human hand and exhibit a high number of degrees of freedom [1, 15]; others are designed for specific applications [4] and may or not be anthropomorphic [5].

Most of the designs have been oriented either towards maximum anthropomorphism or towards optimizing grasping, manipulability or workspace size. A good review on the efforts toward kinematic hand design can be found in [6]. As robotic hands become more common in industrial applications and human environments, it makes sense to think that their design will become more task-oriented. Soto Martell and Gini [14] expose the need for a task-based design process for robotic hands.

The use of kinematic synthesis for the design of the multi-fingered robotic hand has been applied to individual fingers, see [2]. We believe that the reason why dimensional synthesis has been scarcely applied to robotic hand design is because of the lack of a method that takes a multi-fingered task as the input and outputs a multi-fingered design.

In this paper, we extend the work presented in [13] by combining it with the results on kinematic synthesis for infinitesimal positions [8, 9] and expressing the kinematics using the Clifford algebra of dual quaternions [10]. Note that mechanical linkages are traditionally synthesized by specifying a task, consisting of a number of positions that the end-effector has to move through, with the goal of determining the design parameters, i.e. fixed and moving pivot locations, as well as the size of the linkage. The difference between the traditional design of mechanical linkages and the current design with contact direction, used in this research, is basically in the task, which consists not only of positions, but velocities and accelerations compatible with contact and curvature specifications between the end-effector/fingers and the object to be grasped. In comparison to the traditional synthesis techniques, these velocities and accelerations yield to a more complicated system of position, velocity and acceleration design equations, as well as more complicated trajectory planning techniques.

As an example, we apply this methodology to the design of a multi-fingered hand for operating a door knob. The motivation for this design arose from an individual, who is confined to a wheel chair after an accident. He has limited movement and weakness in his hands, making it difficult for him to grasp doorknobs at his workspace. The synthesis presented here is the first step towards developing assistive manipulation devices.

2 Infinitesimal Kinematics

The generic screw S for a twist can be represented as an element of the Lie algebra se(3) [12],

$$ \mathsf {S}=\lambda(\mathbf {s};\mathbf {r}\times \mathbf {s}+h\mathbf {s})=\lambda(\mathbf {s};\mathbf {s}^0+h\mathbf {s})=(\mbox {\boldmath $\omega $};\mathbf {v}) \in \mathit{se}(3) $$
(1)

where \(\mathbf {s},\mathbf {r},\mbox {\boldmath $\omega $},\mathbf {v}\in \mathbb{R}^{3}\) with ss=1, s 0=r×s and λ,h∈ℝ.

The relative velocities between a pair of rigid bodies form one-dimensional subalgebras of the Lie algebra se(3) [11]. The most generic subalgebra is generated by the screw or helical joint S which becomes a revolute joint S R =(s;s 0) with h=0 or a prismatic joint S P =(0;s) with the screw axis at infinity. The binary operation of the Lie algebra is the Lie bracket, which can be expanded for screws as,

$$ [\mathsf {S}_1,\mathsf {S}_2] = [(\mbox {\boldmath $\omega $}_1;\mathbf {v}_1),(\mbox {\boldmath $\omega $}_2;\mathbf {v}_2)] = (\mbox {\boldmath $\omega $}_1\times \mbox {\boldmath $\omega $}_2;\mbox {\boldmath $\omega $}_1\times \mathbf {v}_2+\mathbf {v}_1\times \mbox {\boldmath $\omega $}_2) $$
(2)

The velocity of the end-effector for a serial articulated chain with n joints in a given configuration can be written as [12],

$$ \frac{d\mathsf {P}}{dt} = \dot{\mathsf {P}} = \sum_{i=1}^{n} \dot {\theta }_i\mathsf {S}_i $$
(3)

where \(\dot{\mathsf {P}}=(\mbox {\boldmath $\omega $};\mathbf {v})\) with \(\mbox {\boldmath $\omega $}\) being the angular velocities and v being the Cartesian velocities. The screws S i represent the infinitesimal screws of each joint.

The infinitesimal screws can be transformed to an instantaneous position from a reference position using the Clifford algebra conjugation action,

$$ \mathsf {S}^k_i = \left(e^{\frac {\Delta \hat {\theta }^k_{i-1}}{2}\mathsf {S}^k_{i-1}}\right) \mathsf {S}_i \left(e^{\frac {\Delta \hat {\theta }^k_{i-1}}{2}\mathsf {S}^k_{i-1}}\right)^* = \left( \prod_{j=1}^{i-1} e^{\frac {\Delta \hat {\theta }_j^k}{2}\mathsf {S}_j} \right) \mathsf {S}_i \left( \prod_{j=1}^{i-1} e^{\frac {\Delta \hat {\theta }_j^k}{2}\mathsf {S}_j} \right)^* $$
(4)

where \(\Delta \hat {\theta }_{i}^{k}=\hat {\theta }_{i}^{k}-\hat {\theta }_{i}^{r}\) with \(\hat {\theta }_{i}^{r}\) is the joint parameter in the reference configuration and \(\mathsf {S}^{k}_{i}\) is the i-th screw in a serial chain at position k.

The velocity of a joint j in a chain is written as the derivative of a finite screw [3],

$$ \frac{d\mathsf {S}_j}{dt} = \dot{\mathsf {S}}_j = \sum_{i=1}^{j-1} \dot {\theta }_{i} [\mathsf {S}_i, \mathsf {S}_j] $$
(5)

Cross terms and the non-commutation of the derivation operator must be taken into account as seen by differentiating each velocity component of (3) using the chain rule. This can be expanded to obtain the acceleration of the end-effector,

$$ \frac{d^2\mathsf {P}}{dt^2} = \ddot{\mathsf {P}}= \frac{d}{dt}\dot{\mathsf {P}}= \sum_{i=1}^n \left( \ddot {\theta }_i\mathsf {S}_i + \dot {\theta }_i\dot{\mathsf {S}}_i \right) = \sum_{i=1}^n \ddot {\theta }_i\mathsf {S}_i + \sum_{i=1}^{n-1} \dot {\theta }_i \sum_{j=i+1}^n \dot {\theta }_j [\mathsf {S}_i,\mathsf {S}_j] $$
(6)

where \(\ddot{\mathsf {P}}=(\mbox {\boldmath $\alpha $};\mathbf {a})\) with \(\mbox {\boldmath $\alpha $}\) being the angular accelerations and a being the Cartesian accelerations.

The approach is general in the sense that the chain rule can be successively applied to obtain higher derivatives if necessary.

3 Design Equations for Tree Topologies

Tree topologies can be seen as many different serial chains that share a number of common joints. The equations can be written as for serial chains, but the task definition will vary with the topology. The finite motion of a joint can be expressed using the exponential map of a screw S. This can be expressed using the unit element of the Clifford even subalgebra of the projective space Cl +(0,3,1) or dual quaternion,

$$ e^{\frac{\hat{\theta}}{2}{\mathsf {S}}} = \left(\cos\frac{\theta}{2} - \frac{d}{2}\sin\frac{\theta}{2}\epsilon\right) + \left(\sin\frac{\theta}{2} + \frac{d}{2}\cos\frac{\theta}{2}\epsilon\right)\mathsf {S}= \cos\frac{\hat{\theta}}{2} +\sin\frac{\hat{\theta}}{2}\mathsf {S}. $$
(7)

where ϵ is the dual unit such that ϵ 2=0.

For a serial chain with n joints, the forward kinematics of a serial chain can be written relative to a reference configuration of the serial chain,

$$ \hat{Q}(\vec{\Delta}\hat{\vec{\theta}}) = \prod_{i=1}^n e^{\frac{\Delta\hat{\theta}_i}{2}\mathsf{S}_i} = \prod_{i=1}^n \left(\cos\frac{\Delta\hat{\theta}_i}{2} + \sin\frac{\Delta\hat{\theta}_i}{2}\mathsf {S}_i\right) $$
(8)

where \(\Delta\hat{\theta}_{i} = \hat{\theta}_{i} - \hat{\theta}_{0}\) with \(\hat{\theta}_{0}\) being the joint parameters of the reference configuration.

For a task composed of finite positions, the relative forward kinematics can be compared to the relative motion from the reference configuration to each position \(\hat{P}_{1k}=\hat{P}_{k}\hat{P}_{1}^{-1}\) [10],

$$ \hat{P}_{1k} = \prod_{i=1}^{n} e^{\frac{\Delta \hat {\theta }_i^k}{2}{\mathsf {S}}_i}, \quad k=2,\ldots,m_p $$
(9)

where m p is the number of positions considered and \(\Delta \hat {\theta }_{i}^{k}=\hat {\theta }_{i}^{k}-\theta_{i}^{1}\), with k=1 being the reference configuration.

For a task with velocities, we can use (3) to write,

$$ \dot{\mathsf {P}}_k = \sum_{i=1}^{n} \dot {\theta }_i^k\mathsf {S}_i^k, \quad k=1,\ldots,m_v $$
(10)

where \(\dot{\mathsf {P}}_{k}\) is the absolute velocity information for a given position k in the form \((\mbox {\boldmath $\omega $};\mathbf {v})\). The instantaneous joint screw axis \(S_{i}^{k}\) can be calculated from (4).

The same procedure can be applied to acceleration to obtain from (6),

$$ \ddot{\mathsf {P}}_k = \sum_{i=1}^{n} \ddot {\theta }_i^k\mathsf {S}_i^k + \sum_{i=1}^{n-1} \dot {\theta }_i^k \sum_{j=i+1}^{n} \dot {\theta }_j^k [\mathsf {S}_i^k,\mathsf {S}_j^k], \quad k=1,\ldots,m_a $$
(11)

where \(\ddot{\mathsf {P}}_{k}\) is the absolute acceleration for a given position k in the form \((\mbox {\boldmath $\alpha $};\mathbf {a})\).

The velocity and acceleration equations can be seen as additional pose information that reduce the number of poses needed. Counting the number of independent unknowns n x and independent equations n f we obtain,

(12)
(13)

where n s is the number of independent structural parameters, n j the number of joint degrees of freedom, n c the number of independent constraints and n d the degrees of freedom of the end-effector motion. The number of positions, velocities and accelerations are given by m p , m v and m a respectively. If we consider m=m p +m v +m a we obtain the familiar formula [10],

$$ m = \frac{n_s-n_c}{n_d-n_j}+1 $$
(14)

4 Experimental Set up and Task Specification

Since the first step in our synthesis technique is related to choosing a specific task, the kinematic task selected for the design is the operation of a standard door knob. In order to define this kinematic task, the door knob grasping and turning movement was performed, from a start to end spatial locations. During the movement, the subject emulates the opening of the door motion with an apparatus shown in Fig. 1a. The upper limb kinematics at specific points of interest are captured by a 3D Motion Capture System (Vicon, OMG Plc., UK), available in our Human Interactive Robotics Lab at Texas A&M University.

Fig. 1
figure 1

(a) The experimental apparatus for emulating the door knob task and (b) the kinematic model configured in the 3D Motion Capture System.

Three infrared cameras track the position of each marker relative to a predefined global coordinate frame, with a sampling rate of 100 Hz. Five moving frames are defined at the: elbow, wrist, and tip of thumb, tip of index and tip of middle fingers, respectively. Fig. 1b shows the marker attachment. To only synthesize the motion of the forearm, the positions chosen were transformed from absolute positions \(\hat{P}_{i}\) to positions local to the elbow \(\hat{P}_{ij}=\hat{P}_{j}^{-1} \hat{P}_{i}\) with \(\hat{P}_{J}\) is the position of the elbow. For velocities this can be written as \(\dot{\mathsf {P}}_{ij}=\dot{\mathsf {P}}_{i}-\dot{\mathsf {P}}_{j}\).

The obtained positions and velocities were then used as a task for the kinematic synthesis of the multi-fingered robotic hand. The kinematic specification consists of set of three spatial displacements defined by \(\hat{P}_{k}=(\vec {\psi}_{k}, \mathbf {d}_{k})\), k=1,2,3, and the associated angular and linear velocities \(\dot{\mathsf {P}}_{k} =(\mbox {\boldmath $\omega $}_{k};\mathbf {v}_{k})\), k=1,2 in two of the positions for each fingertip.

5 Solving Numerically

The solver used is an updated version of the kinematic synthesis solver for tree structures [13] updated to support the design equations (10) and (11). The solver is composed of a Genetic Algorithm (GA) paired with a Levenberg–Marquadt (LM) local optimizer. For more details on the solving approach see [13].

The full equation system for a multi-fingered robot with b fingers formed by n revolute joints can be defined directly by manipulation of the design equations,

$$ \mathbf {F}(\vec {\mathsf {S}},\vec{\Delta}\hat{\vec{\theta}},\dot{\vec{\theta}},\ddot{\vec{\theta}})=\left( \begin{array}{c} \hat{P}^c_{1k}-\displaystyle\prod_{i=1}^{n_c} e^{\frac{\Delta \hat {\theta }_i^k}{2}{\mathsf {S}}_{i,c}},\quad \begin{array}{l} k=2,\ldots,m_p \\ c=1,\ldots,b \\ \end{array} \\ \dot{\mathsf {P}}^c_k-\displaystyle\sum_{i=1}^{n_c}\dot {\theta }_i^k\mathsf {S}_{i,c}^k,\quad \begin{array}{l} k=1,\ldots,m_v \\ c=1,\ldots,b \\ \end{array} \\ \ddot{\mathsf {P}}^c_k-\left(\displaystyle\sum_{i=1}^{n_c}\ddot {\theta }_i^k\mathsf {S}_{i,c}^k + \displaystyle\sum_{i=1}^{n_c-1} \dot {\theta }_i^k \sum_{j=i+1}^{n_c} \dot {\theta }_j^k [\mathsf {S}_{i,c}^k,\mathsf {S}_{j,c}^k] \right), \, \begin{array}{l} k=1,\ldots,m_a \\ c=1,\ldots,b \\ \end{array} \\ \end{array} \right) $$
(15)

where b is the number of branches or fingers, n c is the number of joints for a branch c, n is the total number of joints in the structure and \(S_{i,c}^{k}\) are the instantaneous axis of the joint i in the branch c for the frame k calculated by (4). A valid mechanism is said to be found when \(\mathbf {F}(\vec {\mathsf {S}},\vec{\Delta}\hat{\vec{\theta}},\dot{\vec{\theta}}, \ddot{\vec{\theta}})=\vec {0}\).

6 Results

The kinematic structure of the hand consists of a three degree of freedom palm+wrist complex (RRR), and three fingers, each of which is modeled as a two degree of freedom RR kinematic chain as seen in Fig. 2a. This structure was chosen for the kinematic synthesis of the task as it has fewer degrees of freedom than the human hand while having an non-fractional number of required samples. As this paper does not deal with structural synthesis, a pre-determined topology is used. No additional constraints were placed on the structure. For this kinematic structure with 9 revolute joints, a total of m=5 samples are needed as obtained from (14).

Fig. 2
figure 2

The topology used and overview of a solution mechanism found.

The experimental task consists of many hundreds of frames of which m p =3 were selected. For two of them velocity information was also used providing m v =2. Due to the nature of the door-knob opening task, the accelerations, related to curvature constraints (i.e. sliding motion of the fingers along the door-knob) are fairly small in comparison to the other task specifications and were not taken into account. Therefore, our task consists of positions, prescribed at the point where the fingers need to grasp the door knob, and velocities, describing the contact of the fingers with the door knob. The resulting equation system has 90 unknowns and 102 equations of which only 72 are independent. A set of 50 solutions was obtained taking an average of 18.06 minutes per solution and needing an average of 13.76 generations per solution with a population of 100 entities.

A selected solution mechanism of the doorknob task can be seen in Fig. 2. The thick joint axes are connected by thinner lines at the intersections of the common normals of the joints and the joint axes. The origin is represented by using a square and the end-effectors are represented by using spheres. This solution shown is more compact than the human hand as all the joints except one are grouped together and is able to perform the same task as the human hand. It was observed that generally the solutions have a similarity between the index and middle finger, while the thumb has a different shape, which is similar to how the human hand is designed.

7 Conclusions

This paper presents a novel dimensional synthesis methodology for articulated systems with a tree structure using additional constraints such as velocity and acceleration. It also presents a new design for numerically solving kinematic systems using these new constraints, adding upon the previous work of numerically solving tree structures with kinematic synthesis. The addition of velocity, acceleration and other derivatives at the positions allows a better local approximation of the task motion, as well tasks with contact and curvature specifications.

For the selected knob-operating task, a tree-like robot with three two-jointed fingers has been designed. Kinematic synthesis is just one step in the design process, one that allows you to create innovative candidates fitted for the kinematic tasks under consideration. Enough solutions have been found to suggest that a method to analyze and rank those needs to be a part of the design process. These results show that the dimensional synthesis of robotic multi-fingered hands is possible. In addition, multi-fingered hands appear not to be redundant when a task involving several fingers is to be performed.