所屬的技術人員能夠理解,本公開的各個方面可以實現為系統、方法或程序產品。因此,本公開的各個方面可以具體實現為以下形式,即:完全的硬件實施例、完全的軟件實施例(包括固件、微代碼等),或硬件和軟件方面結合的實施例,這里可以統稱為“電路”、“模塊”或“系統”。下面參照圖7來描述根據本公開的這種實施例的電子設備700。圖7所示的電子設備700僅僅是一個示例,不應對本公開實施例的功能和使用范圍帶來任何限制。如圖7所示,電子設備700以通用計算設備的形式表現。電子設備700的組件可以包括但不限于:上述至少一個處理單元710、上述至少一個存儲單元720、連接不同系統組件(包括存儲單元720和處理單元710)的總線730、顯示單元740。其中,存儲單元存儲有程序代碼,程序代碼可以被處理單元710執行,使得處理單元710執行本說明書上述“示例性方法”部分中描述的根據本公開各種示例性實施例的步驟。例如,處理單元710可以執行如圖1中所示的步驟s110,利用多元環境下的異構數據集對感知模型進行訓練,感知模型的輸入為當前觀測圖像和姿態變化,輸出為預測獎勵;步驟s120,利用當前機器人收集的運動數據集對動力學模型進行訓練,同時通過自我監督策略對運動數據中的特定事件進行標注,動力學模型的輸入為機器人當前狀態和未來動作,輸出為預測姿態變化;步驟s130,對動力學模型和感知模型進行組合,得到分層集成模型;步驟s140,基于對機器人的移動期望設定獎勵函數,并以最大化獎勵函數為目標,利用分層集成模型對機器人的移動路徑進行規劃。存儲單元720可以包括易失性存儲單元形式的可讀介質,例如隨機存取存儲單元(ram)721和/或高速緩存存儲單元722,還可以進一步包括只讀存儲單元(rom)723。存儲單元720還可以包括具有一組(至少一個)程序模塊725的程序/實用工具724,這樣的程序模塊725包括但不限于:操作系統、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。總線730可以為表示幾類總線結構中的一種或多種,包括存儲單元總線或者存儲單元控制器、外圍總線、圖形加速端口、處理單元或者使用多種總線結構中的任意總線結構的局域總線。電子設備700也可以與一個或多個外部設備770(例如鍵盤、指向設備、藍牙設備等)通信,還可與一個或者多個使得用戶能與該電子設備700交互的設備通信,和/或與使得該電子設備700能與一個或多個其它計算設備進行通信的任何設備(例如路由器、調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口750進行。并且,電子設備700還可以通過網絡適配器760與一個或者多個網絡(例如局域網(lan),廣域網(wan)和/或公共網絡,例如因特網)通信。如圖所示,網絡適配器760通過總線730與電子設備700的其他模塊通信。應當明白,盡管圖中未示出,可以結合電子設備700使用其他硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統、磁帶驅動器以及數據備份存儲系統等。通過以上的實施例的描述,本領域的技術人員易于理解,這里描述的示例實施例可以通過軟件實現,也可以通過軟件結合必要的硬件的方式來實現。因此,根據本公開實施例的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是cd-rom,u盤,移動硬盤等)中或網絡上,包括若干指令以使得一臺計算設備(可以是個人計算機、服務器、終端裝置,或者網絡設備等)執行根據本公開實施例的方法。在本公開的示例性實施例中,還提供了一種計算機可讀存儲介質,其上存儲有能夠實現本說明書上述方法的程序產品。在一些可能的實施例中,本公開的各個方面還可以實現為一種程序產品的形式,其包括程序代碼,當程序產品在終端設備上運行時,程序代碼用于使終端設備執行本說明書上述“示例性方法”部分中描述的根據本公開各種示例性實施例的步驟。參考圖8所示,描述了根據本公開的實施例的用于實現上述基于分層集成模型的機器人導航方法的程序產品800,其可以采用便攜式緊湊盤只讀存儲器(cd-rom)并包括程序代碼,并可以在終端設備,例如個人電腦上運行。然而,本公開的程序產品不限于此,在本文件中,可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。程序產品可以采用一個或多個可讀介質的任意組合。可讀介質可以是可讀信號介質或者可讀存儲介質。可讀存儲介質例如可以為但不限于電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。計算機可讀信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了可讀程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。可讀信號介質還可以是可讀存儲介質以外的任何可讀介質,該可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于無線、有線、光纜、電磁波等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用于執行本公開操作的程序代碼,程序設計語言包括面向對象的程序設計語言—諸如java、c++等,還包括常規的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算設備上執行、部分地在用戶設備上執行、作為一個獨立的軟件包執行、部分在用戶計算設備上部分在遠程計算設備上執行、或者完全在遠程計算設備或服務器上執行。在涉及遠程計算設備的情形中,遠程計算設備可以通過任意種類的網絡,包括局域網(lan)或廣域網(wan),連接到用戶計算設備,或者,可以連接到外部計算設備(例如利用因特網服務提供商來通過因特網連接)。此外,上述附圖僅是根據本公開示例性實施例的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時間順序。另外,也易于理解,這些處理可以是例如在多個模塊中同步或異步執行的。通過以上的實施例的描述,本領域的技術人員易于理解,這里描述的示例實施例可以通過軟件實現,也可以通過軟件結合必要的硬件的方式來實現。因此,根據本公開實施例的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是cd-rom,u盤,移動硬盤等)中或網絡上,包括若干指令以使得一臺計算設備(可以是個人計算機、服務器、觸控終端、或者網絡設備等)執行根據本公開實施例的方法。本領域技術人員在考慮說明書及實踐這里公開的發明后,將容易想到本公開的其它實施例。本技術旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由權利要求指出。應當理解的是,本公開并不局限于上面已經描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。
背景技術:
1、目前,機器學習技術已成為推動移動機器人適應復雜環境并自主學習的關鍵,尤其是深度強化學習的應用,使移動機器人的導航能力進一步提升。
2、相關技術中,在對移動機器人進行模型訓練時,由于不同平臺的數據具有不同的物理能力和操作空間,不能直接使用,因此通常利用單個移動機器人收集的數據進行模型訓練,移動機器人難以在多種環境下均表現出良好的適應性和泛化能力。此外,部分相關技術中,利用移動機器人構建地圖并確定移動機器人在地圖中的定位,然后使用地圖來對移動機器人的移動路徑進行規劃,其難以應對復雜的自然或戶外環境,如在戶外場景中無法分辨障礙物是否可以穿過等。因此,對移動機器人導航的準確性和適應性仍存在一定的提升空間。
3、需要說明的是,在上述背景技術部分公開的信息僅用于加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
技術實現思路
1、本公開實施例的目的在于提供一種基于分層集成模型的機器人導航方法、基于分層集成模型的機器人導航裝置、電子設備及計算機可讀存儲介質,進而至少在一定程度上提升移動機器人在導航過程的準確性和適應性。
2、本公開的其他特性和優點將通過下面的詳細描述變得顯然,或部分地通過本公開的實踐而習得。
3、根據本公開實施例的第一方面,提供了一種基于分層集成模型的機器人導航方法,包括:利用多元環境下的異構數據集對感知模型進行訓練,所述感知模型的輸入為當前觀測圖像和姿態變化,輸出為預測獎勵;利用當前機器人收集的運動數據集對動力學模型進行訓練,同時通過自我監督策略對所述運動數據中的特定事件進行標注,所述動力學模型的輸入為機器人當前狀態和未來動作,輸出為預測姿態變化;對所述動力學模型和所述感知模型進行組合,得到分層集成模型;基于對機器人的移動期望設定獎勵函數,并以最大化獎勵函數為目標,利用所述分層集成模型對機器人的移動路徑進行規劃。
4、在本公開的一些示例實施例中,基于前述方案,所述利用多元環境下的異構數據集對感知模型進行訓練,包括:利用多個機器人在多種環境下收集的圖像數據和姿態數據構建所述異構數據集,所述姿態數據包括機器人的位置坐標和偏航角;基于所述預測獎勵和真實獎勵的殘差平方和構建感知損失函數,利用所述異構數據集,以最小化所述感知損失函數為目標對所述感知損失函數進行訓練。
5、在本公開的一些示例實施例中,基于前述方案,所述利用當前機器人收集的運動數據集對動力學模型進行訓練,包括:基于所述當前機器人在當前環境的移動過程中收集的運動數據,構建運動數據集;基于所述預測姿態變化和真實姿態變化的殘差平方和構建動力學損失函數,利用所述運動數據集,以最小化所述動力學損失函數為目標對所述動力學模型進行訓練。
6、在本公開的一些示例實施例中,基于前述方案,所述通過自我監督策略對所述運動數據中的特定事件進行標注,包括:獲取所述當前機器人移動過程中的多種傳感器數據;基于預設的時間步長,對所述傳感器數據進行數據分析,確定所述當前機器人處于碰撞、顛簸或位置變化中的一種或多種情況下的特定事件;對所述運動數據集中的所述特定事件進行標注。
7、在本公開的一些示例實施例中,基于前述方案,所述對所述動力學模型和所述感知模型進行組合,得到分層集成模型,包括:將所述動力學模型的輸出作為所述感知模型的輸入,對所述動力學模型和所述感知模型進行組合,得到由長短期記憶網絡構成的分層集成模型;
8、根據:
9、
10、構建分層集成損失函數;其中,l(θ,d)表示所述分層集成損失函數,ot表示當前觀測圖像,st表示當前狀態,at:t+h表示未來動作,ln表示第n個損失函數,表示分層集成模型預測值,表示實際值;利用所述運動數據集,以最小化所述分層集成損失函數為目標對所述分層集成模型進行訓練。
11、在本公開的一些示例實施例中,基于前述方案,所述基于對機器人的移動期望設定獎勵函數,包括:將機器人在避免碰撞且在復雜地形上行駛的同時,能夠朝特定目標移動作為所述移動期望,并基于所述移動期望設定獎勵函數。
12、在本公開的一些示例實施例中,基于前述方案,所述以最大化獎勵函數為目標,利用所述分層集成模型對機器人的移動路徑進行規劃,包括:通過所述分層集成模型對機器人的未來動作進行預測,得到多組動作序列;從所述多組動作序列中,選擇使所述獎勵函數的值最大的目標動作序列;基于所述目標動作序列對所述機器人的移動路徑進行規劃。
13、根據本公開實施例的第二方面,提供了一種基于分層集成模型的機器人導航裝置,該裝置包括:感知模型訓練單元,可以用于利用多元環境下的異構數據集對感知模型進行訓練,所述感知模型的輸入為當前觀測圖像和姿態變化,輸出為預測獎勵;動力學模型訓練單元,可以用于利用當前機器人收集的運動數據集對動力學模型進行訓練,同時通過自我監督策略對所述運動數據中的特定事件進行標注,所述動力學模型的輸入為機器人當前狀態和未來動作,輸出為預測姿態變化;分層級層模型構建模塊,可以用于對所述動力學模型和所述感知模型進行組合,得到分層集成模型;路徑規劃模塊,可以用于基于對機器人的移動期望設定獎勵函數,并以最大化獎勵函數為目標,利用所述分層集成模型對機器人的移動路徑進行規劃。
14、根據本公開實施例的第三方面,提供了一種電子設備,包括:處理器;以及存儲器,所述存儲器上存儲有計算機可讀指令,所述計算機可讀指令被所述處理器執行時實現上述所述的基于分層集成模型的機器人導航方法。
15、根據本公開實施例的第四方面,提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現根據上述所述的基于分層集成模型的機器人導航方法。
16、本公開實施例提供的技術方案可以包括以下有益效果:
17、本公開示例實施例中基于分層集成模型的機器人導航方法,一方面,利用多元環境下的異構數據集對感知模型進行訓練,使訓練出的感知模型能夠更加全面地理解環境,從而在復雜條件下做出準確響應,提升了機器人導航的適應性;而且,通過機器人在移動過程中收集的實時數據,自動識別并標記出如碰撞、顛簸等特定事件,利用自我監督策略使機器人在無須人工干預的條件下,能夠學習并適應特定環境中的特定事件,提升了機器人導航的準確性;此外,結合感知模型和動力學模型構建分層集成模型,該模型不僅能夠預測未來事件,還能考慮到機器人的運動學約束,提升了模型的綜合判斷力;另一方面,設定獎勵函數來激勵機器人探索最優路徑,利用分層集成模型預測未來事件和獎勵,優化每一步動作,使得機器人在執行任務時能夠主動規避不利因素,尋求最高效且安全的路徑。
18、應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本公開。