In this project, I compare several different methods of radio signal homing robots. The goal is for the robot to find the radio transmitter.
The best robot used Time Difference of Arrival to determine the direction of the transmitter.
To build this robot click here. To see how it works, keep reading.
Continue reading to see my abstract, studies, and analysis of the different homing methods.
All Text from the Board
The purpose of this project is to demonstrate methods that an autonomous robot could use to find a set location. The methods I use in this project involve a single transmitter at a set location, and the entire receiving assembly built onto the robot. The robot uses input from the receiver to determine the approximate direction of the transmitter. As the robot moves, it periodically checks the signal and adjusts its course if needed. Robots using this method can be useful for applications like finding a charging base or when a fleet of low cost robots is needed.
The advantages of this method over a Global Positioning System-based method include: cheaper and less sophisticated circuitry, the ability to change the robot’s home target without communicating with the robot, and the ability to home in on a transmitter with unknown coordinates. The signal output that the robot looks for could be light, sound, or radio frequency (RF). For practical purposes I focus on RF.
The procedures I used were to 1) read about Radio Direction Finding(RDF), 2) build a transmitter, 3) study and experiment with antenna designs, 4) build and program a robot, 5) try the different designs on the robot and record results.
To evaluate methods that an autonomous robot could use to find a set location. This will require constructing a robot and using it to test each method.
The “Difference in Signal Strengths” method will have the highest success rate guiding the robot to the base.
Difference in Signal Strengths
This method uses two omni-directional antennas a few inches apart. The transmitter’s location is found by using the signal strengths of the two receivers. The robot will turn toward the side with the stronger signal. If the strengths are similar the robot will go forward. The problem with this method is noise. Because the two receivers are only inches apart, the difference in signal strengths is too minimal to determine over other factors, like noise and signal variability. This was the first method I thought of for this project. Because I could not make a working circuit, this was never used on my robot.
PROS: none I found
CONS: needs precise circuitry to detect the small distance between the receivers
Sampling Signal Strength with an Omni-Directional Antenna
This method uses an antenna that has near equal gain on all sides.
The robot stops, records the signal strength, and drives forward about a foot. It stops again, records the signal strength, and if it is higher then the previous recording, the robot drives forward. If the recording is lower, the robot will make a 90 degree turn to the left and continue forward. The antenna I used was a wire pointed straight up. This method required the most time to locate the transmitter, because it had very large turns and spent a lot of time traveling in the wrong direction. This method is also very sensitive to interference. The robot’s chassis even interfered, by making the antenna slightly directional.
PROS: The least costly method, simplest as well
CONS: Very sensitive to interference, resource waster- spends a lot of time driving in the wrong direction
Measuring Signal Strength with a Directional Antenna
This method uses an antenna that has high gain on one side. The robot turns 24 degrees, then takes a signal strength measurement. It repeats this 15 times, making a 360 degree turn. It now knows where the highest reading is, and blindly turns to that spot using its memory. The robot now drives forward. I tried three different antennas: the Yagi, a simple straight wire, and a waveguide. The one that worked best was the straight wire. The waveguide did not work because the frequency was too low (too large of a waveform) and could not enter the guide. The problem with the Yagi was it did not have a large enough gain difference between the front and back to be easily detected. Even though the simple wire antenna worked better then the others, it still had a low accuracy and precision. This was expected due to its lack of reflectors or other signal guiding components. In theory the waveguide should have been the most directional, because it blocks all sides but one. For a waveguide to be practical, it would need to be using a very high frequency (>2 GHz). For it to work with my transmitter(49 MHz), the guide would have to be over 9 feet in diameter!
PROS: Less prone to multipath interference, because it picks the strongest signal.
CONS: Won’t work at close range to the transmitter; Requires mechanically turning the antenna in a full circle
Time Difference of Arrival (Steady Pulse)
This method uses two omni-directional antennas. A flip-flop and a latching circuit are used to determine which antenna/receiver pair received the signal first. The robot would turn that direction. If both received the signal at about the same time, the robot would travel forward. Due to the extremely small amount of time being measured, a precision circuit would need to be built for this method to work. In theory there is one plus to this method. Because only one pulse is sent out, if it bounces off a wall, it takes longer to get to the robot. This makes it easier to tell where to turn, as the first pulse to hit the robot would likely have the least interference. Due to the circuit construction problems, however, I did not use this method on a robot.
PROS: Less likely to have harmful interference
CONS: Requires specialty parts, Would need a precision circuit design, even just to get mediocre results.
The Method that Worked
Time Difference of Arrival (Detect Phase Difference) Method
This is the method I use on my robot. I chose it because it is very responsive, and does not care about signal strength. By not using signal strength to determine direction, the robot can work right next to the transmitter, without overloading its antenna. But this method has fallacies as well, one of them being strong reflections off the ground or other surfaces make the robot travel away from the transmitter. Another minor issue is 180 degree ambiguity, which you can read about below.
PROS: very responsive, not overloaded by strong signals
CONS: gets confused easily with multipath interference
How Does it Work?
This method uses two antennas positioned one quarter wavelength apart and a transmitter outputting an unmodulated carrier waveform. Both antennas are just under half a wavelength long. The antennas are switched back and forth electronically at 400 hertz. If both receive the same part of the wavelength, the FM radio connected to the antennas will not detect any signal. If one antenna receives the low part of the wave and the other receives the high part, the radio sees a modulated signal and outputs a 400 hertz tone. The tone’s phase difference compared to the switching frequency of the antennas is used to determine what direction the signal is coming from.
This is what the waveforms would look like when the transmitter is perpendicular to the left side of the robot.
This is what the waveforms would look like when the transmitter is perpendicular to the right side of the robot
This is what the waveforms would look like when the robot is pointing straight at(or away from) the transmitter.
Robot not aligned with transmitter.
Red antenna gets the low part of the waveform. Blue gets the high part.
Robot aligned with transmitter.
Both antennas receive the same part of the waveform.
What About 180 Degree Ambiguity?
Having 180 degree ambiguity means that the robot cannot tell front from back. The robot could be traveling away from the transmitter and not know it. This annoyance affects several of my designs, but is not really a problem. If the robot happens to be facing away from the transmitter, when correcting itself it will turn until it is facing the correct way. Because of the constant correcting it does, very rarely will it travel away from its target farther then a couple inches. When the robot is off course, it will turn until it senses a null (which happens when pointing at or away from the transmitter). This null point is small, so the robot will most likely
need to correct itself many times on the way to its target.
This technology is meant to assist other navigational methods that are already available. The most likely use would be to guide a robot to a charging base. A GPS would guide a robot to a general area, then the RF circuit would be used to home in on the base.
Search and Rescue
Search and rescue applications are also possible. In such a case, the robot would be set to look for transmitters that are attached to the lost objects.
The robot could be used to find offending transmitters. It would be set to a frequency that is being interfered upon, then attempt to locate the transmitter. This would be a good job for a flying RF homing robot. Once it thinks the interference has been located, it could use a GPS to send out coordinates.
Radio Frequency Homing Vs. the Global Positioning System
We have the GPS! What do we need RF homing for? Let us examine how they both work.
The GPS has at least 24 operating satellites orbiting the Earth. This ensures that any location of the globe has access to 4 or more satellites any time of day. The time taken for signals to come from the satellites to the receiver is used to determine position. The receiver requires at least 4 satellites to do this.
The RF Homing methods in my project use one transmitter, at the robot’s home location, and one receiver, mounted on the robot. The robot uses signal strength (for directional antenna methods) or time (for phase based methods) to determine what direction the transmitter is relative to the robot.
What problems do GPS and RF homing have in common? They both rely on radio signals being transmitted from a large distance away, so mountains, buildings, and many other things can interfere or completely prevent them from working. Neither system is fail proof.
The GPS is typically accurate to ±10 meters. While great for getting to a certain region, this accuracy is too low for a robot to get onto a small charging base, for example. Because RF homing uses a separate transmitter for the robot to find, the robot can get to that exact location, no matter how small it is. However, due to the need for high power transmitters and more room for interference, GPS receivers are more practical for long distance uses. The GPS tells location, RF homing tells direction.
One system does not solve all the problems of navigation. Both systems have unique abilities and need to be implemented together for maximum flexibility and benefit.
My hypothesis was wrong, the “Time Difference of Arrival” method had the highest success rate, not the “Difference in Signal Strengths” method. However, using more precise circuitry could have resulted in a different conclusion. This technology can be used as it is on robots now, but further experimentation may show ways to overcome its shortcomings, such as high sensitivity to ground interference.
I used three transmitters in this project. Initially, I only planned to use a 49 MHz transmitter. When I found the wavelength was too large for the antenna designs I wanted to try, I started using other transmitters. All of them were modified to output a constant waveform. The walkie-talkie was additionally modified to output only a carrier waveform (no audio).
Code (for TDOA robot, the winning technology) Written in Great Cow BASIC ;Chip Settings #chip 12F675,4 #config CPD=OFF, CP=OFF, BODEN=OFF, MCLRE=OFF, PWRTE=OFF, WDT=OFF, OSC=INTRC_OSC_NOCLKOUT ;Defines (Constants) #define buffer 25 'what counts as straight ahead? If too small, the robot will jitter. If too large the robot will drive away from the transmitter ;Variables Dim caliset As word Dim voltage As word wait 6000 ms 'read calibration word from EEPROM EPRead 1, caliset EPRead 2, caliset_H if gpio.3 = 0 then ' used for calibrating wait 9000 ms end if Do Forever set gpio.5 on 'output antenna switching waveform wait 100 10us set gpio.5 off wait 100 10us set gpio.5 on wait 100 10us set gpio.5 off wait 100 10us set gpio.5 on wait 100 10us set gpio.5 off wait 100 10us set gpio.5 on wait 100 10us set gpio.5 off wait 100 10us voltage = ReadAD10(AN3) 'read voltage from radio if gpio.3 = 0 then 'if in calibrate mode, store voltage in EEPROM caliset = voltage EPWrite 1, caliset EPWrite 2, caliset_H wait 5000 ms goto quitprogram end if if (voltage > (caliset - buffer)) and (voltage < (caliset + buffer)) then 'drive forward Set GPIO.2 On set GPIO.0 on wait 1 ms set GPIO.2 off wait 1 ms set GPIO.0 off end if if voltage > (caliset + buffer) then 'turn Set GPIO.2 On set GPIO.0 on wait 1 ms set GPIO.2 off set GPIO.0 off end if if voltage < (caliset - buffer) then 'turn the other way Set GPIO.2 On set GPIO.0 on wait 2 ms set GPIO.2 off set GPIO.0 off end if wait 13 ms 'wait a little bit, 13 milliseconds to be exact loop 'go back to the begining quitprogram: ' in calibrate mode? Stop program until a hard reset wait 1 ms
Science fair project made in early 2013