Weekly Updates

Week 1


Today our team discussed the feasibility of many design projects, but only got was finalized. We first proposed to do something with solar panels but when we asked TA Marko he informed us that to produce a sufficient amount of energy from a solar panel we would need a huge area, so we discarded of that plan. Next, we had an idea of making a sort of climbing robot, who's legs and arms would be inverted as it climbed up steps. We then realized that it would be easier to make a robot who climbed up a wall using the holes in the wall as stabilizers. We grabbed Kinects from the front and started to mess around with them, using them as gears to test the feasibility of our plan. This idea quickly died as it became more and more difficult to fabricate how we would achieve this. Finally, we came to a conclusion to build a Lego car with motion sensors that would give it the ability to maneuver through an obstacle course. TA Marko agreed with this idea and told us that it would be smart to test if we could make it parallel park first which we all agreed. At this time we realized that a plan of this action would require a lot of coding, so we all decided to use the coding skills we have and learn more. We then made a budget which is in now way finalized and a timeline which also needs a lot of work.

Week 2

Today, the team met at lab to discuss and brainstorm more ideas to further the research of our project. We looked at many new ideas to try to narrow down our approach and determine exactly how we wanted to build and program the robot. We started out by getting a LEGO MindStorm kit and trying to assemble a kit. We researched for some information on the internet and found out our best idea for the coding of the project to be RobotC. We also connected many of the sensors of the MindStorm kit and looked at real time values of individual sensors. We also found out that the kit we have doesn’t have all the necessary pieces, it was missing some important pieces. Not having the whole kit halted our progress from actually building the model car that we need. We researched online and looked further at ways we can implement our project by looking at some YouTube videos and some prices of a LEGO MindStorm kits and parts. We also hypothesized about the exact mechanism that we would have to go through and the possible challenges we will be facing when we come across the function of the project. We also decided that we will be following a different path to designing the project as well. Our new objective will include having the robot track and trace a line while still avoiding an obstacle on its way. We ended the day by deciding our next time to meet and get a new kit that hopefully has all the pieces we need.

October 17,2015

Today our team discussed the proposal that is due October 19, 2015.  While discussing the proposal we distributed the duties equally to each member and agreed to send it to one person to finalize the format, do a final proofread and add anything missed. However, while discussing the proposal we all realized how much of an important factor coding is in our project.  We designated our team member Farad to be the head of the coding part of this project because he has the most experience. He agreed to search for C++ coding books to learn more than what he already knows. We also agreed on all of us reading the book  when he finds it so we can all further our understanding of C++ and help each other when it comes time to start coding the Automated Transport Car (ATC).

Week 3

October 26,2015
Today a team member met up with Mr. Marko Janko at 1:30pm to obtain a complete Lego MindStorms kit. The team then met up in the school library a 2pm to further the progress of our engineering design project. Firstly, we began to build the robot’s body. Unfortunately, the process was halted because there where again, parts missing from the set. We build the robot as much as possible with the pieces we had available. Secondly, we downloaded the software we will be using to build the robot’s program. For this project we will be writing our code using the RobotC software. Team members familiarized themselves with the RobotC software by following introductory instructions and tutorials. This was particularly helpful to those team members who had none or little code writing experience with computer languages. The team also built and tested simple programs to better understand how the codes affect the ATC.  Thirdly, we decided to improve our means of communication. Some team member where having trouble receiving text messages from the group. We decided that to decrease or eliminate the frequency of missed text messages we would download an app that uses internet to send messages instead of cellular networks. We also identified a need for one hub that all team members could axes and edit its content. Therefore, we created a Google Docs file to serve this purpose. Finally, the team arranged to meet again on Sunday to begin testing programs on the ATC and to further its progress.


Week 4

October 25,2015
Today our team members met in the school library at 11am to continue working and progressing our engineering design project.

First, we started our meeting by connecting the sensors properly to the ATC, we checked and discussed which sensors we will need in order to successfully operate the ATC.

Second, we tested the light, Ultrasonic, and touch sensors to make sure they all work as needed.

Third, the team built and tested simple programs to better understand how the codes affect the robot. Moreover, we tested different motor commands; we tried moving the robot forward and backward for an interval of time, we tested the circle turns making the robot move in wide circles, then we changed the values to make the ATC turn around itself. We were also successful in making the ATC make right and left turns in a 90 degree angle. We then programmed the light/color sensor to try making the robot follow a certain line of the same color, we tried different colors and different sensors and we learned that light greatly affect the accuracy and the performance of the ATC's motion.

Finally, we tried to test the Bluetooth function and we were successful in giving commands to our robot wirelessly. The team created a google drive folder and arranged to meet again on Monday to continue testing codes and writing new ones.


Week 5

October 26,2015
Today my team and I continued to calibrate and test the capabilities of our ATC. It successfully followed a black line and we got the extra parts we need to add some more sensors. We are still trying to find a way to add the touch sensor to the front of the ATC and successfully attached the ultrasonic sensor to the ATC. Besides this, we further discussed our blog and ways to improve it. Upon this we changed our blog a lot and added many new sections. Our blog is now up and running with all of our bios, pictures and videos. We also went over the  major codes that are taking part of this project with the group to elevate everybody to the same level, as Adam and Abanoub are more in the designing part. All in all, today was a very successful day because of the progress made on our blog and the fact that we have a working ATC, which just needs some fine tuning.


















10/28/2015
Today, we met to discuss the algorithm that the ATC should take to accomplish the main tasks associated with the goal of this assignment. We want to be able to have the ATC track a line, sense an object through the use of the sonar sensor and the touch sensor. We started further discussing the methods of using while loops and if-else statements to get closer to our goal. We created a sample program that we think is going to get us closer to our goal, here is a sneak peak of the code:

#pragma config(Sensor, S1,     lightsensor,    sensorLightActive)
#pragma config(Sensor, S2,     touchsensor,    sensorTouch)
#pragma config(Sensor, S3,     sonar,          sensorSONAR)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

task main()
{
    while(SensorValue(touchsensor) == 0) //not hitting anything
        {
            while(SensorValue(lightsensor) < 50)//black region,
                {
                motor[motorA] = 0;
                motor[motorB] = 50;
                }
            while(SensorValue(lightsensor) >= 50)//light region, keep switching motor directions
                {
                motor[motorA] = 50;
                motor[motorB] = 0;
                }
        }
    while (SensorValue(touchsensor) == 1) //hits a wall
        {
        //back up
        wait10Msec(2000);//wait a bit first
        motor[motorA] = -25;
        motor[motorB]= -25;
        wait1Msec(1000);

        //Turn right at an angle
        motor[motorA]= -100;
        motor[motorB]=0;
        wait10Msec(500);

        while(SensorValue(sonar) >= 50)
            motor[motorA]=100;
            motor[motorB]=50;

        }
}


Week 6

November 1,2015
Our team met on Sunday November 1st to further proceed with the project and continue writing the codes for the robot to function as needed. The first thing we started doing is to assemble the ATC and connect the touch sensor in a more secure way in the front of our ATC, we then tried different code commands for the robot to do, like moving forward and stop or turn when it hits a random obstacle. We tested different surfaces for the light sensor to work properly and different obstacles to examine how the robot will react when it hit it. Finally, we continued our research for codes and how to program the ATC using RobotC program, and planned to meet again on Monday 11/2/15.

November 2,2015
In lab today our team decided that for our ATC to have optimal maneuvering abilities it is necessary to put the ultra sonic sensor on its own motor so it is capable of 180 degrees of rotation to detect possible obstructions on it's path. So upon this decision we started to build an arm consisting of a motor and the ultrasonic sensor to be mounted on the side of the ATC, taking into consideration where the motor is placed to avoid the ANC becoming top heavy. Another huge blow that we were dealt today is that our RobotC free subscription expired, leaving us with no software to run our programs on. We talked to TA Marko Janko about this problem and he directed us to another C++ based programming software that is compatible with NXT called BricxCC. Taking into account that this is a totally new language that we need to understand to program our ATC, with a couple weeks left until the project is due, we knew we all had to learn this program. We all took the incentive to learn as much as we can about this software through a tutorial that TA Marko Janko suggested to us. We also started to outline the draft final report and assigned sections of the draft final report pertaining  to each individuals own contribution to the overall project.

Week 7

November 8,2015
Today the group met in the library to finalize the construction of the motor-ultra sonic head on the ATC and reproducing the line track test from RobotC language to BricxCC language. We successfully installed the ultrasonic sensor to the ATC and translated the RobotC language to BricxCC language. After this translation, we tested the line tracking test and it worked successfully.



November 9,2015
Today the group met in the lab to finalize portions for the rough draft of the final paper due next week and to once again test the line tracking program for our ATC. Unfortunately, there seemed to be something wrong with the battery and brain of our ATC. We were unable to transfer the line tracking test to the ATC to test it. We called TA Marko Janko over to our table and asked him if he could trouble shoot the problem. After his trouble shooting he could still not detect what the problem was so he suggested that we just attain another battery/brain for our ATC. The first one he gave us still did not work so he gave us another, and this one worked perfectly. So when we tested  the line tracking test on the hardwood table we noticed that when our ATC would track the line, it would shake a lot trying to follow the line. We attributed this problem to the contrast between the line and the table, as if the contrast is not strong enough the ATC will have trouble following the line we set for it. To solve this problem, we tested the ATC on a white expo board and when we did this it worked much more effectively and we realized when conducting our final test, we must do it on a surface that has a high contrast with the black line we are going to use. Lastly, we agreed that Fabian to take the ATC home to see if he can work on making the ATC incorporate the touch and ultra sonic sensors into the program we are going to use.

Week 8

November 15,2015
Today the group met in the library to finish up the rough draft of the final paper and see how far Fabian got in incorporating the other sensors into our program. A problem that Fabian had was that it was very difficult to get all the programs to run at the same time VIA loops and needed Farad's expertise. However, Fabian did create one program which will prove to be very helpful in the ATC going back to the line after it has successfully dodged an obstacle. Fabian created a program in which the ATC will drive in circles with greater and greater radii to find the line it was once on. We tested this in which the ATC did make concentric circles however, because Fabian was inexperienced at looping, we could not get the ATC to find the line even after making the concentric circles.
November 16, 2015
Today the group met in lab to hand in the rough draft of the final paper and to brainstorm about ideas that could make the robot dodge obstructions in it's path. So, we went over exactly how the touch and ultra sonic sensors worked. When the touch sensor touched an object its value jumped from 0  to an arbitrary number depending on how far the sensor had been pushed in. For the ultra sonic sensor, when an object became closer and closer to the sensor a value started from 100 and counted down to 0, zero being when the object is as close as can be to the sensor. Understanding these properties we decide to try to formulate a program that when the ultra sonic sensor reached a certain value, the ATC stopped moving and made a noise. However, because our ATC will most likely never be hitting an object, we believe the touch sensor may become obsolete and discussed removing it completely. Finally, we agreed that Farad, the lead programmer, take the ATC home to incorporate all of the sensors together so we can attain a working ATC that can detect and dodge obstacles in it's path.

Week 9

November 22, 2015
Today the group met in the library to test all of the work that Farad has done over the week and what he did was successfully get the ATC to dodge an obstacle in it's way. He incorporated all of the sensors into the program however, we are still not making the ultra sonic head rotate on it's motor to attain more accurate sensing capabilities. What we have accomplished so far is incredible and shows us that we are extremely close to our final product which will be due in 3 weeks.
Week 10

November 30,2015
Today the group met in lab to finalize some things regarding the final presentation and project. We once again tested the ATC and realized that the ultrasonic sensor get distorted when there are other objects in the surrounding area of the ATC. This is most likely because we did not have enough time to get the ultrasonic sensor to rotate on it's motor making it less precise. From this implication we decided that during the final presentation we would show a video clip of the ATC dodging an obstacle instead a live demonstration to reduce the risk of malfunction. 

No comments:

Post a Comment