Triangulation of bullet hitting paper target -------------------------------------------- There is a frame with the sides 1000mm x 1000mm holding a sheet of paper. In each of the four corners there is a microphone. M1 M2 M3 M4 The microphone could/should point at a 45 degree angle They could be lined up something like this: -------------------- |/M1 M2\| | | | | | | | | | | | | |\M4 M3/| -------------------- That means that the positions for the microphones are: (X,Y) in mm M1 0,0 M2 1000,0 M3 1000,1000 M4 0,1000 Using the speed of sound and meassuring the time it take for each microphone to pick up the sound of the bullet hitting the paper I should be able to calculate where in the X,Y plane the bullet hit. Obviously one microphone will have to act as a trigger for starting the timer. The triggering microphone will be the one that first receives the sound of the bullet hitting the paper. How do I do this, and what formula to use? I've done some "simulation" of this. I did a program that let me point the mouse cursor and click to calculate each angle, distance and time for sound to travel from each microphone. But as I said, I have no clue on what calculation is needed to convert the delays into coordinates in the plane (on the paper) I'm a programmer and lousy at advanced maths, so please, humor me. :)
Triangulation of bullet hitting paper target
Started by ●January 10, 2008
Reply by ●January 10, 20082008-01-10
overgaard schrieb:> -------------------- > |/M1 M2\| > | | > | | > | | > | | > | | > | | > |\M4 M3/| > --------------------[...]> I've done some "simulation" of this. I did a program that let me point the > mouse cursor and click to > calculate each angle, distance and time for sound to travel from each > microphone.Then you alread have half of the work done.> But as I said, I have no clue on what calculation is needed to convert the > delays into coordinates in the plane > (on the paper)Use the equations from your simulation and add a additional parameter for the time when the bullet hits the paper - more exactly the time from the hit to the trigger of the first microphone. This time is simply added to all delays. Then you get a system of 4 equations (one for each microphone) with 3 variables: X, Y and the hit time above. So your system is overdetermined. Three microphones would have been enough. You may use this redundancy in the information for validation purposes. Normally one would calculate the pseudo-inverse to get a estamination of an overdetermined system. However, in this case you might simply drop one of the equations and use the remaining three ones. If you do this four times, dropping another equation on each run, and the reasults are similar, then you can be quite sure the the result is reliable. I hope that the microphones detect something like the sound-waves in the paper. Otherwise it will be much more complicated, because you will have to detect the waves from a supersonic bang. In fact the velocity of the bullet becomes a parameter and you really need 4 microphones. This is because the shortest vector (with respect to sound) to a supersonic object is not perpenticular to the moving direction, but in a certain angle to this direction that depends on the velocity.> I'm a programmer and lousy at advanced maths, so please, humor me. :)You won't get around some mathematics here and maybe some physics too. Marcel
Reply by ●January 10, 20082008-01-10
overgaard wrote:> Triangulation of bullet hitting paper target > --------------------------------------------Three microphones suffice. Read up on how LORAN works. Trigger the counter when the gun fires and record the count at impact for each microphone. Compute with differences. Two microphones will do of they are in the plane the target but far enough from it, say to the left and below. Acoustic reflections might interfere with that scheme. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●January 10, 20082008-01-10
overgaard wrote:> There is a frame with the sides 1000mm x 1000mm holding a sheet of paper. > In each of the four corners there is a microphone. M1 M2 M3 M4 > Using the speed of sound and meassuring the time it take for each > microphone > to pick up the sound of the bullet hitting the paper I should be able to > calculate > where in the X,Y plane the bullet hit. > How do I do this, and what formula to use?You have to solve the system of nonlinear equations.> But as I said, I have no clue on what calculation is needed to convert the > delays into coordinates in the planeIf you don't have a clue, define a grid of 100 x 100 over the frame, generate a lookup table and convert the delays to coordinates by that table. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by ●January 10, 20082008-01-10
On Jan 10, 6:40 am, "overgaard" <jor...@antistaten.se> wrote:> Triangulation of bullet hitting paper target > -------------------------------------------- > > There is a frame with the sides 1000mm x 1000mm holding a sheet of paper. > In each of the four corners there is a microphone. M1 M2 M3 M4 > The microphone could/should point at a 45 degree angle > They could be lined up something like this: > > -------------------- > |/M1 M2\| > | | > | | > | | > | | > | | > | | > |\M4 M3/| > -------------------- > > That means that the positions for the microphones are: (X,Y) in mm > > M1 0,0 > M2 1000,0 > M3 1000,1000 > M4 0,1000 > > Using the speed of sound and meassuring the time it take for each > microphone > to pick up the sound of the bullet hitting the paper I should be able to > calculate > where in the X,Y plane the bullet hit. > > Obviously one microphone will have to act as a trigger for starting the > timer. > The triggering microphone will be the one that first receives the sound of > the bullet hitting the paper. > > How do I do this, and what formula to use? > > I've done some "simulation" of this. I did a program that let me point the > mouse cursor and click to > calculate each angle, distance and time for sound to travel from each > microphone. > > But as I said, I have no clue on what calculation is needed to convert the > delays into coordinates in the plane > (on the paper) > > I'm a programmer and lousy at advanced maths, so please, humor me. :)This may be more math than you are looking for, but... The key phrase to search for is time delay of arrival (TDOA) it comes up a lot in passive detection. There are a bunch of methods described in various papers. See for example: Chan and Ho, "A simple and efficient Estimator for hyperbolic location", or "Solution and Performance Analysis of Geolocation by TDOA" Wax and Kailath "Optimum Localization of Multiple Sources by passive arrays" Smith and Abel "Closed Form Least Squares Source Location Estimation from Range Difference Measurements" or a particle filter approach Vermaak, Ganget, Blake and Perez "Sequential Monte Carlo Fusion of Sound and Vision for Speaker tracking" It's been a while since I looked at this, but I recall that Chan and Ho and Smith and Abel's papers are easy to implement. The particle filter method is cool, can track a moving target and is kind of cool, albeit much slower than anything else. If you want something easy, and you're not too worried about precision, try a grid search. Divide the area of the target into a grid, then in your algorithm, for each grid point, calculate the theoretical sound arrival times at each microphone. The point that yields the closest result to what you measure is where the sound came from. Based on this, you might even be able to write some sort of binary search over the area you are interested in. The particle filter method is a fancy variation of this. Chris
Reply by ●January 10, 20082008-01-10
>On Jan 10, 6:40 am, "overgaard" <jor...@antistaten.se> wrote: >> Triangulation of bullet hitting paper target >> -------------------------------------------- >> >> There is a frame with the sides 1000mm x 1000mm holding a sheet ofpaper.>> In each of the four corners there is a microphone. M1 M2 M3 M4 >> The microphone could/should point at a 45 degree angle >> They could be lined up something like this: >> >> -------------------- >> |/M1 M2\| >> | | >> | | >> | | >> | | >> | | >> | | >> |\M4 M3/| >> -------------------- >> >> That means that the positions for the microphones are: (X,Y) in mm >> >> M1 0,0 >> M2 1000,0 >> M3 1000,1000 >> M4 0,1000 >> >> Using the speed of sound and meassuring the time it take for each >> microphone >> to pick up the sound of the bullet hitting the paper I should be ableto>> calculate >> where in the X,Y plane the bullet hit. >> >> Obviously one microphone will have to act as a trigger for startingthe>> timer. >> The triggering microphone will be the one that first receives the soundof>> the bullet hitting the paper. >> >> How do I do this, and what formula to use? >> >> I've done some "simulation" of this. I did a program that let me pointthe>> mouse cursor and click to >> calculate each angle, distance and time for sound to travel from each >> microphone. >> >> But as I said, I have no clue on what calculation is needed to convertthe>> delays into coordinates in the plane >> (on the paper) >> >> I'm a programmer and lousy at advanced maths, so please, humor me. :) > >This may be more math than you are looking for, but... > >The key phrase to search for is time delay of arrival (TDOA) it comes >up a lot in passive detection. > >There are a bunch of methods described in various papers. See for >example: >Chan and Ho, "A simple and efficient Estimator for hyperbolic >location", or "Solution and Performance Analysis of Geolocation by >TDOA" >Wax and Kailath "Optimum Localization of Multiple Sources by passive >arrays" >Smith and Abel "Closed Form Least Squares Source Location Estimation >from Range Difference Measurements" >or a particle filter approach Vermaak, Ganget, Blake and Perez >"Sequential Monte Carlo Fusion of Sound and Vision for Speaker >tracking" > >It's been a while since I looked at this, but I recall that Chan and >Ho and Smith and Abel's papers are easy to implement. The particle >filter method is cool, can track a moving target and is kind of cool, >albeit much slower than anything else. > >If you want something easy, and you're not too worried about >precision, try a grid search. Divide the area of the target into a >grid, then in your algorithm, for each grid point, calculate the >theoretical sound arrival times at each microphone. The point that >yields the closest result to what you measure is where the sound came >from. Based on this, you might even be able to write some sort of >binary search over the area you are interested in. The particle filter >method is a fancy variation of this. > >Chris > >Thanks all you guys for the info! :) I guess I need to fresh up on my maths. TDOA sounds interresting. Well, precision is needed. I do not know what precision/resolution is possible but it would be nice to have an max error for about +- 1mm. Maybe I will start of with the grid solution to test out the hardware and when that is working try to get something with TDOA working for higher precision/resolution. Again, thanks all! Regards // Jorgen
Reply by ●January 10, 20082008-01-10
Some complication: Assume you use a 48 kHz soundcard, then the sound travels 7 mm in air during one sample duration. If you need 1 mm resolution it will require some math. For example, oversampling comes to mind, and / or using crosscorrelation between any two signals. I have some matlab/Octave code here, that could be used to estimate the delay between the same signal received by two microphones. It's probably overkill, but it could be used for a concept demo / prototype, where CPU time is not relevant. It will work best, if the frequency responses are identical. http://www.dsprelated.com/showarticle/26.php Btw, this appears to be a rather popular topic, search comp.dsp archives.
Reply by ●January 10, 20082008-01-10
overgaard wrote: ...> I guess I need to fresh up on my maths. TDOA sounds interresting. > Well, precision is needed. I do not know what precision/resolution is > possible > but it would be nice to have an max error for about +- 1mm. > Maybe I will start of with the grid solution to test out the hardware > and when that is working try to get something with TDOA working for > higher precision/resolution.That amounts to a time resolution of 2.91 microseconds at 20C. The speed of sound in air depends on temperature. It is 43.0 meters/second at 19C 343.6 at 20C, and 344.2 at 21C. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●January 11, 20082008-01-11
>overgaard wrote: > > ... > >> I guess I need to fresh up on my maths. TDOA sounds interresting. >> Well, precision is needed. I do not know what precision/resolution is >> possible >> but it would be nice to have an max error for about +- 1mm. >> Maybe I will start of with the grid solution to test out the hardware >> and when that is working try to get something with TDOA working for >> higher precision/resolution. > >That amounts to a time resolution of 2.91 microseconds at 20C. The speed>of sound in air depends on temperature. It is 43.0 meters/second at 19C > 343.6 at 20C, and 344.2 at 21C. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >Another thing, There seem to be at least two approaches to this: 1: The first microphone to sense the bullet hitting the target will act as the trigger, triggering the timer. Then timestamp each remaining microphones to get the delays. This approach assumes that only the differences in delay is enough to triangulate. Is this correct? I mean, the time from actuall bullet hit to the first microphone is unknown since that microphone is the triggering one. This way does not require any audiosampling. Just level triggering and a timer. 2: Continously sample ALL microphones and do some really heavy maths, like TDOA, GCC, fft's, etc. Anyway, I've started learning Octave to learn some of the sound analyzing stuff. I do have a long way to go it seems. :) I whish there was a function that took the coordinates of the microphones, the delays and returned the hit coordinates. ;)
Reply by ●January 11, 20082008-01-11
overgaard wrote: ...> Another thing, > > There seem to be at least two approaches to this: > > 1: The first microphone to sense the bullet hitting the target will act as > the trigger, triggering the timer. Then timestamp each remaining > microphones to get the delays. This approach assumes that only the > differences in delay is enough to triangulate. Is this correct? > I mean, the time from actuall bullet hit to the first microphone is > unknown since that microphone is the triggering one. > This way does not require any audiosampling. Just level triggering and a > timer. > > 2: Continously sample ALL microphones and do some really heavy maths, like > TDOA, GCC, fft's, etc. > > Anyway, I've started learning Octave to learn some of the sound analyzing > stuff. > > I do have a long way to go it seems. :) > > I whish there was a function that took the coordinates of the microphones, > the delays and returned the hit coordinates. ;)The first thing you need to do is connect one microphone and figure out how to get it to trigger something when the bullet impacts. I suspect a bit of difficulty. When it seems to work, connect two microphones close together, and see if their trigger signals occur together. I suspect that a consistent time difference is the best you can hope for, and that by the time you get it, you will know a great deal more about this than either of us does now. Start your timer from the muzzle blast, That way, all your trigger circuits can be "identical" Keeping the microphones close to the target eliminates false triggering from reflections but puts them in harms way. If the microphones can be far enough from the target to that their arcs of constant time subtend small enough angles across the target, two suffice to delineate a quasi-rectangular grid. There is an ambiguity with only two microphones that a third resolves. By properly locating two microphones, the ambiguity can be located outside the region of interest. (Celestial navigation works the same way. If observations on two stars allow two solutions, one within a few miles of where one thinks one is, and the other halfway around the world, a third sight isn't really necessary.) Jerry -- Engineering is the art of making what you want from things you can get.






