This action might not be possible to undo. Are you sure you want to continue?

# University Of Jordan Fuzzy Control

0908541

Robot Manipulator Task Control Using Fuzzy Behavior-Based Strategy

Liana Abu-Alsoud Anas Odeh Omar Othman

0080270 0081555 0085157

Abstract

In this project, the concept of fuzzy behavior-based control is used to construct a fuzzy generator that generates the desired positions and orientations of a robot manipulator in the Cartesian space. The aim of this project is to give a solution to manipulation control problem. Manipulation requires identifying the target acquired from vision system mounted on the manipulator, and grasping it by the end-effector. The control law used here is based on fuzzy logic. The controller determines the parameters of the target. After studying the behavior of the system, fuzzy rule was built.

Introduction

A behavior-based control system, which can intelligently construct a controlled system for a robot manipulator according to the interaction between the robot and the environment, is now becoming attractive in the field of robotics; that is why we chose a subject that is related to that, which is ‘Robot Manipulator Task Control Using Fuzzy Behavior-based Strategy’. In the field of Cartesian control vision system two methods have been proposed: Position-based visual servo control and Image-based visual servo control, but these methods suffer from singularities, complicated calculation process and inaccuracy. On the other hand, Fuzzy Logic, which was initially introduced by Dr. Lutfi Zadeh, was found to be the perfect solution to minimize the complications and challenges faced earlier. It is used to detect easily the situation-action mapping. Therefore the objective of this work is for a six-link, six degree-of-freedom PUMA robot to reach a target from an initial point while avoiding obstacle using behavior-based approach. The application of fuzzy logic control in robotics is to produce an intelligent robot with the ability of autonomous behavior and decision.

**Fuzzy Vs. Other Methods
**

Two methods (Vision Systems) have been proposed previously: 1) Position-based visual servo control: -Calculated and estimated position. -Calibration errors. 2) Image-based visual servo control: -The inaccuracy in the position of the end-effector. -Jacobian matrix is difficult to calculate. -Singularities.

1. Why CCD? A. That’s why we preferred to use Fuzzy Logic in this work Components 1) Vision System: CCD Camera sensor. C. 2) Target: Sphere with (x. 2. B. to identify the target. and (r) as any point on the circumference of the sphere. Linear and easy to calibrate. Additional circuitry in the camera converts the voltage into digital information. 3) Manipulator: PUMA 560. the charges are converted to voltage one pixel at a time as they are read from the chip. While designing control system using Fuzzy Control rules gives us : -High quality. Its role is to keep catching pictures and compare it with the original photo saved on it. Low noise (noiseless charge transfer). When light strikes the chip it is held as a small electrical charge in each photo sensor. -Minimized calculation’s complexity.Spherical Target .CCD Camera CCD (Charge-Coupled Device) is an analog device. y) as center coordinates. Commercially produced.

Camera-laser coupling with a sphere. 2) Decision role: planning the geometric motion.Fig1. . 3. 2. The controller of the manipulator has several roles (Fig2): 1) Information role: collecting and processing info provided by sensor.PUMA Manipulator 1. 3) Communication role: organizing info between robot and environment. Six-links 6-DOF robot (Fig3). PUMA (Programmable Universal Machine for Assembly): is one of the most common assembly robots.

Note: These axes are determined based on DH parameters that will be discussed in details later (Refer to table 1).Fig3: PUMA Manipulator 3. (1) . Reaching Target Module: For the 2nd and 3rd joints (J2. angular acceleration vector respectively. ˙θ) + g(θ) + τm + τf …. J3). Rotation Module: For the 1st joint (J1). . θ. g(θ):gravitational vector. r) which are the x coordinate and the radius of the spherical target.. Where: M(θ): inertia matrix. Equation of Motion τ = M(θ)¨θ + h(θ. the input data is represented by (x. ˙θ):Coriolis and centrifugal force vector. angular velocity vector. h(θ. ˙θ and ¨θ:joint angle vector. which will move the gripper to grasp the target. Τ: is the torque vector. The output data is the angle (Ɵ1). r) which are the y coordinated and the radius of the spherical target. Ɵ3). The output data are the angles (Ɵ2. The Input data is represented by (y.

(Refer to Appendix A) DH Parameters Joint i αi [deg] ai [m] di [m] Joint Range θi [deg] −160 to 160 −225 to 45 −45 to 225 −110 to 170 −100 to 100 −266 to 266 1 2 3 4 5 6 90 0 90 -90 90 0 0 0.05625 Table1: DH Parameters (Refer to Appendix B) Fuzzy Logic Controller .4318 −0.02032 0 0 0 0 0.τ m .43307 0 0.14909 0 0.τ f: torques required to overcome the motor armature inertia and friction of the joints respectively.

Far...CAD Model Control system design 1.Its role is to activate If-Then rules. Inference: Is considered to be the core of the fuzzy system which combines the facts obtained from the fuzzification with the rule base . Three stages of Fuzzy Logic Control are used: 2.) of fuzzy sets. Fuzzification: A process of transforming crisp values into grades of membership for linguistic terms (ie: Near.

5] VN-= [94.3. 94] N-= [85. 103. Defuzzification: Translate results back to real world values. and conducts a fuzzy reasoning process(the process of concluding new facts from already existing facts). 212] R(Pixel) F-= [-67 85] QN-= [42. 112] N+= [103. 122] F+= [87.5] VN-= [94 112] N+= [103.6] QN+= [112 165] F+= [122 261] . 69] N-= [24. Fuzzy Sets X(Pixel) F-= [-62.1 121. 78] VN= [69. 165] F+= [122.98] N-= [85 103. 87] N+= [78. 121] QN+= [112. 85] QN-= [42.04 93. 261] Y(Pixel) F-= [-62.

5 4] VB+= [1 6] J2 VB-= [ -25 -6] B-=[-15 -1.4] VS+= [0 1.5] S+= [0.539] VS+= [0 1.4 0.8 15] VB+= [6 25 ] J3 VB-= [ -20 -4.15 1] B+= [0.4 5] B+= [1.15 0.461 0.8] S-= [-6 -0.5 12] VB+= [5 20 ] .8 0] Z=[-0.5] S+= [0.97] B-= [-12 -1.5] VS-= [-1.15] VS+= [0 0.5] S-= [-1 -0.5 0] Z= [-0.8] S+= [0.J1 VB-= [ -6 -1] B-= [-5 -0.5 6] B+= [1.5 0] Z= [-0.4] VS-= [-1.5] S-= [-5 -0.15] VS-= [-0.

For Ɵ: (+) means positive angle. while (-) means negative Ɵ . modifiers) Positive (+) Negative (-) Table2: Output linguistic terms Notes: a. b. Very near Quite near. while (-) means smaller than. Far Table2: Input linguistic terms Positive (+) Negative (-) Linguistic Values (Primary terms) Linguistic Hedges (Secondary terms. For r: (+) means approaching. c.Linguistic Variables Linguistic Variables x-coordinate y-coordinate r-circumference Near. while (-) means that the manipulator is very close to the target. modifiers) Linguistic Variables Ɵ1 Ɵ2 Ɵ3 Linguistic Values (Primary terms) Big Very big Small Zero Linguistic Hedges (Secondary terms. For x and y: (+) means that the center of circumference is greater than the goal position.

.Simulation Fig 4: Inputs and Outputs.

1.Fuzzification Fig5: (X-Coordinate). . Fig6: (Y-Coordinate).

. Fig8: (Ɵ1).Fig7: (Circumference r).

10: (Ɵ3). . Fig.Fig9: (Ɵ2).

2. The second is the implication (applying the result of antecedent to consequent). Joint1 rules (R1-R42): R1: If (x is F-) and (r is F+) then (Ɵ is B+) R2: If (x is F-) and (r is QN+) then (Ɵ is B+) R3: If (x is F-) and (r is N+) then (Ɵ is VB+) R4: If (x is F-) and (r is VN) then (Ɵ is VB+) R5: If (x is F-) and (r is N-) then (Ɵ is VB+) R6: If (x is F-) and (r is QN-) then (Ɵ is VB+) R7: If (x is QN-) and (r is F+) then (Ɵ is VB+) R8: If (x is QN-) and (r is QN+) then (Ɵ is VB+) R9: If (x is QN-) and (r is N+) then (Ɵ is VB+) R10: If (x is QN-) and (r is VN) then (Ɵ is VS+) R11: If (x is QN-) and (r is N-) then (Ɵ is VS+) R12: If (x is QN-) and (r is QN-) then (Ɵ is VS+) R13: If (x is N-) and (r is F+) then (Ɵ is VS+) R14: If (x is N-) and (r is QN+) then (Ɵ is S+) .Fuzzy Rule Base The first step is to evaluate the antecedent (fuzzifying the input and applying any necessary fuzzy operators).

R15: If (x is N-) and (r is N+) then (Ɵ is S+) R16: If (x is N-) and (r is VN) then (Ɵ is S+) R17: If (x is N-) and (r is N-) then (Ɵ is S+) R18: If (x is N-) and (r is QN-) then (Ɵ is S+) R19: If (x is VN) and (r is F+) then (Ɵ is Z) R20: If (x is VN) and (r is QN+) then (Ɵ is Z) R21: If (x is VN) and (r is N+) then (Ɵ is Z) R22: If (x is VN) and (r is VN) then (Ɵ is Z) R23: If (x is VN) and (r is N-) then (Ɵ is Z) R24: If (x is VN) and (r is QN-) then (Ɵ is Z) R25: If (x is N+) and (r is F+) then (Ɵ is VS-) R26: If (x is N+) and (r is QN+) then (Ɵ is S-) R27: If (x is N+) and (r is N+) then (Ɵ is S-) R28: If (x is N+) and (r is VN) then (Ɵ is S-) R29: If (x is N+) and (r is N-) then (Ɵ is S-) R30: If (x is N+) and (r is QN-) then (Ɵ is S-) R31: If (x is QN+) and (r is F+) then (Ɵ is VB-) R32: If (x is QN+) and (r is QN+) then (Ɵ is VB-) R33: If (x is QN+) and (r is N+) then (Ɵ is VS-) .

R34: If (x is QN+) and (r is VN) then (Ɵ is VS-) R35: If (x is QN+) and (r is N-) then (Ɵ is VS-) R36: If (x is QN+) and (r is QN-) then (Ɵ is VS-) R37: If (x is F+) and (r is F+) then (Ɵ is B-) R38: If (x is F+) and (r is QN+) then (Ɵ is B-) R39: If (x is F+) and (r is N+) then (Ɵ is VB-) R40: If (x is F+) and (r is VN) then (Ɵ is VB-) R41: If (x is F+) and (r is N-) then (Ɵ is VB-) R42: If (x is F+) and (r is QN-) then (Ɵ is VB-) Joint2 rules (R43-R72): R43: If (y is F-) and (r is F+) then (Ɵ is B-) R44: If (y is F-) and (r is QN+) then (Ɵ is VB-) R45: If (y is F-) and (r is N+) then (Ɵ is VS-) R46: If (y is F-) and (r is QN) then (Ɵ is VS-) R47: If (y is F-) and (r is N-) then (Ɵ is S+) R48: If (y is F-) and (r is QN-) then (Ɵ is VS+) R49: If (y is N-) and (r is F+) then (Ɵ is B-) R50: If (y is N-) and (r is QN+) then (Ɵ is VB-) R51: If (y is N-) and (r is N+) then (Ɵ is VS-) .

R52: If (y is N-) and (r is VN) then (Ɵ is Z) R53: If (y is N-) and (r is N-) then (Ɵ is VS+) R54: If (y is N-) and (r is QN-) then (Ɵ is VB+) R55: If (y is QN) and (r is F+) then (Ɵ is B-) R56: If (y is QN) and (r is QN+) then (Ɵ is VB-) R57: If (y is QN) and (r is N+) then (Ɵ is VS-) R58: If (y is QN) and (r is VN) then (Ɵ is Z) R59: If (y is QN) and (r is N-) then (Ɵ is VS+) R60: If (y is QN) and (r is QN-) then (Ɵ is VB+) R61: If (y is N+) and (r is F+) then (Ɵ is B-) R62: If (y is N+) and (r is QN+) then (Ɵ is VB-) R63: If (y is N+) and (r is N+) then (Ɵ is S-) R64: If (y is N+) and (r is VN) then (Ɵ is Z) R65: If (y is N+) and (r is N-) then (Ɵ is VS+) R66: If (y is N+) and (r is QN-) then (Ɵ is VB+) R67: If (y is F+) and (r is F+) then (Ɵ is B-) R68: If (y is F+) and (r is QN+) then (Ɵ is VB-) R69: If (y is F+) and (r is N+) then (Ɵ is S-) .

R70: If (y is F+) and (r is VN) then (Ɵ is S-) R71: If (y is F+) and (r is N-) then (Ɵ is VS-) R72: If (y is F+) and (r is QN-) then (Ɵ is VB+) Joint3 rules (R73-R102): R73: If (y is F-) and (r is F+) then (Ɵ is B+) R74: If (y is F-) and (r is QN+) then (Ɵ is VB+) R75: If (y is F-) and (r is N+) then (Ɵ is VS+) R76: If (y is F-) and (r is VN) then (Ɵ is VS+) R77: If (y is F-) and (r is N-) then (Ɵ is VS+) R78: If (y is F-) and (r is QN-) then (Ɵ is VS+) R79: If (y is N-) and (r is F+) then (Ɵ is VB+) R80: If (y is N-) and (r is QN+) then (Ɵ is VS+) R81: If (y is N-) and (r is N+) then (Ɵ is S+) R82: If (y is N-) and (r is VN) then (Ɵ is S+) R83: If (y is N-) and (r is N-) then (Ɵ is Z) R84: If (y is N-) and (r is QN-) then (Ɵ is VS-) R85: If (y is QN) and (r is F+) then (Ɵ is VB+) R86: If (y is QN) and (r is QN+) then (Ɵ is VS+) R87: If (y is QN) and (r is N+) then (Ɵ is S+) .

R88: If (y is QN) and (r is VN) then (Ɵ is Z) R89: If (y is QN) and (r is N-) then (Ɵ is S-) R90: If (y is QN) and (r is QN-) then (Ɵ is VS-) R91: If (y is N+) and (r is F+) then (Ɵ is VB+) R92: If (y is N+) and (r is QN+) then (Ɵ is VS+) R93: If (y is N+) and (r is N+) then (Ɵ is S-) R94: If (y is N+) and (r is VN) then (Ɵ is S-) R95: If (y is N+) and (r is N-) then (Ɵ is S-) R96: If (y is N+) and (r is QN-) then (Ɵ is VS-) R97: If (y is F+) and (r is F+) then (Ɵ is VB+) R98: If (y is F+) and (r is QN+) then (Ɵ is S-) R99: If (y is F+) and (r is N+) then (Ɵ is VS-) R100: If (y is F+) and (r is VN) then (Ɵ is VS-) R101: If (y is F+) and (r is N-) then (Ɵ is VS-) R102: If (y is F+) and (r is QN-) then (Ɵ is VB-) .

Conclusion: C*=Combine (C1*. which uses an if-then rule that implicitly represents fuzzy relation. = ( ᴧ ( Rules Conclusion: ( = .3. .. .…. v ( The overall joint1 conclusion: ( = ( v ᵾw For Joint2: . . R42: If (x is A42) and (r is B42) then (Ɵ is C42) Observations: .C42*) Firing strength: = ( ᴧ ( .Fuzzy Inference Generalized Modus Ponens (GMP) inference procedure. Mamdani reasoning type For Joint1: R1: If (x is A1) and (r is B1) then (Ɵ is C1) . ( = ᴧ ( ᴧ ( ᵾw ᵾw ( v ………..

.C102*) .C72*) Firing strength: = ( ᴧ . R42: If (y is A102) and (r is B102) then (Ɵ is C102) Observations: . R42: If (y is A72) and (r is B72) then (Ɵ is C72) Observations: . . Conclusion: C*=Combine (C43*. Conclusion: C*=Combine (C73*.…. .….. R1: If (y is A43) and (r is B43) then (Ɵ is C43) . v ( The overall joint2 conclusion: ( = ( v ᵾw For Joint3: R1: If (y is A73) and (r is B73) then (Ɵ is C73) . ( = ᴧ ( ᴧ ( ( ( ᵾw ᵾw ( v ……….. . = ( ᴧ Rules Conclusion: ( = ..

. v ( The overall joint3 conclusion: ( = ( v ᵾw 4.. ( = ᴧ ᴧ ( ( ( ᵾw ( ᵾw ( v ………. Firing strength: = ( ᴧ . . = ( ᴧ Rules Conclusion: ( = .Defuzzification Center of gravity ∑ W*= ∑ .

Fig10: If-Then Rules .

6 at joint i.….Manipulator Control τ = M ( ) ̈ + h(θ. is the armature inertia of the motor is the ith joint reduction gear ratio defined by motor speed/link speed is viscous friction is the Coulomb friction . τ is the torque vector ∈ is torques required to overcome the motor armature inertia ∈ is torques required to overcome the motor friction ̈ = ̇ + = sgn( ̇ ) i = 1. h (θ. ˙θ) ∈ is the Coriolis and centrifugal force vector g (θ) ∈ is the gravitational vector. ̇ ) + g(θ) + + Where: M (θ) ∈ is the inertia matrix.

̈ ̈ ̈ ̈ ̇ ̇ ̇ ̇ Control system block diagram .

Step1: the sphere object is far from the manipulator Step2: first joint is rotated to face the object .

Step3: joint 2 and joint 3 approaching the object Step4: the end effector caught the object .

is the armature inertia of the motor is the ith joint reduction gear ratio defined by motor speed/link speed is viscous friction is the Coulomb friction . ˙θ) ∈ is the Coriolis and centrifugal force vector g (θ) ∈ is the gravitational vector. The software interface between the controller and the physical manipulator is constituted by an high level language and connected through RS232 serial line. Manipulator Control τ = M ( ) ̈ + h(θ. h (θ.Step5: moving the object to the desired location Controller specifications The system controlled by a PC. 6 at joint i. τ is the torque vector ∈ is torques required to overcome the motor armature inertia ∈ is torques required to overcome the motor friction ̈ = ̇ + = sgn( ̇ ) i = 1.…. ̇ ) + g(θ) + + Where: M (θ) ∈ is the inertia matrix.

. The simulation proved that the proposed method was effective for complex manipulators like PUMA robot. Fuzzy logic is easy. a system has been designed using fuzzy behavior-based strategy which gave us the advantage of moving towards a particular point without knowing the inverse kinematics or any prior knowledge of how to avoid obstacles or an algorithm to avoid obstacle.Conclusion In this project. with the help of Mamdani’s rule and Matlab (fuzzy tool boxes). practical and effective control method.