我做了一個系統,可以給所有飛過我家上空的飛機拍照
你以為的飛機迷們:
實際上的飛機迷們:
你永遠也不知道他們腦袋瓜里都在搗鼓些什么。
比如,你能想象,一個飛機迷,為了拍下每架從他家上空飛過的飛機,親手做了一個小系統skybot,追蹤拍攝到離地3萬多英尺的航空飛機。
根據這位LukeBerndt推特用戶分享,成片大概長這樣:
別看這照片像素啥的都挺一般的,就憑這張照片,系統就能同步更新飛機的基本信息了,比如型號、重量,以及什么時候經過房子上空的等。
官網鏈接:
http://skybot.cam/
推特上也有不少網友對此表示絕絕子,有網友調侃道,“這波是無意間給聯邦快遞打了個廣告啊”。
甚至有人表示,這也太火爆了,“服務器都被擠爆了”。
如何做一個skybot系統
不知道有多少小伙伴已經開始動心躍躍欲試了。
別急,我們先來看看做一個skybot需要哪些東西:一個樹莓派,一個RTL-SDR和Axis PTZ安全攝像頭。
Axis的攝像機提供了一個很棒的API,它可以與他們家的PTZ攝像機一起使用,在這里使用的是m5525,因為攝像機可以360度旋轉,完美覆蓋天空上方的視野。
同時這里使用的是noelec NESDR SMArt v4 SDR,這款SDR結構緊湊,不會阻塞樹莓派上的其他端口。
那么,要怎么接收飛機信號呢?
其實為了更好地實現跟蹤,大多數飛機會發射一種ADS-B信號。該信號為1090MHz,任何低成本SDR都可以輕松接收。同時從ADS-B傳輸中,我們還可以得到飛機的位置和高度,但如果你想知道飛機和你的相對位置,就還需要一點數學知識。
用相機對準飛機拍照后,收集到數據,就可以使用標記的平面數據構建平面檢測器和分類器。
在了解完系統的工作原理后,我們再來看看這個項目的軟件架構。不同組件都被做成了Docker容器,這種模塊化使得添加新的數據源或攝像機也變得更加容易。
mikenye/pi+aware:FlightAware的piaware程序的dockerized版本。PiAware實際上只是一個dump1090的包裝。Dump1090是一個小程序,可以使用RTL-SDR接收ADS-B傳輸。該程序利用這些傳輸來跟蹤附近飛機的位置,并將它們顯示在網頁上,除此之外程序還將在TCP端口上接收到的所有消息輸出給其他程序使用。
adbs+MQTT:一個小型Python程序,讀取Dump1090通過TCP端口收集的信息,并將接收到的所有消息發布到MQTT總線上。
Tracker:接收飛機的位置信息,確定每架飛機離攝像頭有多遠,然后找到最近的飛機。
Axis+PTZ:接收要通過MQTT跟蹤的平面上的更新,然后將PTZ攝像機對準該平面,同時拍照。
目前該系統已經在GitHub上開源了,鏈接如下:
https://github.com/IQTLabs/SkyScan
不過Luke表示,目前skybot還只能用于飛機的追蹤,要在鳥類身上實現可能還得費一番功夫。
你可能不知道的ADS-B
說到ADS-B,可能它的復雜程度要遠超你的想象。
我們知道,ADS-B全稱廣播式自動相關監視系統,其實就是飛機發出的廣播信號,用明碼來對外發送自己的位置、高度、速度、航向等信息,是公開信息。連續接收到一架飛機發出的ADS-B信息后,可以通過其坐標點來描繪出飛機的航行軌跡,并實時獲取其飛行狀態。這對于現今的民航飛行來說已經是非常普遍的了。
不過由于ADS-B信息時效性比較差,信息不足,往往還需要flightradar24或者其他可以顯示飛機ADS-B信息的軟件來掌握飛機的動態,以做好準備工作。
這架飛機在著名ADS-B網站FR24上顯示的根據ADS-B信息實時繪制的航線軌跡,實線部分是地面接收到了這飛機的ADS-B信號并且傳輸回服務器后自動繪制而成的實際航線,虛線部分(紅圈)是該區域沒有ADS-B接收器信號丟失,系統直接在最后消失點與最新出現點之間拉了條直線以進行示意。從圖中判斷該飛機目前還在無ADS-B接收器區域飛行,所展示的位置只是預估位置,在地面重新接收到ADS-B信號后會進行修正。
但除了民用飛機外,軍用航空器也會安裝有ADS-B系統,主要是為了空中防碰撞。以某些距離城市及機場非常近的軍用機場為例,他們使用的空域會與民用航空器的空域有不少的交集,這就需要開啟ADS-B設備,便于地面指揮。
不過也不必擔心,在正常情況下,執行任務的軍用航空器都會關閉ADS-B設備,防止暴露行蹤。同時在國內,雖然軍用航空器會開啟ADS-B,但都會進行一定的處理以消除敏感信息,只顯示必要的、滿足需求的信息出來,比如高度航向速度等。
因此,在大家對飛過自家頭頂的飛機感興趣的同時,也還需要注意安全問題。嗯,不說了,文摘菌準備動手了,也歡迎大家在評論區分享自己的動手心得呀~
本文來自微信公眾號 “大數據文摘”(ID:BigDataDigest),作者:Caleb,36氪經授權發布。