Tracking beacon without servo

The standard way of tracking one of the IR beacons is to use the IR sensor mounted on a servo. So, since FIRST has classified servos as motors, we can’t use unlimited number of them. So if we want to use the servo’s for something else other than tracking, how do you find the angle to the beacon without a servo?

Well the simplest way would be to just turn the robot untill you see the beacon in both sensors (similar to line following), and then drive straight forward.
Other methods would include essentially building your own servo using a motor, and some sort of feed back (such as a pot or encoder)

Who needs a stinking servo? Put two IR sensors mounted at 90 deg angle to each other. Keep driving forward until the side sensor sees the beacon. then turn until the forward beacon sees the beacon, whereat you drive forward

The problem with this method is that the sensors are very sensitive to reflections. The servo approach uses heatshrink tubing over each of the sensors to limit how much area each of them can see. You can’t do this with a pair of fixed sensors, because they’d only detect a signal at a certain distance from the beacon (where both sensors point directly at it). You could, of course, do without the tubing, but this would cause the sensors to trigger when they’re pointed anywhere within 180 degrees or so of the sensors.

So here is my idea of a MUCH better wah of adressing the IR sensor prob. Mount the sensors such the the “eye” end faces toward the ceiling. Above that you have a scannign mirror at a 45degree angle rapidly spun by one of the other motors, with an absolute position encoder for position feedback of the mirror. FP motors maybie? How about a globe motor geared way up. A weak columnating lense or at least a long tube would give you much better directionality. Somilar setups are common in bar code readers, disco lasers etc. It might be a good idea to stick to first surface mirrors. Tell me if i am crazy.

I dunno if anyone read the post they quoted, but he wants to know how to get it to work without any motors
because there is a limit on the number of motors you have, he wants to know a way to do this WITHOUT a motor
so if you were to say, use a motor in ur description to solve this guys problem, what you did was just add useless posts
Not to be a whiner, but its on the portal asking people to not do this
/rant off

anyway, now that i have vote YES to hypocrisy i will sit and stop speaking


Wouldn’t it be equally easy to use a motor and position encoder to just move the IR sensor? (although the mirror would look mad pimp)

I believe that’s the system he’s trying to avoid using. Servomotors are incapable of free rotation; the voltage fed to a servo (or the duty cycle of a PWM signal) causes it to turn to a specific position, eliminating the need for a position encoder to ensure accurate placement. The problem is that there is a finite number of motors that can be used on one’s robot, and the person who created this thread wanted to figure out a way to do this WITHOUT wasting servomotors that could be better used in other applications.

Q: Are servos treated as electronics (in which case we can have an unlimited number of them) or are they treated as motors (in which case we are limited to 2)?

A: They are treated as motors so the 2 servos provided in the kit are the only 2 allowed on the robot. Teams that wish to obtain spares (Hitec servo HS-311 or HS-322) may purchase them from Tower Hobbies at: We previously answered Electronics. This is incorrect.

Unless you either want to rotate the robot and or have lots of sensors and be slow, there is no way to do this without motors. My point was to only use one motor and do things really fast. Or if you wnat to be really elaborate, you could use the above setup combined with a giant spring pretensioned before the match, that unwinds through a greartrain and roatates the mirror or sensor during the 15 secs.

Btw, the reason i mentioned using a mirror is bc its hard to spin a sensor really fast with wires atached, without using slip rings(rotating electrical connectors) or other weird hard to find expensive parts.

OK! you are crazy!

this is an excellect idea. part of the difficulty with the Kevin design for the sensor is that it uses 4 valuable inputs on the controller.

a single sensor looking at the mirror uses only a single input for the IR pulse and a single input for the encoder.
our team has only 2 inputs left, so this would solve our problem.
of course the software becomes more intense, since we would be sampling both beacons.

the enclosure for the mirror would act as the shield for stray reflections. it might look like a flying saucer, with an opening all the way round.

thanks for the good idea!
i guess its ok to be crazy. :slight_smile:

Jerry w

We just finished testing this with our EduBot (after some difficulties with soldering of the beacons and other hardware problems), but this method seems to work very reliably, independent of distance to the beacon. We only used two sensors, one pointing right the other forward, housed in some cardboard with a narrow slit (the one pointing forward had two “houses” with two slits to limit input for greater accuracy).

The question was just how to do it without a servo. I have no problems with using a motot. The reason I was asking is because I was working on some GPS code, assuming that you could use more than 2 servo’s, you need 3 input angles for GPS. So now that I’ve found out you can only use 2 servo’s I needed some way of getting an angle to the beacon without using one. I’m not familiar with position encoders, but I’m going to look into it. If you can get good enough angular resolution, it can be used for this purpose. Thanks for the input.

Detection of the IR beacon can be done in a very straightforward manner WITHOUT using any motors or servos.

Think “phased array.”

Make a simple linear array of detectors, each with a limited field of view (use the heat shrink tubing suggestion from above, which will act as a light baffle for the IR signal). The total array may have a FOV of 90-180 degrees (or whatever view you want), but each individual element within the array will be limited to 10 degrees or less.

Then use the control system to scan across each element of the array and record the perceived signal strength. Strongest signal in the array identifies the array element pointing toward the beacon.

If you think about this for a while, you will realize with a little clever programming you will be able to get sub-pixel resolution and accuracy from the array (clue: read Chris Hibner’s white paper on increasing A/D resolution using noise, while holding it sideways to gain a new perspective).

There are always multiple ways to skin a cat…



I’m told that FIRST may re-think the two servo rule in light of your application.


I’m going to be honest here…

I hope FIRST does NOT change the two servo rule (sorry, Paul).

We’ve spent a lot of time designing things a particular way because we knew we could only use two servos. I would feel pretty slighted to find out my team wasted a lot of time on something that we could have spent elsewhere. I think it’s too late in the game to change the rules.

If they change the rule, I would equate this to the tape measure fiasco of 2002. FIRST stated that this would be illegal and then changed their minds later on. This caused all of the other teams that abided by the original rule to have to do a lot of work to “keep up with the Jones’s”.

I completely agree that FIRST should change the rules that are obviously broken, but I don’t like it when they change the rules late in the game just so it makes something easier - it’s not fair to the other teams that have been living with the rule as it is.

I definetly agree with that, but it appears that FIRST does not. Team update 9 states that you can use unlimited servos, now.

Put a sensor at each end of the robot kinda like line tracking but going outwards.

I didn’t break it!