本發明涉及機器人控制技術領域,特別是一種攀爬機器人的移動控制系統。
背景技術:
近年來,智能機器人發展異常迅猛,典型的包括攀爬機器人、輪式機器人和旋翼式無人機,其中輪式機器人和旋翼式無人機的控制系統發展也日趨成熟,目前已經廣泛地應用于工農業生產過程和居民生活;而相對地,攀爬機器人目前則還處在發展階段。攀爬機器人從吸附原理主要分為生物粘附式、手爪式、電磁吸附式,從移動機構主要分為足式、輪式;其中足式攀爬機器人主要用于檢測空間桁架結構,比如電力桿塔、鐵橋、腳手架、信號塔等,其攀爬環境主要是桿件組成的三維空間桁架。攀爬機器人隨著自由度的增加,并發度成倍增長,控制邏輯的復雜度也成指數級增長,這就使得控制系統潛在的相互協調、相互制約機制較多,控制耦合度較高。
一般足式攀爬機器人需要開發專用控制系統,控制系統在運行過程中不可避免發生故障,然而目前的控制系統在發生故障后,比如運算溢出、控制系統故障、機器人斷電,攀爬機器人通常需要在消除故障后重新從頭開始運行,難以從某個時刻點完整準確地繼承前期工作,費時費力。
技術實現要素:
本發明需要解決的技術問題是提供一種應用于攀爬機器人移動控制系統的恢復方法,能夠在故障消除后,恢復故障發生前攀爬機器人的狀態和數據,并使機器人繼承故障前的工作狀態繼續工作。
為解決上述技術問題,本發明所采取的技術方案如下。
攀爬機器人移動控制系統恢復方法,具體包括以下步驟:
A.以事務為單位表示攀爬機器人移動過程中一個關節機械的動作序列,按照時間順序記錄事務及相關信息日志;
B.判斷故障類別,如為事務故障,采用步驟C進行系統恢復;如為控制系統故障,采用步驟D進行系統恢復;
C.搜索日志,調取故障發生時刻日志中記錄的事務,強行撤銷該事務已經完成的機械動作序列;
D.搜索日志,根據故障發生時刻事務的完成情況,對于已經完成的事務進行重做,對于未完成的事務進行強制撤銷。
上述攀爬機器人移動控制系統恢復方法,步驟C具體包括以下步驟:
C1.從日志的結尾處反向掃描日志文件,查找故障發生時刻事務的機械動作;
C2.對該事務的機械動作執行逆操作;
C3.繼續反向掃描日志,查找該事務的其他機械動作,并做同樣處理;
C4.重復步驟C3,直至讀取該事務的開始標記,事務故障恢復結束。
上述攀爬機器人移動控制系統恢復方法,步驟D具體包括以下步驟:
D1.設置事務隊列,事務隊列包括已完成隊列、正執行隊列、撤銷隊列、重做隊列;
D2.從頭開始掃描日志,找出在故障發生前已經完成的事務,把這些事務ID歸入重做隊列;同時,找出故障發生時尚未完成的事務,把這些事務ID歸入撤銷隊列;
D3.對撤銷隊列中的事務進行強制撤銷處理,具體方法是反向掃描日志文件,對每個撤銷事務的機械動作執行逆操作;
D4.對重做隊列中的事務進行重做處理,具體方法是正向掃描日志文件,對每個重做事務重新執行日志中記錄的機械動作。
上述攀爬機器人移動控制系統恢復方法,步驟A中在進行日志記錄的同時,增加穩定點記錄以及記錄各個穩定點在日志文件中地址的索引文件,并在登錄日志文件期間動態地維護日志。
上述攀爬機器人移動控制系統恢復方法,所述穩定點記錄的內容包括:穩定點建立時刻所有正在執行的事務隊列,上述事務最近一個日志記錄的地址以及攀爬機器人在穩定點建立時刻的位置信息和方向信息。
上述攀爬機器人移動控制系統恢復方法,所述動態地維護日志是在攀爬機器人攀爬足具有穩定特性時,建立穩定點,保存攀爬機器人的位置信息和方向信息,具體包括以下步驟:
a.把日志緩沖區中所有的現有日志記錄寫入磁盤的日志文件上;
b.在日志文件中寫入一個穩定點記錄;
c.把當前緩沖區的所有關節機械動作序列執行完畢;
d.把穩定點記錄在日志文件中的地址記入索引文件中。
上述攀爬機器人移動控制系統恢復方法,利用穩定點進行系統恢復的具體步驟為:
首先,從索引文件中找到最近一個穩定點記錄在日志文件中的地址,由該地址在日志文件中找到最近一個穩定點記錄,讀取攀爬機器人的位置信息和方向信息,據此對攀爬機器人進行復位;
其次,由上述穩定點記錄得到穩定點建立時所有正執行的事務隊列,同時把正執行隊列暫時放入撤銷隊列,并置空重做隊列;
再次,從穩定點開始正向掃描日志文件,直到日志文件結束;
最后,對撤銷隊列中的每個事務執行撤銷操作,對重做隊列中的每個事務執行重做操作。
由于采用了以上技術方案,本發明所取得技術進步如下。
本發明利用冗余數據使攀爬機器人移動控制系統在故障解除后自動恢復故障前的狀態,并使機器人繼承故障前的工作狀態繼續工作,原理簡單,容易實施,穩定性強;本發明還在日志的基礎上建立攀爬機器人的穩定點和日志的索引文件,加快了檢索速度,提高了系統的恢復速度。
附圖說明
圖1為本發明的原理圖;
圖2為本發明中具有穩定點的日志和索引文件示意圖;
圖3為本發明中利用穩定點的恢復策略;
圖4為本發明中的鏡像技術原理。
具體實施方式
下面將結合附圖和具體實施例對本發明進行進一步詳細說明。
一種攀爬機器人移動控制系統恢復方法,其原理如圖1所示,具體為:機器人控制系統中不正確的數據和機械動作導致的故障可以根據存儲在系統其它地方的冗余數據來重建,這些冗余數據通常在每次關節機械動作前存儲在專門創建的日志中,并通過穩定點為日志建立索引文件,加快檢索速度;針對硬件問題導致的故障,可以通過在地面工作站的鏡像數據和計算環境恢復。具體包括以下步驟。
A.以事務為單位表示攀爬機器人移動過程中一個關節機械的動作序列,按照時間順序記錄事務及相關信息日志。
本發明中提出的事務具有三個特性:原子性、穩定性、中間可撤銷性。
原子性是指攀爬機器人的邏輯工作單位,是一個不可分割的機械動作序列,要么都做要么都不做。
穩定性是指攀爬機器人在事務的開始時刻和結束時刻必須是從一個穩定性狀態到另一個穩定性狀態。如果控制系統在運行中發生故障,有些事務還未完成就被強制中斷,這時攀爬機器人就不處于一個不穩定狀態。例如四足攀爬機器人的左前足和右后足都還未落地,因掉電停止,機器人就處于一種不穩定狀態。
中間可撤銷性是指事務在運行中如發生故障或者系統錯誤,可以撤回本事務已經完成的部分機械動作,回到原來的穩定性狀態。例如,攀爬機器人移動中發現障礙物超過關節的極限跨越能力,可以撤回已完成的機械動作,回到穩定性狀態后重新計算。
本發明以日志技術為核心,日志是用來記錄攀爬機器人機械動作的文件。
日志有機械動作型、坐標型、復合型三種格式。
機械動作型日志按照時間順序記錄每一步的機械動作,其內容如表1所示。
表1
坐標型日志按照時間順序記錄每一步移動前后的坐標,其內容如表2所示。
表2
復合型日志按照時間順序記錄每一步的機械動作和移動前后的坐標,綜合記錄機械動作和移動前后坐標信息,其內容如表3所示。
表3
為了保證所有事務都是可以恢復的,登記日志時必須遵循以下兩條原則:1)日志登記的次序嚴格按事務執行的時間次序;2)必須先在日志中登記,然后執行事務。防止在日志登記與事務之間發生系統故障,導致日志不完整。
B.判斷故障類別,如為事務故障,采用步驟C進行系統恢復;如為控制系統故障,采用步驟D進行系統恢復。
本發明在設置過程中,將攀爬機器人移動中的故障分為兩類,事務故障和系統故障。
事務故障是指單個事務發生故障(運算溢出、突然出現的障礙物等),無法運行到預期的終點,攀爬機器人處于一種不穩定的狀態。
系統故障是指造成攀爬機器人停止運轉的任何事件,必須重新啟動,比如運算部件故障、系統掉電,這種故障影響正在運行的所有事務,迫使它們非正常終止,導致攀爬機器人處于一種不穩定的狀態。
C.事務故障的恢復方法是:搜索日志,調取故障發生時刻日志中記錄的事務,在不影響其他事務運行的情況下,強行撤銷該事務已完成的部分機械動作,這是由系統自動完成的,用戶不用任何操作。具體包括以下步驟。
C1.從日志的結尾處反向掃描日志文件,查找故障發生時刻事務的機械動作。
C2.對該事務的機械動作執行逆操作;如前進動作的逆操作是后退,左轉的逆操作是右轉。
C3.繼續反向掃描日志,查找該事務的其他機械動作,并做同樣處理。
C4.重復步驟C3,直至讀取該事務的開始標記,事務故障恢復結束。
D.系統故障的恢復是在系統重啟時自動完成的,不需要用戶任何操作。系統故障導致攀爬機器人不穩定主要有兩方面的因素,一是已完成的事務因為故障導致事務的機械動作序列已經作廢了,二是未完成的事務已經執行了部分關節機械動作序列。系統故障的恢復方法是在系統重啟后,需要從數據角度撤銷所有未完成的機械動作,從機械角度重做從某個時刻點開始的已經完成的事務;即搜索日志,根據故障發生時刻事務的完成情況,對于已經完成的事務進行重做,對于未完成的事務進行強制撤銷。具體包括以下步驟。
D1.設置事務隊列,事務隊列包括已完成隊列、正執行隊列、撤銷隊列、重做隊列。其中,已完成隊列是指機械動作序列已經全部完成的事務隊列;正執行隊列是指機械動作序列正在執行的事務隊列;撤銷隊列是指機械動作序列計劃撤銷的事務隊列;重做隊列是指機械動作序列計劃重做的事務隊列。
D2.從頭開始掃描日志,找出在故障發生前已經完成的事務,把這些事務ID歸入重做隊列;同時,找出故障發生時尚未完成的事務,把這些事務ID歸入撤銷隊列。
D3.對撤銷隊列中的事務進行強制撤銷處理,具體方法是反向掃描日志文件,對每個撤銷事務的機械動作執行逆操作。
D4.對重做隊列中的事務進行重做處理,具體方法是正向掃描日志文件,對每個重做事務重新執行日志中記錄的機械動作。
本發明在利用日志進行控制系統恢復時,必須搜索整個日志,以確定哪些事務需要重做,哪些事務需要強制撤銷。恢復過程存在兩個問題,一是搜索整個日志將耗費大量的時間,二是重做隊列的處理需要重新執行機械動作序列,浪費了大量時間。為了解決上述兩個問題,本發明進一步提出了具有穩定點的恢復方法,即在進行日志記錄的同時,增加穩定點記錄以及記錄各個穩定點在日志文件中地址的索引文件,并在登錄日志文件期間動態地維護日志。
上述穩定點記錄的內容包括:穩定點建立時刻所有正在執行的事務隊列,上述事務最近一個日志記錄的地址以及攀爬機器人在穩定點建立時刻的位置信息和方向信息。
索引文件用來記錄各個穩定點記錄在日志文件中的地址,圖2描述了建立穩定點Si時對應的日志和索引文件。
動態地維護日志是在攀爬機器人攀爬足具有穩定特性時,建立穩定點,保存攀爬機器人的位置信息和方向信息,具體包括以下步驟。
a.把日志緩沖區中所有的現有日志記錄寫入磁盤的日志文件上。
b.在日志文件中寫入一個穩定點記錄。
c.把當前緩沖區的所有關節機械動作序列執行完畢。
d.把穩定點記錄在日志文件中的地址記入索引文件中。
使用穩定點方法可以大幅改善恢復效率,主要體現在以下兩點:首先,是當事務T在一個穩定點之前已經完成所有的關節機械動作序列,在進行恢復處理時,首先把攀爬機器人按最近一個穩定點的位置和方向放置,就沒有必要對事務T執行重做;其次,是通過索引文件、日志中的穩定點記錄能很快找到事務對應的日志記錄地址,不必從頭開始掃描日志文件。
控制系統出現故障時,攀爬機器人恢復方法根據事務完成的不同狀態采取不同的恢復策略,事務完成的不同狀態如圖3所示:T1事務在穩定點之前已經完成所有關節機械動作序列;T2事務在穩定點之前開始執行關節機械動作序列,在穩定點和故障點之間全部完成;T3事務在穩定點之前開始執行關節機械動作序列,在故障點時還未全部完成;T4事務在穩定點之后開始執行關節機械動作序列,在故障點之前已經全部完成;T5事務在穩定點之后開始執行關節機械動作序列,在故障點時還未全部完成。
T1事務在穩定點之前已經全部完成,所以不必執行重做操作;T2事務和T4事務在穩定點之后才全部完成,它們的關節機械動作序列在故障發生時已經全部執行完畢,需要重做;T3事務和T5事務的關節機械動作序列在故障發生時還未執行完畢,所以從日志文件強制撤銷。
在本發明中,利用上述穩定點進行系統恢復的具體步驟如下。
首先,從索引文件中找到最近一個穩定點記錄在日志文件中的地址,由該地址在日志文件中找到最近一個穩定點記錄,讀取攀爬機器人的位置信息和方向信息,據此對攀爬機器人進行復位。
其次,由上述穩定點記錄得到穩定點建立時所有正執行的事務隊列,同時把正執行隊列暫時放入撤銷隊列,并置空重做隊列。
再次,從穩定點開始正向掃描日志文件,直到日志文件結束。如有新開始的事務Ti,把Ti暫時放入撤銷隊列中;如有完成的事務Tj,把Tj從撤銷隊列移到重做隊列。
最后,對撤銷隊列中的每個事務執行撤銷操作,對重做隊列中的每個事務執行重做操作。
在本發明中,本發明除上述事務故障和系統故障外,還可能在移動過程中發生掉落、碰撞等情況,所攜帶的存儲設備和運算設備存在接觸不良、損壞等情況。控制系統出現這種故障后,再現故障前一刻的信息很困難,系統恢復起來也比較費時。在比較嚴酷或者不穩定的環境中,可以采用鏡像技術來幫助系統恢復。具體地說,如圖4所示,在地面工作站內布置一個和攀爬機器人本體攜帶的同樣規模大小的存儲環境和計算環境,數傳設備時刻保持地面工作站和攀爬機器人本體的存儲數據一致,地面工作站的數據是攀爬機器人本體數據的鏡像。一旦出現故障后,可立即啟用地面工作站的鏡像數據和計算環境,繼續控制攀爬機器人完成剩下的工作。在故障修復后,可以通過鏡像數據恢復攀爬機器人控制系統,解決了系統的硬件故障難恢復問題,提升了方法在面對嚴酷或者不穩定環境的適應性。
但無論攀爬機器人自身存儲的數據,還是地面工作站記錄存儲的數據,都是采用以事務為單位記錄日志并結合對日志建立穩定點和索引文件的方式進行存儲,此種方式邏輯簡單清楚、穩定性強、可行度高、可操作性強,大大提高了攀爬機器人移動控制系統的自動恢復能力。