HiTechnic IRSeeker and Robot Soccer
In Robot Soccer it is useful for your Robot to be able to tell the direction to the soccer ball. A HiTechnic IRSeeker (Infra-Red Seeker) can help your robot do this.
This is a Robot Soccer ball. It has many small infra-red emitting
diodes within the transparent plastic sphere. Infra-red is invisible
to human eyes, but can be detected by special infra-red detectors.
The
five infra-red detectors are pointed in the directions show by the
numbers 1, 3, 5, 7 and 9 in the diagram above. When the IRSeeker is used with LEGO’s G-code, a Robot using this sensor can
tell if a Robot Soccer ball is in any of the directions 1 to 9; and
with suitable programming can help the Robot turn towards the ball
and find it.
The
HiTechnic
IRSeeker sensor operates best in a horizontal position, so keep the
sensor level so that it can read correctly.
To use the IRSeeker sensor from NXT-G, an additional piece of software
needs to have been added to your computer. To see if your copy of the
NXT-G software has been upgraded, start up NXT-G, start up a program, &
check the menu.
Does it contain this
option?
If it does, you can use an IRSeeker with your robot. If it does not, it
will be necessary for you to arrange that your software be upgraded
before you can use the IRSeeker sensor. The necessary additional
programming block is available for download from
www.HiTechnic.com .
If your copy of NXT-G has been upgraded, construct the following
program. The program aims to let you see the IRSeeker reading on your
NXT’s screen.
The IRSeeker (red arrow above) control block could look like this:
The “Number to Text” control block (blue arrow above) could look like
this:
The Display control block (purple arrow above) could be
adjusted to look like this:
Now when you download this program to your NXT and run it, you will see
a number displayed on your NXT’s small computer screen; this number
(between one and nine) is the IRSeeker’s estimate of the direction of
the nearest infra-red source.
Move your Robot around, and notice how the reading changes. You may
notice that, as well as the ball, anything warm will give off infra-red
radiation that may be noticed by your IRSeeker. Experiment and see if
the reading changes when the IRSeeker sensor is tilted one way or
another. Do you have to be quite careful to keep the sensor horizontal,
or does this not matter? How far away from the IRSeeker can the Soccer
ball be reliably detected?
If you used the program on above, you could get an
indication of the direction of the nearest source of infra-red – which
hopefully will be the soccer ball. Suppose the reading given out by the IRSeeker is 3, how could we arrange to turn the Robot to face the ball?
First we would have to work out the logic of the moves we want the Robot to make. You will have to discuss this with your team, and come to an agreed solution. One approach (not necessarily the best) could be:-
If
the IRSeeker reading is less than 5,
then
turn the Robot in an anti-clockwise direction until the IRSeeker reading
equals 5
We would then have to change this logic into an NXT G-code command, so
that we can teach the Robot to face the Soccer ball. Code something like
this could be used:-
The control block for the
IRSeeker icon could be as shown below. Note that in this case, the
IRSeeker is plugged in to port 4 – the IRSeeker will work from any of
the four NXT ports.
The control block for the
Compare icon could be as follows.
In this case the direction number is passed from the IRSeeker icon by
use of the yellow connector
,
which feeds the direction number (1 to 9) into the Compare icon. If the
direction passed from the IRSeeker is less than 5, a “True” value is
passed to the loop by the green connector line shown below.
While the Robot is inside the loop the two motor commands
are turning the Robot so that the IRSeeker reading is gradually
increasing towards 5.
The control block for the Motor
A icon could be:-
The control block for Motor C
icon could be:-
When the IRSeeker reading equals 5, then the program stops. Is your Robot is now facing the Soccer Ball, or do you have to reverse the direction of the Motors to teach your Robot to turn correctly?
The program above is one way to program your soccer robot to face
towards the Soccer ball. However it only works when the IRSeeker reading
is less than 5. What will you teach your Robot to do if the IRSeeker
reading is greater than 5? Discuss this with your group, and try out
some solutions.
If you have solved the problem in Soccer strategy 1, there is still a
lot for your team to do.
The next decision for your team to make is to decide what to do next. Do
you want your Robot to charge towards the ball hoping to push it towards our
opponent’s goal? Do you want your Robot to act as a goalkeeper to block
the way between the soccer ball and our goal?
A lot of this strategy will depend on the roles you give your Robots (1
attack & 1 goalkeeper? 2
attack Robots? 2 goalkeeper Robots?)
It will also depend on how far the soccer ball is away from your Robot
(would an ultrasonic sensor help?), and which direction the goals are
from your Robot (a compass sensor might be handy here).
What should you do if the ball is between your robot and your opponent’s
goal – charge at it? What should you do if the ball is between your
robot and your own goal – should you charge at it or do something
different?
Tasmania mainly uses the GEN II soccer field (see a diagram of the field
by clicking here); for
some more information on GEN II soccer (including videos)
click
here.
In a 2007 GEN II soccer workshop in Tasmania, Mr. Brian Thomas gave the
following hints:
Check if you are out of bounds (the
mat under you is white) – if you are out of bounds try to return to
the soccer field (turn around, go
forward, and repeat this until the mat under you is not white and you
are back in the soccer field).
Find the soccer ball (spin around
until you see the soccer ball, but be careful, too fast a spin and you
may miss it).
Go to a good place to kick the ball towards your opponent’s goal (if
the soccer ball is between you and your own goal, travel to the other
side of the soccer ball so that the soccer ball is between you and your
opponent’s goal).
Go to the soccer ball (go fast
towards the soccer ball, trying to reach it before your opponent’s robot)
---------------------------------------------------------------------------------------------------------------
Mentor note: This is also available in a 5-page Microsoft Word 2003 document; click here.