WWII“!lHlIIHIHIIW[HIIIWHWHHIIIHHIHHII l LIBRARY r ~ 09,4 Michigan State o- i» 4. 2 5.2 L; /3 University This is to certify that the thesis entitled Design Challenges in the Development of a Spherical Mobile Robot presented by Filip Tomik has been accepted towards fulfillment of the requirements for the Masters degree in Mechanical Engineerigg &’ x»? flg/yw Méior Professor’s Signature flag Q2 27003 Date MSU is an Affirmative Action/Equal Opportunity Institution PLACE IN RETURN BOX to remove this checkout from your record. TO AVOID FINES return on or before date due. MAY BE RECALLED with earlier due date if requested. DATE DUE DATE DUE DATE DUE Tfifiifign U 6/01 cJClRC/DateDue.p65-p.15 ——_ Design Challenges in the Development of a Spherical Mobile Robot By Filip Tomik A THESIS Submitted to Michigan State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Department of Mechanical Engineering 2003 ABSTRACT Design Challenges in the Development of a Spherical Mobile Robot By Filip Tomik A spherical mobile robot has certain advantages over traditional mobile robots in specific applications, but their design and fabrication pose many challenges. In this thesis we summarize the challenges and obstacles that were encountered in the design and development of our own spherical mobile robot. An important contribution of this work has been in the design and implementation of the prOpulsion mechanism within the robot. The propulsion mechanism uses unbalance masses to generate nec— essary moments for mobility and it is also fixed to the exoskeleton - this inherently increases the potential range of applications of our robot. Apart from the propulsion mechanism, the challenging aspects of our design were fabrication of the exoskeleton, actuator selection, sensor selection and placement, adaptive control design, selection of hardware for computing and wireless communication, and power supply. As part of our work, we have constructed a prototype spherical mobile robot that can demon- strate the potential advantages of our design over existing platforms. We also present some preliminary experimental results obtained from bench tests of our propulsion mechanism. To my parents who have given me the opportunity to succeed in life. iii ACKNOWLEDGMENTS This work was supported in part by the Department Mechanical Engineering at Michigan State University, and by a grant from the National Science Foundation. iv TABLE OF CONTENTS LIST OF TABLES vii LIST OF FIGURES viii 1 Introduction 1 1.1 Motivation ................................. 1 1.2 Background ................................ 2 1.3 Proposed Design ............................. 3 2 Background 5 2.1 Kinematic Model ............................. 5 2.2 Geometric Motion Planner ........................ 7 2.2.1 Effect of Individual Control Actions ............... 7 2.2.2 Prelude to Complete Reconfiguration .............. 8 2.2.3 The Geometrical Algorithm ................... 14 3 Propulsion Mechanism Design 18 3.1 Previous Designs ............................. 18 3.2 Design Alternatives ............................ 21 3.2.1 Unbalance Masses on Diametrical Circles ............ 22 3.2.2 Tetrahedral Design ........................ 24 3.2.3 Proposed Design ......................... 24 3.2.4 Mathematical Model Results ................... 25 4 Fabrication Challenges 28 4.1 Exoskeleton ................................ 28 4.1.1 Clamping and Alignment. Ring .................. 29 4.1.2 Window .............................. 30 4.2 Propulsion Mechanism .......................... 31 4.2.1 DC Servo Motor ......................... 31 4.2.2 Alignment ............................. 33 4.3 Sensor Selection and Placement ..................... 36 4.3.1 Potentiometer ........................... 36 4.3.2 Orientation Sensor ........................ 37 4.3.3 Camera .............................. 39 4.4 Power Supply ............................... 40 4.4.1 Charging Method ......................... 42 4.4.2 Regulating Power ......................... 43 4.5 Control and Computing Hardware .................... 43 4.5.1 Pulse to Analog Converter .................... 44 4.5.2 Orientation Sensor ........................ 45 4.5.3 Computing Hardware ....................... 45 4.5.4 Control Logic Schematic ..................... 46 5 Control System 49 5.1 Operational Scenario ........................... 49 5.2 Adaptive Identification .......................... 50 6 Concluding Remarks and Future Research Directions 61 6.1 Alignment ................................. 63 6.2 End-mount ................................ 63 6.2.1 Exoskeleton ............................ 63 6.3 Communication .............................. 64 BIBLIOGRAPHY 66 vi 3.1 3.2 LIST OF TABLES Comparison of largest and smallest possible angle a of incline for the proposed design in Fig 3.6 ........................ 26 Comparison of largest and smallest possible angle a of incline for the Tetrahedral design in Fig 3.5 ....................... 27 vii LIST OF FIGURES 2.1 Initial and final configuration ...................... 6 2.2 Motion of the sphere under control action (A) and (B) ........ 9 2.3 Motion of the sphere under control action (A) and (B) ........ 10 2.4 Plot of AB versus Ad for different values of 7‘, shown for both counter- clockwise and clockwise paths ...................... 13 2.5 Basis for complete reconfiguration of the sphere ............ 15 3.1 Structure of a Rolling Robot Halme et al. [1] .............. 19 3.2 The “Sphericle” conceptual design from Bicchi et a1 .[2] ........ 20 3.3 Schematic of Koshiyama and Yamafuji [3] propulsion mechanism . . . 21 3.4 Diametrical design ............................ 23 3.5 Tetrahedral design ............................ 23 3.6 Skew axes prOpulsion mechanism design ................ 26 4.1 Representation of the clamping mechanism for the exoskeleton. It is comprised of (a) the clamp (b) the hook and (c) the the alignment tabs 30 4.2 Window frame assembly shown from (a) inside, (b) outside ...... 31 4.3 Pancake Style DC Servo Motor ..................... 32 4.4 Assembly of the ball-screw mechanism and motor ........... 33 4.5 Alignment bearings for guide-rods .................... 34 4.6 Assembly of end-mount fixture with unidirectional bearings ...... 35 4.7 Alignment jig for the propulsion mechanism .............. 36 4.8 Potentiometer for motor positioning ................... 37 4.9 I nertz’aCube2 orientation sensor ..................... 38 4.10 Orientation levelling device ........................ 39 4.11 Wireless Camera ............................. 40 4.12 Mounting of camera with reciprocating mechanism .......... 41 4.13 Complete motor assembly with guide-rods, ball-screw and battery pack 42 4.14 Foam pad arrangement .......................... 43 4.15 Advanced motion servo power amplifier with inductance coil ..... 44 viii 4.16 Circuitry (convert pulse signal to analog) for interfacing the receiver with the computing hardware ...................... 4.17 Representation of channel 1 (a 1) and 2 (a 2) output in the form of a analog signal ............................... 4.18 PC-104 embedded control module .................... 4.19 Control logic schematic diagram ..................... 5.1 Setup for the controller design ...................... 5.2 (a) and (b) represent the time trace and convergence of dynamic pa- rameters which were observed during the adaptive identification for parameters a and b ............................ 5.3 (c) represents the time trace and convergence that that was captured during the adaptive identification for parameter c, ((1) represents the comparison between the experimental output and reference poten- tiometer .................................. 5.4 Block diagram of the closed-loop model ................. 5.5 (a) represents the closed-loop output in simulink, (b) represents the current sent to the motor with C = 0.9, w = 20 and ’y = 2.5 ..... 5.6 Represents the controller performance with implementation of the de- 45 47 48 51 53 54 55 signed controller at a pulse input of unit amplitude and 5-second period 57 5.7 Reciprocating motion with the axis in horizontal position ....... 5.8 Reciprocating motion with the axis in vertical position ........ 5.9 Reciprocating motion with the axis tilted at 45 degrees ........ 6.1 Alignment ring integration into the exoskeleton ............ 6.2 Steps taken during the propulsion mechanism installation, (a) shows the alignment box with the first axis, (b) shows the first axis installed, and the beginning of the axis two and three installation ........ ix 59 59 60 64 CHAPTER 1 Introduction 1 . 1 Motivation In the field of robotics and automation, mobile robots have been a popular subject of research. Over the past few decades, these robots have been explored extensively for their unique capabilities in providing automation on a mobile base. There has been many interesting and innovative designs proposed for mobile robots for a wide variety of applications ranging from factory automation to planetary exploration. Each of these designs were conceived for a particular application, and due to the broad spectrum of applications these robots vary significantly in their size, weight, mechanical structure, and their actuator and sensor elements. In addition, these robots have different levels of intelligence depending on the level of autonomy required for their intended applications. Despite many differences, most of the mobile robot platforms are fundamentally similar in the sense that they rely on traditional use of the wheel as a device with no internal dynamics. Wheel-based mobile robots are ideally suited for most applica- tions but suffer from limitations in terms of mobility, stability, and maneuverability in specific applications. Although some of these limitations can be overcome by us- ing multiple wheels, large wheels, multi-wheel drives, broad wheel bases, traction enhancing devices, articulated body configurations, etc., certain limitations can only be overcome through the use of the “wheel” as a dynamical entity. 1.2 Background The concept of using the “wheel” as a dynamic entity initiated a new phase of research and attracted the attention of many researchers, providing them the opportunity to explore significantly different forms of mobility. One such concept of a dynamic-wheel was pr0posed by Brown and Xu [4], known as the Gyrover. This particular concept utilizes the principle of gyroscopic precession similar to the one found in a spinning wheel. By exploiting the gyrosc0pic forces for mobility and stability, the Gyrover has distinct advantages over traditional wheeled platforms [4]. Another mobile platform that utilizes the idea of a dynamic wheel are spherical mobile robots, which have been investigatedby many researchers[1], [2], [3], [5], [6]. Even though these spherical mobile robots are similar in their external appearance, they distinguish themselves from one another by the type of propulsion mechanism they use to generate mobility. For instance, the spherical mobile robot proposed by Koshiyama and Yamafuji [3], uses a spherical wheel and a propulsion mechanism composed of a pendulum and an arch—shaped body. Another design, presented by Halme et a1. [1], is composed of a spherical exoskeleton and a single-wheeled device. It generates mobility by creating unbalance forces and is able to change heading by turning the wheel axis which is constrained inside the spherical cavity. The design presented by Bicchi et al. [2] is similar to Halme et al. [1], but instead of using a single wheel, uses a four-wheeled car to generate unbalance forces necessary for mobility. In contrast to these plat- forms, where a wheel rests on the bottom of the inner cavity of the exoskeleton, the propulsion mechanism by Bhattacharya and Agrawal [6] is composed from a driving mechanism fixed to the exoskeleton. It is comprised of a set of two mutually perpen- dicular rotors attached to the inside of the sphere, which induce the robot to roll and spin on flat surface. Although the previously mentioned concepts provide greater maneuverability and omnidirectional capability over existing traditional wheel- and track-based platforms, they also introduces some limitations. For instance, the design by Koshiyama and Yamafuji [3] has a limited range of lateral roll due to its arch-shaped body, and hence fails to completely take advantage of the maneuverability associated with spherical exoskeletons. Although the designs by Bicchi et al. [2] and Halme et al. [1] have a full range of maneuverability, they posses two major limitations. First and foremost, since their prOpulsion mechanism consists of a moving unbalance mass which utilizes the entire inner cavity of the exoskeleton for travel, their choice of material for con- structing the exoskeleton needs to be transparent in order to be able to visually sense the environment with the use of a camera. This limits the choice of material that can be used for the exoskeleton and therefore limits the range of application of the robot. Second, since the propulsion device utilizes the entire inner cavity of the exoskeleton for generating mobility, it complicates the task of routing sensor information from sensors mounted on the exoskeleton. 1 .3 Proposed Design In this thesis, we propose a design where the robot is comprised of a spherical ex- oskeleton and an internal mechanism for propulsion, fixed to the exoskeleton. At a fixed point on the exoskeleton, the robot has an orifice from which it can deploy a camera to visually sense the environment. The camera is deployed when the orifice is at the vertically top position, which enables a complete and unrestricted view of the surroundings, and retracted within the exoskeleton prior to the robot resuming its motion. The design relies on motion planning and control strategies that will allow the robot to adequately reconfigure itself as it travels between different loca- tions in the horizontal plane. This thesis is organized as follows: In Chapter 2, we introduce the kinematics model of the spherical robot and present motion planning and control algorithms for configuration through rolling. This material, taken from our earlier work, serves to provide the background material that justifies the design of the spherical robot we pursue in this thesis. In Chapter 3, we discuss the earlier designs of spherical mobile robots in some detail. We also present three candidate propulsion mechanisms for our design and discuss their advantages and disadvantages. The challenges encountered during design and fabrication of our robot is discussed in Chapter 4. Chapter 4 also describes in detail the essential components of the propul- sion mechanism, and other hardware that are used for controlling the robot, such as sensors, computing device, and power supply and regulation. Chapter 5 describes the control system of the robot and the controller designed for the propulsion system. It also includes some preliminary experimental results of the controlled propulsion mechanism. Chapter 6 presents concluding remarks and future research directions. CHAPTER 2 Background Our spherical mobile robot design is based on the assumption that it can bring its camera orifice to the vertically top position every time it comes to rest. This will enable the robot to deploy its camera and have an unrestricted view of the surround- ings. In this section we review this mathematical problem and its solution presented by Mukherjee, et al. [5] and by Das and Mukherjee [7] recently. The material in this chapter, therefore, provides the necessary background, rationale, and basis for our design. 2.1 Kinematic Model To obtain a kinematic model of the sphere, we denote Cartesian coordinates of the sphere center by Q .=_ (2:, y). We adopt the z — y — z Euler angle sequence (a, 6, 45) to represent the orientation of the sphere. We first translate the zyz frame to the center of the sphere and rotate it about the positive 2 axis by angle (1, —7r 3 oz 3 7r, to obtain frame xlylzl. We rotate frame xlylzl about the y] axis by angle 0, 0 S 6 3 7r, to obtain frame 17231222. The point P is located at the intersection point of the 22 axis with the sphere surface. The $2y222 frame is rotated about the 22 axis by angle (15 to obtain frame $3y323. The point R is located at the intersection point of the .173 axis 2,21, Z2,Z3 P Y1 :Y2 x1 -X2 Q 3 relative to P Figure 2.1. Initial and final configuration and the sphere surface. The frames myz, xlyl 21, $2y222, :cgygzg, and z — y — z Euler angles (a, 6, 45) are all shown in Fig. 2.1(a). The reorientation of the sphere refers to the task of bringing P to the vertically upright position, and R, which then lies on the diametrical circle in the my plane, to the orientation 6; with respect to the :1: axis. This can be achieved with 6 = 0, and a + (b = ,Bf, irrespective of the individual values of the Euler angles a, <25, as shown in Fig. 2.1(b). Therefore, the sphere can be completely reconfigured by satisfying $=O,y=0,6=0,a+¢=fif (2.1) In the sequel, we assume the sphere to have unity radius without any loss of generality. Also, we denote the angular velocities of the sphere about the $1,y1, 21 axes as wi, w], wi, respectively. Assuming a); = 0, the state equations can be written as w; cos a + w; sin or w; sin a — w; cosa 1 wy —w; cot 6 1 WI csc In the model above, the first three equations can be derived simply. The expression for d can be obtained from the relative velocity of P with respect to Q, when the sphere rotates with angular velocity 6);. The angular velocity qb is simply the vector sum of the angular velocities a and w x. 1 Alternatively, Equations 2.4, 2.5, and 2.6, can be derived from the relation between the z — y — z Euler angle rates a, 6, (ii, and the angular velocities wé, w], w; subject to the constraint w; = 0. 2.2 Geometric Motion Planner 2.2.1 Effect of Individual Control Actions Consider the motion of the sphere described by the kinematic model in Eq. (2), for the individual control actions (Aka; 75 0, w; = 0 (B)w;7$0, “43:0, 6%0 The motion of the sphere for these actions are explained with the help of Fig. 2. For action (A), the sphere moves along straight line CF as 6 changes. Let F be the point on this straight line where the sphere would have 6 = 0. Since the sphere rolls without slipping, this point remains invariant under control action (A) For control action (B), the instantaneous radius of the path traced by the sphere on the my plane can be computed using Equations 22- 2.6 as follows (a? «mi ... = tan6 (2.7) mg — yx Since in; = 0, 6 is maintained constant. This implies that the contact point of the sphere moves along a circular path; the center of this circle is located at C in Fig. 2.2. Along with the contact point, points P and F also move along circular paths; the center of these paths lie on the vertical axis that passes through C. The point C remains fixed under control action (B), but under control action (A) moves away from F, as 6 increases, and converges to F, as 6 converges to zero. 2.2.2 Prelude to Complete Reconfiguration Consider the initial configuration of the sphere in Fig. 2.3, where $Z$iayzyia62070i+¢izfii (2-8) At the initial configuration, where 6 = 0, P is at the vertically upright position and R lies on the diametrical circle in the my plane, at orientation 6,- relative to the :1: axis. Due to singularity of the z — y — z Euler angle representation, a. is arbitrary. This implies that we can arbitrarily choose the direction of 3:1 axis relative to :1: axis. Once a, has been chosen, (1’),- is computed from Eq. 2.8 according to the relation qt,- 2 6,- — (1,. Now consider the (A)-(B)-(A) sequence of control actions, where i]. I X1 (x,y) \ 6 Figure 2.2. Motion of the sphere under control action (A) and (B) f 6' d . 5 l2 l: clockwisepathforStep2 - - -- "\ x, p 4 \ ~ ' \ C Q V X. w Au \‘ Step 3 \yle T“) u ~ x \\ m9 Contact Circle " Step 2 L C) _¢ counter-clodtwisa path \__ _¢ ‘-locus of C Figure 2.3. Motion of the sphere under control action (A) and (B) 1. Control action (A) changes c, to 6 = 6’, 2. Control action (B) changes the direction of the 2:1 axis by angle A0: and 3. Control action (A) changes 6 from 6 = 6’, back to 6 = 0. At the end of the first step, shown in Fig. 2.3, P moves away from its vertically upright position until QP subtends angle 6’ with the vertical. The an axis, initially coincident with the an axis, now subtends angle 6’ with the an axis in the vertical plane. During step 2, 6 remains constant at 6 = 6’, the sphere traces out a circular arc on the ground, and the 11:1 axis changes direction to remain pointed normal to the arc. The 2:2 axis moves along with the 11:1 axis, maintaining angle 6’ with respect to it in the vertical plane. During step 2, the :53 axis spins about the 3;; axis, and at the end of the maneuver undergoes a net rotation of Ad) about it. Since the 11:1 axis undergoes a change of orientation by angle Aa during the same time, we can use Equations 2.5 and 2.6 to write 10 Ad) =2 —sec 6'Aa (2.9) During step 3, control action (A) returns the plane containing the axes r2, yg, $3, and y;;, to the plane containing the axes :13, y, 5131 and y1. At the end of the sequence of maneuvers, the sphere is described by the configuration in Fig. 2.3, where 1L‘=1L‘f, y=yf, 9:0, af+¢f=6f (2.10) and where arf,yf, denote the final Cartesian coordinates of the sphere, and Euler angles a), afif are given by the relations afzai+Aa (2.11) ¢f=¢i+A¢ The negative angles —Aqb, —¢;, —,6;, and the negative angular velocity — in Fig. 2.3 imply that these vectors are opposite in sense to their defined positive direc- tions. Using Equations 2.9- 2.11, it can be readily shown that A6 é (ff — [3,) = Aa(l — sec 6’) (2.12) In Eq. 2.12, A6 depends on A0: and 6’. However, Aa and 6' are not independent. quantities; it can be verified from Figures 2.2 and 2.3 that they are related by the expression 11 I A I 2arcsin[r/2(tan 6' - 6’)], for counter — clockwise path in step 2 a : 2{7r — arcsin[7‘/2(tan 6’ — 6’)]}, for clockwise path in step 2 (2.13) where r 2 Kay — 11;.)2 + (y; — y,)2]% is the distance between initial and final Cartesian coordinates of the sphere. Considering the fact that Ad is positive for counter- clockwise paths and negative otherwise, Eq. 2.13 can be written more precisely as A 2 arcsin[7'/2(tan 6’ — 6’)], f or counter — clockwise path in step 2 a : 2{arcsin[r/2(tan 6’ — 6’)] — 7r}, for clockwise path in step 2 (2.14) From Equations 2.12 and 2.14, we can infer that A6, for the (A)-(B)—(A) sequence of control actions, is implicitly a function of Ad a alone, for it given value of 7'. To keep 7' unchanged, consider variations in Ad that do not change the initial and final positions of the sphere in Fig. 2.3. The feasible variation in Ad can be determined from the locus of C, also shown in Fig. 2.3. Since C must be equidistant from the initial location, F = ($,,y,), and the final location, F = (:1: f, yf), the locus of C is a straight line that orthogonally bisects the line joining the initial and final locations. When C is located on the opposite side of this line from the circular arc, Ad is an acute angle; it is zero when C lies at infinity and it approaches 7r as C approaches the line. When C is on the same side of the line as the circular arc, Ad is obtuse; it equals 7r when C is on the line, and it approaches 27f when C approaches infinity. Clearly, 0 S Ad 3 27r for the counter-clockwise path in step 2. The range of Ad for the clockwise path can be similarly shown to be —27r _<_ Aa g 0. Using Eq. 2.14 to obtain 6’ for different values of Ad, we compute A6 for both clockwise and counter— clockwise paths using Eq. 2.12, for different values of 7“. These plots of A6 versus Ad 12 Figure 2.4. Plot of A6 versus Ad for different values of r, shown for both counter- clockwise and clockwise paths are shown in Fig. 2.4. For the specific values of 7" that we considered, it is clear A6 continuously assumes values over a range greater than 27r. For example, for r = 2 and a counterclockwise path, A6 assumes values over a range of 27r with Ad in the range a _<_ Aa g b. The same holds true for r = 10 along a clockwise path, when An in the range —c 3 Ad _<_ —d. Based on the plots above, we assert that an arbitrary value of A6 can be achieved over a range of 27f for any fixed value of r. In the sequel, it seems reasonable to summarize that an (A)-(B)-(A) sequence of control actions, apart from pure translation of the sphere, can arbitrarily rotate the sphere about the vertical axis. 13 2.2.3 The Geometrical Algorithm In this section, we extend the (A)-(B)-(A) sequence of control actions to converge the sphere from its arbitrary initial configuration, described by the Cartesian coordinates and z — y — z Euler angles (:13, y, a, 9, (a) = ($0, ya. do, 90, 450) (2.15) to its final configuration satisfying Eq. 2.1, namely :1:=0,y=0,6=0,a+¢=6f (2.16) We present our algorithm with the help of Fig. 2.5 In this figure, the initial configuration of the sphere, described by Eq. 2.15, is denoted by (1). As the first step of our algorithm, we execute control action (A) whereby 6 is changed from 6 = 60 to 6 = 0. This brings the Cartesian coordinates of the sphere center from (1:0, yo) to ((13,, 3),), given by the relations :13,- = (113,, — 60 cos 010), y, 2 (yo — 6, sin 00) (2.17) Since 6 = 0 at this new configuration, denoted by (2) in Fig. 2.5, point P is vertically upright and R is located on the equatorial circle, orientated 6, with respect to the :1: axis. Since 6 = 0, the value of 6, can be obtained from the initial configuration parameters as 14 ‘ x x1 (1) Q=(X0, YO) Figure 2.5. Basis for complete reconfiguration of the sphere 15 fif : a0 + $0 (2.18) Under control action (A), the center of rotation for control action (B), discussed in Section 2.2.1, moves from the coordinates denoted by Co, to (513,-, y,). Now, our goal, in terms of reconfiguration, is to translate the sphere from (13,-, y,) to (0,0), and reorient the sphere through a pure rotation about the vertical, by angle A6. The desired distance of translation, r, and angle of rotation, A6, is computed as 7‘=(.’L‘,2=y,2)%, A5=(5f—fil) (2-19) To achieve the desired translation, and rotation about the vertical, we execute the (A)-(B)-(A) sequence of control actions, discussed in the previous section. The motion of the sphere under this sequence of control actions is shown in Fig. 2.5 by path segments (2)-(3), (3)-(4), and (4)-(5), respectively. As the sphere moves from (2)-(3), 6 changes from 6 = 0 to 6 = 6’, and the center of rotation for control action (B) moves from (x,,y,) to C E (a,b). Subsequently, during control action (B), the sphere moves along circular arc (3)—(4) with center of rotation fixed at C. During this motion 6 is maintained constant at 6’. Though counter-clockwise direction of motion was chosen with control action (B), clockwise direction of motion can also be chosen. Finally, control action (A) brings the sphere from (4)-(5). The configuration of the sphere at (5) is in accordance with Eq. 2.16. The above algorithm provides a method for reconfiguration of the sphere in an open-loop fashion and further details can be found in the paper by Mukherjee, et 16 al. [5]. Recently, a closed-loop reconfiguration algorithm was developed by Das and Mukherjee [7]. This algorithm, based on discontinuous inputs for stabilization, pro- vides the first solution to a problem that has eluded a solution for quite some time. 17 CHAPTER 3 Propulsion Mechanism Design In this chapter we first revisit some of the earlier designs of spherical mobile robots and justify the need for development of our platform. We then propose three candi- date propulsion mechanisms that offer to provide advantages over those in existing designs by virtue of being fixed to the exoskeleton. We compare the three candidate mechanisms and determine the “best” mechanism from design,dynamics, control, and implementation viewpoints. 3. 1 Previous Designs To better understand and overcome the drawbacks of earlier designs, we commence by exploring the concepts utilized in these designs. The design by Halme et al. [1] suggests a propulsion mechanism or the Inside Drive Unit (IDU) illustrated in Fig. 3.1. The IDU is contained within a spherical shell and prOpelled by a motor drive wheel unit. The drive-wheel unit is integrated to a single axis support on which the IDU is able to turn in order to change the heading direction of the robot. To assure adequate traction for the IDU, the unit also contains a balance wheel opposite of the motor drive unit. The control unit of the robot, along with the power supply and communications equipment necessary for control, is housed on the single axis 18 Figure 3.1. Structure of a Rolling Robot Halme et al. [1] structure. The design offered by Bicchi et al. [2] is similar to Halme et al. [1], but instead of using a single wheel, uses a four-wheeled car with unicycle kinematics illustrated in Fig. 3.2 to generate the unbalance force necessary for robot mobility. The mobility of this four-wheeled car is achieved with the use of two independent stepper motors and two trailing suspension wheels for stability. The car maintains in contact with the inner cavity purely based on gravitation force. The communication and controls for the propulsion mechanism as well the orientation sensor are all incorporated to the four-wheeled vehicle. The design of Koshiyama and Yamafuji [3] contains an arch-shaped body mounted over the spherical wheel along with contacting rod and support wheels, illustrated in Fig. 3.3. The propulsion mechanism is composed of a pendulum and a controlling arch that is used for controlling the pitch and roll angle of the robot with the use of three servo motors, numerous balancing weights, and internal gear reducing gearboxes. The 19 Stability wheels I 2 - Stepper motor -.. -' Drive wheels ‘ Figure 3.2. The “Sphericle” conceptual design from Bicchi et al [2] postural stability, omni—directional steering, as well as the locomotion of the robot are achieved by the means of the compound gravity center feedback control. The sensors of the robot along with the communication and control units are mounted on the pendulum platform and the stabilizing arm. Although the designs described above provide certain advantages over traditional wheel- and track-based platforms, they also introduce some limitations. For instance, the design by Koshiyama and Yamafuji [3] has a limited range of lateral roll due to its arch-shaped body, and hence fails to completely take advantage of the maneuverability associated with spherical exoskeletons. Although the designs by Bicchi et al. [2] and Halme et al. [1] have a full range of maneuverability, they posses two major limitations. First and foremost, since their propulsion mechanism consists of a moving unbalance mass which utilizes the entire inner cavity of the exoskeleton for travel, their choice of material for constructing the exoskeleton needs to be transparent in order to be able to visually sense the environment. This limits the choice of materials that can be used for the exoskeleton and therefore limits the range of applications of the robot. Second, since the propulsion device utilizes the entire inner cavity of the exoskeleton 20 when Figure 3.3. Schematic of Koshiyama and Yamafuji [3] propulsion mechanism for generating mobility, it complicates the task of routing sensor information from sensors that may be mounted on the exoskeleton. 3.2 Design Alternatives The propulsion mechanism design modification that we are proposing promises to reduce some of the above mentioned weaknesses as well as provide several advantages and functionalities over the earlier concepts. The design modification calls for a mechanism fixed to the exoskeleton. The main advantage of keeping the mechanism fixed to the exoskeleton is that it eliminates the problem of routing sensory data from outside the exoskeleton to the computing unit inside the robot, and opens up the possibility for attaching sensors such as a camera or infra-red sensors to the inner exoskeleton without interfering with the propulsion mechanism. Also, since the robot 21 does not have to rely on visual sensing “through-the—shell”, the exoskeleton is no longer constrained to be made from material that is transparent. This allows for a wider material selection, thus increasing the range of applications of the robot. In sequel, we evaluate three potential designs. These include a design where the unbalance masses travel along diametrical circes, shown in Fig. 3.4, and two other designs where the unbalance masses reciprocate along spokes. One of them uses a tetrahedral spoke arrangement, as shown in in Fig. 3.5, and the other uses three mutually orthogonal, non-intersecting spokes, as shown in in Fig. 3.6, for greater length of travel. 3.2.1 Unbalance Masses on Diametrical Circles In this design concept, depicted in Fig. 3.4, three unbalance masses are constrained to travel along three mutually perpendicular diametrical circles fixed to the inner ex- oskeleton of the sphere. Although this design is interesting from a dynamics perspec- tive, it has a couple of drawbacks. First, since the eccentric masses are constrained to travel on the diametrical circles of large radius, the reaction time of the robot will be much longer when compared to a robot with unbalance masses moving along straight spokes. Secondly, modeling and dynamic computation would become complicated and expensive if we were to design collision-free trajectories of the masses. If we placed the circular trajectories in a manner that prevented collision (i.e. offsetting the three diametrical axis towards the center), dynamical modeling would be tedious and computationally intensive due to loss of symmtery. Finally, due to the mechanical complexity, the propulsion mechanism would be expensive and the assembly process would be cumbersome. 22 Diametrical Circles Eccentric (mutually orthogonal) Masses Figure 3.4. Diametrical design Retractable Camera Central Body Telescopic Limbs Figure 3.5. Tetrahedral design 23 3.2.2 Tetrahedral Design The second propulsion mechanism, presented in Figure 3.5, is composed of four radial spokes oriented such that their ends define a regular tetrahedron inscribed within the sphere. The axes are fixed to in the inner cavity of the sphere. Four eccentric masses powered by electric motors, are constrained to reciprocate along these four spokes to provide the unbalance force for enabling motion by disturbing the system equilibrium. The center of the sphere, where the four spokes meet, can be considered as the central distribution point. This central location would contain components such as the micro—controller, orientation sensor, and other entities required for stable operation and functionality. In comparison to the design with masses constrained along diametrical circles, featured in Fig. 3.4, this particular design offers several advantages such as improved response time of the eccentric masses (i.e shorter path of travel) and reduced complexity in dynamical modeling. Also, with this design, there would not be a need for custom designed parts, which usually leads to higher cost and longer time for development. Lastly, assembly and alignment problems would be simpler with the tetrahedral design, since we would only need to align the vertical spoke of the tetrahedral design. 3.2.3 Proposed Design Our design of choice, shown in Fig. 3.6, consists of three eccentric masses constrained to reciprocate along three mutually perpendicular nonintersecting axes fixed to the inner exoskeleton of the sphere. Each of the masses will provide an unbalance force necessary for mobility of the sphere. The linear motion of the eccentric masses will be provided by a set of guide rods and a ball screw that guarantee smooth recipro- cating motion. The control modules, sensors, power supply, and all other hardware components will be mounted to the inside of the exoskeleton. 24 In comparison to the designs in Figures 3.4 and 3.5, our design of choice has several advantages. In comparison to the diametrical design shown in Fig. 3.4 the proposed design is simpler and has less mechanical complexity, as discussed before. In comparison to the design in Fig. 3.5, that utilizes four actuators, the proposed design uses only three. This reduces the overall weight of the robot and its power consumption, thus increasing its operational time for a single charge. The propulsion mechanism also offers a greater length of travel for each of the eccentric masses, almost equal to the diameter of the sphere. However, to achieve this performance, the style of eccentric mass will have to be carefully chosen, since the dimensions of the eccentric mass will govern the amount of throw that will be available. The choice of the eccentric mass will be discussed in detail in the motor selection section of Chapter 4. As compared to the designs in Figures 3.4 and 3.5, the proposed design also requires a simpler algorithm for computation since it uses fewer actuators and collision is no longer an issue. Also, since the proposed design offers longer stroke length, larger unbalance forces are created, and hence the proposed design offers the ability to climb slopes with greater inclination. Next, we compare the designs featured in Figures 3.5(Tetrahedral design) and 3.6(Design of choice), in terms of their ability to climb inclined slopes. 3.2.4 Mathematical Model Results In this section we present results from numerical simulation that quantify the in- clined slope climbing ability of the two designs, namely the Tetrahedral Design and the Design of choice. We used a static model to determine the smallest and largest angles of inclination, a,,,,-,, and am“, respectively, that can be climbed by the robots in Figures 3.5 and 3.6. In our formulation, we started with a = 0 and gradually increased the angle and adjusted the locations of the unbalance masses to maintain static equilibrium. The angle was increased iteratively till the masses could no longer 25 wireless camera access window end mounts pancake motor telescopic limbs Figure 3.6. Skew axes propulsion mechanism design Table 3.1. Comparison of largest and smallest possible angle a of incline for the proposed design in Fig 3.6 maintain static equilibrium. The process was carried out for all possible orientations (Euler angles, 11;, d), and 6) of the robot in a closely-spaced three-dimensional grid of orientations. The reason for choosing this type of formulation was that we were inter- ested in determining the minimum and maximum angle that the robot can climb in worst and best orientation of the eccentric masses. In addition, to further benchmark the two desings, we also varied the ratio of the unbalance masses to the mass of the exoskeleton. The results are provided in Tables 3.1 and 3.2. 26 Table 3.2. Comparison of largest and smallest possible angle a of incline for the Tetrahedral design in Fig 3.5 [ Emoskeletonweigh, M otorwmght 01mm ] am” 40 25+7 - 10 25 25+7 — 11 25+21 25 - 8 40+21 25 - 7 The different ratios that were considered, were based on the variations in battery locations and the difference in the thickness of the exoskeleton. A dead weight of 7 1b represented a single battery pack either mounted to the individual motor or exoskeleton. The proposed mass of the exoskeleton could either be 25 lb or 40 lb depending on the thickness of the shell. For instance if we take a look at Table 3.1, under the “exoskeleton weight” column we have four different cases. The first case consist a 40 lb shell with a 7 lb battery pack attached to each motor weighing in at 25 lb. The second case now has a 25 lb shell instead of a 40 lb shell, and the last two case involves three battery packs mounted to the shell instead of the motors. To perform these calculations we used MatLab, from Tables 3.1 and 3.2 it is evident that the design of choice featured in Fig. 3.6 presents the best potential in any combination of weights by being able to climb the largest possible angle. 27 CHAPTER 4 Fabrication Challenges In this chapter we describe the intricate parts which make up the spherical mobile robot and discuss the challenges that were encountered during fabrication and com- ponent selection. Specifically, we will discuss the challenges in fabrication of the exoskeleton along with specific components that make up the propulsion mechanism, selection of materials for various off-the—shelf mechanical components, actuator selec- tion, selection and placement of sensors, hardware device for computing, communi- cation, and power supply. 4. 1 Exoskeleton In the development of the exoskeleton, we were faced with several challenges. The exoskeleton was required to have sufficient stiffness and rigidity such that it would not deform under its own weight. It had to be easily manufacturable and the material composition had to be readily available. Therefore, the exoskeleton of the robot was fabricated from carbon fiber material, which was fused together with epoxy resin to add strength as well as rigidity while maintaining the overall weight of the exoskeleton relatively low. We chose to fabricate the exoskeleton from two hemispheres for ease of manufacturing and assembly. The exoskeleton dimensions are 32 inches outer 28 diameter and 31.5 inches inner diameter. These dimensions were chosen for a couple of reasons. We were constrained from using larger dimensions since, we wanted to use the robot as an unmanned vehicle in a class that does not exceed the weight limit of 250-lbs. We could not go to a smaller size since a smaller robot would complicate the design and significantly limit component availability. For example, for our propulsion mechanism design, we are using a pancake motor with a hollow rotor that accommodates a ball-screw for linear travel. The ball-screw mechanism that we are using is already one of the smallest size that is available on the market and it would be difficult to find components for a scaled down version. Although it is possible to fabricate miniature custom components, it would raise the overall cost as well as prolong the development process. In terms of the thickness of the composite shell, we could have made it thinner and lighter but we chose to be somewhat conservative since this was the first prototype. 4.1.1 Clamping and Alignment Ring To provide correct alignment and rigid assembly of the two spherical hemispheres, one of the hemispheres contains an alignment ring with hooks while the other hemisphere has clamps. The clamps are integrated to the exoskeleton in six distinct location along the circumference of the sphere to distribute clamping load evenly, Fig. 4.1(a). The opposite part of the clamp, the “hook” featured in Fig. 4.1(b), is part of the alignment ring. To assure proper fit between the two hemispheres, the alignment ring compensates for imperfections that resulted from manufacturing. The alignment ring has multiple incisions, Fig. 4.1(c), which can be individually adjusted to accommodate high and low spots along the circumference. 29 [ ‘[lllll[[[][lll[[[[[{[[[[]ll[l Inci5lon cuts (a) (b) (C) Figure 4.1. Representation of the clamping mechanism for the exoskeleton. It is comprised of (a) the clamp (b) the hook and (c) the the alignment tabs 4. 1.2 Window The exoskeleton contains two l2~inch equilateral triangle access windows as seen in Fig. 4.2, located on each hemisphere, diagonal from one other. These windows are intended to provide access for final assembly as well as minor adjustments and maintenance. When it comes to the design of these windows, it is important to keep in mind that the windows have to support the entire weight of the robot at any giving time. Therefore, the material of the window frame and the choice of fusion material for bonding frame to the exoskeleton is critical. In our case we decided to go with a frame that was made from aluminum (Figure 4.2). The choice of fusion material was “Smooth-On PC” [8] industrial style epoxy mix that demonstrated excellent bonding properties between aluminum and carbon fiber. This epoxy was used throughout this project for fusing all components that were attached to the exoskeleton and required to withstand high loads. 30 (a) (b) Figure 4.2. Window frame assembly shown from (a) inside, (b) outside 4.2 Propulsion Mechanism In order to construct the propulsion mechanism of our choice, it was first necessary to investigate the availability and style of DC—motors along with linear motion com- ponents on the market. Some of the important factors to keep in mind during the components selection included simplicity, efficiency, availability, and size, since these factors govern the performance of the propulsion mechanism. 4.2.1 DC Servo Motor The motors selected for the propulsion mechanism are servo disk motors, also referred to as pancake motor (see Figure 4.3), manufactured by Kollmorgen Motion Technol- ogy Group [9] These motors were chosen for a number of reasons. The length of these motors along their axis of rotation is significantly smaller than other motors, and this offers to maximize the length of stroke of the unbalance masses. The mo— tors have ultra—thin armature and their low-inertia design leads to exceptionally high torque-to—inertia ratios. This translates into an acceleration of 3000 RPM in 60 de- grees of revolution . The rotor of the motors were drilled and fitted with a ball-screw 31 hollow thru center Figure 4.3. Pancake Style DC Servo Motor mechanism for translating rotational motion into linear motion. The weight of the individual motors is 251bs and this provides adequate unbalance forces for motion of the sphere. This is inherently an important requirement since the unbalance force generated will directly relate to the robots maneuverability and potential to climb slopes with modest inclinations. To achieve smooth linear motion of the propulsion mechanism, we use three low profile pillow block linear bearings with hollow guide rods for each of the three axes. The guide rods are a product of IKO Corp [10]. The low profile pillow block linear bearings are very compact, lightweight, and readily available on the market. As men- tioned before, the guide-rods are hollow and light weight and this reduces the overall weight of the system without sacrificing the rigidity and stiffness of the mechanism. To achieve the desired performance from each of the axis, it was decided that we would use acme-thread ball-screw mechanism manufactured by Rexroth Star [11], with a ball-nut fixed to the rotor and the screw passing throw its hollow interior of the motor. This can be seen in Fig. 4.4. Since this ball-screw and ball-nut combination has low rolling resistance and high precision, it allows fast, precise, and highly efficient 32 ll' . -“,1-‘ulllwlmtll'g‘wll' [#3 [Jill] Mimi? gfidnlll ‘ Figure 4.4. Assembly of the ball-screw mechanism and motor motion. To achieve the largest length of stroke, we needed to keep all the components that were attached to the body of the motor as close as possible. This means that we needed to make sure that the arrangement of the three guide-rods around the motor was in the tightest configuration (i.e. the closer we can keep the three axes towards the center of the sphere, the longer the length stroke, see Figure 3.6). To comply with this requirement, the guide-rod linear bearings were mounted directly to the pancake motors. This minimized the loss of stroke that would have resulted from moving the guide-rods further away from the motor and thereby moving the motor further away from the center of the exoskeleton. 4.2.2 Alignment During our discussion of the exoskeleton, we mentioned that the exoskeleton will be constructed from carbon fiber composite. This particular manufacturing process required lay-up, and consequently one of the surfaces of the finished product has a certain degree of roughness in comparison to the other surface. This is mainly due to the molding process that is commonly associated with any composite material. In our 33 Figure 4.5. Alignment bearings for guide-rods case it is the inner surface of the exoskeleton that exhibited slight surface variation (:t 2 mm ). Due to the roughness of the surface, additional care had to be taken when aligning the individual guide rods. To prevent any misalignment between the three guide-rods, we decided to use alignment bearings [12] which have at most :1: 5 degree sway (see Fig. 4.5). This flexibility accounts for imperfections and maintains the triangular arrangement of the guide-rods. To keep the guide-rods and the ball-screw in perfect alignment with respect to each other we designed an end-mount fixture featured in Fig. 4.6. The end-mount fixture was also intricate in design, presenting challenges due to the spherical exoskeleton profile, requirement to keep perfect alignment as well as rigidity, while keeping the addition of dead-weight to a minimum. The alignment fixture provides smooth linear motion without binding and thus prevents parts and performance failure. With the guide-rods, ball-screw and motor assembled for each of the three axes, it was crucial that the three axes themselves remained in perfect alignment (perpen- dicular to each other with minimum offset from each other) to prevent collision of the motors during operation and to avoid complicating the dynamics of the model. DC - motor i end—mount Figure 4.6. Assembly of end-mount fixture with unidirectional bearings To achieve this type of alignment, it was necessary to design an alignment jig that keeps the axes in perfect alignment during the assembly of the propulsion mechanism. Some of the additional requirements were that the jig was to hold the linear guide- rods in alignment with respect to each other as well as the motors and the ball-screws assembly. In addition, during the installation of the propulsion mechanism it was also important that the center of the jig was placed at the true center of the spherical robot for perfect alignment and assembly with respect to the two hemispheres. The jig would also have to be designed to have the capability to be disassembled within the sphere. We designed an alignment box, featured in Fig. 4.7, that satisfies all of the above mentioned requirements. Although this process and design requirement may appear trivial, all components which were attached to the end-mounts, such as the unidirectional alignment bearings, ball-screws, guide rods, and pillow block linear bearings, had to be designed to enable disassembly in a confined space and removal of the jig. 35 Figure 4.7. Alignment jig for the propulsion mechanism 4.3 Sensor Selection and Placement The navigation and control of the robot will be accomplished using feedback from a number of sensors. These include the potentiometers, orientation sensor, and the wireless camera. In this section we provide details of the sensors and their placement. 4.3. 1 Potentiometer In order to accurately control the relative position of each motor within the propulsion mechanism, it is necessary to sense the location of the motors along their spokes. For sensing this location, we chose the potentiometers manufactured by SpaceAge Con— trol [13]. The potentiometer is shown in Fig. 4.8(b). The potentiometer mechanism consists of a spool with a cable that is attached to a. rotary potentiometer. Each unit has been mounted at one end of each axis on the end-mounts with the linear cable attached to the motor. This can be seen in Fig. 48(9). The mounting location was chosen to avoid interference of the cable with the other axes. We did not choose a 36 MMU“"""'. WIN!" “““ , maul" ihklilllillll‘i‘l“ min! at (a) (b) Figure 4.8. Potentiometer for motor positioning rotary encoder since such encoders with large number of multiple turns and absolute readings are not available. 4.3.2 Orientation Sensor We investigated two different orientation sensors that could sense the orientation of the robot in the inertial reference frame. Our requirements were to obtain the orientation of the robot in terms of Euler angles and have the capability to sense full 360 degree rotation with minimal drift. The first unit that was considered is the Fiber Optic Gyro (FOG) manufactured by KVH Industries [14]. This is a single axis gyro, which senses rate and provides output in degrees/seconds. When dealing with rate gyros, it is important to realize that they have a tendency to develop drift over time, which results from the constant integration process that is involved in order to obtain angular displacement. This raised a concern, since we would have to continuously make adjustments to our model and re-initialize. Also, since the FOG is only capable of sensing rotation about a single axis, we would need three units 37 ll [1‘9 Figure 4.9. I nertiaCube2 orientation sensor for sensing the three Euler angles. Additionally, the FOG is fairly large and quite expensive. Due to these drawbacks, we decided to use an orientation sensor instead. The two orientation sensors that we considered are manufactured by MicroStrain [15] and Isense [16]. Both sensors have the ability to sense the three Euler angles in a single compact unit based on the gravitational vector and the magnetic North Pole for inertial reference. The output of both sensors is in the form of degrees and their range of sensing is 360 degrees. A salient feature of the I nertiaCube2 made by Isense (Figure 4.9) is that it has the ability to compensate for small changes in the magnetic field due to presence of iron and other magnetic materials. This feature is important for our application since our robot has three large motors which can potentially affect the sensing capabilities of the orientation sensor. The I nertz'aCube2 is capable of measuring full 360-degree angular range in the form of Euler angles and provides good compensation for external interference by in- corporating MEMS magnetometers and accelerometers along with Kalman filtering. Since our orientation sensor utilizes the gravity vector and the magnetic North for 38 Figure 4.10. Orientation levelling device inertial reference, we designed a leveling device that compensates for the mounting surface irregularity. This was accomplished by designing a three point leveling plat- form made entirely from plastic with a spherical profile for attachment to the inner surface of the exoskeleton (Figure 4.10). This assembly was then mounted at the bottom of the lower hemisphere. 4.3.3 Camera For sensing the outside environment we chose a pinhole style color wireless camera with wide-angle view scanning ability and a range of approximately 100 ft (see Fig- ure 4.11) that is distributed by the “Surveillance Center” [17]. The signal from the camera is transmitted directly to channel 59 (433 MHz) on any cable ready television, thus simplifying the task of wireless transmission. The power supply is a standard 9 volt battery. The surveillance camera has two mechanical functions, ability to protrude from the exoskeleton and provide 360-degree surveillance capability. The wireless camera was installed into the reciprocating mechanism, which was mounted to the inner surface of the upper hemisphere. However, before this was 39 Figure 4.11. Wireless Camera achieved several factors were taken into consideration prior to the design of the mech- anism and choice of the camera. For instance, the resolution of the camera transmis- sion is governed by the electrical noise in the surrounding region and the capability of having the antenna properly exposed during operation. It would also be useful to have the capability of transmitting images from inside the robot for quick inspection without disassembly. The camera structure will have to support the entire weight of the robot at any time and therefore the mounting plate and the mechanism had to be designed accordingly. The mechanism also has to house the two servo motors that will be used to control the mechanism. In order to support the total weight of the robot, the mounting block has to be large enough to provide adequate surface area for adhesion between the inner exoskeleton and the mount. With these considerations, the camera mechanism was designed and mounted as shown in Fig. 4.12 4.4 Power Supply In order to generate the maximum unbalance force, we decided to mount the batteries (power supply) to the reciprocating motors. The batteries were formed into three 40 C‘K‘mouw . .. . 1 "" 111111111111"““"i11111111""""' 1111111111“ " ‘ [1111]]1111111111]][1111111111 [[11]. 1111111111] . 111| 1]31 'LW n [1111 111111] [1]]: [1“1‘111111111]l 111 [[1 .111 i1" ’111 111111 R/C servos (a) (b) Figure 4.12. Mounting of camera with reciprocating mechanism identical battery packs generating approximately 22 volts each and conforming to the outside circumference of the motors in shape (Figure 4.13). The batteries that were selected are D size 1.2-volt 7500mAh N IMH batteries produced by Malia Group Corp [18]. These batteries provide excellent current drop characteristics, meaning that they hold their peak performance longer then a conventional battery before showing any significant drop in voltage. They also provide generous operational time, one of the largest in its category as well as fast charge time. In addition, the individual batteries can be arranged in many different configurations as mentioned previously. With the addition of the batteries around the circumference of the motors, the three axes of the propulsion mechanism had to be moved further away from the center of the sphere. This resulted in some loss of stroke length but the additional weight added to the motors due to the battery packs compensated for it by increasing the unbalance force. The battery packs, conforming to the circumference of the motors, were mounted around each motor by means of cylindrical clamps. (See Figure 4.13 for details) 41 21.6 volt battery pack (a) (b) Figure 4.13. Complete motor assembly with guide—rods, ball-screw and battery pack While mounting the battery packs, we had to account for temperature buildup from the batteries and the motors during the operation. Therefore a foam pad was placed in between the motor and the battery packs for air circulation.(See Figure 4.14 for detail) . 4.4. 1 Charging Method In order to quickly recharge our batteries, we chose the AstroFlight [19] 112 Digital Peak charger. This charger has the capability to charge 2—40 cells of NIMH batter- ies at a time as well as peak charge. These turned out to be important features since we desired quick recharging time and our battery packs had a unique size and arrangement. 42 linear guidcrocl Figure 4.14. Foam pad arrangement 4.4.2 Regulating Power The pancake style motors chosen for our application provide great performance char- acteristics and fit our application perfectly. However, in order to control these motors, we had to keep in mind that they have very low inductance. This necessitates ad- ditional inductance coils in order to prevent damage to the power amplifiers. For controlling the power sent to the pancake motors we use power amplifiers with in— ductance coils to regulate the supply from the batteries. Each motor has its own amplifier. The power amplifiers selected for our robot are produced by Advanced Motion Control [20] (Type 12A8). They operate on a standard 80 volt supply and can drive a maximum of 12 Amps. (See Figure 4.15) 4.5 Control and Computing Hardware An important task in fabrication of the robot was to interface the computing hardware with the different sensors and the communication unit for sensing and control of the robot. The sensors included the motor potentiometers and the orientation sensor, 43 inductance coils Figure 4.15. Advanced motion servo power amplifier with inductance coil and the communication link used was a wireless control module. 4.5.1 Pulse to Analog Converter The interfacing of analog input and output signals with the computing hardware was done using A/ D inputs and D/A outputs on the computer board. To integrate the wireless module with the computer, it was necessary to first identify the type of signal the unit was sending. Since the wireless module operates based on pulse width modulated signal, it was necessary to convert it to an analog signal in the range of 0—5 volts. We researched many different possibilities such as using basic stamp programming, and constructing a decoder circuitry, since the setup needed to be small, compact and have common power supply as the wireless receiver unit. To meet all of these requirements we decided to use the circuitry in Fig. 4.16. This particular design is actually a component that came from the R/ C style servos. It is basically an decoder that take the input pulse signal and converts it to an analog signal. These converters are readily available and easy upgraded for this particular setup (i.e. mechanical potentiometer was replaced with an adjustable potentiometer). The results of this 44 Figure 4.16. Circuitry (convert pulse signal to analog) for interfacing the receiver with the computing hardware signal conversion can be seen in Fig. 4.17 It can be seen from Fig. 4.17 that the analog outputs of the two channels are decoupled, which is necessary to provide independent commands (a 1 and a 2) for motion along an arbitrary directions. 4.5.2 Orientation Sensor The interfacing of the orientation sensor with the computing hardware was a much more cumbersome task. The sensor transmits data that includes the three Euler angles, all elements of the rotation matrix, and other information that is not pertinent. It was necessary to extract the data corresponding to the three Euler angles from the data stream and this was accomplished by using a C++ code which was uploaded to the computing hardware. 4.5.3 Computing Hardware The selection of computing hardware involved several factors, such as size, perfor- mance, available channels of inputs and outputs, ease of programming and network— ing. To fulfill this requirements, we decided to use Micro/Sys [21] manufactured 45 1 i ‘2 012 ‘ 4L 1 I if 3' L .013 on ] > w. 73' 1 3 . {—1 i . l a 2 1 ’ ' 1 1 E 1 / 1 ] < 1 1 , . ] . 11 ' 011 i 1 1 1 '1 f 05 0121] ] O!5L_l‘6 15 20 25 3b _—§5 Time (sec) Figure 4.17. Representation of channel 1 (a 1) and 2 (a 2) output in the form of a analog signal PC104 Embedded computer module (Figure 4.18). The SBCO486 is an advanced, highly integrated embedded PC with a small package configuration of 5 inches by 5 inches. In its category, it provides a large memory capacity of up to 64MB of RAM and 72MB of flash. In addition to a large memory, the SBC0486 has an 8-channel A/ D, 4-channel D / A, one ethernet port, and a serial and a parallel port. 4.5.4 Control Logic Schematic The control logic schematic for the spherical mobile robot is shown in the diagram in Fig. 4.19. The wireless communication module chosen was a Airtronics [22] R/ C style 6—channel remote and a receiver. Of the 6 channels, 2 channels are dedicated for the propulsion mechanism for forward-backward (north-south) and left-right (east- west) motion, another 2 channels are dedicated for the camera structure (up-down and turn), and the remaining two channels were left for degrees of freedom to used 46 .3. ' '4 "is f ethernet 9' Figure 4.18. PC—104 embedded control module in the future. The main reason for choosing this style of communication device had to do with its low frequency (72 MHz) of operation. The reason for choosing a device with low frequency is that the wave length associated with lower frequency is much larger, 13.2 ft in this case. In order to achieve proper communication through an object, the wavelength should be 4 times larger then the object. With a wavelength of 13.2 ft, it is possible to communicate through the exoskeleton of our robot which is approximately 3 ft in diameter. A communication device that operates at a higher frequency, 900 Mhz for example, has a wavelength of 1.05 ft and can not communicate through the exoskeleton without an external antenna. Although, consideration was given towards mounting a flat external antenna to the exoskeleton with a 900 MHz wireless module, we abandoned the idea due to problems that may arise from static electricity generated when the carbon fiber exoskeleton rolls around. The static can causing interference in communication resulting in data loss. An R/ C receiver with a control module operating at 72 Mhz, thus proved to be a simple solution towards a complicated problem. 47 Wireless 20h Wireless communication module Wireless receiver Camera Orientation Sensor —--_d- l Wireless transmitter Potentiometer(1)] [Potentiometermfl [Potentiometer (3) Figure 4.19. Control logic schematic diagram 48 SMR camera V V PW'>ANLG PW'>ANLG Power amplifier Motor ............ >1 : (1) (1 ) V V 5 Power amplifier Motor ~---' 5" (2) ['I" (2) PC 104 ”.--.-1 Embedded Control Module Power amplifier Motor 1- --------- 3 (a) """ > (31 CHAPTER 5 Control System 5. 1 Operational Scenario Based on the parts and components discussed in Chapter 4, we envision the robot to function in the following manner. The robot will be initially at rest in its neu— tral position with the camera on t0p. At this time, calibration would be performed to initialize the orientation and the navigation reference coordinate frame. With the orientation reference captured, the camera will be retracted and the propulsion mechanism activated to maintain balance. Next, the operator can control the robot to move it in any direction in the horizontal plane. The operator will provide input for direction of travel via the two channels dedicated for the propulsion mechanism as mentioned earlier in section 4.5.4. These signals will be received by the wireless receiver in Fig. 4.19 and converted to analog signal by the circuit shown earlier in Fig. 4.16. The analog signals from the converter along with analog signals from the orientation sensor and the three potentiometers will be read by the PC 104 embedded control module. A program (to be written) residing in the PC 104 will use the sensed data to calculate appropriate commands for the three motors. The command signals will be converted to power signals by power amplifiers shown earlier in Fig. 4.15. In this scenario, the operator will be a part of the control loop deciding the trajectory 49 of the robot. In the future, the robot will have a greater level of autonomy and will be able to navigate between two arbitrary configurations on its own accord. This will be particulary useful in situations where the robot will be commanded to move from one Cartesian location to another and it will autonomously compute the trajectory such that it has the right orientation (camera on top) when it reaches the desired destination. In this chapter we will concentrate on the development of a controller for a pro- lusion mechanism that will give us the desired control. As mentioned previously in Chapter 3, where the propulsion mechanism was fixed to the inner exoskeleton and mobility was achieved by shifting the motors along the three spokes which generates an unbalance force. However in order to accurately control and generate the correct magnitude and direction of unbalance force, we have designed an adaptive controller to accurately control the movement of the motors. 5.2 Adaptive Identification To design an adaptive controller it is first necessary to identify the dynamic parame- ters of the propulsion mechanism in order to provide faster error convergence during the adaptation process. Since, we have symmetry in our mechanism, (i.e the three axes are of the same nature) it is sufficient to discuss identification of the parameters corresponding to one of the three axes. Each axis of the propulsion mechanism is com- prised of a single motor constrained to move along an axis by a ball-screw and three guide-rods (See Figure 5.1). A linear potentiometer is used for tracking the motor position along the axis and providing feedback. We used the MatLab Simulink envi- ronment for designing the adaptive controller with indirect self tuning algorithm [23] for adaptive identification. We begin by making some assumptions prior to identifying the dynamics of the 50 Figure 5.1. Setup for the controller design propulsion mechanism. For each axis of the propulsion mechanism, we define the input and output to be the current sent to the motor and the position of the unbalance mass, respectively. We assume a linear relationship between the input and the output and ignore non-linearities present in the system, such as, friction in the guide—rods and ball-screw. The first step of the identification process is to determine the order of the plant. To determine this, we consider the mathematical model of DC motors, given below T = Kxi=(Jé+cé) (5.1) :1: : A0 (5.2) In Equations 5.1 and 5.2, T represents the torque of the motor, K is the motor constant, J is the inertia of the motor, C is the viscous damping, )1 is the pitch of the 51 ball-screw, 2' is the driving current sent to the motor, :1: represents the motor position, and 19 is the rotational displacement of the motor. From the above equations we can model the linear relationship between the input (2') and the output (2:) by second order transfer function. a B G18) = mm (5.3) where, a = A/J, b = C/J, c = 0 (as expected from Eq. 5.1 and 5.2), are dynamic parameters that need to be identified. To determine the unknown parameters a, b, of the plant, it is necessary to use the adaptation process. This was accomplished in MatLab Simulink environment, where a square wave with amplitude of 5 amps with a period of 2 seconds was sent to the horizontally orientated axis of travel as input and the output was observed by the adaptation process (indirect self tuning algorithm [23]). The results of the adaptation process is shown in Figures 5.2 and 5.3. From these figures it is clear that the time trace of the dynamic parameters converge to relatively constant values. However, since the system is not quite second-order, we experienced some minor fluctuations. From Fig. 5.3(d) it can be seen that the experimental output from the potentiometer closely matches the output from Simulink, once again with some fluctuations. Hence, for the horizontal orientation of the axis of travel, the dynamic parameters a, b, c, were estimated to be a = -3.5, b = 1.58, c = 0 (5.4) As mentioned previously these parameters will serve as a starting point of a set of 52 . l 1.5 , '1 l I 1 ‘. i 1 1 + a . > 2 3 0'5 1 l ' 0 O . . ' , 1 3[ -0.5 1 0 20 40 60 80 100 120 0 20 40 60 80 100 1 20 Time (sec) Time (sec) (3) (b) Figure 5.2. (a) and (b) represent the time trace and convergence of dynamic param- eters which were observed during the adaptive identification for parameters a and b initial parameters of the plant in order to provide faster adaptive estimation. After adaptive identification of the plant we designed a controller using Diophan- tine’s equations Astrom [23]. The adaptive identification algorithm is ideally suited for integration with the controller for implementation of indirect adaptive control. For controller design using Diophantine’s equations, we first define the reference model or the desired closed-loop transfer function. For our system, the reference model was described by the fourth-order transfer function given in Eq. 5.5. The reason why we chose a fourth order system has to do with trade-off between simplicity and performance. A second-order model resulted in the feedforward and feedback fil- ters to have relative order zero and this did not provide the necessary attenuation of high—frequency signals. The fourth-order transfer function provided a satisfactory performance without loss of simplicity. 53 3005:1‘ '.‘,i~ 1 "'. 5 ’1 ‘. 11. 11 11 l’ 11 l l '1 l1 '9 °-°4"‘1 [1 [111‘ ‘].~'11] l]' .1 ’ .1 2 ' j 1. ] i i "I ll l] . _l [ [.11 . 1 .11. 120.02» I.]H|[],'][;] 5"! “A“, a) 1,3,}.1-3; ,; .1 €01;[]l[]"111f]1111l‘ l‘l] 30.02-1'1‘1‘1 [l]' ”l" illili '- l l] '1]. [3‘ i ll l 1 . ’c‘ 1‘1‘11'1.‘ .1[ l1" it'lztm .13 13°“ 1 .. ] .1 1,1 1.: 1: 1' '1 .s 1; v... 3,00,] 1 ,1 1 . .' 1 1 1 , r *3 -—- Experimental output ‘ l = E -0.08;' ——|dentitied output l I [ '5'5' ' _"60 ”... " *"7."*”" 73‘“ '50 Time(sec) (d) Figure 5.3. (c) represents the time trace and convergence that that was captured during the adaptive identification for parameter c, (d) represents the comparison between the experimental output and reference potentiometer 2 2 P7) LU Bm Tm = , = — 5.5 (8) (s + '7')2(52 + ZCLUS + w?) Am ( ) In Eq. 5.5 where, w is the natural frequency and 7 is the tuning parameter. These two parameters will govern the speed and response time, while C, the damping coefficient, will control the percent overshoot. To solve for the forward and feedback compensators (shown in Fig 5.4) of the closed-loop model, it is necessary to solve Diophantine’s equations. From Astrom [23] we have the following set of equations 4,4,, = AR+BS (5.6) AoBm : TB where, T, R, S, represent the numerator and denominator polynomials of the filters 54 l l adaptive « estimation ant pl sensor \ output a filter Figure 5.4. Block diagram of the closed-loop model that will be used in the closed-loop model presented in Fig. 5.4. To design the two filters in the feed-forward and feedback-loops, we substitute for A and B from Eq. 5.3 and Am and B,,, from Eq. 5.5 into Eq. 5.6. This yields (.92 + bs + c)(s2 + ms + To) + 0(808 + 51) = (s + ’y)2(s2 + 20.23 + w?) (5 7) toa = 721.122 where r1, 7‘0, 30, 31 and to represent parameters of the unknown polynomials, T, R, and 3. To solve for these parameters we equate both sides of Eq. 5.7, which results in the following 55 Close Loop Output Controller Output A 2 . - F ~ v33 .9 s 4' LO . \' 1 + ’6 2» 3 e g a v 0 4.1 5 5° .2: 5 8 3 o . o. -2'. E '1 8 co -4. 0 2 . . . i. _. . . ..__. 0 4 8 12 16 20 o"- ""4 H 3 12 16 20 Time (sec) Time (sec) (23) (b) Figure 5.5. (a) represents the closed-loop output in simulink, (1)) represents the current sent to the motor with C = 0.9, w = 20 and '1' = 2.5 r1227—b+2Cw b2 — 21.0.; — 2127 — c +1.)? + 47c... + 72 7'0 .... $14.3 + 21% + 2bc — bw2 — 4b74w — b7? — 2ch — 2m + 2w? + 272%) 31 = fi(—cb2 + 2bcwC + 26117 + 02 — @122 — 40’7wC - C72 + 7%?) 2 2 u} to: a (58) Since we desired that the motors perform with minimal overshoot and fast response time, we needed to chose appropriate 7, w, and C values. We chose 7 = 2.5, C = 0.9, and w = 20 based on several experimental trials (i.e. several values were chosen at first and the corresponding result was observed). The numerical values of the parameters in Eq. 5.8 can be obtained by substituting the plant parameter values in Eq. 5.4 with the 7, w, and C values into Eq. 5.8. Having solved for all the parameters, the closed-loop control model was assembled 56 Experimental Setup Output 7*_ 7 '— ‘ "_'_"T"""" _._Y_._____ .7 _ general position (range of -5 to +5 units) 0 _1 d A _ __.-- - _ - ...- --.-..L-.- _ _ - -- ---.-.x'--. __.-__- 0 5 10 15 20 25 30 35 40 Time (sec) Figure 5.6. Represents the controller performance with implementation of the de- signed controller at a pulse input of unit amplitude and 5-second period 57 and tested in Simulink. The results of simulation, for a square wave input of amplitude 2 units and period 10 seconds, are shown in Fig. 5.5. From Fig. 5.5(a) we can see that the response time and percentage overshoot is satisfactory. In addition to the response time and percentage overshoot, we had make sure that the motor current commanded by the controller was not greater than 5 amps, so as not to damage the motor. In Fig. 5.5(b), it can be seen that the current always remained within its allowable range of i 5 amps. The above discussion pertains to Matlab simulations. The results in Fig. 5.6 pertain to experimental results. The objective of the experiments was to demonstrate close match between simulation and experimental results. In our experiments, the motor was commanded with a square wave signal of unit amplitude and period of 5 seconds. The results Fig. 5.6 indicated a 10 percent steady state error but reasonably good response time and no overshoot. The results in both Figs. 5.5 and 5.6 were obtained with the motor axis fixed in its horizontal orientation. To verify the efficacy of the adaptive controller we changed the orientation of the axis to three different values and captured the step response of the motor. Figures 5.7,and 5.8, 5.9 show the step response of the motor with its axis in orientations 0 degrees, 45 degrees, and 90 degrees, respectively, with the horizontal. The results indicate a consistent steady state error in the absence of overshoot, as noticed in earlier experimental results in Fig. 5.6. This is most likely due to friction in the guide rods and ball-screw. The behavior of the system is however quite similar for the three different orientations of the motor axis and this leads us to believe that the adaptive controller is able to identify the correct mathematical model for different orientations. 58 o L I“ 01 F 0.5. \ - . 2 - 1 a 1 s g 1 1- \ ‘1 215 E \ g 31.5 \ , < 1 . 1 1 2 , .] O 5 1 . , . . , . 2.5 . 0 _________j 3 L A i A; i x 0‘5 1 i r 1 i 4m 0 2 4 6 8 10 12 14 0 2 4 6 8 10 12 14 Time (sec) Time (sec) (8) (b) Figure 5.7. Reciprocating motion with the axis in horizontal position 05 fi j I 1 ‘F 3 1 I I Y I j Y T 0 ,_1__._._-_._..._._M 2 5 . 05 » . 2 a: l a) I / I a i 1 ~ :3 ‘3 31.5 E 1.5 . \ _ g 1 1 . . 2 \\ ~ 2 5 » \ q 0 5 ~ . x 3 A A A l l 1 o 4 L A A; L L L 1 0 2 4 6 8 10 12 14 0 1 2 3 4 5 6 7 8 Time (sec) Time (sec) (8) (b) Figure 5.8. Reciprocating motion with the axis in vertical position 59 W W T v f 3 0.5 _ ‘ \ < 2.5 \\ 2 1 ‘1 1 o 0 3 i g 1.5 7115 \ . a E \ E 1 2 P 1“ 05 \ . 2.5 \ ‘ o 1 3 A A A 1 0.5 o 6 8 1o 12 14 0 Time (sec) (8) 60 5 6 7 8 9 Time (sec) (b) Figure 5.9. Reciprocating motion with the axis tilted at 45 degrees 10 CHAPTER 6 Concluding Remarks and Future Research Directions The spherical mobile robot platform presented in this work offers new directions and opportunities for research in the field of mobile robots. The problems of motion plan- ning and feedback control of the rolling sphere has been extensively studied by many researchers. The algorithm presented in Chapter 2, provides a method for reconfigura- tion of the sphere in an Open-loop fashion and although a closed-loop reconfiguration algorithm was recently developed by Das and Mukherjee [7], there is sc0pe for im- proved control designs. For example, the algorithm by Das and Mukherjee [7] uses a discontinuous control strategy for feedback stabilization based on switched inputs and there exists a need for development of a smooth feedback stabilization strategy that will lend itself well for practical implementation. Another important and fundamentally challenging problem is related to the con- trol of the sphere at the dynamic level. Our research on control design has been based on kinematic models of the sphere and implementation has been planned based on a static model. The problem of controlling the sphere at the dynamic level will involve complete formulation of the dynamics of the robot and its propulsion mechanism, including dynamic interaction of the reciprocating masses, and obtaining closed-form 61 Upper hemisphere (exoskeleton) Aluminum "//////////////////////////////. Lower Hemisphere (exoskeleton) Figure 6.1. Alignment ring integration into the exoskeleton solutions for the masses that will enable the robot to track arbitrary desired trajec- tories on the ground. The spherical mobile robot designed and developed as part of this work represents an original effort towards development of a new platform. During design and fabrica- tion stage of any new platform, certain items cannot be foreseen and as such result in setbacks. Then again, these setbacks provide valuable experience that lead towards new ideas and concepts that can be used to improve future prototypes. Some of these ideas include integration of the hemisphere alignment ring with the exoskeleton dur- ing fabrication, end-mount fabrication and attachment using different materials and procedures, design of a exoskeleton with embedded wireless antenna to accommodate a more SOphisticated communication device, composite material selection and use of a honeycomb structure for weight reduction. 62 6. 1 Alignment By implementing an alignment ring as shown in Fig. 6.1 to the exoskeleton during the fabrication process, would significantly improve the assembly of the robot, as well as quicken the fabrication. Additionally, it would also improve the structural integrity if the robots, and simplify the alignment process which was discussed earlier in section 4.1.1, where additional tuning was necessary due to the roughness which has result from the exoskeleton fabrication. 6.2 End-mount As mentioned before in the section 4.2.2 the end-mount alignment can be very cum- bersome and requires many intricate steps to achieve. Therefore, if the end-mounts were to be integrated during the fabrication of the exoskeleton (precise placement of the end-mount during lay-up), the need for alignment bearing (Figure 4.5) or the alignment box shown in Fig. 4.7 Section 4.2.2 would not be necessary. Therefore, some of the steps that were required to integrate the propulsion mechanism to the exoskeleton would be eliminated. From Figures 6.2(a) and (b), one can see the cum- bersome task involved in precise placement of the propulsion mechanism. By adopting this method, it would also be possible to expedite installation and achieve virtually perfect alignment. 6.2. 1 Exoskeleton In Section 4.1, the thickness of the shell was chosen to be in the range of 0.25 of an inch. This dimension was purely a safety factor, since it was difficult to predict how stiff the overall robot structure would be in its final assembly. The thickness of the exoskeleton could probably be reduced by additional 0.0625 of an inch, while still 63 (a) (b) Figure 6.2. Steps taken during the propulsion mechanism installation, (a) shows the alignment box with the first axis, (b) shows the first axis installed, and the beginning of the axis two and three installation being able to incorporate the newly proposed alignment ring (Figure 6.1). This would be permissible, since the axes of the propulsion mechanism provide significant rigidity to the overall robot structure. Some of the benefits includes, reduced weight of the exoskeleton, and lowered cost of materials. Lastly, by having a better understanding of the structural stiffness, we can also experiment with different composite materials and fabrics to further improve the exoskeleton weight and stiffness. 6.3 Communication In the discussion of the type of communication device used for our robot (Sec- tion 4.5.4), we identified specific reasons for choosing the R/C 72 MHz 6 channel wireless unit. One of the reasons for choosing a low frequency wireless module was the size of the exoskeleton and the interference caused by an external antenna required for high frequency modules. Even though, we mentioned that mounting and external 64 antenna to the exoskeleton would create static interference, we feel that additional research needs to be performed in order to solve this problem. This is mainly due to the fact that a more sophisticated device such as a PCMCIA card operating at 900 MHz or even 2.4 GHz (which can be added to the embedded on board computer) can significantly improve the clarity of signal as well as transfer more information and vi- tal data, such as operational temperatures of the motors, power supply levels, control algorithms, and any other critical data that effects the performance of the robot. One possible solution would be implementing the antenna into the exoskeleton structure instead of the outside. We could also investigate the possibility of designing an RF signal-booster, which would further enhance signal transmission. 65 BIBLIOGRAPHY [1] A. Halme, T. Schonberg, and Y. Wang, “Motion control of a spherical mobile robot,” Proc. AMC’96-MIE, 1996. [2] A. Bicchi, A. Balluchi, D. Prattichizzo, and A. Gorelli, “Introducing the spheri- cal: An experimental test bed for research and teaching in nonholonomy,” Proc. IEEE International Conference on Robotics and Automation, pp. 2620—2625, 1997. [3] A. Koshiyama and K. Yamafuji, “Design and control of all-direction steering-type mobile robot,” International Journal of Robotics Research, vol. 12, pp. 411—419, October 1993. [4] H. Brown and Y. Xu, “A single-wheel gyroscopically stabilized robot,” Proc. IEEE International Conference on Robotics and Automation, vol. 4, no. 3, pp. 34—44, 1996. [5] R. Mukherjee, M. A. Minor, and .I. T. Purkrushpan, “Motion planning for a spherical mobile robot: Revisiting the classical ball-plate problem,” Journal of Dynamic Systems, Measurement, and Control, vol. 124, pp. 502—511, December 2002. [6] S. Bhattacharya and S. K. Agrawal, “Spherical rolling robot: A design and motion planning studie,” Proc. IEEE International Conference on Robotics and Automation, vol. 16, pp. 835—839, December 2000. [7] T. Das and R. Mukherjee, “Exponential stabilization of the rolling sphere,” to appear in Automatica. [8] www.smooth-on.com. Smooth-On Easton, PA. [9] www.motionvillagecom. Motion Village, Global. [10] www.ikont.co.jp. Nippon Thompson Ind., Tokyo, JP. 66 [11] wwwl.rexroth-star.com. Rexroth Bosh Group, Global. [12] www.sdp-si.com. Stock Drive Products/ Sterling Instruments, Global. [13] www.spaceagecontrol.com. Spage Age Conrol, Palmdal, CA. [14] www.kvh.com. KVH Industries, Global. [15] www.microstrain.com. MicroStrain Williston, VT. [16] www.isense.com. InterSense Inc., Global. [17] www.surveillance—video.com. [18] www.mahaenergy.com. Maha, La Verne, CA. [19] www.astroflight.com. Astro Flight Inc., Marina Del Rey, CA. [20] www.a—m-c.com. Advance Motion Control, Camarillo, CA. [21] www.embeddedsys.com. Micro/Sys Inc., Motrose, CA. [22] www.airtronics.net. Airtronics Inc., Global. [23] K. Astrom and Wittenmark, Adaptive Control. Addison-Wesley. 67 I[[1]]Jfll][l[l]][ll[I[]]l]][ll