User:ZMougey/ENES100/Project1

Project Preference
1.Mobile Robot Hallway Navigation  2.Autonomous Power Wheel  3.Wind Turbine

Problem Statement
The task is to successfully navigate a LEGO Mindstorm robot around the first floor hallway of the CL building at Howard Community College. To complete the design phase the use of MatLab is required in order to design and create the algorithm that will allow the robot to complete the circuit of the hallway off of its own power and ability.

Week 1 Narrative
During the first week of working on the project my task was to create a diagram displaying the circuit that the robot is to complete around the first floor hallway of the CL building. Another task that I completed was that I identified troublesome areas along the hallway circuit that could possibly become an issue to the navigation of the robot.

These areas and objects include:
 * Doorways (open or closed)
 * Benchs
 * Pillars (any outcrops of the walls)
 * People ( walking or in hallway)
 * Objects that have been placed in hallway
 * Chairs
 * Other Hallways ( ST Building hall)
 * Display cases

From the previous groups I collected the measurements of the hallway and converted them into measurements that are easier read by the group members to get a better idea of the dimensions ( even though the algorithm may require a specific unit of measurements)

In the case that we decide to use a compass sensor with our navigation algorithm, it is important that we know which direction the hallways are facing. The diagram of the hallway also includes a compass which can help us if we use the compass sensor.

As described on the notes of the diagram, the CL building is not on a perfect compass access meaning that the hallways are not perfectly pointing west to east, or north to south. This is of useful knowledge if the use of a compass sensor is used within the design.

The layout and characteristics of the hallway are important knowledge to have during the design and creation of a algorithm. This knowledge can save time in troubleshooting as well as increase the quality of the algorithm due to a better understanding of the environment the robot is to navigate.

Week 2 Narrative
During week 2 my task was to complete an algorithm that involves the use of the ultrasonic sensor. The algorithm includes the use of 2 ultrasonic sensors. One sensor is pointed out the front of the robot and senses when objects or obstructions are in front of it. The other sensor is facing out from the left side of the robot to sense obstacles that are to the left of the robot.

Week 3 Narrative
During week 3, my tasks were to get the robot to avoid objects, successfully back up, and to create a flowchart. Overall, during the week progress was made and tasks were completed however after the work week, it is apparent that next week the project will require more time and attention to successfully complete to project.

To get the robot to avoid obstacles better, three ultrasonic sensors are mounted onto the robot. One sensor facing to the left, the next sensor is facing the right, and the last sensor is pointed forward. Three sensors allowed the robot to be able to "see" what is on three sides compared to the original design of only being able to sense 2 sides. Below is a picture of the new sensor setup of the LEGO robot.

Week 4 Narrative
My tasks for week 4 were to determine the best values for the motors, sensor distances, and times. The following code was created at the beginning of the week. The initial plan was to implement a design where whenever the robot detected an object in front of it, it would back up for a specific amount of time. Also the values of the maneuvers were adjusted from the previous week.

When I attempted to upload the new modified code onto the robot I received many errors and was unsuccessful at making the code work on the robot. After going through the troubleshooting and debugging within the Matlab program, i determined that the issue was within the Simulink "data store memory" block. After changing the settings within that block there was a great reduction of errors within the code. However when I attempted to uploaded the corrected code I received new errors involving the format of the code and the listing of the functions at the beginning of the code. The error that I received was based on "rmotor" which is listed at the beginning of the code algorithm. And continuous troubleshooting of this issue, I was unable to resolve the issue and get the new code to work on the robot.