3 ms·
That’s a nice read, thank you for that. If he sets up three or more recorders then next time he can find out within minutes of the first bang to within meters.
by hcfman 2y ago
That’s a nice read, thank you for that. If he sets up three or more recorders then next time he can find out within minutes of the first bang to within meters.
But his article presents a fun challenge. He doesn’t say where his receiver locations are but he does give a triangle dimensions. I wonder if it’s possible to map this onto the street names and then work out which farm it was. It seems likely that there is only one way to map that triangle so each vertex is on the street it is reported to be on.
Then you could invent a time, any time and add the number of seconds that he mentions to get the two other times. Now you have the times and the co-ordinates, within the constraints from the time inaccuracies you could run the docker version of my localization program (https://github.com/hcfman/sbts-aru https://github.com/hcfman/sbts-aru) on this input and it would output the map link to the offending farm. With a largish degree of error.
Note. From the diagram, the sound source doesn’t fall within the triangle of receivers. This can still work, but the convergence drops off after a time so you can only practically localize this if the distance is not too far outside. But if you make battery powered receivers, you choose a better spot and move one if the recorders so it does fall within the triangle.
Also, just one second of error is a lot!
- hcfman 2y agoNote also, although my project details the construction of a Raspberry Pi recorder for high accuracy localization. If you are localizing over long distances and you are happy a second or two inaccuracy from the arrival times, then indeed you can run the docker version of the program listed on GitHub and perform localizations based on mobile phone determinations of time of arrival. You just have to match the correct input format as detailed in the article. Specifically like the following: $ docker run -i localize_event 20 Enter GPS coordinates and timestamps. Press enter twice to finish. 51.014131667,5.813736667 2023-09-17_15-49-48.522301 51.015373333,5.811656667 2023-09-17_15-49-48.810330 51.016368332,5.814084879 2023-09-17_15-49-48.710824 51.015238333,5.815941667 2023-09-17_15-49-48.543376 Location: 51.014903961182846,5.814442712946816 Web links: OpenStreetMap: https://www.openstreetmap.org/?mlat=51.014903961182846&mlon=5.814442712946816#map=15/51.014903961182846/5.814442712946816 https://www.openstreetmap.org/?mlat=51.014903961182846&mlon=... Google Maps: https://www.google.com/maps?q=51.014903961182846,5.814442712946816&t=h&z=15 https://www.google.com/maps?q=51.014903961182846,5.814442712... Note also, you can simulate this easily by choosing locations on a map and calculating the expect time of arrivals. Then you can introduce one more seconds of error and see what difference it makes. It’s lovely to work things out for yourself but he could have saved himself some weeks of sleep by googling sound localization if that was his primary interest :-) It is weird that you can leg off air cannons all night for three weeks and not have the authorities on your head though.
- GJim 2y ago> GPS coordinates *Coordinates, or lat/long Other navigation systems are available, including other GNSS! > 51.014903961182846,5.814442712946816 I'm not sure localisation to the level of the atomic lattice is entirely relevant in this use case.
- hcfman 2y agoI guess I could ask chatgpt how many decimals gets you to cm accuracy and fix the decimal places to that. Haven’t found it a priority yet. But if it makes details guys happy. You are not the first to say this.
- hcfman 2y agoActually, chatgpt says that for 1mm resolution you need 9 decimal places anyway :-) Note a rtk gnss can resolve your location to 1cm. I don't know how much jitter there is in the USB buffering, but for this purpose, lets assume 0. Then if I want to do experiments with short distance localization then it would be good to be one decimal less than what I want to use in practice, so there is the 1 mm. So I could format this to a max of 9 decimal places. I see the above is still a little more. Something for the next time I make a push. Thanks for your concern :-)