Fuzzy Based Robust Controller Design for Robotic Two-Link Manipulator

Similar documents
3- DOF Scara type Robot Manipulator using Mamdani Based Fuzzy Controller

DYNAMIC MODEL FOR AN ARTICULATED MANIPULATOR. Luis Arturo Soriano, Jose de Jesus Rubio, Salvador Rodriguez and Cesar Torres

GAIN SCHEDULING CONTROL WITH MULTI-LOOP PID FOR 2- DOF ARM ROBOT TRAJECTORY CONTROL

Introduction to Robotics

Dynamics. Basilio Bona. Semester 1, DAUIN Politecnico di Torino. B. Bona (DAUIN) Dynamics Semester 1, / 18

FUZZY LOGIC CONTROL Vs. CONVENTIONAL PID CONTROL OF AN INVERTED PENDULUM ROBOT

Mechanical Engineering Department - University of São Paulo at São Carlos, São Carlos, SP, , Brazil

Gain Scheduling Control with Multi-loop PID for 2-DOF Arm Robot Trajectory Control

Design On-Line Tunable Gain Artificial Nonlinear Controller

Case Study: The Pelican Prototype Robot

Design Artificial Nonlinear Controller Based on Computed Torque like Controller with Tunable Gain

RamchandraBhosale, Bindu R (Electrical Department, Fr.CRIT,Navi Mumbai,India)

Adaptive Robust Tracking Control of Robot Manipulators in the Task-space under Uncertainties

Lecture Schedule Week Date Lecture (M: 2:05p-3:50, 50-N202)

Robot Dynamics II: Trajectories & Motion

Exponential Controller for Robot Manipulators

(W: 12:05-1:50, 50-N202)

Robust Control of Robot Manipulator by Model Based Disturbance Attenuation

Artificial Intelligence & Neuro Cognitive Systems Fakultät für Informatik. Robot Dynamics. Dr.-Ing. John Nassour J.

Multibody simulation

Nonlinear PD Controllers with Gravity Compensation for Robot Manipulators

Introduction to centralized control

Dynamics. describe the relationship between the joint actuator torques and the motion of the structure important role for

Index Terms Magnetic Levitation System, Interval type-2 fuzzy logic controller, Self tuning type-2 fuzzy controller.

In this section of notes, we look at the calculation of forces and torques for a manipulator in two settings:

Lecture Note 12: Dynamics of Open Chains: Lagrangian Formulation

General procedure for formulation of robot dynamics STEP 1 STEP 3. Module 9 : Robot Dynamics & controls

Robot Manipulator Control. Hesheng Wang Dept. of Automation

Robotics. Dynamics. Marc Toussaint U Stuttgart

Design and Comparison of Different Controllers to Stabilize a Rotary Inverted Pendulum

COMPARISON OF DAMPING PERFORMANCE OF CONVENTIONAL AND NEURO FUZZY BASED POWER SYSTEM STABILIZERS APPLIED IN MULTI MACHINE POWER SYSTEMS

Intelligent Systems and Control Prof. Laxmidhar Behera Indian Institute of Technology, Kanpur

Introduction to centralized control

CONTROL OF ROBOT CAMERA SYSTEM WITH ACTUATOR S DYNAMICS TO TRACK MOVING OBJECT

Design of Decentralized Fuzzy Controllers for Quadruple tank Process

112 Dynamics. Example 5-3

Video 1.1 Vijay Kumar and Ani Hsieh

Robotics. Dynamics. University of Stuttgart Winter 2018/19

NMT EE 589 & UNM ME 482/582 ROBOT ENGINEERING. Dr. Stephen Bruder NMT EE 589 & UNM ME 482/582

CHAPTER 7 MODELING AND CONTROL OF SPHERICAL TANK LEVEL PROCESS 7.1 INTRODUCTION

Trajectory-tracking control of a planar 3-RRR parallel manipulator

A New Approach to Control of Robot

The Dynamics of Fixed Base and Free-Floating Robotic Manipulator

MANAGEMENT FLOW CONTROL ROTOR INDUCTION MACHINE USING FUZZY REGULATORS

Lecture «Robot Dynamics»: Dynamics 2

Simulation of joint position response of 60 kg payload 4-Axes SCARA configuration manipulator taking dynamical effects into consideration

q 1 F m d p q 2 Figure 1: An automated crane with the relevant kinematic and dynamic definitions.

A Sliding Mode Controller Using Neural Networks for Robot Manipulator

DYNAMICS OF SERIAL ROBOTIC MANIPULATORS

MEM04: Rotary Inverted Pendulum

Balancing of an Inverted Pendulum with a SCARA Robot

DESIGN OF POWER SYSTEM STABILIZER USING FUZZY BASED SLIDING MODE CONTROL TECHNIQUE

Adaptive Fuzzy PID For The Control Of Ball And Beam System

The Design of Sliding Mode Controller with Perturbation Estimator Using Observer-Based Fuzzy Adaptive Network

Fuzzy Compensation for Nonlinear Friction in a Hard Drive

CHAPTER 5 FREQUENCY STABILIZATION USING SUPERVISORY EXPERT FUZZY CONTROLLER

Performance Of Power System Stabilizerusing Fuzzy Logic Controller

Stable Limit Cycle Generation for Underactuated Mechanical Systems, Application: Inertia Wheel Inverted Pendulum

ENGG 5402 Course Project: Simulation of PUMA 560 Manipulator

Virtual Passive Controller for Robot Systems Using Joint Torque Sensors

Models for Inexact Reasoning. Fuzzy Logic Lesson 8 Fuzzy Controllers. Master in Computational Logic Department of Artificial Intelligence

Lecture Note 12: Dynamics of Open Chains: Lagrangian Formulation

ADAPTIVE NEURAL NETWORK CONTROL OF MECHATRONICS OBJECTS

In most robotic applications the goal is to find a multi-body dynamics description formulated

Positioning Control of One Link Arm with Parametric Uncertainty using Quantitative Feedback Theory

DYNAMICS OF PARALLEL MANIPULATOR

Feedback Control of Linear SISO systems. Process Dynamics and Control

Multibody simulation

Reduced Size Rule Set Based Fuzzy Logic Dual Input Power System Stabilizer

Fuzzy Logic Control for Half Car Suspension System Using Matlab

Lecture «Robot Dynamics»: Dynamics and Control

Trigonometric Saturated Controller for Robot Manipulators

ROBOTICS Laboratory Problem 02

Interactions Between Two Non-Stationary Pendulums

Planar Multi-body Dynamics of a Tracked Vehicle using Imaginary Wheel Model for Tracks

Linköping University Electronic Press

Video 8.1 Vijay Kumar. Property of University of Pennsylvania, Vijay Kumar

Rigid Manipulator Control

Robotics I. Classroom Test November 21, 2014

A Study on Performance of Fuzzy And Fuzyy Model Reference Learning Pss In Presence of Interaction Between Lfc and avr Loops

Neural Network Sliding-Mode-PID Controller Design for Electrically Driven Robot Manipulators

MSMS Matlab Problem 02

Advanced Robotic Manipulation

Dynamic Modeling of Rotary Double Inverted Pendulum Using Classical Mechanics

A Sliding Mode Control based on Nonlinear Disturbance Observer for the Mobile Manipulator

Robotics & Automation. Lecture 25. Dynamics of Constrained Systems, Dynamic Control. John T. Wen. April 26, 2007

NonlinearControlofpHSystemforChangeOverTitrationCurve

Control of constrained spatial three-link flexible manipulators

Fuzzy modeling and control of rotary inverted pendulum system using LQR technique

Dynamic Model of Space Robot Manipulator

INSTRUCTIONS TO CANDIDATES:

Video 5.1 Vijay Kumar and Ani Hsieh

FUZZY LOGIC BASED ADAPTATION MECHANISM FOR ADAPTIVE LUENBERGER OBSERVER SENSORLESS DIRECT TORQUE CONTROL OF INDUCTION MOTOR

Objectives. Fundamentals of Dynamics: Module 9 : Robot Dynamics & controls. Lecture 31 : Robot dynamics equation (LE & NE methods) and examples

MSMS Basilio Bona DAUIN PoliTo

Skyhook Surface Sliding Mode Control on Semi-Active Vehicle Suspension System for Ride Comfort Enhancement

Predictive Cascade Control of DC Motor

Emulation of an Animal Limb with Two Degrees of Freedom using HIL

Robotics I. Test November 29, 2013

A New Improvement of Conventional PI/PD Controllers for Load Frequency Control With Scaled Fuzzy Controller

Transcription:

Abstract Fuzzy Based Robust Controller Design for Robotic Two-Link Manipulator N. Selvaganesan 1 Prabhu Jude Rajendran 2 S.Renganathan 3 1 Department of Instrumentation Engineering, Madras Institute of Technology, Anna University, Chennai 600 044. Tel: +91-94440-30231, Fax: +91-44-22232403, E-mail: n_selvag@yahoo.com 2 Infosys Technologies Limited, 138,Old Mahabalipuram Road, Sholinganallur, Chennai 600 119. Tel: +91-98414-42011, Fax: +91-44-24500390, E-mail: prabhu_jude@yahoo.com 3 Bharath Institute of Higher Education and Research, Chennai 600 077. Tel: +91-44-22303623, Fax: +91-44-22293886, E-mail: srenga@vsnl.net Accurate position control of robot arms has always been a very complicated problem as the robotic manipulators are generally subjected to both structured and unstructured uncertainties. These uncertainties continue to exist even in a well-structured setting. Hence it becomes inevitable to identify and overcome the adverse effects that contribute towards the uncertainties in the positioning of the robot arms. This paper attempts to design a fuzzy logic controller for controlling the position of the arms of a two-link manipulators taking into account the disturbances caused by inertial loading, coupling reaction forces between joints (Coriolis and centrifugal), and gravity loading effects. The design for the position control incorporates a torque computation block that compensates for the disturbances caused by these effects and a fuzzy logic controller. The simulation results for the position control of a two-link robotic manipulator using the compensated fuzzy logic model were then compared with the results obtained using an optimized PID controller. The results clearly indicated that the performance of the compensated fuzzy logic controller was much better than the optimized PID controller even for nonlinear disturbances. Keywords: Manipulator, Robot Dynamics, Lagrange-Euler formulation Introduction The robotic manipulators are highly coupled, nonlinear and time-varying systems that are generally subjected to both structured and unstructured uncertainties. This makes the accurate position control of the robotic arms a very complicated and difficult engineering problem. With the use of the robots in the medical and sensitive industrial applications gaining popularity, the precision position control of the robot arms has turned into an inevitable requirement. This demand for the accurate position control calls for a method that compensates by and large for the adverse effects of the uncertainties on the positioning of the robot arms. The inertia, gravity and Coriolis effect have been identified as the major contributors for the inaccuracy in the positioning of the robot arms. Hence an accurate controller invariably has to overcome these adverse effects by including some kind of compensation logic in the design. Approach and Methods Robot Dynamics In order to develop a scheme for controlling the motion of a manipulator it is necessary to develop techniques for representing the position of the arm at different points of time [1]. Robot dynamics basically deals with mathematical formulations of the equations of robot arm motion. The dynamic equations of motion of a manipulator are a set of mathematical equations describing the dynamic behavior of the manipulator. Such equations of motion are useful for computer simulation of the robot arm motion, design of suitable control equations of a robot arm and evaluation of kinematic design and structure of a robot arm. The actual dynamic model can be obtained from known physical laws such as the laws of Newtonian and Lagrangian mechanics. L-E Formulation The general motion equations of a manipulator can conveniently be expressed through the direct application of the Lagrange Euler (L-E) formulation to non - conservative systems. The L-E equation is given as follows d / dt ( L / q i ) - L / q i = τ i i = 1,2,3, n where L = Lagrangian function = kinetic energy K - potential energy P K = total kinetic energy of the robot arm P = total potential energy of the robot arm q i = generalized coordinates of the robot arm q i = first time derivative of the generalized coordinate, q i τ i = generalized force (or torque) applied to the system at joint i to drive link i From the above Lagrange-Euler equation, one is required to properly choose a set of generalized coordinates to describe the system. Generalized coordinates are used as a 102

convenient set of coordinates that completely describe the location (position and orientation) of a system with respect to a reference coordinate frame. For a simple manipulator with rotary-prismatic joints, various sets of generalized positions of the joints are readily available because they can be measured by potentiometers or encoders or other sensing devices, they provide a natural correspondence with the generalized coordinates. Thus, in the case of a rotary joint, q i i, the joint angle span of the joint. Motion Equations of a manipulator The derivation of equations of motion of a manipulator requires the computation of the total kinetic energy and the total potential energy of the manipulator. Kinetic Energy of the manipulator If dk i is the kinetic energy of a particle with differential mass dm in link i; then dk i = ½(x i 2 + y i 2 + z i 2 ) dm = ½ trace (v i v T i ) dm =½ Tr (v i v T i ) dm where v i = ( j U i j q j ) i r i j varies from 1 to i U i j = 0 A j-1 Q j-1 j A i for j <= i 0 for j > i Q j is a 4 x 4 matrix, given as [(0 1 0 0), (1 0 0 0), (0 0 0 0), (0 0 0 0)] for revolute joint. (1) i r i = fixed point at rest in a link i w.r.t homogeneous coordinates of the i th link coordinate i A j = homogeneous coordinate transformation matrix which relates j th coordinate frame to the i th coordinate frame. The total kinetic energy of all the links can be found out by integrating dk i over all the links. The total kinetic energy K of a robot arm after integration will be found as K = dk i = ½ Tr [ p r U ip ( J i ) U T ir q p q r ) ] p, r varies from 1 to i (2) where J i is the inertia of all the points on link i given by J i = i r i i r T i dm Potential Energy of the Manipulator Let P i be the i th link s potential energy. The P i is given by P i = -m i g ( 0 A i i i ) i = 1, 2,.. n where 0 A i is the coordinate transformation matrix that relates the i th coordinate frame to the base coordination frame i i is the fixed point in the i th link expressed in homogenous coordinates with respect to the i th link coordinate frame. The total potential energy P of the robot manipulator is found out by integrating P i over all the links. P = i P i = i -m i g ( 0 A i i i ). i varies from 1 to n (3) where g = (0, 0, - g, 0) and g is the gravitational constant. (g = 9.8062 m/sec 2 ) Formulation for the Two-link manipulator From equations (2) and (3), the Lagrangian function L = K-P is given by L = ½ i j k [ Tr (U ij J i U T ik ) q j q k ] + i i m i g ( 0 A i i ) i varies from 1 to n, j, k varies from 1 to i Applying the Lagrange-Euler formulation to the Lagrangian function, the generalized torque for joint i actuator to drive the i th link of the manipulator, τ i = j k Tr (U jk J j U T ji ) q k + j k m Tr (U jkm J j U T ji ) q k q m - j m j g U j ji j for i = 1, 2, 3 n where j varies from i to n; k and m varies from 1 to j. The above equation can be expressed in a much simpler matrix form as τ(t)= D ( q(t) ) q(t) + h(q(t), q(t) ) + c(q(t)) where τ(t) = n x 1 generalized torque vector applied at joints i = 1,2.n i.e., τ(t) = (τ 1 (t), τ 2 (t),., τ n (t)) T q(t) = an n x 1 vector of the joint variables of the robot arm and can be expressed as q(t) = (q 1 (t), q 2 (t),., q n (t)) T q(t) = an n x 1 vector of the joint velocity of the robot arm and can be expressed as q(t) = (q 1 (t), q 2 (t),., q n (t) ) T q(t) = an n x 1 vector of the joint acceleration of the joint variables q(t) and can be expressed as q(t) = (q 1 (t), q 2 (t),., q n (t) ) T D(q) = an n x n inertial acceleration-related symmetric matrix whose elements are D ik = j Tr (U jk J j U T ji ) i, k = 1,2..n j varies from max(i,k) to n h(q, q ) = an 1x 1 nonlinear Coriolis and centrifugal force vector whose elements are h(q,q ) = (h 1, h 2,..h n ) T where h i = k m q k q m i =1,2,...n. (4) and h ikm = j Tr (U jkm J j U T ji ) i, k, m = 1,2..n j varies from max(i,k,m) to n c(q) = an n x 1 gravity loading force vector whose elements are c(q) = (c 1, c 2, c n ) T where c i = = j ( -m j g U j ji j ) i = 1,2,.n (5) j varies from i to n. The computational complexity of the L-E formulation increases with the 4 th power of the number of degrees of freedom of the robot arm. Hence for the simulation purpose a specific simple case of a two-link manipulator with revolute joints is taken. The following are assumed in the derivation of the generalized torque equation for the twolink manipulator: joint variables= 1, 2, mass of the links = m 1, m 2, link parameters = 1 = 2 = 0; d 1 = d 2 = 0; a 1 = a 2 = 103

l. The homogenous coordinate transformation matrices i-1 A i (i = 1,2) are obtained as 0 A 1 = [(C 1, -S 1, 0, lc 1 ), (S 1, C 1, 0, ls 1 ), (0, 0,1, 0), (0, 0, 0,1)] (6) 1 A 2 = [(C 2, -S 2, 0, lc 2 ), (S 2, C 2, 0, ls 2 ), (0, 0,1, 0), (0, 0, 0,1)] (7) 0 A 2 = 0 A 1 1 A 2 = [(C 12, -S 12, 0, l(c 12 + C 1 ), (S 12, C 12, 0, l(s 12 +S 1 ),(0,0,1,0),(0,0,0,1)] (8) where C i = cos i ; S i = sin i ; C ij = cos ( i + j ); fs ij = sin ( i + j ) From the eqns 1, 6, 7, 8 the following results can be derived Inertia Effects: The elements of the acceleration related symmetric matrix D( ) can be found as D 11 =1/3m 1 l 2 + 4/3 m 2 l 2 + m 2 C 2 l 2 (9) D 12 =D 21 =1/3m 2 l 2 +½ m 2 C 2 l 2 (10) D 22 =1/3 m 2 l 2 (11) where D 11, D 12, D 21, D 22 are inertia elements. Coriolis Effects: The velocity related coefficients in the Coriolis and Centrifugal terms could be obtained from equations 4 and 5 as h 1 =-½m 2 S 2 l 2 2 2 m 2 S 2 l 2 1 2 (12) h 2 =-½m 2 S 2 l 2 1 2 (13) Gravity Effects: The gravity loading force vector elements can be obtained from equation 5 as c 1 = ½ m 1 g l C 1 + ½ m 2 g l C 12 +m 2 glc 1 (14) c 2 =½m 2 glc 12 (15) Finally, the L-E equations of motion for the two-link manipulator are found to be τ 1 = 1/3 m 1 l 2 + 4/3 m 2 l 2 + m 2 C 2 l 2 + 1/3 m 2 l 2 + ½ m 2 C 2 l 2 ½m 2 S 2 l 2 2 2 - m 2 S 2 l 2 1 2 + ½ m 1 g l C 1 +½m 2 glc 12 +m 2 glc 1 (16) τ 2 = 1/3 m 2 l 2 + ½ m 2 C 2 l 2 + 1/3 m 2 l 2 ½m 2 S 2 l 2 1 2 + ½m 2 g l C 12 (17) Design of the controller The Figure 1 shows the block diagram for the position control of two-link manipulator using a fuzzy logic controller without disturbance compensation. The basic design of the controller remains same as given in the Figure 1; however, an additional block for the torque compensation logic (termed C-logic) is added to overcome the structured and unstructured uncertainties. Figure 1 - Block Diagram of an uncompensated Fuzzy Logic Controller for the position control of a two- link robotic manipulator. The Figure 2 shows the block diagram of the designed controller with the C-logic block incorporated to the original design. Figure 2 - Block Diagram of the Compensated Fuzzy Logic Controller for the position control of a two-link robotic manipulator as implemented with SIMULINK The design of the individual blocks is summarized below. C-Logic Block The C-Logic block shown here can be expressed as a combination of the L-E torque computation block and a torque to voltage converter (T-V converter). The C-Logic block can be delineated as shown in Figure 3. The torque computation block calculates the torque experienced in the joints 1 and 2 from the generalized angular coordinate position of the arms as given by the equations 16 and 17.The torque outputs are then fed to the T-V converter.the T-V converter calculates the voltage that corresponds to a particular combination of torque ( ) and the time derivative of the angular position of the arm ( ) as given by the formula v = [ K fb + ( * R m ) / K torque ] * Gear Ratio where K fb = feed back constant K torque = torque constant R m = mechanical resistance 104

2.Fuzzy logic controller without disturbance torque compensation 3.Fuzzy logic controller with disturbance torque compensation Figure 3 - C-Logic block Fuzzy Logic Controller In this case a fuzzy controller with the error and the first derivative of the error as fuzzy inputs is designed. The error is calculated as the difference between the set point of the arm position and the instantaneous position of the arm. Triangular membership function is used for the fuzzification of the input variables. A 7x7 rule base was designed for each of the two controllers (Table1). The output from the inference engine is defuzzified using the center of area methods of defuzzification. Table 1 - Inference Table for the Fuzzy Logic Controller de/dt e NL NM NS Z PS PM PL NL NL NL NL NL NM NS Z NM NL NM NM NM NS Z PS NS NL NM NS NS Z PS PM Z NL NM NS Z PS PM PL PS NM NS Z PS PS PM PL PM NS Z PS PM PM PM PL PL Z PS PM PL PL PL PL Figure 4 - Dynamic Model of the Two-link robotic manipulator. Robot Dynamics Block This block uses the mechanical and electrical characteristics of the manipulator to convert the voltage input into an equivalent angular position output. The Figure 4 represents the robot dynamics model used in the simulation. Simulation and Results The above-described design was implemented and simulated using MATLAB. The simulation results were then used to compare the performance of the following three different controller configurations 1.An optimized PID controller without disturbance torque compensation. Figure 5a - Multi-Step Response for joint 1(top) and joint 2 of the manipulator controlled using Compensated Fuzzy- Logic Controller. 105

Table 2 Comparison of performance indices of the compensated fuzzy logic controller with PID and uncompensated fuzzy logic controllers. (The results are taken for a step change in the positional set point of 100 deg in Joint 1 and 50 deg in Joint 2) CONTROLLER Joint 1 Joint 2 IAE ISE ITAE IAE ISE ITAE PID Controller 7190 302513 918535 3501 75628.3 459023 Uncompensated 340.7 116138 340790 290.79 84559 290790 Fuzzy Compensated Fuzzy 238.478 56872 238478 188.478 35524.1 188478 Figures 5 through 9 represent the simulation results used to compare the controllers of the above 3 configurations. Figures 5a, 6 indicate the multi-step response and the sinusoidal response for the compensated fuzzy logic controller. Figure 5b represents the error graph for the multi-step response given in Figure 5a. The calculated performance indices (as given in Table 2) and the simulation results clearly indicate that the performance of the fuzzy logic controller with torque compensation was superior as compared to the controllers of other configurations. The response of the controller to the load input was also simulated. A step input, the magnitude of which is 10% of the initial set point change, is introduced after the settling time. Figure 7 shows the response of the controller to the load disturbance. As the simulation results indicate the controller is able to track the set point in spite of constant load disturbances. Figure 5b - Error graph for the Multi-Step Response for the joint1 Figure 7 - Response for a load disturbance (step magnitude=10% SP) introduced after the initial step response settling time. Figure 6 - Sinusoidal Response for the Compensated fuzzy logic Controller. (Sine amplitude =10) Figure 8 - Zoomed graph to show the Oscillations about the SP experienced by the arm in the case of PID controller. It can be noted that the Compensated Fuzzy Logic model has a much steady response after the settling time. 106

When accurate position control is required for a sensitive industrial or medical application, this kind of oscillations about the set point is highly undesirable. Hence the proposed design of controller has the following advantages over the conventional controllers: 1. More accurate tracking of the set point variations. 2. Reduced oscillations about the set point 3. Settling time is comparatively smaller. 4. Relatively Robust to load disturbances. Figure 9 - Zoomed graph to show the relatively large deviation of the control variable from the SP in the case of uncompensated fuzzy logic controller as compared with a compensated fuzzy logic model. Conclusion The superior performance of the controller is complimented by the reduced oscillations of the control variable about the set point. The Figure 8 shows a magnified portion of the simulation graph to demonstrate the amplitude of oscillations experienced by an arm about the set point in the case of optimized PID controllers. References [1] R. R. Yager, and D. P. Filev. eds. 1994. Essentials of Fuzzy Modeling and Control. New York: Wiley [2] S. Commuri, F. L.Lewis. 1996. Adaptive-Fuzzy Controllers of Robot manipulators. Int. J. Syst. Sci. 27(6). [3] J. J. Craig. Eds. 1989. Introduction to Robotics. New York: Addison Wesley. [4] Limin Peng, Peng-Yung Woo. 2002. Neural-Fuzzy Control System for Robotic Manipulators. IEEE Control System Magazine 22(1). [5] K.S.Fu, R.C.Gonzalez, C.S.G.Lee. eds. 1987. Robotics-Control, Sensing, Vision and Intelligence. McGraw Hill Book Company. 107