3

I am designing a little tabletop robot with a very simple goal of keeping track of where it is on the table as he traverses it. This, as it turns out, is a lot more difficult than I imagined.

All the obvious solutions like using an accelero-gyro combo and using distance sensors seem to be flawed as they either drift very much or are noisy and unreliable.

So I came up with the idea to install some kind of EM beacon on the vertices of the table. I don't have a detailed theoretical understanding of EM waves but here is what I have gathered so far:

  • I can generate a simple EM wave by exciting an antenna with a sinusoidal wave (with an R-2R DAC)
  • An EM receiver is an antenna output hooked to an op-amp input with its output going to a DAC. I can use a microcontroller to get the peaks of this signal and collect data on how distance affects amplitudes. If I plot this data on the computer, I should see a relationship between distance and amplitude of waves.
  • Then I can use this relationship to measure the robots distance from that particular beacon. If I use different frequencies for the 4 different beacons, The robot should be able to calculate its position on the table.

I'm a programmer first so I am sure I can handle the digital portion of this setup. I am, however, concerned if EM waves work the way I expect. Am I being too naive with this?

Basically what I want to know is this: Is it reasonable to expect that this setup will work reliably, assuming that the digital parts of the system work fine? Has this been done before, and reliably? What are the sources of error that I have not been able to gather?

Any suggestions/tips/resources are welcome.

Edit: While the answers are interesting and have provided me with lots simple ideas to accomplish what I'm trying to do with my convoluted setup, none of them really answer my question. As such, I think that unless I conduct the experiment myself I am not going to find an answer.

Nirav
  • 205
  • 4
  • 10
  • 1
    You are overcomplicating. A bunch of IR LEDs and triangulation will do the trick – Eugene Sh. Aug 15 '18 at 17:41
  • 1
    You could use 3 time displaced sonar senders to get mm resolution on a desktop, much simpler. – Jack Creasey Aug 15 '18 at 17:48
  • 1
    EM reflected waves re-combine with the direct-path wave. Your amplitude vs. distance curve may become non-monotonic. Phase too. – glen_geek Aug 15 '18 at 17:51
  • @glen_geek I was worried something might this might happen. Is there a way to counter this? I've read that for lower frequencies, there is minimum reflection. – Nirav Aug 16 '18 at 03:37
  • @EugeneSh. My table is right by the window so ... – Nirav Aug 16 '18 at 04:05
  • @JackCreasey There is really no way for me to obtain sonar senders where I live. – Nirav Aug 16 '18 at 04:10
  • 1
    Yes, lower frequency may help. Your calibrations may depend on robot orientation (rotation), and may still require the table to be in a particular spot in the room. The local area around the table may have to be controlled too. You made no mention of your target X Y position accuracy (not that I'd be able to suggest what accuracy this method might achieve). How big is your table? – glen_geek Aug 16 '18 at 05:34
  • You might consider LEDs (or mirrors) rotating on motors at the corners of the table. Or those previously mentioned little "ping" ultrasonic distance sensors used in Arduino project should be relatively easy components to obtain anywhere that you can obtain components *at all*, and with some trickery you should be able to communicate between them. You can also use audible sound (or possibly just above it) with audio components, though it takes care to select a microphone with ultrasonic sensitivity. – Chris Stratton Aug 16 '18 at 12:39
  • @ChrisStratton I am interested in using sound above the audible range to obtain position information but it all comes down to finding speaker and microphone with ultrasonic capabilities which I'm not sure they sell here. – Nirav Aug 16 '18 at 16:36
  • If you don't mind listening to a loud continuous tone, you can measure and compare phase using a loudspeaker (or piezo) source, and standard audio microphones as detectors. Reflected waves off the table or other nearby objects can interfere however. Digital signal processing to find phase relationships can be translated to XY table position if you have enough microphone inputs. Have done this at short range *along one axis* in a controlled environment with decent results using a piezo for receiver and another for transmitter (@ 3.5 kHz). Might be worth a try. – glen_geek Aug 17 '18 at 18:02

4 Answers4

1

Is it reasonable to expect that this setup will work reliably, assuming that the digital parts of the system work fine?

Not in my opinion. This statement you made is the foundation of your idea

I can use a microcontroller to get the peaks of this signal and collect data on how distance affects amplitudes. If I plot this data on the computer, I should see a relationship between distance and amplitude of waves.

Waves amplitude decay as \$\frac{1}{r^2}\$. I doubt that you can infer distance from that dependence. Being optimistic, with the "peaks" you are mentioning, you could infer the relative distance of the source's position relative to the position of your beacon. Waves propagate with the speed of light and I suspect you want to measure small distances (in the order of meters), so you would need a really high time precision. It doesen't seem feaisable for a small project. Not to mention the complexities of implementing an AM emitter and receiver.

Has this been done before, and reliably?

Not as far as I know. It is not impossible, but it doesen't seem like an easy solution.

Estimation of an object position with EM waves is usually made by RADAR ("Radio Detection and Ranging"). It is very different from what you are proposing: you are trying to detect an object position by demodulating an AM wave emitted by the object, while RADAR is based on emitting EM waves and waiting for them to reflect on the target and return.

MPA95
  • 563
  • 1
  • 3
  • 12
0

Basically what I want to know is this: Is it reasonable to expect that this setup will work reliably, assuming that the digital parts of the system work fine? Has this been done before, and reliably? What are the sources of error that I have not been able to gather?

First off, you can minimize your sources of error with a Kalman filter. The drawback is they are difficult to implement and understand. Or you can buy an Inertial Measurement Unit (IMU) that has already done the work and corrects the data.

Secondly there are already off the shelf systems that can help localize robots.

One is RTLS systems which work to 10cm (like Pozyx):

Precision RTLSs have emerged as an effective method for determining the location or tracking of people or mobile assets in office complexes, warehouses, manufacturing plants, and assembly lines. In this approach, a mobile object (tag) exchanges information with fixed-position devices (anchors) using standard formats and UWB technologies specified in IEEE 802.15.4-2011 for low-rate wireless personal area networks (LR-WPANs). By determining the distance between the tag and several anchors, applications can determine the tag’s relative position to those known anchors – and thus, the tag’s absolute position.

Source: Digikey

The second is RTK GPS, which works better outdoors but has 1cm accuracy:

Real-time kinematic (RTK) positioning is a satellite navigation technique used to enhance the precision of position data derived from satellite-based positioning systems (global navigation satellite systems, GNSS) such as GPS, GLONASS, Galileo, and BeiDou.

These systems can be had for roughly 500$

Voltage Spike
  • 75,799
  • 36
  • 80
  • 208
  • Thanks for answering. I will definitely use an IMU to correct the data but kalman filter is a bit too complex for an 8-bit mcu (atmega) that I plan to use. About the off-the-shelf parts, they are incredibly difficult to obtain where I live. I'm essentially on my own. – Nirav Aug 16 '18 at 03:53
  • You have given no location in your user profile. Are you in a country that prohibits international mail or foreign purchases? – Transistor Aug 16 '18 at 07:38
  • @Transistor Yes, there are many restrictions on having an international bank account where I live. Also, I assume that it would take way too long to ship things here from to other parts of the world. I live in Nepal BTW. – Nirav Aug 16 '18 at 16:21
0

I've looked at magnetic field sensors. Perhaps at 10MHz or so, because you have a very short working region. Previously I have 10 meter ranges at below 1MHz carriers, with signal recovery still needing narrow-banding before feeding to ADC. With 100KHz bandwidth, my SNR was about 0dB. Had I taken the project forward, a 100 Hertz bandwidth would have produced 30dB SNR. And 100Hz allows quite rapid switching between signal sources, thus perhaps only 1 second of signal processing is needed.

You'll need I & Q coils in the robot. Extract a vector to each beacon, and use the " resection " math.

analogsystemsrf
  • 33,703
  • 2
  • 18
  • 46
  • 1
    I'm sorry I don't understand what you are trying to say. As I said in the post, I don't have a detailed knowledge on electromagnetism. – Nirav Aug 16 '18 at 16:22
  • You don't need much E&M for this. You do need to understand high-frequency signal amplification, and low-noise and narrow-band filtering (or moderate-bandwidth, and use an FFT to further extract the signal). – analogsystemsrf Aug 17 '18 at 09:59
0

Mark a 2 dimensional non repeating (pseudo random) pattern on the table and have a camera on the robot looking down. Print it with same coloured ink on coloured paper that is visible in IR or UV light only and no one will be the wiser. Mouse camera can give you speed of movement in X and Y and a Web cam can calculate your position and angle based on the decoded pattern. Resolution to sub pixel of your camera is achievable. Resolution to your pattern cell size should be possible in a micro controller with rudimentary camera library.

EDIT:
There are a few projects that have hacked mouse cameras to supply the raw diagnostic video that could be used to establish location with a single cheap camera.

KalleMP
  • 4,039
  • 1
  • 14
  • 32
  • This is a really interesting idea. I never thought to approach the problem this way. But it is not really practical for the constraints I have chosen for this project. – Nirav Aug 16 '18 at 16:18
  • Standing waves can be arranged in fixed zones between two antennas. You can have two orthogonal sets at prime related frequencies that are cycled rapidly. Two probe antennas ot the extremities can be used to sense the field at the 4 frequencies and use standing waves as carriers and use integer ambiguity calculations (like survey GPS) to resolve the location. Knowing the fixed distance between your antennas and how it moves you can eventually recover your absolute location if unknown. Tracking should be possible at reasonable speeds. – KalleMP Aug 16 '18 at 18:00
  • Okay wow now a hacked mouse would be cool. I will definitely look into it (although it looks like the lens has to be touching the table surface to work properly. – Nirav Aug 17 '18 at 17:09
  • You can change the lens if you have the time to experiment. – KalleMP Aug 18 '18 at 10:14