CS 3490


Enrique Casana O.

Francisco Javier Tapia

Jose Antonio Garcia

This was the scenario for our final project. A person new to the Computer Science needs to find one of the professors in our department. That person would obviously appreciate some help in finding the desired office, some kind of guide. This is where our robot comes in, we had to turn it into the Computer Science department guide.

Basically our robot would be placed at the entrance to the CS department, it would display a menu with options to show the way to the offices of all the teachers in the building, after an office is chosen the robot will proceed to that office, after the office is found the robot will return to itís original position at the entrance. When analyzing the project one of our main concerns was the existence of other people in the hallways at the same time as the robot. Our robot would have to distinguish between a person and a wall.

Another problem we had was the robotís inability to advance in a straight line down the hall. Our robot would invariably choose to veer to any of the two sides when traveling to its destination thus getting to close to the wall and getting stuck. To solve the first problem we decided that since a person should get out of the way as soon as the robot is spotted coming towards he/she, the best thing to do was to wait until the robot was noticed and the person gets out of the way, this might not be the best solution but time constraints did not allow for a more effective approach. To solve the second problem since we could not stop the robot from deviating, we decided to "re-aim" it when it got too close to a wall. In other words if it got too close to the right wall the right sonar would detect it, our robot would stop and it would turn a couple of degrees to the left, the same thing would happen if the left wall was encountered.

Now that the robot could travel down the corridor, we had to analyze how it was going to get to the offices. The assumption was made that all the doors to the offices would be open in order for the robot to find them with itís sonars, otherwise another system (coordinates) would have had to be used. The department had to be analyzed in order to come up with the best algorithm. While doing this we noticed two things that would make things easier for us. One was the existence of two basic clusters of offices, out of a total of ten offices, four could be found following the left hallway, and the rest could be found following the right hallway. The other thing noticed was the existence of two points, one on each side, that concentrated the offices. These points would be common points to where the robot would have to get, in order to find the rooms. There was also an office in each side that was not in a cluster, Dr. Gelfondís in the left hall and Dr. Kreinovichís in the right hall. After these facts were identified we decided to make them an integral part of our algorithm.

In order for our robot to get to any office it would first have determine in which hall the office is located, after this is determined the hallway has to be found and entered, if the office chosen is part of a cluster then the robot would then proceed to the key point in the hallway, once there the robot would then proceed to the desired office. To return to the original position the robot would return to the key point and then follow the same path back. If the office chosen was not part of a cluster the a particular set of instructions would be followed in order to find it.

Before we tested our program in the departmentís hallways it was tested in the simulator provided to us, once it worked there it would work in the real thing, or would it? Actually, as we found out not necessarily. Our program was working just fine in the simulator but once we transferred it into the real robot all it would do was turn in place. It was not after a lot more work was done that we proved what our Professor had told us before, "that is the hard part".