設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

我,爆肝 17 天用 600 行代碼拍到 400 公里之外的國(guó)際空間站

量子位 2022/4/10 12:29:01 責(zé)編:汪淼

如何在 400 公里開外,拍攝這樣一張空間站照片?

作為太空中最大人造物體,國(guó)際空間站一直是無數(shù)天文愛好者心中夢(mèng)寐以求的拍攝對(duì)象。

而大多數(shù)人采用的方法,是根據(jù)自己所在的經(jīng)緯度,算好空間站過境的時(shí)間(幾秒到幾分鐘不等),然后配合手機(jī)或微單進(jìn)行拍攝,然后啪 —— 得到這樣一張小光點(diǎn):

稍微進(jìn)階一點(diǎn)的,則會(huì)采用“凌日凌月”拍攝法,即在空間站飛過太陽或者月亮之前,以這兩個(gè)天體為背景源,確定一個(gè)范圍更小的區(qū)域。

然后等在中心線上,把持著幾公斤到幾十公斤重的大口徑、長(zhǎng)焦距望遠(yuǎn)鏡進(jìn)行長(zhǎng)時(shí)間的穩(wěn)定跟蹤,直到空間站過月或過日的 1 秒之內(nèi),按下快門拍攝。

這種拍攝效果會(huì)更加清晰,但致命的問題仍然存在:

空間站平均每 90 分鐘就能繞地球一圈。用知名的星空觀測(cè)模擬工具 Stellarium 對(duì)比一下,相比空間站,金星和火星簡(jiǎn)直如同“靜物”(實(shí)時(shí)模擬,沒有加速):

簡(jiǎn)言之,就是空間站跑得太快了。

因此,不僅 1 秒內(nèi)拍攝的幀數(shù)有限(無法用多幀疊加克服大氣抖動(dòng))、只能拍到輪廓剪影,甚至很可能因?yàn)橛?jì)算錯(cuò)誤而錯(cuò)過拍攝的機(jī)會(huì)。

要是還想拍出更高精度的照片,不僅得有非比尋常的耐心,還要有深厚老練的手動(dòng)操控技術(shù)。

例如一旦遇到大風(fēng),拍出來的效果就容易“糊成一團(tuán)”:

圖源王卓驍,已授權(quán)

▲ 圖源王卓驍,已授權(quán)

于是這時(shí),有人就靈光一動(dòng):

沒有麒麟臂,用代碼讓望遠(yuǎn)鏡自己動(dòng)起來不就好了?

說干就干,這位“業(yè)余程序員”當(dāng)即爆肝 17 天,搞出了一套自動(dòng)跟蹤系統(tǒng)。

在這套自動(dòng)跟蹤系統(tǒng)的加持下,望遠(yuǎn)鏡不再是只能在特定幾秒鐘拍攝幾張靜態(tài)圖像,而是持續(xù)不斷地跟了空間站 2 分鐘。

最終,多張圖像疊加和后期處理,便合成了一張高精度的立體 GIF 圖像:

(也就是我們開頭的那張圖)

就是這么一張圖像,讓網(wǎng)友發(fā)出了“直接開啟人造天體跟蹤攝影的時(shí)代”的感嘆。

于是,我們找到這位開發(fā)者本人,北大天文校友、天體物理博士劉博洋聊了聊。

拍攝高精度空間站,到底難在哪?

首先,需要簡(jiǎn)單了解一下拍攝空間站的“時(shí)機(jī)”。

雖然空間站移動(dòng)速度極快,平均每 90 分鐘就能繞地球一圈,而且高度平均距離地球也就 400 公里左右,屬于肉眼可見的范圍,但我們并不能隨時(shí)觀測(cè)到它。

主要有兩個(gè)限制條件:視野范圍和觀測(cè)時(shí)間。

視野范圍指空間站飛到我們視野可見的范圍內(nèi),也就是恰好“過境”這段時(shí)間;

觀測(cè)時(shí)間指我們能觀測(cè)到空間站的時(shí)機(jī)??臻g站自身不會(huì)發(fā)光,只有在每天日落后兩小時(shí)、或日出前兩小時(shí)以內(nèi),空間站反射的太陽光最亮,才最適合拍攝。

只有這兩個(gè)條件同時(shí)滿足,我們才有機(jī)會(huì)在地面觀測(cè)并拍攝到空間站,但效果也還受天氣等因素影響(如圖中就是遇到了多云天氣):

圖源朱一靜 & 徐成城,已授權(quán)

▲ 圖源朱一靜 & 徐成城,已授權(quán)

然而,目前已有的幾種常見天體拍攝方法,對(duì)于拍攝更高精度的空間站照片,其實(shí)都不適合。

第一種方法,是直接通過“手搖”望遠(yuǎn)鏡拍攝,也就是推著望遠(yuǎn)鏡跟蹤天體。

這種方法有一個(gè)缺陷,沒辦法拍攝非常高清的空間站。由于拍攝時(shí)必須靠人工跟蹤,因此不能用長(zhǎng)焦鏡頭直接找,否則就像是用顯微鏡去捕捉一只高速移動(dòng)的螞蟻,空間站一不留神就消失在鏡頭外了。

第二種方法,是像“守株待兔”一樣,架好各種高清晰度的鏡頭和設(shè)備,在原地等待空間站“路過”。

這種方法不需要移動(dòng)鏡頭,而是反過來等空間站自己“經(jīng)過”。但它又面臨一些新的問題,例如空間站“路過”的時(shí)間很短,有時(shí)候往往只有幾秒鐘的時(shí)間,很可能抓拍不到;即使抓拍到的鏡頭,由于無法調(diào)整角度等原因,效果也無法保證。

所以,為什么不用望遠(yuǎn)鏡自帶的追蹤功能拍攝?

這個(gè)功能通常只適用于用于追蹤日月、行星、恒星等天體由于地球自轉(zhuǎn)而產(chǎn)生的東升西落,畢竟它們移動(dòng)的速度不快,基本與地球自轉(zhuǎn)同步。但對(duì)于像空間站這種高速移動(dòng)的天體,望遠(yuǎn)鏡自己就追不上了。

因此,最終還是得靠程序輔助,來實(shí)現(xiàn)高精度空間站的跟蹤拍攝。

第三種方法,是利用軌道根數(shù)(即軌道參數(shù))跟蹤,也就是利用在各種天文網(wǎng)站上(如 Heavens-Above 等)找到的天體信息,來調(diào)整望遠(yuǎn)鏡的跟蹤路徑,并進(jìn)行手動(dòng)修正:

目前,大部分天文愛好者都是通過這種方法實(shí)現(xiàn)跟蹤 + 微調(diào),網(wǎng)上也已經(jīng)有一些相對(duì)成熟的程序,例如這是用電動(dòng)經(jīng)緯儀根據(jù)軌道參數(shù)跟蹤空間站的效果:

圖源王卓驍,已授權(quán)

▲ 圖源王卓驍,已授權(quán)

BUT,你永遠(yuǎn)不知道這些天文網(wǎng)站更新到底及不及時(shí)。有時(shí)候空間站臨時(shí)調(diào)整了軌道、但網(wǎng)站沒有更新的話,你的程序也就失效了。

利用光學(xué)識(shí)別,誤差控制在 4 像素以內(nèi)

上述的所有問題,作為老天文迷的劉博洋不可能不懂。

他一開始的想法,是通過現(xiàn)有的一些軟件尋找鏡頭中的“光點(diǎn)”,基于光學(xué)識(shí)別方法對(duì)目標(biāo)實(shí)施識(shí)別和跟蹤。

然而他在查找合適的程序時(shí)卻發(fā)現(xiàn),這些程序不是沒維護(hù)(連 Windows 版都太古早沒法用)、就是更新不及時(shí)且系統(tǒng)復(fù)雜,或者干脆就是閉源收費(fèi)。

所以,劉博洋最終決定自己上手,寫一個(gè)光學(xué)識(shí)別的自動(dòng)跟蹤腳本,手動(dòng)找到空間站后基于 PID 控制跟蹤。

他的計(jì)劃一共分為兩步:

第一步,編寫程序?qū)崿F(xiàn)望遠(yuǎn)鏡自動(dòng)識(shí)別并跟蹤空間站,耗時(shí) 5 天完成。

值得一提的是,光學(xué)識(shí)別并不是劉博洋的“第一手選擇”。

他確實(shí)想過用參數(shù) + 手動(dòng)微調(diào)的方式進(jìn)行跟蹤,包括用搖桿無級(jí)控制赤道儀轉(zhuǎn)速,以及用軌道根數(shù)進(jìn)行粗跟、結(jié)合游戲手柄無級(jí)微調(diào)等,但試拍效果并不理想(微調(diào)時(shí)手不夠穩(wěn))。

于是,他基于 PID 控制原理,編寫了一種光學(xué)跟蹤的方法。這是一種非常經(jīng)典的控制算法,PID 分別指比例、積分和微分單元,像讓 2 輪機(jī)器小車保持平衡,用的就是這種算法。

劉博洋之前并沒有學(xué)過這一知識(shí),但是為了建立一個(gè)穩(wěn)定的自動(dòng)控制系統(tǒng),他自然地引入了比例單元(P)和積分單元(I),以使系統(tǒng)的誤差減少。

劉博洋的望遠(yuǎn)鏡分為視野較大的尋星鏡和視野較小的主鏡兩部分。這套算法的基本目標(biāo),就是根據(jù)當(dāng)前空間站在尋星鏡中的位置,計(jì)算出它偏離主鏡視場(chǎng)的幅度,從而調(diào)整望遠(yuǎn)鏡跟蹤速度,以改正存在的偏離,使空間站落到主鏡視場(chǎng)中。

利用這個(gè)程序,就能讓尋星鏡快速跟隨移動(dòng)的空間站“光源”,使得空間站總是保持在視野中央。劉博洋試著用激光筆在自己家墻上造了一個(gè)勻速移動(dòng)的亮點(diǎn),模擬空間站的運(yùn)動(dòng),效果還不錯(cuò):

程序本身,基于一個(gè)叫做 ASCOM 的平臺(tái)開發(fā)。

它能將天文設(shè)備的所有配置,比如控制望遠(yuǎn)鏡的對(duì)焦器、濾光片的轉(zhuǎn)動(dòng)、相機(jī)的開合都集成在一個(gè)單獨(dú)的軟件上,是在天文領(lǐng)域運(yùn)用非常廣泛的軟件接口標(biāo)準(zhǔn):

硬件準(zhǔn)備上,除了筆記本電腦之外,還包括:

11 英寸口徑,焦比 f / 10,折反射式的星特朗 EdgeHD 望遠(yuǎn)鏡,配套有 CGEM 赤道儀

佳能 EOS R5 相機(jī)

QHY5III462c 相機(jī),作為導(dǎo)星相機(jī)

圖馬思特 T16000M 游戲手柄

其中,望遠(yuǎn)鏡大約 4 萬元,佳能 EOS R5 相機(jī)租借了兩周花費(fèi) 2200 元(市價(jià) 2.5 萬元),462c 相機(jī)不到 1000 元,手柄則是和朋友以物換物拿到的(市價(jià) 500 多元)。

整個(gè)成本算下來不到 4.5 萬元,據(jù)劉博洋表示,對(duì)精度要求沒那么高的話,整套不到 1 萬元就能搞定。

接下來進(jìn)入第二步,現(xiàn)場(chǎng)實(shí)拍并成功用設(shè)備拍攝到高精度的空間站照片。

但沒想到的是,實(shí)際拍攝反而要比想象中更難,期間劉博洋“一直在反復(fù)試錯(cuò)修 bug”。

他一開始的目標(biāo),是捕捉中國(guó)空間站,然而接連兩次出 bug,導(dǎo)致錯(cuò)過了兩次觀測(cè)的最佳時(shí)機(jī)。

3 月 23 日,由于未能及時(shí)對(duì)焦,自動(dòng)光學(xué)跟蹤沒能起到作用;3 月 27 日,由于尋星鏡視場(chǎng)只有 3° 左右,過小的視野導(dǎo)致初步捕獲失敗,再次沒能進(jìn)入自動(dòng)跟蹤流程。

此時(shí)距離中國(guó)空間站下次可見過境還有很久。因此,在修復(fù)操作問題后(將尋星鏡視場(chǎng)增大到 15°),劉博洋決定,先用即將迎來幾次絕佳過境的國(guó)際空間站“練練手”。

于是,在將自動(dòng)跟蹤程序中的“抓捕”改為手動(dòng)觸發(fā)后,劉博洋成功在 4 月 2 日抓拍到了國(guó)際空間站。

雖然還是有不完美的地方,例如軟件崩潰導(dǎo)致尋星鏡和主鏡的位置校準(zhǔn)數(shù)據(jù)丟失,針對(duì)這個(gè)問題劉博洋又增加了校準(zhǔn)數(shù)據(jù)記錄功能。

這個(gè)時(shí)候,代碼已經(jīng)從最初的 400 多行變成了 600 行。

終于,4 月 3 日晚上,在緊急修復(fù) bug 后,劉博洋成功抓拍到了國(guó)際空間站。

具體來說,望遠(yuǎn)鏡對(duì)空間站的抓捕分為 x 和 y 兩個(gè)軸,在按下 catch 后,y 軸很快就穩(wěn)穩(wěn)跟上了目標(biāo),x 軸則略慢了 10 秒。

在 30 秒左右時(shí),兩個(gè)軸都保持在了一個(gè)穩(wěn)定的誤差范圍內(nèi)(四個(gè)像素左右),這種高精度跟蹤持續(xù)了一共 120 秒,完整記錄了國(guó)際空間站從接近到遠(yuǎn)離的全流程:

最初得到的原始畫面大約是 100 多像素,最終,在經(jīng)過多幀疊加的超采樣處理后,圖片的像素提高到了 200 多像素。

最后經(jīng)過處理,成功輸出了一系列 300×300 像素的圖像(合成 GIF 圖):

而這,是劉博洋開始做這一項(xiàng)目的第 17 天。

之后還要發(fā)射小火箭

在談到整個(gè)項(xiàng)目中最難的一個(gè)階段時(shí),劉博洋印象最深刻的,就是如何讓望遠(yuǎn)鏡被 Python 代碼調(diào)用:

對(duì)于我這樣一個(gè)編程很差的人,開發(fā)最初完全就是一個(gè)黑箱。

劉博洋本科、博士分別就讀于北京大學(xué)、西澳大學(xué),都是天體物理學(xué)專業(yè)。

這個(gè)專業(yè)要求掌握基本的編程技能,但是劉博洋大學(xué)時(shí)的相關(guān)課程,比如計(jì)算機(jī)概論、數(shù)據(jù)結(jié)構(gòu)都是低分飄過或者緩考的。

到了博士階段,多了大量需要用腳本完成的數(shù)據(jù)處理工作,他才開始深入地學(xué)習(xí)編程語言。

這次之所以選擇自編代碼操控望遠(yuǎn)鏡,除了沒有找到現(xiàn)成可用的軟件之外,也是想要繼續(xù)鍛煉自己的編程能力。

那么這套代碼會(huì)開源嗎?在我們這樣問時(shí),劉博洋表示:

至少要在自己能調(diào)試的范圍,將代碼優(yōu)化到一個(gè)自己滿意的程度,才會(huì)考慮下一步。

他目前最近期的一個(gè)目標(biāo),是兩周后的中國(guó)空間站的再一次過境。

在成功拿國(guó)際空間站”練了手“后,劉博洋充滿了信心,還在考慮是否要在接下來的捕捉中適當(dāng)縮小視場(chǎng),進(jìn)而提高拍攝的精度。

中國(guó)空間站的拍攝如果順利,將在 4 月 21 號(hào)之前結(jié)束,之后,他就要立刻趕往青海,開展新項(xiàng)目:發(fā)射一枚裝著自己相機(jī)的小火箭。

再遠(yuǎn)一些,劉博洋還提到了今年下半年可能會(huì)有的神舟系列的火箭、以及實(shí)驗(yàn)艙的發(fā)射,他到時(shí)候會(huì)拿著自己的這套跟蹤空間站的程序,再去跟拍大火箭。

如此硬核的“備戰(zhàn)”計(jì)劃,妥妥一位狂熱的航天愛好者無疑了。

劉博洋最后這樣說:

天文的興趣從小就有,也因此本碩博都讀的天體物理學(xué)。

不過隨著為國(guó)內(nèi)的航天任務(wù)越來越多,我能接觸到相關(guān)活動(dòng)的機(jī)會(huì)也就越來越多,于是航天方面的興趣也就逐漸發(fā)展了起來,到現(xiàn)在已經(jīng)發(fā)展成主要的業(yè)余愛好了。

參考鏈接:

[1]https://weibo.com/1144755982/LmV8Cp72V

[2]https://zhuanlan.zhihu.com/p/493080686

[3]https://www.heavens-above.com/orbit.aspx?satid=25544

[4]https://mp.weixin.qq.com/s/gNueq8lDQz_86Ifuw8n6Pg#rd

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:空間站,望遠(yuǎn)鏡

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知