Electronic – High precision trilateration in a small space and without ultrasound


I need my robot to be able to find its position in a room with ±10cm accuracy. For that I have decided to place two radios right at where the door is and the third radio on the robot. The room is small, about 8×4 meters, and as I understand, on small distances the delay between radio signals, which is used for calculating our position using trilateration, would be very small. Signals from one radio will be received by another so fast, that Raspberry PI wouldn't be able to measure the delay accurate enough with its system clock to calculate an accurate position.

Can someone suggest how can I measure the position more accurately with the same set up — two radios at the door and one on the robot and using trilateration. Maybe using some specific radios, or using something else instead of the Raspberry PI, or covering radios with something to slow down the signals, or something else.

Note: can't use ultrasound.

Best Answer

There is a lot of information that is lacking, so we'll have to make a few assumptions:

  1. That the room is not reflective to the frequencies that you're using, it would be best that it be absorptive.
  2. That system be as simple as possible
  3. Update is on the order of a few 10's of Hz.
  4. there is power limitations in the amount of energy you can broadcast.

You want avoid doing much in the way of direct mixing and phase detection, but you could use interference quite easily. I lifted this picture from (physicsclassroom) which is all you really need to understand the idea.

enter image description here

There are various schemes that you could do, but here is one that will probably work:

Drive both doorway antennas from the same source, which has steady state carriers at 3 (or more ) fixed frequencies that are mixed together and driven to the antennae. Each of these frequencies being at a different wavelength will create different nodal patterns within the room. And because they exist simultaneously, they will lie over top of each other.

On the receiver side you need the matching number of receivers for each of the transmitted frequencies that return the envelope or strength of each frequency. But this can come from one antennae and once down mixed should be a close to DC term, so easily read by a Arduino or that ilk.

There many variants that can played around with. Changing the phase of the transmitted frequencies from one antennae to the other. You'll notice that the pattern below is symmetrical, so you won't be able to determine left from right, changing the phase will fix that, and that needs to only happen on one frequency, as a guess.

There will be a general trend of decreasing power, so distance away from door can be roughly determined, but that is sufficient to reduce the solution domain of searching on board the robot to a smaller area.

You can do dead reckoning, meaning you track your position from the door way and then use that to predict outwards what the radio patterns will be in the adjacent neighbourhood. If you keep it active then you won't have the left/right symmetry problem stated above.

Other ideas: - chirping the transmitter waveform might be another way of having a dynamically changing pattern.

Caveats: - reflective walls will cause all sorts of other bounces. This complicates the computation and may render it impossible. But a pre-mapping may be the solution there.