本發(fā)明涉及基于強化學(xué)習(xí)的四足機器人運動控制領(lǐng)域,具體涉及一種基于顯式預(yù)測反饋的四足機器人容錯控制方法。
背景技術(shù):
1、隨著四足機器人硬件能力和智能化水平的不斷提升,四足機器人在復(fù)雜環(huán)境執(zhí)行各種任務(wù)時表現(xiàn)出高度的靈活性和多功能性,在搜救和巡邏等現(xiàn)實任務(wù)場景具有廣闊的應(yīng)用場景。然而,四足機器人常常會被部署到非結(jié)構(gòu)化的復(fù)雜環(huán)境中,因而事故隨時可能發(fā)生,從而導(dǎo)致四足機器人關(guān)鍵硬件受損。這些故障可能會導(dǎo)致四足機器人喪失運動功能,從而無法完成任務(wù)。
2、傳統(tǒng)控制方法在面對四足機器人硬件故障下的容錯控制問題,尤其是關(guān)節(jié)故障情況下的容錯控制問題時,需要在多種可能的故障關(guān)節(jié)與故障情形下對機器人進行運動學(xué)建模,設(shè)計或通過最優(yōu)化方法提前求解出對應(yīng)情形下的運動控制策略。傳統(tǒng)控制方法在實際部署過程中,四足機器人需要在運行過程中始終進行故障自檢測。當(dāng)檢出關(guān)節(jié)故障時,通過傳感器數(shù)據(jù)提取故障特征,判斷故障關(guān)節(jié)與故障情形,再將四足機器人切換到對應(yīng)的容錯控制策略。這樣的方法不僅結(jié)構(gòu)復(fù)雜、流程繁瑣,而且實際部署效果較差。
3、強化學(xué)習(xí)作為一種基于數(shù)據(jù)驅(qū)動的新型控制方法,使用神經(jīng)網(wǎng)絡(luò)對被控對象與控制器進行建模訓(xùn)練,省去了對被控對象和控制器的復(fù)雜建模與設(shè)計工作,能夠得到適應(yīng)性強、穩(wěn)定性高的閉環(huán)神經(jīng)網(wǎng)絡(luò)控制器,是當(dāng)前腿足機器人運動控制領(lǐng)域的熱門方法。在《saving?the?limping:fault-tolerant?quadruped?locomotion?via?reinforcementlearning》和《learning?quadrupedal?locomotion?with?impaired?joints?using?randomjoint?masking》中,liu等人與kim等人就基于教師-學(xué)生雙階段強化學(xué)習(xí)訓(xùn)練范式,利用自編碼器對外部環(huán)境信息與關(guān)節(jié)故障信息進行自動編碼,使得控制策略擺脫了傳統(tǒng)方法中的故障特征識別部分,實現(xiàn)了容錯控制策略的自動生成。但是,在教師-學(xué)生結(jié)構(gòu)訓(xùn)練范式中,通過一個自編碼出的隱向量來反應(yīng)環(huán)境變化與機器人運動模型的改變。這樣的表示使得教師-學(xué)生結(jié)構(gòu)訓(xùn)練范式在不同訓(xùn)練網(wǎng)絡(luò)中不具有遷移性,同時也缺乏可解釋性。
4、在研究領(lǐng)域之外,近期也有許多人基于強化學(xué)習(xí)實現(xiàn)四足機器人關(guān)節(jié)故障下的容錯控制。艾青林等人(公開號:cn117518821a)通過電機模型網(wǎng)絡(luò)預(yù)測關(guān)節(jié)值,與實際機器人關(guān)節(jié)扭矩值對比提取關(guān)節(jié)電機故障特征;根據(jù)故障類型設(shè)計四足機器人故障機制,通過信任區(qū)域策略優(yōu)化(trust?region?policy?optimization,trpo)強化學(xué)習(xí)算法進行訓(xùn)練。張偉楠等人(公開號:cn117518821a)提出兩階段的算法,在探索學(xué)習(xí)階段利用先驗信息優(yōu)化探索空間,得到每個子情況的最優(yōu)解,然后策略整合階段將多種故障情況的魯棒性操作整合在單一模型中。上述方法或需要在真實機器人上采集數(shù)據(jù)進行訓(xùn)練,缺乏策略在不同機器人間直接遷移的泛化性;或需要使用多階段訓(xùn)練范式,使得訓(xùn)練階段數(shù)據(jù)利用率低。
5、此外,在《multi-task?learning?of?active?fault-tolerant?controller?forleg?failures?in?quadruped?robots》中,hou等人使用分層強化學(xué)習(xí)的結(jié)構(gòu),使用狀態(tài)判別器在正常關(guān)節(jié)、關(guān)節(jié)失效、關(guān)節(jié)鎖定三種運動策略中實時選擇最適合的策略;在《meta-learning?for?fast?adaptive?locomotion?with?uncertainties?in?environments?androbot?dynamics》中,anne等人使用元強化學(xué)習(xí),通過訓(xùn)練一套能快速迭代到多種關(guān)節(jié)故障下運動策略的原始策略參數(shù),可以實現(xiàn)部署過程中實時學(xué)習(xí)運動策略,適應(yīng)關(guān)節(jié)損傷。然而,這些方法也沒有能完全解決上述問題。
6、綜上,目前四足機器人關(guān)節(jié)故障容錯控制方法多樣,有很多方法也取得了較好的成效,也有許多方法基于強化學(xué)習(xí)進行實現(xiàn)。但這些方法都沒有能實現(xiàn)一個端到端的單階段訓(xùn)練容錯控制策略,四足機器人仍需要一個具有可遷移性、可解釋性的動態(tài)自適應(yīng)容錯控制方法。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有方法無法獲取一種有可解釋性、可遷移性的蘊含機器人運動模型信息的表示,進而無法獲得一個可遷移的機器人容錯控制模型的問題;本發(fā)明提出了一種基于顯式預(yù)測反饋的四足機器人容錯控制方法,尤其針對關(guān)節(jié)失效情況下的四足機器人容錯控制算法。
2、本發(fā)明通過以下技術(shù)方案來實現(xiàn):
3、一種基于顯式預(yù)測反饋的四足機器人容錯控制方法,包括以下步驟:
4、s1、搭建強化學(xué)習(xí)仿真訓(xùn)練環(huán)境,在仿真訓(xùn)練環(huán)境中搭建訓(xùn)練地形,并設(shè)計符合單關(guān)節(jié)失效任務(wù)的獎勵函數(shù);
5、s2、設(shè)計單關(guān)節(jié)零力矩?fù)p失訓(xùn)練課程,在獎勵函數(shù)中增加速度跟蹤項,通過引入力矩蒙版矩陣與pd控制器輸出的原力矩矩陣進行點乘,動態(tài)模擬關(guān)節(jié)故障;利用隨機整數(shù)向量和獨熱編碼生成隨機標(biāo)識矩陣,用于在訓(xùn)練過程中隨機選擇故障關(guān)節(jié);在每次訓(xùn)練迭代中,根據(jù)速度跟蹤獎勵的反饋動態(tài)調(diào)整力矩蒙版矩陣;
6、s3、搭建基于顯式預(yù)測反饋的運動網(wǎng)絡(luò)結(jié)構(gòu),通過擴展運動網(wǎng)絡(luò)的輸入維數(shù),使得四足機器人能從輸入數(shù)據(jù)中提升對運動模型變化的感知能力;
7、s4、利用步驟s1搭建好的仿真訓(xùn)練環(huán)境和步驟s2設(shè)計的訓(xùn)練課程,基于強化學(xué)習(xí)對步驟s3擴展后的運動網(wǎng)絡(luò)進行訓(xùn)練,將訓(xùn)練好的運動策略部署到四足機器人上。
8、進一步地,所述步驟s1包括:
9、s11、搭建強化學(xué)習(xí)仿真訓(xùn)練環(huán)境,在仿真訓(xùn)練環(huán)境中搭建訓(xùn)練地形,并設(shè)計符合單關(guān)節(jié)失效任務(wù)的獎勵函數(shù);挑選強化學(xué)習(xí)訓(xùn)練算法與參數(shù);
10、s12、針對正常步態(tài)進行訓(xùn)練測試,觀察所配置訓(xùn)練環(huán)境、訓(xùn)練算法與參數(shù)能否正常訓(xùn)練出具有正常運動能力的運動策略,并依據(jù)訓(xùn)練表現(xiàn)調(diào)整算法與參數(shù);
11、s13、損失任一關(guān)節(jié)力矩,再次進行訓(xùn)練,觀察所設(shè)置的獎勵函數(shù)是否能訓(xùn)練出可用的故障運動策略,并根據(jù)表現(xiàn)修改獎勵函數(shù)設(shè)置,使得所配置訓(xùn)練環(huán)境、訓(xùn)練算法與參數(shù)具備訓(xùn)練出故障運動策略的能力。
12、進一步地,所述步驟s2包括:
13、s21、為仿真訓(xùn)練環(huán)境添加目標(biāo)速度指令,并在獎勵函數(shù)構(gòu)成中添加速度跟蹤獎勵項,將速度跟蹤獎勵作為機器人運動能力的判斷依據(jù);
14、s22、在訓(xùn)練準(zhǔn)備階段,初始化一個隨機標(biāo)識矩陣,用于標(biāo)識訓(xùn)練中每一個環(huán)境的關(guān)節(jié)損壞時,所需損壞關(guān)節(jié)對應(yīng)的關(guān)節(jié)序號;
15、s23、初始化一力矩蒙版矩陣,用于記錄當(dāng)前每個關(guān)節(jié)是否需要損失力矩,及需要損失的力矩的比例;
16、s24、訓(xùn)練過程中,每一次軌跡采樣結(jié)束后,計算速度跟蹤項獎勵;若速度跟蹤項平均獎勵拿到最高獎勵的80%以上,認(rèn)為策略具備了正常步態(tài)行走能力,依據(jù)步驟s22中記錄的隨機標(biāo)識矩陣更改步驟s23中的力矩蒙版矩陣,使得達到目標(biāo)的環(huán)境進入故障步態(tài)的訓(xùn)練,同時保證一個環(huán)境至多只有隨機一個關(guān)節(jié)損失力矩。
17、進一步地,所述步驟s3中,顯式預(yù)測反饋網(wǎng)絡(luò)結(jié)構(gòu)通過建立一個顯式估計網(wǎng)絡(luò)預(yù)測未來狀態(tài),從而提取運動模型的信息;將預(yù)測的狀態(tài)與真實狀態(tài)的誤差作為額外的輸入提供給動作網(wǎng)絡(luò),形成反饋結(jié)構(gòu),為動作網(wǎng)絡(luò)添加與運動模型相關(guān)的信息,進而提高運動網(wǎng)絡(luò)能力。
18、進一步地,所述步驟s3包括:
19、s31、建立一個歷史觀測緩存,緩存最近一段時間的狀態(tài),作為提取機器人運動模型相關(guān)信息的來源;
20、s32、取近幾幀觀測數(shù)據(jù)和當(dāng)前動作作為輸入,通過一個顯式估計網(wǎng)絡(luò)得到下一時刻狀態(tài)顯式預(yù)測值,從而得到蘊含運動模型信息的表示;
21、s33、在下一時刻,使用當(dāng)前觀測減去上一時刻預(yù)測觀測得到預(yù)測誤差,再將預(yù)測誤差與歷史觀測共同送入動作網(wǎng)絡(luò)中獲得當(dāng)前時刻動作輸出;
22、s34、使用強化學(xué)習(xí)算法的損失訓(xùn)練動作網(wǎng)絡(luò),使用預(yù)測誤差訓(xùn)練顯式估計網(wǎng)絡(luò)。
23、與現(xiàn)有技術(shù)相比,本發(fā)明的方法具有以下有益效果:(1)本發(fā)明基于顯式預(yù)測反饋的關(guān)節(jié)故障容錯控制方法,可以在任意原有運動模型訓(xùn)練環(huán)境的基礎(chǔ)上,增加單關(guān)節(jié)故障運動技能,而無需建立一個單獨的容錯控制運動模型;(2)方法的訓(xùn)練過程只有一個階段,大幅提高訓(xùn)練階段數(shù)據(jù)利用率,保證控制模型的運動能力不因知識蒸餾操作而弱化;(3)方法在獲取機器人運動模型實時信息時,用神經(jīng)網(wǎng)絡(luò)建立了馬爾可夫決策過程(markovdecision?process,mdp)中的環(huán)境模型,從而可以使用預(yù)測誤差內(nèi)涵機器人實時運動模型的改變信息,有著更高的可解釋性。