Dekodowanie ADS-B
Trudno byc w czymkolwiek dobrym specjalista, nie bedac równoczesnie pasjonatem. W informatyce widac to równie dobrze jak w kazdej innej dziedzinie zycia czy nauki. Warunek konieczny oczywiscie nie jest warunkiem wystarczajacym, ale jednak to przyjemne chciec wgryzac sie glebiej i glebiej w swoja ulubiona dzialke. W wielu sytuacjach przeklada sie to na osiagniecia zawodowe, ale tak naprawde, najciekawsze sa te obszary, w których zabawa nie jest niczym wiecej niz tylko zabawa. Tam wlasnie mozemy poeksperymentowac, nikt nas nie goni, nikt nie rozlicza z efektów, nikt nie mówi co jest wazniejsze a co mniej istotne. A jednak projekty same sie tocza i czesto koncza niemalym sukcesem. W moim prywatnym przypadku, ostatni (tak naprawde zupelnie niewielki) projekt dotyczyl przeciecia sie dwóch tematów, które mnie interesuja: IT i latania, pozwalajac mi bawic sie tym, co lubie, czyli laczeniem komputerów z obiektami zupelnie nie-informatycznego swiata. W efekcie, powstalo proste rozwiazanie odbierajace z samolotów nad Polska sygnaly transponderów i przekazujace je dalej w postaci mozliwej do wykorzystania dla uzytkowników Internetu.
Gdyby ktos chcial pobawic sie w ten sam sposób, potrzebne beda:
- Sygnaly z samolotów. To oczywiscie nie ode mnie zalezy, ale samoloty wyposazone sa w transpondery, które nadaja wiele ciekawych informacji. Numer rejestracyjny, wysokosc, predkosc, typ maszyny, status, dane pogodowe itp. Razem okolo 80 róznych parametrów, które w postaci nieprzetworzonej mozna sobie obejrzec na przyklad tutaj: https://adsb.stderr.pl/.
- Antena. Sygnaly ADS-B nadawane sa na czestotliwosci 1090MHz i spokojnie sa w stanie przewedrowac 250km z samolotu do odbiornika znajdujacego sie na ziemi. Oczywiscie idealnie byloby ustawic duza antene na szczycie samotnej góry, jednak nawet kilkucentymetrowa antena postawiona na parapecie (i to wewnatrz mieszkania) zupelnie niezle sie sprawdza. Trzeba tylko poszukac dobrego miejsca. Co ciekawe, w moim przypadku nawet przesuniecie anteny rzedu 10cm dawalo ogromne róznice w efektywnym zasiegu. Mozna na pewno to jakos madrze opomiarowac, jednak uznalem, ze bede prowadzil dobowe statystyki dla róznych miejsc i cos z tego w koncu wyjdzie. W efekcie znalazlem to jedno jedyne sluszne miejsce i z Warszawy odbieram bez wiekszego problemu dane z kilku-kilkunastu samolotów nad pólnocna Polska a dodatkowo znad kawalka Litwy i Bialorusi. Oczywiscie wieksza antena brzmi kuszaco, ale jestem swiadomy, ze wiele nie wniesie dopóki nie stanie w lepszym miejscu, a na to chwilowo szans nie ma.
- Odbiornik sygnalów ADS-B. Brzmi powaznie. Jednak wspólczesna elektronika zmierza w bardzo ciekawa strone. Zamiast zrobic dziesiec róznych urzadzen (czy chipów) z waska funkcjonalnoscia, taniej jest zrobic jeden, potrafiacy wszystko i zastosowac go do dziesieciu róznych celów. Tak wiec, jezeli uda znalezc sie podlaczalny do komputera odbiornik potrafiacy odbierac 1090MHz, to juz jestesmy w polowie drogi. Druga polowa to jego zdolnosc do "zrozumienia" sygnalów. Oczywiscie sa specjalizowane odbiorniki ADS-B. Czasem nawet nie sa bardzo drogie. Najciekawsze jest jednak to, ze i czestotliwosc i charakter sygnalu nie odbiegaja bardzo mocno od tego, co potrzebne jest do telewizji DVB-T i w efekcie, sygnaly z samolotów moga byc odbierane przez tunery telewizyjne. Oczywiscie nie wszystkie, ale majac w srodku najpopularniejszy obecnie chip Realtek RTL2832U polaczony z tunerem R820T lub podobnym – mozemy próbowac zrozumiec interesujace nas transmisje. Nie kazdy tuner to potrafi, ale wiedzac czego szukamy, mozemy naprawde latwo i niedrogo (ponizej 100PLN razem z antena) kupic urzadzenie, które bedzie mialo potrzebna funkcjonalnosc.
- Sterownik. Oczywiscie dolaczone do tunera telewizyjnego oprogramowanie ma nas uszczesliwic ostatnim odcinkiem ulubionego serialu a nie danymi z samolotów, wiec jego funkcjonalnosc rzadko nam sie przyda. Zeby rozmawiac z urzadzeniem, najprosciej jest uzyc stworzonego przez Microsoft drivera WinUSB. Driver ten ma mocno ograniczona funkcjonalnosc, jednak potrafi to, co najwazniejsze: siegnac do samego dna sygnalów USB przesylanych miedzy komputerem a urzadzeniem. Wszystko bardzo dokladnie udokumentowane jest na MSDN, na przyklad tutaj i tutaj. Oczywiscie musimy "zmusic" nasz system do uzycia poprawnego drivera (czyli przekonac Windows, ze podpielismy po prostu bezmyslne urzadzenie USB a nie zaden tuner) ale to nie jest trudne do wykonania, zwlaszcza jezeli wspomozemy sie programem Zadig.
- Oprogramowanie interpretujace sygnaly. Od tunera dostajemy cyfrowa transmisje, która dzieki WinUSB dociera do komputera w postaci strumienia bitów i teraz musimy z tych bitów poskladac informacje o samolotach. Zrobi to dla nas aplikacja RTL1090, która poza wyswietleniem danych w czytelnej postaci, potrafi "wystawic" je przy pomocy TCP/IP (zwykle na porcie 30003), skad moga zostac odebrane przez specjalizowane oprogramowanie zajmujace sie sledzeniem ruchu lotniczego.
- Oprogramowanie uzywajace podsluchanych danych. To, jakie oprogramowanie bedzie potrzebne zalezy od osobistych potrzeb uzytkownika. Do malowania samolotów na mapie nada sie PlanePlotter (jedyne platne oprogramowanie ze wszystkich tutaj opisanych). Ciekawsze jednak jest podzielenie sie danymi z serwisami agregujacymi dane od wielu uzytkowników i przedstawiajace je w jednolitej formie. Wskazac tu mozna na przyklad FlightRadar24, RadarBox24 czy PlaneFinder. To dzieki nim, mamy ogólnoswiatowe mapy dostepne dla kazdego w Internecie. Oczywiscie, programy te moga dzialac równoczesnie i nie ma problemu z wysylaniem informacji z jednego odbiornika do wielu serwisów.
I dziala. Chodzi sobie to wszystko od wielu miesiecy bardzo ladnie, a wspólpracujac chocby z aplikacja na telefon, pozwala na wycelowanie w niebo kamerki i dzieki zastosowaniu idei Augmented Reality zobaczenie na przyklad skad, dokad i z jaka predkoscia leci maszyna, która wlasnie widzimy na niebie.
Gdziestam w przyszlosci moze bedzie wieksza antena, mysle tez o zbieraniu danych do jakiejs bazy, która pozwoli mi przegladac i analizowac historie tych tysiecy strumieni informacji, które do mnie z nieba docieraja. Pewnie chwile pózniej, baza ta otrzyma jakis interfejs webowy. Ale na razie to tylko metne plany.
Jezeli komus ten opis sie przyda do uruchomienia wlasnego odbiornika ADS-B to super. Tak naprawde jednak, najbardziej fascynujace jest to, jak prosto wspólczesna technologia pozwala polaczyc istniejaca dookola nas rzeczywistosc ze swiatem IT. Pasjonatów (zeby nie powiedziec technologicznych zboczenców) nie brakuje i w efekcie kazdy moze wejsc na prosta strone i zobaczyc jak wyglada ruch w powietrzu, ruch statków na morzach czy ostatnie wyladowania atmosferyczne. A wszystko bardzo tanio, z wykorzystaniem "cywilnego" sprzetu, prostych i bezplatnych aplikacji oraz systemów, których kazdy z nas i tak w domu uzywa.
Autor: Grzegorz Tworek [MVP]
PS Slysze czasem pytanie czy nie boje sie wizyty smutnych panów. Nie boje sie. Sluchanie transmisji radiowych jest w Polsce w 100% legalne niezaleznie od tego, czego dotycza. W koncu to sam samolot dzieli sie z calym swiatem ta informacja. Ja ja tylko przekladam z fal radiowych na pakiety TCP/IP.
Comments
- Anonymous
January 01, 2003
Tak, oczywiście, ale tylko od samolotów, które zechcą te dane nadawać. Tak swoją drogą z szybowca powinien być genialny zasięg. Dla szybowca na 5000m a samolotu z ADS-B na 13000m, powinny się widzieć na dobre 650km. :) - Anonymous
January 01, 2003
O ile dobrze rozumiem pytanie, to odpowiedź brzmi "nie". ADS-B służy do przekazywania danych z pokładowego transpondera do naziemnego radaru SSR. Dane te to zazwyczaj rejestracja, kod transpondera, kierunek lotu, prędkość, wysokość i pozycja. ADS-B czasem zawiera dane środowiskowe z samolotu (temperaturę zewnętrzną na przykład) ale na tyle rzadko jest to publikowane, że na pewno nie może służyć jako rzetelne źródło informacji pogodowej.
Pogodę podaje się w komunikatach METAR, ale to już zupełnie inne mechanizmy. - Anonymous
March 28, 2014
Dzien dobry, chciałbym zapytac czy ads-b dziala w trybie pobierania danych pogodowych i traffic np majac go w szybowcu czy samolocie. - Anonymous
October 12, 2014
Dzien dobry
Dziekuje za odpowiedz z marca. Chcialby mzapytac czy jezeli kupie odbiornik ads-b do samolotu bede otrzymywal rowniez dane zwrotne o ruchu wokolo ? - Anonymous
December 20, 2014
Dzien dobry
Robie kurs PPLA i zastanawiam sie nad zakupem https://buy.garmin.com/en-US/US/in-the-air/avionics-safety/weather-solutions/gdl-39-gdl-39r-gdl-39-3d/prod93601.html to odbiornik/nadajnik adsb jak mniemam, pisza, że od tego roku współpracuje z aplikacja na ipada "garmin pilot"http://garmin.blogs.com/my_weblog/2014/02/garmin-pilot-adds-synthetic-vision-capability-.html#.VJYD3l4BA . Czyli w polsce latajac samolotem zaopatrzywszy sie w ten sprzet w teori bede widzial traffic samolotow zaopatrzonych w transponder wysylajacy swoje dane do SSR naziemnego. Stad moje pytanie, czy polska lotnicza infrastruktora radiolokacji(certyfikowana przez ESA,ULC czy PANSA) naziemnej jest wyposazona w SSR oraz 2gie pytanie czy to SSR wysyla zwrotna informacje do mojego ads-b o innych uczestnikach ruchu lotniczego. Spotkalem sie z sugestiami, że polska nie ma jeszcze infrastruktory ktora odbiera i wysyla samolotom dane zwrotne ADS-B?? Dzieki i czekam na odpowiedz.