A Circular Navigation System [Part 1]

Jim Ubersetzig

This article was published in the September 1999 issue of The Robot Builder.

This paper, originally published in December 93 and reprinted with permission, covers the theory required to understand the construction article in next month's newsletter. The construction article will describe the robot navigation system Jim Ubersetzig demonstrated at the April 99 RSSC meeting.

At last !   An accurate navigation system for use inside a room, suitable for use on an autonomous mobile vehicle. Simple, on-vehicle electronics and simple computations provide accurate knowledge of position and orientation within the room.

Equipment required is three wall mounted targets, a vehicle mounted spinning sensor,
and a vehicle mounted microcontroller.


The wall mounted targets should be of the type that reflects light back to it's source. An
example is the corner reflector.

One way to build a corner reflector is to cut out the bottom corner of a cardboard box. Notice that the three cardboard surfaces meet at right angles. That property is essential for a corner reflector. Glue mirrors to the inside of the three cardboard surfaces and your corner reflector is complete.

As an experiment tape the corner reflector to a wall and turn out the lights. A flashlight
can be used to demonstrate corner reflector action. When the light from the flashlight
strikes the corner reflector, most of the reflected light  shines back at the flashlight. Although corner reflectors made from a cardboard box can be used for the targets of the navigation system, there is a better way. Cardboard corner reflectors are flimsy and easily get out of alignment. The rear reflector from a bicycle has many corner reflectors molded in a piece of plastic. Buy one, saw it into pieces, and glue them to a wall.

Spinning Sensor

The vehicle mounted spinning sensor is illustrated in figure 1.


The motor and flywheel mount in the vehicle. The purpose of the flywheel is to even out the rotation  and provide a smooth spin. Note that the optics rotate above the vehicle. The collimator pen emits a narrow beam of light that bounces off the wall target and returns to the phototransistor, which produces an electrical pulse. The plastic tube excludes light from other sources in the room which might distract the spinning sensor. The collimator pen is a cylinder shaped part about 1/2 inch diameter and an inch long.

There are wires at one end and red light comes out the other end. Electrical power requirement is 2.5 volts @ 150 mA. Optical power output is 2.5 mW. Specification indicate the light beam should make a 2 inch spot at 100 yards.


The vehicle-mounted microcontroller should have an internal timer register which counts using an accurate oscillator. This is to accurately measure time. The idea is to record the timer register when targets are detected.

The circuitry shown in figure 2 causes the microcontroller to execute an interrupt routine each
time a wall target is detected. The interrupt routine is a very small computer program which stores the time in a memory buffer. When the memory buffer contains enough time values, the microcontroller calculates the vehicle position.


Target Positions

A diagram of the room, in figure 3, shows the vehicle and the targets. When the targets are
installed, get a tape measure and record target positions L01, L12, L23 and room dimensions L
and W. These numbers must be known to the vehicle’s microcontroller. So either put them in the
source code for the software or provide a keyboard on the vehicle for typing in the values.
Angle Measurement Looking at figure 4, the navigation software needs to know angles A12 and A23 but all it has is a list of


the times T[i] when targets are detected. So the first task is to determine which times are for target 1, which times are for target 2 and target 3.

Graphically the timing is shown in figure 5.


Because the targets are on one wall only, most of the scan detects nothing, and the targets are
grouped together. So it is easy to identify times for each target. The navigation software calculates the angles:

where t1 is the time when target 1 was detected, t2 is the time when target 2 was detected, etc.

Position Determination

The vehicle location can be determined from the angles if we remember a property of circles. " Given any two points P1, P2 on a circle, all the angles A are the same, and are 1/2 the angle measured from the center of the circle. " This is shown in figure 6.

This property of circles is applied by realizing that if P1 and P2 are wall target locations then A is the angle measured by the spinning sensor. Since the angle A is the same for all locations on the rim of a circle, it follows that the sensor position is somewhere on the rim of the circle.
There are really two circles involved because both A12 and A23 have been measured. The centers of the circles  lie on center lines CL12 and CL23 which are perpendicular bisectors of lines L12 and L23.


Since we know line L23 and the angle from target 2 to target 3 measured from the center of the circle = 2 x A23, we have enough information to draw the circle.

Drawing both circles, we note that the vehicle position is where the circles cross. It is easy for a
microcontroller to determine the vehicle distance from the wall, and the distance along the wall.

Option - Heading Determination

Adding the equipment shown in figure 9 will enable the vehicles microcontroller to determine the vehicles heading. If the beam interrupter is adjusted to detect when the sensor points forward on the vehicle, the microcontroller can measure the time
between pulses from the interrupter module (in figure 9) and pulses from the target detecting
phototransistor (in figure 1). The angle can be determined from the time difference. After the
position of the vehicle has been calculated, the bearing angle to a target can be determined. Adding the angle from the paragraph above gives the vehicle heading.


The follow-up to this article is "A Circular Navigation System [Part 2]"