彭亞杰,季凱帆,梁 波,鄧 輝,王 鋒,劉立勇,姚永強(qiáng)
(1. 昆明理工大學(xué)云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650500;2. 中國(guó)科學(xué)院國(guó)家天文臺(tái),北京 100012)
根據(jù)現(xiàn)代地面光學(xué)/紅外天文觀測(cè)的要求,下一代天文站點(diǎn)一定是建立在晴夜多、大氣寧?kù)o度好、氣候干燥、城市干擾少的地點(diǎn)。這樣基本上就是在海拔高、人煙稀少的荒涼高山或者高原地區(qū)。在我國(guó)境內(nèi),可能的候選點(diǎn)多數(shù)是在西藏、新疆或者云南的偏遠(yuǎn)地區(qū)。
天文臺(tái)址的確定需要一個(gè)長(zhǎng)期監(jiān)測(cè)的過(guò)程。評(píng)價(jià)中國(guó)天文臺(tái)址條件需要通過(guò)大量觀測(cè)資料的積累分析,并與國(guó)際優(yōu)秀臺(tái)站進(jìn)行比較,從而判定新的臺(tái)址是否適合下一代大型望遠(yuǎn)鏡的建設(shè)。在天文選址中面臨的最大問(wèn)題是野外候選站點(diǎn)條件太過(guò)偏僻和艱苦,如西藏阿里地區(qū)獅泉河南站候選點(diǎn),雖然有最基本交通和通訊條件,但沒(méi)有其他基礎(chǔ)支撐設(shè)施,5 100 m的海拔以及惡劣的環(huán)境條件不適合選址工作人員長(zhǎng)期工作和居住。但由于目前主要選址設(shè)備仍未脫離現(xiàn)場(chǎng)人工觀測(cè)的方式,反而要求人員晝夜觀測(cè)、長(zhǎng)期留守、連續(xù)監(jiān)測(cè)各種天文條件。這種矛盾極大地影響了觀測(cè)數(shù)據(jù)的連續(xù)性和持久性,從而迫切需要對(duì)選址設(shè)備進(jìn)行遠(yuǎn)程控制和狀態(tài)監(jiān)測(cè)。
選址儀器中最重要的是大氣湍流測(cè)量?jī)x器,例如DIMM、MASS、SCIDAR等[1]。這些設(shè)備都是基于幾十厘米的小型商用望遠(yuǎn)鏡作觀測(cè)平臺(tái),在國(guó)際上,相關(guān)的選址儀器已經(jīng)實(shí)現(xiàn)了自動(dòng)化觀測(cè)。比較著名的有CTIO天文臺(tái)研制的設(shè)備,它從2000年開(kāi)始投入使用,基本配置是Meade LX200 10″望遠(yuǎn)鏡和ST5C SBIG CCD[2]。La Palma天文臺(tái)2003年研制了一臺(tái)基于Meade 12″望遠(yuǎn)鏡的類似RoboDIMM[3]。2004年西班牙Calar Alto天文臺(tái)研制了另外一種DIMM,使用Celestron的望遠(yuǎn)鏡[4]作為基本平臺(tái)。我國(guó)西部選址也使用Meade 系列地平式望遠(yuǎn)鏡和Astro-Physics 赤道式望遠(yuǎn)鏡等,但選址小望遠(yuǎn)鏡的遠(yuǎn)程控制卻一直沒(méi)有進(jìn)入實(shí)用化階段。
國(guó)內(nèi)選址望遠(yuǎn)鏡遠(yuǎn)程控制所面臨的困難主要體現(xiàn)在三個(gè)方面:一是在野外選址的初期,必須進(jìn)行大量的人為的實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)的交互式控制、監(jiān)測(cè)和修正及數(shù)據(jù)采集,難以實(shí)現(xiàn)完全通過(guò)軟件腳本控制望遠(yuǎn)鏡并切換各種觀測(cè)模式的自主觀測(cè)方式;二是選址站點(diǎn)都在野外,遠(yuǎn)離現(xiàn)有天文臺(tái)或者其他基地。雖然站點(diǎn)具備一定的通訊條件,比如有線或者無(wú)線電話,但都不具備寬帶網(wǎng)絡(luò)條件,同時(shí)網(wǎng)絡(luò)狀態(tài)也非常不穩(wěn)定,因此通常的基于寬帶網(wǎng)絡(luò)的遠(yuǎn)程桌面或者VNC等直接控制遠(yuǎn)端計(jì)算機(jī)屏幕操作的方式并不適用。網(wǎng)絡(luò)帶寬的限制成為系統(tǒng)實(shí)現(xiàn)的一個(gè)瓶頸;三是選址望遠(yuǎn)鏡是通過(guò)一個(gè)串口和本地計(jì)算機(jī)相連接,并根據(jù)廠家制定的串口通訊協(xié)議進(jìn)行望遠(yuǎn)鏡的控制。望遠(yuǎn)鏡后端的CCD也是通過(guò)USB或者串口和主機(jī)相連接,但通訊協(xié)議也是自定義的,沒(méi)有通用的標(biāo)準(zhǔn)。這種設(shè)備的多樣性也限制了系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。
本文針對(duì)這些問(wèn)題,從觀測(cè)模式的多樣性、網(wǎng)絡(luò)帶寬有限性和設(shè)備控制通用性出發(fā),使用標(biāo)準(zhǔn)化的ASCOM平臺(tái)實(shí)現(xiàn)了小望遠(yuǎn)鏡的遠(yuǎn)程控制系統(tǒng)原型。通過(guò)在有線電話撥號(hào)窄帶網(wǎng)絡(luò)上進(jìn)行的實(shí)驗(yàn),驗(yàn)證了利用ASCOM技術(shù)實(shí)現(xiàn)遠(yuǎn)程控制系統(tǒng)以及快速部署的技術(shù)路線的可行性,為實(shí)用化的設(shè)計(jì)打下了基礎(chǔ)。
在ASCOM出現(xiàn)以前,天文儀器控制有兩種形式:一種是單一模式構(gòu)架,另一種是可擴(kuò)展構(gòu)架。在單一模式下,所有的設(shè)備控制代碼都集中在一個(gè)軟件包中,也就是一套獨(dú)立的系統(tǒng)。當(dāng)有新的儀器出現(xiàn)時(shí),幾乎要重寫軟件才能控制儀器。當(dāng)設(shè)備控制中出現(xiàn)問(wèn)題時(shí),也需要更新整個(gè)軟件包。在這種構(gòu)架下,儀器設(shè)備和控制軟件之間是一對(duì)一的關(guān)系,這給新儀器的應(yīng)用和新軟件的開(kāi)發(fā)帶來(lái)了很多不便??蓴U(kuò)展的構(gòu)架相比單一模式有了很大的進(jìn)步,它在天文設(shè)備和軟件之間加入了插件層,從而使得控制軟件可以共享設(shè)備的代碼。對(duì)于新的儀器,只需要開(kāi)發(fā)相應(yīng)的設(shè)備控制插件就可以控制儀器。當(dāng)設(shè)備的控制中出現(xiàn)問(wèn)題時(shí),也只需要更新插件,而不需要將所有程序進(jìn)行更新。這種構(gòu)架下,儀器與軟件之間是一對(duì)多的關(guān)系。
1998年初Bob Denny提出了ASCOM的概念并開(kāi)發(fā)了相應(yīng)的軟件平臺(tái)[5]。經(jīng)過(guò)十多年的努力,ASCOM已經(jīng)升級(jí)到了6.0版本。ASCOM在設(shè)備與軟件之間引入了驅(qū)動(dòng)層,一方面任何控制程序都可以通過(guò)ASCOM調(diào)用各種設(shè)備的驅(qū)動(dòng),另一方面對(duì)于新設(shè)備,只要增加相應(yīng)的設(shè)備驅(qū)動(dòng)就可以添加到ASCOM平臺(tái)上供控制程序調(diào)用。ASCOM構(gòu)架下控制軟件與設(shè)備是多對(duì)多的關(guān)系。
ASCOM提供的設(shè)備驅(qū)動(dòng)采用了微軟公司組件對(duì)象模型(Component Object Model, COM)。組件對(duì)象模型工作在Windows操作系統(tǒng)下,它的應(yīng)用程序編程接口(Application Programming Interface, API)由一套標(biāo)準(zhǔn)的符合相關(guān)ASCOM接口規(guī)范定義的屬性和方法組成,有著固定的函數(shù)名稱、訪問(wèn)參數(shù)和參數(shù)數(shù)據(jù)類型。由于ASCOM采用了組件對(duì)象模型,而組件對(duì)象模型支持多種開(kāi)發(fā)語(yǔ)言、腳本語(yǔ)言和腳本工具的調(diào)用,使得ASCOM也可以支持多種語(yǔ)言的開(kāi)發(fā)。從硬件上講,雖然各種設(shè)備利用串行接口連接到計(jì)算機(jī)上,但控制軟件并不直接和串口打交道,而是通過(guò)ASCOM調(diào)用設(shè)備驅(qū)動(dòng)來(lái)操作設(shè)備。一方面,設(shè)備廠商只要提供符合ASCOM標(biāo)準(zhǔn)的驅(qū)動(dòng)程序,就可以將自己的設(shè)備掛接到ASCOM平臺(tái);另一方面控制軟件也只需要針對(duì)ASCOM進(jìn)行操作,無(wú)需考慮不同廠家不同類型設(shè)備的特殊性。這樣無(wú)論更新控制軟件還是設(shè)備驅(qū)動(dòng),都是非常容易的事情。因此ASCOM具有開(kāi)發(fā)語(yǔ)言獨(dú)立性和設(shè)備廠商獨(dú)立性兩大特色。
隨著ASCOM的發(fā)展,目前ASCOM支持包括望遠(yuǎn)鏡(赤道儀)、CCD、圓頂、調(diào)焦、濾光片等主要天文設(shè)備,有非常多的天文設(shè)備廠商支持這一平臺(tái),也有越來(lái)越多的小型望遠(yuǎn)鏡觀測(cè)系統(tǒng)使用ASCOM。
實(shí)現(xiàn)了一個(gè)基于ASCOM的選址望遠(yuǎn)鏡遠(yuǎn)程控制系統(tǒng)原型,所用的開(kāi)發(fā)環(huán)境為Windows.Net Framework 4.0,開(kāi)發(fā)語(yǔ)言為C#,開(kāi)發(fā)平臺(tái)是Microsoft Visual Studio 2010,開(kāi)發(fā)過(guò)程中測(cè)試所用的設(shè)備為ASCOM設(shè)備模擬器。
考慮到野外選址站點(diǎn)窄帶網(wǎng)絡(luò)的制約,采用了客戶端-服務(wù)端結(jié)構(gòu),同時(shí)基于傳輸控制協(xié)議(Transmission Control Protocol, TCP)的ASCII命令(即ASCII Over TCP)進(jìn)行通訊,使得一條命令對(duì)帶寬的占用達(dá)到最小??蛻舳擞袃煞N形式,通過(guò)telnet的命令行和通過(guò)客戶端界面控制,他們向服務(wù)端發(fā)送的命令是相同的。所有命令都由兩部分組成,第一部分是命令類型,第二部分是命令的若干個(gè)參數(shù),命令類型和各個(gè)參數(shù)之間用“|”分隔,具體的協(xié)議見(jiàn)表1。
表1 自定義的協(xié)議表
服務(wù)端與客戶端的流程圖如圖1和圖2。
圖1 服務(wù)端流程圖
Fig.1 Flowchart of the software at the Service End
服務(wù)端包括4個(gè)主要流程:
(1)選擇設(shè)備:通過(guò)調(diào)用DriverHelper. Chooser對(duì)象選擇可以遠(yuǎn)程控制的設(shè)備,并通過(guò)Choose()方法獲得設(shè)備的ProgID。
(2)啟動(dòng)偵聽(tīng)并建立客戶端連接:觸發(fā)服務(wù)器的偵聽(tīng)事件,開(kāi)啟服務(wù)端的一個(gè)端口作為偵聽(tīng)端口。當(dāng)接收到客戶端發(fā)來(lái)連接請(qǐng)求時(shí),記錄客戶端的IP地址、端口等客戶端信息,并創(chuàng)建一個(gè)新的線程。
(3)響應(yīng)請(qǐng)求:當(dāng)偵聽(tīng)到客戶端發(fā)來(lái)的數(shù)據(jù)后,對(duì)收到的數(shù)據(jù)進(jìn)行分析。按照表1的協(xié)議形式,通過(guò)Split()函數(shù)解析由“|”字符拼接的命令與參數(shù)。
(4)操作設(shè)備:通過(guò)調(diào)用ASCOM的驅(qū)動(dòng)中的標(biāo)準(zhǔn)應(yīng)用程序編程接口,對(duì)設(shè)備進(jìn)行操作。
圖2 客戶端流程圖
Fig.2 Flowchart of the Client End
客戶端也包括4個(gè)流程:
(1)連接服務(wù)器: 開(kāi)啟客戶端后,向服務(wù)端發(fā)起連接。當(dāng)服務(wù)端收到信息后,就可以通過(guò)傳輸控制協(xié)議建立連接。
(2)計(jì)時(shí)器:客戶端界面上設(shè)置一個(gè)0.5 s的計(jì)時(shí)器,每0.5 s向服務(wù)端發(fā)送REFRESH命令,更新設(shè)備狀態(tài)信息,如赤經(jīng)、赤緯等。
(3)接收信息:連接建立后,客戶端采用阻塞方式。當(dāng)接收到服務(wù)端發(fā)送過(guò)來(lái)的數(shù)據(jù)后,觸發(fā)相應(yīng)的事件并響應(yīng)。采用和服務(wù)端相同的方式解析接收的數(shù)據(jù),并根據(jù)命令實(shí)現(xiàn)相應(yīng)的操作,如更新客戶端界面上的設(shè)備狀態(tài)信息等。
(4)發(fā)送命令:在客戶端界面上可以對(duì)望遠(yuǎn)鏡和CCD進(jìn)行多種操作。首先觸發(fā)向服務(wù)端發(fā)送請(qǐng)求的事件,然后按照自定義協(xié)議,根據(jù)操作的不同生成相應(yīng)的命令和參數(shù)并發(fā)送到服務(wù)器端。
整個(gè)系統(tǒng)控制軟件包括服務(wù)端和客戶端兩部分。事實(shí)上,在服務(wù)端并不需要任何界面,但為了顯示過(guò)程和調(diào)試方便,在服務(wù)端依然設(shè)計(jì)了一個(gè)界面,包括顯示實(shí)時(shí)的恒星時(shí)、望遠(yuǎn)鏡赤經(jīng)、赤緯、方位角、地平高度、CCD上次曝光的時(shí)間、曝光時(shí)刻、圖像尺寸等信息。同時(shí)在屏幕上顯示客戶端訪問(wèn)情況以及上次采集的CCD圖像。圖3是截取的一部分服務(wù)端界面。
圖3 望遠(yuǎn)鏡控制系統(tǒng)服務(wù)端屏幕截圖
Fig.3 Screenshot of the Telescope Control System on the Service End
客戶端連接服務(wù)器端后,在實(shí)時(shí)顯示望遠(yuǎn)鏡的各種狀態(tài)的同時(shí),可以對(duì)望遠(yuǎn)鏡進(jìn)行控制,包括輸入赤經(jīng)、赤緯進(jìn)行望遠(yuǎn)鏡的移動(dòng);望遠(yuǎn)鏡跟蹤的開(kāi)啟和關(guān)閉;望遠(yuǎn)鏡的???Park)和解除???Unpark)。對(duì)于圖像采集,可以輸入CCD曝光時(shí)間和圖像在服務(wù)端存放的地址及文件名。同時(shí)這個(gè)界面也支持直接的命令行輸入方式,用于控制望遠(yuǎn)鏡和CCD。
初期的系統(tǒng)開(kāi)發(fā)是在ASCOM提供的模擬器上進(jìn)行的,為檢驗(yàn)其在真實(shí)望遠(yuǎn)鏡的使用情況,2011年10月13日,在國(guó)家天文臺(tái)西部選址組的實(shí)驗(yàn)室中將本系統(tǒng)和真實(shí)的望遠(yuǎn)鏡連接進(jìn)行了整體系統(tǒng)測(cè)試。
圖4 望遠(yuǎn)鏡遠(yuǎn)程控制系統(tǒng)客戶端界面
Fig.4 Screenshot of the Telescope Control System on the Client End
望遠(yuǎn)鏡為西部選址正在使用的Meade LX200 ACF型地平式望遠(yuǎn)鏡,配置Meade的ASCOM驅(qū)動(dòng)軟件。服務(wù)端計(jì)算機(jī)使用一臺(tái)Lenovo Thinkpad X200s筆記本,操作系統(tǒng)為Windows 7。計(jì)算機(jī)一端通過(guò)USB和串口的轉(zhuǎn)換器與望遠(yuǎn)鏡相連,另外一端通過(guò)窄帶的調(diào)制解調(diào)器通過(guò)辦公室的有線電話撥號(hào)進(jìn)入北京市電信并連入因特網(wǎng),IP地址為電信公網(wǎng)臨時(shí)分配的地址。客戶端安裝在實(shí)驗(yàn)室中的另外一臺(tái)筆記本電腦上,通過(guò)無(wú)線路由器進(jìn)入國(guó)家天文臺(tái)局域網(wǎng),然后接入因特網(wǎng)。這樣就搭建了一個(gè)望遠(yuǎn)鏡通過(guò)窄帶撥號(hào)網(wǎng)絡(luò)連入因特網(wǎng),而觀測(cè)者在國(guó)家天文臺(tái)進(jìn)行遠(yuǎn)程控制的模擬環(huán)境。
在實(shí)驗(yàn)過(guò)程中,成功地實(shí)現(xiàn)了望遠(yuǎn)鏡改變指向、跟蹤、停靠等功能。由于設(shè)備和時(shí)間限制,未進(jìn)行和CCD的連接實(shí)驗(yàn)。但總體測(cè)試表明,利用ASCOM技術(shù),完全可以實(shí)現(xiàn)一套選址望遠(yuǎn)鏡用的遠(yuǎn)程控制系統(tǒng),并實(shí)現(xiàn)快速部署。同時(shí)測(cè)試也表明,利用ASCOM作為底層技術(shù),上層利用ASCII Over TCP方式,可以在小帶寬(約9 600 bps)的情況下,不但可以有效地實(shí)現(xiàn)望遠(yuǎn)鏡控制,而且望遠(yuǎn)鏡狀態(tài)的實(shí)時(shí)監(jiān)測(cè)效果也是非常滿意的。
由于ASCOM支持多種設(shè)備,系統(tǒng)有非常好的可移植性。下一步,首先實(shí)現(xiàn)通過(guò)ASCOM對(duì)圓頂、濾光片、調(diào)焦等設(shè)備的驅(qū)動(dòng);其次,由于網(wǎng)絡(luò)帶寬的限制,目前采集的圖像是存儲(chǔ)在服務(wù)端的,未來(lái)將考慮通過(guò)壓縮、抽樣等方式在窄帶網(wǎng)絡(luò)上將圖像傳遞到客戶端,從而在對(duì)望遠(yuǎn)鏡等設(shè)備狀態(tài)獲取的同時(shí)實(shí)現(xiàn)觀測(cè)數(shù)據(jù)的遠(yuǎn)程監(jiān)控;第三,在客戶端實(shí)現(xiàn)各種控制的基礎(chǔ)上,實(shí)驗(yàn)在服務(wù)端通過(guò)腳本方式控制望遠(yuǎn)鏡,向自主觀測(cè)方向發(fā)展。第四,本文實(shí)現(xiàn)的還是一個(gè)原型系統(tǒng),實(shí)驗(yàn)未在真實(shí)的野外環(huán)境中進(jìn)行。雖然從現(xiàn)有的情況分析,實(shí)驗(yàn)環(huán)境非常接近天文選址站點(diǎn)的實(shí)際情況,但把這個(gè)系統(tǒng)應(yīng)用到野外進(jìn)行測(cè)試是下一步必須進(jìn)行的環(huán)節(jié)。
ASCOM是基于Windows操作系統(tǒng)的,雖然Windows本身的缺陷給利用它作為觀測(cè)平臺(tái)帶來(lái)一些不穩(wěn)定因素,但是Windows豐富的資源和易操作性,也給在這一平臺(tái)上擴(kuò)充更多的功能提供了便利。在Linux操作系統(tǒng)下,國(guó)際上這幾年也發(fā)展了一個(gè)RTS2[6-7]望遠(yuǎn)鏡遠(yuǎn)程控制標(biāo)準(zhǔn),麗江的BOOTES-4就是國(guó)內(nèi)第一架應(yīng)用這種標(biāo)準(zhǔn)的自主望遠(yuǎn)鏡。但這個(gè)標(biāo)準(zhǔn)使用的范圍還不大,而且也不是專門為選址小望遠(yuǎn)鏡開(kāi)發(fā)的,支持的設(shè)備也不夠豐富。然而對(duì)比ASCOM和RTS2兩個(gè)標(biāo)準(zhǔn),并進(jìn)一步研究最適合天文選址小望遠(yuǎn)鏡的遠(yuǎn)程控制的平臺(tái)是非常有意義的工作,也是未來(lái)的目標(biāo)。
[1] 劉立勇, 姚永強(qiáng). 天文臺(tái)址大氣光學(xué)湍流探測(cè)技術(shù)[J]. 天文學(xué)進(jìn)展, 2010, 28(4): 391-403.
Liu Liyong, Yao Yongqiang. Detection technology of atmospheric optical turbulence for astronomical site[J]. Progress in Astronomy, 2010, 28(4): 391-403.
[2] The RoboDIMM[EB/OL]. [2011-12-27]. http://www.ctio.noao.edu//telescopes/dimm/dimm.html.
[3] RoboDIMM—The ING’s New Seeing Monitor[EB/OL]. [2011-12-27]. http://www.ing.iac.es/PR/newsletter/news7/ins7.pdf.
[4] A new Robotic DIMM for Calar Alto Observatory[EB/OL]. [2011-12-27]. http://www.caha.es/newsletter/news04b/Aceituno/Newsletter.html.
[5] Standard for Astronomy[EB/OL].[2011-12-27]. http://www.ascom-standards.org/.
[6] Petr Kubánek, RTS2—The Remote Telescope System, Advances in Astronomy, Volume 2010, Article ID 902484, 9 pages (2010).
[7] Petr Kub′anekab, Martin Jel′nekb, John Frenchc, et al. The RTS2 protocol[C]// Bridger Alan, Radziwill Nicole M. Advanced Software and Control for Astronomy II. Proceedings of the SPIE, 2008, 7019: 70192S-70192S-12.