8/13/2019 Final MSD Project
1/32
University Of Jordan
Fuzzy Control
0908541
Robot Manipulator Task Control UsingFuzzy Behavior-Based Strategy
Liana Abu-Alsoud 0080270
Anas Odeh 0081555
Omar Othman 0085157
8/13/2019 Final MSD Project
2/32
Abstract
In this project, the concept of fuzzy behavior-based control is used toconstruct 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.
8/13/2019 Final MSD Project
3/32
Introduction
A behavior-based control system, which can intelligently construct acontrolled 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, complicatedcalculation 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 detecteasily 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 obstacleusing 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.
8/13/2019 Final MSD Project
4/32
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 chargesare 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
8/13/2019 Final MSD Project
5/32
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 themost common assembly robots. Six-links 6-DOF robot (Fig3).
8/13/2019 Final MSD Project
6/32
Fig3: PUMA Manipulator
3. Note: These axes are determined based on DH parameters that will be discussed indetails later (Refer to table 1).
Rotation Module:
For the 1stjoint (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.
8/13/2019 Final MSD Project
7/32
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]
1 90 0 0 160 to 160
2 0 0.4318 0.14909 225 to 45
3 90 0.02032 0 45 to 225
4 -90 0 0.43307 110 to 170
5 90 0 0 100 to 100
6 0 0 0.05625 266 to 266
Table1: DH Parameters (Refer to Appendix B)
Fuzzy Logic Controller
8/13/2019 Final MSD Project
8/32
CAD Model
Control system design
Three stages of Fuzzy Logic Control are used:1. 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.
2. Inference:Isconsidered to be the core of the fuzzy system whichcombines the facts obtained from the fuzzification with the rule base
8/13/2019 Final MSD Project
9/32
and conducts a fuzzy reasoning process(the process of concluding new
facts from already existing facts).
3. 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]
8/13/2019 Final MSD Project
10/32
J1VB-= [ -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]
J2VB-= [ -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 ]
J3VB-= [ -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 ]
8/13/2019 Final MSD Project
11/32
Linguistic Variables
Linguistic Variables Linguistic Values
(Primary terms)
Linguistic Hedges
(Secondary terms,modifiers)
x-coordinate
Near,
Very near
Quite near,Far
Positive (+)
Negative (-)y-coordinate
r-circumference
Table2: Input linguistic terms
Linguistic Variables Linguistic Values
(Primary terms)
Linguistic Hedges(Secondary terms,
modifiers)
1
Big
Very bigSmall
Zero
Positive (+)Negative (-)2
3
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 thatthe manipulator is very
close to the target.c. For : (+) means positive angle, while (-) means negative
8/13/2019 Final MSD Project
12/32
Simulation
Fig 4: Inputs and Outputs.
8/13/2019 Final MSD Project
13/32
1.Fuzzification
Fig5: (X-Coordinate).
Fig6: (Y-Coordinate).
8/13/2019 Final MSD Project
14/32
Fig7: (Circumference r).
Fig8: (1).
8/13/2019 Final MSD Project
15/32
Fig9: (2).
Fig.10: (3).
8/13/2019 Final MSD Project
16/32
2.Fuzzy Rule Base
The first step is to evaluate the antecedent (fuzzifying the input andapplying any necessary fuzzy operators).
The second is the implication (applying the result of antecedent toconsequent).
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+)
8/13/2019 Final MSD Project
17/32
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-)
8/13/2019 Final MSD Project
18/32
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-)
8/13/2019 Final MSD Project
19/32
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-)
8/13/2019 Final MSD Project
20/32
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+)
8/13/2019 Final MSD Project
21/32
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-)
8/13/2019 Final MSD Project
22/32
3.Fuzzy Inference
Generalized Modus Ponens (GMP) inference procedure, which usesan 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
The overall joint1 conclusion:
(=
( v
( v .. v
( w
For Joint2:
8/13/2019 Final MSD Project
23/32
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
The overall joint2 conclusion:
(=
( v
( v .. v
( w
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*)
8/13/2019 Final MSD Project
24/32
Firing strength:= ( (
.
.
= ( (
Rules Conclusion:
(= ( w.
.
(= ( w
The overall joint3 conclusion:
(=
( v
( v .. v
( w
4.Defuzzification
Center of gravityW*=
8/13/2019 Final MSD Project
25/32
Fig10: If-Then Rules
8/13/2019 Final MSD Project
26/32
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
istorques 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 speedis viscous friction
is the Coulomb friction
8/13/2019 Final MSD Project
27/32
Control system block diagram
8/13/2019 Final MSD Project
28/32
Step1: the sphere object is far from the manipulator
Step2: first joint is rotated to face the object
8/13/2019 Final MSD Project
29/32
Step3: joint 2 and joint 3 approaching the object
Step4: the end effector caught the object
8/13/2019 Final MSD Project
30/32
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
istorques required to overcome the motor friction
=
= +sgn( )
i = 1,,6
at joint i, is the armature inertia of the motoris the ith joint reduction gear ratio defined by motor speed/link speed
is viscous friction
is the Coulomb friction
8/13/2019 Final MSD Project
31/32
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).
8/13/2019 Final MSD Project
32/32
Top Related