Multilateration of Sound in 3D Space

142 Views Asked by At

TL:DR - How can you find the 3D coordinates of a emitter than transmits an impulse signal?


STORY:

I'm working on something to improve my bird-watching. I've got a camera that can take pictures of the birds when I'm not around, but currently it has to be zoomed out all the way to guarantee they're in frame. This doesn't make for good pictures, so here's what I've done:

Mounted camera on a motor so it can rotate, zoomed in enough that the pictures will be better quality, and attempted multilateration to make the camera turn.


ATTEMPTED SOLUTION:

My multilateration is simple. 4 microphones listen for sound. When an impulse (such as a chirp) is created from an emitter (bird), the microphones can detect the impulse, and my microcontroller can calculate the time differences between all 4 mics receiving the impulse.

My microcontroller then uses a home brew program that converts these time differences and the known locations of the microphones relative to each other into matrix form.

Once the program has the matrices, it can solve for the distance from each microphone to the bird's origin, which then can be used to figure out the coordinates of the bird relative to the microphones.


PROBLEM:

The problem with this, is that it needs to be really precise. I'm talking ~10 nanoseconds of difference in reception time between mics in theoretical math space will cause the program to miscalculate where the bird is.

I've muddled with the code to see if implementing more mics will lessen the need for precision, but I can't find a way to achieve a tolerance greater than ~±25ns.

With my setup, I can only calculate a reception time difference on the level of 10-5 seconds, so it's not possible for me to guarantee the level of precision that this type of math needs.

Can anyone think of a way for me to improve my setup so that it works? Are there other ways to accomplish multilateration? How else could I find where the bird is when it's chirping?

Also, I think my question is different from this one.

Thanks guys, you're always awesome!!!


EDIT:

I have written out the mathematical process I have used for this problem. Pictures of that, an excel sheet for generating initial conditions, and Matlab code for handling the maths can be found here.

1

There are 1 best solutions below

1
On

A mayor factor you didn't mention is the distance between your microphones! Also you didn't mention how precise you want to locate the bird. But you can only relax timing needs if you have greater distance between the mics.

...it can solve for the distance from each microphone to the bird's origin.. I don't understand your calculations. What you should get is a horizontal and a vertical angle of the chirp's origin, relativ to the base line. That needs no matrix calculation - its only geometric, isn't it?

As far as my practical experience in electronics precision measurement goes, I even don't trust your 10µs resolution. There are many error sources, from microphone differences (frequency response) to reflections in trees, air turbulences, other sounds and overall white noise level... 10ns resolution from <20kHz sound is practically absolutely impossible. But: 10µs deviation for a 1 meter base line amounts to an angle variance of 0,2 degree. Is that not sufficient???