Fill This Form To Receive Instant Help

Help in Homework
trustpilot ratings
google ratings


Homework answers / question archive / ENG5009 Design a matlab robot with fuzzy controller

ENG5009 Design a matlab robot with fuzzy controller

Computer Science

ENG5009 Design a matlab robot with fuzzy controller. Describe entire design process and testing of robot to see if it works
 

Introduction

This assignment is presented as a challenge within control engineering and is split into three parts:

The second part is to carry out Task 1 as described below

The third part of the assignment is to create a controller that is able to guide a robot through a series of points (Provided in Task 2) (within 0.05m radius of the point) while avoiding obstacles

The method you use to control the robot is to be presented in a report. Results should be presented and discussed. The report should provides a short description of the controller, the relevant input/output stages, and show the path that the robot followed. A description of the testing undertaken should also be presented. Improvements to the system developed could also be mentioned.

The report should be a MAXIMUM of 10 pages (not including appendices).

A guide to the marking of the report is provided.

Provided Resources

All resources that have been used in the labs to date will be available. You are free to use the Fuzzy

Logic Toolbox.

Task 1

Develop a controller that is able to drive the robot to a selected point. The position of the robot can be

assumed to be accurately know via state(19) and state(20).

The first stage of developing this controller is to establish the direction that the robot is required to drive

in. To achieve this you can use the following function to work out the required heading:

[booleanAtCheckpoint, newHeadingAngle] =

ComputeHeadingAngle( currentLocation, checkpoint, tolerance)

in which:

currentLocation – the current coordinates of the robot, you can use state(timeStep,19:20)

checkpoint – the coordinates of the checkpoint the robot is aiming for now

tolerance – if the robot is within an x meter radius of the target it is considered at the waypoint (use x

= 0.05)

booleanAtCheckpoint – returns 1 if the robot reached the checkpoint and 0 if not

newHeadingAngle – the heading angle to move towards the given checkpoint

Once implemented, provide a plot showing the robot driving through the following series of points (with

no obstacles) provided in Table 1.

Table 1: Points to travel through

Point Origin 1 2 3 4 5

X 0 1 3 -1 -3 0

Y 0 1 -1 -1 2 4

Task 2

Develop a controller that is able to drive a robot through a series of points (provided in Table 2) while

avoiding obstacles.

Table 2: Points to travel through

Point Origin 1 2 3 4 5 End

X 0 1.5 -1 -4 -1 4 0

Y 0 4.5 2 -1 -4 0 0

A map of the area is provided as Figure 1 below.

Figure 1 – Map to navigate through

This map can be generated by using the following code to generate the map.

% outside walls

[wall_1, obstacleMatrix] = WallGeneration( -5, 5, 5, 5, 'h', obstacleMatrix);

[wall_2, obstacleMatrix] = WallGeneration( -5, -5, -5, 5, 'h', obstacleMatrix);

[wall_3, obstacleMatrix] = WallGeneration( -5, -5, -5, 5, 'v', obstacleMatrix);

[wall_4, obstacleMatrix] = WallGeneration( 5, 5, -5, 5, 'v', obstacleMatrix);

% Obstacles

[wall_5, obstacleMatrix] = WallGeneration( -2.5, 2.5, 2.5, 2.5, 'h', obstacleMatrix);

[wall_6, obstacleMatrix] = WallGeneration( -3, -3, -3, 0.5, 'v', obstacleMatrix);

[wall_7, obstacleMatrix] = WallGeneration( 1, 1, 0, 0, 'h', obstacleMatrix);

[wall_8, obstacleMatrix] = WallGeneration( 1, 1, -2, 0, 'v',

obstacleMatrix); figure(1); clf; hold on; grid on; axis([-5.5,5.5,-

5.5,5.5]);

plot(wall_1(:,1), wall_1(:,2),'k-');

plot(wall_2(:,1), wall_2(:,2),'k-');

plot(wall_3(:,1), wall_3(:,2),'k-');

plot(wall_4(:,1), wall_4(:,2),'k-');

plot(wall_5(:,1), wall_5(:,2),'k-');

plot(wall_6(:,1), wall_6(:,2),'k-');

plot(wall_7(:,1), wall_7(:,2),'k-');

plot(wall_8(:,1), wall_8(:,2),'k-');

xlabel('y, m'); ylabel('x, m');

pur-new-sol

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE