Neuro-fuzzy control for Khepera III mobile robot.
Popescu, Cristina ; Bucur, Gabriela ; Popescu, Catalin 等
1. INTRODUCTION
Since 1985, many researchers investigated the application of fuzzy
controllers in mobile robotics. Mostly, the results are obtained by
simulation.
In this paper we will describe experiments with the Khepera III
mobile robot, developed in 2007 in the Microcomputing Laboratory at the
Swiss Federal Institute of technology. The earliest versions of the
Khepera robot were available since 1992.
This problem was similarly studied for Khepera II robot (Godjevac,
1997), but for this robot the sensorial system was change, so we adapted
the control structure. We also developed Matlab functions to communicate
with the robot, via bluetooth, using a Windows platform.
2. THE KHEPERA III MOBILE ROBOT
Our work is based on the experiments with a robot named Khepera
III. It is cylindrical in shape, measuring 130 mm in diameter and 70 mm
in height and its weight is 690 g.
The basic configuration of Khepera is composed of DsPIC 30F5011 at
60 MHz processor, system and user memory, extension busses and a serial
link. The microcontroller includes all the features needed for
interfacing with memories, with I/O ports and with external
interruptions.
The sensory/motor board includes two DC motors with incremental
encoders, 9 infrared proximity and ambient light sensors with up to 25
cm range, 2 infrared ground proximity sensors for line following
applications and 5 ultrasonic sensors with range 20 cm to 4 meters.
3. NEURO-FUZZY CONTROLLER FOR OBSTACLE AVOIDANCE
Our experiment is controller design for obstacle avoidance of the
Khepera III with a minimal number of linguistic rules. The robot has 9
infrared proximity sensors and 2 motors. The inputs are the linguistic
variables: distances between the robot and the obstacle and the outputs
are the linguistic variables: motor speeds. We work with four input
linguistic variables: distance to the left [D.sub.s], to the front
[D.sub.f], to the right [D.sub.d] and on the back [D.sub.sp], like in
figure 1. If we note with [S.sub.1], ..., [S.sub.11] the sensor values
normalised within [0,1], then the input variables are calculated in the
following way (Godjevac&Steele, 2001):
[D.sub.s] = [S.sub.7] (1)
[D.sub.f] = ([S.sub.4] + [S.sub.5])/2 (2)
[D.sub.d] = [S.sub.2] (3)
[D.sub.sp] = [S.sub.9] (4)
[FIGURE 1 OMITTED]
For each input linguistic variable, we define 3 linguistic values:
small, medium, big , and for each output we define 7 linguistic values:
backward fast, backward medium, backward slow, stop, forward slow,
forward medium, forward fast (Popescu, 2006).
The first step is up to set the initial base of the rules and the
parameters of the controller. We set 16 rules, which constitute the
initial base rules, to implement the obstacles avoidance behaviour. The
second step is to implement the controller. The Takagi Sugeno
controller's parameters will be adapt by a supervised learning
method based on gradient descent, which consists of modifying parameters
in order to obtain the desired output in response to given inputs
(Sugeno & Murakami, 1985). We choose an on-line identification
method because it uses less computational time and less memory space
than an off-line algorithm (Popescu, 2007). After learning, linguistic
rules are extracted from the system parameters. They may be different
than the initial rules. The parameters of membership functions are
initialised to uniformly cover the input space. Each membership function
for input variables are Gaussian functions and for output variables are
singleton functions, like in figure 2.
The initial base rules describing obstacle avoidance behaviour are
presented in the table 1.
[FIGURE 2 OMITTED]
The particularity of the Takagi and Sugeno's controller is
that the consequent parts of linguistic rules are expressed as functions
of linguistic variables, and in this case we will consider only the
special type of Takagi and Sugeno's controller were these functions
are constants.
The Takagi and Sugeno's fuzzy controller has three types of
parameters to adapt: centre values a = [([a.sub.11], ..., [a.sub.nm],
..., [a.sub.NM]).sup.T], width values b = [([b.sub.11], ..., [b.sub.nm],
..., [b.sub.NM]).sup.T] and consequent values c = [([c.sub.11], ...,
[c.sub.nk], ..., [c.sub.NK]).sup.T], where M is the number of input, K
is the number of outputs and N is the number of linguistic rules.
For Gaussian membership functions, the equation for the adaptation
of the parameter a b and c is like following:
[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII] (5)
During the learning process the rules base was changed and we
observed that there are no contradictions--two rules with the same
antecedent parts and different consequent parts. For inference process
we used Min-Max method and Centre of Gravity method for defuzzification.
[FIGURE 3 OMITTED]
[FIGURE 4 OMITTED]
The membership functions are modified after learning process like
in figure 3. It is observed that after 200 iterations Khepera learned
the desired behaviour and the evolution of the error is very good, as
presented in figure 4.
When implementing this controller in the real robot Khepera, we
observe that with 16 rules the robot avoid obstacle with success and if
we change the rule base, we can implement another behaviour, like wall
following or reached a target.
4. CONCLUSION
In this paper we studied the design and the implementation of
neuro-fuzzy controller on a mobile robot. Godjevac (1997) was first
studied the principle, method and algorithm and we adapt them for the
new Khepera III robot. The neuro-fuzzy controller was first validated in
simulation, then applied to control a real mobile robot.
The first step is to build an initial set of linguistic rules,
which is set up to run its assigned task. For adjust the parameters of
the fuzzy controller we used an adaptive algorithm similar to a neural
network learning. The learned knowledge can be represented in the form
of linguistic rules, which can be extracted from the adapted parameters
of the fuzzy controller and this is considered as the biggest advantage
of a neuro-fuzzy network compared to a neural network.
For the future, we want to resolve the "dead cycle"
problem that can appear on navigation of mobile robot and we want to
implement another behaviour for the Khepera, like reach a target.
5. REFERENCES
Godjevac, J. (1997). Neuro-Fuzzy Controllers Design and
Application, Presses Polytechniques et Universitaires Romandes, ISBN 2-88074-355-9, Lausanne.
Godjevac, J. & Steele, N. (2001). Neuro-Fuzzy Control for Basic
Mobile Robot Behaviours, In: Fuzzy Logic Techniques for Autonomous
Vehicle Navigation, Driankov, D. & Saffiotti, A. (Ed.), pp. 97-117,
Physica-Verlag Heidelberg, ISBN 1434-9922, Heidelberg.
Popescu C. (2006). Mobile Robot Navigation Using Fuzzy Logic For
Obstacle Avoidance, Bulletin of "Petroleum-Gas" University of
Ploiesti, 5th International Symposium on Process Control SPC 2006,
Ploiesti, ISSN 1224-8495.
Popescu C. (2007). Neural Network Techniques For Mobile Robot
Navigation, Annals of the University of the Petrosani, Electrical
Engineering, vol 9, pp. 332-338, ISSN 1454-8518.
Sugeno, M. & Murakami, K. (1985). An Experimental Study on
Fuzzy Parking Control Using a Model Car, In: Industrial Applications of
Fuzzy Control, Sugeno M. (Ed.), pp.125-138, North-Holland.
Tab. 1. The initial base rules of the controller.
Rule [D.sub.s] [D.sub.f] [D.sub.d] [D.sub.sp]
R1 Small Small Small Small
R2 Small Small Small Big
R3 Small Small Big Small
R4 Small Small Big Big
R5 Small Big Small Small
R6 Small Big Small Big
R7 Small Big Big Small
R8 Small Big Big Big
R9 Big Small Small Small
R10 Big Small Small Big
R11 Big Small Big Small
R12 Big Small Big Big
R13 Big Big Small Small
R14 Big Big Small Big
R15 Big Big Big Small
R16 Big Big Big Big
Rule vs
R1 Stop Stop
R2 Backward fast Backward slow
R3 Backward slow Forward fast
R4 Forward medium Backward medium
R5 Backward fast Backward fast
R6 Forward medium Stop
R7 Backward slow Stop
R8 Forward medium Forward medium
R9 Backward fast Forward fast
R10 Forward medium Forward fast
R11 Forward slow Backward medium
R12 Backward slow Backward slow
R13 Backward slow Forward medium
R14 Backward medium Backward slow
R15 Stop Backward slow
R16 Backward medium Forward medium