关键词 > ENG5009

ENG5009 Advanced Control 5 Assignment

发布时间:2024-05-11

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ENG5009 Advanced Control 5 Assignment

Introduction

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

1.    Create a controller that can control a mobile robot to a selected waypoint,

2.    Create a controller, or combine two controllers, that can command a mobile robot to follow a series of waypoints while avoiding obstacles.

You will be required to write a report on the approach you took to complete the tasks outlined. This should include:

•    A description of the controller used, or controllers and method of switching,

•    How the parameters for the control system were selected,

•    Highlight and describe any testing carried out,

•    Results should be provided and discussed,

•    Improvements, if any, should be highlighted.

If you are notable to complete the waypoint path, then a detailed report on the approach you took, the debugging steps you undertook (with results), and the how you would work towards completing the challenge is acceptable.

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

A marking scheme is provided on the course Moodle page.

For the report astandard engineering report structure could be followed a, for example:

•    Introduction

•    Methodology/Approach

•    Testing

•    Results

•    Discussion

•    Appendices

All resources are provided on the course Moodle page, and you can ask for help in the laboratories and over email.

You are also free to use the Fuzzy Logic Toolbox but ensure justification of the methods used is made.

Task 1

Develop a controller that can drive the robot to a selected point. The position of the robot can be assumed to be accurately know via robot_x and robot_y.

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 workout 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 you have implemented the above controller, provide a plot showing the robot driving through the points provided in Table 1 consecutively.

Table 1: Points to travel through

Point

Y (x-axis)

X (y-axis)

Origin

0

0

1

-1

-1

2

-3

1

3

1

1

4

3

2

5

0

-4

Task 2

The final stage of the assignment is to create a controller based on either fuzzy logic,a Neural network or a combination of both, or any other suitable controller that can be justified, that is able to guide a robot to a particular point (within 0.05m radius of the point) while avoiding obstacles.

Table 2 provides the point that are to be travelled too consecutively. Figure 1 provides the map in  which the robot is to operate in. Code snippet 1 provides the required. It should be noted that the outer edge of the map is also considered an obstacle.

To add in the obstacles uncomment the relevant lines of code in the code file.

Table 2: Points to travel through

Point

Y (x-axis)

X (y-axis)

Origin

0

0

1

-1

-1

2

-3

1

3

2

1

4

3

-3

5

-3

-3


Figure 1: Map of environment robot is to navigate in