任 偉 王志剛 楊 華 張翌盛 陳 銘
1(上海交通大學機械與動力工程學院 上海 200240) 2(英特爾中國研究院 北京 100086)
隨著大容量鋰離子電池技術的成熟,越來越多的汽車制造商采取動力電池作為新能源汽車動力源[1].我國電動汽車的使用壽命一般在5~8年之間,因此,在未來數十年內將有大量的動力電池需要回收[2].中國汽車技術研究中心提供的最新數據顯示:伴隨著退役動力電池量的不斷增加,到2025年國內汽車動力電池累計退役量將高達78萬噸(約116 GWh).動力電池中含有鈷、鎳、銅、鋁、鋰等金屬元素,其電解液中含有多種有機溶劑、鋰鹽等,如果回收處理不當,將會對環境產生很大影響.為了減輕對環境的影響,動力電池的回收也變得越來越重要.目前,動力電池的回收再利用主要在兩大方向進行開展:梯次利用和有價值材料回收再生.但不管是哪一種回收,首先都需要對電池進行拆解.目前,動力電池拆解回收主要采取人工拆解為主,機器輔助拆解的方式[3-4].這種方式不僅低效,而且拆解工作環境惡劣,風險高.為了應對大規模急速增加的拆解任務工作量,減少拆解工作環境對拆解工人的傷害,提高經濟和社會效益,采取機器人自主智能化拆解回收動力電池勢在必行[5].
當下,機器人智能化自主拆解面臨的主要困難是非結構化的拆解環境和多種不確定的條件.汽車制造商為了迎合消費者個性化動力的需求,動力電池包不僅外觀造型各異而且性能配置亦不同,即使是同一品牌同一型號的新能源汽車動力電池包的配置也往往不同[5],導致結構不同、連接約束件不同[6].此外,在非結構化的使用環境中動力電池包存在變形(如圖1所示[7])、污濁、腐蝕等.而且,由于消費者使用的頻次、時長和習慣不同,導致動力電池的健康狀態和剩余壽命不同,廢舊動力電池包拆解廠商無法批量獲得特定批次的動力電池進行拆解.因此,拆解廠商無法像制造廠商一樣,針對同一批次的電池包借助固定結構化的預編程控制機器人進行大規模的拆解回收.

Fig.1 Illustration of the electric vehicle battery pack after collision

Fig.2 Illustration with intelligent disassembly system based on NeuroSymbolic
本文的主要貢獻是把動力電池的智能拆解任務規范為基于神經符號的任務與運動規劃問題,并基于此形成一個感知和控制緊密結合的閉環控制系統.該系統的架構圖如圖2所示,與經典的規劃方法類似,系統用PDDL(planning domain define language)描述每個拆解動作原語,包括每個動作執行的前提條件,以及該動作執行完成后對環境的影響.最佳方案搜索模塊根據當前的狀態和目標狀態,使用邏輯推理的方法自動地設計(搜索)出達到目標的動作規劃(動作原語序列).整個過程具有可解釋性,系統清楚地知道為什么要做某步驟,以及該步驟的前提條件.與經典規劃方法不同的是,我們引入了神經謂詞,利用神經網絡幫助符號系統完成符號接地(symbol grounding)的問題(即,將連續輸入狀態,如機器人位姿或圖像等,映射到規劃器生成所需的符號狀態),使該規劃方法不局限于符號空間,無需人工完成復雜的抽象工作,根據實際物理空間中任務類型自主完成任務規劃,進而控制機器人執行任務.由于神經謂詞的輸出存在誤差,如果簡單粗暴(設定某個閾值)完成映射工作,很容易產生無效的狀態.所以,我們將搜索模塊進行了相應的擴展,使用基于概率邏輯的搜索策略[8-9],將神經網絡中softmax層的輸出與之對接,促使2個模塊能夠密切的協同工作.進一步,利用邏輯系統的可解釋性,我們對系統進行擴展,在執行過程中,機器人根據當前的執行狀態,判斷出執行的結果,從而收集拆解現場的實時數據,并利用這些數據訓練神經謂詞,逐漸地提高系統的識別精度.
我們提出的模型將符號邏輯系統AI 1.0中的推理能力和神經網絡系統AI 2.0中的感知和學習能力融合在一起,該模型系統具備4方面優勢:
1)自主性.系統能夠智能感知環境差別,自主選擇并執行運動原語,實現動力電池連接約束件的自主解除;
2)可擴展性.系統通過添加新的動作原語完成更復雜的任務;
3)可學習性.系統通過引入神經謂詞實現從連續空間狀態到規劃器所需的符號狀態的映射,映射是基于數據進行學習獲得的該映射.這種方法避免了像傳統符號邏輯系統一樣要求專業人員提前定義和抽象符號,而且,使得整個系統可以在工作中通過現場學習(in situ learning)不斷的提高精度;
4)可解釋性.任務規劃采取符號邏輯驅動,它能夠掌握拆解動作執行的原因和結果,因此,人類可以輕松地干預和指導.考慮到系統在可擴展性和可學習性方面的優勢,人類的干預和指導可以進一步促進系統的完善和性能的提高.目前,我們基于該系統實現了在復雜多變的拆解工作環境中動力電池連接約束件的智能拆解,驗證了系統的可行性.
動力電池的智能拆解涉及到拆解策略、機器人規劃和感知等多方面的工作,本節對現有的研究工作進行分析和概括.
拆解策略研究是動力電池拆解領域最早開始的研究,主要目標是在環境影響最小化的約束條件下追求最大的拆解回收利潤,在完全拆解和部分拆解之間設計了一個權衡策略[10].2014—2015年,研究人員設計了拆解工作站針對奧迪Q5電池包展開了深入的研究[11-12].最近的研究工作則是將問題進一步細化,主要根據動力電池的幾何結構,利用遺傳算法、基于矩陣或基于圖論對拆解行為、拆解順序甚至是拆解路徑進行決策和優化[6,13-15].這方面的研究已基本成熟,為高效地拆解動力電池提供了科學的分析和指導.但具體執行環節仍需要人工完成.一些研究嘗試通過結構化的編程控制機器人完成最終的執行,實現自動化拆解[16-18],但是忽略了實際拆解過程中高度動態的拆解環境和電池包的不確定性因素,這樣的方案還無法大規模地推廣應用.
目前在不確定環境下機器人根據感知結果進行自主規劃,是實現智能化拆解的主要障礙.雖然機器人技術日臻成熟,已經廣泛應用于各種工業場景,例如:切割、搬運、螺栓姿態檢測[15]、動力電池抓取[6]等.然而在當下,機器人主要應用于結構化的環境中,人們采用固定編程的方式指導機器人完成任務[6-15],但這種方法卻很難應對動力電池拆解過程中復雜多樣的拆解任務.機器人要替代人類進行智能化拆解必須具備自主規劃拆解任務的能力,例如:移動到目標、靠近目標、貼合目標、移除目標等[19],同時根據操縱目標的類型進行拆解任務和運動規劃.
伴隨著深度學習技術的發展,已有的一些研究工作嘗試通過計算機視覺神經網絡識別物體的類型和位置,根據識別定位信息規劃機器人的運動軌跡[20-21].這類方案嘗試打破傳統結構化環境對機器人開發的約束,理論上能夠有效提高機器人應對復雜環境的能力,但是深度學習技術依賴于海量的標注數據.在實際應用中,一方面在拆解環境中采集動力電池感知信息的條件受限,很難得到足夠多的數據樣本.另一方面,由于拆解過程中電池包及其組件的幾何精度要求非常高(如圖3所示:拆解夾具套筒的中心線和螺栓中心線之間的距離e要小于3 mm,拆解夾具套筒與螺栓的角度差δ在±7.5°范圍內時,拆解夾具套筒才可以正常插入螺栓頭部),很難對獲取的數據進行高精度的標注.2種因素的疊加,使得深度學習模塊的表現差強人意,計算機視覺感知模塊無法長期、穩定、準確地識別出電池連接約束件的類型和位置,致使機器人行為具有隨機性,影響拆解進程.此外,這類方案把感知和規劃分開成2個完全獨立的模塊,而現實中非結構化的拆解環境是高度雜亂的,拆解對象周圍經常出現障礙物導致機器人只能部分觀察到物體,或者即便觀察到了目標物體也無法直接接觸拆解連接目標.這要求機器人使用推動、滑動物體的動作,從周圍的雜物中部分或全部分離出連接約束件,使機器人有足夠的空間進行拆解工作,而不是簡單依靠識別定位,調整拆解器目標位置[22].

Fig.3 The angular relationship between thesocket and the bolt
機器人任務規劃一直是機器人研究中的熱點問題.機器人任務規劃是指在無干涉情況下根據被操縱對象初始狀態和目標狀態,選擇合理的動作和約束條件序列改變機器人和被操縱物體的狀態,實現從初始狀態到目標狀態的轉移[23-24].這類方法大部分都以人工智能為基礎展開任務規劃,先針對不同的任務定義問題,并通過對PDDL[25-27]進行調整和擴展,實現不同的解決方案,例如:在多階段復雜的任務中,采取分層規劃的方法將整體的機器人任務分解成簡單的任務[28-29].為了減少計算的復雜性,利用連續性松弛規劃器減少實時計算的開銷[25-30].此外,一些學者針對不確定情況下運動規劃決策[31],雜亂環境下機器人推離物體任務規劃決策[22],智能機器人操作物體行為實時在線任務規劃和決策[32]等進行了研究.盡管這類研究成果斐然,但它們都有一個共同的問題,即規劃器要求輸入系統狀態的符號表征,這往往需要符號學專家預先定義,極大地限制了任務規劃的應用范圍.目前,這類研究仍停留在實驗室階段.
部分學者嘗試利用深度學習的方法完成機器人任務規劃[33-34],但深度學習需要大量的數據才能訓練出滿足要求的規劃器.電池拆解任務中,任務步驟多,環境動態性強,很難找到足夠的數據訓練機器人.而且,電池拆解任務中,有些工作(例如,插拔電路接口)由于機器手的靈活性的限制,短期內無法完全由機器人完成;有些工作(例如,按順序解除電池組與電池控制模塊連接)對可靠性要求很高.人機協同工作是必然的.這對系統可解釋性提出了很高的要求.人需要清楚的知道,機器人當下在做什么事,它為什么要做這件事.基于這些原因,在電池拆解領域鮮見采用深度學習完成機器人任務規劃的方法.
人工智能已經經歷了2代的發展.第一代是符號推理方法:研發人員通過定義符號表示和規則,把知識和邏輯表示出來,計算機根據這些知識和邏輯智能地進行推理.這類方法具有可解釋性和可靠性高的優點,但依賴于人工定義的符號,所以應用范圍有限,目前,機器人任務規劃方面的研究主要沿著這個方向進行.第二代基于概率學習(或深度學習)方法:這類方法的本質是,首先針對問題設計概率模型,然后收集目標的大數據并從其中訓練出模型中的參數.這種方法在圖像處理、語音識別等領域取得了豐碩的成果,但也逐漸觸及了該技術的天花板.該方法強烈依賴數據,且不可解釋,這限制了它在更多更廣泛的領域取得突破.有人嘗試基于第二代人工智能技術完成機器人控制任務,包括Deep Reinforcement Learning(DRL)[33]和Learning from Demonstration(LfD)[35-36]等.盡管這類工作也取得了一些可喜的研究成果,但由于第二代人工智能技術本身的局限性,它們都只適用于簡單的運動規劃,鮮見在復雜的長程任務規劃中取得突破.所以許多研究工作開始探討第三代人工智能[37],把第一代人工智能和第二代人工智能的優勢結合在一起.目前兩者的結合存在不小的挑戰,主要因為它們在不同空間中進行操作,一個是向量空間,一個是符號空間,必須借助新的數學工具.神經符號是一個新興的技術,[38]最早可追溯到d’Avila Garcez A在2015年AAAI研討會上的討論,它的目標是將高級推理(通過邏輯系統實現)與低級感知能力(通過概率學習實現)緊密結合在一起.在架構方面,這些方法都采用了和人類思維方式相同的架構,將系統分成2層,在高層次進行基于知識的邏輯推理,在低層次進行基于概率學習的感知、控制等[39].2個層次互相協作,共同完成復雜的任務.通過高層推理,系統能夠更清楚地了解當下的工作狀態,基于該狀態降低低層感知模塊的識別難度.通過低層的識別,將原本復雜的高維信息,抽象成簡單的低維信息,使高層可直接進行推理而無需人工介入.這一技術在很多領域都產生了不錯的成果[40-42],不過目前還沒有形成統一的解決方案.由于應用領域的不同,各項研究工作在狀態表征、融合方法上各有千秋.神經符號仍是一個新興的研究熱點.
針對動力電池拆解開展的研究表明,這項工作所面臨的問題與神經符號試圖解決的問題完全一致.一方面,動力電池的拆解狀態復雜多變,要求機器人根據實際情況實時推理出后續的行動方案.動力電池作為人造的產品,通過引入人類已有的知識,能夠極大的加速拆解進程.在人機協作的背景下,系統對可解釋性和可靠性等方面提出了更高的要求,需要系統融合符號推理的能力.另一方面,由于動力電池的拆解情況復雜多變,人工很難把所有拆解狀態全部符號化,這要求系統能夠融合概率學習的方法,具有從輸入圖像等信息中自主學習出符號表征的能力.另外,高層的符號推理系統可以為低層的感知提供上下文,系統無需學習通用復雜的識別模塊,只需要根據當前的上下文在一定范圍內進行識別和抽象,極大地降低了概率學習的難度,從而擴展系統的應用范圍,促進從實驗室走向實際的工業場景.基于這個理解,我們將神經符號應用于動力電池拆解任務中,希望為動力電池的智能化拆解提供有意義的嘗試.
作為將神經符號推廣到動力電池拆解應用的初探,本文選取了動力電池拆解中最具有代表性的螺栓連接件的拆解移除作為研究案例對象.
對于人類而言,拆解螺栓輕而易舉,但在不確定環境下,現有的機器人還不能持續、穩定地自主完成螺栓拆解.通過分析機械臂拆解螺栓的特點和拆解過程中需要關注的不同狀態,我們將螺栓拆解任務可能涉及到的動作劃分為靠近目標、姿態調整、撥動雜物、螺栓套接、解除連接5個動作原語.
1)靠近目標(Move).表示將機械臂末端執行器從當前的任意狀態移動到目標螺栓附近(上方).執行該步驟需要知道螺栓的大概位置(注意不是精確位置,該位置可以從已有的3D模型獲得,也可以從識別模塊獲知;由于電池包變形或者視覺識別誤差等原因,識別模塊通常只能提供一個粗略的位置),這一步,在移動過程中僅僅改變機械臂自身的位置狀態,不涉及拆解對象和操縱物體.
2)姿態調整(Mate).表示調整機械臂末端執行器的姿態,使末端執行器和拆解對象的姿態一致,即:將末端執行器的中心線和拆解對象的中心線進行對齊.
3)撥動雜物(Push).表示機械臂執行推拉動作撥去拆解連接件周圍的障礙物,確保后續螺栓套接任務能夠順利執行.當視覺相機捕獲到拆解對象周圍沒有足夠的拆解空間時,導致拆解末端執行器無法進行有效的拆解,將會調用該動作,為后續步驟創造條件.
4)螺栓套接(Insert).表示拆解末端執行器沿著螺栓軸心線進行移動,使拆解末端執行器和螺栓頭能夠有效地接觸,一般接觸深度為距離螺栓頭部墊圈上方1mm處,同時拆解執行器順時針低速旋轉,當感知到力矩大于5Nm時停止旋轉,避免拆解執行器無法正常螺栓套接.
5)解除連接(Disassembly).表示解除約束連接,拆解末端執行器采取逆時針高速旋轉,同時沿著螺栓軸心線與插入方向相反的方向進行移動,移動速度為每秒鐘螺栓旋轉的螺距.
為實現機器人在動態、非結構化環境中自主拆解螺栓,需要根據當前的狀態選擇合適的動作原語并決定執行順序如圖4所示,到達目標位置并完成連接約束件的移除.

Fig.4 Illustration of process of taskfor robotic disassembly of electric vehicle battery pack
我們將螺栓拆解問題形式化為一個規劃問題(S0,SG,A);S0表示拆解系統的初始狀態,SG表示拆解系統的目標狀態,A表示一組拆解動作原語集A={a},具體包括Move,Mate,Push,Insert,Disassembly等5個原語.將每個原語進行細化定義為:
action(a),pre(a),eff(a),param(a),
(1)
其中,action(a)表示動作原語的名字,如果該動作原語需要輸入拆解參數,則在param(a)中定義,pre(a)表示執行該動作原語必備的前提條件,eff(a)表示執行該動作原語帶來的后果.前提條件和后果借助拆解狀態進行表征.在經典的規劃方法中,狀態是由符號謂詞表征的.例如:A物體上方是否有其他物體,可以用謂詞clear(A)進行表示,它返回True或者False,用于支撐后續的推理,我們對其進行擴充,詳見后面章節.求解規劃問題就是要找到一個拆解規劃的順序,次序執行plan中的動作原語,使機器人從初始狀態S0轉變成目標狀態SG.
plan=(a1,a2,…,ai,ai+1,…,an),
(2)
PDDL[25-27]是描述形式化定義的標準語言,本研究借助此語言,定義不同的拆解狀態和拆解動作,并基于此實現了動力電池的智能化拆解.
動力電池拆解面臨的問題與神經符號試圖解決的問題完全一致.我們大膽的嘗試將神經符號應用于動力電池拆解任務,以實現智能拆解.但神經符號是一個新興的研究熱點,尚無成熟的技術方案可以直接使用.本文在經典規劃問題的基礎上,引入神經謂詞,把神經網絡中softmax層的輸出,作為一種狀態的表征,并輸出給推理模塊,根據神經謂詞完成各個動作原語的定義.最后,我們使用基于概率的最佳方案搜索方法替換傳統的基于符號的最佳方案搜索方法,從而在動力電池拆解方案中實現推理與概率學習的完美融合.
因為其強大的描述能力,謂詞邏輯得到了廣泛的應用[43].謂詞是謂詞邏輯中的核心概念,用來刻畫個體詞性質的詞,即刻畫事和物之間某種關系表現的詞.例如:規劃問題中常用謂詞clear(A)描述物體A上方是否有其他物體,on(A,B)描述物體A是否在物體B上面.這樣的定義非常適用于描述動作原語,并基于此進行推理得到規劃問題的解,因此大量關于規劃問題的研究都是基于這種方法展開的.但這種方法的缺陷在于,很難實現謂詞與物理世界的關聯.經典的方法通過規則不斷地細化謂詞的定義,直到能和傳感器數據一一對應.例如:clear(A)將會被細化成不存在任何物體B在A上,物體B在A上又被細化成B在空間中的x,y坐標區間,與A在空間中的x,y坐標區間有重合,并且B的在空間中z坐標區間大于A在空間中的z坐標空間.這種定義需要非常有經驗的人員才能完成,而且僅限于限定的實驗環境中(不同環境謂詞的定義可能不同,例如上文描述的“在..上”的定義并不能使用“在椅子上”),很難在動態的,開放的環境中推廣應用.
針對很難實現謂詞與物理世界的關聯問題我們創造性地引入了神經謂詞這個概念,它既是邏輯系統中的謂詞,也是一個神經網絡,負責將連續輸入狀態(如機器人位姿或物體之間的關系圖像等信息)經過映射得到符號狀態,該狀態可以直接被動作原語使用,無需再去設計復雜的逐級展開的邏輯規則.對應的形式為p(sensor,O),與傳統的謂詞相比它有3個差異.
1)該謂詞的輸入是傳感器數據,目前雖然在我們的實驗系統中,我們主要的輸入是圖像,但理論上,選擇哪一種傳感器作為主要的數據來源可以在訓練過程中由神經網絡自主選擇,所以我們將該謂詞的輸入定義為傳感器數據.
2)假設該謂詞有n個接地(grounding)的可能,則輸出是一個n維向量,代表了該謂詞在n個類別上的概率分布.例如謂詞clear有True,False兩種可能,輸出[p1,p2]分別對應clear(sensor,True)和clear(sensor,False)的概率.系統進行推理時根據需要自動讀取對應的概率值.這種方式既保證了通用性又可以適用于有多個接地可能的謂詞(如和數字相似性),也保證了輸出的一致性,同時保證利用同一個網絡完成不同接地可能的評估.

Fig.5 The diagram of neuronal predicates
3)每一個神經謂詞對應一個神經網絡,該網絡負責將輸入的傳感器數據,轉換成一個n維的向量.深度學習中softmax的輸出與n維的概率分布具有很好的匹配性,我們將softmax的輸出作為神經謂詞的輸出.
在螺栓拆解機器人系統中,我們定義了2個神經謂詞,如圖5所示:對準目標(target_aim)和目標無遮擋(target_clear).值得一提的是,由于神經謂詞針對的判斷比較簡單,對應的神經網絡相對容易訓練.實驗系統中我們為每個神經謂詞采集了400張圖片,利用預訓練的圖像分類神經網絡VGG-16[44]作為基礎,展開訓練.謂詞‘對準目標(target_aim)’經過40輪次(epoch)的訓練到達98%的精度,謂詞‘目標無遮擋(target_clear)’經過40輪次(epoch)的訓練到達96%的精度.這樣的精度完全滿足后續推理的要求.
原語是機器人任務規劃問題中聯系邏輯規劃與機器人真實運動之間的橋梁.PDDL在邏輯規劃空間中準確的描述每個原語以及每個原語執行所需要的前提條件(:pre)和執行動作后的狀態(:eff).PDDL在描述動作原語的同時還清楚地描述系統的初始狀態(Init)和目標狀態(Goal).基于PDDL的描述規劃器在邏輯規劃空間中通過推理,找出從目標狀態到初始狀態的動作原語序列,形成執行規劃.在動力電池拆解領域,針對螺栓連接件的拆解任務,拆解動作由靠近目標(Move)、撥動雜物(Push)、姿態調整(Mate)、螺栓套接(Insert)、解除連接(Disassembly)組成.對應的PDDL定義為:
(:Inithave(coarse_pose)
(:Goaldissembled(sensor)
(:actionMove
:param(coarse_posesensor)
:pre(have(coarse_pose))
:eff(and(above_bolt)(target_aim(sensor))
(target_clear(sensor)))
(:actionMate
:param(sensor)
:pre(and(above_bolt(sensor))(not(target_aim(sensor)))
:eff(target_aim(sensor)))
(:actionPush
:param(sensor)
:pre(and(above_bolt(sensor))
(not(target_clear(sensor))))
:eff(target_clear(sensor))
(:actionInsert
:param(sensor)
:pre(and(target_aim(sensor))(target_clear(sensor)))
:eff(cramped(sensor))
(:actionDisassembly
:param(sensor)
:pre(cramped(sensor))
:eff(dissembled(sensor))
完成邏輯規劃空間定義的同時,系統定義每個原語對應的控制函數,將它稱為原語控制函數.原語控制函數能夠控制機器人在真實環境中完成原語定義的功能,即在環境滿足前提條件(:pre)的情況下,以(:param)中定義的參數作為輸入,控制機器人從當下狀態轉換成(:eff)中描述的狀態.在本文的實驗系統搭建過程中,我們基于ROS Moveit[45]人工開發了控制程序實現各個原語控制函數.但這并不是必須的,理論上,本系統允許采用運行任何方式實現原語控制函數.事實上,我們在開發過程中發現Mate和Push兩個原語的目標明確,需要面對的情況復雜多樣,若采用Deep Reinforce Learning(DRL)[33]的方法完成對應的原語控制函數,可以取得更佳的工作效果(我們計劃在后續研究中深入探索).而Insert原語,工作流程簡單,采用Learning from demonstration(LfD)[36]方法,并根據環境微調,可以取得滿意的效果.總之,原語控制函數根據實際情況采用各種成熟的手段實現.
經過神經謂詞符號和拆解動作原語的抽象,原本在連續空間中復雜的規劃問題,被抽象成在邏輯空間中找到一個最佳的可行動作原語序列,順序執行該序列中的每個動作原語,拆解系統將機器人從初始狀態S0轉變成目標狀態SG.我們采用前向搜索的方法解決該問題,具體的算法描述如算法1所示.
算法1.基于神經符號的拆解任務規劃算法.
輸入:S0,SG,A;/*S0是初始狀態,SG是目標狀態,A是動作原語集合*/
輸出:op_list./*能夠完成任務的原語序列*/
①initial_queue(Q1);
②Q1.enqueue((S0,{}));/*用包含S0和{}的tuple初始化Q1;S0為規劃問題的初始狀態;{}拆解動作原語列表,初始狀態為空*/
③ whileQ1≠null
④curr_status,curr_op_list=
Q1.pop_front();
⑤initial_set(tmp_set);/*臨時記錄當前
狀態使用操作原語后的新狀態*/
⑥ forainA;/*遍歷規劃問題定義中的
所有的動作原語*/
⑦ ifcurr_statusa.precondition
⑧new_status=apply(curr_status,a);
/*對當前狀態應用動作原語a*/
⑨new_op_list=curr_op_list+a;
⑩ ifnew_statusSG;
/*到達目標狀態*/
new_op_list));
/*根據概率把tmp_set中的tuple
排序并過濾掉概率太小的tuple*/
tuple按序加入隊列*/
盡管在抽象過程中我們引入了神經謂詞符號,并以概率的方式表征系統的各種狀態,避免人為設定閾值造成不合理的表征或者邏輯沖突,但依然無法完全解決規劃過程中的不確定性.例如:當機器人根據粗定位完成靠近物體的動作原語后,是否還需要進行姿態調整;當機器人在執行撥除雜物的動作原語時,能否真正清除雜物也具有一定的不確定性.為了有效地解決這個問題,我們采用了樂觀估計、保守執行的策略.具體來說,動作原語定義時,我們都按照樂觀的方式對系統狀態進行估計.例如:在動作原語Move的效果定義中,我們樂觀地認為執行完該操作后就能夠實現對準目標且目標無遮擋.規劃算法基于樂觀估計的原語定義,生成樂觀的執行方案.但在執行過程中,在執行每個原語前,系統都要根據原語的前提條件,檢查當下的狀態.如果滿足條件的概率大于不滿足條件的概率,就繼續執行.反之,則以當前的狀態為初始狀態,目標狀態不變,重新調用規劃算法,獲得新的行動方案.
目前,系統的原語還比較少,加上使用了樂觀估計的原語定義,規劃算法的復雜度不高.未來如果原語數量大量增加,復雜度變高,將考慮引入啟發式搜索算法提高規劃算法的效率,確保搜索仍能在線實時完成.
雖然神經符號謂詞是基于不可解釋的神經網絡實現的,但任務規劃卻是在一個可解釋的邏輯空間中進行的.該方案使機器人清楚的知道目前正在執行的具體動作原語,以及為什么執行它.系統在力反饋機械臂的幫助下判斷出動作原語的執行情況.如果執行某個動作原語獲得成功的結果,說明對應的判斷是正確的,如果執行失敗,系統可以推理出哪些謂詞判斷出現了問題(必要時可請求人工幫助,針對有限個謂詞做出判斷).因此,系統不斷地自動采集數據和標注數據.利用這些新的數據,系統利用持續學習的方法[46]不斷地提高神經謂詞的準確性,甚至適應新的環境變化,學習新的技能(動作原語).因為持續學習不是本文的重點,所以此處不展開深入討論,但需要強調的是,基于神經符號的設計,使整個系統具備了很好的可解釋性和可學習性.
為驗證本文提出的基于神經符號的動力電池拆解任務與運動規劃模型的有效性,我們在機器人仿真平臺上開展動力電池連接約束件拆解任務規劃的實驗.首先在無障礙物環境下展開實驗,主要測試系統在感知系統出現誤差時的應變能力.隨后在實驗環境中引入障礙物,機器人主動移除障礙物后,才能順利地完成拆解任務,實驗證明,本文提出的方法具備相當的優勢.
圖6展示了本文的實驗環境,在可視化仿真環境Gazebo中,以七自由度固定基座機械臂為實驗載體開展螺栓的拆解任務.為了方便日后的工作遷移,仿真環境中的機器臂與實際場景中的機械臂一致,為珞石科技七自由度機械臂xMatePro7,相關參數如表1,并且機械臂末端安裝有氣動扭力末端執行器.可以使用ROS MoveIt!控制其運動.此外與真實環境對應的是,在仿真環境中加入了全局相機(安裝在操作臺正上方)和局部相機(安裝在機械臂末端關節上),相機的相關參數與Intel RealSense Depth Camera D435i保持一致.仿真器中還加入了長安汽車EV460動力電池包、螺栓以及木塊等障礙物.所有的實驗運行在Intel NUC電腦上,相關參數見表2.

Fig.6 Illustration of platform of Disassembly

Table 1 Features Parameters of Motion with Robotic Arm

Table 2 Parameters of Configuration for Computer
在機器人任務規劃模型方面常見的指標是執行成功率(Success Rate, SR),我們沿用這一指標驗證基于神經符號的拆解任務規劃模型在動力電池拆解過程中的性能.分別在有障礙物和無障礙物的環境中進行評估.目前,業界尚無成熟可用的拆解方案,但為了驗證我們提出的神經符號的動力電池拆解任務與運動規劃的性能,實驗中,我們采取成熟度相對較高的方法,也稱為傳統方法,該方法假設從已有的3D模型或者感知模塊中獲得的目標位置是準確的[15],通過求解運動方程,直接控制末端執行器到達目標位置實現套接,進而完成拆解,用此作為對比驗證.在實驗中我們分析對比了目標位置的感知誤差對2種方法的影響.拆解任務規劃實驗相關的約束參數如表3所示:

Table 3 Simulation parameter setting for ROS


Fig.7 Illustration of experimental simulation with free obstacle
拆解任務執行結果如圖7所示:傳統的拆解方法在方差小于1 mm(螺栓位置數據準確)時拆解成功率比較高,近乎全部成功拆解,但隨著方差的增大(螺栓位置數據不準確)性能急劇下降.這與我們在實際工作中獲取的經驗一致.在靜態結構化的環境中,機器人無需復雜的任務規劃,也能夠很好地完成任務.但這種方法,無法針對動態非結構的環境自主規劃.相比之下,本文提出的拆解任務規劃模型,借助神經符號進行動態規劃,在發現螺栓位置信息誤差較大是,重新自主規劃,根據實際情況自動執行姿態調整,從而使拆解成功率始終保持在100%附近.我們在總共400次實驗中發現了3次失敗,失敗的原因是由于在姿態調整的原語中對錯誤情況處理的不完備造成的(由于光線原因,無法找到螺栓的6個角點,導致進入死循環).


Fig.8 Illustration of experimental simulation with obstacle
實驗數據如圖8所示.由于傳統方法不具備清理礙障物的能力,當σ較小時,也就是障礙物影響螺栓套接的可能性較大時,失敗概率較大,反之,成功概率較大.而本文提出的方法,始終保持較高的成功率,而傳統方法則因為障礙物這一不確定性的引入導致性能顯著下降.需要強調的是我們的方法并不總是執行清除障礙物的動作原語,如圖9所示,我們的規劃系統會根據實際情況動態確定是否需要進行清障工作.當σ較小時,也就是障礙物離螺栓較近,影響螺栓套接的可能性較大時,系統執行4個動作原語(Move→Push→Insert→Disassembly),而當σ較大時,也就是障礙物離螺栓較遠,影響螺栓套接的可能性較小時,系統僅僅需要執行3個動作原語(Move→Insert→Disassembly).

Fig.9 Illustration of performance counter for average for experimental simulation with obstacle

Fig.10 Two Illustrations of explicability
需要說明的是,由于目前清理障礙物的動作原語實現的并不完美,導致清障的時候偶爾會出現錯誤,使得在有障礙物拆解實驗中,成功率有所下降,平均為98%.
如3.4節所述,電池拆解任務對系統的可解釋性要求很高.人們希望清楚的了解機器人目前正在做什么,以及為什么執行它以便支持安全的人機協同.本文提出基于神經符號的任務與運動規劃方法,可以清楚地判斷機器人的執行狀態和原因.圖10是實驗過程中2個任意時刻的示意圖.圖中左半部分顯示機器人的執行狀態和傳感器數據,右邊是系統規劃過程中的內部狀態.這些狀態基本上是符號化的,可以清晰地描述出當前狀態,原計劃,是否需要更新計劃(樂觀估計,保守執行)以及將要做什么操作.圖10(a)中,系統完成Move操作后,發現當前狀態與樂觀估計值一致,無需重新規劃,于是按照原有規劃,繼續執行Insert操作.圖10(b)中,系統完成Move操作后,發現當前狀態與樂觀估計值不一致,不但沒有對準目標,而且目標附近還有遮擋,于是基于當前狀態重新規劃,規劃從(Move→Insert→Disassembly)更新為(Mate→Push→Insert→Disassembly),因此下一步系統將執行Mate操作.通過這2個典型例子不難看出,人們可以通過符號化的表示輕松的理解機器人的行為.這為人機協作完成復雜的拆解任務打下良好的基礎.
在復雜的非結構化的拆解工作環境下,由于種種不確定性導致解除緊固動力電池零部件的連接關系時拆解任務難以規劃,本文提出基于神經符號的任務與運動規劃方法,讓機器人在動態環境下也能夠自主規劃,完成任務.實驗證明該方法具有很好的魯棒性,實驗整體成功率達到98%,而且該方法在自主性、可擴展性、可解釋性、可學習性4方面與傳統方法相比有明顯的優勢.
在未來的工作中,我們將把現有的工作遷移到實際場景中,并擴展拆解動作原語將整個系統推廣到動力電池的抓取、搬運、收納整理等方面;同時進一步深入研究目前系統中有待提高的學習環節,充分利用神經符號所帶來的可解釋,可學習等優勢,在拆解現場基于云邊端系統[47]不斷地通過現場學習(in-situ learning)提升拆解效率和精度;最終真正實現動力電池拆解智能化.