PURPOSE
The purpose of this experiment was to determine the most efficient software instruction set for a light-sensing robot to follow a visual path.
I became interested in this idea because when I’m older I would like to have a job with technology involved. So I thought that discovering a system that could affect manufacturers across the state would be a great first step toward my future.
The information gained from this experiment could allow manufacturers to have a better, more useful robot. If a robot has a malfunction it will most likely stop working, but if I can design a program that will allow a robot to handle malfunctions on its own, it could use my programming and handle itself.
HYPOTHESIS
My first hypothesis was that specific programmed instructions could be varied to obtain a maximum speed and accuracy for the robot.
My second hypothesis was that specific programmed instructions optimized for one task would also give the maximum speed and accuracy on a second similar but different task.
I based my hypothesis on information about robots that explained the importance of the programmed instructions.
EXPERIMENT DESIGN
The constants in this study
were:
• Robot components
• Stopwatch
• Design of robot
• Use of light sensor
• Basic program controlling robot
• Use of course 1 and 2
The manipulated variable was the error correction factors in the software instruction set.
The responding variable was the time it took for the robot to follow the intended route.
To measure the responding variable, I used a stopwatch for each trial to know how long it took for the robot to complete its task.
MATERIALS
QUANTITY
|
ITEM DESCRIPTION
|
1
|
Stopwatch
|
1
|
Computer
|
1
|
“Mind Storms For School”
Lego set
|
1
|
ROBOLAB 2.4.5 software
for Windows
|
18"X24"
|
Tag board
|
1
|
Black Construction Paper
|
1
|
Scissors
|
1
|
Protractor
|
PROCEDURES
The following instructions assume two things. First the experimenter must be very well acquainted with using Lego’s, especially how gears work to power a small vehicle forward, backward, and in turns. Second, the software that controls the robot is “RoboLab 2.5.4.b” for a Windows PC. The experimenter must spend many hours becoming familiar with the basics of using this program. Since there is no true instruction manual for the software, one must go through a series of “Training Missions” to learn the basics for programming the robot. There are an enormous number of possible commands and programming options, and the training missions do not adequately lead you through more than 25%. So the next step is hours of trial and error effort to get to a point where a “formal experiment” can even be attempted.
1) Build basic robot using Lego “Mind storms for Schools” kit
a)
Create compact vehicle powered with two electric motors each attached via
direct gearing to its own drive wheel on an independent
axle. There must be one more point of support, a tiny low-friction skid
plate, to keep the vehicle upright and level.
b)
Attach the RCX 1.0 computer module to the vehicle to act as its
“brain”. Attach output A to the left motor and output C to the right
motor. (Note these motors work in opposition.)
2) Create a basic program to make the robot do each of the
following
a) Go straight forward for several seconds
b) Go straight backward for several seconds
c) Rotate clockwise
d) Rotate counter-clockwise.
3) Test vehicle and improve design and program as needed
a) Upload program to RCX using the USB controlled infra-red transmitter
b) Press “RUN” button on RCX to activate program
c) Observe and
evaluate robot’s actions
4) Add
light sensor to front of robot and connect to RCX input
5) Create a second basic program to make the robot do each of the following:
a) Read
the input from the light sensor and display the lightness value
b) Stop
or alter motion depending on a change in the light sensor reading
6) Create
test course with black line on white paper
a) Create
test course on white construction paper (18 X 24 inches). Draw basic
course in pencil. Be sure to have a long straight-away, several “S”
curves and several 90° zigzags.
b) Use
black construction paper that is 3/4 inch wide to make continuous course
following pencil line.
c) Glue
down all of the pieces to your course.
d) Label
one direction as Course 1 and the other as Course
e) Place
test course on a flat and level surface and tape down.
7) Create
the test program using components from the basic programs above. It must
have the following elements:
a) Activate both motors to move the robot forward in a straight line while constantly monitoring light sensor
b) If light sensor value is 43 or less (still tracking the black line) loop back to the beginning of the program and continue going forward
c) If light sensor value is 43 or greater (off-course, now on white instead of black), begin the first error correction routine:
i) Stop
motors
ii) Add 3
to the temporary memory
iii) Rotate left and slightly back up using the following method (which will later be varied)
iv) Make left motor (A) reverse with a power setting of 5
v) Make the right motor (C) go slightly forward with a power setting of 3
vi) Do this for the exact amount of time indicated by the temporary memory (the first time it will be 3/100 second)
vii) Stop all motors
d) If light
sensor value is 43 or less (back on the black line) loop back to the beginning
of the program and start going forward
e) If light sensor value is 43 or greater (still off-course, rotating left didn’t work), begin the second error correction routine:
i) Add 3
more to the temporary memory
ii) Rotate right and slightly back up using the same power settings as in 6.c.iv-v above (only in opposite directions)
iii) Do this for the exact amount of time indicated by the temporary memory (the first time it will be 6/100 second) Note: the result of adding more time to the temporary memory causes the robot to rotate back to the beginning direction and continue on the same rotation to the opposite side.
iv) Stop all motors
f) If
light sensor value is 43 or less (back on the black line) loop back to the
beginning of the program and start going forward
g) If light sensor value is 43 or greater (still off-course, rotating right didn’t work either), try the first error correction routine again, only with a longer duration (which means a wider swing). Go back to 6.c.ii.
8) Upload program to RCX using the USB controlled infra-red transmitter
9) Conduct your first set of trials
a) Reset stopwatch.
b) Place
robot on Course 1 start point.
c)
Start stopwatch at the same time you press the “RUN” button on robot.
d)
If something goes wrong while you are conducting a trial or robot gets
stuck on a part of your course for longer than thirty seconds, define the trial
as an “error.”
e)
Stop both the watch and the robot when it ends the course.
f) Record time on data collection sheet.
g) Repeat steps 9 (a-f) for 10 trials.
10)
Repeat step 9 using Course 2 (opposite direction)
11)
Change motor power setting variables
a) Now change the program variables that control the motors:
i. First error
correction routine should now make left motor
(A) reverse with a power setting
of 6 and make the right motor
(C) go slightly forward with a power setting of
2.
ii. Second error correction routine should now make left motor (A) go slightly forward with a power setting of 2 and make the right motor (C) reverse with a power setting of 6.
12) Conduct second set of
trials
a) Repeat steps 8-10 at the
current settings.
13) Change motor power
setting variables as in step 10 except use the values of 7 and 1
14) Conduct next set of trials as in step 11
15) Change correction routine duration variables
a)
Repeat steps 7-13 except change temporary memory increment value to
5. First trial should start with motor power settings of 5 and 3 as in
first trials. Note: the result of increasing the amount of time added to
the temporary memory causes the robot to rotate back and forth through larger
swings.
b) Repeat step 14.a. except change value to 7.
16) Analyze results.
RESULTS
The original purpose of
this experiment was to determine the most efficient software instruction set
for a light-sensing robot to follow a visual path.
The results of the experiment were that motor power settings of 6 and 2 had the best times overall. The error correction duration of 7 also provided the best times overall.
Another observation was that I could have predicted the outcome of any settings without so many trials. Five trials would have been more than enough. Also, the robot doesn’t run both courses equally, the robot scored a few seconds better on the second course.
My first hypothesis was that specific programmed instructions could be varied to obtain a maximum speed and accuracy for the robot.
The
results indicate that my first hypothesis should be accepted, because the
combination of power settings of 6,2 with an error correction duration increase
of 7 gave the fastest times in both directions.
My
second hypothesis was that, specific programmed instructions optimized for one
task would also give the maximum speed and accuracy on a second similar but
different task.
The
results indicate that my second hypothesis should also be accepted, because the
same settings worked best on both tasks. I am uncomfortable with this statement
because when the settings are slightly off the errors that result are much
different for the two tasks. I think more research is needed on this
hypothesis.
After
thinking about the results of this experiment, I wonder how much changing the
body style would affect performance. The distance of the light sensor in
front of the axle would probably make a difference. Having two light sensors
would also be a good thing to test. Most animals have two eyes so it is
possible that it could be better for a robot as well.
If I
were to conduct this project again I would have completed more trials and
tested smaller variations of duration. Testing on longer and more difficult
courses would be worth while. A more complex programming system could
also result in less jerky movement of the robot and faster times. I would have
tried to build a better body style. In addition I would have done something to
stop the tires from slipping on the wheel rims.
Researched
by ----- Taylor Dale V
0 comments:
Post a Comment