吳 凡,趙 瑞,何錫明,姜 萍,榮志飛,王琪智,裴健超
(北京航天飛行控制中心,北京 100094)
空間站機械臂[1-3]是中國空間站工程[4-5]的核心關鍵設備之一,承擔任務類型多樣[6],如艙間爬行、支持航天員出艙[7]、載荷艙外安裝[8-9]、艙外狀態檢查等。空間站作為在軌時間很長的航天器,機械臂在其中擔任了重要的角色。機械臂操作的控制模式不同于傳統繞飛航天器,對其的主要影響,不僅是天體間的相對運動,除光照、通信條件制約之外,還有和空間站各部位、各組件及航天員間空間環境的干涉、平臺操作的影響等,都會進行實時交互且是相互作用的,空間站機械臂任務的靈活性不言而喻。
由于應用環境的特殊性,空間站機械臂的智能水平和自主行為受限,主要通過地面遙操作的配合實施對其的控制。在軌過程中需要進行頻繁的任務規劃,獲得地面控制航天器動作序列,完成地面對機械臂行為、動作的控制,使航天器圓滿地完成既定的任務目標。
智能規劃技術是指通過對周圍環境的認識與分析,面向既定的任務目標,基于行為動作及其資源限制和相關約束,對控制目標的狀態及后續行為進行推理,綜合制定出實現任務目標的動作序列。
智能規劃起源于狀態空間搜索、控制理論等研究,以及機器人技術、調度和其他領域的實際需要,是人工智能領域中一個重要的研究方向。長期以來,研究者們致力于智能規劃技術的研究,建立了多種智能規劃方法,取得顯著的成果,并在實際應用中解決了很多類型、很多領域的問題。
在20 世紀90 年代之前規劃(Planning)一直采用邏輯演繹的方法予以求解,基于知識表示與推理(Knowledge Representation and Reasoning),側重于經典邏輯下的各種推理技術的利用。1971 年,斯坦福研究所開發了一種自動規劃器STRIPS,在一個模型空間中找到一個算子序列,將給定的初始問題轉化為滿足目標條件的問題[10]。1975 年,EARL[11-12]提出了NOAH(Nets of Action Hierarchies)系統,第一次實現分層任務網絡規劃(Hierarchical Task Network,HTN)。2003年DANA等[13]提出了SHOP2規劃系統,在該年度國際規劃競賽中發揮了出色的表現,是一個典型的HTN 規劃系統。2004 年NASA 使用了MAPGEN 規劃器[14]為火星探測器的日常運行進行了規劃。2007年MEXAR2規劃器[15]為歐洲航天局(ESA)的火星快車任務執行了日常規劃和科學規劃。
航天器遙操作任務規劃技術[16-17]是智能規劃技術的一類典型應用。在之前我國成功實施了嫦娥五號任務、天問一號任務,在地月空間、行星際空間的遙操作任務中,規劃技術發揮了至關重要的作用,也奠定了堅實的基礎[18-21]。航天器遙操作任務規劃基于任務特點和目標,在復雜多約束的不同任務類型中完成各種事件的調度和集成,實現航天器行為的規劃。
空間站機械臂的工作類型多樣,一次完整的機械臂工作主要包括的行為有重啟、預熱、相機設置、運動、狀態設置,以及相應的組合體姿態和狀態的設置和恢復等。
機械臂運動包括大臂運動模式[1]、小臂運動模式[22]、組合臂運動模式[23]等。其中運動均是由多步運動構成的,經過多個中間點到達運動目標點,此外,還包含機械臂末端的捕獲運動和釋放運動,如圖1 所示。機械臂大臂、小臂分別具有一定數量的不同的基座,各有7 個關節角,2 個末端,每個末端均可實施捕獲、釋放運動[24-25],基于此狀態,大臂、小臂、組合臂僅爬行路徑就有幾十條,其他類型工作中機械臂路徑更加繁多,并且其中的大部分控制動作是不一樣的。

圖1 機械臂運動模式Fig.1 Manipulator motion modes
空間站機械臂任務規劃是以機械臂運動及其操作過程為引導,同時考慮非機械臂運動事件、非機械臂事件和機械臂事件間的邏輯耦合關系以及時序發生關系的規劃。規劃模式如圖2 所示,其中月事件反應的是機械臂規劃的需求,飛控事件是描述每個行為的模塊。

圖2 任務規劃模式Fig.2 Task planning mode
針對任務目標和規劃約束的分析,在獲取月事件需求后,基于機械臂工作過程,以機械臂運動步驟、航天員活動流程等為基準,輔以平臺各狀態設置過程、機械臂各狀態設置情況,將機械臂工作月事件進行分解及策略展開。同時,針對機械臂運動步驟,結合分解的月事件提取機械臂運動各階段對應的位置姿態信息,分析形成機械臂運動需求。
基于上述需求層分析,整理形成月事件分解結果,建立分層規劃對象模型,再結合機械臂運動學規劃結果、規劃初始狀態、特殊約束需求,規劃器完成滿足測控資源整理模型下的任務規劃,完成在考慮各行為發生條件、執行邏輯和時序安排下,滿足各類約束的地面控制動作序列,通過規劃驗證后輸出控制動作序列,讓航天器在滿足測控資源的條件下合理有效地完成各項工作。
基于機械臂工作的動態過程,機械臂規劃面臨很多方面的約束,主要考慮以下幾個方面。
1)基本約束:月事件所包含的首個飛控事件約定了本次規劃的起始時間,即動作的起始時間,后續飛控事件采用邏輯順序約束,在首個飛控事件之后依次安排;部分飛控事件由特征條件約束;部分飛控事件需滿足周期性要求,按照一定的時間間隔發生;部分飛控事件有陽照、陰影限制約束。
2)聯合約束:部分飛控事件由多個或多類約束條件共同進行約束。
3)次生約束:已規劃的結果可能會對部分飛控事件產生影響,從而形成新的約束,如機械臂運動過程中可能會在特定時刻對地面和器上的通信產生遮擋,遮擋的時段內不可安排飛控事件,又如機械臂運動過程中可能會與航天器產生干涉,為保證安全可能在運動前安排相應空間站平臺設備調整飛控事件。
基于地面工程師對空間站機械臂構型、供配電系統、信息系統、控制系統的設計,對主要工作模式和任務需求進行分析,按照規劃任務的目標,構建分層規劃對象模型和狀態空間模型,在分層規劃對象中建立狀態推理模型,對部分飛控事件或控制動作進行多約束設計,結合測控資源整理模型實現規劃的迭代計算,如圖3 所示。

圖3 模型的總體架構Fig.3 Overall network architecture of the mode
空間站機械臂任務規劃過程存在通信窗口約束,單次任務規劃對象無法在一個時間窗口內完成,在事件規劃的同時,測控資源的整理是不可或缺的。
空間站機械臂任務規劃的可用區間必須能夠包含當次規劃任務需求的總時長,并且可用區間的起始時間要早于任務需求中事件的最早開始時間。
通過定義全局時間點,構建資源的基礎區間,基礎區間進行邏輯耦合形成應用區間。將適配的基礎區間或應用區間作為機械臂的可用區間,即資源項,還可以對陽照區間和陰影區間進行標識。
在規劃器按照分層規劃對象模型展開規劃時,根據飛控事件的資源需求安排在符合約束條件的可用區間內。
機械臂工作受溫度、能源、資源等多種條件制約,并與空間站平臺其他分系統的工作相互耦合,其行為本身具有多種復雜的模式和極強的動態特性,在不同應用場景下還具有不同的流程分支,導致任務規劃過程具有較強的不確定性。
如果基于各動作直接進行任務規劃,不僅規劃計算耗時很長,而且還會增加管理和維護的成本。為提高規劃效率,將機械臂相關的任務需求進行分解和細化分析,基于經驗和分析結果將月事件分解展開為相應的飛控事件模塊,每一個飛控事件模塊對應著一組或者多組動作控制序列。
基于上述優化思想,將機械臂規劃模型構建為包含月事件層、飛控事件層和控制動作序列層的分層對象模型,模型每一層的模塊在任務過程中可以持續補充以及復用,模型通過層級調用產生本次任務中的全部地面控制動作序列,取代人為通過單控制動作排列的方式產生全部動作控制計劃,滿足不同階段的規劃目標,提升了長期任務過程中的地面工作效率和靈活性,由于經過任務驗證的模塊持續復用,模型的準確性也大大提升,如圖4 所示。

圖4 分層規劃對象模型Fig.4 Layered programming object model
月事件層由可以完成當前任務需求Ψ的部分飛控事件Ωi構成,并在該層通過邏輯順序約束表達式描述飛控事件間的關系,飛控事件的關系由地面工程師給出建議,明確在一次規劃任務中飛控事件的集合。
飛控事件描述了機械臂工作月事件實施的具體步驟,在機械臂規劃中,飛控事件作為規劃過程中的最小邏輯單元,每個飛控事件描述機械臂或組合體平臺的一個最小動作或最小狀態,設計時遵循邏輯閉環原則,以實現飛控事件在規劃時的邏輯正確。
機械臂在不同的工作場景下具有多樣的分支和狀態,如在不同基座上實施相同行為時所采用的控制動作不同,又如針對所有分支或狀態進行窮舉設計,會導致飛控事件數量過多,使得模型的維護成本激增,所以設計飛控事件時需滿足可復用性要求,每個飛控事件均需包含可能出現的不同分支和不同狀態Mv,實現飛控事件的歸一化設計。在此基礎上,針對相應飛控事件的不同分支及不同狀態,標識不同的能耗Ev,設計具有互斥性質的調度參數Pv及參數賦值,提供人工管理和選擇該飛控事件的分支及狀態的接口。
每個模式Mv由控制動作序列層構成,每個控制動作序列包括多個動作和對應動作的持續時長,并且可以嵌套其他的動作序列。
式中:Iu為控制動作的代號;Au為控制動作Iu的名稱;ku為控制動作Iu的持續時長;pu為針對各控制動作設置的調度參數,一個控制動作可能會配置多個調度參數,如定義是主份還是備份控制、動作是否重復多次等。
在月事件層的飛控事件中將對應的調度參數Pv和pu進行集中描述,如圖5 所示,定義是否安排某飛控事件、飛控事件包含的各種狀態以及各狀態對應的不同動作分支;將優先權重最大的常用調度參數設置為缺省狀態。

圖5 模型中參數的定義及設置Fig.5 Definition and setting of parameters in the model
任務規劃過程伴隨著規劃模型從初始狀態到最終狀態的傳遞和推導,狀態是決定飛控事件或控制動作選擇的關鍵。在傳統的人工規劃模式中,地面工程師需要人為推導狀態選擇調度參數,若規劃輸入的需求或狀態發生改變時,則需重新進行狀態推導,甚至對規劃模型進行反復修正和調整。在空間站機械臂規劃中,由于機械臂工作相關的狀態繁多,涉及的飛控事件或控制動作序列數量及相應的參數也非常多,會導致規劃模型的設計、管理、維護及使用的效率低下、成本高昂、錯誤率高。
根據任務過程,將機械臂狀態分為靜態狀態和動態狀態,靜態狀態主要包含主備分支、部分序列中的特殊設置分支,需基于分支選擇展開規劃,動態狀態主要由規劃當前狀態進行約束,且同一飛控事件安排在不同階段時的約束狀態也不一樣。
為提升分層規劃對象模型的靈活性、通用性,替代人工完成全過程的狀態推導,將機械臂動態狀態Sj及取值范圍的合集建立狀態空間Σ,作為數據庫存儲、調用及對查,并在規劃前對初始狀態空間進行賦值。
在模型控制動作序列層中,對可導致機械臂狀態變化的控制動作后增加設置狀態空間描述的虛擬字段V_set,規劃器識別并處理該類字段,在規劃過程中伴隨進行狀態空間推理,推導狀態空間中當前的各類狀態的賦值,并將改變后的狀態引入后續飛控事件及控制動作的規劃中。
同時,按照機械臂工作邏輯及平臺各分系統控制邏輯,在模型的飛控事件或控制動作序列層增加狀態調度參數,當滿足某一狀態或同時滿足多個設定狀態時,調度該事件或者該控制動作發生。并且狀態調度參數同調度參數Pv和pu在月事件的飛控事件中描述。規劃器將狀態規劃和時序邏輯規劃相結合,根據推理,狀態空間中的當前狀態值,由狀態調度參數選擇正確的飛控事件或控制動作發生。對狀態推理過程進行了簡單的示例,其狀態模型如圖6 所示。

圖6 狀態模型Fig.6 State model
針對任務過程中部分飛控事件或控制動作發生的聯合約束的需求,模型中增加多狀態聯合約束表達式的描述,規劃器對該類表達式進行識別處理,按照正確的狀態進行規劃。
典型的聯合約束對于某控制動作,如多狀態約束,在幾個狀態同時等于指定狀態值、同時不等于指定狀態值、部分等于部分不等于指定狀態值的情況下控制動作的發生。對于某飛控事件的約束可能包含機械臂當前位置狀態、器上能源狀態、到達某時間周期,以及部分狀態等于或不等于指定狀態值。
機械臂運動規劃的具體控制參數通過仿真驗證后,將各步驟運動參數傳遞至規劃器。運動參數包括每一步運動的執行機構、運動控制動作代號、運動時長,以及狀態空間中的、運動綁定的狀態和狀態值。
在分層規劃對象模型中,將機械臂運動設計為一個飛控事件,規劃器識別收到的運動參數中的字段,按步驟讀取參數中每一步運動過程,基于執行機構字段的機械臂大臂或小臂調取大臂或小臂控制動作序列,在該控制動作序列中采用虛擬字段V_DMOVE 或V_XMOVE 來描述路徑。在規劃器規劃展開動作時,虛擬字段替換為參數中運動控制動作代號,將動作的持續時長替換為參數中的運動時長,同時將該步驟中涉及的狀態字段更新存儲在狀態空間中,且該狀態值參與后續的規劃,如圖7所示。

圖7 運動控制參數調度Fig.7 Scheduling diagram of the motion control parameters
在完成動作序列展開后,規劃器需要對生成的地面控制動作序列結果進行驗證,對結果的正確性進行校核。
主要考慮以下4 個方面:
1)動作發生的時間間隔是否滿足最小發生間隔。某兩個動作間的間隔時長是否大于某值或者小于某值。
2)某些動作間是否有先后順序或時間間隔的要求,可能存在于一個動作序列或不同的飛控事件中,動作的發生時序,某動作發生后多長時間內,另一個動作發生。
3)部分飛控事件需要周期性發生、部分飛控事件的陰影光照約束,以及運動過程是否和航天器產生干涉。
4)對航天器的能源消耗、熱控裕度進行驗證。
將上述內容通過驗證虛擬標識和驗證邏輯表達式進行描述,規劃器識別虛擬標識和邏輯表達式,在執行規劃驗證計算時,對驗證結果進行顯示,對問題進行錯誤提示。
使用規劃語言將模型中各字段進行識別和描述,針對建立的問題模型,再基于初始狀態、目標狀態,通過地面工程師手動操作和規劃器的計算對問題進行迭代求解,計算生成能夠完成任務目標的地面控制動作序列。規劃求解過程分解如圖8 所示。

圖8 規劃求解流程Fig.8 Flow chart of planning and solving
1)地面工程師根據領域知識、任務的需求和目標,針對機械臂運動步驟和各階段位姿信息,整理形成機械臂運動需求,完成運動學規劃。基于機械臂工作全過程建立分層規劃對象模型,若當前規劃非首次任務可以直接復用該模型,如有新增的事件及動作可以在模型中進行調整和補充。
2)地面工程師根據任務需求,建立測控資源整理模型。
3)規劃器創建規劃任務,選定分層規劃對象模型和執行腳本包。執行腳本包描述了規劃流程及各規劃階段項。
4)規劃器處理機械臂規劃需求,將分層規劃對象模型建立任務規劃執行包。
5)規劃器獲取全局初始狀態,完成分層規劃模型的格式檢查,讀取運動控制參數。
6)規劃器根據輸入的測控資源和測控資源整理模型規劃機械臂工作的可用區間。
7)在規劃器初始條件設置界面對首個飛控事件指定北京時,指定規劃開始時刻為首個飛控事件實施的北京時。
8)規劃器根據各飛控事件所涉及的調度參數信息進行列表化顯示,提供人工干預的接口。規劃時默認按照缺省參數進行規劃,如果調度參數需要改變,地面工程師利用人工干預接口對相應調度參數進行調整,按照參數取值和分支選擇對各事件進行規劃。
9)規劃器根據月事件層中飛控事件間邏輯順序約束表達式及資源占用方式,規劃器識別已規劃飛控事件的資源占用狀態和邏輯順序,按順序對飛控事件實施規劃。
10)規劃器根據狀態空間初始賦值和設計的狀態推理模型,根據狀態空間中當前狀態值,由狀態調度參數自適應的選擇分支,規劃器識別并處理狀態設置字段,設置狀態空間中的狀態賦值,并將改變后的狀態引入后續飛控事件及控制動作的規劃中。
11)規劃器在規劃過程中對同一時間發生的地面控制動作進行錯誤提示,地面工程師按照錯誤類型對設計的分層規劃模型進行調整,實施重規劃,完成沖突消解。
12)規劃完成后規劃器執行規劃驗證,基于規劃驗證模型,規劃器對控制動作的存在性、工作流程、能源消耗、熱控裕度的擴展性,以及部分實施邏輯進行驗證,并將驗證結果返回輸出,地面工程師對驗證結果和地面控制動作序列結果進行校核。若驗證結果未通過,地面工程師對相應問題進行模型調整實施重規劃,直至通過驗證。
13)若測控資源發生調整,或有次生約束的產生,規劃器同樣需要完成重規劃。若出現應急情況,規劃器根據人工指定的應急狀態規劃相應的應急分支。
14)規劃器完成符合要求的規劃后,將通過驗證的地面控制動作序列結果和機械臂控制參數進行發布與傳遞。
這里對機械臂在軌某一次任務片段的測試驗證結果進行展示,機械臂初始位置構型為組合臂狀態,初始狀態為大臂關節角度W0={J1,J2,J3,J4,J5,J6,J7},小臂關節角度w0={j1,j2,j3,j4,j5,j6,j7},空間站機械臂從組合臂狀態拆解為單臂狀態,大小臂運動至存儲常態構型We=,實現由初始狀態到最終狀態的狀態轉移,執行時間控制在半個工作日內,涉及控制動作百余個,其中機械臂運動控制動作11 個,涉及機械臂大臂運動和小臂運動,具體控制動作內容用代號表示,涉及狀態空間絕大部分狀態及部分狀態取值。
分層規劃對象模型的月事件層涉及具有邏輯順序約束的飛控事件18 件,主要類型有運動準備、加電設置、斷電設置、運動、抓捕、釋放等,包含對電路的設置、電機的設置、相機的設置、運動的控制等。其中在飛控事件層部分用到的事件對應狀態有10 余種,在動作序列層涉及調度參數和狀態參數,以及狀態空間狀態值的設置改變,參數間存在多約束邏輯關系表達,如圖9 所示。

圖9 實例分層規劃對象模型Fig.9 Instance layered planning object model
模型中包含了大量的調度參數和狀態分支,在人工干預和狀態推理下規劃器進行規劃,圖中示例了部分飛控事件、動作的調度參數分支和狀態分支,如其中的平臺設置飛控事件基于調度參數Pv分為了兩種模式;分支1 控制動作序列中的參數pu決定了控制動作1 或2 的安排;第1 步機械臂運動飛控事件基于運動執行機構選擇大臂運動;斷電飛控事件基于狀態為基座2 對應的控制動作序列中的狀態設置目標的生效,影響了上電切換的狀態分支。
根據當前機械臂起始位置姿態和目標點位置姿態,規劃機械臂大臂和小臂運動路徑總計11 條,其中一條路徑如圖10 所示。

圖10 機械臂運動路徑規劃結果Fig.10 Results of the manipulator motion path planning
規劃器規劃過程約定首個飛控事件起始時間2023-09-08 T08:30:00。規劃得到地面控制動作序列簡要描述見表1,首控制動作時間正確,各飛控事件間的邏輯順序正確,飛控事件8 和飛控事件14 陰影區資源約束正確。各控制動作均在可用區間內,基于調度參數的飛控事件和控制動作選擇有效。基于狀態推理的飛控事件和控制動作分支選擇正確,引起狀態變化的控制動作后狀態設置正確,并參與后續規劃。多約束動作和飛控事件滿足邏輯表達式約定,如飛控事件9,當前可用區間內存在機械臂運動、下一飛控事件時長大于本可用區間剩余時長、機械臂位于安全位置、本可用區間和下一可用區間間隔時間超過20 min。運動控制動作調取有效。地面控制動作序列滿足資源、能源消耗及熱控裕度的限制。規劃驗證結果為通過驗證所限定的條件,可以合理高效地完成本次任務需求。
首先,根據測控資源整理模型,規劃了行為、動作安排的可用區間。完成了任務向子任務的分解,將規劃任務目標和需求分解為月事件層、飛控事件層、動作序列及動作層,構建了分層規劃對象模型作為數據庫存儲復用,若存在新增飛控事件,則針對當次需求對相應飛控事件及動作序列進行設計和增補。同時,設定了狀態空間,描述時變的器上狀態變量和狀態值,構建了狀態空間推理模型,通過狀態參數的自動傳遞和其他可人工干預的調度參數,規劃器識別處理參數完成了不同的飛控事件、動作序列及動作的調度組合,在模型避免多次更動的情況下,具備了適用于多場景、多分支的規劃能力。
其次,模型中設計了邏輯順序約束、飛控資源占用等多約束條件以及多狀態聯合約束表達式,規劃器識別各類約束并按照約束優先級進行處理規劃。
再次,對模型中的運動事件進行了歸一化設計,對運動路徑進行了統一管理。建立了規劃驗證模型,對規劃結果的正確性進行了復核校對。
最后,規劃器基于執行腳本按階段展開了規劃,在時間的調度和可用區間內,通過狀態推理和地面工程師的干預選項,完成多分支、多變化狀態下的航天器地面控制動作序列的編排及驗證,完成航天器的任務規劃,且規劃器對缺省參數的設置和識別,實現了基于所建模型最高頻率場景下的一鍵式操控模式,實現了任務目標。
通過機械臂在軌任務實施結果表明,該方法增加了器上行為安排的靈活性,有效地提升了地面控制動作序列集成的自動化和效率,優化了遙操作任務規劃模式,對后面持續的、復雜多變的遙操作任務規劃工作均具有較高的實際工程應用價值。
任務規劃技術是保證航天器安全、高效地開展工作的基礎和關鍵,國內外對此開展了大量研究。結合未來遙操作任務要求和發展趨勢,還有很多可以探索并深入研究的方面:
1)當前分層規劃對象模型月事件層的飛控事件及其邏輯關系多由地面工程師給出建議,后續考慮由狀態驅動來實現飛控事件的自動安排。
2)當前的規劃求解基于整理獲得的可用區間,在獲取規劃結果后,并沒有因為器上行為導致的可用區間的改變對規劃器進行反饋,后續考慮對規劃器進行反饋,并根據調整后的狀態重新整理可用區間,并在此基礎上實施重規劃,直至輸出符合各限制邏輯的規劃結果。
3)當前分層規劃對象模型基于工作內容設計相應的飛控事件,在規劃求解過程中將飛控事件放在條件適配的可用區間中,飛控事件與資源深度綁定,當某些飛控事件無法完全安排進適配的可用區間時,會造成飛控事件的無條件向后平移安排,影響后續飛控事件實施邏輯或大幅推遲當日工作進度。后續考慮在分層規劃對象模型中增加虛擬分割標識,規劃器識別該類標識,并根據可用區間和飛控事件時長在需進行分割時按照適合的邏輯進行處理。
4)當前規劃模式下,飛控事件、動作序列及邏輯關系更大程度上取決于地面工程師的領域經驗和對復雜模型的構建,相比于智能規劃系統還有差距,后續可以將任務需求、任務目標和算法更好地交互和結合,提高智能規劃水平。
5)現階段運動規劃和飛控事件規劃是分開進行的,通過運動飛控事件調用的動作序列中的特殊標識調度運動規劃的結果,然而運動規劃和飛控事件規劃是相互耦合且相互影響的,兩者協同規劃,或者通過運動規劃引導飛控事件規劃都是可以研究的方向。