趙啟坤嚴(yán)小軍(北京航天控制儀器研究所北京100039)
基于幀間角距匹配的跟蹤模式星圖識(shí)別
趙啟坤,嚴(yán)小軍
(北京航天控制儀器研究所,北京100039)
為了提高星敏感器的跟蹤匹配速率,提高星敏感器姿態(tài)更新率,本文提出了一種基于幀間角距匹配的跟蹤模式星圖識(shí)別方法。該方法充分利用上一時(shí)刻的角距匹配信息構(gòu)建了一個(gè)實(shí)時(shí)跟蹤星庫(kù),并把當(dāng)前時(shí)刻的角距信息在實(shí)時(shí)跟蹤星庫(kù)中進(jìn)行匹配識(shí)別,識(shí)別成功后利用識(shí)別時(shí)用到的信息對(duì)實(shí)時(shí)跟蹤星庫(kù)進(jìn)行更新。仿真實(shí)驗(yàn)表明,該方法具有匹配時(shí)間短、匹配成功率高的優(yōu)點(diǎn)。
星敏感器;跟蹤匹配;角距匹配;實(shí)時(shí)星庫(kù)
從星圖識(shí)別角度來說,一般認(rèn)為星敏感器在兩種模式下工作[1]:全天球星圖識(shí)別和跟蹤模式星圖識(shí)別。星敏感器剛剛開始工作或者姿態(tài)跟蹤丟失時(shí),由于沒有任何先驗(yàn)姿態(tài)信息,需要通過全天球星圖識(shí)別計(jì)算當(dāng)前的姿態(tài)信息。全天球星圖識(shí)別完成后,如何快速利用前一時(shí)刻已經(jīng)識(shí)別的星圖信息來跟蹤當(dāng)前視場(chǎng)中的星體是提高星敏器星圖識(shí)別速率非常重要的問題。針對(duì)這個(gè)問題美國(guó)NASA JPL實(shí)驗(yàn)室提出了跟蹤窗的方法,但是這種方法只能跟蹤少數(shù)星體,而且由于跟蹤窗口小,容易出現(xiàn)跟蹤丟失[2]。張廣軍等[3?5]提出了一種星敏感器中快速星跟蹤方法,首先根據(jù)前幾幀已知星圖中星點(diǎn)的移動(dòng)軌跡,預(yù)測(cè)出當(dāng)前時(shí)刻星圖中星點(diǎn)的位置,然后尋找參考星圖中的任意一顆星在其觀測(cè)星圖中是否有觀測(cè)星位于其r鄰域范圍內(nèi)。這種方法采用了分區(qū)星表、閾值映射、先排序后匹配的策略,提高了跟蹤速度,算法有著很高的可靠性[3],但由于算法需要實(shí)時(shí)生成參考星圖,一定程度上影響了識(shí)別時(shí)間。
本文提出了一種基于幀間角距匹配的快速星跟蹤算法,算法充分利用前一幀匹配時(shí)的信息構(gòu)建(或更新)一個(gè)實(shí)時(shí)跟蹤星庫(kù),然后利用三角形識(shí)別方法對(duì)當(dāng)前時(shí)刻的導(dǎo)航星在實(shí)時(shí)星庫(kù)中進(jìn)行匹配識(shí)別,識(shí)別完成后更新導(dǎo)航星庫(kù)。
1.1 基于三角形匹配的星圖識(shí)別方法
基于三角形匹配的星圖識(shí)別方法[6]是一種比較直觀的方法,其核心思想是使一個(gè)由3顆星構(gòu)成的觀測(cè)三角形與導(dǎo)航星庫(kù)中的導(dǎo)航三角形唯一匹配,如圖1所示。其基本識(shí)別流程為:
(1)角距匹配
假設(shè)由星Si和Sj組成的星對(duì)夾角為βij,從星表中找到夾角為ρpq的星對(duì)Sp和Sq,使其滿足:其中i≠j,ε為角距容差。
(2)三角組合
把擁有共同頂點(diǎn)(恒星)和(測(cè)量)角距的星對(duì)ρij組成星三角形Tijk:
(3)消除冗余匹配
三角組合后的觀測(cè)三角形Tijk不唯一時(shí),利用星等信息判定、引入第4顆星組成金字塔、三角形的旋轉(zhuǎn)方向一致性等方法消除冗余匹配,獲得觀測(cè)三角形的唯一匹配。
1.2 幀間角距匹配的星圖識(shí)別的基本原理
在進(jìn)行三角形匹配時(shí),一般會(huì)遇到匹配庫(kù)過大、冗余匹配過多、識(shí)別效率低的問題。而在星敏感器工作過程中,相鄰兩幀之間有許多相同的星,如圖2所示。因此利用上一時(shí)刻的匹配信息建立一個(gè)實(shí)時(shí)跟蹤星庫(kù),把角距的搜索范圍由原先的全天球改為搜索上一時(shí)刻建立的實(shí)時(shí)跟蹤星庫(kù),最小化導(dǎo)航星的搜索范圍,以最大化搜索的效率?;谶@樣的一種思路,本文設(shè)計(jì)了一種基于幀間角距匹配的星圖識(shí)別方法?;趲g角距匹配的星圖識(shí)別主要包含3個(gè)部分:實(shí)時(shí)跟蹤星庫(kù)的建立、跟蹤模式星庫(kù)識(shí)別和實(shí)時(shí)跟蹤星庫(kù)的維護(hù)。
(1)實(shí)時(shí)跟蹤星庫(kù)的建立
實(shí)時(shí)跟蹤星庫(kù)只在系統(tǒng)初始化或者姿態(tài)丟失時(shí)建立。在系統(tǒng)初始化時(shí),利用全天球星圖識(shí)別法識(shí)別當(dāng)前視場(chǎng)中的導(dǎo)航星,并計(jì)算各個(gè)導(dǎo)航星之間的角距信息。然后把其中星等最亮N顆導(dǎo)航星之間的角距信息保存在一個(gè)實(shí)時(shí)導(dǎo)航星庫(kù)中。實(shí)時(shí)跟蹤星庫(kù)一旦建立之后,程序只需要對(duì)實(shí)時(shí)跟蹤星庫(kù)進(jìn)行維護(hù)。
(2)跟蹤模式星圖識(shí)別
跟蹤模式星圖識(shí)別以實(shí)時(shí)跟蹤星庫(kù)作為匹配星庫(kù),利用基于三角形的星圖識(shí)別法對(duì)觀測(cè)星進(jìn)行識(shí)別。因?yàn)楦櫮J嚼玫氖菍?shí)時(shí)跟蹤星庫(kù),星庫(kù)中不包含新進(jìn)入視場(chǎng)中的導(dǎo)航星。所以與一般的識(shí)別方法不同,該方法在識(shí)別時(shí)需要大膽剔除未能完成角距匹配的導(dǎo)航星。
(3)實(shí)時(shí)跟蹤星庫(kù)的維護(hù)
實(shí)時(shí)跟蹤星庫(kù)的維護(hù)包括在實(shí)時(shí)跟蹤星庫(kù)中移除和添加導(dǎo)航星。在星敏感器工作時(shí),會(huì)有一些星進(jìn)出視場(chǎng)。為了保證星庫(kù)的實(shí)時(shí)性,應(yīng)當(dāng)及時(shí)將移出視場(chǎng)的導(dǎo)航星(如圖2(b)中的8號(hào)星)從星庫(kù)中刪除,把新進(jìn)入視場(chǎng)的導(dǎo)航星(如圖2(b)中的9號(hào)星)添加到實(shí)時(shí)跟蹤星庫(kù)中。
2.1 實(shí)時(shí)跟蹤星庫(kù)的組織結(jié)構(gòu)及其建立維護(hù)
(1)采用散列的方式對(duì)實(shí)時(shí)跟蹤星庫(kù)進(jìn)行索引
為了對(duì)實(shí)時(shí)跟蹤星庫(kù)進(jìn)行高效的索引、維護(hù),導(dǎo)航星的角距信息以散列的存儲(chǔ)在實(shí)時(shí)跟蹤星庫(kù)中,如表1所示,每一條導(dǎo)航信息都利用式(1)所示的散列函數(shù)映射到其中一個(gè)散列表中。
表1 用散列方式存儲(chǔ)實(shí)時(shí)跟蹤星庫(kù)Table 1 Store the real?time database using hash table
其對(duì)應(yīng)的散列函數(shù)為:
為每個(gè)散列表設(shè)置一個(gè)表頭,包括散列表中第一項(xiàng)在內(nèi)存中的地址,該表中對(duì)應(yīng)的角距范圍,已存儲(chǔ)的導(dǎo)航星信息數(shù)目,方便對(duì)散列表的管理。
為了對(duì)實(shí)時(shí)跟蹤星庫(kù)執(zhí)行查找工作,首先利用式(1)來確定究竟考察哪個(gè)表,然后遍歷該表并返回被查找的項(xiàng);為了執(zhí)行插入操作,遍歷一個(gè)相應(yīng)的表,找到第一個(gè)未使用的位置把數(shù)據(jù)插入進(jìn)去(為了避免太多的數(shù)據(jù)移動(dòng)操作,不對(duì)散列表中的數(shù)據(jù)進(jìn)行排序);為了執(zhí)行刪除操作,找到需要被刪除的信息,然后把相應(yīng)的數(shù)據(jù)刪除。
(2)采用世代回收機(jī)制管理實(shí)時(shí)跟蹤星庫(kù)
實(shí)時(shí)跟蹤星庫(kù)中有很多插入和刪除工作。當(dāng)一顆導(dǎo)航星進(jìn)入視場(chǎng)時(shí),導(dǎo)航星需要與視場(chǎng)中已存在的星計(jì)算角距并存儲(chǔ)在實(shí)時(shí)跟蹤星庫(kù)中;當(dāng)導(dǎo)航星離開視場(chǎng)時(shí),與該星有關(guān)的所有信息都要被刪除。為了最小化插入和刪除的時(shí)間開銷,本文利用世代回收機(jī)制對(duì)實(shí)時(shí)跟蹤星庫(kù)中的信息進(jìn)行有效性管理,利用一個(gè)存儲(chǔ)管理表(Memory Man?ager Table)來管理世代數(shù)。
利用世代回收機(jī)制管理實(shí)時(shí)跟蹤星庫(kù)時(shí),跟蹤模式星圖識(shí)別每執(zhí)行一次操作稱為一個(gè)世代,世代數(shù)從2開始一直遞增至1024,然后再?gòu)?開始繼續(xù)循環(huán)遞增。存儲(chǔ)管理表中存儲(chǔ)實(shí)時(shí)跟蹤星庫(kù)中每一條數(shù)據(jù)對(duì)應(yīng)的世代數(shù),所有世代數(shù)低于世代閾值的信息都是無效信息,對(duì)應(yīng)的位置可以被執(zhí)行寫入操作。
在利用全天球星圖識(shí)別構(gòu)建完成實(shí)時(shí)跟蹤星庫(kù)時(shí),實(shí)時(shí)跟蹤星庫(kù)中所有有效數(shù)據(jù)對(duì)應(yīng)世代數(shù)都為1,無效數(shù)據(jù)的世代數(shù)為0。利用跟蹤模式星圖識(shí)別時(shí),把所有匹配時(shí)用到的角距信息的世代數(shù)都更新為當(dāng)前的世代數(shù)。所有世代數(shù)低于上一次成功跟蹤識(shí)別世代數(shù)的信息或者世代數(shù)低于1(如果上一次成功識(shí)別是利用全天球星圖識(shí)別)的信息都可以認(rèn)為是無效信息。采用這種機(jī)制,回避了有導(dǎo)航星移出視場(chǎng)時(shí)的刪除操作,使得星庫(kù)的維護(hù)開銷大大減小。
2.2 跟蹤模式星圖識(shí)別
本文以三角形星圖識(shí)別作為跟蹤模式星圖識(shí)別基本方法,與普通三角形識(shí)別方法相比,本文所用的三角形算法有如下不同。
(1)假星的剔除和識(shí)別
與一般的假星定義不同,這里的假星是指視場(chǎng)中所有未出現(xiàn)在實(shí)時(shí)跟蹤星庫(kù)中的觀測(cè)星。由于載體姿態(tài)運(yùn)動(dòng)有一部分導(dǎo)航星進(jìn)出視場(chǎng),使得實(shí)時(shí)跟蹤星庫(kù)與真實(shí)視場(chǎng)之間并不是包含關(guān)系,實(shí)時(shí)跟蹤星庫(kù)中并不包含新進(jìn)入視場(chǎng)中的星,導(dǎo)致這部分星無法利用實(shí)時(shí)跟蹤星庫(kù)完成識(shí)別。
考慮到這部分星的影響,在跟蹤識(shí)別時(shí)需要大膽剔除這部分星。假設(shè)由觀測(cè)星S1、S2、S3組成觀測(cè)三角形。對(duì)3個(gè)角距進(jìn)行匹配時(shí),如果只有一個(gè)星角距能夠完成匹配(假設(shè)為P(S1,S2)),另外兩個(gè)星角距無匹配,就可以認(rèn)為出現(xiàn)了假星(這里為星S3)。
利用跟蹤模式星圖識(shí)別完成星圖識(shí)別后,開始對(duì)假星的識(shí)別工作。選擇已識(shí)別的3顆星和假星組成3個(gè)星對(duì),利用全天球星圖識(shí)別對(duì)這3個(gè)星對(duì)進(jìn)行匹配,識(shí)別當(dāng)前星。如果能夠獲得唯一匹配,當(dāng)前假星為新進(jìn)入視場(chǎng)中的導(dǎo)航星,計(jì)算其與視場(chǎng)中其他星之間的角距信息,寫入實(shí)時(shí)跟蹤星庫(kù)。如果沒有匹配成功,當(dāng)前假星為偽星。
(2)新進(jìn)入視場(chǎng)中的導(dǎo)航星的處理
為了保證數(shù)據(jù)更新速率,新進(jìn)入視場(chǎng)中的導(dǎo)航星一般不與視場(chǎng)中所有的導(dǎo)航星都計(jì)算角距信息,而是選擇亮度最高的NM顆星,把它們之間的角距值更新到實(shí)時(shí)跟蹤星表。NM的取值不能太大也不能太小,取值太大維護(hù)實(shí)時(shí)跟蹤星庫(kù)的時(shí)間開銷變得很大,取值太小則會(huì)增加無法識(shí)別的風(fēng)險(xiǎn)。
(3)冗余三角形的處理
在全天球星圖識(shí)別中,由于導(dǎo)航星庫(kù)巨大,三角形的特征維數(shù)比較低,三角形冗余匹配比較多。而基于幀間角距匹配的跟蹤模式星圖識(shí)別由于實(shí)時(shí)跟蹤星庫(kù)的大大減小,三角形冗余匹配的概率也大大降低,一般不需要考慮冗余匹配的問題。當(dāng)視場(chǎng)中導(dǎo)航星的個(gè)數(shù)比較多時(shí),直接丟棄當(dāng)前的觀測(cè)三角形,重新選擇一個(gè)觀測(cè)三角形進(jìn)行認(rèn)定和識(shí)別,防止因?yàn)榧傩堑某霈F(xiàn)導(dǎo)致誤識(shí)別;如果當(dāng)前視場(chǎng)中導(dǎo)航星個(gè)數(shù)比較少時(shí),引入第4顆導(dǎo)航星進(jìn)行驗(yàn)證。
(4)重新匹配
當(dāng)利用跟蹤模式匹配失敗時(shí),應(yīng)當(dāng)轉(zhuǎn)入全天球星圖識(shí)別重新匹配。
2.3 基于幀間角距匹配的算法步驟
1)判斷是否是初始化。如果要進(jìn)行初始化則轉(zhuǎn)入步驟2,如果不需要初始化轉(zhuǎn)入步驟3。
2)進(jìn)行全天球星圖識(shí)別。識(shí)別成功后,初始化并更新實(shí)時(shí)跟蹤星庫(kù),然后轉(zhuǎn)入步驟9。
3)選擇觀測(cè)星三角形。如果所有三角形都已經(jīng)被識(shí)別過,則轉(zhuǎn)入步驟2進(jìn)行全天球星圖識(shí)別;如果還有未識(shí)別過的三角形,則轉(zhuǎn)入步驟4進(jìn)行識(shí)別。
4)對(duì)觀測(cè)三角形利用實(shí)時(shí)跟蹤星庫(kù)進(jìn)行識(shí)別。如果識(shí)別失敗轉(zhuǎn)入步驟5,如果識(shí)別成功則轉(zhuǎn)入步驟6。
5)進(jìn)行假星的判定和標(biāo)記工作。然后轉(zhuǎn)入步驟3。
6)設(shè)置當(dāng)前的世代數(shù),把已經(jīng)識(shí)別的3個(gè)角距數(shù)據(jù)更新到實(shí)時(shí)跟蹤星庫(kù)中。
7)識(shí)別其余導(dǎo)航星。每識(shí)別成功一個(gè)導(dǎo)航星,計(jì)算該星與其余導(dǎo)航星的角距,并更新到實(shí)時(shí)跟蹤星庫(kù)中。
8)判斷是否滿足最小識(shí)別星數(shù)目的要求。如果不滿足則轉(zhuǎn)入步驟3,重新選擇三角形進(jìn)行識(shí)別。
9)判斷是否還有下一幀數(shù)據(jù)。如果有則轉(zhuǎn)入步驟1;如果沒有,則結(jié)束程序。
為了評(píng)價(jià)該方法的性能,在Linux計(jì)算機(jī)上進(jìn)行了4組仿真測(cè)試。測(cè)試時(shí)假設(shè)星敏感器的視場(chǎng)為10°×10°,初始姿態(tài)為BoreSight0(Ra=280.60°,
式(2)中,j取0、1和2,分別代表視軸的俯仰、偏航和橫滾3個(gè)方向;rand是范圍為(0,1)的隨機(jī)數(shù),StepDeg為載體角運(yùn)動(dòng)在3個(gè)方向上分量的最大值。
每組測(cè)試都進(jìn)行了150步,每一步都會(huì)根據(jù)當(dāng)前的姿態(tài)產(chǎn)生一幅星圖模擬星敏感器采集到的觀測(cè)星圖。
1)取StepDeg為1°,統(tǒng)計(jì)每次識(shí)別所用的時(shí)間,并與全天球星圖識(shí)別進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如圖3所示。
利用幀間角距匹配法進(jìn)行識(shí)別時(shí),全部150次識(shí)別中只有出現(xiàn)1次姿態(tài)跟蹤丟失的情況,識(shí)別成功率為99.33%。幀間角距匹配法進(jìn)行識(shí)別時(shí)所用的平均時(shí)間為0.39ms,與之對(duì)比的是全天球星圖識(shí)別所用平均時(shí)間為15.12ms。最長(zhǎng)耗時(shí)方面,幀間角距匹配最長(zhǎng)用時(shí)8.6ms,全天球星圖識(shí)別最長(zhǎng)耗時(shí)57.60ms。與全天球星圖識(shí)別相比,幀間角距匹配法的優(yōu)勢(shì)明顯。
2)取StepDeg為不同的值,Rand固定為1時(shí),跟蹤成功率與載體角運(yùn)動(dòng)變化的關(guān)系。仿真結(jié)果如圖4所示。
從圖4可以看到,在10°視場(chǎng)下,載體角運(yùn)動(dòng)變化在視軸3個(gè)方向上的變化都小于2.5°時(shí),算法依然能夠保證90%以上的匹配識(shí)別成功率;超過3°時(shí),算法的匹配識(shí)別成功率開始大幅度下降。
本文在充分利用上一時(shí)刻星跟蹤匹配信息的情況下,構(gòu)建了一個(gè)實(shí)時(shí)跟蹤星庫(kù),并以實(shí)時(shí)跟蹤星庫(kù)中的信息作為匹配庫(kù),對(duì)視場(chǎng)中的星進(jìn)行跟蹤匹配識(shí)別。為了減小實(shí)時(shí)跟蹤星庫(kù)的維護(hù)開銷,本文利用世代回收機(jī)制對(duì)星庫(kù)進(jìn)行維護(hù)。仿真結(jié)果表明,本算法的平均跟蹤識(shí)別時(shí)間約為0.39ms,在相鄰時(shí)刻3個(gè)方向上視軸的變化不超過1°時(shí),跟蹤匹配成功率大于99%。
[1] Liebe C C.Accuracy performance of star trackers:a tutorial[J]. IEEE Transactions on Aerospace and Electronic Systems,2002,38(2):587?599.
[2] 劉朝山,劉光斌,王新國(guó),等.彈載星敏感器原理及系統(tǒng)應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2010. LIU Chao?shan,LIU Guang?bin,WANG Xin?guo,et al. The principle of airborne star sensor and its application of system[M].Beijing:National Defense Industry Press,2010.
[3] 陳聰,王宏力,崔祥祥,等.基于預(yù)測(cè)跟蹤星表提高星敏感器實(shí)時(shí)性的方法[J].紅外與激光工程,2013,42 (8):2190?2196. CHEN Cong,WANG Hong?li,CUI Xiang?xiang,et al. Method of improving real?time of star sensor based on pre?diction and tracking star catalog[J].Infrared and Laser Engineering,2013,42(8):2190?2196.
[4] 李葆華,陳希軍,鄭循江,等.星敏感器高動(dòng)態(tài)下自主星跟蹤算法[J].紅外與激光工程,2012,41(1): 190?195. LI Bao?hua,CHEN Xi?jun,ZHENG Xun?jiang,et al.Au?tonomous star tracking algorithm with high dynamic space?craft[J].Infrared and Laser Engineering,2012,41(1): 190?195.
[5] Jiang J,Zhang G J,Wei X G,et al.Rapid star tracking algorithm for star sensor[J].IEEE Aerospace and Elec?tronic Systems Magazine,2009,24(9):23?33.
[6] 江潔,李霄,張廣軍,等.一種星敏感器中快速星跟蹤方法[J].宇航學(xué)報(bào),2006,27(5):952?955. JIANG Jie,LI Xiao,ZHANG Guang?jun,et al.Fast star tracking technology in star sensor[J].Journal of Astronautics,2006,27(5):952?955.
[7] 張廣軍.星圖識(shí)別[M].北京:國(guó)防工業(yè)出版社,2011.
[8] ZHANG Guang?jun.Star identification[M].Beijing:National Defense Industry Press,2011.
[8] 李欣璐,楊進(jìn)華,張劉,等.用于快速星跟蹤的雙向遞推匹配識(shí)別[J].光學(xué)精密工程,2015,23(5):1443?1449. LI Xin?lu,YANG Jin?hua,ZHANG Liu,et al.Bidirec?tional selective rule out matching recognition of fast star tracking[J].Optics and Precision Engineering,2015,23 (5):1443?1449.
[9] 楊冬青,吳愈青,包小源,等.數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)[M].北京:機(jī)械工業(yè)出版社,2013. YANG Dong?qing,WU Yu?qing,BAO Xiao?yuan,et al. Database system implementation[M].Beijing:China Ma?chine Press,2013.
A Star Tracking Algorithm for Star Sensor Using Star Angular Distance Matching between Adjacent Frames
ZHAO Qi?kun,YAN Xiao?jun
(Beijing Institute of Aerospace Control Devices,Beijing 100039)
In order to improve the match rate and attitude update rate of star sensor,a star tracking algorithm for star sensor using star angular distance matching between adjacent frames was proposed.In this method,the angular distance in?formation at last frames are fully utilized to construct a real?time database,and at current time the angular distance informa?tion are matched at the real?time database,update the real?time database after successful matched.Simulation showed that the application of this method made this tracking algorithm faster and improved the efficiency of star sensors.
star sensor;tracking algorithm;angular distance matching;real?time database
U<666.1 文獻(xiàn)標(biāo)志碼:A class="emphasis_bold">666.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674?5558(2017)03?01224666.1 文獻(xiàn)標(biāo)志碼:A
1674?5558(2017)03?01224
A 文章編號(hào):1674?5558(2017)03?01224
10.3969/j.issn.1674?5558.2017.02.016
2016?01?04
趙啟坤,男,碩士,導(dǎo)航、制導(dǎo)與控制專業(yè),研究方向?yàn)樾枪饨M合導(dǎo)航技術(shù)。