Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
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.