Citation |

- Permanent Link:
- https://ufdc.ufl.edu/UFE0011832/00001
## Material Information- Title:
- Numerical Analysis of a Redundant Compliant Spatial Mechanism
- Creator:
- KAMATH, JEAN-FRANCOIS AJIT
- Copyright Date:
- 2008
## Subjects- Subjects / Keywords:
- Axes of rotation ( jstor )
Degrees of freedom ( jstor ) End effectors ( jstor ) Jacobians ( jstor ) Kinetics ( jstor ) Legs ( jstor ) Mechanical forces ( jstor ) Mechanical systems ( jstor ) Simulations ( jstor ) Wrenches ( jstor ) City of Gainesville ( local )
## Record Information- Source Institution:
- University of Florida
- Holding Location:
- University of Florida
- Rights Management:
- Copyright Jean-Francois Ajit Kamath. Permission granted to University of Florida to digitize and display this item for non-profit research and educational purposes. Any reuse of this item in excess of fair use or other copyright exemptions requires permission of the copyright holder.
- Embargo Date:
- 7/30/2007
- Resource Identifier:
- 74666757 ( OCLC )
## UFDC Membership |

Downloads |

## This item has the following downloads:
kamath_j ( .pdf )
kamath_j_Page_010.txt kamath_j_Page_071.txt kamath_j_Page_002.txt kamath_j_Page_114.txt kamath_j_Page_026.txt kamath_j_Page_088.txt kamath_j_Page_117.txt kamath_j_Page_092.txt kamath_j_Page_080.txt kamath_j_Page_066.txt kamath_j_Page_035.txt kamath_j_Page_055.txt kamath_j_Page_116.txt kamath_j_Page_053.txt kamath_j_pdf.txt kamath_j_Page_043.txt kamath_j_Page_058.txt kamath_j_Page_067.txt kamath_j_Page_027.txt kamath_j_Page_122.txt kamath_j_Page_125.txt kamath_j_Page_074.txt kamath_j_Page_072.txt kamath_j_Page_095.txt kamath_j_Page_078.txt kamath_j_Page_008.txt kamath_j_Page_057.txt kamath_j_Page_061.txt kamath_j_Page_086.txt kamath_j_Page_068.txt kamath_j_Page_120.txt kamath_j_Page_013.txt kamath_j_Page_004.txt kamath_j_Page_054.txt kamath_j_Page_012.txt kamath_j_Page_119.txt kamath_j_Page_124.txt kamath_j_Page_118.txt kamath_j_Page_011.txt kamath_j_Page_107.txt kamath_j_Page_108.txt kamath_j_Page_106.txt kamath_j_Page_113.txt kamath_j_Page_099.txt kamath_j_Page_038.txt kamath_j_Page_040.txt kamath_j_Page_021.txt kamath_j_Page_031.txt kamath_j_Page_100.txt kamath_j_Page_015.txt kamath_j_Page_109.txt kamath_j_Page_079.txt kamath_j_Page_056.txt kamath_j_Page_036.txt kamath_j_Page_111.txt kamath_j_Page_030.txt kamath_j_Page_018.txt kamath_j_Page_089.txt kamath_j_Page_016.txt kamath_j_Page_081.txt kamath_j_Page_032.txt kamath_j_Page_115.txt kamath_j_Page_022.txt kamath_j_Page_049.txt kamath_j_Page_110.txt kamath_j_Page_029.txt kamath_j_Page_062.txt kamath_j_Page_028.txt kamath_j_Page_033.txt kamath_j_Page_091.txt kamath_j_Page_070.txt kamath_j_Page_020.txt kamath_j_Page_121.txt kamath_j_Page_046.txt kamath_j_Page_090.txt kamath_j_Page_063.txt kamath_j_Page_104.txt kamath_j_Page_019.txt kamath_j_Page_105.txt kamath_j_Page_082.txt kamath_j_Page_047.txt kamath_j_Page_073.txt kamath_j_Page_034.txt kamath_j_Page_003.txt kamath_j_Page_076.txt kamath_j_Page_064.txt kamath_j_Page_050.txt kamath_j_Page_102.txt kamath_j_Page_096.txt kamath_j_Page_075.txt kamath_j_Page_023.txt kamath_j_Page_045.txt kamath_j_Page_017.txt kamath_j_Page_001.txt kamath_j_Page_069.txt kamath_j_Page_048.txt kamath_j_Page_009.txt kamath_j_Page_037.txt kamath_j_Page_007.txt kamath_j_Page_039.txt kamath_j_Page_103.txt kamath_j_Page_085.txt kamath_j_Page_065.txt kamath_j_Page_006.txt kamath_j_Page_051.txt kamath_j_Page_025.txt kamath_j_Page_087.txt kamath_j_Page_042.txt kamath_j_Page_101.txt kamath_j_Page_059.txt kamath_j_Page_041.txt kamath_j_Page_024.txt kamath_j_Page_014.txt kamath_j_Page_083.txt kamath_j_Page_052.txt kamath_j_Page_094.txt kamath_j_Page_093.txt kamath_j_Page_097.txt kamath_j_Page_044.txt kamath_j_Page_098.txt kamath_j_Page_123.txt kamath_j_Page_084.txt kamath_j_Page_060.txt kamath_j_Page_077.txt kamath_j_Page_005.txt kamath_j_Page_112.txt |

Full Text |

NUMERICAL ANALYSIS OF A REDUNDANT COMPLIANT SPATIAL MECHANISM By JEAN-FRANCOIS AJIT KAMATH A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2005 This dissertation is dedicated to my parents for their support and patience through the years and to Dr. Carl D. Crane III for his guidance and invaluable input. It is also dedicated to my uncle and aunt for their insight and experience. ACKNOWLEDGMENTS The author acknowledges the Center for Intelligent Machines and Robotics at the University of Florida for providing a research assistantship in addition to the resources and faculty that enabled completion of this project. The Department of Energy is also acknowledged for its support via grant to the University of Florida. TABLE OF CONTENTS A C K N O W L E D G M E N T S ................................................................................................. iii LIST OF TABLES ....................................................... ............ .............. .. vii L IST O F FIG U R E S .............. ............................ ............. ........... ... ........ viii ABSTRACT .............. ................. .......... .............. xi CHAPTER 1 IN TRODU CTION ................................................. ...... ................. 2 GENERAL CONTROL STRATEGY ................................... .....................................4 G eneric C ontroller D esign ........................................................... .............4 D ecoupling the L egs ......................................... .............. .. ........ .. .. Other A ssum options ....................... .... ............................................. .6 3 NUMERICAL FORWARD ANALYSIS ............... .......................................... 7 Numerical vs. Analytical: Similarities in Approach................. ............ ... .............7 Geom etric Constraints ........................................... .. ........ .................. .7 Previous Positioning .................. .............................. .. .... ... .. .......... G general N um erical Solution ........................................ ................................. 8 Error Function ................................................... ............... Jacobian M atrix and Its Applications ................................. ......................10 Wrenches ................ ......... ........ ......... 10 Jacobian matrix formulation ...... .............. ...............11 Correctional Function .................. .... ....................... .. ........12 Application and Results for the Numerical Forward Analysis................................15 Planar 2-2 + 1 Truss Platform ........................................ ......... ............... 15 G uess close to solution ................................................... ........ .......17 Guess far from solution ........................ ................................................... 18 Over Constrained 3-3 + 1 Spatial Mechanism .......................................... 19 Modified 3-3 + 1 Spatial Mechanism.............. ......................... .............. 20 Final Com m ents and Conclusions ........................................ ......................... 22 4 CONTROLLER DESIGN AND IMPLEMENTATION ................. ....................23 Separating the D O F ............................................... ........................ .... ........... .. 23 Simplified System Model and Controller Implementation...........................25 Final Thoughts ....................................................... ............ ......... 27 5 APPLICATION TO A PLANAR MECHANISM ..................................................28 System D description and Sim ulation M odel ........................................ .....................28 System Parameters and Performance Criteria ................................. ................ 30 R esu lts of T testing .................................................................. ............... .. 3 1 R u n 1 ...........................................................................................3 2 R u n 2 .............................................................................3 4 R u n 3 .............................................................................3 6 R u n 4 .............................................................................3 8 Final C om m ents................................................... 40 6 SPATIAL MECHANISM AND ADDITIONAL CONSIDERATIONS FOR CON TROLLER DESIGN ............................................... ............... 42 G general Sy stem D description ................................................................................. 42 M modifications to C control Strategy .............. .. ............................. .............. 44 Compensating for Compliance and Over-Constraint .......................................44 Coordinate System Conversion ....................................................... 45 7 DECOUPLING COMPLIANT ELEMENTS FROM LEGS ....................................48 L eg M o d el .......................................................................................................4 8 Free B ody D iagram and E O M ........................................................................ ...49 Performance of the Decoupling Controllers .............. .........................................50 R results of Testing .. ............................................... ................. 53 Lim stations of Controller U sage .............................................. ......... ...... 54 8 MINIMUM ENERGY OPTIMIZATION ....................................................56 Potential Energy: General Form and Reasoning ...................................... ......... 56 Force-Torque State and Equations........................... ............... ............... 57 F final C om m ents.................................................... .. .. ...... ....... .... .. ..59 9 RESULTS OF TESTING ON THE SPATIAL MECHANISMS............................61 M option s in Single D O F ...................................................................................6 1 Z -A x is D isplacem ent..................................................................................... 62 Z -A xis R rotation ........................................... ........................... .................64 Y-Axis Displacem ent ............. ..................... ......................................66 Y -A xis R otation................................................... ............... ............... 68 X -A xis D isplacem ent ................................. ............................ ............. 70 X -A xis R rotation .............................................................................. 72 M otion s in M multiple D O F ........................................ ............................................74 X-Y Displacem ent .................. .......................... .... .... ................. 74 v X -Y -Z D isplacem ent ........................................ ............................................76 X -Y -Z R rotation .............................. .... ....................... ... ...... .... ..... ...... 78 Full 6 D O F M option ...... ......................... ..... ........ ..... .. ........ .... 80 M odified Spatial M echanism ........................................................... ............... 81 10 FINAL COMMENTS AND FUTURE WORK ......................................................84 APPENDIX A SY STE M D IA G R A M S ................................................................... .....................85 B MATLAB CODE NEEDED FOR SIMULATIONS ..............................................94 L IST O F R E F E R E N C E S ......... ................. ................................................................ 112 BIOGRAPHICAL SKETCH .............. .......................... 113 LIST OF TABLES Table p 3-1 Results of numerical forward analysis for planar mechanism with the guess close the solution................................................................ ........18 3-2 Forward analysis for planar mechanism with the guess far from the solution.........18 3-3 Results of forward analysis for the redundant spatial mechanism...........................20 3-4 Results for testing of numerical forward analysis for the modified spatial m mechanism ............................... ................................. .......... 22 5-1 R results of R un 1. ................................................... .... ...... ...........34 5-2 R results of R un 2. .......................... ................ ........ ...... .............. .. 36 5-3. Results of Run 3 ................ .... ........................ ...... .................. .......... 38 5-4 Results of Run 4. ................................................. ... ....... .. ...... ... 40 LIST OF FIGURES Figure page 2-1 Block diagram representation of a classical feedback controller..............................4 3-1 Illustration of line of action and applied wrench relative to point A. ....................10 3-2 Effect of change in leg length on positioning of the end effector..........................13 3-3 Effect of change in leg length on orientation of the end effector ..........................13 3-4 Planar truss m mechanism ...................................... ............ .................................. 16 3-5 Spatial 3-3 + 1. Note that the upper triangle represents the end effector ...............19 3-6 M modified Spatial 3-3 + 1 .................................. ........................................21 4-1 End effector and forces acting upon it. The net-wrench is shown as W ...............24 4-2 Block diagram for a single mass system. ..................................... ............... 25 5-1 Planar truss mechanism with asymmetry. ..................................... ...............28 5-2 System model created in Simulink, representing the planar truss mechanism. .......29 5-3 X-displacement of end-effector for first run. ................................ .................32 5-4 Y-displacement of end-effector for first run. ................................ .................33 5-5 0-displacement of end-effector for first run. ................................ .................33 5-6 X-displacement of end-effector for second run......................................................35 5-7 Y-displacement of end-effector for second run......................................................35 5-8 0-displacement of end-effector for second run.................................................36 5-9 X-displacement of end-effector for third run. .................................. ...............37 5-10 Y-displacement of end-effector for third run. .................................. ...............37 5-11 0-displacement of end-effector for third run. ................... ........................ 38 5-11 X-displacement of end-effector for fourth run ................. .............................. 39 5-12 Y-displacement of end-effector for fourth run ................. .............................. 39 5-13 0-displacement of end-effector for fourth run.................................................... 40 6-1 Layout of the spatial mechanism and connection points. The base is larger than the end effector, which is centered above the base triangle.................. ................43 6-2 The control block used in the spatial mechanism................................ ...............47 7-1 Generic model of a leg containing compliant elements. ........................................48 7-2 Free body diagram of the actuator mass with reactionary forces from the springs an d d am p ers................................. .......................................................... .... 4 9 7-3 Controller for the leg actuator. ............................................................................ 50 7-4 Overview of leg model. This shows the primary controller and a representation of the entire leg, including compliant elements. ................... ............................. 51 7-5 The actual leg m odel itself. .............................................. ............................ 52 7-6 Controller for decoupling the compliant portion of the leg .................................53 7-7 Results of testing both with and without the decoupling controller......................54 9-1 Motion of the mechanism along the Z-Axis..........................................................62 9-2 Motions in the other DOFs. (a) Y and X axes. (b) Rotations about the primary ax e s .......................................................................................... . 6 3 9-3 Rotation of the mechanism about the Z-Axis .......................................................64 9-4 Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Y and X axes. ................................................ ............................... 65 9-5 Motion of the mechanism along the Y-Axis. ..........................................................66 9-6 Motions in the other DOFs. (a) Disturbance of Z and X axes. (b) Rotations about the Z, Y and X axes. ............................. ........ ... ...... .. ...... ...... ...... 67 9-7 Rotation of the mechanism about the Y-Axis. .....................................................69 9-8 Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Z and X axes. ................................... ............ ............... ............. 70 9-9 Motion of the mechanism along the X-Axis. ..........................................................71 9-10 Motions in the other DOFs. (a) Disturbance of Z and Y axes. (b) Rotations about the Z, Y and X axes. ............................. ........ ... ...... .. ...... ...... ...... 72 9-11 Rotation of the mechanism about the X-Axis. ....................................................72 9-12 Motions in the other DOFs. (a) Z, Y, and X axes. (b) Rotations about the Z and X ax es. ............................................................................... 73 9-13 Motion of the mechanism along the X and Y axes. ...............................................75 9-14 Motions in the other DOFs. (a) Z and Y axes. (b) Rotations about the Z, Y, and X ax es. ............................................................................... 76 9-15 Motion of the mechanism along all three axes ....................................................77 9-16 Rotations about the Z, Y, and X axes.................................... ........ ............... 77 9-17 Rotation of the m echanism about all axes............................................................ 79 9-18 Rotation of the mechanism about all axes, albeit with a smaller commanded m option ...................................... ...................................................... 7 9 9-19 Motion of the mechanism along the primary axes. ...............................................80 9-20 Rotations about the prim ary axes. ......................................................................81 9-21 New platform configuration with modified connection point .................................. 82 9-22 Rotations about the prim ary axes. ......................................................................83 A-i Top level of planar m echanism ............................................................................85 A-2 Inside the leg subsystem for the planar mechanism..........................................86 A-3 Inside the control block for the planar mechanism. The three PID controllers are clearly visible and act independently of one another. ............................................87 A-4 Top level of the spatial mechanism model................................... .................. ....88 A-5 Inside the leg subsystem of the spatial mechanism...............................................89 A-6 The control block for the spatial mechanism. .................................. ...............90 A-7 Top level of compliant leg m odel. ........................................ ....................... 91 A-8 Inside the com pliant leg m odel. ........................................ ......................... 92 A-9 The decoupling controller for the compliant leg model.................... ...............93 Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science NUMERICAL ANALYSIS OF A REDUNDANT COMPLIANT SPATIAL MECHANISM By Jean-Francois Ajit Kamath August 2005 Chair: Carl D. Crane, III Major Department: Mechanical and Aerospace Engineering This thesis presents the development and testing of a generalized controls strategy that was applied to a redundant spatial mechanism. Three systems were analyzed: a planar, non-redundant, non-compliant mechanism, a redundant, compliant spatial mechanism, and a modification of the spatial mechanism which changed the configuration slightly. The planar mechanism was used to verify the controls strategy and general approach. The modified spatial mechanism was used to investigate the effects that changes in geometry would have on rotational performance. Simulations of the systems and their controllers were performed in MATLAB 6.5 using SimuLink and the SimMechanics package. A numerical forward analysis was developed as a flexible and simple solution to the problem of position determination. This analysis can be readily adapted to virtually any parallel mechanism, regardless of configuration or number of legs. Control of the mechanisms was accomplished by calculating the net wrench that needed to be applied to the end effector, then performing a conversion to determine the required forces in the individual actuators that will generate the desired motion. The controls strategy worked well, effectively decoupling the motions of the system along its various degrees of freedom. While the coupling could not be completely eliminated, the disturbances that resulted were extremely small and had little to no impact on system performance. A method was developed to decouple the compliant elements from the legs, allowing a wide range of leg masses, spring rates, and damping rates to be used in conjunction with the controls strategy that was implemented. This research demonstrated that even relatively simple methods can be used to effectively control highly cross coupled systems. It also showed that an effective process for developing a controller is to separate the system into smaller pieces that can be analyzed easily. Creating a modular controller is a versatile approach to solving a wide range of problems. Finally, this project revealed that redundancy in a parallel mechanism may be highly desirable as it can dramatically improve the performance of the system by expanding the useable workspace. CHAPTER 1 INTRODUCTION Research into control of parallel mechanisms is an ongoing process that still presents many challenges due to the dynamic nature of the systems. The main goal of this project was to develop a generalized control methodology to investigate the dynamic response of an over-constrained, spatial mechanism that contained compliant elements. The system was a modified 3-3 mechanism that incorporated an additional central leg for potentially added stability. Motion was generated using force actuators that were integrated with the controllers. The basis for many of the analyses in this project came from Duffy [1], Crane and Duffy [2], and Baiges-Valentin [3]. The first reference, Statics and Kinematics ln /i Applications to Robotics, focused on the analysis of planar mechanisms in both static and dynamic situations, including configurations requiring compliance. It served as a valuable resource when considering force applications. Kinematic Analysis ofRobot Manipulators was indispensable since it laid out all of the methods for position analysis of parallel mechanisms as well as providing the force convention used to determine the behavior of the systems. Forward and reverse analyses for both serial and parallel mechanisms were explained and were critical in development of the positional analysis in this project. The application of forces and wrenches to bodies and platforms, as discussed in this text, were needed for the proper development of the controllers. Dynamic Modeling ofParallel Manipulators investigated the creation of a generic, compliant leg model and analysis of its dynamic behavior. The paper laid out several simplifications and adjustments to the model that were applicable to the compliant elements in this project, and enabled development of the decoupling controllers, as discussed later. Lee et al. [4], Zhang et al. [5, 6], Lee [7], and Zhang [8] investigated the quality indices and inverses of the line matrices of various parallel mechanisms. They showed that behavior of parallel systems can only be effectively predicted and controlled within a limited workspace due to the development of linear dependence amongst the legs. Beyond a certain range, these mechanisms become "ill-conditioned", making them very difficult to control as they approach singularity configurations. Geometric Analysis of Parallel Mechanisms investigated several parallel mechanisms with varying degrees of freedom. It discussed limitations of the systems and performed singularity analyses, once again showing restrictions on mobility of this class of devices. Tyler [10] and Abbasi et al. [11] looked at force control applications for parallel mechanisms and investigated the use of compliance to facilitate the process. They applied PID controllers to the systems and showed that even the simple control scheme could be used effectively. This was part of the inspiration for the control strategy implemented in this project. This thesis is divided into several key sections that progress from general approaches to specific applications. While several systems were analyzed, most served to test specific aspects of the overall controls approach that was applied to the primary spatial mechanism. Chapter 2 discusses the general approach to designing the controllers and critical assumptions and considerations for the systems that were analyzed. In Chapter 3, the numerical forward analysis, critical for positioning information, is developed and tested. Chapter 4 goes into the specifics of designing the controllers for a generic parallel mechanism without compliance. Chapter 5 shows a specific application of this controls approach to a planar mechanism as a proof of concept. Chapter 6 introduces the full spatial mechanism, along with compliant elements and discusses additional considerations for controller development. Chapter 7 develops a method for decoupling the compliant elements from the system so that the mechanism will respond similarly to the non-compliant systems. Chapter 8 shows how the obstacle of over- constraint was solved to enable proper application of the control forces. Chapter 9 discusses the results of testing on the spatial mechanism, as well as a slight modification of the system configuration. Finally, Chapter 10 presents final thoughts and areas with future research potential. CHAPTER 2 GENERAL CONTROL STRATEGY Control of a parallel mechanism is a fairly complicated task since the behaviors of the legs are highly cross-coupled by nature. This necessitates certain simplifications to the analysis of the kinematics and dynamics of the system. This chapter discusses the general approach and assumptions made in the design of the controllers for the mechanisms analyzed. Some of the potential errors that could be introduced into the systems due to those simplifications will also be examined. Generic Controller Design Any feedback controller follows a basic format that consists of several parts: * Gather information on the current behavior of the system. * Compare this to the desired behavior. * Calculate and apply corrections to the system. 1 +-^Q ---- PID -- -- ---) tant PID Conll Transfer Fcn Spe Figure 2-1. Block diagram representation of a classical feedback controller. A generic controller is depicted in Figure 2-1. While this is a very simple concept that is familiar to all engineers, it highlights a key consideration when designing any controller: What information do you need to record and how do you obtain it? In the case of the mechanisms analyzed in this project, information on the current positioning of the system is critical. However, gathering this data is not trivial in many circumstances. The raw data that could be most easily gathered for the parallel mechanisms was the lengths of the legs. One might remember the discussion in Chapter 1 about the limitations of parallel mechanisms, more specifically regarding the nature of forward analyses. Parallel manipulators can be especially bothersome when attempting to perform a forward analysis due to the mathematical complexity and the potentially large number of solutions. Since one of the objectives of this research was to develop a flexible control strategy that could be easily adapted to many devices, an analytical forward analysis became unreasonable. As a result, an extremely powerful, highly adaptable numerical approach was created to overcome this obstacle. The numerical analysis strategy is discussed in Chapter 3. Decoupling the Legs One of the biggest hurdles when designing the controllers was effectively decoupling the legs from each other. A simplification that is often used with parallel devices is the assumption that the masses and inertias of the legs and actuators are extremely small as compared with the mass and inertia of the end effector. The primary advantage of this technique is the reduction of the system to a single object, making the behavioral analysis far easier. However, as the masses of the other components increase with respect to the end effector, errors in the analysis become more apparent. This naturally brings up the question of, "What is small?" Unfortunately, the answer depends on the system in question as well as the application. To minimize errors, the models used leg masses that were five to seven orders of magnitude less than that of the end effector. Other Assumptions Several other assumptions were made during the course of the project: * The first and probably most important was that the effects of the cross coupling would be essentially eliminated by setting the leg masses to low values. The geometric cross-coupling was considered to be negligible during controller design. * The actuators were modeled to have "perfect" behavior and therefore have no contribution to errors in the system. Perfect behavior assumes instantaneous response to control inputs with no error in the response of the component. * Springs and dampers were assumed to be ideal, linear components with no degradation in performance regardless of conditions. * All bodies in the system were considered rigid. Any flexible elements were modeled as multi-part components. This is discussed in detail in Chapter 7 CHAPTER 3 NUMERICAL FORWARD ANALYSIS Developing a generalized, numerical forward analysis for parallel mechanisms was a challenging, but highly rewarding experience. What developed was a novel approach that was extremely flexible and easily adaptable to the analysis of virtually any parallel system, regardless of configuration or number of legs. Numerical vs. Analytical: Similarities in Approach As discussed in Chapter 1, any analytical, closed-form solution to the forward positioning problem of a parallel mechanism is a tedious and rather complicated process. The more flexible the solution, the more complicated the mathematics behind it must be. However, the numerical approach closely follows the logic of the analytical solution in a couple of respects. Geometric Constraints The first considerations in any forward analysis are the physical constraints and limitations of the system. The relative positions and sizes of the components as well as their possible motions all must be satisfied in the solution. This is the most important restriction that inherently limits the solutions, both analytical and numerical. Previous Positioning Since the goal of the forward position analysis is to determine the current positioning of the system to feed into the controller, only one valid answer exists to the question of "Where am I?" These platforms generally do not move at extreme speeds so it is safe to assume that at a high enough sampling rate, the current positioning of the end effector will be relatively close to its configuration at the previous sample. This means that we can use the previously known position information to determine which solution is correct. In the case of analytical approaches, this simply selects the proper solution from all possibilities. The numerical method instead used the previous positioning as a guess at the solution and then homes in on the correct answer. General Numerical Solution Any typical numerical solution to a problem involves minimization of some error function that describes how close the solver is to the desired answer. Corrections to the guess are made based on some relevant algorithm or set of equations, eventually leading to an answer that is within a specified range of the true results. For the numerical forward analysis of any parallel platform, three things are needed: a guess at the current positioning, an error function based on the actual positioning, and a correctional function that will allow the solver to home in on the proper solution. As mentioned earlier, the initial guess at the current positioning is set as the known positioning at the previous controller update. The error function is also relatively simple in form and application and is discussed below. The correctional function is the most important piece of this approach and requires a certain amount of background in the use and formulation of Jacobian matrices. As a result, an entire section is devoted to the explanation of the correctional function. Error Function To formulate the error function, one must determine what information is available. In the case of the numerical forward analysis, this data consists of the measured leg lengths, the current guess at positioning, and the geometry of the platform. The error in the system is defined as the error in leg lengths between the current guess and the actual solution. The positioning information consists of a six-element vector that describes the location of the end effector and its orientation relative to the global coordinate system. The lengths of the legs at the guess can be readily determined using a reverse positioning analysis. The error in the solution can then be calculated as shown in equation 3.1 for a system with n legs. x Y L1,guess guess guess 2,guess 1x, (3.1) Oy n,guess 0, Error = Lactual Lguess One will notice that the error is not simply defined as the sum of the squares of the individual leg errors, but rather it is a vector that contains as many elements as there are legs in the system. As a result, use of this error in correctional calculations will inherently consider the geometric constraints of the entire system, as opposed to just the primary axes. This has the advantage of making the analysis of over constrained mechanisms relatively straightforward. Another advantage of the numerical approach is that it tends to correct for the slight errors in measurements that will be present in any system. Since the solver is trying to get "close" to the correct solution, the input data does not have to be perfect to get a good guess. This especially holds true in over-constrained systems, where more measurements are taken than are needed to find the right answer. A small error in measurement of one or two elements will not ruin the calculations, inherently making this approach far more robust than a closed-form solution. The next section looks at the Jacobian matrix and how it can be used in conjunction with the error to form a correctional term. Jacobian Matrix and Its Applications This section discusses the nature of the Jacobian matrix and its applications in both force-torque calculations, as well as positioning analyses. Before the actual use of the Jacobian in the forward analyses can be shown, a brief description of the derivation and meaning of the Jacobian matrix is necessary. This section also has relevance in later chapters regarding controller design and calculations. Wrenches When performing force-torque calculations for a parallel manipulator, one must know the forces applied in each leg actuator, as well as how these forces will contribute to the net wrench applied by the end effector.1 Each leg actuator applies its force along a line that runs along the axis of its leg as shown in Figure 3-1. Figure 3-1. Illustration of line of action and applied wrench relative to point A. 1 An excellent reference on position and force analyses for robots is Kinematic Analysis ofRobot Manipulators [2]. The force that each actuator applies to the top platform can be described in terms of the line of action and the force acting along that line. The net summation of all leg forces acting on the top platform can be represented by a dyname (a force applied along a particular line of action together with a moment) or by a wrench (a force acting along a specific line of action whereby the direction of the accompanying moment is parallel to the direction of the force). The line of action is a 6x1 vector consisting of two parts: * A 3-element unit vector indicating the direction of the line. * A 3-element vector that is based on the relative positioning of the line to some reference point. This is obtained by taking the cross product of the moment arm and the direction vector as $ = (3.2) where r is the vector from the origin of the reference coordinate system to any point on the line. Jacobian matrix formulation Calculating the net wrench applied to a body by a group of forces is a relatively simple process. The overall wrench applied by a collection of forces can be described as the summation of these forces as F, F, FnetFnet = +F +..+F2 + Fn $n = 1 $2 n$ 2 =[ . F(3.3) [J] [ $2 $n I .2 Sn r xs r 2xs2 ... r S for a system with n legs. Here the notation Fi is used to represent the magnitude of the force along leg i and $i is used to represent the length 6 vector that represent the coordinates of the line of action of the force. One can see that the Jacobian, J, is a 6xn matrix whose columns are the coordinates of the lines of action of the forces applied to the top platform. This is a clear indicator that the Jacobian matrix contains all of the information about the configuration of the system since the relative orientations and positions of the legs are incorporated. Logically, the Jacobian matrix, or some derivation of it, could be used in the numerical forward analysis. Correctional Function Now that the physical meaning of the Jacobian matrix is understood, the correctional function can be written. A slight modification of the Jacobian is introduced and will be explained shortly. This modified Jacobian will be multiplied by the error term explained earlier to form an adjustment to the guess at the current positioning. Equation 4 shows the modified Jacobian in a generic format that incorporates n legs. S, s, ... Sn [JIdioded= r x s, r2 x s2 r x (3.4) Lguess 2,guess n,guess One will notice that the modified Jacobian is very similar in form to the original except that the bottom rows, representing the torsional contributions of the legs, have been scaled by the lengths of those legs. Visualizing how the correctional guess actually works is critical in understanding why the scaling is necessary. Let us consider a single leg and how modifying its length will affect the system state for a planar mechanism. Figure 3-2 shows how changing the length of a single leg will impact the positioning of the platform by causing a displacement along that leg's line of action. Likewise, Figure 3-3 shows the impact that a change in leg length will have on the rotation of the platform. The platform will rotate about an axis perpendicular to the plane formed by the line of action of the leg and the moment arm of that leg. The amount of rotation is dependent on the magnitude of the change and the relative orientation of the leg with respect to the platform. Figure 3-2. Effect of change in leg length on positioning of the end effector. Figure 3-3. Effect of change in leg length on orientation of the end effector. Changing the length of any single leg attempts to move the platform along the line of action of that leg. When all of the legs act together, some of the motions will cancel out while others work together, leading to a net movement in a particular direction. The orientation of the platform is affected similarly by the changes in length. Each leg will attempt to rotate the end effector about an axis perpendicular to the plane formed by itself and its moment arm. Scaling the torsional component by the change in length of the leg is necessary since this process looks at the rotational changes in the system. Essentially, the required change in length of the leg can be considered as a change in the rotational strain of the leg when scaled by the overall length. \r S \l (L-Lguess) rxs- L-L )={rxsL-L--- ={rkxs}e S(L guess Lg (3.5) guess guess E Leg Strain Another way to look at the rotational components is to consider the convergence of a change in leg length as that change becomes smaller. The change in length is very similar to sin(O) in a small angle approximation, implying a predictable correlation between length and rotational effects. However, the change in length cannot be used directly since it does not take into account the relative effect on the leg in question. Any particular change will have a noticeably greater impact on a system with a very short leg as compared with a longer leg. By scaling each component of the Jacobian, the impact of each error correction is scaled to compensate for the relative effects of the individual legs. The only reason that the bottom rows in the Jacobian are scaled instead of scaling the error vector is for efficiency of calculation. It avoids the issue of two separate calculations that would then require the results to be recombined into a single vector. The next step is to calculate the correction to the guess at positioning using Equation 6. APg..ue -[J]modfied (L Lgue, ) (3.6) The scaling term t was included in the APguess calculation to improve the efficiency of the solver. Depending on the system, the solver may take extremely small or large steps when trying to find the proper solution. This can either cause the program to slow down considerably, or possibly even overshoot the solution and never converge. The scaling term allows the program to adjust the size of the step to ensure rapid convergence on a solution. This term may need to be found empirically, but at times it is quite necessary, such as when dealing with over constrained mechanisms. The next section shows application of this solver to three different systems that were analyzed in this project. Only the basic geometry of the mechanisms will be described since a more detailed explanation of the particular systems will be given in their respective chapters. Application and Results for the Numerical Forward Analysis The application of the solver to three systems will be discussed in this section. The first is a planar mechanism that was developed as a simplified test of the control strategy laid out in Chapter 2. The second system is the over constrained spatial mechanism that was a primary focus of this project. The third mechanism is similar to the second, except that the connection point for one of the legs was moved to test the conditioning of the second mechanism. Also note that the MATLAB code for the analyses can be found in Appendix B, along with other code blocks necessary for running the simulations. Planar 2-2 + 1 Truss Platform This mechanism followed a basic 2-2 configuration with the third leg bridging two of the connection points. Figure 3-4 shows the connection setup for the planar mechanism and the dimensioning in centimeters. Base Platform Figure 3-4. Planar truss mechanism. The Jacobian matrix for this planar device was only a 3x3 matrix since only three degrees of freedom were present in the system. This is not a problem since the fundamental concepts behind the analysis remain intact. The rotational contribution of the legs is still directly related to their effective moment arms about the center of the end effector. The new Jacobian will take the form of X1 X2 X3 J3x3 =Y Y2 Y3 (3.7) 'z,1 'z,2 z,3 L, L2 L3 where xi and yi represent the direction of leg i, t-z,i represents the moment of leg i about the z axis, and Li represents the length of leg i. The X and Y components of the line of action for each leg are needed in the matrix, as is the rotational contribution about the Z-axis, /z. The variable /z is the Z component of the vector r x s, which only has a Z-component for the planar case as ll 0 rxs= I, = 0 (3.8) Testing of the numerical forward analysis was performed with a handful of scenarios, including situations in which the initial guess was relatively close to the solution and other cases where the guess was significantly farther away. The most relevant examples are discussed here. Guess close to solution In this series of tests the guess was extremely close to the solution. The idea was to test a realistic scenario as would be used in a real controls application. Under normal controls circumstances, the controller is updated and a fairly regular interval, meaning that the system has not moved much from its previous position. Since the previous position will be used for the initial guess, it is only logical to test situations in which one is very close to the solution. In each case the solution was such that the platform was centered side to side relative to the base and was located 25 units below the base, i.e. coordinates [0, -25; 0]. The guesses were offset from the solution by up to ten units along the primary axes or 0.1 radian rotation about the Z-axis. The maximum error allowed was 0.0001 unit in leg length and the maximum number of iterations was capped at 4000 to avoid potential infinite loops. Table 3-1 shows the results of these tests. X and Y are the positioning of the platform relative to the center of the base. 0 is the rotation of the platform about the Z-Axis. At a value of zero, the platform is parallel to the base. Table 3-1. Results of numerical forward analysis for planar mechanism with the guess close the solution. Initial Guess Calculated Solution X Y 0 X Y 0 # of (cm) (cm) (rad) (cm) (cm) (rad) Iterations 0 -35 0 -0.0029 -24.9999 -0.0753 4000 0 -30 0 -0.0006 -25 -0.053 1254 10 -25 0 -0.0094 -24.9998 0.1407 4000 5 -25 0 0.001 -25 0.0212 1961 0 -25 0.1 -0.0092 -24.9998 0.1395 4000 One will notice that the calculated solutions are very close to the actual solutions. The main error present in the system is in the rotation. This is not surprising because the system is asymmetric due to the presence of the cross third leg. It inherently skews the modified Jacobian resulting in over correction in both the X direction and rotation about the Z-axis. This primarily manifests itself in rotational error, which unfortunately cannot be corrected with the current approach. Guess far from solution The second series of tests placed the initial guess relatively far from the actual solution. This was a given idea of the limitations of the solver in extreme circumstances, although they are not very likely to occur. Table 3-2 shows the results of the testing. One will notice the difficulty the solver has in these situations. Table 3-2. Forward analysis for planar mechanism with the guess far from the solution. Initial Guess Calculated Solution X Y O X Y 0 #of (cm) (cm) (rad) (cm) (cm) (rad) Iterations 0 -55 0 -0.0076 -24.9998 -0.1213 4000 0 -75 0 -0.01 -24.9997 -0.1382 4000 20 -25 0 -0.2009 -24.9939 0.7429 4000 -20 -25 0 -0.4992 -24.975 1.5699 4000 The primary cause of the solver difficulties is that the error is so large that the corrections could potentially exceed the workspace. Another cause may be that several possible solutions could exist for any given set of leg lengths. This is not inherently a problem because in real controls applications, the guesses will never be this far off. The next sections discuss the results from testing with the spatial mechanisms, where it becomes clear that having extra legs can dramatically improve the response of the solver. Over Constrained 3-3 + 1 Spatial Mechanism Figure 3-5. Spatial 3-3 + 1. Note that the upper triangle represents the end effector. The spatial mechanism tested followed a 3-3+1 configuration, which is identical to a 3-3 mechanism, except that it contains an additional central leg. Figure 3-5 shows the relative placement of the central leg with respect to the rest of the mechanism. This leg ran from the center of the base platform to the center of the end effector, producing symmetry in the device. The benefits of having this leg present in the system became readily apparent once testing began. Whereas the planar mechanism would sometimes require several thousand iterations to find a solution, the spatial mechanism would often only require 50-100 iterations, which could be calculated extremely quickly. For each test, the actual positioning of the platform was centered above the base at a height of 1 meter along the Z-Axis with no rotations about any axes. This is represented by the coordinates [0, 0, 1; 0, 0, 0]. Both the end effector and the base were configured as equilateral triangles. The corners of the end effector were located 0.5 meter from its center while the base triangle was twice the size. Table 3-3. Results of forward analysis for the redundant spatial mechanism. Initial Guess Calculated Solution X Y Z Ox Oy Oz X Y Z Ox O Oz # of (m) (m) (m) (rad) (rad) (rad) (m) (m) (m) (rad) (rad) (rad) Iter 0 0 1.5 0 0 0 0 0 1 0 0 0 4 0 0 5.5 0 0 0 0 0 1.0001 0 0 0 6 0 5 1 0 0 0 0 0 1 0.0003 0 0 93 10 5 1 0 0 0 0 0 1 0.0001 -0.0002 0 86 0 0 1 1.5 0 0 0 0 1 0.0003 0 0 113 0 0 1 0 1 0 0 0 1 0.0001 0.0002 0 111 0 0 1 0 0 1 0 0 1 0 0 0.0003 69 2.5 3 5 0.5 0.5 0.5 0 0 1 0.0002 0.0001 0 107 One will notice that the error in estimated positioning is extremely small. This comes as a welcome surprise and clearly demonstrates the potential for speed and accuracy with this approach. The errors could be reduced even further by reducing the maximum allowable error in the calculations. The extra leg helped to dramatically limit the number of solutions, expanding the effective workspace of the solver, resulting in a huge increase in performance. The final test for the solver was with a modification of the spatial mechanism in which one of the connection points for the central leg was moved to produce a non-symmetric system. Modified 3-3 + 1 Spatial Mechanism The modified spatial mechanism moved the top connection of the central leg to one of the corners of the end-effector, so that it lay coincident with two other joints. The location selected was coincident with the joints located 0.5 m along the Y-Axis of the platform. Figure 3-6 shows the change in configuration of the spatial mechanism. Figure 3-6. Modified Spatial 3-3 + 1. This was an ideal test since the system was no longer symmetric. One may recall the ill-effects of asymmetry had on the solver for the planar mechanism. However, these issues never arose during testing of the solver with the modified spatial device. In each test, the modified mechanism was positioned at the same location as the 3-3+1 system, with the same dimensions. The actual position was at [0, 0, 1; 0, 0, 0]. Table 3-4 shows the results and clearly indicates that the solver is still working well. The slight increase in the number of iterations necessary to find solutions is a minor issue that could most likely be resolved by adjusting the scaling factor for the error. Table 3-4. Results for testing of numerical forward analysis for the modified spatial mechanism. Guess Solution X Y Z Ox OY Oz X Y Z Ox OY Oz #of (m) (m) (m) (rad) (rad) (rad) (m) (m) (m) (rad) (rad) (rad) Iter 0 0 1.5 0 0 0 0 -0.0001 1 -0.0001 0 0 12 0 0 2.5 0 0 0 0 0 1 -0.0003 0 0 40 0 2 1 0 0 0 0 0 1 -0.0003 0 0 68 10 2 1 0 0 0 0 0 1 0.0002 -0.0001 0 114 0 0 1 1.5 0 0 0 0 1 0.0003 0 0 113 0 0 1 0.5 0.5 0.5 0 0 1 0.0001 0.0002 0 101 Final Comments and Conclusions The numerical forward analysis works exceptionally well in a wide array of situations and looks to be a highly flexible and powerful tool. It is easy to implement and can be very efficient at finding positioning, even with minimal tuning. Changing the geometry of the mechanisms presents no difficulty as the modified Jacobian matrix also changes. This approach also allows users to analyze and control mechanisms that are over-constrained or even ill-conditioned since it is never necessary to find the inverse of a matrix. While the analysis laid out in this chapter is a powerful tool, a possible refinement might include a more precise method of tuning the solver. Currently, the only adjustment to the solver is a scaling of the step that is taken to avoid overshooting the solution. A more thorough analysis later could reveal better tuning methods that might parallel classical PID controls for other systems. However, that analysis is best left for another time and project as the current approach works extremely well. CHAPTER 4 CONTROLLER DESIGN AND IMPLEMENTATION As discussed in Chapter 2, a number of elements are involved in designing a controller for any system. For the specific application to parallel mechanisms, the most important and difficult part of the problem is accurate measurement of the positioning of the system. This problem was solved in Chapter 3 using a flexible numerical methods approach. The next step in the process is the design of the controllers that will actually affect the behavior of the system. Separating the DOF Any parallel mechanism is highly cross-coupled by nature, making control strategy potentially difficult. Chapter 2 talked about the advantages of assuming that the leg masses were negligible, and this is an important first step towards developing the controllers. One must remember that the spatial systems analyzed in this project had six degrees of freedom, necessitating at least six controllers. Since the leg masses were extremely small, the only significant object in any particular system was the end-effector platform itself. The system model could now be developed that consisted of a lumped mass with a collection of forces acting upon it, as shown in Figure 4-1. These forces would produce an instantaneous net-wrench that would affect the motion and behavior of the end effector. Figure 4-1. End effector and forces acting upon it. The net-wrench is shown as W. Recall that a wrench consists of six elements which represent the force and torque acting upon a particular body. Theoretically, applying a wrench that only acts along a single DOF should affect the object only in that DOF. This implies that the problem can now be separated into six individual models, each corresponding to one DOF. As a result, the six resulting equations of motion take the form of Fe, = Meqi (4.1) Meq is a generalized representation of the equivalent mass or inertia of the system in the particular degree of freedom that is being considered. By the same token, q is the acceleration of the system in that degree of freedom. Fext is simply the external force or torque that is applied to the system during its motion. Simplified System Model and Controller Implementation Now that the various DOF's have been separated it is necessary to determine the behavior of the individual systems. As discussed in the previous section, each section of the model can be represented as a single mass upon which an external loading acts. Designing a controller for such a system is relatively straight forward as the motions of these systems are well known. A standard PID controller should be sufficient to produce "good" behavior. The system block diagram for each DOF now takes the form of 1~~~ ----------- > -I>^ Constant FnPID Conll r sf Sope Figure 4-2. Block diagram for a single mass system. Now that the control layout has been formulated, the next step is to determine the transfer function that describes the behavior of the system. From basic control theory, the closed-loop transfer function can be written as TF = (4.2) 1+ HT Where: T is the controller times the representation of the system mass. H is the value of the feedback multiplier. When the value for T is substituted into equation (4.2), the numerator and denominator of the equation can be expanded, resulting in the third-order function 1m I1 Ds2 +Ps +I T=PID ms s ) ms ms Ds2 + Ps + I ms3 + HDs2 + HPs + HI (4 1 + HT = 1+H 3 3 (4.3) ms ms Ds2 + Ps + Ds2 + P/ + TF = ms3 +HDs2 +HPs + HI s3+HDs2+HP/S+H where P, I, and D are the values of the controller. Determining the ideal values for the controllers can be a rather tedious task, especially with a third-order system. However, certain simplifications can be made to make the problem more manageable. By inspection, one can see that setting the integral portion of the controller to zero will reduce the transfer function to a more classical second order system. D/S2 +P/m D/ ms+P/ TF = ms +mS m (4.4) 3 +HD S2 +HP/S S2 +HD/S +HP Design of controllers for second-order behavior has been well-established, enabling one to not only easily design the controllers, but also to automate the process during controller implementation. One will notice that this approach is the application of a PD controller to a free mass system. While this is a simpler approach, there may be situations where application of a PID controller might be necessary to compensate for steady-state error or unforeseen effects of the system being analyzed, as was the case for the planar mechanism discussed in Chapter 5. Having specified the form of the controllers, one can easily determine the values to generate desired system behavior. From classical second-order analysis, the equations describing the response of the system take on the following form 2 HP 2)n = --H m 2$w HD m 4 t = (4.5) in M -=e ( 1.n(M,)Y C) 2 " + MPy Where: c, is the natural frequency of the system. ( is the damping ratio. ts is the settling time. Mp is the ratio of maximum overshoot to steady-state value. Final Thoughts While the controllers used in this project are fairly simple in form, they were meant to test two things. The first was the feasibility of decoupling the legs with basic assumptions and restrictions on the system. The second was the ease with which a controller could be incorporated into the system, given the overall complexity of the problem. The highly flexible numerical forward analysis discussed in Chapter 3 was a primary focus of development in this project and was considered to be a more critical aspect of the overall controller design. More advanced control techniques could easily be implemented, but the structure of the controls would remain essentially intact, regardless of the approach. CHAPTER 5 APPLICATION TO A PLANAR MECHANISM Once the control methodology has been determined, the next logical step is testing on a simplified system to analyze basic performance and ascertain whether the steps to attain decoupling actually worked. The mechanism first analyzed in this project was a planar, three-leg platform that was set in a truss configuration, as described in Chapter 3. Not only did this mechanism serve as a simple test bed, but it also helped to highlight potential issues related to asymmetry. System Description and Simulation Model Figure 5-1. Planar truss mechanism with asymmetry. The planar truss mechanism consisted of three legs arranged in the configuration shown in Figure 5-1. One will notice that the platform differs from the other mechanisms analyzed in this project in that the end effector hangs below the base connection, rather than being supported above it. This has no effect on the control strategy or system analysis since the wrench applied by the weight of the platform is simply reversed. The configuration shown was chosen since it was naturally stable in simulations, allowing the testing to focus purely on controls and system behavior, rather than trying to "debug" the mechanism. The dimensions of the platform were selected to mimic the configuration of the spatial mechanism that would be analyzed later. The end effector was half the length of the base, with the connection points located at both ends. Figure 5-2. System model created in Simulink, representing the planar truss mechanism. Note that the controller is marked in green and the end effector is colored orange. This system in discussed in Appendix A. The entire system was modeled in Simulink using MATLAB 6.5. This provided the most flexible approach for modeling as the system parameters could be easily changed. Figure 5-2 shows the model with various components highlighted, though a larger version of the model can be found in Appendix A. Since the planar mechanism was meant as a test bed for the control strategy discussed in Chapter 4, the position information was measured, rather than calculated using the numerical forward analysis. The leg elements were given extremely small, but still finite masses because the software required that they have at least some mass to avoid singularities in calculations. System Parameters and Performance Criteria Recall that the legs and actuators were reasoned to have negligible mass, leaving the only source of mass and inertia as that of the end effector. Since the values of the controller gains were directly proportional to the mass of the system, the mass was simply selected as 1 kg, though any value would be perfectly acceptable. The length of the end effector was 25 cm while the base length of the platform was 50 cm. The inertia contribution of the platform was calculated by modeling the end effector as a thin bar using the equation I = -mL2 (5.1) 12 Where: m is the mass of the end effector. L is the length of the end effector. The system was specified to have a desired maximum of 25% overshoot and a settling time less than 1 second. However, preliminary testing revealed that a PD controller was insufficient to compensate for the coupling effects caused by the third leg, as mentioned in Chapter 4. This necessitated a revision to the controller that used a full PID controller rather than the simpler PD design. While this was an unexpected hurdle during testing, it served to highlight a potential problem that asymmetry can present in these mechanisms. Apparently a high amount of asymmetry tends to exacerbate the problem of cross-coupling, possibly requiring that certain additional steps be taken to correct the issues. Redesign of the controller assumed that a full PID controller would be necessary, which also meant that the system model was third order, rather than second order. The characteristic equation of the system now becomes S3 + HD S2 + HP/ S + H (5.2) This formula can be split into two portions, a second order and a first order formula (s2 + 2cos + c 2 + R) (5.3) The real pole will cause a slight change in the behavior of the system, which is the ultimate goal of this process. The complex poles for the second order response were selected to be -4.5 + 6.75j to give an approximate response of 20% overshoot and a settling time less than 1 second. The real pole was picked as -10 since testing of a generic third order system showed that it gave good results for the design parameters. While it was a somewhat longer process designing the controllers, the solution was relatively straightforward. Then main lesson from this was that asymmetry is highly undesirable in any system, causing unpredictable behavior. However, the steps taken for redesign the controllers provided adequate compensation. Results of Testing The controllers performed far better than anticipated, showing less than the maximum allowable overshoot, settling times less than one-second, and steady-state errors most likely attributable to round-off errors. Every performance requirement was exceeded during testing. Run 1 The first run tested the response of the system in the y-direction since that is the most stable direction. The platform started centered at (0 cm, -25 cm) with no rotation and was moved to the position (0 cm, -15 cm). Figures 5-3 through 5-5 show the system response in the x, y, and 0 directions respectively. Table 5-1 shows the most pertinent numerical results from the run. X displacement of end effector 0 0.2 0.4 0.6 0.8 1 time (s) Figure 5-3. X-displacement of end-effector for first run. 1.2 1.4 1.6 1.8 2 33 Y displacement of end effector -26 1 1 I I I I I II 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 time (s) Figure 5-4. Y-displacement of end-effector for first run. x 10" Rotation of End Effector 2.5 2 1.5- 0.5 -0.5 -1 -1.5 0 0.5 1 1.5 2 2.5 3 Time (sec) Figure 5-5. 0-displacement of end-effector for first run. Table 5-1. Results of Run 1. Desired Position Final Position Maximum Position Max Overshoot X 0 cm -0.0001 cm 0.00240 cm n/a Y -15 cm -14.9963 cm -12.8797 cm 21.20 % 0 0 rad 0 rad 2.4e-5 rad n/a As can be seen from Table 2, the maximum steady-state error was 0.0037 cm, or 0.037%. The maximum overshoot of the y-direction was 21.20% which is less than the 25% limit. The settling time of the system is 0.82 sec, which once again is less than the specified limit of 1 sec. The extremely small steady-state errors can be attributed to round-off errors. Run 2 The second run tested the response of the system in the x-direction. Once again, the system started at (0 cm, -25 cm), but then it was moved to (-15 cm, -25 cm). The idea of doing testing like the first three runs was to test the coupling of the system to determine how strongly one direction of motion might affect the others. The results are displayed in Figures 5-6 to 5-8. As can be seen from Table 5-2, the maximum steady-state error was 0.0055 cm, or 0.037% once again. The maximum overshoot of the x-direction was 21.20% which is less than the 25% limit. The settling time of the system is 0.82 sec, which once again is less than the specified limit of 1 sec. The response in the x-direction is identical to the y- direction since they both run the same controllers. This also indicates that the coupling effects in the system are negligible. X displacement of end effector time (s) Figure 5-6. X-displacement of end-effector for second run. Y displacement of end effector -24.98 ----- -24.985 -24.99 -24.995 >- time (s) Figure 5-7. Y-displacement of end-effector for second run. Rotation of End Effector x 10 1.5 CO -0.5 -1 -1.5 -2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Time (sec) Figure 5-8. 0-displacement of end-effector for second run. Table 5-2. Results of Run 2. Desired Position Final Position Maximu X -15 cm -15.0055 cm -18.180Z Y -25 cm -25.0001 cm -25.0105 0 0 rad 8.901e-5 rad -0.0021 Run 3 1.6 1.8 m Position Scm cm rad Max Overshoot 21.20% n/a n/a The third run tested the rotational response of the system. The platform was rotated by 10 degrees. The results are shown in Figures 5-9 to 5-11. As can be seen from Table 5-3, the maximum steady-state error was 0.0001 deg, which is most likely round- off error. The maximum overshoot of the 0-direction was 20.952% which is less than the 25% limit, but different from the x and y responses. The settling time of the system is approximately 0.75 sec, which once again is less than the specified limit of 1 sec. X displacement of end effector 0 0.5 1 1.5 2 2.5 time (s) Figure 5-9. X-displacement of end-effector for third run. Y displacement of end effector -24.995 -24.996 -24.997 -24.998 g -24.999 -25 - >-\ -25.001 -25.002 -25.003 0 0.5 1 1.5 2 2.5 time (s) Figure 5-10. Y-displacement of end-effector for third run. Rotation of End Effector 0.15 0.1 Time (sec) Figure 5-11. 0-displacement of end-effector for third run. Table 5-3. Results of Run 3. Desired Position Final Position Maximum Position Max Overshoot X 0 cm 0 cm -0.0014 cm n/a Y -25 cm -25 cm -25.0025 cm n/a 0 0.1745 rad 0.1745 rad 0.2111 rad 21% Run 4 The final run tested the response of the system when the platform was commanded to move in all three directions from its initial position of (0 cm, -25 cm) to a final position of(-15 cm -35 cm) with a rotation of 20 degrees. The results are shown in Figures 5-11 through 5-13. X displacement of end effector 0 0.5 1 1.5 2 2.5 time (s) Figure 5-11. X-displacement of end-effector for fourth run. Y displacement of end effector time (s) Figure 5-12. Y-displacement of end-effector for fourth run. Rotation of End Effector 0.45 0.4 - 0.35 03 0.25 - 0.2 0.15 01 0.05 0- -0.05 I I 0 0.5 1 1.5 2 2.5 3 Time (sec) Figure 5-13. 0-displacement of end-effector for fourth run. Table 5-4. Results of Run 4. Desired Position Final Position Maximum Position Max Overshoot X 15 cm 14.9999 cm 18.1902 cm 21.3% Y -35 cm -35 cm -37.1259 cm 21.3% 0 0.3491 rad 0.3491 rad 0.4233 rad 21.3% Despite being commanded to move in all three directions simultaneously, the system behaved very well, meeting all design specifications. This shows that the controller design was a success. Final Comments The testing with the planar mechanism served several purposes. First, it verified the generalized control strategy for these parallel mechanisms and showed that the systems can be decoupled fairly well, even with simple controllers; the decoupling is not perfect, showing perturbations in the other degrees of freedom, but these are relatively small. Secondly, the planar mechanism revealed the potential difficulties that can arise with asymmetric mechanisms. These are far more difficult to decouple due to the 41 imbalanced nature of force application in various regions of the system. This can result in excessive motion of parts of the system that are meant to remain stationary and can also cause significant steady-state error. However, these issues were readily resolved with a slight redesign of the controllers. Despite minor setbacks and challenges, the testing of the planar mechanism was highly successful and accomplished all of the goals that were specified. CHAPTER 6 SPATIAL MECHANISM AND ADDITIONAL CONSIDERATIONS FOR CONTROLLER DESIGN Once the control strategy had been verified with the planar mechanism, the next step was to consider how to handle the spatial mechanism. The spatial mechanism had two major differences from the planar system analyzed in the previous chapter. First, it was an over-constrained system, meaning that more control actuators were present than were actually needed for motion in all degrees of freedom. The second difference was that the system was meant to have compliant components in the legs. These changes necessitated that additional measures be taken when designing the controllers for the system. General System Description Determining the configuration of the spatial mechanism was one of the critical steps. Since the objective of this project was to design a generalized controls strategy for an over constrained parallel mechanism, a symmetric structure was selected. The advantage of having a symmetric structure was highlighted when analyzing the planar mechanism. Symmetry in structural design and motion are highly desirable because the behavior of the system becomes far more predictable as the coupling effects appear to be minimized. The platform was selected to follow a classical 3-3 configuration with the addition of a central leg that connected the centers of the base platform and the end effector. When placed in a "neutral" position that centered the end effector above the base, the structure was symmetric and stable. Any other placement of the central leg would have led to asymmetry in the system. Figure 6-1 shows the generalized configuration for the mechanism. Both the top platform and the base were modeled as equilateral triangles, with covers placed at 0.5 meter and 1 meter from their centers respectively. At the unloaded home position the top platform was parallel to the base platform and was located 1 meter above it. The stiffness values used in the leg connectors will be discussed in subsequent chapters. Figure 6-1. Layout of the spatial mechanism and connection points. The base is larger than the end effector, which is centered above the base triangle. It is also important to note that the other spatial mechanism that was analyzed was a slightly modified version of the original, in that the location of the end of the central leg, relative to the end effector, was shifted to determine the efficacy of central leg at countering rotation in certain situations. The exact modifications are described in Chapter 9 to highlight the differences in results. Modifications to Control Strategy The differences between the planar and spatial mechanisms analyzed in this project necessitated certain changes to the control strategy. The most important was the need to decouple the new elements so that the spatial mechanism would have similar behavior to the planar mechanism, albeit with a greater number of degrees of freedom. Compensating for Compliance and Over-Constraint Adding compliance to the system changed its behavior since the legs no longer responded as stiff elements. For the control strategy tested in Chapter 5 to work, the compliant elements had to be decoupled from the system with their own set of controllers so that the legs would once again behave as rigid components. Chapter 7 discusses the steps that were taken to decouple the legs and restore "normal" control to the system. While utilizing an over-constrained system is not overly problematic, it presents a special set of challenges as the standard methods for determining the force distribution in the system break down. The issue is that the Jacobian matrix used to calculate the net wrench applied to the end-effector is no longer square, hence it is non-invertible. Fortunately, an easy solution presented itself during the decoupling of the compliant elements in the system. Since each leg has compliance, minimizing the energy in the system would allow one to determine the optimal force distribution in the system. The minimum energy optimization is presented in Chapter 8. Once the legs had been decoupled and an effective method had been developed for finding the optimal force distribution in the system, the original control strategy could be implemented. The mechanism now had six degrees of freedom, each of which would require a separate controller. These controllers would be designed in the same way as for the planar mechanism, under the assumption that the system was sufficiently decoupled to have good response and behavior. However, the need for one additional adjustment became readily apparent once work began on laying out the control system. Coordinate System Conversion The method for specifying the orientation of the platform is now laid out. A series of three rotations are needed, first about the local X-axis, then about the new local Y-axis, and finally about the new local Z-axis. Each rotation is performed about local coordinates, not global coordinates, meaning that each successive rotation was directly dependent on the previous one. Since the controller was meant to handle local coordinates, but the control forces were being applied in global coordinates, the torques applied by the legs had to be rotated into the global coordinate system for the minimum energy optimization to work properly. The rotation matrix necessary for the coordinate system conversion was readily calculated using the methods laid out in reference [2] as follows Rglobal = RxRRz 1 0 0 Rx =0 cos(Ox) sin(O) 0 sin(Ox) cos(Ox) Fcos(O) 0 sin(O) = 0 1 0 (6.1) sin(O,) 0 cos(O,) cos(O) sin(O,) 0 RZ =sin(z) cos(z) 0 0 0 1 By multiplying together the rotation matrices about the respective degrees of freedom, in the order of rotation, a conversion matrix could be derived. Multiplying by the three element vector representing the local control torques, the global control torques can be calculated. The conversion is X Tx,local TY = Rglobal Ty,local (6.2) Z T z,local Combining the torque vector with the three element force vector produces the net wrench that the control legs need to apply to the end effector F Fy Fz control TX (6.3) Ty TZ Finally one is able to lay out the structuring of the controller for the full spatial mechanism. It requires knowledge of both the destination and the current positioning, which are then fed into the separate controllers for the individual degrees of freedom. The control forces are then rotated into global coordinates as appropriate and then recombined so that the minimum energy optimization determine the optimal force distribution in the legs. Figure 6-2 shows the wiring of the control block. n7 Prey Poe *yl --4M- Final poslioning X-Controller C Y-Controller 0 Z-ConollerMn Energy 0 Optimizalion X-rt-Contrller Contr Force Leg Cotr Force C Y-rot-Controler Torque O Transform Z-rol-Contrller Figure 6-2. The control block used in the spatial mechanism. In Figure 6-2, note the decoupling of the separate controllers, followed by the recombination to form a single desired wrench. The lengths of the seven legs are fed into the numerical forward analysis, along with the latest known positioning, which acts as the current guess. Once the current position has been determined, the position error is calculated and split up amongst the separate controllers. The outputs of the rotational controllers need to be rotated into global coordinates, then recombined with the corrections from the X, Y, and Z controllers. The net control wrench is then sent to the minimum energy optimization, which determines the distribution of control forces that are sent to the individual legs. CHAPTER 7 DECOUPLING COMPLIANT ELEMENTS FROM LEGS The compliance in the legs of the platform presented special challenges when designing the controllers. The major issue was that the legs would act as two degree of freedom systems, rather than as the single degree of freedom actuators desired. This meant that an extra set of controllers was needed to overcome this potentially crippling problem. The first step to resolving this difficulty was developing a model of one of the legs. Leg Model SplDamTop Spr/Dam ompliant mrtne i nlroller SpDan Base n I Leg Actualor 0 Ionrorl gnal Leg Act 6 LegBase Ground Figure 7-1. Generic model of a leg containing compliant elements. The legs were modeled as having negligible mass, but that still did not resolve the question of how to decouple the compliant elements. At least a certain amount of mass was needed for an effective controller to be developed. One can see in Figure 7-1 that the leg model consisted of three mass elements, a spring, and a damper. The most significant mass was located at the free end, representing the end effector. The actual details of this mass were unimportant as the control forces to be applied to the platform were already known. The other mass that played a role was the actuator element (lumped with the spring-damper base mass) since it was directly connected to the spring and damper. As previously stated, the force to be applied to the end effector had already been calculated by the primary controller, on the assumption that the compliance in the legs would be decoupled effectively. This effectively reduced the problem to controlling the motion of the actuator element. A free body diagram of the actuator could now be drawn that would allow the equations of motion for that element to be written. Free Body Diagram and EOM Spring/Damper Force Actuator Force Figure 7-2. Free body diagram of the actuator mass with reactionary forces from the springs and dampers. The forces acting on the actuator mass consist of four parts: * Actuator force. This is what actually causes motion in the system. It also has to compensate for the reactionary forces. * Acceleration of the actuator mass. The nature and effect of this depends heavily on the mass of this element. * Spring force. This is simply determined by how much the spring is compressed. * Damper force. This is purely based on how fast the actuator is moving with respect to the end effector. The force contributions from the spring and damper can be lumped together because they must equal the force that the leg in question should apply to the end effector. This simplifies the problem into a very familiar form. Fact mact Fplatform = 0 (7.1) mact = Ft Fplatorm A controller could be developed in exactly the same way as for the main platform. In theory, a basic PD controller should completely counteract the effects of the actuator mass, the spring, and the damper. The controller now took on the following form: 1 PID - Constant PID Contolls Transfer Fn Scpe Figure 7-3. Controller for the leg actuator. Its form is virtually identical to those of the end effector. The values for the controller were calculated in the same way that those of the main controllers were determined. Testing of the decoupling controllers will be discussed in the next section. Performance of the Decoupling Controllers Testing of the individual legs revealed that the controller design worked extremely well. The spring-damper had no ill effects on the motion of the end effector, though the actuator system did tend to show some steady-state error as the mass of the actuator increased. The models used for testing are shown below and are also presented in Appendix A. Figure 7-4. Overview of leg model. This shows the primary controller and a representation of the entire leg, including compliant elements. The constants feeding the body actuator represent the components of an external wrench that might be applied to the system. Spr/Dam Sp/Dam Bas Leg Actuate Sp/Dan Controlle Leg Length Calc input -orce Base of Leg Figure 7-5. The actual leg model itself. The green block is the decoupling controller, while the brown block contains the compliant elements of the leg. One will notice the presence of the actuator and the combination of the control signal with the decoupling signal. sp/uam Weight I Figure 7-6. Controller for decoupling the compliant portion of the leg. The signal generated by this subsystem is combined with the general control force and serves to decouple the compliant elements. Results of Testing The decoupling controller showed exceptional performance, even with huge actuator/platform mass ratios. The system exhibited the good behavior of a well-tuned, classical second order system, despite the fact that it was actually a rather nasty looking two degree of freedom model. To test the effectiveness of the approach, a leg actuator mass of 1 kg was used, which was the same as the mass of the representative "end effector". The leg was commanded to move from an initial position of 1 m to a length of 2 m. Without the decoupling controller in effect, the system exhibited 33.5% overshoot and a settling time of 1.75 second. With the controller activated, the overshoot dropped to 18.7% and the settling time to 0.92 second. The results are shown in Figure 7-7 and clearly demonstrate the effectiveness of the controls strategy. Effects of Decoupling Controller 2.5 Controller --- No Controller 1.5- i \ 0 0.5 1 1.5 2 2.5 3 Time (seconds) Figure 7-7. Results of testing both with and without the decoupling controller. Limitations of Controller Usage The only limitation on use of the decoupling controllers was not the design, but rather the simulation software used. Both MATLAB 6.5 and ADAMS had significant trouble with simulating parallel mechanisms. The solvers in both programs found difficulty when dealing with any parallel devices because of the multiple closed loops present in the systems. ADAMS simply couldn't handle the systems, while MATLAB would sometimes struggle. Even without compliant elements, the solvers would occasionally slow down to time steps on the order of 10-9 to 10-11 second. When any compliant elements were included, the time steps reduced to 10-11 to 10-13 second, making compliant elements were included, the time steps reduced to 10-11 to 10-13 second, making 55 completion of any simulations impossible. This was an unfortunate setback, but testing of the controllers for the leg actuators indicated that modeling the legs as stiff elements was accurate enough to verify the effectiveness of the main control strategy. In theory, if the decoupling controllers could be run with the model, any combination of leg masses could be used, regardless of operating conditions, greatly improving the flexibility of the system design. CHAPTER 8 MINIMUM ENERGY OPTIMIZATION One of the critical considerations when working with an over constrained system is how to distribute the force loading amongst the various leg connectors to obtain static equilibrium at a given position. For a perfectly constrained system, only one possible force distribution exists since there exist only as many control actuators as degrees of freedom. However for any over constrained mechanism, extra controls beyond those required are present. While there exist an infinite number of solutions to the question of force distribution, most of them would be unreasonable for the simple fact that the loadings in the legs would be far beyond the limits of any current actuators or materials. Since the spatial mechanism described in Chapter 6 contains compliant elements, a method exists to find the optimal force distribution for the mechanism, minimizing the potential energy stored in the springs. Potential Energy: General Form and Reasoning Even though the various components in the mechanism will be moving as the platform travels towards its objective, the ultimate goal is to have the system at static equilibrium at that final positioning. This automatically means that the dampers in the legs will not be moving during this final state, requiring all supporting forces to be supplied by the springs. During the actual motion of the platform, the force loading in each leg will be distributed between the acceleration of the actuator mass, the velocity of the damper, and the compression of the spring. However, these do not need to be considered in this analysis because the compliant elements in the legs have been decoupled as demonstrated in Chapter 7. Another use for the minimum energy optimization is that it allows the controller to very easily determine how to distribute the control forces amongst the various legs. The potential energy equation follows the classical form. The spring rates in each leg are assumed to be constant and follow a linear relation to the compression. If k. and ALn represent the spring rate and compression of leg n, then the total potential energy equation can be written as follows: U= 1k,(AL,,J (8.1) n=l 2 While this equation comes as no big surprise, more information is needed to be able to solve the problem. Namely, the wrench that the legs must exert on the end effector is the key restriction on the system. Force-Torque State and Equations Since the platform is supposed to remain at static equilibrium at its final positioning, the wrench exerted by the legs must counteract any external wrench on the system, including gravitational effects and reactionary forces applied to the end effector. The wrench exerted by the legs can be calculated using the 6x7 Jacobian of the system as discussed in Chapter 3. WLegs ext = 0 Legs = ]6x7 FLegs SF (8.2) Legs n kn (ALn) F 7, Determining the forces in the legs is not so straightforward because no true inverse exists for a non-square matrix. The form of the equations must be modified slightly to place everything in terms of one variable to optimize. The equation for the wrench exerted by the legs can be rewritten as follows: F2 wlegs [x6F -6 +W7 [Jx6 F$7 (8.3) 4 F5 F6 Since Leg + ext = 0 everything can be rewritten in terms of F7 and ultimately AL7. This will then allow one to rewrite the potential energy equation in terms of one variable for minimization. F-6 = -(J]6x6 )(ext + )= -([]6x6 ext + ka, $7) F =-6 = A+B(k,7A7) A = -([J]6x6 )- ext (8.4) B = -([J]6x6 $7 F = kAL = A + Bn (k7AL,) A B AL n= + B (k7ALj) (8.5) kn n Now that the displacements of the various springs have been written in terms of the compression of the seventh leg, the potential energy equation can be rewritten, then minimized with respect to AL7. One may notice that the displacements take on a very nice form that will be easy to work with. n=1 2 (an =1 (An +B2(k7AL)2 +2A ,B(k7AL7)) S= 0 (A +B k7 +AL n 7 2A B7 (k7l7)) d(AL,) d(7, 2k d =I (2AB nk, + 2Bn k, 7AL)7 A,, + BAL7 d(0L ) 2kn 7k A<=IkAB SAB B 7 B(8.6) BY kk The solution for the ideal compression of the seventh leg is fairly simple in form and subsequent calculations for the compressions (and ultimately forces) of the other legs follow easily. Any leg can be set as the "seventh" leg depending on the conditioning of the other six. There may be situations where one group of six legs are at a singularity while the others are not. A basic check for conditioning is required. However, one must note that this method still cannot handle a situation when the entire system is ill- conditioned. Remember that one of the major limitations of parallel mechanisms is their limited workspaces. The best way to avoid problems with singularities is to limit the range of motion of the device to a predetermined "safe" environment. Final Comments This chapter has shown a way to quickly and easily determine the ideal force distribution for an over constrained parallel mechanism. The process is relatively simple and can be programmed to handle certain contingencies. The process used to derive the 60 equations could be used to handle more complicated systems, though certain additional considerations would be necessary. Ill-conditioned systems are unavoidable with parallel mechanisms, but the use of over constrained devices can help to alleviate the problem. CHAPTER 9 RESULTS OF TESTING ON THE SPATIAL MECHANISMS This chapter focuses on discussing the performance of the controllers when applied to the spatial mechanisms, with primary attention paid to the main system. The testing done with the modified mechanism was purely to investigate the effects on rotational performance if the leg configuration was changed. A number of simulations were run to determine the behavior of the primary system when moving in one or more degrees of freedom. Six of the simulations focused solely on coupling effects by moving in the six degrees of freedom separately. Further testing combined motions in two or more degrees of freedom as these represented more realistic utilization of the system. Motions in Single DOF This was the most critical set of experiments since it tested the basic viability of the control strategy. Proving that controlled motion in a single DOF is possible will demonstrate at least simple functionality. The following tests showed that not only does the control strategy work well, but the coupling effects are relatively small. Each time, the mechanism started at a symmetric position of [0 m, 0 m, 1 m; 0 rad, 0 rad, 0 rad], which represents the X, Y, Z positions and the rotations about the X, Y, and Z axes respectively. This had the advantage of being a naturally stable configuration in simulation, helping to minimize the calculational errors. The importance of symmetry has already been demonstrated with the planar mechanism, and this is no exception. Unless stated otherwise, the specified performance for each test was less than 20% overshoot with a settling time of less than 1 second. More information of initialization and configuration of the system can be found in the initialization file located in Appendix B, along with important code that is necessary for the simulation to run. The dimensions of the upper platform and the base were discussed in Chapter 6. The legs were essentially split into two sections, a lower connection that comprised half of the initial length, and the upper portion that was attached to the end effector, making up the other half of its length. Z-Axis Displacement The first test was displacement along the Z-Axis to a final height of 1.5 m. This motion causes a fairly sizeable change in positioning and platform configuration, but maintains the symmetry, which helps to minimize the coupling effects. As one can see in Figures,9-1 and 9-2, the system responded quite well, with essentially negligible coupling effects. Response Along Z-Axis 1.7 1.6 1.5 - 1.4 E/ 01.3 1.2 - 1.1 / 1 0 0.5 1 1.5 Time (seconds) Figure 9-1. Motion of the mechanism along the Z-Axis. X and Y Responses Time (seconds) Rotational Effects Time (seconds) Figure 9-2. Motions in the other DOFs. (a) Y and X axes. (b) Rotations about the primary axes. The system reached its final positioning with no steady-state error and still met the performance requirements. System overshoot was 18.4% and settling time was 0.915 seconds. The maximum fluctuations in positioning of the other DOFs was extraordinarily small, with 1.7x10-4 m along the primary axes, and 8x10-9 radian in rotations. Z-Axis Rotation Considering the performance of the system when moving purely along the Z-Axis, one would naturally expect that similar performance would be possible in pure rotation. This still maintains the symmetry of the system, albeit within a more limited workspace; the platform was rotated 0.5 radian about the Z-Axis. 0.7 0.6 0.5 R3 C E 0.4 CI o 0.3 -5- 0.2 Z-Rotation 0 0.5 1 Time (seconds) Figure 9-3. Rotation of the mechanism about the Z-Axis. (a) S10 X, Y, Z Displacements -- Y --- Z 0 -2 -4 v ------ 10 Time (seconds) (b) x 10. X and Y Rotational Responses / \ 7- 0 - - - -2 ' -3- -4 - 0 0.5 1 1.5 Time (seconds) -1 / Figure 9-4. Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Y and X axes. -3 - N 0 0 1 1 .5 -4 -5 Time (seconds) Figure 9-4. Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Y and X axes. Once again, the system showed excellent performance as expected, exhibiting 19.1% overshoot and a settling time of 0.917 second. The maximum motion error in the other DOFs was 7x10-4 m along the primary axes and 4.3x10-6 radian in rotation. Y-Axis Displacement Motion along the Y-Axis is still pseudo-symmetric, though it is far less ideal than motions with the Z-Axis. The behavior of the system was expected to be good, but not as good as the previous tests since even slight asymmetry in a system can have enormous influence on response. The end-effector was commanded to move 1 m along the Y-Axis, with 10% overshoot and a settling time less than 1 second. Response Along Y-Axis 0 0.5 1 1.5 Time (seconds) Figure 9-5. Motion of the mechanism along the Y-Axis. X and Z Responses x 10r 5r L- - z Time (seconds) Time (seconds) Figure 9-6. Motions in the other DOFs. (a) Disturbance of Z and X axes. (b) Rotations about the Z, Y, and X axes. I I \ / The system still responded extremely well, only exhibiting 9% overshoot and a settling time of 0.977 second. The maximum motion error in the other DOFs was 7.5x10-3 m along the primary axes and 1.5x10-2 radian in rotation. The largest errors were generated in the Z-Axis motion and the X-Axis rotation, both of which are perpendicular to the Y-Axis motion. The drop along the Z-Axis is attributable to the fact that the support legs are only located underneath the end effector. Therefore, trying to move along the Y-Axis will cause a localized drop in the height of the platform, until such time as the controllers can correct. Since the "top" corner of the end effector has only two support legs, but the "bottom" edge has four, an imbalance occurs when trying to control rotation about the local X-Axis. Since the end-effector drops slightly, one would also expect that one section will drop more than the others, due to asymmetry in support distribution, leading to unwanted rotations. Y-Axis Rotation Rotation about the Y-Axis is similar to the previous test in that the system is being actuated about a pseudo-symmetric lobe. Once again, good performance would be expected, though errors in other degrees of freedom should be more prevalent than the Z- Axis testing. The platform was commanded to rotate by 0.5 radian with no motion in the other degrees of freedom. The system showed good behavior in rotation with 8.5% in overshoot and a 0.681 second settling time. One may notice a slight steady state error of 7x10-4 m present in the positioning of the Z-Axis, which is relatively small considering the size of the mechanism at 1 m height. This may be partially attributable to the numerical forward analysis as that can result in a slight error in positioning information. Addition of an integral portion to the controller might also help to correct the error. Y Rotational Response U.b - 0.5 / S0.4 Eo c 0.3- 0.2 0.1 0 0.5 11 Time (seconds) Figure 9-7. Rotation of the mechanism about the Y-Axis. X, Y, and Z Responses Time (seconds) x X -Y -- Z i r (b) x 10- X and Z Rotational Responses 6 4- -2 -4 -6 0 0.5 1 1.5 Time (seconds) Figure 9-8. Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Z and X axes. The apparent noise present in the response during this test is most likely due to numerical errors in the simulation. During the early stages of the tests, the solver would require extremely small time steps during convergence. The apparent stair-stepping later is a result of large steps as the simulation reached easier configurations for the solver. X-Axis Displacement Motion of the platform along the X-Axis showed similar performance to the tests commanding motion along the Y-Axis, with primary errors showing up in the vertical positioning of the platform, i.e. the Z-Axis displacement. This is hardly surprising considering that the system is moving along an asymmetric direction, which would tend to result in similar errors. The other aspects of the mechanism performed remarkably well, with the largest rotational displacement being 1.9x10-4 radian. Reponse Along X-Axis Time (seconds) Figure 9-9. Motion of the mechanism along the X-Axis. Y and Z Responses x103 Time (seconds) E 0.8 mE n 0.6 5 0Y 5 - 0 \ 5 - / \ ji / E - C 4) -1 rt? (b) x 10 Rotational Responses 2 Y,' o0-- z -2 -4 -6 o-8- 10 -12 -14 -16 1 1 0 0.5 1 1.5 Time (seconds) Figure 9-10. Motions in the other DOFs. (a) Disturbance of Z and Y axes. (b) Rotations about the Z, Y, and X axes. X-Axis Rotation X Rotational Response 0.7 0.6 0.50 Tme (seconds) 0.4 a 0.3 0.2- 0.1 - 01 0 0.5 1 1.5 Time (seconds) Figure 9-11. Rotation of the mechanism about the X-Axis. S104 X, Y, and Z Responses 2 0 - - -2 - -4- Z -6- in -B -In Time (seconds) Y and Z Rotational Responses Time (seconds) Figure 9-12. Motions in the other DOFs. (a) Z, Y, and X axes. (b) Rotations about the Z and X axes. Testing of the response to rotations about the X-Axis simply confirmed the previous five tests and verified that the controllers were performing properly. Once again, some slight steady-state error was present in the positioning along the Z-Axis, but as previously stated, this could be attributable to the resolution specified for the forward analysis. Otherwise, the mechanism behaved impeccably. Motions in Multiple DOF Once the performance of the mechanism in single DOFs had been verified, the behavior of the system when moved in multiple DOFs needed to be evaluated. Since each separate DOF responded as designed with relatively small effects on the other motions, commanding motion in several DOFs should all show good behavior. The coupling effects will never be completely eliminated, but they have a lessened impact on system performance. The tests that show the most significant effects and results are presented here. X-Y Displacement Considering that individual motions in either the global X or Y directions showed greatest impact on the vertical positioning of the system, it was only logical to test the effects when the mechanism was moved in both DOFs. As expected, the largest error was present in the Z-Axis motion, with a maximum disturbance of 0.0046 m. This very rapidly decayed to a final positioning of approximately 0.9992 m, or 0.08% steady state error. This was a clear indication that the coupling effects had been essentially eliminated, and the numerical forward analysis was functioning properly. The small error of 0.0008 m was well within the specified resolution for the forward analysis. X-Y Motion Time (seconds) Figure 9-13. Motion of the mechanism along the X and Y axes. (a) 1.001 Z-Axis Response Time (seconds) x 103 Rotational Responses Time (seconds) Figure 9-14. Motions in the other DOFs. (a) Z and Y axes. (b) Rotations about the Z, Y, and X axes. The motions in the X and Y directions followed classical second order response and both exhibited only 17% overshoot, which is less than the design specification. The settling time was approximately 0.98 second, which also matched the performance requirements. X-Y-Z Displacement The results for testing motion in three axes should come as little surprise considering the behavior of the system in previous tests. The mechanism was commanded to move 0.5 m along each axis relative to its initial position. N z - I\ I Ii I '- I / I/ 'A - X, Y, and Z Responses Time (seconds) Figure 9-15. Motion of the mechanism along all three axes. 1.5- 0.5 k 103 Rotational Responses -- Y Z \ , \A Time (seconds) Figure 9-16. Rotations about the Z, Y, and X axes. The motions in the primary axes followed classical second order responses as predicted. The X and Y motions were virtually identical with 17.3% overshoot and a settling time of 0.975 second. The Z-Axis motion showed 19.4% overshoot and a settling time of 0.955 second. While the overshoot along the Z-Axis is larger than the X and Y motions, it still meets the design specifications. It is hardly surprising that the Z-Axis motion would have larger overshoot when one remembers that the testing of the X and Y axes tended to generate fluctuations in the vertical positioning of the platform. X-Y-Z Rotation Testing of the rotational performance of the system in three axes simultaneously was a critical step in evaluating the performance capabilities of the system. Up to this point, the platform and controllers had responded admirably. While it was expected that the system would respond just as well as in previous tests, the question was over what range of rotational motion the system would remain stable. The first test commanded rotation of 0.5 radian about each axis since previous testing had used this extent of motion. However, the system exhibited excessive overshoot in all three DOFs being commanded at 29.8%, 23%, and 25.8% overshoot for the X, Y, and Z rotations respectively. While the excessive overshoot was unsettling at first, the cause very quickly became clear with an animation of the simulation. Apparently the mechanism was becoming ill-conditioned when moving such a great amount, resulting in less than optimal control. Essentially, the plane of the end-effector was nearly coplanar with a pair of the control legs, causing a loss of control. This can be seen below in the simplified model of the system at final positioning and was the inspiration to change the configuration of the system in the modified spatial mechanism. Since the platform was being moved to the edges of its workspace, its performance would naturally degrade. Therefore, the amount of rotation was reduced to 0.1 radian for each DOF. 0.5 Radian Rotational Responses Time (seconds) Figure 9-17. Rotation of the mechanism about all axes. 0.1 Radian Rotational Responses 0.12 0.1 0.08- - S0.06 E (a 0.04 0.02 0 0 0.5 1 1.5 Time (seconds) Figure 9-18. Rotation of the mechanism about all axes, albeit with a smaller commanded motion. 80 The system responded flawlessly in this second test because it was well within its workspace. The overshoots were 19.6%, 18.4%, and 19.1% for the X, Y, and Z rotations respectively while their settling times were 0.945, 0.848, and 0.972 second. Once again, the Z-Axis motion showed a bit of steady-state error, while movement along the X and Y axes only fluctuated by about 10-5 meter. Evidently, the controllers worked extremely well within the physical limitations of the mechanism. Full 6 DOF Motion The final test for the full spatial mechanism was to command motion in all six DOFs simultaneously. Recalling the lessons learned from the rotational experiments, the rotations were specified to be 0.1 radian, and the motions along the primary axes were commanded to 0.5 m from the starting point. The results can be seen below and clearly show that all DOFs met the 20% overshoot and 1 second settling time requirements. X, Y, and Z Displacements 1.6 1 .6 ,----------^ ^ -. j--- - - - - - ------ 1.4 / -Y -- ZI 1.2 // E 0.8 o C- 0.6- 0.4 / 0.2- 0 --- 0 0.5 1 1.5 Time (seconds) Figure 9-19. Motion of the mechanism along the primary axes. Rotational Responses 0.14 --X -- Y --- Z 0.12 0.1 - 0.0 - 0.02 0.02 0 0.5 1 1.5 Time (seconds) Figure 9-20. Rotations about the primary axes. While the motions along the axes exceeded the performance requirements, the rotational behavior just barely satisfied the overshoot limitations, coming in at almost exactly 20%. This is hardly surprising when one considers that the coupling effects tend to compound errors in the system and cause fluctuations in the other controllers. However, the fact that the system did meet the performance requirements in all aspects is a testament to the effectiveness of the decoupling, even if it is a simple approach. Modified Spatial Mechanism One will recall that testing of the original 3-3 + 1 mechanism revealed that rotations of 0.5 radian about each axis led to ill-conditioning. The question was posed whether it was possible to improve the response in these extreme conditions by changing the geometry of the platform simply by moving the central leg. This test moved the connection point of the central leg out of the plane of the end effector by 0.2 m along the local Z-Axis to test the effects that it would have on the rotational response of the system in extreme conditions. The figures below illustrate the new configuration of the platform and the results of testing. The platform was commanded to rotate 0.5 radian about each axis. One will notice that the overshoot of the X and Y rotations were reduced to 16 and 17.4% respectively, which is a huge improvement over the 29.8% and 23% of the non- modified mechanism. The Z rotation showed approximately the same overshoot with 26% as compared with the previous 25.8% of earlier testing. However, the settling times were not improved dramatically, clocking in at 1.28, 1.21, and 1.47 seconds for the X, Y, and Z rotations. Figure 9-21. New platform configuration with modified connection point. Rotational Responses 0 0.5 1 1.5 Time (seconds) Figure 9-22. Rotations about the primary axes. While the change in configuration did have a positive effect on the response of the system in extreme circumstances, it did not have enough of an impact due to physical limitations. Enough of the mechanism was still ill conditioned that the central leg could not effectively compensate. This drives home the point that all parallel mechanisms have limited workspaces, especially in the aspect of rotations, so knowledge of these limitations is critical for proper control. Possibly reconfiguring the outer legs or changing relative dimensions in the mechanism could help to extend its workspace, but that topic would be best left for future research. CHAPTER 10 FINAL COMMENTS AND FUTURE WORK This project proved to be a challenging and immensely gratifying experience. The problem required some interesting approaches to create a relatively simple, yet functional solution. The generalized control strategy that was developed is flexible and applicable to many other systems. It performed well in decoupling the system despite the difficult nature of the mechanisms. The numerical forward analysis has great potential for future applications as it is a highly flexible, robust, and efficient approach to a potentially very complicated issue. The decoupling controller, while it could not be fully tested due to simulation and software limitations, still looks to be an effective method of controlling compliant elements, even in unfavorable conditions. While this project accomplished all that was intended, plenty of room remains for future research into related areas. For example, the numerical forward analysis still has great potential to become even more efficient and powerful if it can be analyzed as a controls system, rather than just an iterative approach. In fact, it may even be possible to derive analytical solutions to forward analyses using mathematical derivations based on the methodology. The effective decoupling of compliant elements in a parallel mechanism has great potential to allow the design of responsive, adaptive systems for a wide range of applications. Current research is investigating the responses of compliant, static platforms, which suggests that it may be possible to design the static and active behaviors separately and then easily connect them through some decoupling interface. The possibilities are endless and lend themselves to imagination. APPENDIX A SYSTEM DIAGRAMS This section presents the systems that were built in SimuLink to simulate the mechanisms. They often contain several subsystems due to the complexity of the models. Where necessary, descriptions of the components are supplied. Planar Mechanism This section shows the systems that were constructed to analyze the planar mechanism. This was the testing model for both the control methodology and the proper way to construct models in MATLAB. System Overview Figure A-1. Top level of planar mechanism. The orange block is the end effector, the pink block is the position sensor, the green block is the main controller, and the gray blocks are the legs. The additional controllers were incorporated for static stability in the planar mechanism. One will notice the constants that are being fed to the leg actuators. These are the forces required to hold the system in static equilibrium at its final positioning, meaning that the controller subsystem simply makes corrections to the motion once the simulation starts. Leg Subsystem SCConnl LL SRevolute 1n1 Leg Length T Revo1ute2 point Actuatorl C ]Conn2 Figure A-2. Inside the leg subsystem for the planar mechanism. Orange blocks are leg pieces. This is the simplest possible leg model for accurate simulations. Controller Subsystem X Position Xcont MATLAB 1 Function In1 F 2 3 delta force calc Terminate r- YPosition Ycont Rotational Theta cont Position ln2 Figure A-3. Inside the control block for the planar mechanism. The three PID controllers are clearly visible and act independently of one another. delta's2 Spatial Mechanism This section presents the models built to analyze the spatial mechanism. The same model was used for both spatial systems. Two versions of the leg subsystems are presented. The non-compliant variant was used in simulations and in the main model. The compliant version was intended for insertion into the main system, but proved to be unusable due to software limitations, as discussed in Chapter 7. Main System Overview re-mhr"aErI Figure A-4. Top level of the spatial mechanism model. |

Full Text |

PAGE 1 NUMERICAL ANALYSIS OF A REDUNDANT COMPLIANT SPATIAL MECHANISM By JEAN-FRANOIS AJIT KAMATH A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLOR IDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2005 PAGE 2 This dissertation is dedicated to my parents for their support and patience through the years and to Dr. Carl D. Crane III for his guidance and invaluable input. It is also dedicated to my uncle and aunt for their insight and experience. 2 PAGE 3 ACKNOWLEDGMENTS The author acknowledges the Center for Intelligent Machines and Robotics at the University of Florida for providing a research assistantship in addition to the resources and faculty that enabled completion of this project. The Department of Energy is also acknowledged for its support via grant to the University of Florida. iii PAGE 4 TABLE OF CONTENTS page ACKNOWLEDGMENTS.................................................................................................iii LIST OF TABLES............................................................................................................vii LIST OF FIGURES.........................................................................................................viii ABSTRACT.......................................................................................................................xi CHAPTER 1 INTRODUCTION........................................................................................................1 2 GENERAL CONTROL STRATEGY..........................................................................4 Generic Controller Design............................................................................................4 Decoupling the Legs.....................................................................................................5 Other Assumptions.......................................................................................................6 3 NUMERICAL FORWARD ANALYSIS.....................................................................7 Numerical vs. Analytical: Similarities in Approach.....................................................7 Geometric Constraints...........................................................................................7 Previous Positioning..............................................................................................7 General Numerical Solution.........................................................................................8 Error Function.......................................................................................................8 Jacobian Matrix and Its Applications..................................................................10 Wrenches......................................................................................................10 Jacobian matrix formulation.........................................................................11 Correctional Function..........................................................................................12 Application and Results for the Numerical Forward Analysis...................................15 Planar 2-2 + 1 Truss Platform.............................................................................15 Guess close to solution.................................................................................17 Guess far from solution................................................................................18 Over Constrained 3-3 + 1 Spatial Mechanism....................................................19 Modified 3-3 + 1 Spatial Mechanism..................................................................20 Final Comments and Conclusions..............................................................................22 4 CONTROLLER DESIGN AND IMPLEMENTATION............................................23 iv PAGE 5 Separating the DOF....................................................................................................23 Simplified System Model and Controller Implementation.........................................25 Final Thoughts............................................................................................................27 5 APPLICATION TO A PLANAR MECHANISM.....................................................28 System Description and Simulation Model................................................................28 System Parameters and Performance Criteria............................................................30 Results of Testing.......................................................................................................31 Run 1...................................................................................................................32 Run 2...................................................................................................................34 Run 3...................................................................................................................36 Run 4...................................................................................................................38 Final Comments..........................................................................................................40 6 SPATIAL MECHANISM AND ADDITIONAL CONSIDERATIONS FOR CONTROLLER DESIGN..........................................................................................42 General System Description.......................................................................................42 Modifications to Control Strategy..............................................................................44 Compensating for Compliance and Over-Constraint..........................................44 Coordinate System Conversion...........................................................................45 7 DECOUPLING COMPLIANT ELEMENTS FROM LEGS.....................................48 Leg Model...................................................................................................................48 Free Body Diagram and EOM....................................................................................49 Performance of the Decoupling Controllers...............................................................50 Results of Testing................................................................................................53 Limitations of Controller Usage..........................................................................54 8 MINIMUM ENERGY OPTIMIZATION..................................................................56 Potential Energy: General Form and Reasoning........................................................56 Force-Torque State and Equations..............................................................................57 Final Comments..........................................................................................................59 9 RESULTS OF TESTING ON THE SPATIAL MECHANISMS...............................61 Motions in Single DOF...............................................................................................61 Z-Axis Displacement...........................................................................................62 Z-Axis Rotation...................................................................................................64 Y-Axis Displacement..........................................................................................66 Y-Axis Rotation...................................................................................................68 X-Axis Displacement..........................................................................................70 X-Axis Rotation...................................................................................................72 Motions in Multiple DOF...........................................................................................74 X-Y Displacement...............................................................................................74 v PAGE 6 X-Y-Z Displacement...........................................................................................76 X-Y-Z Rotation...................................................................................................78 Full 6 DOF Motion..............................................................................................80 Modified Spatial Mechanism......................................................................................81 10 FINAL COMMENTS AND FUTURE WORK.........................................................84 APPENDIX A SYSTEM DIAGRAMS..............................................................................................85 B MATLAB CODE NEEDED FOR SIMULATIONS..................................................94 LIST OF REFERENCES.................................................................................................112 BIOGRAPHICAL SKETCH...........................................................................................113 vi PAGE 7 LIST OF TABLES Table page 3-1 Results of numerical forward analysis for planar mechanism with the guess close the solution......................................................................................................18 3-2 Forward analysis for planar mechanism with the guess far from the solution.........18 3-3 Results of forward analysis for the redundant spatial mechanism...........................20 3-4 Results for testing of numerical forward analysis for the modified spatial mechanism................................................................................................................22 5-1 Results of Run 1.......................................................................................................34 5-2 Results of Run 2.......................................................................................................36 5-3. Results of Run 3.......................................................................................................38 5-4 Results of Run 4.......................................................................................................40 vii PAGE 8 LIST OF FIGURES Figure page 2-1 Block diagram representation of a classical feedback controller...............................4 3-1 Illustration of line of action and applied wrench relative to point A.......................10 3-2 Effect of change in leg length on positioning of the end effector............................13 3-3 Effect of change in leg length on orientation of the end effector.............................13 3-4 Planar truss mechanism............................................................................................16 3-5 Spatial 3-3 + 1 Note that the upper triangle represents the end effector................19 3-6 Modified Spatial 3-3 + 1..........................................................................................21 4-1 End effector and forces acting upon it The net-wrench is shown as W.................24 4-2 Block diagram for a single mass system..................................................................25 5-1 Planar truss mechanism with asymmetry.................................................................28 5-2 System model created in Simulink, representing the planar truss mechanism........29 5-3 X-displacement of end-effector for first run............................................................32 5-4 Y-displacement of end-effector for first run............................................................33 5-5 -displacement of end-effector for first run............................................................33 5-6 X-displacement of end-effector for second run........................................................35 5-7 Y-displacement of end-effector for second run........................................................35 5-8 -displacement of end-effector for second run........................................................36 5-9 X-displacement of end-effector for third run...........................................................37 5-10 Y-displacement of end-effector for third run...........................................................37 5-11 -displacement of end-effector for third run...........................................................38 viii PAGE 9 5-11 X-displacement of end-effector for fourth run.........................................................39 5-12 Y-displacement of end-effector for fourth run.........................................................39 5-13 -displacement of end-effector for fourth run.........................................................40 6-1 Layout of the spatial mechanism and connection points The base is larger than the end effector, which is centered above the base triangle.....................................43 6-2 The control block used in the spatial mechanism.....................................................47 7-1 Generic model of a leg containing compliant elements...........................................48 7-2 Free body diagram of the actuator mass with reactionary forces from the springs and dampers..............................................................................................................49 7-3 Controller for the leg actuator..................................................................................50 7-4 Overview of leg model This shows the primary controller and a representation of the entire leg, including compliant elements.......................................................51 7-5 The actual leg model itself.......................................................................................52 7-6 Controller for decoupling the compliant portion of the leg.....................................53 7-7 Results of testing both with and without the decoupling controller.........................54 9-1 Motion of the mechanism along the Z-Axis.............................................................62 9-2 Motions in the other DOFs. (a) Y and X axes. (b) Rotations about the primary axes...........................................................................................................................63 9-3 Rotation of the mechanism about the Z-Axis...........................................................64 9-4 Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Y and X axes............................................................................................65 9-5 Motion of the mechanism along the Y-Axis............................................................66 9-6 Motions in the other DOFs. (a) Disturbance of Z and X axes. (b) Rotations about the Z, Y, and X axes.................................................................................................67 9-7 Rotation of the mechanism about the Y-Axis..........................................................69 9-8 Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Z and X axes.............................................................................................70 9-9 Motion of the mechanism along the X-Axis............................................................71 ix PAGE 10 9-10 Motions in the other DOFs. (a) Disturbance of Z and Y axes. (b) Rotations about the Z, Y, and X axes.................................................................................................72 9-11 Rotation of the mechanism about the X-Axis..........................................................72 9-12 Motions in the other DOFs. (a) Z, Y, and X axes. (b) Rotations about the Z and X axes.......................................................................................................................73 9-13 Motion of the mechanism along the X and Y axes..................................................75 9-14 Motions in the other DOFs. (a) Z and Y axes. (b) Rotations about the Z, Y, and X axes.......................................................................................................................76 9-15 Motion of the mechanism along all three axes.........................................................77 9-16 Rotations about the Z, Y, and X axes.......................................................................77 9-17 Rotation of the mechanism about all axes................................................................79 9-18 Rotation of the mechanism about all axes, albeit with a smaller commanded motion.......................................................................................................................79 9-19 Motion of the mechanism along the primary axes...................................................80 9-20 Rotations about the primary axes.............................................................................81 9-21 New platform configuration with modified connection point..................................82 9-22 Rotations about the primary axes.............................................................................83 A-1 Top level of planar mechanism................................................................................85 A-2 Inside the leg subsystem for the planar mechanism.................................................86 A-3 Inside the control block for the planar mechanism The three PID controllers are clearly visible and act independently of one another...............................................87 A-4 Top level of the spatial mechanism model...............................................................88 A-5 Inside the leg subsystem of the spatial mechanism..................................................89 A-6 The control block for the spatial mechanism...........................................................90 A-7 Top level of compliant leg model............................................................................91 A-8 Inside the compliant leg model................................................................................92 A-9 The decoupling controller for the compliant leg model...........................................93 x PAGE 11 Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science NUMERICAL ANALYSIS OF A REDUNDANT COMPLIANT SPATIAL MECHANISM By Jean-Francois Ajit Kamath August 2005 Chair: Carl D. Crane, III Major Department: Mechanical and Aerospace Engineering This thesis presents the development and testing of a generalized controls strategy that was applied to a redundant spatial mechanism. Three systems were analyzed: a planar, non-redundant, non-compliant mech anism, a redundant, compliant spatial mechanism, and a modification of the spatial mechanism which changed the configuration slightly. The planar mechanism was used to verify the controls strategy and general approach. The modified spatial mechanism was used to investigate the effects that changes in geometry would have on rotational performance. Simulations of the systems and their controllers were performed in MATLAB 6.5 using SimuLink and the SimMechanics package. A numerical forward analysis was developed as a flexible and simple solution to the problem of position determination. This analysis can be readily adapted to virtually any parallel mechanism, regardless of configuration or number of legs. Control of the mechanisms was accomplished by calculating the net wrench that needed to be applied to the end effector, then performing a xi PAGE 12 conversion to determine the required forces in the individual actuators that will generate the desired motion. The controls strategy worked well, effectively decoupling the motions of the system along its various degrees of freedom. While the coupling could not be completely eliminated, the disturbances that resulted were extremely small and had little to no impact on system performance. A method was developed to decouple the compliant elements from the legs, allowing a wide range of leg masses, spring rates, and damping rates to be used in conjunction with the controls strategy that was implemented. This research demonstrated that even relatively simple methods can be used to effectively control highly cross coupled systems. It also showed that an effective process for developing a controller is to separate the system into smaller pieces that can be analyzed easily. Creating a modular controller is a versatile approach to solving a wide range of problems. Finally, this project revealed that redundancy in a parallel mechanism may be highly desirable as it can dramatically improve the performance of the system by expanding the useable workspace. xii PAGE 13 CHAPTER 1 INTRODUCTION Research into control of parallel mechanisms is an ongoing process that still presents many challenges due to the dynamic nature of the systems. The main goal of this project was to develop a generalized control methodology to investigate the dynamic response of an over-constrained, spatial mechanism that contained compliant elements. The system was a modified 3-3 mechanism that incorporated an additional central leg for potentially added stability. Motion was generated using force actuators that were integrated with the controllers. The basis for many of the analyses in this project came from Duffy [1], Crane and Duffy [2], and Baiges-Valentin [3]. The first reference, Statics and Kinematics with Applications to Robotics, focused on the analysis of planar mechanisms in both static and dynamic situations, including configurations requiring compliance. It served as a valuable resource when considering force applications. Kinematic Analysis of Robot Manipulators was indispensable since it laid out all of the methods for position analysis of parallel mechanisms as well as providing the force convention used to determine the behavior of the systems. Forward and reverse analyses for both serial and parallel mechanisms were explained and were critical in development of the positional analysis in this project. The application of forces and wrenches to bodies and platforms, as discussed in this text, were needed for the proper development of the controllers. 1 PAGE 14 2 Dynamic Modeling of Parallel Manipulators investigated the creation of a generic, compliant leg model and analysis of its dynamic behavior. The paper laid out several simplifications and adjustments to the model that were applicable to the compliant elements in this project, and enabled development of the decoupling controllers, as discussed later. Lee et al. [4], Zhang et al. [5, 6], Lee [7], and Zhang [8] investigated the quality indices and inverses of the line matrices of various parallel mechanisms. They showed that behavior of parallel systems can only be effectively predicted and controlled within a limited workspace due to the development of linear dependence amongst the legs. Beyond a certain range, these mechanisms become ill-conditioned, making them very difficult to control as they approach singularity configurations. Geometric Analysis of Parallel Mechanisms investigated several parallel mechanisms with varying degrees of freedom. It discussed limitations of the systems and performed singularity analyses, once again showing restrictions on mobility of this class of devices. Tyler [10] and Abbasi et al. [11] looked at force control applications for parallel mechanisms and investigated the use of compliance to facilitate the process. They applied PID controllers to the systems and showed that even the simple control scheme could be used effectively. This was part of the inspiration for the control strategy implemented in this project. This thesis is divided into several key sections that progress from general approaches to specific applications. While several systems were analyzed, most served to test specific aspects of the overall controls approach that was applied to the primary spatial mechanism. Chapter 2 discusses the general approach to designing the controllers 2 PAGE 15 3 and critical assumptions and considerations for the systems that were analyzed. In Chapter 3, the numerical forward analysis, critical for positioning information, is developed and tested. Chapter 4 goes into the specifics of designing the controllers for a generic parallel mechanism without compliance. Chapter 5 shows a specific application of this controls approach to a planar mechanism as a proof of concept. Chapter 6 introduces the full spatial mechanism, along with compliant elements and discusses additional considerations for controller development. Chapter 7 develops a method for decoupling the compliant elements from the system so that the mechanism will respond similarly to the non-compliant systems. Chapter 8 shows how the obstacle of over-constraint was solved to enable proper application of the control forces. Chapter 9 discusses the results of testing on the spatial mechanism, as well as a slight modification of the system configuration. Finally, Chapter 10 presents final thoughts and areas with future research potential. 3 PAGE 16 CHAPTER 2 GENERAL CONTROL STRATEGY Control of a parallel mechanism is a fairly complicated task since the behaviors of the legs are highly cross-coupled by nature. This necessitates certain simplifications to the analysis of the kinematics and dynamics of the system. This chapter discusses the general approach and assumptions made in the design of the controllers for the mechanisms analyzed. Some of the potential errors that could be introduced into the systems due to those simplifications will also be examined. Generic Controller Design Any feedback controller follows a basic format that consists of several parts: Gather information on the current behavior of the system. Compare this to the desired behavior. Calculate and apply corrections to the system. Figure 2-1. Block diagram representation of a classical feedback controller. A generic controller is depicted in Figure 2-1. While this is a very simple concept that is familiar to all engineers, it highlights a key consideration when designing any controller: What information do you need to record and how do you obtain it? In the case of the mechanisms analyzed in this project, information on the current positioning of the system is critical. However, gathering this data is not trivial in many circumstances. 4 PAGE 17 5 The raw data that could be most easily gathered for the parallel mechanisms was the lengths of the legs. One might remember the discussion in Chapter 1 about the limitations of parallel mechanisms, more specifically regarding the nature of forward analyses. Parallel manipulators can be especially bothersome when attempting to perform a forward analysis due to the mathematical complexity and the potentially large number of solutions. Since one of the objectives of this research was to develop a flexible control strategy that could be easily adapted to many devices, an analytical forward analysis became unreasonable. As a result, an extremely powerful, highly adaptable numerical approach was created to overcome this obstacle. The numerical analysis strategy is discussed in Chapter 3. Decoupling the Legs One of the biggest hurdles when designing the controllers was effectively decoupling the legs from each other. A simplification that is often used with parallel devices is the assumption that the masses and inertias of the legs and actuators are extremely small as compared with the mass and inertia of the end effector. The primary advantage of this technique is the reduction of the system to a single object, making the behavioral analysis far easier. However, as the masses of the other components increase with respect to the end effector, errors in the analysis become more apparent. This naturally brings up the question of, What is small? Unfortunately, the answer depends on the system in question as well as the application. To minimize errors, the models used leg masses that were five to seven orders of magnitude less than that of the end effector. 5 PAGE 18 6 Other Assumptions Several other assumptions were made during the course of the project: The first and probably most important was that the effects of the cross coupling would be essentially eliminated by setting the leg masses to low values. The geometric cross-coupling was considered to be negligible during controller design. The actuators were modeled to have perfect behavior and therefore have no contribution to errors in the system. Perfect behavior assumes instantaneous response to control inputs with no error in the response of the component. Springs and dampers were assumed to be ideal, linear components with no degradation in performance regardless of conditions. All bodies in the system were considered rigid. Any flexible elements were modeled as multi-part components. This is discussed in detail in Chapter 7 6 PAGE 19 CHAPTER 3 NUMERICAL FORWARD ANALYSIS Developing a generalized, numerical forward analysis for parallel mechanisms was a challenging, but highly rewarding experience. What developed was a novel approach that was extremely flexible and easily adaptable to the analysis of virtually any parallel system, regardless of configuration or number of legs. Numerical vs. Analytical: Similarities in Approach As discussed in Chapter 1, any analytical, closed-form solution to the forward positioning problem of a parallel mechanism is a tedious and rather complicated process. The more flexible the solution, the more complicated the mathematics behind it must be. However, the numerical approach closely follows the logic of the analytical solution in a couple of respects. Geometric Constraints The first considerations in any forward analysis are the physical constraints and limitations of the system. The relative positions and sizes of the components as well as their possible motions all must be satisfied in the solution. This is the most important restriction that inherently limits the solutions, both analytical and numerical. Previous Positioning Since the goal of the forward position analysis is to determine the current positioning of the system to feed into the controller, only one valid answer exists to the question of Where am I? These platforms generally do not move at extreme speeds so it is safe to assume that at a high enough sampling rate, the current positioning of the end 7 PAGE 20 8 effector will be relatively close to its configuration at the previous sample. This means that we can use the previously known position information to determine which solution is correct. In the case of analytical approaches, this simply selects the proper solution from all possibilities. The numerical method instead used the previous positioning as a guess at the solution and then homes in on the correct answer. General Numerical Solution Any typical numerical solution to a problem involves minimization of some error function that describes how close the solver is to the desired answer. Corrections to the guess are made based on some relevant algorithm or set of equations, eventually leading to an answer that is within a specified range of the true results. For the numerical forward analysis of any parallel platform, three things are needed: a guess at the current positioning, an error function based on the actual positioning, and a correctional function that will allow the solver to home in on the proper solution. As mentioned earlier, the initial guess at the current positioning is set as the known positioning at the previous controller update. The error function is also relatively simple in form and application and is discussed below. The correctional function is the most important piece of this approach and requires a certain amount of background in the use and formulation of Jacobian matrices. As a result, an entire section is devoted to the explanation of the correctional function. Error Function To formulate the error function, one must determine what information is available. In the case of the numerical forward analysis, this data consists of the measured leg lengths, the current guess at positioning, and the geometry of the platform. The error in the system is defined as the error in leg lengths between the current guess and the actual PAGE 21 9 solution. The positioning information consists of a six-element vector that describes the location of the end effector and its orientation relative to the global coordinate system. The lengths of the legs at the guess can be readily determined using a reverse positioning analysis. The error in the solution can then be calculated as shown in equation 3.1 for a system with n legs. guessactualguessnguessguessguesszyxguessLLErrorLLLLzyxP,,2,1 (3.1) One will notice that the error is not simply defined as the sum of the squares of the individual leg errors, but rather it is a vector that contains as many elements as there are legs in the system. As a result, use of this error in correctional calculations will inherently consider the geometric constraints of the entire system, as opposed to just the primary axes. This has the advantage of making the analysis of over constrained mechanisms relatively straightforward. Another advantage of the numerical approach is that it tends to correct for the slight errors in measurements that will be present in any system. Since the solver is trying to get close to the correct solution, the input data does not have to be perfect to get a good guess. This especially holds true in over-constrained systems, where more measurements are taken than are needed to find the right answer. A small error in measurement of one or two elements will not ruin the calculations, inherently making this approach far more PAGE 22 10 robust than a closed-form solution. The next section looks at the Jacobian matrix and how it can be used in conjunction with the error to form a correctional term. Jacobian Matrix and Its Applications This section discusses the nature of the Jacobian matrix and its applications in both force-torque calculations, as well as positioning analyses. Before the actual use of the Jacobian in the forward analyses can be shown, a brief description of the derivation and meaning of the Jacobian matrix is necessary. This section also has relevance in later chapters regarding controller design and calculations. Wrenches When performing force-torque calculations for a parallel manipulator, one must know the forces applied in each leg actuator, as well as how these forces will contribute to the net wrench applied by the end effector.1 Each leg actuator applies its force along a line that runs along the axis of its leg as shown in Figure 3-1. Figure 3-1. Illustration of line of action and applied wrench relative to point A. 1 An excellent reference on position and force analyses for robots is Kinematic Analysis of Robot Manipulators [2]. PAGE 23 11 The force that each actuator applies to the top platform can be described in terms of the line of action and the force acting along that line. The net summation of all leg forces acting on the top platform can be represented by a dyname (a force applied along a particular line of action together with a moment) or by a wrench (a force acting along a specific line of action whereby the direction of the accompanying moment is parallel to the direction of the force). The line of action is a 6 vector consisting of two parts: A 3-element unit vector indicating the direction of the line. A 3-element vector that is based on the relative positioning of the line to some reference point. This is obtained by taking the cross product of the moment arm and the direction vector as srs$ (3.2) where r is the vector from the origin of the reference coordinate system to any point on the line. Jacobian matrix formulation Calculating the net wrench applied to a body by a group of forces is a relatively simple process. The overall wrench applied by a collection of forces can be described as the summation of these forces as nnnnnnnnnnetnetsrsrsrsssJFFFJFFFFFFF221121212121212211$$$$$$$$$$ (3.3) for a system with n legs. Here the notation Fi is used to represent the magnitude of the force along leg i and $i is used to represent the length 6 vector that represent the coordinates of the line of action of the force. PAGE 24 12 One can see that the Jacobian, J, is a 6n matrix whose columns are the coordinates of the lines of action of the forces applied to the top platform. This is a clear indicator that the Jacobian matrix contains all of the information about the configuration of the system since the relative orientations and positions of the legs are incorporated. Logically, the Jacobian matrix, or some derivation of it, could be used in the numerical forward analysis. Correctional Function Now that the physical meaning of the Jacobian matrix is understood, the correctional function can be written. A slight modification of the Jacobian is introduced and will be explained shortly. This modified Jacobian will be multiplied by the error term explained earlier to form an adjustment to the guess at the current positioning. Equation 4 shows the modified Jacobian in a generic format that incorporates n legs. guessnnnguessguessnModifiedLsrLsrLsrsssJ,,222,11121 (3.4) One will notice that the modified Jacobian is very similar in form to the original except that the bottom rows, representing the torsional contributions of the legs, have been scaled by the lengths of those legs. Visualizing how the correctional guess actually works is critical in understanding why the scaling is necessary. Let us consider a single leg and how modifying its length will affect the system state for a planar mechanism. Figure 3-2 shows how changing the length of a single leg will impact the positioning of the platform by causing a displacement along that legs line of action. Likewise, Figure 3-3 shows the impact that a change in leg length will have on the rotation of the platform. The platform will rotate about an axis perpendicular to the plane formed by the line of PAGE 25 13 action of the leg and the moment arm of that leg. The amount of rotation is dependent on the magnitude of the change and the relative orientation of the leg with respect to the platform. Figure 3-2. Effect of change in leg length on positioning of the end effector. Figure 3-3. Effect of change in leg length on orientation of the end effector. PAGE 26 14 Changing the length of any single leg attempts to move the platform along the line of action of that leg. When all of the legs act together, some of the motions will cancel out while others work together, leading to a net movement in a particular direction. The orientation of the platform is affected similarly by the changes in length. Each leg will attempt to rotate the end effector about an axis perpendicular to the plane formed by itself and its moment arm. Scaling the torsional component by the change in length of the leg is necessary since this process looks at the rotational changes in the system. Essentially, the required change in length of the leg can be considered as a change in the rotational strain of the leg when scaled by the overall length. StrainLegsrLLLsrLLLsrguessguessguessguess_ (3.5) Another way to look at the rotational components is to consider the convergence of a change in leg length as that change becomes smaller. The change in length is very similar to sin in a small angle approximation, implying a predictable correlation between length and rotational effects. However, the change in length cannot be used directly since it does not take into account the relative effect on the leg in question. Any particular change will have a noticeably greater impact on a system with a very short leg as compared with a longer leg. By scaling each component of the Jacobian, the impact of each error correction is scaled to compensate for the relative effects of the individual legs. The only reason that the bottom rows in the Jacobian are scaled instead of scaling the error vector is for efficiency of calculation. It avoids the issue of two separate calculations that would then require the results to be recombined into a single vector. The next step is to calculate the correction to the guess at positioning using Equation 6. PAGE 27 15 guessifiedguessLLJPmod (3.6) The scaling term x was included in the DPguess calculation to improve the efficiency of the solver. Depending on the system, the solver may take extremely small or large steps when trying to find the proper solution. This can either cause the program to slow down considerably, or possibly even overshoot the solution and never converge. The scaling term allows the program to adjust the size of the step to ensure rapid convergence on a solution. This term may need to be found empirically, but at times it is quite necessary, such as when dealing with over constrained mechanisms. The next section shows application of this solver to three different systems that were analyzed in this project. Only the basic geometry of the mechanisms will be described since a more detailed explanation of the particular systems will be given in their respective chapters. Application and Results for the Numerical Forward Analysis The application of the solver to three systems will be discussed in this section. The first is a planar mechanism that was developed as a simplified test of the control strategy laid out in Chapter 2. The second system is the over constrained spatial mechanism that was a primary focus of this project. The third mechanism is similar to the second, except that the connection point for one of the legs was moved to test the conditioning of the second mechanism. Also note that the MATLAB code for the analyses can be found in Appendix B, along with other code blocks necessary for running the simulations. Planar 2-2 + 1 Truss Platform This mechanism followed a basic 2-2 configuration with the third leg bridging two of the connection points. Figure 3-4 shows the connection setup for the planar mechanism and the dimensioning in centimeters. PAGE 28 16 Figure 3-4. Planar truss mechanism. The Jacobian matrix for this planar device was only a 3 matrix since only three degrees of freedom were present in the system. This is not a problem since the fundamental concepts behind the analysis remain intact. The rotational contribution of the legs is still directly related to their effective moment arms about the center of the end effector. The new Jacobian will take the form of 33,22,11,32132133LLLyyyxxxJzzzx (3.7) where xi and yi represent the direction of leg i, z,i represents the moment of leg i about the z axis, and Li represents the length of leg i. PAGE 29 17 The X and Y components of the line of action for each leg are needed in the matrix, as is the rotational contribution about the Z-axis, mZ. The variable mZ is the Z component of the vector s r which only has a Z-component for the planar case as zzyxsr00 (3.8) Testing of the numerical forward analysis was performed with a handful of scenarios, including situations in which the initial guess was relatively close to the solution and other cases where the guess was significantly farther away. The most relevant examples are discussed here. Guess close to solution In this series of tests the guess was extremely close to the solution. The idea was to test a realistic scenario as would be used in a real controls application. Under normal controls circumstances, the controller is updated and a fairly regular interval, meaning that the system has not moved much from its previous position. Since the previous position will be used for the initial guess, it is only logical to test situations in which one is very close to the solution. In each case the solution was such that the platform was centered side to side relative to the base and was located 25 units below the base, i.e. coordinates [0, -25; 0]. The guesses were offset from the solution by up to ten units along the primary axes or 0.1 radian rotation about the Z-axis. The maximum error allowed was 0.0001 unit in leg length and the maximum number of iterations was capped at 4000 to avoid potential infinite loops. Table 3-1 shows the results of these tests. X and Y are the positioning of PAGE 30 18 the platform relative to the center of the base. is the rotation of the platform about the Z-Axis. At a value of zero, the platform is parallel to the base. Table 3-1. Results of numerical forward analysis for planar mechanism with the guess close the solution. Initial Guess Calculated Solution X (cm) Y (cm) (rad) X (cm) Y (cm) (rad) # of Iterations 0 -35 0 -0.0029 -24.9999 -0.0753 4000 0 -30 0 -0.0006 -25 -0.053 1254 10 -25 0 -0.0094 -24.9998 0.1407 4000 5 -25 0 0.001 -25 0.0212 1961 0 -25 0.1 -0.0092 -24.9998 0.1395 4000 One will notice that the calculated solutions are very close to the actual solutions. The main error present in the system is in the rotation. This is not surprising because the system is asymmetric due to the presence of the cross third leg. It inherently skews the modified Jacobian resulting in over correction in both the X direction and rotation about the Z-axis. This primarily manifests itself in rotational error, which unfortunately cannot be corrected with the current approach. Guess far from solution The second series of tests placed the initial guess relatively far from the actual solution. This was a given idea of the limitations of the solver in extreme circumstances, although they are not very likely to occur. Table 3-2 shows the results of the testing. One will notice the difficulty the solver has in these situations. Table 3-2. Forward analysis for planar mechanism with the guess far from the solution. Initial Guess Calculated Solution X (cm) Y (cm) (rad) X (cm) Y (cm) (rad) # of Iterations 0 -55 0 -0.0076 -24.9998 -0.1213 4000 0 -75 0 -0.01 -24.9997 -0.1382 4000 20 -25 0 -0.2009 -24.9939 0.7429 4000 -20 -25 0 -0.4992 -24.975 1.5699 4000 PAGE 31 19 The primary cause of the solver difficulties is that the error is so large that the corrections could potentially exceed the workspace. Another cause may be that several possible solutions could exist for any given set of leg lengths. This is not inherently a problem because in real controls applications, the guesses will never be this far off. The next sections discuss the results from testing with the spatial mechanisms, where it becomes clear that having extra legs can dramatically improve the response of the solver. Over Constrained 3-3 + 1 Spatial Mechanism Figure 3-5. Spatial 3-3 + 1. Note that the upper triangle represents the end effector. The spatial mechanism tested followed a 3-3+1 configuration, which is identical to a 3-3 mechanism, except that it contains an additional central leg. Figure 3-5 shows the relative placement of the central leg with respect to the rest of the mechanism. This leg ran from the center of the base platform to the center of the end effector, producing symmetry in the device. The benefits of having this leg present in the system became readily apparent once testing began. Whereas the planar mechanism would sometimes require several thousand iterations to find a solution, the spatial mechanism would often PAGE 32 20 only require 50-100 iterations, which could be calculated extremely quickly. For each test, the actual positioning of the platform was centered above the base at a height of 1 meter along the Z-Axis with no rotations about any axes. This is represented by the coordinates [0, 0, 1; 0, 0, 0]. Both the end effector and the base were configured as equilateral triangles. The corners of the end effector were located 0.5 meter from its center while the base triangle was twice the size. Table 3-3. Results of forward analysis for the redundant spatial mechanism. Initial Guess Calculated Solution X (m) Y (m) Z (m) X (rad) Y (rad) Z (rad) X (m) Y (m) Z (m) X (rad) Y (rad) Z (rad) # of Iter 0 0 1.5 0 0 0 0 0 1 0 0 0 4 0 0 5.5 0 0 0 0 0 1.0001 0 0 0 6 0 5 1 0 0 0 0 0 1 0.0003 0 0 93 10 5 1 0 0 0 0 0 1 0.0001 -0.0002 0 86 0 0 1 1.5 0 0 0 0 1 0.0003 0 0 113 0 0 1 0 1 0 0 0 1 0.0001 0.0002 0 111 0 0 1 0 0 1 0 0 1 0 0 0.0003 69 2.5 3 5 0.5 0.5 0.5 0 0 1 0.0002 0.0001 0 107 One will notice that the error in estimated positioning is extremely small. This comes as a welcome surprise and clearly demonstrates the potential for speed and accuracy with this approach. The errors could be reduced even further by reducing the maximum allowable error in the calculations. The extra leg helped to dramatically limit the number of solutions, expanding the effective workspace of the solver, resulting in a huge increase in performance. The final test for the solver was with a modification of the spatial mechanism in which one of the connection points for the central leg was moved to produce a non-symmetric system. Modified 3-3 + 1 Spatial Mechanism The modified spatial mechanism moved the top connection of the central leg to one of the corners of the end-effector, so that it lay coincident with two other joints. The PAGE 33 21 location selected was coincident with the joints located 0.5 m along the Y-Axis of the platform. Figure 3-6 shows the change in configuration of the spatial mechanism. Figure 3-6. Modified Spatial 3-3 + 1. This was an ideal test since the system was no longer symmetric. One may recall the ill-effects of asymmetry had on the solver for the planar mechanism. However, these issues never arose during testing of the solver with the modified spatial device. In each test, the modified mechanism was positioned at the same location as the 3-3+1 system, with the same dimensions. The actual position was at [0, 0, 1; 0, 0, 0]. Table 3-4 shows the results and clearly indicates that the solver is still working well. The slight increase in the number of iterations necessary to find solutions is a minor issue that could most likely be resolved by adjusting the scaling factor x for the error. PAGE 34 22 Table 3-4. Results for testing of numerical forward analysis for the modified spatial mechanism. Guess Solution X (m) Y (m) Z (m) X (rad) Y (rad) Z (rad) X (m) Y (m) Z (m) X (rad) Y (rad) Z (rad) # of Iter 0 0 1.5 0 0 0 0 -0.0001 1 -0.0001 0 0 12 0 0 2.5 0 0 0 0 0 1 -0.0003 0 0 40 0 2 1 0 0 0 0 0 1 -0.0003 0 0 68 10 2 1 0 0 0 0 0 1 0.0002 -0.0001 0 114 0 0 1 1.5 0 0 0 0 1 0.0003 0 0 113 0 0 1 0.5 0.5 0.5 0 0 1 0.0001 0.0002 0 101 Final Comments and Conclusions The numerical forward analysis works exceptionally well in a wide array of situations and looks to be a highly flexible and powerful tool. It is easy to implement and can be very efficient at finding positioning, even with minimal tuning. Changing the geometry of the mechanisms presents no difficulty as the modified Jacobian matrix also changes. This approach also allows users to analyze and control mechanisms that are over-constrained or even ill-conditioned since it is never necessary to find the inverse of a matrix. While the analysis laid out in this chapter is a powerful tool, a possible refinement might include a more precise method of tuning the solver. Currently, the only adjustment to the solver is a scaling of the step that is taken to avoid overshooting the solution. A more thorough analysis later could reveal better tuning methods that might parallel classical PID controls for other systems. However, that analysis is best left for another time and project as the current approach works extremely well. PAGE 35 CHAPTER 4 CONTROLLER DESIGN AND IMPLEMENTATION As discussed in Chapter 2, a number of elements are involved in designing a controller for any system. For the specific application to parallel mechanisms, the most important and difficult part of the problem is accurate measurement of the positioning of the system. This problem was solved in Chapter 3 using a flexible numerical methods approach. The next step in the process is the design of the controllers that will actually affect the behavior of the system. Separating the DOF Any parallel mechanism is highly cross-coupled by nature, making control strategy potentially difficult. Chapter 2 talked about the advantages of assuming that the leg masses were negligible, and this is an important first step towards developing the controllers. One must remember that the spatial systems analyzed in this project had six degrees of freedom, necessitating at least six controllers. Since the leg masses were extremely small, the only significant object in any particular system was the end-effector platform itself. The system model could now be developed that consisted of a lumped mass with a collection of forces acting upon it, as shown in Figure 4-1. These forces would produce an instantaneous net-wrench that would affect the motion and behavior of the end effector. 23 PAGE 36 24 Figure 4-1. End effector and forces acting upon it. The net-wrench is shown as W. Recall that a wrench consists of six elements which represent the force and torque acting upon a particular body. Theoretically, applying a wrench that only acts along a single DOF should affect the object only in that DOF. This implies that the problem can now be separated into six individual models, each corresponding to one DOF. As a result, the six resulting equations of motion take the form of qMFeqext (4.1) Meq is a generalized representation of the equivalent mass or inertia of the system in the particular degree of freedom that is being considered. By the same token, is the acceleration of the system in that degree of freedom. Fext is simply the external force or torque that is applied to the system during its motion. q PAGE 37 25 Simplified System Model and Controller Implementation Now that the various DOFs have been separated it is necessary to determine the behavior of the individual systems. As discussed in the previous section, each section of the model can be represented as a single mass upon which an external loading acts. Designing a controller for such a system is relatively straight forward as the motions of these systems are well known. A standard PID controller should be sufficient to produce good behavior. The system block diagram for each DOF now takes the form of Figure 4-2. Block diagram for a single mass system. Now that the control layout has been formulated, the next step is to determine the transfer function that describes the behavior of the system. From basic control theory, the closed-loop transfer function can be written as HTTTF1 (4.2) Where: T is the controller times the representation of the system mass. H is the value of the feedback multiplier. When the value for T is substituted into equation (4.2), the numerator and denominator of the equation can be expanded, resulting in the third-order function mHImHPmHDmImPmDsssssHIHPsHDsmsIPsDsTFmsHIHPsHDsmsmsIPsDsHHTmsIPsDsmsDssIPmsPIDT2322323233232221111 (4.3) where P, I, and D are the values of the controller. PAGE 38 26 Determining the ideal values for the controllers can be a rather tedious task, especially with a third-order system. However, certain simplifications can be made to make the problem more manageable. By inspection, one can see that setting the integral portion of the controller to zero will reduce the transfer function to a more classical second order system. mHPmHD2mPmDmHP2mHD3mP2mDssssssssTF (4.4) Design of controllers for second-order behavior has been well-established, enabling one to not only easily design the controllers, but also to automate the process during controller implementation. One will notice that this approach is the application of a PD controller to a free mass system. While this is a simpler approach, there may be situations where application of a PID controller might be necessary to compensate for steady-state error or unforeseen effects of the system being analyzed, as was the case for the planar mechanism discussed in Chapter 5. Having specified the form of the controllers, one can easily determine the values to generate desired system behavior. From classical second-order analysis, the equations describing the response of the system take on the following form 2ln2ln121422ppMMpnsnneMtmHDmHP (4.5) PAGE 39 27 Where: wn is the natural frequency of the system. z is the damping ratio. ts is the settling time. Mp is the ratio of maximum overshoot to steady-state value. Final Thoughts While the controllers used in this project are fairly simple in form, they were meant to test two things. The first was the feasibility of decoupling the legs with basic assumptions and restrictions on the system. The second was the ease with which a controller could be incorporated into the system, given the overall complexity of the problem. The highly flexible numerical forward analysis discussed in Chapter 3 was a primary focus of development in this project and was considered to be a more critical aspect of the overall controller design. More advanced control techniques could easily be implemented, but the structure of the controls would remain essentially intact, regardless of the approach. PAGE 40 CHAPTER 5 APPLICATION TO A PLANAR MECHANISM Once the control methodology has been determined, the next logical step is testing on a simplified system to analyze basic performance and ascertain whether the steps to attain decoupling actually worked. The mechanism first analyzed in this project was a planar, three-leg platform that was set in a truss configuration, as described in Chapter 3. Not only did this mechanism serve as a simple test bed, but it also helped to highlight potential issues related to asymmetry. System Description and Simulation Model Figure 5-1. Planar truss mechanism with asymmetry. 28 PAGE 41 29 The planar truss mechanism consisted of three legs arranged in the configuration shown in Figure 5-1. One will notice that the platform differs from the other mechanisms analyzed in this project in that the end effector hangs below the base connection, rather than being supported above it. This has no effect on the control strategy or system analysis since the wrench applied by the weight of the platform is simply reversed. The configuration shown was chosen since it was naturally stable in simulations, allowing the testing to focus purely on controls and system behavior, rather than trying to debug the mechanism. The dimensions of the platform were selected to mimic the configuration of the spatial mechanism that would be analyzed later. The end effector was half the length of the base, with the connection points located at both ends. Figure 5-2. System model created in Simulink, representing the planar truss mechanism. Note that the controller is marked in green and the end effector is colored orange. This system in discussed in Appendix A. PAGE 42 30 The entire system was modeled in Simulink using MATLAB 6.5. This provided the most flexible approach for modeling as the system parameters could be easily changed. Figure 5-2 shows the model with various components highlighted, though a larger version of the model can be found in Appendix A. Since the planar mechanism was meant as a test bed for the control strategy discussed in Chapter 4, the position information was measured, rather than calculated using the numerical forward analysis. The leg elements were given extremely small, but still finite masses because the software required that they have at least some mass to avoid singularities in calculations. System Parameters and Performance Criteria Recall that the legs and actuators were reasoned to have negligible mass, leaving the only source of mass and inertia as that of the end effector. Since the values of the controller gains were directly proportional to the mass of the system, the mass was simply selected as 1 kg, though any value would be perfectly acceptable. The length of the end effector was 25 cm while the base length of the platform was 50 cm. The inertia contribution of the platform was calculated by modeling the end effector as a thin bar using the equation 2121mLI (5.1) Where: m is the mass of the end effector. L is the length of the end effector. The system was specified to have a desired maximum of 25% overshoot and a settling time less than 1 second. However, preliminary testing revealed that a PD controller was insufficient to compensate for the coupling effects caused by the third leg, as mentioned in Chapter 4. This necessitated a revision to the controller that used a full PAGE 43 31 PID controller rather than the simpler PD design. While this was an unexpected hurdle during testing, it served to highlight a potential problem that asymmetry can present in these mechanisms. Apparently a high amount of asymmetry tends to exacerbate the problem of cross-coupling, possibly requiring that certain additional steps be taken to correct the issues. Redesign of the controller assumed that a full PID controller would be necessary, which also meant that the system model was third order, rather than second order. The characteristic equation of the system now becomes mHImHPmHDsss23 (5.2) This formula can be split into two portions, a second order and a first order formula Rsssnn222 (5.3) The real pole will cause a slight change in the behavior of the system, which is the ultimate goal of this process. The complex poles for the second order response were selected to be -4.5 6.75j to give an approximate response of 20% overshoot and a settling time less than 1 second. The real pole was picked as -10 since testing of a generic third order system showed that it gave good results for the design parameters. While it was a somewhat longer process designing the controllers, the solution was relatively straightforward. Then main lesson from this was that asymmetry is highly undesirable in any system, causing unpredictable behavior. However, the steps taken for redesign the controllers provided adequate compensation. Results of Testing The controllers performed far better than anticipated, showing less than the maximum allowable overshoot, settling times less than one-second, and steady-state PAGE 44 32 errors most likely attributable to round-off errors. Every performance requirement was exceeded during testing. Run 1 The first run tested the response of the system in the y-direction since that is the most stable direction. The platform started centered at (0 cm, -25 cm) with no rotation and was moved to the position (0 cm, -15 cm). Figures 5-3 through 5-5 show the system response in the x, y, and directions respectively. Table 5-1 shows the most pertinent numerical results from the run. Figure 5-3. X-displacement of end-effector for first run. PAGE 45 33 Figure 5-4. Y-displacement of end-effector for first run. Figure 5-5. -displacement of end-effector for first run. PAGE 46 34 Table 5-1. Results of Run 1. Desired Position Final Position Maximum Position Max Overshoot X 0 cm -0.0001 cm 0.00240 cm n/a Y -15 cm -14.9963 cm -12.8797 cm 21.20 % 0 rad 0 rad 2.4e-5 rad n/a As can be seen from Table 2, the maximum steady-state error was 0.0037 cm, or 0.037%. The maximum overshoot of the y-direction was 21.20% which is less than the 25% limit. The settling time of the system is 0.82 sec, which once again is less than the specified limit of 1 sec. The extremely small steady-state errors can be attributed to round-off errors. Run 2 The second run tested the response of the system in the x-direction. Once again, the system started at (0 cm, -25 cm), but then it was moved to (-15 cm, -25 cm). The idea of doing testing like the first three runs was to test the coupling of the system to determine how strongly one direction of motion might affect the others. The results are displayed in Figures 5-6 to 5-8. As can be seen from Table 5-2, the maximum steady-state error was 0.0055 cm, or 0.037% once again. The maximum overshoot of the x-direction was 21.20% which is less than the 25% limit. The settling time of the system is 0.82 sec, which once again is less than the specified limit of 1 sec. The response in the x-direction is identical to the y-direction since they both run the same controllers. This also indicates that the coupling effects in the system are negligible. PAGE 47 35 Figure 5-6. X-displacement of end-effector for second run. Figure 5-7. Y-displacement of end-effector for second run. PAGE 48 36 Figure 5-8. -displacement of end-effector for second run. Table 5-2. Results of Run 2. Desired Position Final Position Maximum Position Max Overshoot X -15 cm -15.0055 cm -18.1804 cm 21.20% Y -25 cm -25.0001 cm -25.0105 cm n/a 0 rad 8.901e-5 rad -0.0021 rad n/a Run 3 The third run tested the rotational response of the system. The platform was rotated by 10 degrees. The results are shown in Figures 5-9 to 5-11. As can be seen from Table 5-3, the maximum steady-state error was 0.0001 deg, which is most likely round-off error. The maximum overshoot of the -direction was 20.952% which is less than the 25% limit, but different from the x and y responses. The settling time of the system is approximately 0.75 sec, which once again is less than the specified limit of 1 sec. PAGE 49 37 Figure 5-9. X-displacement of end-effector for third run. Figure 5-10. Y-displacement of end-effector for third run. PAGE 50 38 Figure 5-11. -displacement of end-effector for third run. Table 5-3. Results of Run 3. Desired Position Final Position Maximum Position Max Overshoot X 0 cm 0 cm -0.0014 cm n/a Y -25 cm -25 cm -25.0025 cm n/a 0.1745 rad 0.1745 rad 0.2111 rad 21% Run 4 The final run tested the response of the system when the platform was commanded to move in all three directions from its initial position of (0 cm, -25 cm) to a final position of (-15 cm -35 cm) with a rotation of 20 degrees. The results are shown in Figures 5-11 through 5-13. PAGE 51 39 Figure 5-11. X-displacement of end-effector for fourth run. Figure 5-12. Y-displacement of end-effector for fourth run. PAGE 52 40 Figure 5-13. -displacement of end-effector for fourth run. Table 5-4. Results of Run 4. Desired Position Final Position Maximum Position Max Overshoot X 15 cm 14.9999 cm 18.1902 cm 21.3% Y -35 cm -35 cm -37.1259 cm 21.3% 0.3491 rad 0.3491 rad 0.4233 rad 21.3% Despite being commanded to move in all three directions simultaneously, the system behaved very well, meeting all design specifications. This shows that the controller design was a success. Final Comments The testing with the planar mechanism served several purposes. First, it verified the generalized control strategy for these parallel mechanisms and showed that the systems can be decoupled fairly well, even with simple controllers; the decoupling is not perfect, showing perturbations in the other degrees of freedom, but these are relatively small. Secondly, the planar mechanism revealed the potential difficulties that can arise with asymmetric mechanisms. These are far more difficult to decouple due to the PAGE 53 41 imbalanced nature of force application in various regions of the system. This can result in excessive motion of parts of the system that are meant to remain stationary and can also cause significant steady-state error. However, these issues were readily resolved with a slight redesign of the controllers. Despite minor setbacks and challenges, the testing of the planar mechanism was highly successful and accomplished all of the goals that were specified. PAGE 54 CHAPTER 6 SPATIAL MECHANISM AND ADDITIONAL CONSIDERATIONS FOR CONTROLLER DESIGN Once the control strategy had been verified with the planar mechanism, the next step was to consider how to handle the spatial mechanism. The spatial mechanism had two major differences from the planar system analyzed in the previous chapter. First, it was an over-constrained system, meaning that more control actuators were present than were actually needed for motion in all degrees of freedom. The second difference was that the system was meant to have compliant components in the legs. These changes necessitated that additional measures be taken when designing the controllers for the system. General System Description Determining the configuration of the spatial mechanism was one of the critical steps. Since the objective of this project was to design a generalized controls strategy for an over constrained parallel mechanism, a symmetric structure was selected. The advantage of having a symmetric structure was highlighted when analyzing the planar mechanism. Symmetry in structural design and motion are highly desirable because the behavior of the system becomes far more predictable as the coupling effects appear to be minimized. The platform was selected to follow a classical 3-3 configuration with the addition of a central leg that connected the centers of the base platform and the end effector. When placed in a neutral position that centered the end effector above the base, the 42 PAGE 55 43 structure was symmetric and stable. Any other placement of the central leg would have led to asymmetry in the system. Figure 6-1 shows the generalized configuration for the mechanism. Both the top platform and the base were modeled as equilateral triangles, with corners placed at 0.5 meter and 1 meter from their centers respectively. At the unloaded home position the top platform was parallel to the base platform and was located 1 meter above it. The stiffness values used in the leg connectors will be discussed in subsequent chapters. Figure 6-1. Layout of the spatial mechanism and connection points. The base is larger than the end effector, which is centered above the base triangle. It is also important to note that the other spatial mechanism that was analyzed was a slightly modified version of the original, in that the location of the end of the central leg, relative to the end effector, was shifted to determine the efficacy of central leg at PAGE 56 44 countering rotation in certain situations. The exact modifications are described in Chapter 9 to highlight the differences in results. Modifications to Control Strategy The differences between the planar and spatial mechanisms analyzed in this project necessitated certain changes to the control strategy. The most important was the need to decouple the new elements so that the spatial mechanism would have similar behavior to the planar mechanism, albeit with a greater number of degrees of freedom. Compensating for Compliance and Over-Constraint Adding compliance to the system changed its behavior since the legs no longer responded as stiff elements. For the control strategy tested in Chapter 5 to work, the compliant elements had to be decoupled from the system with their own set of controllers so that the legs would once again behave as rigid components. Chapter 7 discusses the steps that were taken to decouple the legs and restore normal control to the system. While utilizing an over-constrained system is not overly problematic, it presents a special set of challenges as the standard methods for determining the force distribution in the system break down. The issue is that the Jacobian matrix used to calculate the net wrench applied to the end-effector is no longer square, hence it is non-invertible. Fortunately, an easy solution presented itself during the decoupling of the compliant elements in the system. Since each leg has compliance, minimizing the energy in the system would allow one to determine the optimal force distribution in the system. The minimum energy optimization is presented in Chapter 8. Once the legs had been decoupled and an effective method had been developed for finding the optimal force distribution in the system, the original control strategy could be implemented. The mechanism now had six degrees of freedom, each of which would PAGE 57 45 require a separate controller. These controllers would be designed in the same way as for the planar mechanism, under the assumption that the system was sufficiently decoupled to have good response and behavior. However, the need for one additional adjustment became readily apparent once work began on laying out the control system. Coordinate System Conversion The method for specifying the orientation of the platform is now laid out. A series of three rotations are needed, first about the local X-axis, then about the new local Y-axis, and finally about the new local Z-axis. Each rotation is performed about local coordinates, not global coordinates, meaning that each successive rotation was directly dependent on the previous one. Since the controller was meant to handle local coordinates, but the control forces were being applied in global coordinates, the torques applied by the legs had to be rotated into the global coordinate system for the minimum energy optimization to work properly. The rotation matrix necessary for the coordinate system conversion was readily calculated using the methods laid out in reference [2] as follows 1000)cos()sin(0)sin()cos()cos(0)sin(010)sin(0)cos()cos()sin(0)sin()cos(0001ZZZZZYYYYYXXXXXZYXglobalRRRRRRR (6.1) PAGE 58 46 By multiplying together the rotation matrices about the respective degrees of freedom, in the order of rotation, a conversion matrix could be derived. Multiplying by the three element vector representing the local control torques, the global control torques can be calculated. The conversion is localzlocalylocalxglobalZYXR,,, (6.2) Combining the torque vector with the three element force vector produces the net wrench that the control legs need to apply to the end effector ZYXZYXcontrolFFFw (6.3) Finally one is able to lay out the structuring of the controller for the full spatial mechanism. It requires knowledge of both the destination and the current positioning, which are then fed into the separate controllers for the individual degrees of freedom. The control forces are then rotated into global coordinates as appropriate and then recombined so that the minimum energy optimization determine the optimal force distribution in the legs. Figure 6-2 shows the wiring of the control block. PAGE 59 47 Figure 6-2. The control block used in the spatial mechanism. In Figure 6-2, note the decoupling of the separate controllers, followed by the recombination to form a single desired wrench. The lengths of the seven legs are fed into the numerical forward analysis, along with the latest known positioning, which acts as the current guess. Once the current position has been determined, the position error is calculated and split up amongst the separate controllers. The outputs of the rotational controllers need to be rotated into global coordinates, then recombined with the corrections from the X, Y, and Z controllers. The net control wrench is then sent to the minimum energy optimization, which determines the distribution of control forces that are sent to the individual legs. PAGE 60 CHAPTER 7 DECOUPLING COMPLIANT ELEMENTS FROM LEGS The compliance in the legs of the platform presented special challenges when designing the controllers. The major issue was that the legs would act as two degree of freedom systems, rather than as the single degree of freedom actuators desired. This meant that an extra set of controllers was needed to overcome this potentially crippling problem. The first step to resolving this difficulty was developing a model of one of the legs. Leg Model Figure 7-1. Generic model of a leg containing compliant elements. 48 PAGE 61 49 The legs were modeled as having negligible mass, but that still did not resolve the question of how to decouple the compliant elements. At least a certain amount of mass was needed for an effective controller to be developed. One can see in Figure 7-1 that the leg model consisted of three mass elements, a spring, and a damper. The most significant mass was located at the free end, representing the end effector. The actual details of this mass were unimportant as the control forces to be applied to the platform were already known. The other mass that played a role was the actuator element (lumped with the spring-damper base mass) since it was directly connected to the spring and damper. As previously stated, the force to be applied to the end effector had already been calculated by the primary controller, on the assumption that the compliance in the legs would be decoupled effectively. This effectively reduced the problem to controlling the motion of the actuator element. A free body diagram of the actuator could now be drawn that would allow the equations of motion for that element to be written. Free Body Diagram and EOM Figure 7-2. Free body diagram of the actuator mass with reactionary forces from the springs and dampers. PAGE 62 50 The forces acting on the actuator mass consist of four parts: Actuator force. This is what actually causes motion in the system. It also has to compensate for the reactionary forces. Acceleration of the actuator mass. The nature and effect of this depends heavily on the mass of this element. Spring force. This is simply determined by how much the spring is compressed. Damper force. This is purely based on how fast the actuator is moving with respect to the end effector. The force contributions from the spring and damper can be lumped together because they must equal the force that the leg in question should apply to the end effector. This simplifies the problem into a very familiar form. platformactactplatformactactFFxmFxmF0 (7.1) A controller could be developed in exactly the same way as for the main platform. In theory, a basic PD controller should completely counteract the effects of the actuator mass, the spring, and the damper. The controller now took on the following form: Figure 7-3. Controller for the leg actuator. Its form is virtually identical to those of the end effector. The values for the controller were calculated in the same way that those of the main controllers were determined. Testing of the decoupling controllers will be discussed in the next section. Performance of the Decoupling Controllers Testing of the individual legs revealed that the controller design worked extremely well. The spring-damper had no ill effects on the motion of the end effector, though the PAGE 63 51 actuator system did tend to show some steady-state error as the mass of the actuator increased. The models used for testing are shown below and are also presented in Appendix A. Figure 7-4. Overview of leg model. This shows the primary controller and a representation of the entire leg, including compliant elements. The constants feeding the body actuator represent the components of an external wrench that might be applied to the system. PAGE 64 52 Figure 7-5. The actual leg model itself. The green block is the decoupling controller, while the brown block contains the compliant elements of the leg. One will notice the presence of the actuator and the combination of the control signal with the decoupling signal. PAGE 65 53 Figure 7-6. Controller for decoupling the compliant portion of the leg. The signal generated by this subsystem is combined with the general control force and serves to decouple the compliant elements. Results of Testing The decoupling controller showed exceptional performance, even with huge actuator/platform mass ratios. The system exhibited the good behavior of a well-tuned, classical second order system, despite the fact that it was actually a rather nasty looking two degree of freedom model. To test the effectiveness of the approach, a leg actuator mass of 1 kg was used, which was the same as the mass of the representative end effector. The leg was commanded to move from an initial position of 1 m to a length of 2 m. Without the decoupling controller in effect, the system exhibited 33.5% overshoot and a settling time of 1.75 second. With the controller activated, the overshoot dropped PAGE 66 54 to 18.7% and the settling time to 0.92 second. The results are shown in Figure 7-7 and clearly demonstrate the effectiveness of the controls strategy. Figure 7-7. Results of testing both with and without the decoupling controller. Limitations of Controller Usage The only limitation on use of the decoupling controllers was not the design, but rather the simulation software used. Both MATLAB 6.5 and ADAMS had significant trouble with simulating parallel mechanisms. The solvers in both programs found difficulty when dealing with any parallel devices because of the multiple closed loops present in the systems. ADAMS simply couldnt handle the systems, while MATLAB would sometimes struggle. Even without compliant elements, the solvers would occasionally slow down to time steps on the order of 10-9 to 10-11 second. When any compliant elements were included, the time steps reduced to 10-11 to 10-13 second, making PAGE 67 55 completion of any simulations impossible. This was an unfortunate setback, but testing of the controllers for the leg actuators indicated that modeling the legs as stiff elements was accurate enough to verify the effectiveness of the main control strategy. In theory, if the decoupling controllers could be run with the model, any combination of leg masses could be used, regardless of operating conditions, greatly improving the flexibility of the system design. PAGE 68 CHAPTER 8 MINIMUM ENERGY OPTIMIZATION One of the critical considerations when working with an over constrained system is how to distribute the force loading amongst the various leg connectors to obtain static equilibrium at a given position. For a perfectly constrained system, only one possible force distribution exists since there exist only as many control actuators as degrees of freedom. However for any over constrained mechanism, extra controls beyond those required are present. While there exist an infinite number of solutions to the question of force distribution, most of them would be unreasonable for the simple fact that the loadings in the legs would be far beyond the limits of any current actuators or materials. Since the spatial mechanism described in Chapter 6 contains compliant elements, a method exists to find the optimal force distribution for the mechanism, minimizing the potential energy stored in the springs. Potential Energy: General Form and Reasoning Even though the various components in the mechanism will be moving as the platform travels towards its objective, the ultimate goal is to have the system at static equilibrium at that final positioning. This automatically means that the dampers in the legs will not be moving during this final state, requiring all supporting forces to be supplied by the springs. During the actual motion of the platform, the force loading in each leg will be distributed between the acceleration of the actuator mass, the velocity of the damper, and the compression of the spring. However, these do not need to be considered in this analysis because the compliant elements in the legs have been 56 PAGE 69 57 decoupled as demonstrated in Chapter 7. Another use for the minimum energy optimization is that it allows the controller to very easily determine how to distribute the control forces amongst the various legs. The potential energy equation follows the classical form. The spring rates in each leg are assumed to be constant and follow a linear relation to the compression. If kn and DLn represent the spring rate and compression of leg n, then the total potential energy equation can be written as follows: 71221nnnLkU (8.1) While this equation comes as no big surprise, more information is needed to be able to solve the problem. Namely, the wrench that the legs must exert on the end effector is the key restriction on the system. Force-Torque State and Equations Since the platform is supposed to remain at static equilibrium at its final positioning, the wrench exerted by the legs must counteract any external wrench on the system, including gravitational effects and reactionary forces applied to the end effector. The wrench exerted by the legs can be calculated using the 6 Jacobian of the system as discussed in Chapter 3. nnnLegsLegsxLegsextLegsLkFFFFFFJwww721760 (8.2) PAGE 70 58 Determining the forces in the legs is not so straightforward because no true inverse exists for a non-square matrix. The form of the equations must be modified slightly to place everything in terms of one variable to optimize. The equation for the wrench exerted by the legs can be rewritten as follows: 776543216676166$FFFFFFFJwFJwxxlegs (8.3) Since 0extLegsww everything can be rewritten in terms of F7 and ultimately DL7. This will then allow one to rewrite the potential energy equation in terms of one variable for minimization. 71661667761777166716661$][][$][][xextxextxextxJBwJALkBAFLkwJwwJF (8.4) 7777LkkBkALLkBALkFnnnnnnnnnn (8.5) Now that the displacements of the various springs have been written in terms of the compression of the seventh leg, the potential energy equation can be rewritten, then minimized with respect to DL7. One may notice that the displacements take on a very nice form that will be easy to work with. PAGE 71 59 7127177712777177717272777177272722777727722227121222122102121nnnnnnnuunnnunnnnunuunnnnnnnnnnnnnnnnnnnkBkBAkBALBkkkBBAkkALBALkBkBAkLddULkBALkBAkLddLddULkBALkBAkLLkU (8.6) The solution for the ideal compression of the seventh leg is fairly simple in form and subsequent calculations for the compressions (and ultimately forces) of the other legs follow easily. Any leg can be set as the seventh leg depending on the conditioning of the other six. There may be situations where one group of six legs are at a singularity while the others are not. A basic check for conditioning is required. However, one must note that this method still cannot handle a situation when the entire system is ill-conditioned. Remember that one of the major limitations of parallel mechanisms is their limited workspaces. The best way to avoid problems with singularities is to limit the range of motion of the device to a predetermined safe environment. Final Comments This chapter has shown a way to quickly and easily determine the ideal force distribution for an over constrained parallel mechanism. The process is relatively simple and can be programmed to handle certain contingencies. The process used to derive the PAGE 72 60 equations could be used to handle more complicated systems, though certain additional considerations would be necessary. Ill-conditioned systems are unavoidable with parallel mechanisms, but the use of over constrained devices can help to alleviate the problem. PAGE 73 CHAPTER 9 RESULTS OF TESTING ON THE SPATIAL MECHANISMS This chapter focuses on discussing the performance of the controllers when applied to the spatial mechanisms, with primary attention paid to the main system. The testing done with the modified mechanism was purely to investigate the effects on rotational performance if the leg configuration was changed. A number of simulations were run to determine the behavior of the primary system when moving in one or more degrees of freedom. Six of the simulations focused solely on coupling effects by moving in the six degrees of freedom separately. Further testing combined motions in two or more degrees of freedom as these represented more realistic utilization of the system. Motions in Single DOF This was the most critical set of experiments since it tested the basic viability of the control strategy. Proving that controlled motion in a single DOF is possible will demonstrate at least simple functionality. The following tests showed that not only does the control strategy work well, but the coupling effects are relatively small. Each time, the mechanism started at a symmetric position of [0 m, 0 m, 1 m; 0 rad, 0 rad, 0 rad], which represents the X, Y, Z positions and the rotations about the X, Y, and Z axes respectively. This had the advantage of being a naturally stable configuration in simulation, helping to minimize the calculational errors. The importance of symmetry has already been demonstrated with the planar mechanism, and this is no exception. Unless stated otherwise, the specified performance for each test was less than 20% overshoot with a settling time of less than 1 second. More information of initialization 61 PAGE 74 62 and configuration of the system can be found in the initialization file located in Appendix B, along with important code that is necessary for the simulation to run. The dimensions of the upper platform and the base were discussed in Chapter 6. The legs were essentially split into two sections, a lower connection that comprised half of the initial length, and the upper portion that was attached to the end effector, making up the other half of its length. Z-Axis Displacement The first test was displacement along the Z-Axis to a final height of 1.5 m. This motion causes a fairly sizeable change in positioning and platform configuration, but maintains the symmetry, which helps to minimize the coupling effects. As one can see in Figures,9-1 and 9-2, the system responded quite well, with essentially negligible coupling effects. Figure 9-1. Motion of the mechanism along the Z-Axis. PAGE 75 63 (a) (b) Figure 9-2. Motions in the other DOFs. (a) Y and X axes. (b) Rotations about the primary axes. PAGE 76 64 The system reached its final positioning with no steady-state error and still met the performance requirements. System overshoot was 18.4% and settling time was 0.915 seconds. The maximum fluctuations in positioning of the other DOFs was extraordinarily small, with 1.7x10-4 m along the primary axes, and 8x10-9 radian in rotations. Z-Axis Rotation Considering the performance of the system when moving purely along the Z-Axis, one would naturally expect that similar performance would be possible in pure rotation. This still maintains the symmetry of the system, albeit within a more limited workspace; the platform was rotated 0.5 radian about the Z-Axis. Figure 9-3. Rotation of the mechanism about the Z-Axis. PAGE 77 65 (a) (b) Figure 9-4. Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Y and X axes. PAGE 78 66 Once again, the system showed excellent performance as expected, exhibiting 19.1% overshoot and a settling time of 0.917 second. The maximum motion error in the other DOFs was 7x10-4 m along the primary axes and 4.3x10-6 radian in rotation. Y-Axis Displacement Motion along the Y-Axis is still pseudo-symmetric, though it is far less ideal than motions with the Z-Axis. The behavior of the system was expected to be good, but not as good as the previous tests since even slight asymmetry in a system can have enormous influence on response. The end-effector was commanded to move 1 m along the Y-Axis, with 10% overshoot and a settling time less than 1 second. Figure 9-5. Motion of the mechanism along the Y-Axis. PAGE 79 67 (a) (b) Figure 9-6. Motions in the other DOFs. (a) Disturbance of Z and X axes. (b) Rotations about the Z, Y, and X axes. PAGE 80 68 The system still responded extremely well, only exhibiting 9% overshoot and a settling time of 0.977 second. The maximum motion error in the other DOFs was 7.5x10-3 m along the primary axes and 1.5x10-2 radian in rotation. The largest errors were generated in the Z-Axis motion and the X-Axis rotation, both of which are perpendicular to the Y-Axis motion. The drop along the Z-Axis is attributable to the fact that the support legs are only located underneath the end effector. Therefore, trying to move along the Y-Axis will cause a localized drop in the height of the platform, until such time as the controllers can correct. Since the top corner of the end effector has only two support legs, but the bottom edge has four, an imbalance occurs when trying to control rotation about the local X-Axis. Since the end-effector drops slightly, one would also expect that one section will drop more than the others, due to asymmetry in support distribution, leading to unwanted rotations. Y-Axis Rotation Rotation about the Y-Axis is similar to the previous test in that the system is being actuated about a pseudo-symmetric lobe. Once again, good performance would be expected, though errors in other degrees of freedom should be more prevalent than the Z-Axis testing. The platform was commanded to rotate by 0.5 radian with no motion in the other degrees of freedom. The system showed good behavior in rotation with 8.5% in overshoot and a 0.681 second settling time. One may notice a slight steady state error of 7x10-4 m present in the positioning of the Z-Axis, which is relatively small considering the size of the mechanism at 1 m height. This may be partially attributable to the numerical forward analysis as that can result in a slight error in positioning information. Addition of an integral portion to the controller might also help to correct the error. PAGE 81 69 Figure 9-7. Rotation of the mechanism about the Y-Axis. (a) PAGE 82 70 (b) Figure 9-8. Motions in the other DOFs. (a) Disturbance of Z, Y, and X axes. (b) Rotations about the Z and X axes. The apparent noise present in the response during this test is most likely due to numerical errors in the simulation. During the early stages of the tests, the solver would require extremely small time steps during convergence. The apparent stair-stepping later is a result of large steps as the simulation reached easier configurations for the solver. X-Axis Displacement Motion of the platform along the X-Axis showed similar performance to the tests commanding motion along the Y-Axis, with primary errors showing up in the vertical positioning of the platform, i.e. the Z-Axis displacement. This is hardly surprising considering that the system is moving along an asymmetric direction, which would tend to result in similar errors. The other aspects of the mechanism performed remarkably well, with the largest rotational displacement being 1.9x10-4 radian. PAGE 83 71 Figure 9-9. Motion of the mechanism along the X-Axis. (a) PAGE 84 72 (b) Figure 9-10. Motions in the other DOFs. (a) Disturbance of Z and Y axes. (b) Rotations about the Z, Y, and X axes. X-Axis Rotation Figure 9-11. Rotation of the mechanism about the X-Axis. PAGE 85 73 (a) (b) Figure 9-12. Motions in the other DOFs. (a) Z, Y, and X axes. (b) Rotations about the Z and X axes. PAGE 86 74 Testing of the response to rotations about the X-Axis simply confirmed the previous five tests and verified that the controllers were performing properly. Once again, some slight steady-state error was present in the positioning along the Z-Axis, but as previously stated, this could be attributable to the resolution specified for the forward analysis. Otherwise, the mechanism behaved impeccably. Motions in Multiple DOF Once the performance of the mechanism in single DOFs had been verified, the behavior of the system when moved in multiple DOFs needed to be evaluated. Since each separate DOF responded as designed with relatively small effects on the other motions, commanding motion in several DOFs should all show good behavior. The coupling effects will never be completely eliminated, but they have a lessened impact on system performance. The tests that show the most significant effects and results are presented here. X-Y Displacement Considering that individual motions in either the global X or Y directions showed greatest impact on the vertical positioning of the system, it was only logical to test the effects when the mechanism was moved in both DOFs. As expected, the largest error was present in the Z-Axis motion, with a maximum disturbance of 0.0046 m. This very rapidly decayed to a final positioning of approximately 0.9992 m, or 0.08% steady state error. This was a clear indication that the coupling effects had been essentially eliminated, and the numerical forward analysis was functioning properly. The small error of 0.0008 m was well within the specified resolution for the forward analysis. PAGE 87 75 Figure 9-13. Motion of the mechanism along the X and Y axes. (a) PAGE 88 76 (b) Figure 9-14. Motions in the other DOFs. (a) Z and Y axes. (b) Rotations about the Z, Y, and X axes. The motions in the X and Y directions followed classical second order response and both exhibited only 17% overshoot, which is less than the design specification. The settling time was approximately 0.98 second, which also matched the performance requirements. X-Y-Z Displacement The results for testing motion in three axes should come as little surprise considering the behavior of the system in previous tests. The mechanism was commanded to move 0.5 m along each axis relative to its initial position. PAGE 89 77 Figure 9-15. Motion of the mechanism along all three axes. Figure 9-16. Rotations about the Z, Y, and X axes. The motions in the primary axes followed classical second order responses as predicted. The X and Y motions were virtually identical with 17.3% overshoot and a PAGE 90 78 settling time of 0.975 second. The Z-Axis motion showed 19.4% overshoot and a settling time of 0.955 second. While the overshoot along the Z-Axis is larger than the X and Y motions, it still meets the design specifications. It is hardly surprising that the Z-Axis motion would have larger overshoot when one remembers that the testing of the X and Y axes tended to generate fluctuations in the vertical positioning of the platform. X-Y-Z Rotation Testing of the rotational performance of the system in three axes simultaneously was a critical step in evaluating the performance capabilities of the system. Up to this point, the platform and controllers had responded admirably. While it was expected that the system would respond just as well as in previous tests, the question was over what range of rotational motion the system would remain stable. The first test commanded rotation of 0.5 radian about each axis since previous testing had used this extent of motion. However, the system exhibited excessive overshoot in all three DOFs being commanded at 29.8%, 23%, and 25.8% overshoot for the X, Y, and Z rotations respectively. While the excessive overshoot was unsettling at first, the cause very quickly became clear with an animation of the simulation. Apparently the mechanism was becoming ill-conditioned when moving such a great amount, resulting in less than optimal control. Essentially, the plane of the end-effector was nearly coplanar with a pair of the control legs, causing a loss of control. This can be seen below in the simplified model of the system at final positioning and was the inspiration to change the configuration of the system in the modified spatial mechanism. Since the platform was being moved to the edges of its workspace, its performance would naturally degrade. Therefore, the amount of rotation was reduced to 0.1 radian for each DOF. PAGE 91 79 Figure 9-17. Rotation of the mechanism about all axes. Figure 9-18. Rotation of the mechanism about all axes, albeit with a smaller commanded motion. PAGE 92 80 The system responded flawlessly in this second test because it was well within its workspace. The overshoots were 19.6%, 18.4%, and 19.1% for the X, Y, and Z rotations respectively while their settling times were 0.945, 0.848, and 0.972 second. Once again, the Z-Axis motion showed a bit of steady-state error, while movement along the X and Y axes only fluctuated by about 10-5 meter. Evidently, the controllers worked extremely well within the physical limitations of the mechanism. Full 6 DOF Motion The final test for the full spatial mechanism was to command motion in all six DOFs simultaneously. Recalling the lessons learned from the rotational experiments, the rotations were specified to be 0.1 radian, and the motions along the primary axes were commanded to 0.5 m from the starting point. The results can be seen below and clearly show that all DOFs met the 20% overshoot and 1 second settling time requirements. Figure 9-19. Motion of the mechanism along the primary axes. PAGE 93 81 Figure 9-20. Rotations about the primary axes. While the motions along the axes exceeded the performance requirements, the rotational behavior just barely satisfied the overshoot limitations, coming in at almost exactly 20%. This is hardly surprising when one considers that the coupling effects tend to compound errors in the system and cause fluctuations in the other controllers. However, the fact that the system did meet the performance requirements in all aspects is a testament to the effectiveness of the decoupling, even if it is a simple approach. Modified Spatial Mechanism One will recall that testing of the original 3-3 + 1 mechanism revealed that rotations of 0.5 radian about each axis led to ill-conditioning. The question was posed whether it was possible to improve the response in these extreme conditions by changing the geometry of the platform simply by moving the central leg. This test moved the PAGE 94 82 connection point of the central leg out of the plane of the end effector by 0.2 m along the local Z-Axis to test the effects that it would have on the rotational response of the system in extreme conditions. The figures below illustrate the new configuration of the platform and the results of testing. The platform was commanded to rotate 0.5 radian about each axis. One will notice that the overshoot of the X and Y rotations were reduced to 16 and 17.4% respectively, which is a huge improvement over the 29.8% and 23% of the non-modified mechanism. The Z rotation showed approximately the same overshoot with 26% as compared with the previous 25.8% of earlier testing. However, the settling times were not improved dramatically, clocking in at 1.28, 1.21, and 1.47 seconds for the X, Y, and Z rotations. Figure 9-21. New platform configuration with modified connection point. PAGE 95 83 Figure 9-22. Rotations about the primary axes. While the change in configuration did have a positive effect on the response of the system in extreme circumstances, it did not have enough of an impact due to physical limitations. Enough of the mechanism was still ill conditioned that the central leg could not effectively compensate. This drives home the point that all parallel mechanisms have limited workspaces, especially in the aspect of rotations, so knowledge of these limitations is critical for proper control. Possibly reconfiguring the outer legs or changing relative dimensions in the mechanism could help to extend its workspace, but that topic would be best left for future research. PAGE 96 CHAPTER 10 FINAL COMMENTS AND FUTURE WORK This project proved to be a challenging and immensely gratifying experience. The problem required some interesting approaches to create a relatively simple, yet functional solution. The generalized control strategy that was developed is flexible and applicable to many other systems. It performed well in decoupling the system despite the difficult nature of the mechanisms. The numerical forward analysis has great potential for future applications as it is a highly flexible, robust, and efficient approach to a potentially very complicated issue. The decoupling controller, while it could not be fully tested due to simulation and software limitations, still looks to be an effective method of controlling compliant elements, even in unfavorable conditions. While this project accomplished all that was intended, plenty of room remains for future research into related areas. For example, the numerical forward analysis still has great potential to become even more efficient and powerful if it can be analyzed as a controls system, rather than just an iterative approach. In fact, it may even be possible to derive analytical solutions to forward analyses using mathematical derivations based on the methodology. The effective decoupling of compliant elements in a parallel mechanism has great potential to allow the design of responsive, adaptive systems for a wide range of applications. Current research is investigating the responses of compliant, static platforms, which suggests that it may be possible to design the static and active behaviors separately and then easily connect them through some decoupling interface. The possibilities are endless and lend themselves to imagination. 84 PAGE 97 APPENDIX A SYSTEM DIAGRAMS This section presents the systems that were built in SimuLink to simulate the mechanisms. They often contain several subsystems due to the complexity of the models. Where necessary, descriptions of the components are supplied. Planar Mechanism This section shows the systems that were constructed to analyze the planar mechanism. This was the testing model for both the control methodology and the proper way to construct models in MATLAB. System Overview Figure A-1. Top level of planar mechanism. The orange block is the end effector, the pink block is the position sensor, the green block is the main controller, and the gray blocks are the legs. 85 PAGE 98 86 The additional controllers were incorporated for static stability in the planar mechanism. One will notice the constants that are being fed to the leg actuators. These are the forces required to hold the system in static equilibrium at its final positioning, meaning that the controller subsystem simply makes corrections to the motion once the simulation starts. Leg Subsystem Figure A-2. Inside the leg subsystem for the planar mechanism. Orange blocks are leg pieces. This is the simplest possible leg model for accurate simulations. PAGE 99 87 Controller Subsystem Figure A-3. Inside the control block for the planar mechanism. The three PID controllers are clearly visible and act independently of one another. PAGE 100 88 Spatial Mechanism This section presents the models built to analyze the spatial mechanism. The same model was used for both spatial systems. Two versions of the leg subsystems are presented. The non-compliant variant was used in simulations and in the main model. The compliant version was intended for insertion into the main system, but proved to be unusable due to software limitations, as discussed in Chapter 7. Main System Overview Figure A-4. Top level of the spatial mechanism model. PAGE 101 89 As with the planar mechanism, the end effector is connected to the leg subsystems and the control block. A slight change is the apparent lack of a sensor block. This is incorporated into the control block as the numerical forward analysis. Non-Compliant Leg Model Figure A-5. Inside the leg subsystem of the spatial mechanism. This is virtually identical to the planar leg model. PAGE 102 90 Control Block Figure A-6. The control block for the spatial mechanism. In the control block, the forward analysis receives leg length and position estimate information, which is then fed to the 6 separate controllers. The correctional forces are converted in the minimum energy optimization block, which then sends the control signals to the appropriate legs. PAGE 103 91 Compliant Leg Model Top Level Figure A-7. Top level of compliant leg model. The three constants feeding into the body actuator are meant to represent the components of any external wrench that might be applied to the body. PAGE 104 92 Compliant Leg Model Figure A-8. Inside the compliant leg model. The brown block simulates the spring and damper, while the green block acts as the decoupling controller. PAGE 105 93 Decoupling Controller Figure A-9. The decoupling controller for the compliant leg model. PAGE 106 APPENDIX B MATLAB CODE NEEDED FOR SIMULATIONS The following sections contain the MATLAB code that enabled the simulations to run. This includes initialization files as well as functions used in the controllers and sensors. Comments can be found within the code itself. Note that initialization files have to be run before the simulation is started, otherwise the model will not assemble itself properly. Planar Mechanism Initialization File % This file initializes the system conditions. % all distances are in cm % all angles are in deg % platform dimensions d = 25; L = 50; % Initial position x = 0; y = 25; [x; y] Theta = 0 pi/180; % Calculating initial values p0 = [(-cos(Theta)*d + x L) (-sin(Theta)*d + y)]; L0 = sqrt(p0 transpose(p0)); Theta0 = atan2(p0(2), p0(1)) 180/pi; p1 = [(-cos(Theta)*d + x + L) (-sin(Theta)*d + y)]; L1 = sqrt(p1 transpose(p1)); Theta1 = atan2(p1(2), p1(1)) 180/pi; p2 = [(cos(Theta)*d + x L) (sin(Theta)*d + y)]; L2 = sqrt(p2 transpose(p2)); 94 PAGE 107 95 Theta2 = atan2(p2(2), p2(1)) 180/pi; %%%%%%%%%%%%%%%%%%%%%%%%%% % Final Position xf = 20; yf = 50; [xf; yf] Thetafd = -14; Thetaf = Thetafd pi/180; % External Wrench w = [0; 0; 0]; % part masses (kg) mEE = 1; IEE = [0 0 0; 0 1/12*mEE*(2*d/100)^2 0; 0 0 1/12*mEE*(2*d/100)^2] % IEE = [0 0 0; 0 1/12*mEE*(2*d)^2 0; 0 0 1/12*mEE*(2*d)^2]; mAct = 0.01; mBase = mAct; IA = [0 0 0; 0 1/12*mAct*(L0/100/2)^2 0; 0 0 1/12*mAct*(L0/100/2)^2]; g = 9.81; weight = g [0; (mEE + 3*mAct); 0]; %%% Force Calculations p0 = [(-cos(Thetaf)*d + xf L) (-sin(Thetaf)*d + yf)]; L0f = sqrt(p0 transpose(p0)); p1 = [(-cos(Thetaf)*d + xf + L) (-sin(Thetaf)*d + yf)]; L1f = sqrt(p1 transpose(p1)); p2 = [(cos(Thetaf)*d + xf L) (sin(Thetaf)*d + yf)]; L2f = sqrt(p2 transpose(p2)); % Force Matrix K11 = (-cos(Thetaf)*d + xf L) / L0f; K21 = (-sin(Thetaf)*d + yf) / L0f; K31 = (-cos(Thetaf)*d*yf + sin(Thetaf)*d*xf sin(Thetaf)*d*L) / L0f; K12 = p1(1) / L1f; K22 = p1(2) / L1f; K32 = (-cos(Thetaf)*d*yf + sin(Thetaf)*d*(xf + L)) / L1f; K13 = p2(1) / L2f; K23 = p2(2) / L2f; K33 = (cos(Thetaf)*d*yf + sin(Thetaf)*d*(-xf + L)) / L2f; PAGE 108 96 K = [K11 K12 K13; K21 K22 K23; K31 K32 K33]; Kdet = det(K); if Kdet == 0 'Singular K Matrix: shifting xf by 10^-7' xf = xf + 10^-10; p0 = [(-cos(Thetaf)*d + xf L) (-sin(Theta)*d + yf)]; L0f = sqrt(p0 transpose(p0)); p1 = [(-cos(Thetaf)*d + xf + L) (-sin(Thetaf)*d + yf)]; L1f = sqrt(p1 transpose(p1)); p2 = [(cos(Thetaf)*d + xf L) (sin(Thetaf)*d + yf)]; L2f = sqrt(p2 transpose(p2)); % Force Matrix K11 = xf / L0f; K21 = yf / L0f; K31 = (-cos(Thetaf)*d*yf + sin(Thetaf)*d*xf sin(Thetaf)*d*L) / L0f; K12 = p1(1) / L1f; K22 = p1(2) / L1f; K32 = 0.5 ((-cos(Thetaf)*d + xf)*p1(2) (-sin(Thetaf)*d + yf)*p1(1)) / L1f^2; K13 = p2(1) / L2f; K23 = p2(2) / L2f; K33 = 0.5 ((cos(Thetaf)*d + xf)*p2(2) (sin(Thetaf)*d + yf)*p2(1)) / L2f^2; K = [K11 K12 K13; K21 K22 K23; K31 K32 K33]; end K FLegs = -inv(K) (w + weight) Force Conversion Function % This function determines the change in leg forces based on control % forces. function [delta_force] = delta_force_calc(pc) d = 25; L = 50; xc = pc(1); yc = pc(2); Thetac = pc(3); PAGE 109 97 % Length p0 = [(-cos(Thetac)*d + xc L) (-sin(Thetac)*d + yc)]; L0c = sqrt(p0 transpose(p0)); p1 = [(-cos(Thetac)*d + xc + L) (-sin(Thetac)*d + yc)]; L1c = sqrt(p1 transpose(p1)); p2 = [(cos(Thetac)*d + xc L) (sin(Thetac)*d + yc)]; L2c = sqrt(p2 transpose(p2)); delta_contr = [pc(4); pc(5); pc(6)]; K11 = (-cos(Thetac)*d + xc L) / L0c; K21 = (-sin(Thetac)*d + yc) / L0c; K31 = (-cos(Thetac)*d*yc + sin(Thetac)*d*xc sin(Thetac)*d*L) / L0c; K12 = p1(1) / L1c; K22 = p1(2) / L1c; K32 = (-cos(Thetac)*d*yc + sin(Thetac)*d*(xc + L)) / L1c; K13 = p2(1) / L2c; K23 = p2(2) / L2c; K33 = (cos(Thetac)*d*yc + sin(Thetac)*d*(-xc + L)) / L2c; K = [K11 K12 K13; K21 K22 K23; K31 K32 K33]; delta_force = inv(K) delta_contr; Spatial Mechanism and Compliant Leg Model The spatial and modified spatial mechanisms shared many of the same functions. The main difference was that the modified mechanism used a slightly different initialization file that allowed repositioning of the central leg. The initialization file for the spatial mechanism also initialized the compliant leg model. Initialization File: Main Mechanism % This is the initialization file that will set the parameters used in the % simulink model. This MUST be run before the simulation will work. Also % note that all variables created in this file are located in the Workspace % and should not be modified directly. % Several steps need to be done in the initialization: PAGE 110 98 %----------------------------------------------------% % 0) Global variable declarations. Workspace cleanup, etc. % 1) Set the locations of the connection points. % 2) Set leg compliances and System mass/inertia parameters. % 3) Specify final positioning and force-state. % 4) Set lengths of leg sections. Have system in equilibrium at beginning. % Also determine the orientations of the legs for proper closed system. % 5) Determine the leg forces needed to reach equilibrium at the final % state. Note: You must mux the positioning and force state information. % 6) Calculate the values for the PID controllers. % 7) Additional initializations. %----------------------------------------------------% %---------------------------------------------------------% % 0) Global variable declarations. Workspace cleanup, etc. %---------------------------------------------------------% clc; clear; close all; global J; global R; global MaxErr; global MaxIt; global k_val; global c_val; global p1ee; global p2ee; global p3ee; %----------------------------------------------% % 1) Set the locations of the connection points. %----------------------------------------------% p1b = [0, -1, 0]; p2b = [sqrt(3)/2, 1/2, 0]; p3b = [-sqrt(3)/2; 1/2; 0]; % p1ee = [0; 1; 0]; % p2ee = [-sqrt(3)/2; -1/2; 0]; % p3ee = [sqrt(3)/2; -1/2; 0]; p1ee = [0; 1; 0] / 2; p2ee = [-sqrt(3)/2; -1/2; 0] / 2; p3ee = [sqrt(3)/2; -1/2; 0] / 2; %----------------------------------------------------------% % 2) Set leg compliances and System mass/inertia parameters. PAGE 111 99 %----------------------------------------------------------% k_val = [100; 100; 100; 100; 100; 100; 100]; c_val = 100*[100; 100; 100; 100; 100; 100; 100]; % Specify mass and inertia properties of the system. % Mass -> kg % Inertia -> kg-m^2 Mass = 1; Inertia = [1 0 0; 0 1 0; 0 0 1]; % Leg masses are presented in 3 columns: leg base, actuator base, and % actuator end. All of these will be essentially zero for primary testing. LegMasses = [1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7]; GenInertia = [1e-7 0 0; 0 1e-7 0; 0 0 1e-7]; %---------------------------------------------% % 3) Specify final positioning and force-state. %---------------------------------------------% P_final = [1; 0; 1; 0; 0; 0]; w_app = [0; 0; 0; 0; 0; 0] w_ext = Mass*[0; 0; -9.81; 0; 0; 0] + w_app; % Combination of weight and external forces. %-------------------------------------------------------------------------% % 4) Set lengths of leg sections. Have system in equilibrium at beginning. % Also determine the orientations of the legs for proper closed system. %-------------------------------------------------------------------------% % Set the lengths of the actuator bases to be 0. % Initial conditions before motion. Purely to determine initial spring % lengths/loads. P_init = [0; 0; 1; 0; 0; 0]; w_init = w_ext; Info_init = [P_init; w_init]; F_init = MinEnergy(Info_init); % Correction of the intial rotation matrix. RxI = [1 0 0; 0 cos(P_init(4)) -sin(P_init(4)); 0 sin(P_init(4)) cos(P_init(4))]; RyI = [cos(P_init(5)) 0 sin(P_init(5)); 0 1 0; -sin(P_init(5)) 0 cos(P_init(5))]; PAGE 112 100 RzI = [cos(P_init(6)) -sin(P_init(6)) 0; sin(P_init(6)) cos(P_init(6)) 0; 0 0 1]; RI = RxI RyI RzI; % Calculate the leg lengths and extract orientation vectors. Legs = Sp_LL_J(P_init, true, false) / 3; Orient = J(1:3, :); % Initial spring lengths. This is the amount the springs are COMPRESSED. L_init = zeros(7,1); for i = 1:7 L_init(i) = F_init(i) / k_val(i); end %-----------------------------------------------------------------------% % 5) Determine the leg forces needed to reach equilibrium at the final % state. Note: You must mux the positioning and force-state information. %-----------------------------------------------------------------------% P_input = [P_final; w_ext]; F_legs = MinEnergy(P_input); %------------------------------------------------% % 6) Calculate the values for the PID controllers. %------------------------------------------------% % Specify the system performance. MaxOvershoot = 0.20; % This is the fraction of distance moved. SettlingTime = 1; % Time in seconds. % Determine the controllers based on mass and inertia in the system. The % three controllers for the x, y, z directions will be identical. However, % the rotational controllers will be different based on the inertia of the % system. Therefore, 4 sets of calculations are needed in addition to the % basic performance criteria. % Determine poles. zeta = sqrt((log(MaxOvershoot)/pi)^2 / (1 + (log(MaxOvershoot)/pi)^2)); omega_n = 4 / (zeta SettlingTime); ClosedLoopPoles = [-zeta omega_n; omega_n sqrt(1 zeta^2)]; RealPole = 0 ClosedLoopPoles(1); CharacteristicEq = [1; (-RealPole 2*ClosedLoopPoles(1)); (2*RealPole*ClosedLoopPoles(1) + ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2); -RealPole*(ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2)]; % Design x, y, z controllers. Kp = CharacteristicEq(3) Mass; PAGE 113 101 Ki = CharacteristicEq(4) Mass; Kd = CharacteristicEq(2) Mass; % Design x-rotational controller. Kpx = CharacteristicEq(3) Inertia(1,1); Kix = CharacteristicEq(4) Inertia(1,1); Kdx = CharacteristicEq(2) Inertia(1,1); % Design x-rotational controller. Kpy = CharacteristicEq(3) Inertia(2,2); Kiy = CharacteristicEq(4) Inertia(2,2); Kdy = CharacteristicEq(2) Inertia(2,2); % Design x-rotational controller. Kpz = CharacteristicEq(3) Inertia(3,3); Kiz = CharacteristicEq(4) Inertia(3,3); Kdz = CharacteristicEq(2) Inertia(3,3); % Design Controllers for the leg springs/dampers. MaxOvershoot = 0.2; % This is the fraction of distance moved. SettlingTime = 1; % Time in seconds. zeta = sqrt((log(MaxOvershoot)/pi)^2 / (1 + (log(MaxOvershoot)/pi)^2)); omega_n = 4 / (zeta SettlingTime); ClosedLoopPoles = [-zeta omega_n; omega_n sqrt(1 zeta^2)]; RealPole = 0 ClosedLoopPoles(1); CEq = [1; (-RealPole 2*ClosedLoopPoles(1)); (2*RealPole*ClosedLoopPoles(1) + ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2); -RealPole*(ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2)]; LegMasses = [1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-4 1e-7; 1e-7 1e-0 1e-7]; KpS = zeros(7,1); KiS = zeros(7,1); KdS = zeros(7,1); for LegNum = 1:7 KpS(LegNum) = CEq(3) LegMasses(LegNum,2); KiS(LegNum) = CEq(4) LegMasses(LegNum,2); KdS(LegNum) = CEq(2) LegMasses(LegNum,2); end PAGE 114 102 %------------------------------% % 7) Additional initializations. %------------------------------% MaxErr = 1e-4; MaxIt = 3000; Initialization File: Modified Mechanism % This is the initialization file that will set the parameters used in the % simulink model. This MUST be run before the simulation will work. Also % note that all variables created in this file are located in the Workspace % and should not be modified directly. % Several steps need to be done in the initialization: %----------------------------------------------------% % 0) Global variable declarations. Workspace cleanup, etc. % 1) Set the locations of the connection points. % 2) Set leg compliances and System mass/inertia parameters. % 3) Specify final positioning and force-state. % 4) Set lengths of leg sections. Have system in equilibrium at beginning. % Also determine the orientations of the legs for proper closed system. % 5) Determine the leg forces needed to reach equilibrium at the final % state. Note: You must mux the positioning and force state information. % 6) Calculate the values for the PID controllers. % 7) Additional initializations. %----------------------------------------------------% %---------------------------------------------------------% % 0) Global variable declarations. Workspace cleanup, etc. %---------------------------------------------------------% clc; clear; close all; global J; global R; global MaxErr; global MaxIt; global k_val; global c_val; global p1ee; global p2ee; global p3ee; global p0ee; %----------------------------------------------% PAGE 115 103 % 1) Set the locations of the connection points. %----------------------------------------------% p1b = [0, -1, 0]; p2b = [sqrt(3)/2, 1/2, 0]; p3b = [-sqrt(3)/2; 1/2; 0]; % p1ee = [0; 1; 0]; % p2ee = [-sqrt(3)/2; -1/2; 0]; % p3ee = [sqrt(3)/2; -1/2; 0]; p1ee = [0; 1; 0] / 2; p2ee = [-sqrt(3)/2; -1/2; 0] / 2; p3ee = [sqrt(3)/2; -1/2; 0] / 2; p0ee = [0; 0; 0.2]; %----------------------------------------------------------% % 2) Set leg compliances and System mass/inertia parameters. %----------------------------------------------------------% k_val = [100; 100; 100; 100; 100; 100; 100]; c_val = 100*[100; 100; 100; 100; 100; 100; 100]; % Specify mass and inertia properties of the system. % Mass -> kg % Inertia -> kg-m^2 Mass = 1; Inertia = [1 0 0; 0 1 0; 0 0 1]; % Leg masses are presented in 3 columns: leg base, actuator base, and % actuator end. All of these will be essentially zero for primary testing. LegMasses = [1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7; 1e-7 1e-3 1e-7]; GenInertia = [1e-7 0 0; 0 1e-7 0; 0 0 1e-7]; %---------------------------------------------% % 3) Specify final positioning and force-state. %---------------------------------------------% P_final = [0; 0; 1; 0.5; 0.5; 0.5]; w_app = [0; 0; 0; 0; 0; 0] w_ext = Mass*[0; 0; -9.81; 0; 0; 0] + w_app; % Combination of weight and external forces. PAGE 116 104 %-------------------------------------------------------------------------% % 4) Set lengths of leg sections. Have system in equilibrium at beginning. % Also determine the orientations of the legs for proper closed system. %-------------------------------------------------------------------------% % Set the lengths of the actuator bases to be 0. % Initial conditions before motion. Purely to determine initial spring % lengths/loads. P_init = [0; 0; 1; 0; 0; 0]; w_init = w_ext; Info_init = [P_init; w_init]; F_init = MinEnergy(Info_init); % Correction of the intial rotation matrix. RxI = [1 0 0; 0 cos(P_init(4)) -sin(P_init(4)); 0 sin(P_init(4)) cos(P_init(4))]; RyI = [cos(P_init(5)) 0 sin(P_init(5)); 0 1 0; -sin(P_init(5)) 0 cos(P_init(5))]; RzI = [cos(P_init(6)) -sin(P_init(6)) 0; sin(P_init(6)) cos(P_init(6)) 0; 0 0 1]; RI = RxI RyI RzI; % Calculate the leg lengths and extract orientation vectors. Legs = Sp_LL_J(P_init, true, false) / 3; Orient = J(1:3, :); % Initial spring lengths. This is the amount the springs are COMPRESSED. L_init = zeros(7,1); for i = 1:7 L_init(i) = F_init(i) / k_val(i); end %-----------------------------------------------------------------------% % 5) Determine the leg forces needed to reach equilibrium at the final % state. Note: You must mux the positioning and force-state information. %-----------------------------------------------------------------------% P_input = [P_final; w_ext]; F_legs = MinEnergy(P_input); %------------------------------------------------% % 6) Calculate the values for the PID controllers. %------------------------------------------------% % Specify the system performance. MaxOvershoot = 0.2; % This is the fraction of distance moved. SettlingTime = 1; % Time in seconds. % Determine the controllers based on mass and inertia in the system. The % three controllers for the x, y, z directions will be identical. However, % the rotational controllers will be different based on the inertia of the PAGE 117 105 % system. Therefore, 4 sets of calculations are needed in addition to the % basic performance criteria. % Determine poles. zeta = sqrt((log(MaxOvershoot)/pi)^2 / (1 + (log(MaxOvershoot)/pi)^2)); omega_n = 4 / (zeta SettlingTime); ClosedLoopPoles = [-zeta omega_n; omega_n sqrt(1 zeta^2)]; RealPole = 0 ClosedLoopPoles(1); CharacteristicEq = [1; (-RealPole 2*ClosedLoopPoles(1)); (2*RealPole*ClosedLoopPoles(1) + ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2); -RealPole*(ClosedLoopPoles(1)^2 + ClosedLoopPoles(2)^2)]; % Design x, y, z controllers. Kp = CharacteristicEq(3) Mass; Ki = CharacteristicEq(4) Mass; Kd = CharacteristicEq(2) Mass; % Design x-rotational controller. Kpx = CharacteristicEq(3) Inertia(1,1); Kix = CharacteristicEq(4) Inertia(1,1); Kdx = CharacteristicEq(2) Inertia(1,1); % Design x-rotational controller. Kpy = CharacteristicEq(3) Inertia(2,2); Kiy = CharacteristicEq(4) Inertia(2,2); Kdy = CharacteristicEq(2) Inertia(2,2); % Design x-rotational controller. Kpz = CharacteristicEq(3) Inertia(3,3); Kiz = CharacteristicEq(4) Inertia(3,3); Kdz = CharacteristicEq(2) Inertia(3,3); % Design Controllers for the leg springs/dampers. KpS = zeros(7,1); KpS = zeros(7,1); KpS = zeros(7,1); for LegNum = 1:7 KpS(LegNum) = CharacteristicEq(3) LegMasses(LegNum,2); KiS(LegNum) = CharacteristicEq(4) LegMasses(LegNum,2); KdS(LegNum) = CharacteristicEq(2) LegMasses(LegNum,2); end %------------------------------% % 7) Additional initializations. PAGE 118 106 %------------------------------% MaxErr = 1e-4; MaxIt = 3000; Minimum Energy Optimization % This function will determine the force that needs to be applied in each % leg to satisfy the force state. This will be determined using the % minimum energy configuration of the system. The optimal spring lengths % will be determined, allowing us to easily calculate the force in each % leg. % This also has the advantage of allowing us to calculate small changes in % the forces for control applications. % The equation used for optimization is d/dL{sum((A[n] + B[n]*k7*d7)^2)} = 0. % k_val is the vector of spring constants. function [MinEnergy] = MinEnergy(Pc) global J; global k_val; % extract the positioning and correctional data. Pos = zeros(6,1); w_ext = zeros(6,1); for i=1:6 Pos(i) = Pc(i); w_ext(i) = Pc(i + 6); end Sp_LL_J(Pos, true, false); J_opt = zeros(6, 6); cont = true; n = 7; while cont m = 1; for i = 1:6 if m ~= n J_opt(:, i) = J(:, m); m = m + 1; else J_opt(:, i) = J(:, m+1); m = m + 2; end end PAGE 119 107 % This checks for closeness to singularity. if abs(det(J_opt)) >= 0.1 cont = false; else n = n 1; end end % Once we have a non-singular reduced Jacobian, we can calculate the leg % forces using the minimum energy principle. % These are the values for the constants of the other legs. An = -J_opt^-1 w_ext; Bn = -J_opt^-1 J(:, n); kv = zeros(6, 1); m = 1; for i = 1:7 if i ~= n kv(m) = k_val(i); m = m + 1; end end % k_val(n) ==> k7 % k_v(i) ====> kn Au = 0; Bu = 0; for i = 1:6 Au = Au + k_val(n)/kv(i) An(i)*Bn(i); Bu = Bu + k_val(n)^2/kv(i) Bn(i)^2; end % Calculate the force in the optimized leg. % Positive delta L7 is DECREASE in spring length. delta7 = -Au / Bu; F7 = k_val(n) delta7; % Determine the forces in the other legs. Fo6 = zeros(6, 1); for i = 1:6 Fo6(i) = An(i) + Bn(i) F7; end % Collect all force terms into one vector. F_opt = zeros(7, 1); PAGE 120 108 m = 1; for i = 1:7 if i ~= n F_opt(i) = Fo6(m); m = m + 1; else F_opt(i) = F7; end end MinEnergy = F_opt; Numerical Forward Analysis This consists of two pieces, the iterative process and the reverse analysis that generates the modified Jacobian and performs leg length calculations. The iterative process is relatively simple in form and is easily adapted to many systems. Iterative Process % This is the numerical forward analysis for the Spatial mechanism. function [Sp_Forward_Leg] = Sp_Forward_Leg(Inputs) global J; global MaxErr; global MaxIt; DesLeg = Inputs(1:7); InitGuess = Inputs(8:13); CurGuess = InitGuess; CurLeg = Sp_LL_J(CurGuess, true, true); Err = DesLeg CurLeg; NumIt = 0; while max(abs(Err)) >= MaxErr && NumIt < MaxIt, delta = J Err; CurGuess = CurGuess + 0.25*delta; NumIt = NumIt + 1; CurLeg = Sp_LL_J(CurGuess, true, true); Err = DesLeg CurLeg; end NumIt Sp_Forward_Leg = CurGuess; PAGE 121 109 Reverse Analysis % This function will calculate leg lengths and the Jacobian for a % particular configuration function [Sp_LL_J] = Sp_LL_J(Pos, both, it_J) global R; global p1ee; global p2ee; global p3ee; global p0ee; % Define Rotation matrix Rx = [1 0 0; 0 cos(Pos(4)) -sin(Pos(4)); 0 sin(Pos(4)) cos(Pos(4))]; Ry = [cos(Pos(5)) 0 sin(Pos(5)); 0 1 0; -sin(Pos(5)) 0 cos(Pos(5))]; Rz = [cos(Pos(6)) -sin(Pos(6)) 0; sin(Pos(6)) cos(Pos(6)) 0; 0 0 1]; R = Rx Ry Rz; % Central point ss00 = [Pos(1); Pos(2); Pos(3)]; % Define base points p1b = [0; -1; 0]; p2b = [sqrt(3)/2; 1/2; 0]; p3b = [-sqrt(3)/2; 1/2; 0]; % Define ee points % p1ee = [0; 1; 0]; % p2ee = [-sqrt(3)/2; -1/2; 0] / 2; % p3ee = [sqrt(3)/2; -1/2; 0] / 2; p1e = ss00 + R*p1ee; p2e = ss00 + R*p2ee; p3e = ss00 + R*p3ee; p0e = ss00 + R*p0ee; % Define leg orientation vectors. ss12 = p2e p1b; ss13 = p3e p1b; ss21 = p1e p2b; ss23 = p3e p2b; ss31 = p1e p3b; ss32 = p2e p3b; ss00 = p0e; % Redefine ss00 since the seventh leg is no longer in the plane of the EE. LegLengths = zeros(7,1); LegLengths(1) = sqrt(dot(ss12, ss12)); PAGE 122 110 LegLengths(2) = sqrt(dot(ss13, ss13)); LegLengths(3) = sqrt(dot(ss21, ss21)); LegLengths(4) = sqrt(dot(ss23, ss23)); LegLengths(5) = sqrt(dot(ss31, ss31)); LegLengths(6) = sqrt(dot(ss32, ss32)); LegLengths(7) = sqrt(dot(ss00, ss00)); if(both) s12 = ss12 / LegLengths(1); s13 = ss13 / LegLengths(2); s21 = ss21 / LegLengths(3); s23 = ss23 / LegLengths(4); s31 = ss31 / LegLengths(5); s32 = ss32 / LegLengths(6); s00 = ss00 / LegLengths(7); r1 = R p1ee; r2 = R p2ee; r3 = R p3ee; s12L = cross(r2, s12); s13L = cross(r3, s13); s21L = cross(r1, s21); s23L = cross(r3, s23); s31L = cross(r1, s31); s32L = cross(r2, s32); s00L = [0; 0; 0]; % scale the moment vectors if needed for forward analysis if it_J s12L = s12L / LegLengths(1); s13L = s13L / LegLengths(2); s21L = s21L / LegLengths(3); s23L = s23L / LegLengths(4); s31L = s31L / LegLengths(5); s32L = s32L / LegLengths(6); s00L = s00L / LegLengths(7); end global J; J = [s12 s13 s21 s23 s31 s32 s00; s12L s13L s21L s23L s31L s32L s00L]; end Sp_LL_J = LegLengths; PAGE 123 111 Torque Transformation % It is necessary to determine the control torques in terms of the global % coordinates. function [TorqueTransform] = TorqueTransform(Pos) % Define Rotation matrix Rx = [1 0 0; 0 cos(Pos(4)) -sin(Pos(4)); 0 sin(Pos(4)) cos(Pos(4))]; Ry = [cos(Pos(5)) 0 sin(Pos(5)); 0 1 0; -sin(Pos(5)) 0 cos(Pos(5))]; Rz = [cos(Pos(6)) -sin(Pos(6)) 0; sin(Pos(6)) cos(Pos(6)) 0; 0 0 1]; R = Rx Ry Rz; TorqueTransform = R [Pos(7); Pos(8); Pos(9)]; PAGE 124 LIST OF REFERENCES 1. Duffy, J., Statics and Kinematics with Applications to Robotics, Cambridge University Press, 1996, New York, NY. 2. Crane, C., Duffy, J., Kinematic Analysis of Robot Manipulators, Cambridge University Press, 1996, New York, NY. 3. Baiges-Valentin, I., Dynamic Modeling of Parallel Manipulators, Ph.D. dissertation, 1995, University of Florida, Gainesville, Fl. 4. Lee, J., Duffy, J., and Rooney, J., An Initial Investigation into the Geometrical Meaning of the (Pseudo-) Inverses of the Line Matrices for the Edges of Platonic Polyhedra, Presentation at Sir Robert Stawell Ball 2000 Symposium, University of Cambridge, UK, July 2000. 5. Zhang, Y., Duffy, J., and Crane, C., The Optimum Quality Index for a Spatial Redundant 4-8 In-Parallel Manipulator, Proceedings of the Advances in Robot Kinematics Conference, Piran, Slovenia, June 2000, p. 239-248. 6. Zhang, Y, Duffy, J., and Crane C., The Optimal Quality Index for a Spatial Redundant 8-8 In-Parallel Manipulator, Presentation at Proceedings of the ASME Mechanisms Conference, Baltimore, Md., Sep 2000. 7. Lee, J., Investigations of Quality Indices of In-Parallel Platform Manipulators and Development of Web Based Analysis Tool, Ph.D. dissertation, 2000, University of Florida, Gainesville, Fl. 8. Zhang, Y., Quality Index and Kinematic Analyisis of Spatial Redundant In-Parallel Manipulators, Ph.D. dissertation, 2000, University of Florida, Gainesville, Fl. 9. Bonev, I., Geometric Analysis of Parallel Mechanisms, Ph.D. dissertation, 2002, University of Florida, Gainesville, Fl. 10. Tyler, C., In-Parallel Passive Compliant Coupler for Robot Force Control, MS thesis, 2000, University of Florida, Gainesville, Fl. 11. Abbasi, W., Ridgeway, S., Adsit, P., Crane, C., and Duffy, J., Investigation of a Special 6-6 Parallel Platform for Contour Milling, Proceedings of the ASME Manufacturing Engineering Division 1997 International M.E. Congress and Exposition (IMECE), Dallas, Nov 97, pp. 373-380. 112 PAGE 125 BIOGRAPHICAL SKETCH Jean-Franois Ajit Kamath received a Bachelor of Science in mechanical engineering in the fall of 2002. He will receive his Master of Science in mechanical engineering from the University of Florida in August 2005. 113 |