Sie sind auf Seite 1von 32

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.

While designing control system using Fuzzy Control rules gives us : -High quality. -Minimized calculations complexity. Thats why we preferred to use Fuzzy Logic in this work

Components
1) Vision System: CCD Camera sensor. 2) Target: Sphere with (x, y) as center coordinates, and (r) as any point on the circumference of the sphere. 3) Manipulator: PUMA 560.

1.CCD Camera
CCD (Charge-Coupled Device) is an analog device. When light strikes the chip it is held as a small electrical charge in each photo sensor, the charges are converted to voltage one pixel at a time as they are read from the chip. Additional circuitry in the camera converts the voltage into digital information. Its role is to keep catching pictures and compare it with the original photo saved on it, to identify the target. Why CCD? A. Low noise (noiseless charge transfer). B. Linear and easy to calibrate. C. Commercially produced.

2.Spherical Target

Fig1. Camera-laser coupling with a sphere.

3.PUMA Manipulator
1. The controller of the manipulator has several roles (Fig2): 1) Information role: collecting and processing info provided by sensor. 2) Decision role: planning the geometric motion. 3) Communication role: organizing info between robot and environment.

2. PUMA (Programmable Universal Machine for Assembly): is one of the most common assembly robots. Six-links 6-DOF robot (Fig3).

Fig3: PUMA Manipulator 3. Note: These axes are determined based on DH parameters that will be discussed in details later (Refer to table 1).

Rotation Module: For the 1st joint (J1), the input data is represented by (x, r) which are the x coordinate and the radius of the spherical target. The output data is the angle (1). Reaching Target Module: For the 2nd and 3rd joints (J2, J3), which will move the gripper to grasp the target. The Input data is represented by (y, r) which are the y coordinated and the radius of the spherical target. The output data are the angles (2, 3).

Equation of Motion
= M() + h(, ) + g() + m + f .. (1)
; Where: M(): inertia matrix. h(, ):Coriolis and centrifugal force vector. g():gravitational vector. : is the torque vector. , and :joint angle vector, angular velocity vector, angular acceleration vector respectively.

m , f: torques required to overcome the motor armature inertia and friction of the joints respectively. (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.4318 0.02032 0 0 0

0 0.14909 0 0.43307 0 0.05625

Table1: DH Parameters (Refer to Appendix B)

Fuzzy Logic Controller

CAD Model

Control system design


1.

Three stages of Fuzzy Logic Control are used:

2.

Fuzzification: A process of transforming crisp values into grades of membership for linguistic terms (ie: Near, Far,..) of fuzzy sets.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

3.

and conducts a fuzzy reasoning process(the process of concluding new facts from already existing facts). Defuzzification: Translate results back to real world values.

Fuzzy Sets
X(Pixel) F-= [-62, 85] QN-= [42, 94] N-= [85, 103.5] VN-= [94, 112] N+= [103, 121] QN+= [112, 165] F+= [122, 261] Y(Pixel) F-= [-62, 69] N-= [24, 78] VN= [69, 87] N+= [78, 122] F+= [87, 212] R(Pixel) F-= [-67 85] QN-= [42.04 93.98] N-= [85 103.5] VN-= [94 112] N+= [103.1 121.6] QN+= [112 165] F+= [122 261]

J1
VB-= [ -6 -1] B-= [-5 -0.5] S-= [-1 -0.15] VS-= [-0.5 0] Z= [-0.15 0.15] VS+= [0 0.5] S+= [0.15 1] B+= [0.5 4] VB+= [1 6]

J2
VB-= [ -25 -6] B-=[-15 -1.8] S-= [-6 -0.5] VS-= [-1.8 0] Z=[-0.461 0.539] VS+= [0 1.8] S+= [0.5 6] B+= [1.8 15] VB+= [6 25 ]

J3
VB-= [ -20 -4.97] B-= [-12 -1.5] S-= [-5 -0.4] VS-= [-1.5 0] Z= [-0.4 0.4] VS+= [0 1.5] S+= [0.4 5] B+= [1.5 12] VB+= [5 20 ]

Linguistic Variables
Linguistic Variables x-coordinate y-coordinate r-circumference Near, Very near Quite near, Far Table2: Input linguistic terms Positive (+) Negative (-) Linguistic Values (Primary terms) Linguistic Hedges
(Secondary terms, modifiers)

Linguistic Variables 1 2 3

Linguistic Values (Primary terms) Big Very big Small Zero

Linguistic Hedges
(Secondary terms, modifiers)

Positive (+) Negative (-)

Table2: Output linguistic terms

Notes: a. For x and y: (+) means that the center of circumference is greater than the
goal position, while (-) means smaller than. b. For r: (+) means approaching, while (-) means that the manipulator is very close to the target. c. For : (+) means positive angle, while (-) means negative

Simulation

Fig 4: Inputs and Outputs.

1.Fuzzification

Fig5: (X-Coordinate).

Fig6: (Y-Coordinate).

Fig7: (Circumference r).

Fig8: (1).

Fig9: (2).

Fig.10: (3).

2.Fuzzy Rule Base


The first step is to evaluate the antecedent (fuzzifying the input and applying any necessary fuzzy operators). 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+)

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-)

3.Fuzzy Inference
Generalized Modus Ponens (GMP) inference procedure, which uses an if-then rule that implicitly represents fuzzy relation. Mamdani reasoning type

For Joint1: R1: If (x is A1) and (r is B1) then ( is C1)


. .

R42: If (x is A42) and (r is B42) then ( is C42) Observations: ,

Conclusion: C*=Combine (C1*,.,C42*) Firing strength: = ( ( . . = ( ( Rules Conclusion: ( = . . ( = ( (

w w
( v .. v (

The overall joint1 conclusion: ( = ( v

For Joint2:

R1: If (y is A43) and (r is B43) then ( is C43)


. .

R42: If (y is A72) and (r is B72) then ( is C72) Observations: ,

Conclusion: C*=Combine (C43*,.,C72*) Firing strength: = ( . . = ( Rules Conclusion: ( = . . ( = ( ( (

w w
( v .. v (

The overall joint2 conclusion: ( = ( v

For Joint3: R1: If (y is A73) and (r is B73) then ( is C73)


. .

R42: If (y is A102) and (r is B102) then ( is C102) Observations: ,

Conclusion: C*=Combine (C73*,.,C102*)

Firing strength: = ( . . = ( Rules Conclusion: ( = . . ( = (

w
(

w
( v .. v (

The overall joint3 conclusion: ( = ( v

4.Defuzzification
Center of gravity

W*=

Fig10: If-Then Rules

Manipulator Control
= M ( ) + h(, ) + g() + +

Where: M () is the inertia matrix, h (, ) is the Coriolis and centrifugal force vector g () is the gravitational vector. is the torque vector is torques required to overcome the motor armature inertia is torques required to overcome the motor friction = + = sgn( ) i = 1,, 6 at joint i, 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

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

Step5: moving the object to the desired location Controller specifications The system controlled by a PC. 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(, ) + g() + +

Where: M () is the inertia matrix, h (, ) is the Coriolis and centrifugal force vector g () is the gravitational vector. is the torque vector is torques required to overcome the motor armature inertia is torques required to overcome the motor friction = + = sgn( ) i = 1,, 6 at joint i, 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

Conclusion
In this project, 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. The simulation proved that the proposed method was effective for complex manipulators like PUMA robot. Fuzzy logic is easy, practical and effective control method, with the help of Mamdanis rule and Matlab (fuzzy tool boxes).

Das könnte Ihnen auch gefallen