Calculating three-dimensional position from two-dimensional projections are literal textbook examples in geometry, but those examples are the “assume a spherical cow” type of simplifications. Applicable only in an ideal world where the projections are made with mathematically perfect cameras at precisely known locations with infinite resolution. Making things work in the real world is a lot harder. But not only have [Jingtong Li, Jesse Murray et al.] worked through the math of tracking a drone’s 3D flight from 2D video, they’ve released their MultiViewUnsynch software on GitHub so we can all play with it.
Instead of laboratory grade optical instruments, the cameras used in these experiments are available at our local consumer electronics store. A table in their paper Reconstruction of 3D Flight Trajectories from Ad-Hoc Camera Networks (arXiv:2003.04784) listed several Huawei cell phone cameras, a few Sony digital cameras, and a GoPro 3. Video cameras don’t need to be placed in any particular arrangement, because positions are calculated from their video footage. Correlating overlapping footage from dissimilar cameras is a challenge all in itself, since these cameras record at varying framerates ranging from 25 to 59.94 frames per second. Furthermore, these cameras all have rolling shutters, which adds an extra variable as scanlines in a frame are taken at slightly different times. This is not an easy problem.
There is a lot of interest in tracking drone flights, especially those flying where they are not welcome. And not everyone have the budget for high-end equipment or the permission to emit electromagnetic signals. MultiViewUnsynch is not quite there yet, as it tracks a single target and video files were processed afterwards. The eventual goal is to evolve this capability to track multiple targets on live video, and hopefully help reduce frustrating public embarrassments.
[IROS 2020 Presentation video (duration 14:45) requires free registration, available until at least Nov. 25th 2020.]
Mankind’s fascination with airplanes is unbroken. Whether you’re outside with your camera, getting an actual glimpse of the aircraft, or sitting at home with your RTL-SDR dongle and have a look at them from a distance, tracking them is a fun pastime activity. Provided, of course, that you are living close by an airport or in an area with high enough air traffic. If not, well there’s always real-time tracking online to fall back to, and as [geomatics] will show you, you can build your own live flight tracking system with a few lines of Python.
As it’s usually the case with Python, a lot of functionality is implemented and readily available from external modules, which lets you focus on the actual application without having to worry too much about the details. Similarly, plenty of data can be requested from all sorts of publicly accessible APIs nowadays. If you are looking for a simple-enough example to get into both subjects with a real-world application, [geomatics]’ flight tracker uses cartopy to create a map using Open Street Map data, and retrieves the flight information from ADS-B Exchange‘s public API.
We have seen ADS-B Exchange mentioned a few times before, for example with this ESP8266 based plane spotter and its successor. And if you’re more curious about the air traffic in your direct surroundings, it’s probably time for a DVB USB dongle.
Do you have commercial or general aviation flying over your home or near your home? Would you like to know more about these airplanes: identity, heading, speed, altitude and maybe GPS data along with even more information? Well then [Rich Osgood] has just the project for you and it’s not that expensive to set up. [Rick] demonstrates using a cheap USB dongle European TV tuner style SDR (software defined radio) tuner that you can get for under $30 to listen in on the Automatic Dependent Surveillance-Broadcas (ADS-B) (dead link, try the Internet Archive version) 1090 MHz mode “S” or 978 MHz mode “UAT” signals being regularly transmitted from these aircraft.
He steps us through configuring the radio to use a better antenna for improved reception then walks through detailed software installation and set up to control the radio receiver as well as pushing the final decoded data to mapping software. This looks like a fascinating and fun project if you live near commercial airways. You won’t need a license for this hack because you’re only listening and not transmitting, plus these are open channels which are legal to receive.
There are some frequencies you are not legally allowed to eavesdrop on—private communications for residential wireless telephones and cellular frequencies to name just a few (Code of Federal Regulations Title 47, Part 15.9). So remember you do have to be careful and stay within legal frequencies even if your equipment is not restricted from such reception. Also note that just because you have a legal right to intercept conversations or data on some frequencies it could be illegal to publicly share the intercepted content or any details on the reception or decoding (just saying for the record).
We wonder if [Rick] could partner with [G. Eric Rogers] to upgrade [Eric’s] motorized telescope airplane tracking system to extrapolate the radio telemeter data into vector data so his Arduino can track without relying on a video feed. That merger might just get them both on a short TSA list.
Join us after the break for some extra informational links and to watch the video on setup, installation and usage of this cheap airplane tracking rig.
Continue reading “Build A Cheap Airplane ADS-B Radio Receiving Tracking Station” →