Tuesday, May 26, 2009

Introduction to Robotics - Final Entry

We've finally come down to our last blog entry...
Over the semester, the class has proved itself to be not only knowledgeable, but fun as well. Although tedious, Robotics has thought all of us the skills needed to plan, construct and program - we tend to explore new things and reach new heights within each class.
Throughout the semester, we've learned how to construct robots. We've learned that constructing a robot is harder than what one would think - it needs knowledge and reason of both the situation and surrounding the robot is in. Building a model that is suitable for the task at hand is the key to solving it. The position of sensors on a robot plays a significant role in the robot's performance, thus, considerations need to be made - by placing sensors at places that are most suitable for the task could easily serve as an advantage. Gear configuration is also significant to its performance as it controls the robot's "torque" - having a gear ratio that is a greater factor to the other gives a robot speed, while a ratio that is a lesser factor to the other gives a robot strength or power. Modular construction too is significant as it makes the robot "universally able".
What is a robot without a program? Nothing. We've explored the NXT programming software down until its "gut". We've learned how to easily program our robots to complete task that were given to us. Some of the common blocks we used were motor and wait blocks - they were like the very first step in learning how to program. We were forced to use other unique blocks due to increase of difficulty with each passing activity. One of my favorite blocks of course, is the switch block. The switch block enables the robot to think and decide based on either logic or sense.
In each kit we were given all kinds of sensors. Light, ultrasonic, touch, and sound; all were used, none were wasted. Without sensors, robots are not able to basically "sense". Sensors are significant to a robot's arsenal - each sensor had its own configurations and in order to make it sense what we wanted it to sense, we had to explore the settings. Overall, after all the programming and constructing, sensors are the eyes, hands, and ears of the robot.
In conclusion, Robotics has deepened our understanding of maths, science and technology through the constant contact with calculations and physics that were involved in this semester's class. We have also improved our reasoning, communication and collaboration with each passing challenge as it forced us to share ideas and think beyond what we usually know.

Monday, May 18, 2009

Tree Measurer - Construct

The tree measurer's design is apparently ideal for measuring objects that has the length/width of the space between the mobile caliper and immobile caliper. The robot's gear configuration (power from one motor) is significant to the movement of the caliper which allows it to measure an object; additonally, there is even a handle which makes it very easy to handle.

Overall the design is quite modular, however, the limit as to the size of the calipers* is a disadvantage.







Tuesday, May 12, 2009

Experience





Day 3 - Testing

Testing...

We planned to test our robot and our program (which should've been downloaded to the NXT block) on the course. It went pretty well, however, there were a few problems that i had to fix. My turning was not always perfect, but that can easily be solved. The biggest problem i had was on the last turning point - i wanted it to sense an object 20 centimeters away and maneuver around it, but i also wanted it to stop on the black line without sensing an object. I tried out many things with the switcher block, but still couldn't find out how to. I plan to research more and try my best to find out how to program my robot to maneuver the course with great accuracy.

Wednesday, April 29, 2009

Day 2 - Program

Today I plan to write a program for the challenge course. My program will have the necessary blocks for my robot to finish the course, finishing each challenge that comes in its way with ease. My program will be as follows:

Challenge 1 = Program robot to Start with a "clap" and stop for twenty seconds when it senses a low light value (lower than threshold set).

Challenge 2 = Use touch sensor to sense pillar (knock into pillar), then program to reverse and swing turn left.

Challenge 3 = Program forward and use ultrasonic sensor to sense desk, when it senses it, swing turn right.

Challenge 4 = Program robot to move forward, using the ultrasonic sensor again, sense the randomly placed object and swing turn right then left.

Challenge 5 = Move forward and sense low light value.

My robot design needs to be finished, as well as my program.

Monday, April 27, 2009

Obstacle Course Challenge

The obstacle course challenge might prove to be a difficult course to complete. The course itself is made up of 6 parts which are as follows:

1. Start (NXT) with clap.
2. There will be an outline of a box several centimeters away - program robot to stop within outline and wait for 5 seconds in order to proceed.
3. Bump into pillar, back up and turn right.
4. Sense Wall, turn right w/o touching it.
5. Avoid Obstacle. ---> not so sure how to program robot to pass the obstacle.

Sunday, April 12, 2009

Experience - Line Tracking

The sum of knowledge gained from the few past classes is of great use as we got the chance to experiment with the light sensor as well as learn the behavior and configurations of the light sensor.
In order to learn about the light sensor, we were told to conduct an experiment using the sensor. The experiment is as follows: Robots must be programmed to follow a black line (on a white surface), "using" the light sensor - Line Tracking.
My partner and I first attached the light sensor to the front of the robot; however, we found out that placing the light sensor at the back of the robot, closer to the two wheels, is better because the light sensor will create smaller swing turns, minimizing the chance of the robot going off course during the experiment; additionally, it helps the robot to follow the line at a greater speed. Now on to programming, in order for the the robot to proceed along the black line, we programmed it to make right and left swing turns depending on whether the sensor reads a light value that is less or greater than the threshold set (the threshold is the average of both light and dark readings - test on NXT).


Program:

Chapter 4 - Reading Sensors

Sensors is the main topic of this chapter, as it introduces us to all kinds of sensors
- light, touch, sound, and ultrasonic.
The chapter also tells us of each sensor's behavior and capabilities. Each sensor is useful as it can help robots face many challenges as well as understand its surroundings: additionally, sensors used on a robot is as useful as the human's "five-senses". All humans rely on their five-senses just as robots do, and each "sense" reacts/interacts with certain things differently in order to surpass certain challenges, whether they are simple or difficult.
Recently in class we have been using the light sensor in order to program our robots to follow a black line. Certain things needed to be taken into account - position, and light value. Such considerations are significant to the performance of the light sensor. By using the light sensor to read light values, i programmed the robot to turn right or left depending on whether the light value reading is greater or less than the threshold set (the robot has to perform several swing turns in order proceed along the black line) - light value is important as it is the very thing that determines the robot's next action. Me and my partner ran into a problem, the robot wasn't able to stay on course and so with the help of a hint we suspected the problem was due to the light sensor's position. We placed the light sensor where it would create smaller swing turns - position is important as it determines how well the light sensor performs in specific situations.

Monday, March 23, 2009

Tractor Pull - Experience





"Get in Gear" and "Gears and Speed" - Experience (Comment)

I've only just completed the two activities ("get in gear" and "gears and speed) recently; furthermore, it proved to be significant in my understanding of gears and can be useful in future projects/activities.

"Get in Gear"
- the activity introduces gear ratio. Gear ratio is the ratio of the driven gear to the driving gear; this is significant to my understanding as it plays a main role in the robot's speed and strength (depending on its setting or ratio).
- probable gear ratios and benefits:
1:5 = small driven gear and big driving gear
5:1 = big driven gear and small driving gear
1;1 = both driven and driving gear have the same amount of teeth = motor's speed

"Gears and Speed"
- the activity focuses on calculating speed in relation with gear ratio of a robot. It introduces two hypotheses that presumably is able to calculate the correct speed: however, only one of them is correct, so i had to experiment both hypothesis (compare with average speed)in order to find out which one is correct. In the end i found out that hypothesis B was correct.
- Hypothesis B ( speed 1 * gear ratio 1 = speed 2 * gear ratio 2) is approximately the average speed of the the three trials.

Formulas:
Gear Ratio = driven gear/driving gear
Hypothesis A (incorrect) = (speed1/gear ratio1)=(speed2/gear ratio2)
Hypothesis B = (speed1*gear ratio1)=(speed2*gear ratio2)

GoodgleDocLink:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5FPXdWG7pdhIV5WrYSdx7blYQofFXiTwE9X0l89OgWYzeILGbwHDrjLqzTyioUUKYOgeafsXCBMqaxLqdX_Do6ChCJmR0DCwGnvJU1AUEE8InYrRtlbf-8pw4GsW64gtlJzIbQhe_E0/s1600-h/google-doc_gear+ratio.jpg

Monday, March 16, 2009

Chapter 2 - Playing With Gears

This chapter consisted of several concepts: angular velocity, force, torque, friction and gear ratios. The chapter also introduced gears and other parts that are able to maximize a robot’s capability – making robots able to perform specific tasks that of which needs certain parts in order to be accomplished. I say the highlight of this chapter is “torque” as it is what makes robots capable of performing task that involve force and weight; additionally, there are ways to control/adjust torque and at the same time, avoid any disasters – clutch gear, belts and pulleys are some of the main objects in the kit that is able to prevent any harm that might come to your robot. In addition to the highlight, gear ratio is another important aspect when building a robot. Gear ratios can mean a lot to a project depending on what the given task is and needs - e.g. speed, strength, etc. From what I know, there are simple aspects of gear ratio that give away its primary purpose - e.g. A setting with a large driving gear and a small driven gear maximizes a robot's speed (The reason why is pretty simple once you think it out. With a smaller driven gear the axle is able to spin faster due to the gear's smaller circumference.) , while a setting with a small driving gear and a large driven gear maximizes its strength capability.

"Common Gear Sense"

*Gear Ratio = driven/driving

E.g.

5:1 (larger driven gear than driving gear) = strength

1:5 (smaller driven than driving gear) = speed

1:1 (same size) = -----

In my opinion, this chapter is interesting as it will help us in the near future with our projects. “Not boring, Just complex”

Tuesday, March 3, 2009

Chapter 5 - "Record and Play Back"

The chapter provided information on the "record and play back" block. This chapter of which I chose proved to be somewhat of an extra as it teaches us how to simply record and play back certain parts of a program or a program itself. This feature can be pretty nifty as it can help us store sequences that could be significant to a project's progress. The configuration is simple enough, in order to record simply select the part of the program that you desire to keep as a reference - the file will be stored into the NXT-G once uploaded.

Even though nothing else can be done by the block, it still is a nice feature that would come in use during one's presentation.

Chapter 4 - "Get Movin"

The chapter talks about the "move" block and its configuration. The move block is somewhat superior (in my opinion) to the motor block - Why? Well first off, the move block has more options than the ordinary motor; programmers are able to operate two motors at a time, also get to configure duration and turn. By having more options in just one block makes programming much more simple; however, making accurate turns is more complex when using move blocks - that's where the motor blocks come in handy. Although the motor block controls only one part and needs the help of other icons to stop or measure duration, its much more simple to calculate an accurate turn.

Both are very useful, but I prefer to use the move block as it has more advantages than the motor block.

Wednesday, February 25, 2009

Team Challenge: Circuit Race

The "Circuit Race" experience was great as we applied our knowledge from past activities - a true test of our knowledge. Although the task seemed easy, it wasn't, as it was actually a very tedious task. We had to obtain certain pieces of information before we could start programming and the program was really long - ironic as the course is just a square, yet there's so much to do with the robot; also, we had to modify our current task-bot in order to get it to make turns and move forward the way we wanted it to - we had some minor problems with the wheels as it caused our robot to stray from the course. All-in-all the experience proved what we can do as "amateur programmers".. not to mention the competitive experience as well..

Anyways, here are some images of the program that i used in the circuit race...







And here are some our pics of our task-bot... (note: we used the smallest wheels from the kit.. the picture was taken before the circuit challenge -- the wheels in the picture are the biggest from the kit)

Tuesday, February 3, 2009

"Hello World, My Name is... "

Reading chapter 3, seemed rather ironic (time-wise) due to the fact that we have already started programming. However, given a task, i have to stay on task... In chapter three which is in direct reference to our activity "hello my name is...", it briefly explains how to program (haha, design**).

The purpose of applying such designs to the nxt , in my opinion, is to notify/warn us of what type of program is running or subtle changes/errors. Programming the design on to the nxt is in great contrast to programming motion, as its much more simple and only two icons need to be used - display icon, and one wait icon. In practical sense, display blocks can give an edge to the robot's design while notifying us of what has been done and what has yet to come.

In the future, i will apply display and sound blocks to programs in order for me to know what my robot's actions are.

e.g.

Display Sleep - Wait for sound/clap - Display Surprise - Move forward (c) - Move forward (b) - Rotations - Stop (c) - Stop (b) - Sound (applause)

At the end of the chapter they give off an additional piece of information - i believe almost all icons have a pull-down box called a data-hub. The data-hub will come in great use for future projects/programming (advanced).

Data-Hub: allows you to draw data wires from one block to another using data plugs.

Wednesday, January 28, 2009

What is a robot? What is a program?

This post will be reference to chapters one and two.

A robot can be defined as a piece of machinery that somewhat mimics humans and works independently without human interaction. Clearly average toasters do not mimic human behavior, therefore they are not classified as robots.
END OF CHAPTER ONE...
ON TO CHAPTER TWO...
In order for a robot to take action, it has to be programmed. In order to start programming, some fundamentals have to be covered -
Program Structure is important, as it can affect how the robot reads and applies the actions programmed. A robot does not have "common sense" like humans do, instead they follow specific instructions, and they follow them in the order you put them in. In order to avoid ERROR, a specific program structure has to be applied. Construct a program structure like a set of very very detailed instructions; using a pseudo code can help construct a healthy program structure. A pseudo code can be a lot of help, it's like a rough draft of your program, and it just has to be simple so it'll be much easier to convert on to the NXT-G Software.


Thursday, January 22, 2009

Full Speed Ahead

In the activity full speed ahead, we got the chance to use our taskbots of which we had built several days ago. We got the chance to program them whilst learning how; the activity had fulfilled one of my many firsts in life.

A robot can only "take action" if the user programmed the robot to "take action" - this is applied to the lesson "full speed ahead". Luckily for us, we have a NXT programming software of which is very simple to learn and use.

As this was our first lesson of programming, we were given a task which was to program a simple "run". We learned that there are three basic "icons" that can be put on to the planning field in order to fulfill such a task - move, wait and stop icons. Each icon can be configured to any desired setting (time, length, port, etc.). We also learned that an icon must be connected to the chain (planning field) in order for it to be recognized as an action. As a side tip, it is helpful to make notes on icons (which u are able to do by double-clicking anywhere on the planning field) so u know what the icon's settings are. Icons can be put in any (logic/practical) order by desire; in this task's case, we had to place two "move" icons (each one operates a motor) at the start of the chain (left). Then we placed a "wait" icon after; it sets how long, how far, how many rotations the "move" icon operates. You might think we were done, and ready for transfer, but we're not. In order for it to stop as soon as the set "distance/time" is met and not gradually slow down (thus surpassing the desired distance/time), we made use of the "stop" icon and placed it at the end of the chain.

...SUCCESS!!

e.g.

******************************************************************************

_ ^_____________^____________^__
Move (B) < - - > Move (C)< - - > Wait (rotation 720 degrees) - - > Stop
_^_____________^____________****

Tuesday, January 20, 2009

Chapter 1 - understanding lego robotics

In this chapter, it explains basic components of Lego robotics (parts).

The chapter starts off mentioning a bit of history behind Lego bricks, then explains the math and advantages of Lego bricks. Basically it explains how math is applied to the studless/technic bricks - proportion, Pythagoras' Theorem. It also explains how shifting from technic bricks/beams to studless beams/pins/connectors has opened up possibilities in design - less pieces are used to create a bot, weight reduction, countless connectivity options (Technic liftarms), stronger structure.

Wednesday, January 14, 2009

What defines a robot?

So far my time has not been wasted in my search for knowledge in the field of robotics. As I already gained a sufficient amount of knowledge in the first two classes. In those first two classes i learned what it takes for an object to be classified as a robot (and other basic info. as well). As this is my first blog post for Robotics, I will define "robot" and mention what it takes for an object to be classified as a robot.
A robot is an object with a mechanical background and consists of specific capabilities. In order for something to be identified as a robot, it must be able to sense, plan and act (S.P.A). Sense objects, sounds or even terrain in the surrounding area (recently in class, we were given the task of builiding a simple robot that is able to react to sound through the sound sensor attached to it). Plan its movement or actions through programming. And act out those plans of which is programmed. As you may have noticed while reading my definition, robots have similar features/qualities as humans do.