Introduction
Continuing on from the first project, this second project also provides you with an opportunity to apply
the methodologies you are taught in the lectures and hence to develop a beter understanding of them.
The project is designed based on Matlab Fuzy Toolbox and Simulink.
Assessment
Your project work wil be asesed based on the report you submit. Your report should include:
• The procedures and methodologies applied
• The results produced including the diagrams and critical analysis of them
• A printed hard copy of your report should be submited with a SATs cover sheet, to the EIS
Central office by the due date.
• A soft copy is also required for validation and asesment of you developed programs and
these ned to be firstly, incorporated into a single folder of the several files including your
report, Matlab and Simulink fuzzy controler files. This folder should be then compresed as a
single ZIP file (DONOT use RAR) and submited online via the “Submit Project-2 Zip file ”
on the Moodle site.
In spite of commonality of results, your report should not resemble any other report. In case of
identical reports, your mark wil be the mark of one report divided by the number of identical
reports.
PLANT and OBJECTIVE
The plant in this project is a mobile robot, which is required to move in a two-dimensional space from
a set starting location (X = 3.4, Y = 5.8) on the 13-obstacle arena provided (13OA-obstacle_data.m),
until it reaches the perceived (or only estimated) target goal location. In doing so it must also avoid
certain unsafe obstacles areas (iregular polygons) that are suspected mine fields. If the robot enters one
of these areas it may detonate a mine (Game Over). A simple 5-obstacle arena (5OA-obstacle_data.m)
is also provided to aid the development of your controller – simply copy and rename either arena file to
become: obstacle_data.m
Initialy the target location is only approximately estimated, and as the robot moves closer towards this,
clearer signals wil be received by the robot sensors, with higher signal to noise ratio. With these
stronger signals, more acurate determinations of the true target location become possible – hence the
final (or actual) target location may be diferent compared to its initial estimated location. Although
path planning is one approach to addresing this problem, you are required to develop an Inteligent
Controler to achieve this without pre-planning – that is you should utilise any coordinate positions in
your submited robot controller otherwise marks wil deducted.
Matlab code for the kinematics of the robot has ben already writen in order to simulate its dynamic
response in a range of contexts. Importantly, the motion and precise direction, or pose of the robot, is
achieved through independent control of both left and right wheels. The robot model also includes a
number of sensor mechanisms, which your designed controler can utilize, to guide progres towards
the goal, as wel as avoid any nearby obstacles. This has subsequently ben incorporated within the
Simulink environment, in order to facilitate the development of various inteligent control solutions.
Thus the robot model in this case represents a multi-input multi-output, or MIO system.
TASK 1 – FUZY CONTROL SIMULATION
Apart from developing a general Fuzzy controler to drive the robot to its destination, you wil also
need to capture data of your controller’s behaviour and responses. Several sections of data may ned to
be captured, and saved as training data for the alternative approaches of Task-2, such as custom
developed neural network controllers, or alternatively ANFIS optimisations.
You should provide plots of the complete trajectory of the robot as it travels to the target, as wel as al
input and output signals (on the same graph if possible), as wel as the rule surface in each case. You
should also report the odometer value, the total distance traveled by your robot in reaching its target.
Learning Objectives
On succesful completion on this part you should be able to caryout
• Complex simulation and modeling of control systems using Simulink
• Evaluate control system performance
Concepts
• Control system simulation
• Modeling Building of Fuzzy Inference System (Mamdani or TSK)
• Nonlinear systems proces dynamics
TASK 2 – FUZY ANFIS CONTROL
In this task you are required to develop Neural Controller, OR alternately an optimised Adaptive
Neural Fuzzy Inference System (ANFIS) controler for the same robot in Task-1. The second
alternative wil require you to convert your initial fuzy controller of Task-1 to an ANFIS equivalent.
This wil require you to compare al membership functions in the initial ANFIS system with those of
the former (Mamdani or TSK). Using the training data of Task-1 (and maybe now Task-2) you should
adapt and optimise the various membership functions using the “ANFISEDIT” tool. Once again
comparing the MF’s, and once again, provide plots of al input and output signals (on the same graph if
possible) as wel as the rule surface in each case.
Learning Objectives
On succesful completion on this part you should be able to implement and optimise a controler
developed as an Adaptive Neural Fuzzy Information System (ANFIS).
Concepts
• ANFIS fuzzy system control
• Inteligent controller optimisation
ROBOT TECHNICAL DATA:
Robot: two paralel whels drive the robot; the sped of each wheel can be set separately, this is given
as a Simulink model file, “RobotBlock.slx”. Apart from this there are two asociated but compiled
files, which are required for the simulation to work. If the robot collides with an obstacle, OR,
consumes al of its available energy resource, the simulation terminates, this may often happen as you
develop your fuzzy control system(s). The complete suite of files are contained in a zipped folder
“project2.zip” available on the Moodle site. Without a designed controller the simulated robot wil
move randomly and most likely enter a minefield.
activeSensor or “ob_loc” indicates
obstacle detected when within
sensor range
The multiplexed output of the RobotBlock model in Simulink, has ben conveniently de-multiplexed
with the following infrastructure, exposing the five sensory signals.
Target: is a circular Roundel type symbol =
Obstacles: obstacles here are represented as polygons with varying radii;
Block inputs:
vl : velocity of left wheel
vr : velocity of right wheel
range of vl, vr: [-2, 2]
Block outputs:
dis: is the estimated line-of-sight or radial distance betwen robot and target
activeSensor (ob_loc): the range of obstacle detection sensor is active within 0.5 meters
-9 = No obstacle detected
-5 = obstacle detected on the left side
-2.5 = obstacle detected on the left
0 = obstacle detected in the middle
2.5 = obstacle detected on the right
5 = obstacle detected on the right side
ultrasonic: sensor output in non linear units, value increases from 0 to 25 as the distance
decreases when within 0.5 meters of an obstacle that is ONLY directly in front of the robot’s
poised forward direction.
odometer: a record of the acumulated distance traveled by the controled robot
Theta: is given as the angle betwen robot pose (where it is facing) and target bearing angle.
An example simulation view explaining bearing and robot pose angle.
Note: In previous sesions the project-2 task involved various square or circular objects to
avoid, however since 2015 the robot should negotiate around (unsafe) iregular polygons of
unmapped land mine areas.