Tuesday, May 26, 2009

Introduction to Robotics Experience

This is the final blog entry for the Robotics Class.

In this class, I learned lots of things about robot. From constructing a robot to investigating new fuction, and completing creative activities.

First of all, I learned very functional ideas about construction of the robot. During the class, I learned the importance of modular construction and using it effectively.
Modular construction is the fuctional construction, where I can customize the robot very easily, with built up parts, and connections. Because of this modular construction, I could easily change the types of robot, and go smoothly to next new activities.

Second of all, I learned about how to program the NXT, and how to use it effectively. The NXT programming is one of the most important part of this whole class, as it control and orders robot what to do. The NXT programming is very easy, that I just have drag many individual icons, which already has action in it. However, as I starts to build harder and complexed program, the programming gets really hard. I have to use switch block, to fuction more than two different action depends on each different situation. Most importantly, the My Block became the most important. This organizes certain actions into one block, and it is helpful to make the complexed program simplar, and shorter.

Third of all, the most intersting parts, I learned about using four different sensors to complete many creative investigation. I studied all four sensor, light, touch, sound, and ultrasonic sensor. As I completed learinng about these all four sensors, I had to use all these sensors to complete the activity which is Obstacle Course. It was really interesting, as it required creativity, modular construciton, pro programming, using all four sensors.

The knowledge of science and math were also essential parts to complete activities. I had to use math to calculate angle and distance, so that I can make the robot to turn exactly 90 degrees, or exactly go for 5 meters. Science was required, for friction and balance. When I was doing the activitly called "Drag Race", the friction of the tires were important, so that I can make the robot faster or stronger. Also, I always had to think about the balance, so that the robot will not shift right or left, when going straight.

The reason supported me to prove things out during the course. As I investigate through, perfect reason was required to prove certain things. Also, the several theories were proved by going through the activities.
Communication and collaboration were very helpful. I could always talk with friends to have better idea or get new idea. Sometimes, friends were needed, when I did not know how to do or understand. As I communicate and share ideas with other people, my robot became more creative and lively.

As a whole, this class and robot investigation were interesting and never kept me bored.

Continue Automated Mining Robot

In the continue section of the automated mining robot,
I investigate deeper side of the automated mining robot.
There are still lots of thing that can customize and investigate more about the mining robot.

As I introduced using light sensor in the contemplate section, the continue section investigates about the darkness and lightness.
By adding ultrasonic sensor and light sensor together, the automated mining robot can decide where to go depends on the distance and also the lightness.
For example, light sensor will be helpful to find where the place is close or open.
Moreover, there are three condition which can be checked by the robot.
Darkness: to be sure the it is in the main shaft
Light: to know when it has found an opening
Condition: between darkness and lightness in case other conditions should be added and checked.

Also, the continue section talks about the emergency stop.
Because mining shafts is under full of dangerous condition, the sensor will help to immediately stop the robot, when the dangerous thing is sensed (for example, hole or huge object).

For example, touch sensor can be very helpful, in order to save the robot from crushing and destroying the robot itself. When the bumper is pushed, the robot will act emergency stop, and the robot will be saved.

PS: First picture is Automated Mining Robot with light sensor
Second picture is showing the emergency stop

Sunday, May 24, 2009

Contemplate Automated Mining Robot

The robot knows which way to continue mining by using the ultrasonic sensor.
I use the switch block to decide which way to keep mine.
The robot will take two records of ultrasonic sensor comparing values of left and right.
The robot will decide which way to turn by comparing values.
I of course use the switch block to decide.
For example, when the value of right is higher than value of left, then the robot will turn left.
Then, when the value of left is higher than value of right, then the robot will turn right.
The value is measured by how far away the wall from the ultrasonic sensor is.

By this function, which measures the value of the distance, and deciding which way to go, the robot can decide which side to keep mining.
This technology is helpful to anywhere, which requires distance measurement and right or left decision making. Besides mining, it will helpful to complete maze (to find the free space).

In addition, besides ultrasonic sensor, other ultrasonic sensor is very helpful too.
For example, sound sensor will help to go to the place, where the sound is heard.
And the light sensor will helpful to go to light or dark place.






Monday, May 18, 2009

Constructing Automated Mining Robot !!!

In this project, I have to build automated mining robot, and investigate about it.

First of all, I need to build the robot.
During building the robot, I met many new functions of the robot, that I did not know.

The shape of the mining robot was totally different with the NXT robot. For mining robot, the NXT is flat and lying over the base (wheels, and supports, which holds NXT). This robot has total of 4 wheels, and looks strong and heavy. Moreover, the robot uses 3 motors, 2 for wheels and 1 for ultrasonic sensor.

When the robot moves, the ultrasonic sensor is made to be movable. There is a black circular base, which holds the ultrasonic sensor. And this base is connected to two cross sticks, which rotates the base. By this function, the robot is able to make the ultrasonic sensor to move.

Moreover, because the motor is reversed, in order for the robot to go forward (front: ultrasonic), the motor has to rotate the wheels backward.

First picture shows the base of the robot, which is without the NXT.
Second picture shows the completed robot, with NXT.
As you can see, the left side is the front of the robot, which is with ultrasonic sensor.


Chapter 12: Decisions, Decisions

This chapter 12 introduces the final block in the Common Palette.
The final block called switch block.
The switch block allows the robot to do more than two different actions, depends on what the sensor has sensed.
The switch block is worked by the sensors, and digits.
For sensors, the switch block will have two different action, whether the sensor has sensed something or not sensed anything.
For digit, the robot can go to more complicated, which sensors are more organized, and can do more than two different actions.

For example, when the robot is using the light sensor switch block.
I can use the switch block to make the robot, to go forward, when the sensor senses light, and stop when the sensor senses dark. The switch block easily allows you to program and make the robot to performs.

The switch block is siginificantly important, when the robot is going to be automated, and under the condition when the robot has to choose what to do, and do action by its decision.

In addition, the switch block makes the robot more human like, where it collects data by itself, and decide what to act, and do it by itself.

Video for Obstacle Course

Obstacle Course Day 4: Finale


The final report for the obstacle course!!!
Now, I have accomplished the obstacle course.
Last time, I reported that the my robot is stopped at avoiding the object.
I made a program for that, and made my robot to senses 10 cm before,turn right, go forward, turn left, go forward, the stop at black line.

But the one problem made to me to fail the test for obstacle course.
I could not figure out, how to make the robot to avoid the object, when the robot senses the object, and just pass through, when the robot did not sense the object. It was hard, and I spent lots of time with it. Finally, I found out the way to make the robot to do that action. I have to use the switch block of ultrasonic sensor. When the ultrasonic sensor senses the object, the robot will straightly go into the action, which the robot will avoid the object. When the ultrasonic sensor does not sense the object, then the robot will just straightly go forward and stop at the black line, without avoiding object, because there is no object to avoid.

Finally, I retest the obstacle course, and succeed to finish it.

The picture shows the final robot, which I used for obstacle course.

Tuesday, May 12, 2009

Obstacle Course Day 3: Test


Until now, I have accomplished 70% of the Obstacle Course. My robot can go from starting with clap, stop in the box for 5 seconds, then bumps the wall and turn right, then go forward and stop when the ultrasonic sensor senses the wall.

I now tried to do the part, where my robot has to sense, then avoid the object. It is hard, as my robot has to function and lots of turning and sensing.

I am right now stuck with the part where the robot has to turn right, go forward for little bit, then turn left, after sensing the object by ultrasonic sensor.

I think I can finish until the dead line, but does not feel fully ready to complete the challenge.

Wednesday, April 29, 2009

Obstacle Course: Day 2 - Program

today, I will work on the section of touch sensor and ultrasonic sensor. My robot is right now able to complete the tasks until sensing the black line, and staying inside the box for 5 seconds. \

I will write the program for my robot, of bump into the wall, go backward, turn right, sense the wall before bumping, and stop.

For the task, which robot bumps to the wall, and goes backward. I will use touch sensor. Touch sensor can sense object by hitting to it. I will make the robot to go backward, and turn right, after when the touch sensor is bumped by the wall.

For the task of sensing the wall without bumping to it, I will use ultrasonic sensor. Ultrasonic sensor can sense the object in front without hitting to it. And then I will make the robot to stop and turn right, after the ultrasonic sensor sense the object near.

Monday, April 27, 2009

From the reading of Chapter 11, I learned about loop block. Loop block allows the user to repeat the action of robot, without any complex program. Just put the actions (which the user wants) into the loop block. Then the loop block will make the robot the run the program for certain (decided) amount of time. The user has four choices for the loop block. The user can make the robot to run the program for forever, for until some kind of sense, for certain amount of time, for logic, and for count. The user can easily change the loop block's option, and also to run it. At the end of the Chapter 11, the book talks about the nested loop. It allows the user to loop something then have the program do something else then repeat all of it again.

From the reading of Chapter 12, I learned about switch block. The user uses the switch block, when the user wants the robot to do certain action, when there is something, and do another action, where there is not something. Which means, that the robot will have two option depend on whether it senses something or not. Moreover, the switch block allows the robot to do more than two different actions depend on situation. It is useful, as it makes the robot to move various ways, and be more lively.

Obstacle Course Challenge

In this challenge, I need to make a robot, which passes obstacle courses, composed by total of 6 missions.

1. Start w/Clap
2. Stop 5 sec in Box
3. Pump Pillar, then Back Up & Turn Right
4. Sense Wall, then Turn right w/o touching it
5. Avoid Obstacle
6. Stop after line.

I must need all the sensors (touch, sound, ultrasonic, light, and motor) to complete this obstacle course.

For the 1st one, I must need sound sensor, as the robot has to be able to hear a clap sound.
2nd one, I will use motor sensor, as the motor sensor measures the time of rotating the motor.
For the 2nd one, I might also can use light sensor to complete 2nd mission. Light sensor will detect the black line, and the robot will stop, after sensing and passing the black line.
3rd one, I obviously need touch sensor, as the robot has to bump pillar.
4th one, I require ultrasonic sensor, as the robot can not bump, and has to be able to detect the wall.
5th one, I think, I should use ultrasonic sensor, so that the robot will not hit the object, and change direction, before passing the obstacle.
For the 6th one, the light sensor will help my robot to finish the course, as the sensor will detect the black line, and makes the robot to stop.

Thursday, April 23, 2009

Field of View Experiment

In this experiment, I investigated the field of view of ultrasonic sensor. As a result of this experiment, I would be able to find the width of ultrasonic sensor.




I measured the field of view of ultrasonic sensor, by marking the spot where the robot can detect in most widely. I measured by using spray can (picture 3).

Picture 4 shows, when I was measuring the field of view by spray. The middle black line is just a marker to show the distance from the robot. Each black tape symbolizes that 10cm, and if the tape is 5th one, then it means that the tape is about 50cm from the robot.

The last picture shows the final field of view of my robot.
I first expected to just get wider as the object goes further away, however, mysteriously the field of view was a shape of snowman. The width of view became wider, but shorten in 30cm, gets wider again and get shorter in about 70cm, then gets wider again.

In addition, the detecting object is really determined by the shape of the object, and if the object is flat, then the robot will pick it up more easily.

Thursday, April 16, 2009

Line Tracking

From the investigation of light sensor, I did project called "Line Tracking".
This project is to make the robot to trace the line automatically by using light sensor.
In this project, I made the robot to trace black tape, which is pasted on the white floor.

First, I attached light sensor in front of the my robot.
Second, I made the program for my robot to be able to trace the black line.
Actually, there are no forward motor actions included in the program.
This program is just with 'wait for light', 'turn right', 'turn left', and 'repeat infinitely'.

About light sensor, I first set up the threshold for the sensor. Threshold is for to separate two lights, light and dark, and able for my robot to be able to sense two different lights. I took the average of measurement of black line and white floor. And let's say threshold is 50.

When the threshold is set, I made the robot to do specific action depend on what sensor senses. I made my robot to turn left when the light sensor senses dark light (black tape). Then, I made my robot to turn right when the light sensor senses bright light (white floor). This makes the robot to be able to trace the line. When the light sensor senses dark light, then the robot will turn left, which means that the light sensor will be out of black line, and now sense white floor. Then the robot will turn right, as the sensor senses bright color. Then, then sensor will be back on the black tape, and turn left again.

I made this turning right and left, to repeat infinitely, so that the robot can trace the line. When the robot is turning right and left, the robot is actually going forward bit by bit. Therefore, when the robot's action is repeated, the robot is tracing the line, and actually going forward.

Moreover, I am able to change the rate (speed) of robot of tracking the line. When I do the default (first) one in very fast mode (100%), then the robot will totally go wrong direction and not able to track the line properly. (maximum speed for default setting of robot is about 30... very slow) When the robot is tracking a line in fast mode, the swing of the sensor gets wider, and the robot is actually going over the black line without sensing the dark color. In order to make the robot to track the line in fast rate, I most shrink the swing, so that the light sensor will not go over black line and not sense it.

In order to solve this problem, I changed the location of the sensor. I attached the light sensor behind the robot. When the light sensor is attached near wheels, the swing of the light sensor will decrease. So, now I can make the robot to track the line in full 100% speed. In addition, I made the whole program to go backward (just change the motor's direction), so the light sensor will be the front of the robot, when tracking the line (going forward).

PS:
First picture shows my robot with light sensor attached on back side.
Second picture show the program for my final robot, which robot is going backward (in a way forward).

Tuesday, April 14, 2009

Pictures for Line Tracking


Ch.4: Reading Sensors

From the reading of Chapter 4: Reading sensors,
I studies various types of sensors.

There are mainly four types of sensors, light, sound, touch, and ultrasonic.
Each sensor has a specific way to use, and all sensors are valuable in different situation.

Light sensor might be useful, when the user wants the robot to sense the light of dark and light, and do certain action depends on the light the sensor sensed.

Sound sensor might be useful, when the user wants the robot to do specific action, when the sound is played, or stopped. The user will be able to control the start and stop of the robot from far away, by just making the sound.

Touch sensor might be useful, when the user wants the robot to do specific action, when the touch sensor is being pressed. For example, make the robot to change the direction, when the robot crushes to something.

Ultrasonic sensor might be useful, when the user wants the robot to do specific action, when the sensor senses some kind of object in front of the robot. This sensor will allow the robot to change the direction without crushing to something.

For using the light sensor, I need to take care of threshold. Threshold will divide the difference of light into two parts, light and dark. This will be very important, as it allows the robot to do two types of different action, when the light sensor senses dark and light.

By using light sensor, and the appropriate program, the robot is able to follow the line. In order to do this, there are steps the user must follow to make its robot to track the lines. Firstly, the user needs to set the threshold for robot, in order for robot to be able to sense dark and light. Secondly, the user needs to make a program. The program should have two actions. Turn right, when the light sensor senses dark. Turn left, when the light sensor senses light. Thirdly, Make the program to repeat infinitely.

The robot is not actually going straight. The robot actually traces the line and moving forward by turning right and left repeatedly. Let’s say that the line is dark.
The robot’s light sensor will sense the dark line, and turns to left, as the sensor sensed dark. Then the robot’s sensor will be out of the dark line. Now, the sensor will sense light, and as programmed, the robot will turn right. Then, the sensor will go back to the dark line again, and turn left. When these right and left actions are repeated, at the same time, the robot is moving forward by little and little. This is how the robot traces the line.

Monday, March 23, 2009

Ch 9 - 10 Feedback & Wait for it!

From the reading of Chapter 9 ~ 10, "Feedback & Wait for it!"
I learned about sensors.

First, I learned about condition.
The condition is the thing, which the sensors can detect and react on.
Which means that, the program and the robot wil perform specific actions based on the conditions of things.

Then, I learned about each five different sensors.
In NXT, there are touch, sound, light, ultrasonic, and rotation sensor.
Touch sensor has a button in front of its sensor, and the robot will do specific action, when the button is pressed or released. It is useful, when you want your robot to avoid being crushed with e wall or object.
Sound sensor is a sensor that does certain action depend on the sound. When the sound played or stopped, the robot will do specific action, and that sound is recorded by the sound sensor. If there is no sound sensor, the user is not able to start robot with crapping.
It is useful, when you want your robot to start, when the sound is played, or after a sound the robot will start its program.
Light sensor, is a sensor of light. It is able to compare the lightness of the object with atmosphere, and does specific action, depends on the amount of light.
It is useful, when you want your robot to do program in the dark place, depend on the small light, or to follow the line that is darker than other atmosphere.
Ultrasonic sensor is a cool one. It sends out the ultrasonic wave from the sensor, and absorbs the bounced back waves. During that time, the sensor also measures the time the wave took to bounce back. It can determine, how much the object in front of the sensor is away from the robot.
It is useful, when you want your robot to detect nearest object from your robot, or to change its direction, before crushing to the object. It can escape, as the robot knows how far the object is from the robot.
Last one is rotation sensor. It is the sensor, we most commonly use. It is sensor attached into the motor, and measures the rotations, degrees, or time the motor is running.
It is useful, when your robot to stop its motor, after certain amount of rotations, or degrees, or time.

Wait block is most important block for sensors, as all five sensors require wait blocks. It determines the specific information about eh sensor, for example how much, how far, or how long. It simply means, the robot will wait for specific measures, until it meets the sensor program, or complete.

Frequency and Amplitude

From the investigation of "Frequency and Amplitude", I investigated the relationship with sound sensor and the sound.
First of all, I learned about the sound.
There are two things included in the sound we hear. The frequency and amplitude. This two things have very huge affect on the sound, and changes it.
The frequency of the sound is the pitch of the sound.
For example, when the frequency increases, the pitch also increases, and the sound will be higher.
The amplitude of the sound is the volume of the sound.
For example, when the amplitude increases, the volume also increases, and the the sound will be louder.

In this investigation, I tried to find which of these two things affects sound sensor.
I first tried with frequency. There are four sounds recorded in the computer,which each has different frequency. If the frequency affects the sound sensor, the measure of the sound on the NXT screen should change. However, it did not, even the frequency changed in great matter, the sound measure did not really change. Therefore, I can state that the frequency does not affect the sound sensor.

Second, I tried with amplitude. Again, I just did same things of frequency to know the affects. When the four different amplitude was played, the measurement of the sound greatly changed. It went up, as the sound got higher and higher. Therefore, I can state that the amplitude does affect the sound sensor.

From this investigation, I learned that the measurement of the sound showing on the NXT screen is actually the amplitude of the sound played. When the amplitude of the sound increased, the measurement of the sound on the NXT screen also increased.

Wednesday, March 11, 2009

Drag Race & Tractor Pull


This time, we did a competition of Drag Race. I was also solo at this time, and my goal is to build fastest robot in my class. In drag race, I need to make the fastest robot, and takes the time of distance for 3m.

In order to build the fastest robot, the gear ratio has to be close to 0. From the previous investigation of gear ratio, I learned that, when the gear ratio is close to 0, then the speed of the robot will increase.

Therefore, I first build the Gear ratio of 8:40. This gear ratio is the fastest gear ratio that I can make from my LEGO sets. However, when I loaded 8:40 gear ratio to my robot, it did not move. As I went through all the causes of this problem, I found that the power of the robot is too weak, that the gear can not afford the power to roll the wheel on the ground. My robot moved, when the wheel was floating, however as soon as it touched the ground, the motor stopped moving. It is because, the certain power is needed for wheels to roll on the ground, which has friction. And it is just that, 8:40 gear ratio could not afford that certain power.
After the fail of 8:40 gear ratio, I decided to lower my gear to second highest. The second highest gear ratio is 8:24. There is very slight change between 8:40 and 8:24 gear ratio. When I load the 8:24 gear ratio, the robot actually moved properly. After finding out the most suitable gear ratio, I tried to light my robot as light as I can. In order to make the lightest robot, I just simply changed the gear ratio and size of the wheel bigger. I did not put anything, and it is just like a standard NXT robot. My time was about 2.3 seconds, and it was fast!!!

PS: The above picture is 8:40 gear ratio.



After the experiment of Drag race, my class moved into next competition, which is Tractor Pull. In this competition, I need to build a robot, which can pull the heaviest weight. The minimum weight the robot needs to pull is 3000g, which is 3kg.

In order to build the strongest robot, the gear ratio has to be bigger. From the previous investigation of gear ratio, I learned that, when the gear ratio is bigger, then the power of the robot will increase.

Therefore, I built the gear ratio of 40:8. I can know that this gear ratio is bigger than 0, and the biggest by solving the fraction. 40/8 equals to 5, and it is definitely bigger than 0, and the biggest number. In order to give more power to my robot, I added third motor in front of my robot. By having three motors, the power of the robot increases, and makes for robot to be able to pull heavier weights. Of course, the gear ratio of three motors are all equal, as I need to balance my robot. Furthermore, I put more wheels to have friction, which eventually increases the power of my robot. There were two wheels at each front and back side. I added two more extra wheels to each side. Also, I put small wheels at back side, and big wheels at front side, in order to keep the robot stable, and not jump off. When the friction of the robot is greater, that much amount of force going to bigger surface, and makes the robot to have stronger power. My robot became huge, and seemed that it has strong power.

When I tried for competition, my robot easily pulled the weight of 3kg. The time for pulling 3kg weight is about 7.38 seconds, and it was second fastest time in my class. For the second try, I decided to pull heavier weights. My robot also easily pulled 5kg weight, and the time was 10.26 seconds. I should have tried for heavier weights.

PS: above picture is 40:8 gear ratio.

Tuesday, March 10, 2009

Ch.6 Building Strategies

From the Chapter 6 "Building Strategies", I learned strategies to make my robot more complexed and advanced.
I especially, put my focus on the section called "Loading the Structure"

In the section of "Loading the Structure", I learned strategies to how to support the weight of my robot.

In order to make load carrying more efficient, there are several factors that I should consider. First factor is about friction. I need to take all possible precautions to minimize it. Friction makes the robot to move harder, and slower. Second factor is to make the wheel as much as closer to the supporting beam. It is for to prevent the axle to be bent (unstability) , and to reduce the resulting force on the axle.

Third factor is about the best configuration for placing my gears. I should put gears next to the supports to reduce or elminate any gear slippage. Also, two supprting beams are better than one, as the robot will get more stabilized, and hard.

Fourth factor is about the gears in-line with supporting beams. It is for axles to run thorugh the holes in the beam being used for support. In addition, the gears should be near supports.

The position of the NXT has a strong influence on the behavior of moblie robots. I need to think very carefully about the shape and the weight of my robot, for each experiments and missions.

Thursday, March 5, 2009

My choice: CH 13: the STOP Block

This Block is like an emergency stop button.

"If your robot encounters a STOP block at any point in the program, the robot will simply stop at the point with no further action."

Usually, the robot will stop, when it completes the all the actions, which are programmed.

However, this STOP block will immediately stops the robot, no matter what action it was doing, or have not completed all the programmed actions.

Only the exception is when you are using a data wire and is providing a false input. (I need to go further to explain about this. Will learn later.)

This block will be useful, when I want my robot to just stop and do not do any action.
Also, if I want my robot to stop from going forward, I usually put 2 move blocks, which says stop. But, putting one STOP block, I can stop my robot from going forward, and it saves space and effort.

Tuesday, March 3, 2009

Circuit RACE!!!


This program you are now seeing is for the Circuit Race. Today, in the Robotics class, we did challenge of Circuit Race. This race is to see, whether you can program a robot, to go around a square. The student with fastest robot will earn a prize (extra credit).

The course is made by black tape. At race time, boards and things are put inside the black tape, to not to let robot to go inside of the course (square). During the race, if my robot touches the object inside the course, or go inside of the course, then I will get panelized for that.

For this race, I used large wheel, in order to move the robot faster. Also, because one wheel on each side seemed to be unstable, I put two large wheels on each side. However, during the race, it acutually did not work. During the race, my robot kept bending to the right side. I should have used, small wheels, so that the my robot will be stable.

In order to program my robot to go around a circle, I found out that, I need total of 4 simple programs combined into one. 1st one is just simply going forward, then stop. 2nd one is turn right, then go forwad andstop. 3rd one is same as 2nd one. Then finally the last program is same as 2nd and 3rd one.
When you see the picture of my program, 1st line is 1st part of the program, and 4th line is 4th part of the program.

In the program, I first measured, how much I have to go forward for. By measuring the length of the race, and doing some calculations, I found out that the degrees of rotation of motors should be 3900 degrees. For the width of the race, I calculated and got 3800 degrees.
I had huge problem in measuring a degrees of rotations to turn right. (mention later) For the turning right, I used point turn, because it is more stable, and I do not have to calculate extra distance.

At 1st race, I failed to complete the race. I was really depressed, and when back to my lab station. My robot did went straight, but at turing right for first time, my robot turned to much and hit the object inside the course. After doing so many test, I found out that, there was a problem in measurement of degrees of rotations to turn right. My degrees was 130, and that was to huge to just turn right side. I calculated again, and fixed to 80 degrees.

At 2nd race, I succeed to finish the race. Because of the mistake of calculations made in my problem, I failed to complete the race by once. I learned that, I need to calculate the measurement more precisedly.

But, my time for the race was 2nd place, and I got extra point of 1. (which is really little :( )

Overall, I enjoyed doing this race, and also im happy that I learned something new.

Sunday, March 1, 2009

Ch.2: Playing with gears

In this chapter, I learned the relationships between two gears, one on the motor and one on the axle.
This determines, how fast or slow the wheel moves, and is very important in changing the speed by changing the gear.

I think, this relationships of two gears are also included in the car. I heard that, as driver changes the gear, it means that the relationships of gear changes whether to big to small, or small to big.

I read in the chapter that, there are three relationships of gears.

If I have a large gear on the motor and a small gear on the axle, then the robot will move faster, as small gear on the axle turns more than the large gear on the motor. It is because of the difference of circumference. As the large gear on the motor rotates once, the small gear on the axle rotate more than once. The small gear on the axle has less circumference and it always rotates more than the large gear on the motor. Therefore, the small gear on the axle (which is actually wheel) rotates more, in the one rotation of the large gear on the motor, and the robot will move faster.

If I have a small gear on the motor and a large gear on the axle, then the robot will move slower.
It is just opposite of my first statement. The small gear on the motor has less circumference than the large gear on the axle, so I can easily know that small gear rotates more. Moreover, in order to rotates the large gear on the axle once, the small gear on the motor has to rotates more than once. Therefore, the large gear on the axle (which is wheel) rotates once, in the many rotations of the small gear on the motor, so the robot will move slower.

If I have a same gears on the both side, the motor and the axle, then the speed will be moderate (just only depends on the speed of motor in the program, or size of the wheel). It is because that, there is no difference between two gears, as they have exactly same circumferences. There is nothing about rotates more or less, as they rotate same amount. Therefore the speed does not change, as they rotates together, in same amount of circumferences.

Wednesday, February 25, 2009

Chapter 4, Right Turn, Measured Turns

Chapter 4 is about the move block.
This move block is very convenient for us, while we are programming.
It lets us to control more than one motor in one icon, and we can also change the power of each motor. It saves a lot of size of the programmed icons, and programmed file. However, the problem for this move block is that, the direction is always same. Therefore, I can not do some kind of movement which requires two different direction of motors at same time.

In the investigation of Right Turn, I learned how to rotate my robot. There are two ways to rotate my robot, and are swing turn, and point turn. They both rotates, but the movement of motors are different, and their whole movements are slightly different. Swing Turn, is when I only use one side of motor to rotate, which measn the one of the two motors will only move, and another one will not move. Oppose to this, Point turn, is when both motors are moving, but at opposite direction. Which means that one of two motors, will go forward, and another one will go backward. The difference between whole movement of two types of rotations is the space they require to turn. Swing Turn requires a lot more space, as it is going over to the outside. However Point Turn only requires just the space of the robot itself, as it is turning on the point, where the robot stands.

In the investigation of Measured Turn, I learned how to control the angles of rotations. I can always know how much my robot will turn, by calculation. In order to calculate, I need to know how much the angle for my robot to turn, circumferences of the circle, and circumferences of the wheel of my robot. By these informations, I can set up and direction and from 0 to 360 degrees.

Monday, February 16, 2009


This is the picture of my robot, when I gave it a emotion. I added emotion to the used program "Full Speed Ahead." It just go forwards, but I made my robot to show the smile face, when it starts go forward. In addition, when it stops, I made it to sound a happy, congratulation sound. When I showed this emotion to other people, and asked what emotion is this. My emotion is Happiness, and all three people got answer correct easily. They said that, my emotion was easy to suggest, and was programmed nicely. Other people really encouraged me, through out this lab.

Monday, February 2, 2009

CH.3 Hello World, My name is...

I read the CH.3 Hello World, My name is...
and learned, how to display on NXT monitor.

Of course, I use programming system to display, and in order to display, I use 'configuration' icon.
Configuration icon let me choose what and how long to display on the monitor.
For example, I can display a smile face on the monitor, while the robot is moving forward.

Moreover, there is a drawing tool, that I can make up any pictures. In order to draw, I use varied shapes and lines to draw variety of faces (or pictures).

I forgot to add that, this configuration, also lets me to display texts on the NXT monitor.

In order to make all programming and display easier, I can use data hub. This data hub lets me use data wires, which carries around the pictures and texts from one block to another.

Because of these functions, there are so many ways that I can display things on the NXT monitor, and is really easy.


The Display block can be used in a practical sense when I am desingng, running, and testing programs. The Display block shows the state of my robot, and I can know what kind of program is running. Moreover, because I know what program is running, I can also suggest the mistakes I made, and fix it later. Display block, also gives the emotion to my robot. When my robot has emotion, then it will look more alive, expand the size of creativity.


In order to add sounds and displays, I will just have to use, NXT Robot programmer. It is really easy and simple, as I just will have to put icon, and choose what to sound, and what to show. Sound will help me to determine, which state is my robot is at (for example, beep sound between forward and backward). Display also helps to determine, and by having two sound, and display, I can know more about the robot, when it is running a program. In addition, these two fuctions will make my robot more interesting, as it is like human.

Sunday, February 1, 2009

How does wheel size and motor rotations affect distance travelled?

After I completed the lab of the wheels and distance, I investigate to see the relationships between wheel size and distance travelled; also motor rotations and distance travelled.

From the investigations, I got perfect answer for both investigations.

For the 1st investingation, to see the relationship between wheel size and distance travelled.
I found out that, if the wheel size is bigger, then the distance travelled increase.
Of course, in this investigation, the only change is wheel size, and distance travelled. I did not change the motor rotations.

There is increase in both wheel size, and distance travelled. It is because, bigger wheel got longer (more) circumferences than the smaller wheel, therefore, when the rotation is same, the bigger wheel will go further away.

For the 2nd investigation, to see the relationship between motor rotation and distance travelled. I found out that, if the rotation is more, then the distance travelled will increase.
Of course, samely, I only change


Wednesday, January 28, 2009

Lego mindstorms NXT-G Programming Guide

I read the first two chapters of Lego mindstorms NXT-G Programming Guide.
This guide book tells me how the robots work, and more advanced programming.

In first two chapters, it was about what makes a robot a robot, and not a toaster.
Why is program structure important?
What are the steps the book suggest for you to follow if you are going to write a program?

First of all, a robot is not a toaster, because a robot is able to S.P.A (Sense, Plan, Action)
A robot is able to move and complete a task by itself, and without human's hand.
Which is significant difference with a toaster.

However, a robot most needs a program in order to move and do task. Programming is really important for the robot, or the robot will not know what to do.
The structure of the programming also has to be detailed, clean, and organized, then finally the robot will move perfectly.

Last of all, the book tells readers a suggestion to follow, when we are writing a program.

  1. Write a pseudo code
  2. Transfer it to the NXT-G program

Wednesday, January 21, 2009

Full Speed Ahead

On Wednesday, January 21st, 2009, it was my first time to program robot, and complete task by taskbot.

Before, doing programming, my task was to build a taskbot. When I am making a taskbot, by using the NXT-G software, I was very careful about stableness. This taskbot contains NXT, therefore, NXT should not fall during a task, and be very stable on the taskbot. Of course, there was an instructions for how to build taskbot, I really paid closed attention to instructions, and try not to do anything wrong. If I made taskbot, which has a problem, then I will not be able to complete a task, and also break some parts.

After, I build perfect taskbot, I started to the first mission 'Full Speed Ahead'. In this mission, I learned how to program a robot, to move certain action. The programming was very easy for me, as there was an instruction, and also programmer was easily made.

During a programmming, I was very careful about the line, functions for each icon. I needed to distinguish about start icon, wait icon, and stop icon. I first made left motor (C port) to start, and then made right motor (B port) to start. After that, I put wait icon, of wait for tire to roll 720 degrees. Finally, I put stop icon for each left and right motor.

As I expected, during a completing a mission, my taskbot went forward for just 720 degree rotations and stopped.

Close attention: Programming

I used LEGO Robots Programming system to program my taskbot.
This programmer is very easy, and everybody can use easily.

This programmer uses icons, to program a task. There are many types of icons (for example, move, wait, stop), and I choose what I want. I drag my favorable icon to a programming sheet. The icons on the programming sheet are connected by chain, and when chain gets broken, it will mean that the mission will stop, where the chain is broken. The robot will do what the icon orders from left icon to right icon. Finally, manage functions for each icon (ex. forward, backward, rotates for 720 degrees, go for 20 sec), and download to a robot by connecting a cable.
It is really easy, and quickly done.

Tuesday, January 20, 2009

Chapter 1: Understanding LEGO Geometry

What are the advantages and techniques for using the TECHNIC construction instead of traditional bricks?

From Chapter 1 "Understanding LEGO Geometry" I learned that, LEGOs I used to play has huge gap between LEGO TECHNIC. When I was about 6 or 7 years old, I used to play with LEGO a lot of time. I built castles, cars, and all other stuffs. However, this LEGO TECHNIC is very different to my LEGO.

Even though, all LEGOs require creativity, this LEGO TECHNIC offers you more advanced and thougutful creativity. LEGO TECHNIC lets you build more funtional, and complex LEGO, for example, the brick will have unique beams and holes, which allows us (builder) to build in less pieces and less weights. Moreover, because of unique bricks, we can make unbelieval shape, which is almost impossible for original LEGO to build. LEGO TECHNIC can make any angles and shapes, therefore, it requires more creativity, and also lets you build your complexed creativity.

In conclusion, I believe there are more advantages and techniques for using the TECHNIC constructions thant the traditional bricks. It is because, there are more unique and functional bricks in the LEGO TECHNIC. It will make impossible to possible, by allowing bulider to build more complexed, stronger, and functional bricks.

Wednesday, January 14, 2009

What defines a robot?

I think a robot is a machine (a chunk of technology), which is able to operate a mission, commanded by human, and operate by using S.P.A

S.P.A stands for:
S ense
P lan
A ct

A robot is able to perfome like a human, because of the S.P.A
A robot, first takes information about surroundings, and about a mission. Secondly, a robot plans how to complete a mission, with a information, taken before. Lastly, it will act as it planed, and complete it's misison.

A robot also has an ability to complete a different tasks and at different atmosphere. It will sense differently, and takes a different information. Moreover, because of the different information, it will plan a different plan, and finally, act differently.


For example, on Thursaday's class (on January 15th, 2009), I made a robot, consists of NXT, 4 wheels, and sound sensor. NXT is a programmer, and it will plan a mission, and makes wheels to move. NXT will take a information from sound sensor, act an action, which was commanded by me. When I made it, this robot moved faster, when there was a sound (which means that sensored sound).

My robot, first took a information by sound sensor. Then when the sensor sensored a sound, the information went to NXT. Secondly, NXT started to plan an operation, which was operated by me to move faster, when there was sound. Therefore, lastly, the NXT made a wheel to roll faster, as it planed, and completed a mission.