# TDOA, multilateration etc. on small uC

• posted

One approach to that problem is viewed in Kaplan's "Understanding GPS", pp. 54-58 (section 2.4.2 "Calculation of User Position"). If you don't own a copy, the third link in google is to the .pdf file with the book:

Hope it helps.

Gene

• posted

I'd be worried about a fast transverse wave through the acrylic with a slower main wave following, all resulting from the very different SoS in the acrylic vs rubber. Wood vs rubber is not such a big difference - and less so in plywood than natural timber (the reason ply-top guitars never sound as good).

• posted

Also, is acrylic tough enough? Some drummers I've seen, you'd want 8mm at least, and it would eventually fracture anyhow. Plus heavy, expensive and high SoS (square of thickness, recall?)

I mounted my assembly on close-cell foam to absorb the energy; no point just spreading it.

• posted

I tinkered with a similar project a few years ago. Mine was an electronic target for guns.

There are two main tasks to this problem. The first is to detect the actual time difference between the signals arriving at the sensors. As an approximation, we can assume that there is only one signal that looks identical on each sensor, except for the time difference. Given that assumption, one way to find the time differences is to use autocorrelation. Wikipedia has an article which goes into some math:

In my case, I found that the sound wave from the passing bullet was so sharp and so loud (even for subsonic bullets) that it might be possible to pass it to a digital timer with only slight amplification. I never got it working properly, though.

The other task you need to solve, is the TDOA math. I spent quite a bit of time researching this, and my conclusion was that no one had ever succeeded in solving the equations algebraically. I decided to try numerical solutions. On a 100x100 grid, I could solve the equations numerically in a couple of seconds on a Pentium 4 programmed in Visual Basic 6. Wikipedia has an article on multilateration and TDOA here:

Is seems to have been updated quite a bit since I looked at it last. There is now a section on how to turn the equations into a system of linear equations in order to reduce computation time. I may have to look into that some time.

```--
RoRo```
• posted

Wait, t_n-time is the Time Of Flight, so (t_n-time)*speed is equal to sqrt((x_n-x)^2+(y_n-y)^2), or

BTW, Maxima can actually solve your expression: it doesn't like to give answers that include roots, so you just introduce a variable tsquared, and solve for it.

Hard stuff tends to require knowledge of tips and tricks; for instance, there's a better Maxima solver package to_poly_solve. You just have to know about it.

• posted

Well, mebbe. I'm pretty sure that mine is correct, with the t_n being measured times and "time" being the actual time (by the processor's clock) of the impact.

That's handy.

Know any good Maxima tips & tricks page, or forum? Generally I push it as far as it'll go, then push it a bit farther by checking my work with

- ;

(which usually evaluates to zero if my candidate matches the original).

After that I just grumble and do the work myself.

```--
Tim Wescott
Wescott Design Services ```
• posted

Your expression can't be right, because it's not invariant wrt. the measurement start time t0: let's say you do two measurements, one starting at t0 (measuring t_n and calculating 'time'), and another one at t0-dt (measuring t_n+dt, and calculating 'time+dt'). x/x_n/y/y_n is the same in each case, of course, i.e. the term C=((xn-x)/s)^2+((yn-y)/s)^2 is constant---but your equation doesn't hold:

(t_n+dt)^2 = C + (time+dt)^2

cancels out most terms but leaves 2 t_n dt = 2 time dt, which is clearly wrong.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.