Introduction to the Project
This Project for this year’s edition of Google Summer of Code was titled: Decoding of ADS-B(Automatic dependent surveillance—broadcast) and Multi-lateral Positioning.
The aim of the project is to decode ADS-B frames/messages from raw IQ streams recorded using RTL-SDR radios and extract the data from these frames such as aircraft identifications, position, velocity, altitude etc.
The next part is to find the location of an aircraft when it sends a frame not having any position data in it’s payload using multilateration.
What is Multilateration ?
Multilateration is a method by which the location of an aircraft (can be any moving object which broadcasts a signal) using multiple ground stations and the Time Difference of Arrival(TDOA) of a signal to each ground station.
Implementations
- Identification of long(112 bit) and short(56 bit) frames.
- With the long frames, identifying each type of frame and the data contained in it.
- Decoding and extracting the available data in the payload according to the frame type.
- Building and outputting JSON files containing ADS-B frames and decoded data. (Gzipped)
- Loading of files from multiple stations simultaneously.
- Checking and grouping files which were recorded during the same time or have overlapping recording intervals.
- Searching unique signals/frames in the overlapping files across different stations.
Testing
Since, position is one of the key component to this project, the first phase of testing was aimed at finding any hidden logical bugs in the code which calculates the position from the position containing frames.
As mentioned in the previous blogs, two methods are used to calculate the location.
The result obtained:
The plots in ‚yellow‘ are obtained from 3rd party trusted sources. This is a comparison plot of ‚our‘ output with trusted sources.
The project is expected to process files from several stations (5 stations) together. Thus there was a requirement to find files from different ground stations which were recorded at the same time interval. It can also be that the a part of the file overlaps. After which the ‚unique‘ frames were searched in these files.
The file overlap checker was tested with recordings from 5 stations recorded on 16th February in Germany.
This test run could find ‚unique‘ frames which were occuring atmost thrice, present at different ground stations.
List of scripts created:
- main.py
- planespotting/calculator.py
- planespotting/decoder.py
- planespotting/identifiers.py
- planespotting/multilateration.py
- planespotting/utils.py
Future Plans
- Validatory trilateration of the frames occuring thrice (currently in build, and in progress)
- Implementation of multilateration of frames that occur atleast five times in all files (reqires more recordings for the desired input)
- A user-friendly UI displaying the results.
Important Links:
- Source Code/Working repository: https://github.com/aerospaceresearch/PlaneSpotting/tree/shoumik_dev
- My commits to the working repository: https://github.com/aerospaceresearch/PlaneSpotting/commits/shoumik_dev?author=shoumikdey
- Project Documentation: https://planespotting.readthedocs.io/en/shoumik_dev/
- Project blog posts: https://aerospaceresearch.net/?author=17
References
Acknowledgement
Foremost, I would like to extend my sincere gratitude to my mentor and organisation head Andreas Hornig, for mentoring me throughout the season. Since I am not pursing a major in Computer Science altough coding and so called ‚cool stuffs‘ is my second hobby and passion, I would also like to appreaciate the additional energy and effort he has put in guiding me.
Besides, I put forth my vote of thanks to the organisation (Aerospaceresearch.net) as a whole, all the other mentors and the fellow students for making this organisation what it is and providing me with the opportunity to work on an open-source project.
Contact me at:
- https://twitter.com/shoumik_dey
- https://github.com/shoumikdey
- shoumik.dey@aerospaceresearch.net
- https://www.linkedin.com/in/shoumik-dey-53b69b16a/