## Denavit Hartenberg Frame Assignment Of Benefits

## Introduction and Testing of an Alternative Control Approach for a Robotic Prosthetic Arm

Lauren Griggs and Farbod Fahimi^{*}

Mechanical & Aerospace Engineering University of Alabama in Huntsville, Huntsville, 35899 Alabama, USA

^{*}Address correspondence to this author at the Mechanical & Aerospace Engineering University of Alabama in Huntsville, Huntsville, 35899 Alabama, USA; Tel: (256) 824 5671; Fax: (256) 824 6758; E-mail: ude.hau@imihaf.dobraf

Author information ►Article notes ►Copyright and License information ►

Received 2014 Jun 12; Revised 2014 Aug 26; Accepted 2014 Aug 26.

Copyright © Griggs and Fahimi; Licensee *Bentham Open.*

This is an open access article licensed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted, non-commercial use, distribution and reproduction in any medium, provided the work is properly cited.

## Abstract

Commercially available robotic prosthetic arms currently use independent joint control. An alternative controller involving only control of the hand in a Cartesian frame rather than controlling each joint independently is proposed and tested. An experimental 4DOF robotic arm was used as the platform for testing the proposed control approach. As opposed to joint control, Cartesian control requires the solution to the inverse kinematics problem. The inverse kinematics solution was developed for the robotic arm using the extended Jacobian method. The two control methodologies, joint control and Cartesian control, were tested on five able-bodied human subjects. Improvement of one control methodology over the other was measured by the time it took for the subjects to complete a simple motor task. The timed trial results indicated that Cartesian control was both more intuitive and more effective than joint control. So, the results suggest that much improvement can be achieved by using the proposed Cartesian control methodology.

**Keywords: **Cartesian control, experiments, extended Jacobian method, independent joint control, inverse kinematics, robotic prosthetic arms.

## 1. INTRODUCTION

Limb loss is a worldwide issue; a 2005 study estimated that over a half a million people in the United States alone were living with some type of major limb loss [1]. Of that number, upper-limb amputees make up a small percentage; however, upper-limb amputees have typically been less affected by advancements made in the prosthetics industry. Studies have shown much higher usage rates of lower limb prostheses than upper limb prostheses [2]. Additionally, of the upper limb prostheses, below-elbow amputees have a much higher prosthesis acceptance rate than above-elbow amputees. A study conducted in 1995 showed that 39 of 42 below-elbow amputees used a prosthesis while only 9 of 21 above-elbow amputees used a prosthesis [3]. This study indicates that the majority of above-elbow amputees do not find the currently available prostheses useful enough to incorporate into their lives.

One thing all commercially available prosthetic arms have in common is that they all employ joint control [4]. Joint control involves independent control of the angular velocity of each joint, for instance, the shoulder joint or elbow joint. An alternative Cartesian control approach is one that simply involves the linear velocity of the hand in three-dimensional space rather than the rotational velocity of the individual joints. The primary goal of any prosthesis is to function as similarly as possible to the limb it replaces. Research has shown a correlation between signals in themotor cortex portion of the brain and position and velocity of the hand in three-dimensional space [5]. Work has also been done to try and correlate brain signals to individual joint rotational velocities; however, little to no correlation was found [6]. The research seems to support what seems an intuitive conclusion; at the level of conscious thought, human arm control is more similar to Cartesian control than joint control, with the joint commands being resolved at some other level. Based on the current research, it is deduced that the initial human command would be one of Cartesian hand velocity; joint control would then require the patient to do a mental mapping of desired Cartesian hand velocities to required joint velocities in order to issue the command. Cartesian control essentially removes that function from the patient and incorporates it into the controller.

Although the idea of Cartesian control of industrial robotic manipulators is not new, most research and testing of this idea on prosthetic arms is relatively recent. In 2008, experimental testing of brain controlled prostheses utilizing Cartesian control on monkeys showed promising results [5]. Experimental testing performed in 2005 showed an advantage of Cartesian control over joint control for a relatively simplistic robotic arm that could move in two-dimensions [7]. One reason most Cartesian control work is relatively new is that, until recent advancements in the medical field, Cartesian control was, in many cases, not possible. Many prosthetic devices incorporate electromyography (EMG) which involves using a measured signal to control a prosthetic device. The measured signal is generated through muscle contractions from a site usually located on the residual limb. Cartesian control generally requires at least two muscle sites, whereas joint control can use a single muscle site and incorporate switching between joints. Patients that have lost a majority of their arm typically have, at most, a single muscle site available. A new surgical procedure called Targeted Muscle Reinnervation (TMR) involves the mapping of nerves from the residual limb to healthy muscle tissue [8]. One advantage of this procedure is that it can produce multiple muscle sites for use in controlling a prosthetic device, making Cartesian control possible.

The Glenrose Rehabilitation Hospital in Edmonton, Alberta, Canada has recently begun performing TMR surgeries and expressed a need for a training tool for TMR patients. In 2011, an experimental robotic arm was developed that incorporated EMG control of the individual joints [9, 10]. The primary goal for the experimental robotic arm was to train TMR patients; however, the secondary goal was to serve as a research platform.

This work is aimed at incorporating Cartesian control into the experimental robotic arm to get a comparison between joint control and Cartesian control. In order to more systematically evaluate the perceived benefits of Cartesian control, two versions of Cartesian control were tested. Version 1 implemented the Cartesian control methodology but only allowed for motion in one direction at a time. Version 2 allowed for the combination of two directions, therefore, allowing straight-line motion. By evaluating Cartesian control in this manner the benefit of a more intuitive approach can be measured by comparing Cartesian control version 1 to joint control. Any additional benefit gained by Cartesian control version 2 will indicate the increased effectiveness due to incorporating straight-line motion. The testing of Cartesian control against joint control on a relatively anatomically correct experimental robotic arm that can move in three dimensions will provide an indication of the benefit to be gained by incorporating Cartesian control into currently available prosthetic arms. The current prosthesis usage rates for above-elbow amputees indicates a need for improvement in commercially available prosthetic arms; it is hoped that Cartesian control could offer improvements in control making prosthetic arms more effective for above-elbow amputees. In addition, it is worthy to note that the concepts of this research can be extended to myoelectrically controlled artificial legs, in which the movement of the foot can be controlled in a Cartesian coordinate system that is attached to the patient's body.

The experimental robotic arm will be introduced and followed by the development of the inverse kinematics solution for the robotic arm. Next, the development of the Cartesian controller will be discussed including the methodology used for singularity and collision avoidance. In order to evaluate Cartesian control, experimental testing was performed on both joint control and Cartesian control. The experimental test setup, results, and user feedback will be discussed as well as comparisons made to tests with the same experimental robotic arm using joint control.

## 2. THE EXPERIMENTAL ROBOTIC ARM SYSTEM

An experimental robotic arm system was set up in the Advanced Robotics Research Laboratory at the University of Alabama in Huntsville (UAH) (Fig. **1**). The system consists of a host computer, a target computer, a signal conversion board, a power supply, and an AX-12 Smart Arm robotic arm.

### 2.1. Hardware

The host computer is an up-to-date computer capable of running the latest version of MATLAB/Simulink, and its xPC-Target optional toolbox. The target computer is capable or running MS-DOS operating systems and has a RS232 compatible serial port.The host and target computers are connected *via* Ethernet ports for communication. A custom-built board converts RS232 serial commands issued by the target computer to TTL commands, which is accepted by the controller of the AX-12 servomotors on the robotic arm. The details of the design of the conversion board is found in [11].

The robotic arm component of the system is an AX-12 Smart Arm, a robotic arm kit from the company Crustcrawler. The AX-12 Smart Arm consists of 4 rotational degrees of freedom and the Hand Open-Close function. The four rotational degrees of freedom are Shoulder Rotation, Elbow Flexion-Extension, Wrist Flexion-Extension, and Wrist Rotation. These degrees of freedom are pictured in Fig. (**2**). The joint rotations are controlled by the AX-12 servomotors which, in addition to being powerful, offer feedback in temperature, load, and position [12]. Both the load and position feedback were used in the Cartesian controller.

Fig. (2)

AX-12 smart arm degrees of freedom.

### 2.2. Software

The software components include the robotic arm's inverse kinematic solution, collision avoidance algorithm, singularity avoidance calculations, and a Graphical User Interface (GUI). All the components are developed on the host computer using MATLAB/Simulink environment. The software is compiled using the xPC-Target optional toolbox, which generates a stand-alone executable program. The stand-alone executable program is uploaded *via* TCP/IP communication to the target computer, which runs the program in real-time at the command of the GUI on the host computer.

#### 2.2.1. Graphical User Interfaces and Control Approaches

Three different control approached are tested using the experimental system. A GUI is prepared for each control approach.

The first control approach is the joint control, in which the user directly specifies the angular rates of rotation of each joint. The GUI that accepts the user inputs is shown in Fig. (**3**). When using this GUI, the goal of the user is to position the hand around an object for grasping. Current multi-joint prostheses are controlled one joint at a time. To mimic this mode of operation, the user selects a joint (e.g. the shoulder joint), sets a rotation rate using the corresponding slider bar in the GUI, and clicks ``Update Speed Input.'' The selected joint starts moving with the specified rate. When the user is satisfied with the new position of the arm, he/she clicks on ``Pause,'' and selects another joint to move. The user switches between the motion of the joint as he/she wishes until the hand is positioned around the object for grasping.

Fig. (3)

GUI for the joint control approach.

The second control approach is the version 1 of the Cartesian control, in which the user directly specifies the inertial speed components of the hand in the forward- backward, left-right, and up-down directions separately. The GUI that accepts the user inputs is shown in Fig. (**4**). The goal of the user is to position the hand around an object for grasping. In version 1 of the proposed Cartesian control, the user selects an inertial direction (e.g. forward) for the hand, sets a linear speed for the motion using the corresponding slider bar in the GUI, and clicks ``Update Speed Input.'' When the user is satisfied with the new position of the arm, he/she clicks on ``Pause,'' and selects another inertial direction for the motion. The user switches between the directions as he/she wishes until the hand is positioned around the object for grasping.

Fig. (4)

GUI for the version 1 of the Cartesian control approach.

The third control approach is the version 2 of the Cartesian control, in which the user directly specifies the inertial speed components of the hand in the diagonal (simultaneous forward-backward and left-right), and up-down directions separately. The GUI that accepts the user inputs is shown in Fig. (**5**). In version 2 of the proposed Cartesian control, the user selects a diagonal inertial direction for the hand to position the hand directly above the object. He/she sets linear speed components for the motion using the numerical inputs in the GUI, and clicks ``Update Speed Input.'' When the user is satisfied with the new position of the arm, he/she clicks on ``Pause,'' and selects Up-Down direction for the motion. The user switches between the directions as he/she wishes until the hand is positioned around the object for grasping.

Fig. (5)

GUI for the version 2 of the Cartesian control approach.

The reason for the existence of two versions for the Cartesian control is explained in Section 6. The Cartesian control approaches rely on the inverse kinematics of the AX-12 Smart Arm. Also, for application of Cartesian control approaches, singularities and collisions must be avoided. In the following, the inverse kinematic solution, and singularity and collision avoidance are discussed.

## 3. INVERSE KINEMATICS SOLUTION

One reason joint control is so widely used in prosthetics is that it does not require any kinematic calculations in real-time. Cartesian control requires the solution to the inverse kinematics solution, meaning that, given the desired hand velocity, the required joint angular velocities must be obtained. The inverse kinematics solution was formulated for the robotic arm component of the experimental system; this solution forms the basis of the Cartesian controller.

A common method used to solve the inverse kinematics problem is to use an inverse Jacobian that relates the desired hand motion, or task, to the joint angle rates. The number of rows in the Jacobian will equal the length of the task vector, and the number of columns will equal the number of degrees of freedom (DOFs) of the robotic arm. A redundant manipulator is one that has more DOFs than needed to achieve the desired task, and, hence, results in a rectangular Jacobian matrix. Because the inverse of the Jacobian is required for the inverse kinematics solution, it is desirable that the Jacobian be square so that it is directly invertible. Additionally, a square Jacobian matrix with full rank results in a unique inverse kinematics solution [13]. If the task vector only involves the 3 × 1 vector of Cartesian linear velocities of the hand, the AX-12 Smart Arm is a redundant manipulator because it has four DOFs (excluding Hand Open-Close), one more than required to achieve the desired hand behavior.

A number of methods for solving the inverse kinematics for a redundant manipulator through the use of the Jacobian have been explored. These methods can be categorized into approximate and exact solutions [14]. For this work an exact solution to the inverse kinematics was desired. One exact method is the extended Jacobian method introduced in [15]. This method essentially extends the rectangular Jacobian matrix until it is square by adding tasks to the task vector.

In the following, first, the link frames are defined. Second, the method of derivation of the Jacobian matrix for the main task is explained. The Jacobian matrix of the additional task is derived. Finally, the extended Jacobian for the robot is presented.

### 3.1. Denavit-Hartenberg (DH) Frames

The frames that are affixed to the AX-12 Smart Arm are shown in Fig. (**6**). Frame 0 is attached to the patient's body. Frames 1 to 4 are attached to links 1 to 4, respectively. Frame 5, which is considered the tool frame, is also attached to link 4 (the gripper, or the hand). However, its origin is located at the center of the gripper (the hand). The Denavit-Hartenberg (DH) parameters of the assigned frames are listed in Table **1**. Using the DH parameters, one can find the 3 × 3 rotation matrices that map any vector expressed in an upper frame to a lower frame . Such rotation matrices are noted by , (see [16]).

Fig. (6)

AX-12 Smart Arm Denavit-Hartenberg link frame assignment [16]. z 's are the unit vectors point along the joint's axis of rotation. x 's are the unit vectors pointing to the orientation of the next frame.

Table 1.

AX-12 Smart Arm link Denavit-Hartenberg (DH) parameters (angles in radians, lengths in inches). The definition of these parameters are found in [16].

### 3.2. Jacobian for the Main Task

For Cartesian control of the AX-12 Smart Arm hand, the ``main task'' consists of linear velocities of the hand (i.e. the origin of frame 5), expressed in frame 0 (i.e. the patient's body), which are contained in the vector ^{0}*v*_{5}. So,

(1)

As mentioned before, the AX-12 Smart Arm has four joints. The four joint rates are organized in a vector as

(2)

The 3 × 4 Jacobian matrix for the main task, *J*_{m}, relates the vector ^{0}*v*_{5} to the vector , defined by

(3)

To expand the matrix *J*_{m}, first, the inertial velocity vector of the hand, ^{0}*v*_{5}, must be calculated in terms of the joint rates . This calculation is done by propagating the linear and angular velocity vectors of each link frame, starting from link 1. The velocity propagation relations are [16].

^{i+1}*v*_{i+1}=(^{i+1}*R*_{i})(^{i}*v*_{i}+^{i}*ω*_{i}×^{i}*P*_{i+1}) …

(4)

(5)

where is the angular velocity vector of frame i expressed along the axis of frame i. Here, ^{0}*v*_{0}and^{0}*ω*_{0} are zero vectors, and is a zero scalar. The position vector ^{i}*P*_{i+1} points from the origin of frame i to the origin of frame *i* + 1. The rotation matrix ^{i+1}*R*_{i} maps any vector expressed in a lower frame i to an upper frame i+1.

Equations (4) and (5) are algebraically iterated from are found in closed-form in linear terms of to . (Note that is zero, because frame 5 is the tool frame that is solidly attached to link 4.) Then,

(6)

The variables are factored from the closed-form relation found for ^{0}**v**_{5}, which results in the 3 × 4 Jacobian matrix of the main task, *J*_{m}.

(7)

### 3.3. Jacobian for the Additional Task

Because the AX-12 Smart Arm is a 4 DOF system, only one additional task is needed to force a square Jacobian matrix. The angular velocity of the hand (i.e. the tool frame) with respect to frame 0 (i.e. the patient's body) about the local z -axis of frame 5, i.e. the third component of ^{5}*ω*_{5}, is selected as the additional task. This component of angular velocity represents the net rate of rotation of the wrist with respect to the patient's body. This component has been selected because of its physical significance in application of the arm. By allowing the user of the arm to specify this component of angular velocity of the hand, he/she can rotate their wrist with their desired rate with respect to his/her body, irrespective of how their body or the rest of the arm is moving.

Now, the third component of ^{5}*ω*_{5}, denoted by ^{5}(*ω*_{3})_{5}, is factored in terms of , which results in the 1 × 4 Jacobian matrix of the additional task, *J*_{a}.

(8)

### 3.4. Extended Jacobian Matrix

The 4 × 4 extended Jacobian matrix, *J*_{e}, for the 4DOF arm is found by augmenting the main and additional Jacobian matrices. So,

(9)

where

(10)

Once the user specifies the desired main and additional tasks, the joint rates are found using

(11)

## 4. DEVELOPMENT OF CARTESIAN CONTROLLER

The block diagram for the Cartesian controller is included in Fig. (**7**). The extended commanded velocity vector, , and the Hand Open-Close command are provided by user inputs using the GUIs described in Section 2.2.1. In version 1 and 2 of Cartesian control, the outputs of the GUI are mapped to the components of in the following manner: = Forward/Backward Speed, = Left/Right Speed, = Up/Down Speed, and ^{5}(*ω*_{3})_{5} = Hand Rotation Rate. The extended commanded velocity vector, , is the only real-time input from the user. The rest of the block diagram shown in Fig. (**7**) is run in real-time by the target computer.

Fig. (7)

Cartesian controller block diagram.

The inverse kinematics solution is employed to convert the commanded Cartesian velocity vector to the joint angular velocity vector, . The joint angular velocities resulting from the inverse kinematics solution are integrated to produce joint angles, θ.

Also within the Inverse Kinematics block is an evaluation of the Jacobian matrix that is sent to the Singularity Check block to predict a close to singular Jacobian matrix. This check will be discussed further in Section 4.1. If the singularity check is not passed, the program terminates in order to avoid dangerous, unstable behavior of the arm. The joint angles as well as the state, open or closed, of the hand are input into the Collision Check block also to be discussed further in Section 4.2. As done in the event of a close to singular configuration, if a collision is detected, the program is terminated. If both the singularity and collision checks are passed, a command is sent to the arm to initiate the performance of the desired task.

Because the AX-12 Smart Arm servos accept both position and velocity commands, the sent command is composed of both the joint angles and joint angular velocities. The joint angles θ and joint angular rates are converted to servo position command φ and servo speed command Ψ, respectively. The AX-12 Smart Arm reacts to the commands and sends back current position information φ as well as load feedback. Because the Jacobian matrix is a function of the joint angles, the servo position φ information is converted back to joint angles θ and is used to update the Jacobian matrix in the Inverse Kinematics block.

Initial testing showed that the servo controlling the Hand Open-Close function often overloaded when picking up an object. The Load Evaluation block assesses the load feedback of the hand servo and stops the closing motion of the gripper when a grasping load has reached. This allows for the real-time adjustment of the grasping load, so that the hand grasps an object firmly enough to pick it up but not too firmly as to cause a servo overload.

### 4.1. Singularity Avoidance

The use of the extended Jacobian method for solving the inverse kinematics problem proved to have many advantages, namely, the simplicity of the methodology for evaluating a relatively new concept. While this advantage makes the extended Jacobian approach desirable for testing a concept as proposed in this work, any time a Jacobian-based method is used to solve inverse kinematics the possibility for singular matrices must be dealt with. Because the inverse kinematics solution involves the inverse of the Jacobian matrix, if singular or close to singular, the solution can yield very large joint angular velocities. Actually commanding the arm with the inverse kinematics solution performed with a singular matrix could command joint angular velocities large enough to break the arm, or, more seriously, injure the user. Much research has been done in singularity avoidance techniques; however, in order to focus on the comparison between joint control and Cartesian control, those techniques were not explored as a part of this work. A simple singularity check was performed, and if the check revealed a close to singular Jacobian matrix, the program was terminated immediately by zeroing out all velocity commands to the arm. By zeroing out only the velocity commands and not the position commands, the arm will cease moving and hold its current position.

The condition number of the Jacobian matrix was used to predict a singularity. The condition number of the extended Jacobian matrix, *κ*(*J*_{e}), is computed by multiplying the norm of the Jacobian by the norm of the inverse Jacobian as shown in Equation 12 [17]. The larger the condition number, the closer the matrix is to being singular. To determine at what condition number a shutdown would be commanded, a number of tests were performed using a simulated version of the arm. A condition value limit of greater than 25 consistently prevented unstable behavior; this limit was implemented in the Singularity Check block pictured in Fig. (**7**).

(12)

### 4.2. Collision Avoidance

In order to protect the user and the arm, a collision avoidance scheme was needed. Contrary to the singularity avoidance technique, collision avoidance was needed for both Cartesian and joint control approaches. Collision avoidance was separated into two components, avoidance of a collision with the ground and avoidance of a collision with the arm itself. Ground collision avoidance is implemented in the Collision Check block shown in Fig. (**7**). The AX-12 servos are designed to operate within user-specified rotation angle limits; these user-specified limits were used to implement a collision avoidance scheme within the servo command to avoid collisions with the arm itself.

The development of the forward kinematics solution formed the basis for the ground collision avoidance scheme. Given the joint angles, θ, the forward kinematics solution can provide the resulting end-effector position. Using the transformation matrices, the hand position could be described in the base frame. By applying the necessary length offsets to account for structure offset from a particular link frame and evaluating the hand position in the base frame, a simple check was performed to determine if the hand position was too close to the ground. Additionally, the hand configuration, opened or closed, factored into this check. When closed, the hand extends outward; therefore, a position close to the ground may pass the ground collision check with the hand opened but not when the hand is closed. For simplicity, ground collision avoidance was implemented as a collision detection that triggered an immediate termination of the program by zeroing out all velocity commands to the arm.

The AX-12 servos are designed with collision avoidance in mind by allowing the command to specify a maximum clockwise (CW) and counterclockwise (CCW) rotation. Once a servo reaches either limit, it will not rotate any further. Based on the geometry of the AX-12 Smart Arm, these limits were set in order to prevent the arm from attempting to move to a configuration where it would collide with itself.

## 5. DEVELOPMENT OF JOINT CONTROLLER

The block diagram for the joint controller is included in Fig. (**8**). The joint rate vector, , and the Hand Open-Close command are provided by user inputs using the GUI described in Section 2.2.1. In joint control, the outputs of the GUI are directly mapped to the components of in the following manner: = Shoulder Rotation rate, = Elbow Flexion-Extension rate, = Wrist Flexion-Extension rate, and = Wrist Rotation rate. The joint rate vector, , is the only real-time input from the user. The rest of the block diagram shown in Fig. (**8**) is run in real-time by the target computer.

## 6. EXPERIMENTAL TESTING

It was hypothesized that Cartesian control would perform better than joint control by implementing a control approach that is both more intuitive and effective. To test this hypothesis, experimental testing was performed in order to evaluate the two control approaches against one another.

Two versions of Cartesian control were developed and tested against joint control. The first version only allowed motion of the hand in one Cartesian direction at a time. This version is referred to as the Cartesian control version 1 (Fig. **4**). The second version allowed the combination of the forward-back and left-right motion of the hand which makes straight-line motions possible in any directions in the horizontal plane. This version is referred to as the Cartesian control version 2 (Fig. **5**).

The intent of version 1 was to test the intuitiveness of the Cartesian control approach against the joint control approach (Fig. **3**). The addition of straight-line motion in version 2 was intended to test the theory that incorporating straight-line motion would increase the effectiveness of the controller.

### 6.1. Experimental Test Setup

A modified version of the Box and Blocks test was used to evaluate the advantages and disadvantages of each controller. The Box and Blocks test is commonly used by occupational therapists to measure the manual dexterity of handicapped patients [18]. The test involves a box with a divider in the middle in which patients are to move as many blocks as they can from one side to the other in one minute. Previous testing of the MTT noted that it was likely that the subjects would only be able to move over a single block in one minute; therefore, the test was modified to specify a set number of blocks and measure the time it took to move them from one side to the other [10]. Additionally, the size of the box was adapted to fit the task space of the AX-12 Smart Arm. This approach was adopted for the testing performed here.

A box with the dimensions shown in Fig. (**9**) was constructed for the testing. Barriers were placed inside the box to close off areas not reachable by the arm. Instead of blocks, compressible balls with a diameter of 35 mm were used. The bottom of the box was covered in felt to try to keep the balls from moving around during the test. Three balls were placed in one side of the box, and the subject was directed to move the three balls over, one at time, to the other side as quickly as possible. For each controller tested, this was done five times alternating the starting side from left to right.

Fig. (9)

Experimental setup (reproduced from [10]).

Five able-bodied subjects were selected to perform the modified Box and Blocks test for each of the three controllers. Studies have shown that approximately 80% of usability problems can be detected with only four to five subjects and that the most severe usability problems are detected in the first few subjects [19]. The joint controller was tested first and was followed by versions 1 and 2 of the Cartesian controller, respectively.

Each subject was allowed to practice with each controller before beginning the timed trials. Once the subject indicated that they were ready to begin the test, the arm was initialized to the starting position and the subject was allowed to begin moving the balls over to the other side of the box once the timer was started. The timer was stopped once the third ball touched the floor of the other side of the box. If a collision or singularity triggered the program to stop, or if the ball was dropped outside of the box, the trial was repeated. Upon completion of the test, each subject was asked to fill out a survey ranking the intuitiveness and effectiveness of each controller.

### 6.2. Experimental Results

Fig. (**10**) shows the trial times averaged over the five subjects. The error bars represent ± one standard deviation. To evaluate the impact of intuitiveness alone, version 1 of the Cartesian controller can be compared to the joint control results. For the first two trials, version 1 of the Cartesian controller produced significantly faster times than joint control, indicating that the Cartesian control approach was easier to learn and, hence, more intuitive. Trials 3 - 5, however, produced similar times, indicating that even though the Cartesian controller was more intuitive, once learned, the joint controller was as effective as version 1 of the Cartesian controller. Cartesian controller version 2, however, consistently achieved smaller times compared to the other two controllers for all 5 trials.

Table **2** shows the result of a one-tailed statistical test of the average times achieved by the joint control, Cartesian control version 1, and Cartesian control version 2 in Fig. (**10**). A -value of less that 0.05 or a -value (Wilcoxon signed-rank test) of 0 suggests that mean time of one controller is significantly different than that of the other controller. Based on these p -values and w -values, the following conclusions can be drawn. The mean time of joint control and Cartesian control version 1 are not significantly different. This confirms that, once learned, Cartesian control version 1 does not perform significantly better than joint control. However, the mean time of Cartesian control version 2 is significantly different than those of joint control and Cartesian control version 1. So, Cartesian control version 2 outperforms the other two controllers.

Table 2.

p -values and w -values from one-tailed statistical test on the data of Fig. 7. JC: Joint Control, CC1: Cartesian Control v1, CC2: Cartesian Control v2.

Another observation is made by a closer look at Fig. (**10**). Although, the average times for trials 3 - 5 for the joint controller and version 1 of the Cartesian controller are similar, version 1 of the Cartesian controller exhibited much larger standard deviations. An attempt was made to discover the reason for this observation. Inspecting the trial times of all subjects closer revealed that four of the five subjects actually performed the task faster with the Cartesian controller; the large standard deviation and, hence, larger average time was mostly due to the time of one subject. It was found that subject 5 had difficulties understanding the working of the GUI for Cartesian control version 1. So, it was decided to analyze the times of the remaining four subjects separately, to see if a different conclusion could be made about the performance of the controllers.

This is done in Fig. (**11**), in which the average times of the five trials were computed excluding subject 5. Fig. (**11**) also supports the previous conclusions by showing that Cartesian control version 1 was significantly faster than joint control for the first trial, but as the subjects progressed through the trials, the joint control and Cartesian control version 1 times tended to converge. Still, a dramatic decrease in trial times can be seen by comparing joint control to version 2 of the Cartesian controller in Fig. (**11**), showing that the additional benefit provided by straight-line motion is significant.

Fig. (11)

Average trial times for subjects 1 – 4.

Table **3** shows the result of a one-tailed statistical test of the average times achieved by the joint control, Cartesian control version 1, and Cartesian control version 2 after removing subject 5 (using the data of Fig. **11**). A p -value of less that 0.05 or a w -value of 0 suggests that mean times of one controller is significantly different than that of the other controller. Based on these p -values, which are more conservative than w -values in this case, the same conclusions that were drawn from Table **3** can be reached. So, isolating the data of subject 5 does not affect the conclusions.

Table 3.

p -values and w -values from one-tailed statistical test on the data of Fig. 8. JC: Joint Control, CC1: Cartesian Control v1, CC2: Cartesian Control v2.

The average times for version 2 of the Cartesian controller were always faster than the average times of the joint controller and version 1 of the Cartesian controller, indicating that version 2 of the Cartesian controller was much more effective than the joint controller and version 1 of the Cartesian controller. Additionally, the Cartesian control version 2 trial times started low and remained low as the subjects progressed through the trials, and smaller standard deviations indicate that this trend was present for all of the subjects tested.

Fig. (**12**) includes the percentage decrease in trial time averaged over the five subjects. A positive percentage represents an improvement over the average joint control time, and the error bars represent ± one standard deviation. The w -value () of the data in Fig. (**12**) suggests that the result is significant at . In general, both Cartesian controllers were more effective than the joint controller; only two version 1 Cartesian controller trials resulted in average percentage increases in time, and the percentage increases were less than 10%. When subject 5 was removed from the average calculations, shown in Fig. (**13**), these two percentage increases in time became small percentage improvements. Fig. (**13**) clearly shows the advantage of version 2 of the Cartesian controller with average percentage improvements over all trials and average percentage improvements of up to 100%. The w -value (=0) of the data in Fig. (**13**) suggests that the result is significant at *p* ≤ 0.05.

Fig. (12)

Average percentage improvement in trial times. (Positive percentage represents a decrease in trial time compared to Joint control).

Fig. (13)

average percentage improvement in trial times for subjects 1 - 4. (Positive percentage represents a decrease in trial time compared to Joint Control).

Version 2 of the Cartesian controller includes both the ability for straight-line motion and a more intuitive user command, removing the need to resolve the desired hand velocity into joint commands. The timed trial results show that each of these features improved the time in which it took the subjects to complete the task. By allowing the subjects to command the hand velocity in a Cartesian frame, they were able to, initially, perform the trials quicker than when they were required to command individual joint velocities. Once the ability for straight-line motion was incorporated, the trial times reduced significantly across all subjects tested. The results indicate that the more intuitive command offered by the Cartesian control version 2 allowed the user to learn to control the arm more quickly, and the additional benefit of straight-line motion allowed the user to consistently complete the task at a faster pace.

### 6.3. User Feedback

In addition to the quantitative results obtained from the timed trials, user feedback was used to further evaluate the benefits of Cartesian control. A survey was administered to each subject after the completion of the timed trials in which they were asked to assign a number value from 0 - 5 to indicate the intuitiveness and effectiveness of each controller tested. Intuitiveness was described as how easy it was to learn to use the controller; a value of 0 represented a controller that was difficult to learn or took a long time to learn, and a value of 5 represented a controller that was easy to learn or was learned quickly. Effectiveness was described as how well the controller was able to perform the task; a value of 0 represented a controller that was frustrating or cumbersome to use and performed the task poorly, and a value of 5 represented a controller that was easy to use and performed the task effectively.

Fig. (**14**) shows the intuitiveness ranking for all five subjects as well as the average over all five subjects. The error bars represent one standard deviation. Intuitiveness rankings are well correlated with the performance in the timed trials. On average the subjects felt that the joint control method was the least intuitive and version 2 of the Cartesian control method was the most intuitive.

Fig. (14)

Intuitiveness rankings based on user feedback.

The user feedback on the perceived effectiveness of each control method, shown in Fig. (**15**), also correlated with the performance in the timed trials. On average, the subjects felt that both joint control and version 1 of the Cartesian controller were similarly effective in achieving the task. Comparisons between these two in the timed trials support this opinion. In the timed trials, version 1 of the Cartesian controller produced faster times for the beginning trials, but as the subjects progressed through the trials, the trial times for the two controllers tended to converge. On average, the subjects felt that version 2 of the Cartesian controller was more effective than both joint control and version 1 of the Cartesian controller. This is also supported by the timed trials in that version 2 of the Cartesian controller produced faster average times than either of the other two controllers.

Fig. (15)

Effectiveness rankings based on user feedback.

## 7. CONCLUSION

An alternative control approach for a robotic prosthetic arm was proposed and tested. The alternative control approach utilized Cartesian control of the hand as opposed to the traditional joint control approach. It was hypothesized that the Cartesian control approach would be both more intuitive and more effective.

Three controllers were developed; one employed traditional joint control, and the other two implemented varying degrees of Cartesian control. The first Cartesian controller, aimed at testing the intuitiveness of the control approach, allowed control of the hand in a single Cartesian direction at a time. The second allowed the combination of two Cartesian directions at a time which makes straight-line motion possible in the horizontal plane. The second version of Cartesian control was developed to test the effectiveness of straight-line motion which is only possible with Cartesian control.

An experimental robotic arm was utilized for testing both the intuitiveness and effectiveness of the Cartesian control approach against traditional joint control. The experimental testing involved the completion of a simple motor task by five able-bodied human test subjects. The subjects were two females and three males, whose age ranged from 25 to 65 years. The testing performed shows a clear superiority of Cartesian control over joint control. The intuitiveness gained by Cartesian control allowed the user to learn to control the arm quicker. The added efficiency of straight-line motion produced a significant improvement across all trials. User feedback further emphasized the advantage of Cartesian control over joint control. The effects of age and gender on the results of the tests were not studied.

## ACKNOWLEDGEMENTS

Declared none.

## CONFLICT OF INTEREST

The authors confirm that this article content has no conflict of interest.

## REFERENCES

1. Ziegler-Graham K, MacKenzie E J, Ephraim P L, Travison T G, Brookmeyer R. “Estimating the prevalence of limb loss in the united states: 2005 to 2050”. Archives of physical medicine and rehabilitation March. 2008;89:422–429.[PubMed]

2. Raichle K A, Hanley M A, Molton I, Kadel N J, Campbell K, Phelps E, Ehde D, Smith D G. “Prosthesis use in persons with lower- and upper-limb amputation”. Journal of Rehabilitation Research and Development September. 2008;45:961–972.[PMC free article][PubMed]

3. Wright T W, Hagen A D, Wood M B. “Prosthetic usage in major upper extremity amputations”. The Journal of Hand Surgery July. 1995;20:619–622.[PubMed]

4. Akhtar A, Hargrove L J, Bretl T. “Prediction of distal arm joint angles from emg and shoulder orientation for prosthesis control”. In: 34th Annual International Conference of the IEEE EMBS. 2012:4160–4163.[PubMed]

5. Velliste M, Perel S, Spalding C M, Whitford A S, Schwartz A B. “Cortical control of a prosthetic arm for self-feeding”. Nature International Weekly Journal of Science June. 2008;453:1098–1101.[PubMed]

6. Clanton S, Laws J, Matsuoka Y. “Determination of the arm orientation for brain-machine interface prosthetics”. In: IEEE International Workshop on Robot and Human Communication. 2005:422–426.

7. Jones B, Kyberd P. “Improved control for an artificial arm”. in Proceedings of the 2005 MyoElectric Controls/Powered Prosthetics Symposium. 2005:1–6.

8. Kuiken T A, Li G, Lock B A, Lipschutz R D, Miller L A, Stubblefield K A, Englehart K B. “Targeted muscle reinnervation for real-time myoelectric control of multifunction artificial arms”. The Journal of the American Medical Association February. 2009; 301:619–628.[PMC free article][PubMed]

9. Dawson M R. “The development of a myoelectric training tool for above-elbow amputees”. Master s thesis University of Alberta Edmon-ton AB Canada. 2011[PMC free article][PubMed]

10. Dawson M R, Fahimi F, Carey J P. “The development of a myoelectric training tool for above-elbow amputees”. Open Biomedical Engineering Journal February. 2012;6:5–15.[PMC free article][PubMed]

11.

## Denavit Hartenberg Analysis, Part 5: Assigning Coordinate Frames

Part 1/Part 2/Part 3/Part 4/Part 5/Part 6

Last time, we showed that we can use a sequence of four particular transformations to uniquely describe the transformation between two coordinate systems which satisfy the following two properties:

For example, these two frames:

This is great, but it’s only generally useful if we can show that we can always describe the joints and arms of our robot in a way that satisfies these two constraints. We’ll show just how to do that now by considering the three possible arrangements (1, 2, 3) of joint axes. We’ll then explain how to compute the link parameters and thus construct the transformation matrix.

To do it, let’s first bring back our robot from Part 1:

To make him a little more useful, let’s add another joint to each arm and number the links and joints in one arm:

As we did before, we’ve named the joints and links so that when joint is activated, link will move.

Let’s simplify this drawing for now:

Now we begin assigning coordinate frames. Let’s first choose something intuitive for . Specifically, let’s choose the axis of rotation of joint 1. In general, we will will say the following: We can then choose (the origin of coordinate system 0) anywhere we like along and place wherever we want (we’ll make it horizontal just for convenience here). Once we have and , the right hand rule dictates where must go. Let’s add this to the simplified robot arm ( comes right out of the page, so it isn’t shown here):

Now that we have somewhere to start, we will define each new frame using the position and orientation of the previous frame . Remember that we’ve defined each as the axis of rotation or translation for joint . There are three cases that we’ll need to address to decide how to chose the origins and the other unit vectors and .

## Case 1: and are not coplanar

Two vectors in three dimensional space are *non-coplanar* if they can’t lie in the same flat plane. For example, consider these two vectors:

An interesting property of non-coplanar vectors is that we can show that there is exactly one line segment which is perpendicular to both vectors and which connects them with the shortest length. We’ve labeled that line segment above. If our robot has two adjacent joints whose axes are non-coplanar, then we will use the following procedure to assign the new frame :

Find the shortest line connecting the two axes which is perpendicular to both and call it .

The point where intersects becomes

goes through in the same direction as

is defined by the right hand rule

You can see this procedure in action here. First, the joint setup, with the axes marked:

Then the assignment of coordinate frames:

## Case 2: and are parallel

Two parallel vectors have infinitely many common normals (vectors which are perpendicular to both of them), so we can choose any one of these to be the direction of . For convenience, we’ll pick so that it passes through . So, our procedure is:

Find the vector which is perpendicular to and and which passes through . Call it .

The point where intersects becomes

goes through in the same direction as

is defined by the right hand rule

You can see this procedure in action here. First, the joint setup, with the axes marked:

Then the assignment of coordinate frames:

## Case 3: intersects

If and intersect, then we just choose to be perpendicular to both vectors (this gives us two opposing possible directions for , so we pick whichever we like). Our procedure is:

Define to be perpendicular to both and .

Place anywhere along . For convenience, let’s pick the point of intersection with .

is defined by the right hand rule

Once more, the joint setup, with the axes marked:

Then the assignment of coordinate frames:

## Computing the Link Parameters

Now that we’ve determined the exact position and orientation of the adjacent coordinate frames, we need to find the transformation matrix between each pair of frames. To do that, we find the link parameters that were introduced in Part 3 for each joint. The parameters are calculated as follows: Once we’ve done this, we know exactly the transformation matrix from Frame to Frame : If our joint is revolute (rotating), then only will vary. If it’s prismatic (sliding), then only varies.

## Assigning the Final Frame

Our final coordinate frame is called the “tool frame,” and it goes at the very end of the robot’s arm. We call it the tool frame because it is the only frame in which the position of the robot’s tool (gripper, drill, welding arm, death laser, etc.) is fixed. This is by far the most useful frame, because, for example, if we want to move the arm until an object is at the center of the gripper, we simply need to move the joints until the position of the object is (0, 0, 0) in the tool frame.

By convention, we align the tool frame so that the origin is between the fingers of the gripper or at the point of the tool. We orient to the direction of approach and to the direction along which the fingers of the gripper move. This defines the orientation of . You can see an example of this here:

The calculation of the link parameters for this pair of frames is done exactly the same as with every other pair.

## Solving the Entire Arm

We now know everything we need to put together a set of transformation matrices to describe an arm consisting of any number of revolute and prismatic in any configuration we can imagine. Our general method is as follows (this is taken primarily from Chapter 3 of Robot Modeling and Control by Spong et. al):

Locate and label the joint axes .

Establish the base frame by choosing an origin somewhere along , and choose convenient directions for and .

For each additional joint , locate the origin where the common normal to and intersects . If intersects , then place at their intersection. If is parallel to , then place anywhere along .

Locate along the common normal between and through , or in the direction normal to the plane containing and if they intersect.

Locate using the right hand rule.

Repeat steps 3 through 5 for each joint frame .

Create the final (tool) frame as described in the tool frame section.

Create a table of the link parameters between each adjacent pair of coordinate frames.

Form the homogeneous transformation matrices by substituting these parameters into the matrix equation:

Determine the overall transformation from the base of the arm to its end by multiplying the matrices together:

## Conclusion

That’s it! We’ve covered the entire theory behind Denavit-Hartenberg analysis. In the next and final post, we’ll go through a few examples and talk about non-standard joints (joints which aren’t simply revolute or prismatic). Enjoy!

Robin Deits25 June 2012Next Post →← Earlier Post

## One thought on “Denavit Hartenberg Frame Assignment Of Benefits”