TWI834194B - 機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品 - Google Patents

機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品 Download PDF

Info

Publication number
TWI834194B
TWI834194B TW111122134A TW111122134A TWI834194B TW I834194 B TWI834194 B TW I834194B TW 111122134 A TW111122134 A TW 111122134A TW 111122134 A TW111122134 A TW 111122134A TW I834194 B TWI834194 B TW I834194B
Authority
TW
Taiwan
Prior art keywords
items
item
stack
placement
stability
Prior art date
Application number
TW111122134A
Other languages
English (en)
Other versions
TW202318243A (zh
Inventor
羅希特 阿爾卡 皮達帕蒂
威廉 亞瑟 克拉里
尼拉賈 阿比揚卡
喬納森 庫克
班 瓦基 班傑明 波泰伊
凱文 何塞 查韋斯
希蒂 庫馬爾
Original Assignee
美商靈巧公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/837,787 external-priority patent/US20220405439A1/en
Application filed by 美商靈巧公司 filed Critical 美商靈巧公司
Publication of TW202318243A publication Critical patent/TW202318243A/zh
Application granted granted Critical
Publication of TWI834194B publication Critical patent/TWI834194B/zh

Links

Abstract

本發明揭示一種機器人系統。該系統包含一記憶體,該記憶體經組態以針對複數個物品中之每一者儲存表示該物品之一或多個實體屬性之一組屬性值。該系統包含一或多個處理器,該一或多個處理器耦合至通信介面且經組態以使用該等屬性值作為向一物理引擎之輸入,該物理引擎經組態以計算包括該複數個物品之至少一子集之一經模擬物品堆疊之穩定性。

Description

機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品
本申請案係關於一種基於物理引擎之托盤穩定性評估。
裝運及配送中心、倉庫、裝運碼頭、航空貨運站、倉儲式商場以及裝運及接收非同質物品組之其他活動使用諸如在箱、條板箱、容器、輸送帶中及在托盤上等對不同物品進行堆積及解堆積之策略。在箱、條板箱中、在托盤上等堆積不同物品使得所得物品組能夠由諸如堆高機、起重機等重型起重設備來處置,且使得能夠更高效地堆積物品以用於儲存(例如,在一倉庫中)及/或裝運(例如,在貨車、貨艙等中)。
在某些情境中,物品可在大小、重量、密度、膨松度、剛度、封裝強度等方面係如此不同的,以至於任何給定物品或物品組可或可不具有將使得彼等物品能夠支撐可需要被堆積(例如,在一箱、容器、托盤等中)之一給定其他物品之大小、重量、重量分佈等之屬性。當裝配一托盤或其他不同物品組時,必須仔細地選擇及堆疊物品以確保經堆棧堆疊不會倒塌、傾斜或以其他方式變得不穩定(例如,以致使不能夠被諸如一堆高機等設備處置)且避免物品損壞。
當前,通常手動地對托盤進行堆疊及/或解堆積。人類工作 者(例如)基於一裝運發票或載貨單等而選擇待堆疊之物品,且(舉例而言)使用人類判斷及直覺選擇較大及較重物品來放置於底部上。然而,在某些情形中,物品僅經由一輸送機或其他機構到達及/或以一經排序清單自貯存箱選擇該等物品等,從而產生一不穩定經堆棧或以其他方式堆積之組。
由於物品之多樣性、待堆積(舉例而言,在一給定托盤上)之物品之次序、數目及混合物之變化,以及必須從中拾取物品以放置於托盤或其他容器上之容器及/或饋送機構之多種類型及位置,因此在許多環境中使用機器人變得更具挑戰性。
可以眾多方式實施本發明:包含作為一程序;一裝備;一系統;一物質組成;體現於一電腦可讀儲存媒體上之一電腦程式產品;及/或一處理器,諸如經組態以執行儲存於耦合至該處理器之一記憶體上及/或由該記憶體提供之指令之一處理器。在此說明書中,此等實施方案或本發明可採取之任一其他形式可稱為技術。一般而言,可在本發明之範疇內更改所揭示程序之步驟之次序。除非另外陳述,否則諸如闡述為經組態以執行一任務之一處理器或一記憶體之一組件可實施為經暫時組態以在一給定時間執行該任務之一通用組件或經製造以執行該任務之一特定組件。如本文中使用,術語「處理器」係指經組態以處理諸如電腦程式指令之資料之一或多個裝置、電路及/或處理核心。
下文連同圖解說明本發明之原理之附圖一起提供對本發明之一或多個實施例之一詳細說明。結合此等實施例闡述本發明,但本發明並不限於任一實施例。本發明之範疇僅由申請專利範圍限制且本發明囊括眾多替代方案、修改及等效形式。在以下詳細說明中陳述眾多特定細節以 提供對本發明之一透徹理解。出於實例目的而提供此等細節,且可在不具有此等特定細節中之某些或所有細節之情況下根據申請專利範圍實踐本發明。出於清晰之目的,未詳細闡述與本發明相關之技術領域中習知之技術材料,使得不會不必要地模糊本發明。
如本文中所使用,一幾何模型可意指一工作空間之一狀態(諸如一以程式化方式判定之狀態)之一模型。舉例而言,幾何模型係使用結合產生用以移動工作空間中之一物品之一計劃及在根據計劃移動物品之情況下之一預期結果而判定之幾何資料來產生的。舉例而言,一幾何模型與藉由控制一機器人臂拾取、移動及/或放置一工作空間內之物品而修改的該工作空間之一狀態對應,且物品之拾取、移動及放置被視為根據計劃執行(例如,不具有諸如可基於以下各項而引入之錯誤或雜訊之錯誤:(i)工作空間中之機器人臂或另一組件之一錯誤組態或未對準,(ii)基於與機器人臂相互作用之一物品變形,(iii)工作空間中之另一物品、工作空間中之另一物件,(iv)機器人臂或正由機器人臂移動之物品與工作空間中之另一物件之間的一碰撞等)。
如本文中所使用,「托盤」包含可將一或多個物品堆疊或放置於其上或其中之一平台、容座或其他容器。此外,如本文中所使用,托盤可結合封裝及配送一組一或多個物品來使用。作為一實例,術語托盤包含支撐物品並可經由一堆高機、一托盤搬運車、一起重機等移動之典型的扁平運輸結構。如本文中所使用,一托盤可由各種材料(包含木材、金屬、金屬合金、聚合物等)構造而成。
如本文中所使用,堆棧一物品或一組物品包含自一源位置(諸如一輸送結構)拾取一物品,且將該物品放置於一托盤上(諸如托盤上 之一物品堆疊上)。
如本文中所使用,解堆棧包含自一托盤(諸如自托盤上之一物品堆疊)拾取一物品、移動該物品,且將該物品放置於一目的地位置(諸如一輸送結構)處。在美國專利申請案第17/343,609號中進一步闡述用於堆棧/解堆棧一組物品之一堆棧/解堆棧系統及/或程序之一實例,該美國專利申請案之全文據此出於所有目的併入本文中。
如本文中所使用,一物品之單個化包含自一源堆/流拾取一物品且將該物品放置於一輸送結構(例如,一經分段輸送機或類似輸送裝置)上。視情況,單個化可包含對輸送結構上之各種物品進行分類,諸如經由將來自源堆/流之物品單獨放置至輸送機上之一狹槽或盤中。在美國專利申請案第17/246,356號中進一步闡述用於對一組物品進行單個化之一單個化系統及/或程序之一實例,該美國專利申請案之全文據此出於所有目的併入本文中。
如本文中所使用,配套包含自對應位置拾取一或多個物品/物件且以使一或多個物品之一組對應於一套件之一方式將該一或多個物品放置於一預定位置中。在美國專利申請案第17/219,503號中進一步闡述用於配套一組物品之一配套系統及/或程序之一實例,該美國專利申請案之全文據此出於所有目的併入本文中。
如本文中所使用,一評分函數可包含至少部分地基於以下各項中之一或多者之一預定義函數:(i)物品堆疊之一預期穩定性,(ii)完成物品堆疊之一時間,(iii)物品堆疊是否滿足一預定義準則或啟發法(例如,可變形部件朝向堆疊之頂部放置、較重物品朝向堆疊之底部放置、不規則形狀之物品朝向堆疊之頂部放置等)之一滿意度,(iv)碰撞避免或一預 期碰撞(例如,對去往放置位置之一軌跡是否將導致物品或機器人臂與另一物品或機器人臂之間的一碰撞之一判定),(v)移動物品之一效率,及(vi)對於機器人在拾取、移動或放置物品以進行放置時是否預期被組態為一尷尬姿勢之一指示。
如本文中所使用,一視覺系統包含獲得感測器資料(舉例而言,與一工作空間有關之感測器資料)之一或多個感測器。感測器可包含以下各項中之一或多者:一相機、一高解析度相機、一2D相機、一3D(例如,RGBD)相機、一紅外線(IR)感測器、用以產生一工作空間(或一工作空間之一部分,諸如一托盤及托盤上之物品堆疊)之一三維視圖之其他感測器、前述各項之任何組合,及/或包括前述各項中之複數個感測器之一感測器陣列等。在美國專利申請案第16/667,661號中進一步闡述一視覺系統之一實例,該美國專利申請案之全文據此出於所有目的併入本文中。
各種實施例包含一種用於評估一物品堆疊(諸如一經模擬物品堆疊)或者一真實世界物品堆疊之一所估計狀態或數位模型之系統、裝置或方法。系統針對複數個物品中之每一者儲存表示物品之一或多個實體屬性之一組屬性值且使用屬性值作為向一物理引擎之輸入,該物理引擎經組態以計算包括複數個物品之至少一子集之物品之一經模擬堆疊的穩定性。
用於評估一物品堆疊(諸如一經模擬物品堆疊)之系統可本端地在一機器人系統處實施或遠端地在一伺服器處實施,該機器人系統控制一機器人臂來拾取及放置物品。在用於評估一物品堆疊之系統遠端地在一或多個伺服器上實施之情形中,一或多個伺服器向一或多個機器人系統提供一服務(例如,一遠端服務)。將用於評估物品堆疊之系統實施為由一 機器人系統呼叫之一服務可為更高效的且減少與判定用以移動一物品之一計劃並根據計劃拾取及放置物品相關聯之延時。
在某些實施例中,用於評估物品堆疊之系統係模型化/模擬真實世界中之物件之相互作用之一物理引擎。物理引擎模擬物品堆疊中之物品或工作空間內之其他物件當中之相互作用。舉例而言,物理引擎考量工作空間內之物品及/或物件當中之所有相互作用,諸如物品與物品相互作用(例如,關於包含具有各種特性之各種物品之一組物品執行一多主體模擬)、物品與機器人臂相互作用、堆高機與托盤相互作用等。物理引擎使用模型化物品之性質之參數來對真實世界中之物品進行仿真。根據各種實施例,物理引擎係基於比較真實世界物品堆疊與參數而判定的,以關於堆疊中之物品及/或工作空間中之其他物件當中之物品之相互作用進行泛化(或訓練關係)。由物理引擎使用之動態參數之實例包含:(i)摩擦、(ii)接觸阻尼、(iii)恢復、(iv)韌性等。可實施各種其他參數。在某些實施例中,物理引擎進一步模型化托盤、環境中之壁(例如,倉庫或貨車等)、環境中之一地板等。
在某些實施例中,實施一機器學習程序以訓練物理引擎。舉例而言,系統使用與真實世界物品堆疊以及物品堆疊或工作空間中之其他物件當中之對應相互作用對應之一訓練集,且系統基於訓練集而訓練物理引擎。
在某些實施例中,用於評估物品堆疊之系統(例如,物理引擎)模擬作用於物品堆疊上之力。系統可模擬各種類型之外部力及/或具有各種量值之外部力。系統可模擬之力類型之實例包含:(i)一摩擦力(例如,兩個物品之間等)、(ii)重力、(iii)一法向力、(iv)一搖動力、(v)在一 物品之移動期間產生之搖擺力、(vi)與一堆高機嚙合上面堆疊有物品堆疊之一托盤對應之一力等。可模擬各種其他類型之力。可根據一預定義力型樣(包含待模擬力之一定義/特性)實施外部力模擬。力型樣可包含以下各項中之一或多者:力之一類型、力之一量值、施加力之一位置等。在某些實施方案中,基於一使用者輸入(諸如由一使用者經由一用戶端系統輸入的對於使系統模擬一特定外部力之一請求)而設定力型樣。作為一實例,一使用者請求系統模擬在一堆高機(或其他交通工具/裝置)拾取及/或移動上面堆疊有物品堆疊之一托盤時產生之一力。在某些實施方案中,力型樣由一待模擬情景設定或參考。
在某些實施例中,評估物品堆疊包含模擬對抗情景,諸如模擬托盤基座之搖動以加速不穩定並評估穩定性。模擬對抗情景可包含選擇要施加之力之一量及要模擬力之一時間週期(例如,搖動物品堆疊多長時間)。
在某些實施例中,評估一物品堆疊係基於一物品堆疊之一表示(例如,一所估計狀態/幾何模型)、一或多個物品之屬性(例如,若此等屬性不包含於幾何模型中),以及用於判定物品堆疊之一評分(例如,優度、穩定性、密度等之一值)之一評分函數。評估物品堆疊可進一步基於要模擬之一力之一力型樣(例如,將根據一預定義情景或基於要模擬一外部力之一使用者請求而模擬之一或多個力之力型樣)。
諸如在一機器人臂經控制(或將被控制)以將一特定物品放置於一物品堆疊當中之一特定位置中之情境中,系統呼叫物理引擎來模擬該特定物品與該物品堆疊(或工作空間中之其他物件)之間的一相互作用。物理引擎可模型在特定物品之放置之後的物品堆疊以評價該放置是否係可 行的或以其他方式產生一穩定物品堆疊。舉例而言,系統使用物理引擎來判定在特定物品之放置之後物品堆疊之一穩定性。作為另一實例,系統使用物理引擎來判定特定物品或來自物品堆疊之另一物品是否已自物品堆疊掉落。作為另一實例,系統使用物理引擎來根據一預定義評分函數(例如,基於穩定性、密度、對應放置之成本、完成放置之一時間等中之一或多者之一函數)判定所得物品堆疊之一評分/值。
結合模擬物品放置,系統回應於對一放置之模擬而儲存與該放置有關之資訊。舉例而言,針對每一經模擬放置,系統更新工作空間之一幾何模型(例如,經模擬物品堆疊之一幾何模型)。結合模擬一組待模擬放置中之一第一放置,系統獲得物品堆疊之一所估計狀態。系統使用一狀態估計器(例如,一狀態估計模型)來判定所估計狀態(例如,物品堆疊之幾何模型)。系統然後依序模擬一或多個物品之放置且隨著每一放置更新物品堆疊之幾何模型。可基於一放置模型而判定該組放置內之放置,該放置模型判定可能/可行的放置且自可能的放置當中選擇要模擬之放置。系統(例如,物理引擎)可模型化/模擬在物品堆疊被建立時物品堆疊當中之物品之初始位置及定向之一移位(例如,當對物品堆疊進行其他放置時)。系統可基於對包含於物品堆疊中之物品之位置/定向之經模型化/經模擬移位而評估穩定性或穩定性之其他特性。在某些實施例中,系統對於包含在物品堆疊中(例如,在托盤上)之每個物品針對一組待放置物品之每一放置而評估此物品之位置及定向之一經模型化/經模擬移位。
根據各種實施例,結合評估(例如,估計)一托盤及/或托盤上之一物品堆疊之一穩定性而實施一物理引擎。物理引擎可模型化托盤及/或一物品堆疊以判定托盤及/或一物品堆疊之穩定性。在某些實施例中, 物理引擎可判定與托盤及/或一物品堆疊之一穩定性(或預期穩定性)有關之一值。物理引擎可基於與一穩定性(或預期穩定性)有關之一值和一預定義穩定性臨限值及/或一置信度臨限值(例如,指示穩定性評分之確定性之置信度)之一比較而判定托盤及/或一物品堆疊係或預期係穩定或不穩定的。
在某些實施例中,基於與穩定性相關聯之一置信度間隔而設定預定義穩定性臨限值。舉例而言,預定義穩定性臨限值可經設定使得95%之時間托盤係穩定的且不會遭受物品自堆疊掉落等。作為另一實例,預定義穩定性臨限值可經設定使得99%之時間托盤係穩定的。預定義穩定性臨限值可由一使用者設定。
在某些實施例中,結合諸如在實施一動作之前判定一托盤/物品堆疊之一預期穩定性而使用物理引擎。舉例而言,在將一物品放置於一托盤上之前(例如,在堆棧期間),系統使用物理引擎來評估將一物品放置於托盤上之一特定位置處之一預期穩定性。作為另一實例,在自一托盤移除一物品之前(例如,在解堆棧期間),系統使用物理引擎來評估自托盤/物品堆疊移除物品之一預期穩定性。回應於在執行動作之後一托盤/物品堆疊之預期穩定性將係穩定之一判定,動作可被執行或以其他方式被視為係一可能/容許動作之一動作。相反,回應於在執行動作之後一托盤/物品堆疊之預期穩定性將不穩定(或不夠穩定,諸如小於一預定穩定性臨限值)之一判定,動作可被執行或以其他方式被視為係一不可能/不容許動作之一動作。
在某些實施例中,結合諸如在實施一動作之後判定一托盤/物品堆疊之一穩定性而使用物理引擎。舉例而言,在將一物品放置於一托盤上之後(例如,在堆棧期間),系統使用物理引擎回應於將一物品放置於 托盤上之一特定位置處而評估一穩定性。作為另一實例,在自一托盤移除一物品之後(例如,在解堆棧期間),系統使用物理引擎來評估在移除物品之後保留之托盤/物品堆疊之穩定性。回應於一托盤/物品堆疊之穩定性係穩定(例如,超過一預定穩定性臨限值)之一判定,系統可將托盤/物品堆疊視為穩定的且計劃一後續動作(例如,放置下一物品,或移除下一物品等)。相反,回應於一托盤/物品堆疊之穩定性係不穩定(或不夠穩定,諸如小於一預定穩定性臨限值)之一判定,系統可將托盤/堆疊視為不穩定且系統可實施一補救動作(例如,以改良托盤/物品堆疊之穩定性)。
根據各種實施例,系統回應於一托盤/物品堆疊之穩定性係不穩定(或不夠穩定,諸如小於一預定穩定性臨限值)之一判定而實施一補救動作(例如,一回應動作)。補救動作之實例包含:(i)向一使用者提供一警報/指示,(ii)請求人類干預,(iii)判定及實施用以自托盤/物品堆疊移除導致不穩定性之一物品之一計劃,(iv)判定及實施用以向托盤/物品堆疊添加預期改良托盤/物品堆疊之穩定性(例如,將穩定性改良為超過一預定穩定性臨限值)之一物品之一計劃,(v)判定包裹托盤及/或物品堆疊之至少一部分,(vi)使用一間隔件來改良物品當中之穩定性等。可執行各種其他補救動作。在某些實施例中,可實施一或多個補救動作。系統可至少部分地基於一或多個補救動作可改良穩定性之一可能性(例如,一可能性量測)及/或一或多個補救動作預期改良穩定性之一程度(例如,一程度量測)而選擇一或多個補救動作來實施。系統可致使執行補救動作,諸如控制一機器人臂來執行一任務、提示一使用者來進行人工干預等。
在某些實施例中,物理引擎包括於由一電腦系統載入及/或執行之一模組中,該電腦系統控制執行一組物品之堆棧/解堆棧之機器 人。在某些實施例中,物理引擎包括於由一遠端系統(例如,一伺服器)載入及/或執行之一模組中。舉例而言,物理引擎可被主控為由一或多個機器人系統呼叫以評估一托盤及/或物品堆疊之穩定性或預期穩定性等之一服務。
系統可至少部分地基於與托盤及/或物品堆疊有關之感測器資料而判定穩定性或預期穩定性。作為一實例,感測器資料可由與執行堆棧/解堆棧之機器人進行操作之工作空間相關聯之一視覺系統獲得。在某些實施例中,物理引擎判定或獲得托盤及/或物品堆疊之一模型。可至少部分地基於感測器資料而產生該模型。在某些實施例中,該模型包括與托盤及/或物品堆疊上之一或多個物品相關聯之一或多個屬性。一物品之一屬性之實例包含大小(例如,長度、寬度、高度等)、重量、重心、封裝類型、一剛度量測、物品是否係剛性之一指示、一識別符(例如,一條碼、標籤等)。其他屬性可包含於模型中或結合判定該模型而使用。根據各種實施例,物理引擎可至少部分地基於托盤及/或物品堆疊之模型而判定托盤及/或物品堆疊之一穩定性。作為一實例,物理引擎可基於托盤及/或物品堆疊上之一或多個物品之一位置(或相對位置)以及至少一個物品之至少一個屬性而判定托盤及/或物品堆疊之一穩定性。
在某些實施例中,系統判定一物品將被放置於一托盤上。回應於判定物品將被放置,系統可獲得/判定托盤/物品堆疊之一當前狀態,且判定放置物品之一位置。判定放置物品之位置可包括判定可放置物品之可能位置,且若物品將被至少放置於可能位置之一子集處,則判定與托盤/物品堆疊相關聯之一評分函數之一對應值。回應於判定評分函數之對應值,系統基於與放置物品之一目的地位置相關聯之評分函數之值而判 定該目的地位置。回應於判定物品之目的地位置,系統可判定用以移動物品並將物品放置於目的地位置處之一計劃。回應於判定計劃,系統可控制一機器人來實施該計劃以移動物品並將物品放置於目的地位置處。根據各種實施例,系統可針對待拾取及放置於托盤上之一組物品(例如,一組待堆棧物品)中之至少複數個物品反覆地執行判定將放置一物品之目的地位置。系統亦可反覆地判定用以堆棧一物品之一計劃並控制機器人來實施該計劃以針對至少複數個該組物品而堆棧物品。
在某些實施例中,至少部分地基於托盤/物品堆疊之邊緣而判定可放置物品之可能位置。舉例而言,在托盤之頂部表面上(例如,在任何物品被放置於托盤上之前),邊緣可對應於托盤之圓周。作為另一實例,在托盤之頂部表面上(例如,在任何物品被放置於托盤上之前),該邊緣可基於托盤之拐角而判定。若一或多個物品已被放置於托盤上,則堆疊之一頂部表面可為不平整的(例如,不平坦的)。可至少部分地基於以下各項中之一或多者之邊緣而判定物品可被放置之可能位置:(i)托盤之邊緣,及(ii)托盤/物品堆疊上之一或多個物品之一或多個邊緣。在某些實施例中,可至少部分地基於以下各項中之一或多者之邊緣而判定物品可被放置之可能位置:(i)托盤之邊緣,及(ii)托盤/物品堆疊上之一或多個物品之至少兩個邊緣之拐角。在某些實施例中,若一或多個物品已被放置於托盤上,則物品可被放置之可能位置可包括以下各項中之一或多者:(i)托盤,及(ii)由放置於托盤上之一(若干)物品形成之層之一或多個表面。判定可放置物品之位置係至少部分地基於判定與上面可放置一物品之表面對應(例如,界定該等表面)之一或多個邊緣。舉例而言,可針對由已被放置於托盤上之物品形成之各種層或表面(例如,已被放置於托盤上之物品中之 一或多者之一頂部表面)判定一或多個邊緣。
根據各種實施例,可至少部分地基於托盤之一當前模型而判定一邊緣。舉例而言,與在一托盤上堆棧物品之機器人之一工作空間對應之一視覺系統可獲得資訊,可自該資訊判定感測器資料。感測器資料可結合產生托盤之一模型來使用。舉例而言,托盤之模型可對應於托盤之一當前狀態。在某些實施例中,一系統對托盤之模型執行一分析(例如,一影像分析)。作為一實例,系統可執行一邊緣偵測分析以判定模型中之邊緣。系統可進一步處理模型以判定與上面可放置一物品之表面對應之邊緣。
在某些實施例中,基於托盤及/或托盤上之物品堆疊上之一或多個表面之一或多個頂點而判定一可能位置。可至少部分地基於一或多個邊緣而判定一或多個頂點。舉例而言,一頂點可對應於兩個邊緣相交之一拐角或點。
根據各種實施例,回應於判定可放置物品之可能位置(例如,基於托盤之邊緣、托盤上之物品之邊緣,及/或上面可放置物品之各種表面之邊緣,諸如由托盤上之物品形成之邊緣),系統至少部分地基於對應預期穩定性量測而判定一組可行放置。作為一實例,系統可至少藉由自可能位置中移除在放置之後的物品(或在物品放置之後的一物品堆疊)預期不穩定之彼等位置而判定該組可行位置。作為另一實例,系統可至少藉由自可能位置中移除在放置之後的物品之一預期穩定性(或在物品放置之後的一物品堆疊之預期穩定性)低於一特定穩定性臨限值之彼等位置而判定該組可行位置。穩定性臨限值可被預組態及/或可被設定使得僅一組N個最佳位置保留在該組可行位置中。N可為一整數,或係可能位置之一總數 目之一百分位數。系統可呼叫或執行一物理引擎來評估與將一物品放置於一特定位置處相關聯之一預期穩定性,且至少部分地基於來自物理引擎之一回應(例如,關於預期物品堆疊是穩定還是不穩定或不夠穩定),系統可判定特定可能位置是否係一可行位置(例如,特定可能位置是否將包含於該組可行位置中)。
根據某些實施例,系統基於與放置物品之一目的地位置相關聯之評分函數之值而判定該目的地位置。回應於判定可放置物品之該組可行位置,系統可判定與包括於該組可行位置中之位置相關聯之評分函數之對應值。評分函數可包含與以下各項中之一或多者相關聯之加權值:堆積密度、托盤/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間等。與托盤/堆棧程序相關聯之其他特性之值可包含於與最佳放置有關之函數中。在某些實施例中,評分函數可包含與將物品移動至一特定位置相關聯之一成本函數,或與該成本函數一起使用。可選擇該組可行位置中具有基於評分函數之最佳評分(例如,一最高評分)之位置作為將放置物品之目的地位置。
根據各種實施例,評分函數可指示一托盤/物品堆疊之一優度。舉例而言,評分函數可對應於與托盤/物品堆疊之一或多個特性有關之一客觀量測。評分函數可包含與以下各項中之一或多者相關聯之加權值:堆積密度、托盤/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間等。與托盤/堆棧程序相關聯之其他特性之值可包含於與最佳放置有關之函數中。在某些實施例中,評分函數係基於一參數化一函數而判定的,該函數包括至少與一當前托盤、一當前物品及一放置位置對應之值或變數。根據各種實施例,基於一或多個機器學習方法而訓練評分函數之 參數。結合判定評分函數之一值,系統可結合判定托盤/物品堆疊之一穩定性(或預期穩定性)而呼叫或執行一物理引擎。
在某些實施例中,判定放置物品之一位置係至少部分地基於相對較小數目個接下來的待放置物品(例如,下一待放置物品序列中之較小數目個待放置物品)。舉例而言,判定當前物品之位置可至少部分地基於當前物品、下一物品以及與當前物品及/或下一物品可在上面放置之表面對應之一或多個邊緣。在某些實施例中,評分函數係基於一參數化一函數而判定的,該函數包括至少與一當前托盤、下一物品及一放置位置對應之值或變數。根據各種實施例,基於一或多個機器學習方法而訓練評分函數之參數。
根據各種實施例,結合訓練評分函數(例如,訓練評分函數中之參數)、一狀態估計器(例如,一組狀態估計模型)及/或一(若干)放置模型(例如,以判定物品放置)及/或物理引擎而使用之一或多個機器學習方法可包含以下各項中之一或多者:一監督學習、一無監督學習、一分類學習實施方案、一迴歸學習實施方案、一聚類實施方案等。一分類學習實施方案之實例可包含一支援向量機模型、一判別分析模型、一質樸貝斯(Bayes)模型、最近相鄰模型等中之一或多者。一迴歸學習實施方案之實例可包含一線性迴歸GLM模型、一支援向量迴歸模型、一高斯(Gaussian)程序迴歸模型、一整體方法模型、一決策樹模型、一神經網路模型等中之一或多者。一聚類實施方案之實例包含一K均值模型、一K中心點(K-Medoids)模型、一模糊C均值模型、一分層模型、一高斯混合模型、一神經網路聚類模型、一隱馬爾可夫(hidden Markov)模型等中之一或多者。
100:系統
102:機器人臂
104:輸送機/其他源
106:托盤/平台/其他容座/容座
108:末端執行器
110:吸力杯
112:3D相機/其他相機/相機
114:相機
116:相機
118:控制電腦
122:「隨選」遙操作裝置/遙操作裝置
124:人類使用者
126:伺服器
200:程序
210:步驟
220:步驟
230:步驟
240:步驟
300:程序
310:步驟
320:步驟
330:步驟
340:步驟
350:步驟
400:程序
405:步驟
410:步驟
415:步驟
420:步驟
425:步驟
430:步驟
435:步驟
440:步驟
445:步驟
450:步驟
455:步驟
460:步驟
465:步驟
470:步驟
500:程序
505:步驟
510:步驟
515:步驟
520:步驟
525:步驟
530:步驟
535:步驟
540:步驟
545:步驟
600:程序
605:步驟
610:步驟
615:步驟
620:步驟
625:步驟
630:步驟
635:步驟
700:程序
705:步驟
710:步驟
715:步驟
720:步驟
725:步驟
730:步驟
735:步驟
740:步驟
745:步驟
750:步驟
755:步驟
800:堆疊
815:堆疊
817:外部力
830:堆疊
832:物品
834:物品
845:堆疊
847:外部力/經模擬外部力
860:堆疊
862:物品
864:物品
866:物品
875:堆疊
877:外部力/經模擬外部力
890:堆疊/所得堆疊
900:程序
902:應用程式
904:伺服器
906:狀態估計器
908:視覺系統
910:放置判定器
920:步驟
922:步驟
924:步驟
926:步驟
928:步驟
930:步驟
932:步驟
934:步驟
936:步驟
938:步驟
940:步驟
942:步驟
944:步驟
在以下詳細說明及附圖中揭示本發明之各種實施例。
圖1係圖解說明根據各種實施例之用以堆棧及/或解堆棧異質物品之一機器人系統之一圖式。
圖2係圖解說明根據各種實施例之用以堆棧一或多個物品之一程序之一流程圖。
圖3係圖解說明根據各種實施例之用以判定一經模擬物品堆疊之一模型之一程序的一流程圖。
圖4係圖解說明根據各種實施例之用以選擇物品放置之一程序之一流程圖。
圖5係圖解說明根據各種實施例之用以模擬一經模擬物品堆疊中之物品當中之相互作用之一程序的一流程圖。
圖6係圖解說明根據各種實施例之用以評估一經模擬物品堆疊之一程序之一流程圖。
圖7係圖解說明根據各種實施例之用以評估一經模擬物品堆疊之一程序之一流程圖。
圖8A係根據各種實施例之基於幾何資料之一實例性物品堆疊之一圖式。
圖8B係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。
圖8C係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。
圖8D係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。
圖8E係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。
圖8F係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。
圖8G係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。
圖9係圖解說明判定一托盤及/或物品堆疊之一狀態之一估計之程序的一實施例之一流程圖。
其他申請案之交叉參考
此申請案主張2021年6月16日提出申請之標題為PHYSICS ENGINE BASED EVALUATION OF PALLET STABILITY之美國臨時專利申請案第63/211,375號之優先權,該美國臨時專利申請案出於所有目的以引用之方式併入本文中。
圖1係圖解說明根據各種實施例之用以堆棧及/或解堆棧異質物品之一機器人系統之一圖式。在某些實施例中,圖1之系統100實施圖2之程序200、圖3之程序300、圖4之程序400、圖5之程序500、圖6之程序600、圖7之程序700及/或圖9之程序900之至少一部分。
在所展示之實例中,系統100包含一機器人臂102。在此實例中,機器人臂102係靜止的,但在各種替代實施例中,機器人臂102可為一完全或部分移動的,例如安裝於一軌條上、在一電動底盤上完全移動等。如所展示,機器人臂102用於自一輸送機(或其他源)104拾取任意及/或不同物品(例如,箱、封裝等)且將該等任意及/或不同物品堆疊於一托盤 (例如,平台或其他容座)106上。托盤(例如,平台或其他容座)106可包括一托盤、一容座或者在四個拐角處具有輪子且在四個側中之三個側上至少部分地封閉之基座(有時稱為一個三側「輥托盤」、「輥籠」及/或「輥」或「籠」、「台車」)。在其他實施例中,可使用具有更多、更少側及/或不具有側之一輥或非輪式托盤。在某些實施例中,圖1中未展示之其他機器人可用於將容座106推動至待裝載/卸載之位置中及/或推動至一貨車或其他待運輸之目的地等中。
在某些實施例中,複數個托盤106可安置於機器人臂102周圍(例如,在機器人臂之一臨限接近度內或以其他方式在機器人臂之範圍內)。機器人臂102可同時地(例如,並行及/或同期地)在複數個托盤上堆疊一或多個物品。複數個托盤中之每一者可與一載貨單及/或訂單相關聯。舉例而言,托盤中之每一者可與一預設目的地(例如,客戶、位址等)相關聯。在某些例項中,複數個托盤之一子集可與同一載貨單及/或訂單相關聯。然而,複數個托盤中之每一者可與不同載貨單及/或訂單相關聯。機器人臂102可在複數個托盤上放置分別對應於同一訂單之複數個物品。系統100可判定複數個托盤上之一放置(例如,一物品堆疊)(例如,如何在複數個托盤當中劃分針對一訂單之複數個物品、如何堆疊任何一個托盤上之物品等)。系統100可將一或多個物品(例如,針對一訂單之物品)儲存於一暫存區域或集結區域中,而一或多個其他物品被堆疊於一托盤上。作為一實例,可將一或多個物品儲存於暫存區域或集結區域中直至系統100判定一或多個物品在托盤上(例如,在堆疊上)之各別放置滿足(例如,超過)一臨限適配度或臨限穩定性之時間為止。臨限適配度或臨限穩定性可為一預定義值或至少部分地基於歷史資訊而以實證方式判定之一值。一機器學習 演算法可結合判定一物品在一堆疊上之放置是否將預期滿足(例如,超過)一臨限適配度或臨限穩定性及/或結合判定臨限適配度或臨限穩定性(例如,量測一模擬或模型以評價是否在堆疊上放置物品所對照之臨限值)而實施。
在所展示之實例中,機器人臂102配備有一吸力類型末端執行器(例如,末端執行器108)。末端執行器108具有複數個吸力杯110。機器人臂102用於將末端執行器108之吸力杯110定位於一待拾取物品上方,如所展示,且一真空源提供吸力來抓取物品、將物品自輸送機104提升且將物品放置於容座106上之一目的地位置處。可實施各種類型之末端執行器。
在各種實施例中,系統100包括用於產生工作空間之一模型(例如,工作空間之一3D模型及/或一幾何模型)之一視覺系統。舉例而言,使用安裝於末端執行器108上之3D相機或其他相機112及安裝於其中部署有系統100之一空間中之相機114、116中之一或多者來產生影像資料,該影像資料用於識別輸送機104上之物品及/或判定用以抓取、拾取/放置及在容座106上堆疊物品(或者在暫存區域或集結區域中放置物品,若適用)之一計劃。在各種實施例中,未展示之額外感測器(例如,體現於輸送機104及/或機器人臂102中及/或毗鄰於該輸送機及/或該機器人臂之重量或力感測器、位於吸力杯110之x-y平面及/或z方向(垂直方向)中之力感測器等)可用於識別位於其中物品可被定位及/或重新定位(例如,藉由系統100)之輸送機104及/或其他源及/或集結區域上之物品、判定該等物品之屬性、抓取該等物品、拾取該等物品、將該等物品移動穿過一所判定軌跡及/或將該等物品放置於容座106上或其中之一目的地位置中。
在所展示之實例中,相機112安裝於末端執行器108之主體之側上,但在某些實施例中,相機112及/或額外相機可安裝於其他位置中,諸如安裝於末端執行器108之主體之底面上(例如,自吸力杯110之間的一位置向下指向),或安裝於機器人臂102之分段或其他結構或者其他位置上。在各種實施例中,諸如112、114及116之相機可用於讀取文字、標誌、圖片、圖式、影像、標記、條碼、QR碼或者在輸送機104上之物品上可見及/或構成該等物品之其他經編碼及/或圖形資訊或內容。
在某些實施例中,系統100包括一施配器裝置(未展示),該施配器裝置經組態以回應於控制信號而自一間隔件材料供應施配一定數量之間隔件材料。施配器裝置可安置於機器人臂102上,或安置於工作空間附近(例如,安置於工作空間之一臨限距離內)。舉例而言,施配器裝置可設置於機器人臂102之工作空間內,使得施配器裝置在容座106(例如,托盤)上或其周圍或者在機器人臂102之末端執行器108之一預定距離內施配間隔件材料。在某些實施例中,施配器裝置包括一安裝硬體,該安裝硬體經組態以將施配器裝置安裝於機器人臂102之一末端執行器108上或毗鄰於該末端執行器。安裝硬體係一托架、一板條及一或多個緊固件等中之至少一者。作為一實例,施配器裝置可包括一偏壓裝置/機構,該偏壓裝置/機構對施配器裝置內之供應材料加偏壓使其自施配器裝置射出施配。施配器裝置可包含一閘控結構,該閘控結構用於控制間隔件材料之施配(例如,防止在無閘控結構之致動之情況下施配間隔件材料,並准許回應於致動而施配待施配之間隔件材料)。
施配器裝置可包括經組態以接收一控制信號之一通信介面。舉例而言,施配器裝置可與一或多個終端(諸如控制電腦118)進行通 信。施配器裝置可經由一或多個有線連接及/或一或多個無線連接與一或多個終端進行通信。在某些實施例中,施配器裝置將資訊傳遞至一或多個終端。舉例而言,施配器裝置可將施配器裝置之一狀況之一指示(例如,施配器裝置是否正常地操作之一指示)、包括於施配器裝置中之間隔件材料之一類型之一指示、施配器裝置中之間隔件材料之一供應位準之一指示(例如,施配器裝置是否係滿的、空的、半滿的等之一指示)發送至控制電腦118。控制電腦118可結合控制施配器裝置以施配一定數量之間隔件材料而使用。舉例而言,控制電腦118可判定將結合堆棧一或多個物品而使用一間隔件,(諸如)以改良容座106上/中之物品堆疊之預期穩定性之一穩定性。控制電腦118可判定間隔件材料之數量(例如,間隔件之一數目、間隔件材料之一量等)以結合堆棧一或多個物品而使用。舉例而言,可至少部分地基於判定用於堆棧一或多個物品之一計劃而判定將結合堆棧一或多個物品而使用之間隔件材料之數量。
在某些實施例中,施配器裝置包括一致動器,該致動器經組態以回應於控制信號而自一間隔件材料供應施配一定數量之間隔件材料。回應於判定將結合堆棧一或多個物品而使用一間隔件/間隔件材料,控制電腦118可產生控制信號以致使致動器施配該數量之間隔件材料。控制信號可包括對將用作間隔件之間隔件材料之數量之一指示。
根據各種實施例,一間隔件或一間隔件材料係剛性塊。舉例而言,間隔件或一間隔件材料可為一剛性發泡體塊。在某些實施例中,一間隔件或一間隔件材料包括聚氨酯。
在某些實施例中,間隔件材料供應包括複數個預切割塊。複數個預切割塊可被預裝載至一彈簧加載之筒中,該彈簧加載之筒將複數 個預切割塊偏壓至一施配端。回應於一預切割塊自該筒被施配,複數個預切割塊中之另一者被推動至下一線內位置以自該筒被施配。
在某些實施例中,間隔件材料供應包括一較大間隔件材料塊、一間隔件材料條帶及一間隔件材料捲中之一或多者。施配器裝置或系統100可包括經組態以自間隔件材料供應中切割該數量之間隔件材料之一切割器。回應於控制信號被提供至致動器,致動器可致使切割器自間隔件材料供應中切割該數量之間隔件材料。
在某些實施例中,間隔件材料供應包括一液體前驅物。回應於控制信號被提供至致動器,致動器致使將該數量之間隔件材料施配至一托盤或托盤上之一物品堆疊之一表面上。經施配前驅物可在被施配至托盤或托盤上之物品堆疊之表面上之後變硬。
在某些實施例中,間隔件材料供應包括一擠製材料。回應於控制信號被提供至致動器,將擠製材料填充至一所要大小及一所要堅實度中之一或多者。可回應於擠製材料被填充至所要大小及所要堅實度中之一或多者之一判定而將擠製材料密封。在某些實施例中,擠製材料填充有一流體。流體可為空氣、水等中之一或多者。在某些實施例中,擠製材料填充有一凝膠。
在各種實施例中,一機器人控制之施配器工具或機器填充箱之間及/或毗鄰於箱之空隙,以為將被放置之下一箱/層準備表面區域。在某些實施例中,系統100可使用一機器人臂102來拾取/放置預定義切割材料及/或可動態地修整間隔件材料以適合將被放置之下一物品之表面區域之需要。在某些實施例中,機器人控制之施配器裝置或包括機器人控制之施配器之機器人堆棧系統包括一裝置,該裝置用以結合針對系統判定通 常可能不適合於托盤表面區域上(例如,一先前層之一上部表面上)之下一箱或物品準備表面區域而自一長管及/或封裝進行修整以定尺寸成一矩形實體並將該矩形實體放置於一現有托盤上。間隔件可包含但不限於發泡體、一經充氣空氣塑膠包、木材、金屬、塑膠等。施配器裝置可直接在托盤上放置(例如,射出、施配等)矩形實體(例如,間隔件),及/或裝置可在機器人臂附近施配矩形實體(例如,間隔件),且末端執行器可將矩形實體(例如,間隔件)重新定位/放置於托盤表面區域上。施配器裝置可施配一預定量(例如,一恰當量或一預期量)之間隔件材料以矯正或改良層上(例如,層之上部表面上)之箱或物品之間的表面區域差異,從而為下一箱或物品準備表面區域。
進一步參考圖1,在所展示之實例中,系統100包含一控制電腦118,該控制電腦經組態以在此實例中經由無線通信(但在各種實施例中,以有線及無線通信中之一者或兩者)與諸如機器人臂102、輸送機104、末端執行器108及感測器(諸如相機112、114及116及/或重量感測器、力感測器及/或圖1中未展示之其他感測器)之元件進行通信。在各種實施例中,控制電腦118經組態以使用來自感測器(諸如相機112、114及116及/或重量感測器、力感測器及/或圖1中未展示之其他感測器)之輸入來查看、識別及判定待裝載至容座106中及/或自該容座卸載之物品之一或多個屬性。在各種實施例中,控制電腦118使用儲存於控制電腦118上及/或該控制電腦可存取之一庫中之物品模型資料(例如)基於影像及/或其他感測器資料而識別一物品及/或其屬性。控制電腦118使用對應於一物品之一模型來判定及實施用以堆疊該物品以及一目的地(諸如容座106)中/上之其他物品之一計劃。在各種實施例中,使用物品屬性及/或模型來判定用以 抓取、移動及在一目的地位置(例如,判定放置物品之一所判定位置)中放置一物品之一策略作為用以在容座106中/上堆疊物品之一計劃/重新計劃程序之一部分。
在所展示之實例中,控制電腦118連接至一「隨選(on demand)」遙操作裝置122。在某些實施例中,若控制電腦118無法以一完全自動化模式繼續進行,舉例而言,用以抓取、移動及放置一物品之一策略無法被判定及/或以一方式失敗使得控制電腦118不具有用以以一完全自動化模式完成拾取及放置物品之一策略,則控制電腦118提示一人類使用者124(例如)藉由使用遙操作裝置122而進行干預,以操作機器人臂102及/或末端執行器108來抓取、移動及放置物品。
與系統100之操作有關之一使用者介面可由控制電腦118及/或遙操作裝置122提供。使用者介面可提供系統100之一當前狀況,包含與托盤(或與其相關聯之物品堆疊)之一當前狀態、被堆棧或解堆棧之一當前訂單或載貨單、系統100之一效能(例如,按時間被堆棧/解堆棧之物品之一數目)等有關之資訊。一使用者可選擇使用者介面上之一或多個元件,或者以其他方式向使用者介面提供一輸入,以啟動或暫停系統100及/或系統100中之一特定機器人臂。
根據各種實施例,系統100實施一機器學習程序以對一托盤之一狀態進行模型化,(諸如)以產生托盤上之一堆疊之一模型。機器學習程序可包含用於模型化托盤之狀態之一自適應及/或動態程序。機器學習程序可定義及/或更新/改良一程序,系統100藉由該程序而產生托盤之狀態之一模型。模型可至少部分地基於來自系統100中之一或多個感測器(諸如機器人臂102之工作空間內之一或多個感測器或感測器陣列)之輸入(例 如,自該一或多個感測器獲得之資訊)而產生。模型可至少部分地基於堆疊之一幾何結構、一視覺回應(例如,由工作空間中之一或多個感測器獲得之資訊)及機器學習程序等而產生。系統100可結合判定用於堆棧/解堆棧一或多個物品之一高效(例如,最大化/最佳化一效率)方式而使用模型,且用於堆棧/解堆棧之方式可受一最小臨限穩定性值約束。用於堆棧/解堆棧一或多個物品之程序可由一使用者管理者組態。舉例而言,藉以最大化用於堆棧/解堆棧之程序之一或多個度量可為可組態的(例如,由使用者/管理者設定)。
在堆棧一或多個物品之情境中,系統100可結合以下操作而產生托盤之狀態之模型:判定是否在托盤上(例如,在堆疊上)放置一物品,且選擇用於在托盤上放置物品之一計劃,包含將在其處放置物品之一目的地位置、沿著其將物品自一源位置(例如,一當前目的地,諸如一輸送機)移動至目的地位置之一軌跡。系統100亦可結合判定用於釋放物品或以其他方式在托盤上放置物品(例如,將一力施加至物品以將物品緊貼在堆疊上)之一策略而使用模型。托盤之狀態之模型化可包含模擬物品在托盤上(例如,在堆疊上)之不同目的地位置處之放置以及判定預期由物品在不同位置處之放置所產生之對應不同預期適配度及/或預期穩定性(例如,一穩定性度量)。系統100可選擇一目的地位置,針對該目的地位置,預期適配度及/或預期穩定性滿足(例如,超過)一對應臨限值。另外或另一選擇係,系統100可選擇最佳化(例如,堆疊上之物品之)預期適配度及/或(例如,堆疊之)預期穩定性之一目的地位置。
相反,在自一托盤(例如,托盤上之一堆疊)解堆棧一或多個物品之情境中,系統100(例如,控制電腦118)可結合以下操作而產生 托盤之狀態之模型:判定是否移除托盤上(例如,堆疊上)之一物品,且選擇用於自托盤移除物品之一計劃。托盤之狀態之模型可結合判定自托盤移除物品之一次序而使用。舉例而言,控制電腦118可使用模型來判定一物品之移除是否預期致使托盤(例如,堆疊)之狀態之穩定性下降至低於一臨限穩定性。系統100(例如,控制電腦118)可模擬一或多個物品自托盤之移除且選擇自托盤移除物品之一次序,該次序最佳化托盤(例如,堆疊)之狀態之穩定性。系統100可使用模型來判定將自托盤移除之下一物品。舉例而言,控制電腦118可至少部分地基於在物品之移除期間及/或之後的堆疊之一預期穩定性超過一臨限穩定性之一判定而選擇一物品作為將自托盤移除之下一物品。模型及/或機器學習程序可結合判定用於自堆疊拾取一物品之策略而使用。舉例而言,在一物品被選擇為將自堆疊移除之下一物品之後,系統100可判定用於拾取該物品之策略。用於拾取該物品之策略可至少部分地基於托盤之狀態(例如,堆疊之一所判定穩定性)、物品之一屬性(例如,一大小、形狀、重量或預期重量、重心、封裝類型等)、物品之一位置(例如,相對於堆疊中之一或多個其他物品)、堆疊上之另一物品之一屬性(例如,一毗鄰物品之一屬性等)等。
根據各種實施例,結合改良抓取策略(例如,用於抓取一物品之策略)而實施一機器學習程序。系統100可獲得與待堆棧/解堆棧之一或多個物品有關之屬性資訊。屬性資訊可包括以下各項中之一或多者:物品之一定向、一材料(例如,一封裝類型)、一大小、一重量(或預期重量)或者一重心等。系統100亦可獲得一源位置(例如,與將從中拾取物品之輸入輸送機有關之資訊),且可獲得與將在上面放置物品之一托盤(或將從中判定目的地托盤之一組托盤,諸如與物品被堆疊之次序對應之一組托盤) 有關之資訊。結合判定用於拾取及放置物品之一計劃,系統100可使用與物品有關之資訊(例如,屬性資訊、目的地位置等)來判定用於拾取物品之一策略。拾取策略可包含一拾取位置(例如,物品上之一位置,機器人臂102將(諸如)經由末端執行器而在該位置處嚙合物品)之一指示。拾取策略可包含將被施加以拾取物品之一力及/或機器人臂102在將物品自一源位置移動至目的地位置之同時將藉以抓取物品之一固持力。系統100可使用機器學習程序至少部分地基於與物品有關之資訊(例如,屬性資訊、目的地位置等)與拾取物品之效能(例如,與拾取及放置物品或類似物品(諸如共用一或多個類似屬性之物品)之過去反覆相關聯之歷史資訊)之間的一關聯而改良拾取策略。
根據各種實施例,系統100可回應於使用一間隔件或一定數量之間隔件材料將產生托盤上之一經改良物品堆疊(例如,改良物品堆疊之穩定性)之一判定而判定結合堆棧一或多個物品來使用該間隔件或該數量之間隔件材料。在某些實施例中,對於結合在托盤上放置一組N個物品而放置一或多個間隔件將會產生托盤上之一經改良物品堆疊之判定係至少部分地基於一堆積密度、一水平頂部表面及一穩定性中之一或多者。在某些實施例中,對於結合在托盤上放置一組N個物品而放置一或多個間隔件將會產生托盤上之一經改良物品堆疊之判定係至少部分地基於如下一判定:具有該組N個物品之物品堆疊之一堆積密度比在不具有一或多個間隔件之情況下將該組N個物品放置於托盤上時之一堆積密度高。在某些實施例中,對於結合在托盤上放置一組N個物品而放置一或多個間隔件將會產生托盤上之一經改良物品堆疊之判定係至少部分地基於如下一判定:一頂部表面比在不具有一或多個間隔件之情況下將該組N個物品放置於托盤上 時之一頂部表面更水平。在某些實施例中,對於結合在托盤上放置一組N個物品而放置一或多個間隔件將會產生托盤上之一經改良物品堆疊之判定係至少部分地基於如下一判定:具有該組N個物品之物品堆疊之一穩定性比在不具有一或多個間隔件之情況下將該組N個物品放置於托盤上時之一穩定性高。N可為一正整數(例如,小於將在完整托盤中堆棧之物品之一總數目之一正整數)。
作為一實例,由於N可小於待堆棧之物品之一總數目,因此系統100可在其對物品堆疊之最佳化方面受到限制(例如,機器人系統可一次僅計劃N個物品之放置)。因此,使用一或多個間隔件增加了與放置N個物品相關聯之自由度數。系統100可使用一或多個間隔件來最佳化N個物品之堆疊(或達成具有N個物品之一「足夠好」的堆疊,諸如滿足一最小穩定性臨限值之一堆疊)。系統100可結合判定是否使用一或多個間隔件、要使用之間隔件之一數目、間隔件之一放置等使用一成本函數。舉例而言,成本函數可包含以下各項中之一或多者:一穩定性值、放置一或多個物品之一時間、物品堆疊之一堆積密度、物品堆疊之上部表面之頂部之一扁平度值或可變性程度以及供應材料之一成本等。
根據各種實施例,控制電腦118結合改良一容座106(例如,一托盤)上之一物品堆疊之一穩定性而控制系統100在該容座106或該物品堆疊上放置一間隔件。作為一實例,可回應於如下一判定而放置間隔件:若使用間隔件,則估計物品堆疊之一穩定性(例如,可能諸如超過一預定義可能性臨限值之一機率)得以提高。作為另一實例,控制電腦118可回應於如下一判定而控制機器人系統使用間隔件:物品堆疊之一穩定性小於一臨限穩定性值,及/或結合一組物品(例如,一組N個物品,N係一整 數)之放置估計物品堆疊之穩定性小於一臨限穩定性值。
根據各種實施例,控制電腦118至少部分地基於一物品堆疊之一模型及/或放置一組一或多個物品之一模擬而判定一物品堆疊之穩定性。一電腦系統(例如,控制電腦118,或一遠端伺服器等)可獲得(例如,判定)一物品堆疊之一當前模型,且模型花(例如,模擬)一組物品之放置。結合模型化物品堆疊,可判定物品堆疊之一預期穩定性。物品堆疊之模型化可包含結合該組物品之放置之模型化而模型化一間隔件之放置。
在某些實施例中,控制電腦118至少部分地基於物品堆疊(或經模擬物品堆疊)及/或間隔件之一頂部表面之一或多個屬性而判定物品堆疊(或經模擬物品堆疊)之穩定性。舉例而言,可結合判定物品堆疊之穩定性而使用頂部表面扁平之一程度之一量測。一箱在一扁平表面上之放置可產生一穩定放置及/或物品堆疊。作為另一實例,可結合判定一物品在物品堆疊上之放置之穩定性或預期穩定性而使用頂部表面上之一扁平區之一表面積。物品堆疊之一頂部表面上之一扁平區相對於被放置於物品堆疊上之一物品之一底部表面越大,物品堆疊之穩定性將滿足(例如,超過)一臨限穩定性值之可能性越大。
根據各種實施例,系統100產生一托盤或托盤上之一或多個物品之一堆疊之一模型,且至少部分地基於托盤或托盤上之一或多個物品之堆疊之模型而判定結合一或多個物品之堆棧來放置間隔件或間隔件材料。系統100可產生一托盤或托盤上之一或多個物品之一堆疊之至少一頂部表面的一模型,判定接下來將放置於托盤上之一組N個物品(例如,N係一正整數),判定與在不具有間隔件之情況下放置該組N個物品之一所得堆疊相比,結合在托盤上放置該組N個物品而放置一或多個間隔件將產生托 盤上之一經改良物品堆疊,產生一或多個控制信號以致使致動器施配與一或多個間隔件對應之該數量之間隔件材料,且結合在托盤上放置該組N個物品而將一或多個控制信號提供至致動器。
根據各種實施例,待堆棧物品當中之物品(例如,物品類型)之變化可使物品之堆棧以一穩定方式(例如,物品堆疊之穩定性根據其而滿足一臨限穩定性值之一方式)複雜化。在某些實施例中,控制電腦118可僅能夠預測待堆棧之特定數目個物品。舉例而言,系統可具有待堆棧之N個物品之一佇列/暫存區,其中N係一正整數。N可為待堆疊於一托盤上之物品之一總數目之一子集。舉例而言,N可相對於待堆疊於托盤上之物品之總數目係相對小的。因此,系統100可僅能夠使用接下來的N個已知物品來最佳化物品之堆疊。舉例而言,系統100可根據物品堆疊之當前狀態(例如,一當前模型)及與接下來的N個待堆疊物品相關聯之一或多個屬性而判定用以堆疊一或多個物品之一計劃。在某些實施例中,使用一或多個間隔件可提供將堆疊接下來的N個物品之方式之靈活性及/或可改良物品堆疊之穩定性。
各種實施例包含在一托盤上堆棧相對較大數目個混合箱或物品。各種待堆棧箱及物品可具有不同屬性,諸如高度、形狀、大小、剛度、封裝類型等。跨越各種箱或物品之一或多個屬性之變化可導致難以將物品以一穩定方式放置於一托盤上。在某些實施例中,系統100(例如,控制電腦118)可判定一物品之一目的地位置(例如,將在其處放置一物品之一位置),該物品與在被放置物品下方之箱或其他物品相比具有一較大表面積(例如,一較大底部表面)。在某些實施例中,具有不同高度(例如,不同箱高度)之物品可放置於托盤之相對較高區域上(例如,比等於一 最大托盤高度乘以0.5之一高度臨限值大的一高度、比等於一最大托盤高度乘以2/3之一高度臨限值大的一高度、比等於一最大托盤高度乘以0.75之一高度臨限值大的一高度、比等於一最大托盤高度乘以另一預定義值之一高度臨限值大的一高度)。
根據各種實施例,結合改良間隔件材料施配/使用策略(例如,用於結合堆棧一或多個物品而使用間隔件材料之策略)來實施一機器學習程序。系統100可獲得與一或多個待堆棧/解堆棧物品有關之屬性資訊,及與將結合堆棧/解堆棧一或多個物品而使用之一或多個間隔件有關之屬性資訊。屬性資訊可包括以下各項中之一或多者:物品之一定向、一材料(例如,一間隔件材料類型)、一大小、一重量(或預期重量)、一重心、一剛度、一尺寸等。系統100亦可獲得一源位置(例如,與將自其拾取物品之輸入輸送機有關之資訊),且可獲得與將在上面放置物品之一托盤(或將自其判定目的地托盤之一組托盤,諸如與堆疊物品之次序對應之一組托盤)有關之資訊。結合判定用於拾取及放置物品之一計劃,系統100可使用與物品有關之資訊(例如,屬性資訊、目的地位置等)來判定用於堆棧物品(例如,拾取及/或放置物品)之一策略。堆棧策略可包含對一拾取位置(例如,機器人臂102將諸如經由末端執行器而在其處嚙合物品的物品上之一位置)及一目的地位置(例如,托盤/容座106或物品堆疊上之一位置)之一指示。堆棧策略可包含將被施加以拾取物品之一力及/或機器人臂102在將物品自一源位置移動至目的地位置之同時將藉以抓取物品之一固持力、機器人臂將沿著其將物品移動至目的地位置之一軌跡、對將結合在目的地位置處放置物品而使用之間隔件材料(若存在)之一數量之一指示,以及用於放置間隔件材料之一計劃。系統100可使用機器學習程序至少部分地基於 與物品有關之資訊(例如,屬性資訊、目的地位置等)與以下各項中之一或多者之間的一關聯而改良堆棧策略:(i)拾取及/或放置物品之表現(例如,與拾取及放置物品或類似物品(諸如共用一或多個類似屬性之物品)之過去反覆相關聯之歷史資訊)、(ii)在物品被放置於目的地位置處之後物品堆疊之一穩定性之表現(諸如相對於使用物品堆疊之一模型產生之一預期穩定性)(例如,與堆棧物品或類似物品(諸如共用一或多個類似屬性之物品)之過去反覆相關聯之歷史資訊),及(iii)在物品及/或間隔件材料被放置於目的地位置處之後物品堆疊之一穩定性之表現(諸如相對於使用物品堆疊之一模型產生之一預期穩定性)(例如,與堆棧物品或類似物品及/或間隔件(諸如共用一或多個類似屬性之物品/間隔件)之過去反覆相關聯之歷史資訊)。在某些實施例中,系統100可使用機器學習程序至少部分地基於與間隔件及/或被堆棧之一或多個物品有關之資訊(例如,屬性資訊、目的地位置等)和使用一或多個間隔件堆棧一組物品之一穩定性表現(相對於使用一或多個間隔件堆棧該組物品之一預期穩定性(例如,基於使用物品堆疊之一模型對物品堆棧之一模擬之預期穩定性))之間的一關聯而改良結合堆棧策略對一或多個間隔件之使用。
由系統100產生之模型可對應於一幾何模型,或至少部分地基於該幾何模型。在某些實施例中,系統100至少部分地基於已被放置之一或多個物品(例如,系統100控制機器人臂102來進行放置之物品)、分別與一或多個物品之至少一子集相關聯之一或多個屬性、工作空間內之一或多個物件(例如,預定物件,諸如一托盤、一(若干)機器人臂、一擱架系統、一斜槽或包括於工作空間中之其他基礎設施)而產生幾何模型。可至少部分地基於在控制電腦118上運行一物理引擎以模型化物品之一堆疊(例 如,模型化一物品堆疊之一狀態/穩定性等)而判定幾何模型。可基於工作空間之各種組件(諸如一物品與另一物品、一物件或施加至堆疊之一經模擬力(例如,以模型化使用一堆高機或其他裝置來提升/移動一物品堆疊位於上面之一托盤或其他容座))之一預期相互作用而判定幾何模型。
根據各種實施例,系統100之控制電腦118諸如經由一有線或無線連接(例如,網路)與伺服器126進行通信。伺服器126提供用於模擬一組物品之放置並提供對下一物品之一放置或一組物品之一放置序列之一指示/建議之一服務。控制電腦118可向伺服器126查詢對一特定物品之一放置或一特定物品之一組可能放置之一指示(例如,可然後在控制電腦118本端對該指示進行評估以選擇一放置)。回應於獲得一物品之放置,控制電腦118判定用以控制機器人臂102來根據該放置拾取及放置該物品之一計劃。控制電腦118可向伺服器126查詢對每一物品或一組物品之一放置之一指示(例如,每當機器人系統將放置一物品或請求該組物品之一集合放置序列時發送一查詢),或對一物品堆疊(諸如一經模擬物品堆疊)之一評估。結合向伺服器126查詢與一放置有關之資訊,控制電腦118可發送與將被判定/模擬放置之一或多個物品以及工作空間之所估計狀態有關之資訊,諸如一當前物品堆疊之一幾何模型。結合向伺服器126查詢對一經模擬物品堆疊之一評估或實體模擬,控制電腦118可發送與經模擬堆疊之一幾何模型有關之資訊、包含於經模擬堆疊中之一或多個物品之一指示、一或多個物品之一或多個屬性等。控制電腦118亦可向伺服器126提供對物理引擎將實施以模擬及評估經模擬物品堆疊之一情景之一指示。
根據各種實施例,控制電腦118基於一狀態估計器而判定(例如,在本端)一或多個物品之放置。控制電腦可基於一放置模型而獲得 一或多個物品之放置。狀態估計器可由伺服器126訓練/自該伺服器獲得。伺服器126模擬狀態估計器模型與放置模型(例如,具有變化的參數化等之模型)之各種組合/排列以判定狀態估計器模型及/或放置模型(例如,將由系統100(諸如由控制電腦118)部署之模型)。
在某些實施例中,伺服器126評估用於結合拾取及放置(例如,堆棧/解堆棧)一組物品而判定物品放置之複數個放置模型。伺服器126可向控制電腦118提供一放置模型,該放置模型將用於判定將由機器人臂102拾取及放置(例如,在控制電腦118之控制下)之一組物品之放置。
在某些實施例中,伺服器126評估複數個放置模型以判定一放置模型,將結合操作一機器人臂來拾取及放置物品而使用該放置模型。可針對一組特定物品選擇(例如,判定)放置模型。舉例而言,機器人臂102可經控制以使用不同放置模型來判定不同組物品(例如,不同物品列表、載貨單、訂單等)之放置(例如,位置、定向、次序等)。在某些實施例中,系統100可組態以接收對一物品堆疊之一特性之選擇,或將偏好或偏向於與物品堆疊相關聯之其他型樣。作為一實例,系統100自一使用者或基於一特定訂單(諸如基於將經由其而運輸一物品堆疊之一運輸類型等)自動地接收對一物品堆疊之一型樣之使用者設定或其他偏好之選擇。對一放置類型之一偏好之選擇之實例可包含:(i)預期產生用以堆棧/解堆棧一組物品之一最低成本(例如,時間、電力等)之一放置模型,(ii)預期產生物品堆疊之一最高穩定性(或超過一臨限穩定性之一穩定性)之一放置模型,(iii)預期產生物品堆疊之一最高密度(或超過一密度臨限值之密度)之一放置模型,(iv)預期產生具有根據一評分函數之最高評分(或超過一臨限評分之一評分)之一物品堆疊之一放置模型,(v)預期耐受預定義外部力(例 如,力之一方向、一力之一臨限範圍等)之一放置模型等。可結合選擇一適當放置模型而使用各種其他特性或偏好。
在某些實施例中,複數個放置模型可針對每一放置模型包含模擬箱之放置或以其他方式模型化物品堆疊(例如,作為一基座之托盤或其他容座以及堆疊於上面之個別物品)及表徵所得物品堆疊。伺服器126可針對每一放置模型執行複數個(例如,數個)模擬且彙總結果以表徵放置模型。表徵所得物品堆疊(及/或放置模型)包含判定與由模擬產生之物品堆疊相關聯之一或多個特性或型樣。舉例而言,伺服器126基於針對物品堆疊計算關於一預定義評分函數之一評分(例如,值)而表徵所得物品堆疊。在某些實施例中,表徵所得物品堆疊(例如,經模擬物品堆疊)包含基於一物理引擎而模擬物品或物件當中之相互作用。表徵物品堆疊之其他實例可包含針對物品堆疊判定一堆積密度、一穩定性、完成對應放置之一預期時間、完成對應放置之一成本(例如,基於一預定義成本函數)、回應於施加一外部力之物品堆疊之預期穩定性等。可判定關於物品堆疊之各種其他特性且使用該等各種其他特性來量測所得物品堆疊之一優度。
可並行地運行對複數個放置模型之至少一子集之評估。回應於使用複數個放置模型來模擬放置,伺服器126判定將由系統100結合提供物品放置來實施之一放置模型。伺服器126可提供放置模型至放置情景或偏好之一映射以允許系統100選擇一放置模型來實施以用於堆疊一特定物品堆疊(例如,基於一使用者或系統偏好,諸如以最佳化物品堆疊之一特定特性等)。在某些實施例中,至少部分地基於在被評估之複數個放置模型之複數個模擬當中執行一內插而判定待實施之放置模型。在某些實施例中,複數個放置模型之至少一子集具有不同雜訊型樣(例如,針對由 視覺系統獲得之感測器資料而模型化之雜訊及/或針對一幾何模型與由一機器人臂根據使用該幾何模型產生之一計劃進行之實際物品放置之間的一差異而模型化之雜訊等)。
評估複數個放置模型可包含模型化/模擬一或多個預定義外部力。在某些實施例中,模型化/模擬一或多個預定義外部力包含獲得一(若干)待模擬力之一力型樣,且使用一物理引擎來將力施加至經模擬物品堆疊並模擬一所得堆疊(例如,諸如在一逐物品或逐物件基礎上模擬力與經模擬堆疊之間的相互作用)。外部力可由一使用者(例如,經由用戶端系統)或根據力之類型及量值(例如,重力、表示物品堆疊之一移動(諸如經由一堆高機)之一力、表示另一物件與物品堆疊之一碰撞之一力等)、根據一預定義力型樣來定義。
在某些實施例中,伺服器126結合模擬一或多個物品之放置而調用一物理引擎。物理引擎可為一服務,該服務對物品堆疊當中之複數個物品之間與真實世界物理(包含相對於物品堆疊作用之力,諸如重力)之一相互作用進行模型化。物理引擎可進一步經調用以模擬外部力,諸如根據一使用者輸入或根據由物品堆疊之模擬提供之一指令。舉例而言,物理引擎模擬當托盤將自一工作空間被移除時作用於物品堆疊上之一外部力,諸如當托盤由一堆高機拾取及/或隨著堆高機移動由堆高機攜載時作用於一物品堆疊上之力。作為另一實例,物理引擎模擬基於與另一物件(諸如另一物品、機器人臂102等)之一無意碰撞而作用於物品堆疊上之一外部力。
根據各種實施例,回應於機器人在托盤上放置一物品,用於估計托盤及/或托盤上之一物品堆疊之一狀態之一系統記錄與物品之放 置有關之資訊(例如,物品之一位置、物品之一大小等)。舉例而言,系統基於機器人已將各種物品放置在托盤上之位置而具有對系統之狀態之一邏輯知識。邏輯知識可對應於幾何資料,諸如基於控制機器人之方式而獲得之資訊。然而,邏輯知識可不同於托盤及/或托盤上之一物品堆疊之真實世界狀態。類似地,如上文所論述,由視覺系統偵測到之托盤及/或托盤上之一物品堆疊之狀態(例如,基於感測器資料而模型化之真實世界狀態)可不同於諸如基於感測器資料中之雜訊或者不準確/不完整感測器資料之真實世界狀態。各種實施例使用幾何資料(例如,邏輯知識)及感測器資料來組合世界之視圖。使用幾何資料及感測器資料兩者來模型化世界填充了每一資料集之世界視圖中之間隙。舉例而言,可結合判定是否需要更新/精細化托盤或托盤上之物品堆疊之一預期狀態來使用基於視覺系統而獲得之感測器資料。與單獨使用感測器或單獨使用幾何資料將可能之情形相比,根據各種實施例之狀態估計提供對托盤及/或托盤上之物品堆疊之狀態之較好估計。此外,可結合去往/來自一托盤之一堆棧/解堆棧物品來使用對托盤及/或托盤上之物品堆疊之狀態之估計。結合判定去往/來自一托盤之堆棧/解堆棧物品來使用對托盤及/或托盤上之物品堆疊之狀態之估計之較好估計可提供較好放置,此可產生較好的最終托盤(例如,較緊密/密集堆積之托盤、較穩定托盤等)。
在某些實施例中,回應於使用幾何資料之托盤或物品堆疊之預期狀態與使用視覺系統(例如,感測器資料)之托盤或物品堆疊之狀態充分不同之一判定,系統100可向一使用者提供一指示。舉例而言,系統100提示使用者確認使用幾何資料之預期狀態是否係正確的、使用視覺系統之狀態是否係正確的或是否兩者皆不正確,且使用者將修改當前狀態。 使用者可使用一使用者介面來調和使用幾何資料之預期狀態與使用視覺系統之狀態之間的差異。使用幾何資料之預期狀態與使用視覺系統之狀態充分不同之判定可基於兩種狀態或狀態模型之間的一差異超過一預定義差異臨限值之一判定。
根據各種實施例,用於估計托盤及/或托盤上之物品堆疊之狀態之系統實施於一不同計算系統(諸如一(若干)伺服器(例如,伺服器126))上。用於使用幾何資料來模型化狀態、使用視覺系統(例如,感測器資料)來模型化狀態以及更新預期狀態(例如,基於對狀態之間的差異之一調和)之模組或演算法(例如,各種狀態估計模型)可為高成本的且需要相對大量之計算能力。此外,在機器人工作空間或控制機器人之電腦系統(例如,控制電腦118)處之處理能力可對用以執行模組之計算能力及/或頻寬具有約束。在某些實施例中,控制機器人之系統可獲得感測器資料及與待放置物品有關之資訊,且經由一或多個網路將感測器資料及與待放置物品有關之資訊發送至一伺服器。在某些實施例中,複數個伺服器(例如,伺服器126)可結合實施用於估計系統之狀態(例如,托盤之狀態及/或托盤上之物品堆疊之狀態)之不同模組來使用。舉例而言,用於使用幾何資料來模型化狀態之一模組可由一第一伺服器執行、用於使用視覺系統來模型化狀態之一模組可由一第二伺服器執行,且用於至少部分地基於狀態之間的差異而更新預期狀態之一模組可由一第三伺服器執行。可實施用於判定預期狀態之不同模組之各種伺服器可彼此進行通信。
在某些實施例中,一狀態估計器可儲存及/或管理(i)基於幾何資料而模型化之狀態與(ii)基於視覺系統而模型化之狀態之間的一差異。舉例而言,狀態估計器儲存/管理托盤及/或托盤上之物品堆疊之一當 前狀態。狀態估計器可為由一電腦系統(諸如控制機器人臂102來拾取及放置一組物品之控制電腦118)或由控制機器人之機器人系統與其進行通信之一伺服器(例如,伺服器126)執行之一模組。
根據各種實施例,可結合在每一物品之計劃/放置期間判定一當前狀態而使用狀態估計器。舉例而言,控制機器人及/或判定用於移動物品之一計劃之機器人系統可結合判定用以移動物品之一計劃而查詢狀態估計器。可使用(i)與待放置物品有關之資訊及(ii)由視覺系統獲得之當前感測器資料來查詢狀態估計器。使用幾何資料之當前狀態可由狀態估計器儲存或存取。在某些實施例中,可結合向托盤狀態估計器查詢當前狀態而將與當前幾何資料有關之資訊傳遞至狀態估計器。在某些實施例中,由於使用幾何資料及視覺系統(例如,感測器資料)兩者來判定當前狀態之計算強度,因此可在預定數目個物品(例如,N個物品,N係一整數)之一放置之後向狀態估計器查詢當前狀態。舉例而言,可以一規則頻率向狀態估計器進行查詢。作為另一實例,可回應於被放置的物品(例如,一先前所放置物品)具有一不規則形狀或一特定封裝類型(例如,具有極小剛度之一封裝類型,諸如一塑膠袋)之一判定而向狀態估計器進行查詢。狀態估計器可由控制電腦118或伺服器126實施。
在某些實施例中,在狀態估計器經調用以執行關於一組物品之放置之模擬之情形中,狀態估計器在一物品之放置或一物品之一模擬放置之後反覆地更新狀態(例如,世界、托盤及/或托盤上之物品堆疊等)之其內部模型。狀態估計器之內部模型可與托盤及/或托盤上之物品堆疊之一當前狀態對應。狀態估計器可在每一物品之放置之後更新其內部模型。舉例而言,控制機器人之機器人系統可提供與物品有關之資訊(例如,物 品之特性,諸如尺寸、重量、重心等)、由視覺系統獲得之感測器資料及/或與機器人經控制以放置物品之位置對應之幾何資料。回應於接收到與物品有關之資訊、感測器資料及/或幾何資料,狀態估計器可更新其內部模型。舉例而言,狀態估計器可(i)將感測器資料提供至用於使用感測器資料來模型化狀態之一模組,(ii)向用於使用幾何資料來模型化狀態之模組提供幾何資料及/或與物品有關之資訊,且(iii)基於以下各項而更新其內部模型:基於感測器資料之狀態之一模型及/或基於幾何資料之狀態之一模型(例如,兩種狀態之間的一差異)。
可使用托盤作為一參考(例如,托盤之一底部可用作一參考點作為堆疊之底部等)來判定托盤及/或物品堆疊之狀態之模型。系統可使用托盤之一最差情形放置或定向作為用於估計放置於托盤(或其他容座等)上之物品堆疊之狀態之一基準/基礎。可在一物品被放置之後更新模型,使得物品被表示為位於放置物品之位置處。可將狀態之模型儲存為一個二維柵格(例如,10 x 10)。模型可進一步包括與托盤上之物品堆疊中之每一物品相關聯之資訊。舉例而言,可將與物品相關聯之一或多個特性與物品相關聯地儲存於模型中。在某些實施例中,基於物品堆疊上之各種物品之位置以及與物品相關聯之一或多個特性而判定/計算該堆疊之一穩定性。可基於經儲存模型之單元與實體世界之間的一預定轉換而將托盤之狀態之模型轉換為實體世界中之一表示。
系統100(例如,控制電腦或伺服器126)可經由一通信介面接收與將堆疊於一目的地位置上或其中之複數個物品相關聯之資料;至少部分地基於所接收資料而產生用以將物品堆疊於目的地位置上或其中之一計劃;且至少部分地藉由控制機器人臂102來拾取物品並根據該計劃將物 品堆疊於目的地位置上或其中而實施該計劃。產生用以將物品堆疊於目的地位置上或其中之計劃可包括針對每一物品:至少部分地基於與物品相關聯之一特性以及以下各項中之至少一者而判定目的地位置:(i)將在上面堆疊一或多個物品之一平台或容座之一特性,及(ii)平台或容座上之一物品堆疊之一當前狀態,其中:平台或容座上之一物品堆疊之當前狀態係至少部分地基於與包括在物品堆疊中之一或多個物品之放置有關之幾何資料,及由一視覺系統獲得之與物品堆疊有關之感測器資料。在某些實施例中,基於調用指示一特定物品之一放置之一放置模型(例如,基於執行複數個經模擬放置等)而判定目的地位置。可至少部分地基於與包括在物品堆疊中之一或多個物品之放置有關之幾何資料和由一視覺系統獲得之與物品堆疊有關之感測器資料之間的一差異而判定物品堆疊之當前狀態。可至少部分地基於機器人系統查詢運行於伺服器126上之一狀態估計器而獲得平台或容座上之物品堆疊之當前狀態。
在機器人臂102拾取及放置物品之操作期間,可經由感測器資料(諸如由執行堆棧/解堆棧之機器人之工作空間之視覺系統獲得的資料)將雜訊引入至系統中。感測器資料中之雜訊源之實例包含:(i)自工作空間中之一物品或物件反射之光,(ii)在工作空間中、在托盤/堆疊上之一物品上及/或在待放置物品上之灰塵,(iii)較差品質反射表面,諸如鏡,(iv)工作空間(諸如一機器人、一框架、一擱架、另一物品、托盤上之一物品等)內之反射表面,(v)環境中之熱或另外一溫度改變,(vi)環境中之濕度,(vii)感測器中之振動,(viii)一感測器在感測器資料之擷取期間被敲擊或移動,(ix)一相機或感測器中之不完美。因此,結合反覆地運行實體模擬(例如,使用一(若干)放置模型來模擬一組物品之放置以判定該組物品中 之一或多者之一組放置)或者開發或評估狀態估計模組/模型而使用之資訊包括各種雜訊。
各種實施例包含向執行堆棧/解堆棧之機器人之系統或工作空間之特徵添加一有雜訊點雲。在某些實施例中,一組經模擬物品之一堆棧/解堆棧之電腦模擬(例如,一放置模擬)可使用系統/工作空間及/或物品之幾何資料以及與物品相關聯之一或多個其他屬性來實施。若雜訊未被引入至堆棧/解堆棧之電腦模擬,則系統將具有一理想狀態之一表示(例如,與托盤之狀態有關之資訊將具有一內建假定:每一物品根據用於移動物品之所判定計劃而被完美地放置,及/或堆疊上之其他物品之一狀態將不會隨時間(諸如經由額外物品在其頂部上之放置或其他環境因素)改變)。因此,一組經模擬物品之堆棧/解堆棧之電腦模擬以及各種狀態估計模組/模型可並非係實體世界中之表現之準確表示。將雜訊引入至系統/資訊可允許一估計器及/或系統用以堆棧/解堆棧一組物品之工作條件被人工重新建立而無需真實實體箱或一真實世界實體機器人。在某些實施例中,藉由以下操作而引入雜訊:構造一幾何托盤及/或物品堆疊並向此完美/理想托盤及/或物品堆疊施加將藉由相機中之不完美而產生之同一種雜訊。可將雜訊引入至工作空間之其他特徵(例如,與系統中之其他物件或物品(諸如一物品暫存區、一輸送機上之物品等)有關之感測器資料)。
實施一組經模擬物品之一堆棧/解堆棧之一電腦模擬比反覆地使用一真實世界實體機器人來實體地移動一組真實世界實體物品更高效。電腦模擬之經增加速度允許系統使用及評估/評價更廣泛種類(或更大數目)之狀態估計模組/模型或放置模型。
根據各種實施例,系統100模擬一堆棧/解堆棧程序之至少 一部分,其中將一雜訊輸入至至少與一托盤及/或托盤上之物品堆疊有關之資訊。系統100(例如,控制電腦118或伺服器126)可使用複數個不同狀態估計模組/模型及/或模擬之不同組態來反覆地實施模擬。不同狀態估計模組/模型可包括用於判定托盤及/或托盤上之物品堆疊之一狀態之不同演算法等。模擬之不同組態可包括不同的物品輸入順序、不同的待堆棧/解堆棧物品組、一物品之不同的目的地位置等。系統100可結合改良一狀態估計模組/模型及/或選擇一狀態估計模組/模型而比較各種電腦模擬之結果。
使用各種電腦模擬之結果來改良一狀態估計模組/模型可包含實施一機器學習程序。使用各種模擬之不同組態之堆棧/解堆棧程序之各種電腦模擬可反覆地運行,且可基於各種模擬之結果而反覆地更新狀態估計模組/模型。
根據各種實施例,可定量評估及/或比較一組不同狀態估計模組/模型之各種電腦模擬之結果。系統可基於該比較而判定一最佳狀態估計模組/模型。可根據包含完成堆棧/解堆棧之時間、一托盤之堆積密度、托盤及/或物品堆疊之穩定性、估計一托盤及/或物品堆疊之狀態之準確性之一或多個因素而判定一最佳狀態估計模組/模型。
根據各種實施例,系統100(例如,若在本端執行,則控制電腦118,或若提供為一雲端服務,則伺服器126等)根據選定或所判定放置模型而判定物品之放置。在某些實施例中,在一逐物品基礎上執行對物品放置(例如,目的地位置及定向)之判定。舉例而言,系統100可至少部分地基於一評分函數的與一當前物品在一或多個可能位置/定向處之可能放置對應之一或多個結果而判定放置該當前物品之一位置。系統100針對 下一待放置物品之複數個候選放置中之每一者判定關於評分函數之一對應評分,判定與托盤之一當前狀態(例如,所估計狀態)相關聯之一當前狀態值,且至少部分地基於複數個候選放置之各別評分而選擇一選定放置。在某些實施例中,系統100並不結合判定一評分函數的與當前物品在一或多個可能位置處之可能放置對應之一或多個結果中之一結果而使用執行一後續物品之放置之一模擬(例如,以獲得用於放置後續物品之一評分函數之一結果)。換言之,在某些實施例中,系統100可使用對未來或後續物品之有限知識來判定當前物品之放置。在某些實施例中,系統100模型化(例如,模擬)預定義數目個放置(例如,X個放置,其中X係一正整數)之放置之所估計狀態。
結合判定一組物品之放置(例如,對應於放置之計劃)並控制機器人臂102來根據該等放置拾取及放置該組物品,系統100判定一狀態空間、一行動空間及一搜尋空間。系統100至少部分地基於判定該組物品(例如,一當前物品及預設數目個接下來的物品)之各種放置位置及/或定向而判定搜尋空間。若系統100經組態以准許一或多個物品之一暫存,則系統100可進一步基於該組物品中之物品之一放置次序之一改變而判定搜尋空間。系統100基於判定滿足針對可能放置之一準則之一組放置而對一當前物品(例如,一第一下一物品)之可能放置之搜尋空間進行限界。作為一實例,針對可能放置之準則可為根據一預定義評分函數之一預定義評分臨限值。作為另一實例,針對可能放置之準則可為根據一預定義成本函數之一預定義成本臨限值。
在某些實施例中,系統100判定一物品將被放置於一托盤上。回應於判定物品將被放置,系統100可獲得/判定托盤/物品堆疊之一 當前狀態,且判定放置物品所根據的一放置(例如,一目的地位置及/或定向)。對放置物品所根據的放置之判定可包括判定可放置物品之目的地位置與定向之可能組合,且若物品將被至少放置於可能位置之一子集處,則判定與托盤/物品堆疊相關聯之一評分函數(或一成本函數)之一對應值。回應於判定評分函數之對應值,系統100基於與放置物品所根據的放置相關聯之評分函數之值而判定該放置。舉例而言,系統100選擇產生一最佳結果之放置(例如,根據評分函數或成本函數之一最佳放置)。可至少部分地基於使用一物理引擎來模擬放置及物品堆疊並評估一所得經模擬物品堆疊而判定產生最佳結果之放置。回應於判定物品之放置,系統100可判定用以移動物品並根據該放置而放置物品(例如,在目的地位置處且以對應定向等)之一計劃。回應於判定計劃,系統100控制機器人臂102來實施該計劃以移動物品並將物品放置於目的地位置處。根據各種實施例,系統100針對待拾取及放置於托盤上之一組物品(例如,一組待堆棧物品)中之至少複數個物品反覆地執行判定一物品之放置。系統100亦可針對該組物品中之至少複數個物品反覆地判定用以拾取及放置(例如,堆棧)一物品之一計劃並控制機器人來實施該計劃以拾取及放置物品。
在某些實施例中,至少部分地基於托盤/物品堆疊之邊緣而判定物品可被放置之可能位置。舉例而言,在托盤之頂部表面上(例如,在任何物品被放置於托盤上之前),邊緣可對應於托盤之圓周(例如,托盤之一頂部表面之圓周)。作為另一實例,在托盤之頂部表面上(例如,在任何物品被放置於托盤上之前),該邊緣可基於托盤之拐角而判定。若一或多個物品已被放置於托盤上,則堆疊之一頂部表面可為不平整的(例如,不平坦的)。可至少部分地基於以下各項中之一或多者之邊緣而判定物品 可被放置之可能位置:(i)托盤之邊緣,及(ii)托盤/物品堆疊上之一或多個物品之一或多個邊緣。在某些實施例中,可至少部分地基於以下各項中之一或多者之邊緣而判定物品可被放置之可能位置:(i)托盤之邊緣,及(ii)托盤/物品堆疊上之一或多個物品之至少兩個邊緣之拐角。在某些實施例中,若一或多個物品已被放置於托盤上,則物品可被放置之可能位置可包括以下各項中之一或多者:(i)托盤,及(ii)由放置於托盤上之一(若干)物品形成之層之一或多個表面。判定物品可被放置之位置係至少部分地基於判定與上面可放置一物品之表面對應(例如,界定該等表面)之一或多個邊緣。舉例而言,可針對由已被放置於托盤上之物品形成之各種層或表面(例如,已被放置於托盤上之物品中之一或多者之一頂部表面)判定一或多個邊緣。
根據各種實施例,回應於判定可放置物品所根據的可能位置及定向(例如,基於托盤之邊緣、托盤上之物品之邊緣,及/或上面可放置物品之各種表面之邊緣,諸如由托盤上之物品形成之邊緣),系統100至少部分地基於對應預期穩定性量測而判定一組可行放置(例如,位置、定向等)。作為一實例,系統100至少藉由自可能位置中移除在放置之後的物品(或在物品放置之後的一物品堆疊)預期不穩定之彼等位置而判定該組可行位置。作為另一實例,系統100至少藉由自可能位置中移除在放置之後的物品之一預期穩定性(或在物品放置之後的一物品堆疊之預期穩定性)低於一特定穩定性臨限值之彼等位置而判定該組可行位置。穩定性臨限值可被預組態及/或可被設定使得僅一組N個最佳位置保留在該組可行位置中。N可為一整數,或係可能位置之一總數目之一百分位數。
根據某些實施例,系統100使用一放置模型來基於與放置物 品之一目的地位置相關聯之評分函數之值判定該目的地位置。回應於判定可放置物品之該組可行位置,系統100可判定與包括於該組可行位置中之位置相關聯之評分函數之對應值。評分函數可包含與以下各項中之一或多者相關聯之加權值:堆積密度、托盤/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間等。與托盤/堆棧程序相關聯之其他特性之值可包含於與最佳放置有關之函數中。在某些實施例中,評分函數可包含與將物品移動至一特定位置相關聯之一成本函數,或與該成本函數一起使用。可選擇該組可行位置中具有基於評分函數之最佳評分(例如,一最高評分)之位置作為將放置物品之目的地位置。
根據各種實施例,評分函數指示一托盤/物品堆疊之一優度。舉例而言,評分函數對應於與托盤/物品堆疊之一或多個特性有關之一客觀量測。評分函數可包含與以下各項中之一或多者相關聯之加權值:堆積密度、托盤/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間、預期碰撞、機器人臂102在一尷尬位置/姿勢中之預期定位等。與托盤/堆棧程序相關聯之其他特性之值可包含於與最佳放置有關之函數中。在某些實施例中,評分函數係基於一參數化一函數而判定的,該函數包括至少與一當前托盤、一當前物品及一放置位置對應之值或變數。可基於一或多個機器學習方法而訓練評分函數之參數。
在某些實施例中,判定將放置一物品(例如,一當前物品/第一下一物品)所根據的一放置(例如,一位置/定向)係至少部分地基於相對較小數目個(例如,預定義數目個)接下來的待放置物品(例如,較小數目個下一待放置物品序列)。舉例而言,至少部分地基於當前物品(例如,當前物品之一或多個屬性)、下一(接下來的)物品(例如,此(等)物品之一或 多個屬性)以及與上面可放置當前物品及/或下一(接下來的)物品之表面對應之一或多個邊緣而判定將放置物品所根據的放置。在某些實施例中,評分函數係基於一參數化一函數而判定的,該函數包括至少與一當前托盤、下一物品及一放置位置對應之值或變數。可基於一或多個機器學習方法而訓練評分函數之參數。
根據各種實施例,結合訓練評分函數(例如,訓練評分函數中之參數)而使用之一或多個機器學習方法可包含以下各項中之一或多者:一監督學習、一無監督學習、一分類學習實施方案、一迴歸學習實施方案、一聚類實施方案等。一分類學習實施方案之實例可包含一支援向量機模型、一判別分析模型、一質樸貝斯模型、最近相鄰模型等中之一或多者。一迴歸學習實施方案之實例可包含一線性迴歸GLM模型、一支援向量迴歸模型、一高斯程序迴歸模型、一整體方法模型、一決策樹模型、一神經網路模型等中之一或多者。一聚類實施方案之實例包含一K均值模型、一K中心點模型、一模糊C均值模型、一分層模型、一高斯混合模型、一神經網路聚類模型、一隱馬爾可夫模型等中之一或多者。
根據各種實施例,系統判定物品堆疊之一所估計狀態。舉例而言,系統100回應於下一物品之放置或回應於N個接下來的物品之放置等判定所估計狀態。可至少部分地基於物品堆疊(或工作空間)之一幾何模型及/或感測器資料(例如,由系統100之視覺系統獲得之資料)中之一或多者而判定所估計狀態。
在某些實施例中,系統100結合判定在一托盤上放置一或多個物品之一位置(或結合自一托盤解堆棧一或多個物品)而使用感測器資料及幾何資料(例如,一幾何模型)。系統100可使用不同資料源來模型化一 托盤(或一托盤上之一物品堆疊)之狀態。舉例而言,系統100估計托盤上之一或多個物品之位置以及與一或多個物品相關聯之一或多個特性(或屬性)(例如,物品之一大小)。與一或多個物品相關聯之一或多個特性(或屬性)可包含一物品大小(例如,物品之尺寸)、一重心、物品之一剛度、一封裝類型、一可變形性、一形狀、一識別符之一位置等。
根據各種實施例,系統100使用一狀態估計器來估計一工作空間之一狀態。舉例而言,系統100基於一狀態估計模型及一幾何模型及/或自工作空間中之一視覺系統獲得之感測器資料而判定一所估計狀態。系統100可至少部分地基於幾何資料(例如,工作空間之一幾何模型)及感測器資料(例如,由部署於一工作空間中之一或多個感測器獲得之資料)而估計一工作空間之一狀態(在本文中亦稱為一所估計狀態)。回應於獲得工作空間之所估計狀態,系統100結合在工作空間中移動一物品而使用所估計狀態。舉例而言,系統100使用所估計狀態來判定用於自一源位置拾取一物品並將該物品放置於一目標位置(在本文中亦稱為一目的地位置)處之一計劃及/或策略。系統100(例如,控制電腦118)可使用所估計狀態以及一或多個物品之一指示來向一伺服器126查詢一或多個物品之一放置。作為另一實例,系統100使用所估計狀態來判定下一物品之一放置。
根據各種實施例,至少部分地基於工作空間中之一或多個物品之一或多個屬性而判定幾何模型。舉例而言,幾何模型反映一組物品(例如,被堆棧/堆疊之一第一組中之一或多者,及將被堆棧/堆疊之一第二組物品等)之各別屬性。一物品屬性之實例包含一物品大小(例如,物品之尺寸)、一重心、物品之一剛度、一封裝類型、一識別符之一位置、物品之一可變形性、物品之一形狀等。可實施工作空間內之一物品或物件之各 種其他屬性。作為另一實例,幾何模型包括堆疊於容座(例如,一托盤)上或其中之一或多個物品之一預期穩定性。幾何模型可包含一組物品(例如,物品堆疊)之一預期穩定性及/或包括於物品堆疊中之個別物品之一預期穩定性。在某些實施例中,系統100至少部分地基於以下各項而判定一物品之一預期穩定性:(i)物品之一或多個屬性;及(ii)關於物品與工作空間中之另一物品或物件(例如,一托盤)之一或多個預期相互作用。舉例而言,系統100可基於對與被計算預期穩定性之物品接觸之另一物品或物件之一屬性的一判定而判定預期穩定性。其他物品的可影響一特定物品之預期穩定性之屬性實例包含剛度、可變形性、一大小。作為一實例,若一特定物品擱置於係剛性之另一物品上,則與該特定物品擱置於不管是非剛性還是剛性較小之另一物品上之一情形相比,該特定物品可能具有一經改良預期穩定性。作為另一實例,若一特定物品擱置於係可變形(諸如包括一軟封裝)之另一物品上,則與該特定物品擱置於不管是不可變形還是變形較小之另一物品上之一情形相比,該特定物品可能具有一較小預期穩定性。作為另一實例,若一特定物品擱置於具有大於該特定物品之一底部表面區域的一頂部表面區域之另一物品上,或若該特定物品之一底部表面之一相對高百分比由另一物品之一頂部表面支撐,則該物品之預期穩定性係相對高的或至少比如下情形高:另一物品具有小於該特定物品之一底部表面區域的一頂部表面區域,或該特定物品之底部表面之一相對高百分比未被另一物品之一頂部表面支撐/未與該頂部表面相互作用。
在某些實施例中,系統100在每一物品之移動(例如,放置)之後更新幾何模型。舉例而言,系統100維持(例如,儲存幾何模型)與工作空間之一狀態(諸如一物品堆疊之一狀態/穩定性及一或多個物品在物品 堆疊當中之位置)對應之幾何模型。幾何模型結合判定用以移動一物品之一計劃及控制一機器人臂來移動一物品而使用一當前幾何模型。回應於物品之移動,系統100更新幾何模型以反映物品之移動。舉例而言,在解堆棧一物品堆疊之情形中,回應於一特定物品自物品堆疊被拾取及移動,系統100更新幾何模型,使得該特定物品不再表示為位於堆疊上而是在放置該特定物品之一目的地位置處包括於幾何模型中,或在目的地位置位於工作空間外部之事件中,幾何模型經更新以移除該物品。此外,幾何模型經更新以反映在特定物品已自堆疊被移除之後物品堆疊之一穩定性。作為另一實例,在堆棧一組物品之情形中,系統100更新幾何模型以反映一特定物品在一物品堆疊上/當中之放置。系統100可至少部分地基於物品在物品堆疊上/當中之放置而更新幾何模型以包含物品堆疊之一經更新穩定性(例如,以反映特定物品與其他物品之相互作用或基於特定物品之放置之其他物品當中的相互作用等)。
在某些實施例中,在(i)預定數目個物品之移動(例如,放置)或者(ii)預定數目個物品之較早移動或偵測到一異常(諸如滿足一或多個異常準則(例如,異常之程度超過一異常臨限值等)之一異常)之後,系統100更新當前狀態(例如,基於對幾何模型之一更新而進行更新)。預定物品數目(例如,X個物品,X係一正整數)可基於使用者偏好、一機器人控制系統策略而設定,或基於對物品放置之實證分析而以其他方式判定。作為一實例,基於如下一判定而設定預定物品數目:該物品數目產生關於一預定成本函數(例如,反映一效率、一穩定性、預期穩定性改變等之一成本函數)之一最優/最佳結果。作為一實例,系統100判定一當前所估計狀態且使用該當前所估計狀態來判定用於移動接下來的X個物品之一計 劃,並且在移動X個物品(例如,物品之堆疊或解堆疊)之後,系統100判定一經更新所估計狀態(例如,用以反映X個物品之放置之一幾何更新/模型)。系統100至少部分地基於幾何模型與感測器資料(例如,一當前幾何模型與當前感測器資料等)之一組合而判定經更新狀態。系統100然後結合判定一計劃及控制一機器人臂來根據該計劃放置下一組物品而使用經更新狀態。
判定用於拾取及放置一組物品(例如,堆棧該組物品)之一計劃包含判定放置物品所根據的一放置位置(例如,將放置物品之一目的地位置)及一定向。在某些實施例中,判定或更新用於拾取及放置一組一或多個物品之計劃包含評價該組物品中之物品之各種放置位置及定向。系統100基於以下各項而判定一搜尋空間:(i)針對將在其處放置該組物品之托盤或其他位置之一狀態(例如,使用狀態估計器來判定之一所估計狀態等)之一狀態空間,及(ii)與該組物品中之各別物品在對應目的地位置及定向處之放置對應之一行動空間。舉例而言,系統100藉由判定包括於該組物品中之每一物品之對應放置(例如,放置位置及定向等)而判定用於堆棧該組物品之一組計劃。作為另一實例,系統100判定該組物品中之每一物品(或該組物品中之N個物品,N係一整數)之放置(例如,放置位置及定向等)之複數個組合/排列。判定計劃可進一步包括判定包括放置於對應目的地位置及定向中之該組物品之至少一部分之物品堆疊的一或多個特性(例如,預期穩定性、一評分函數之評分、一成本函數之成本等)。在某些實施例中,系統100執行分別與用於放置/定向該組物品之各種組合/排列對應之複數個模擬。系統可使用一或多個放置模型來至少關於該組物品之一子集執行複數個模擬。在某些實施例中,系統100使用一模型(例如,查詢 一模型)以評價用於放置/定向該組物品之各種組合/排列。系統100可查詢模型以評價每一放置,且可使用由使用模型之分析提供之一結果來判定將放置物品所根據的一放置(例如,選擇最佳放置)。至少部分地基於目的地位置與定向之一最佳(例如,最優,諸如具有一評分函數之一最高評分或一成本函數之一最低成本等)組合/排列而判定計劃。可基於一成本函數而選擇目的地位置與定向之最佳組合/排列,使得最佳組合/排列之一成本係最低成本組合/排列或小於一成本臨限值(例如,一絕對臨限值、不同組合/排列之各種成本當中之成本之一百分位數等)。可基於一評分函數而選擇目的地位置與定向之最佳組合/排列,使得最佳組合/排列之一評分大於一評分臨限值(例如,一絕對臨限值、不同組合/排列之各種成本當中之成本之一百分位數等)。
在某些實施例中,系統100判定用於放置一組N個接下來的物品之一搜尋空間,其中N係一正整數。作為一實例,若將物品遞送至一工作空間以供一機器人來拾取及放置於目的地位置處,則系統100可能夠判定接下來的M個待放置物品,其中M係一正整數。M大於或等於N(例如,接下來的N個物品可為接下來的M個物品之一子集)。系統100可基於由工作空間中之一或多個感測器(例如,視覺系統)獲得之感測器資料而判定接下來的M個物品。在某些實施例中,系統100基於將被拾取及放置(例如,堆棧)之物品之一載貨單或其他預定義清單而判定接下來的N個物品。
在某些實施例中,系統100將搜尋空間表示為一樹,根據該樹,每一節點與該組物品之一不同放置組合對應。系統100至少部分地基於一狀態空間及一行動空間而判定搜尋空間。狀態空間與工作空間之一當前狀態(例如,托盤之一當前狀態)對應。行動空間與由一組物品之放置 (例如,放置位置及定向等)界定之一空間對應。根節點係工作空間之一當前狀態(例如,托盤之一當前狀態)。在根節點之後的第一步階對應於用於放置第一下一物品之放置位置與定向之各種排列之分支/節點。在根節點之後的第二步階對應於第二下一物品之放置位置與定向之各種排列之分支/節點。
在某些實施例中,系統100將搜尋空間表示為一馬爾可夫決策程序,根據該馬爾可夫決策程序,每一節點與該組物品之放置之一不同組合對應。舉例而言,若系統100不具有對將被拾取及放置之全組物品之知識,則系統100實施一馬爾可夫決策程序,此乃因關於將被拾取及放置之未來物品存在不確定性。
藉由在搜尋空間內執行一搜尋而選擇該組物品之放置(例如,目的地位置及定向)。舉例而言,系統100在搜尋空間內執行一搜尋以識別最佳/最低成本解決方案或一足夠好的解決方案,諸如滿足一預定義成本臨限值之一解決方案。作為另一實例,系統100在搜尋空間內執行一搜尋以諸如基於使用一物理引擎來模擬使用一物理引擎之物品堆疊而識別具有一評分函數之一最高對應評分之放置。然而,遍歷包含放置位置與定向之所有可能組合之整個搜尋空間可為計算上極其昂貴的且可在判定用於放置一(若干)物品之一計劃時增加顯著延時。舉例而言,在將搜尋空間表示為一樹之情形中,遍歷該樹之各種分支可為低效的。搜尋空間可隨著物品數目增加及托盤大小增加等以指數方式增長。在某些實施例中,系統100對搜尋空間進行限界,系統100在該搜尋空間內選擇一(若干)放置(例如,放置位置、定向等)。然而,過多地對搜尋空間進行限界可導致自其判定下一物品之一放置的一組物品之放置組合/排列之一次最佳數目。
根據各種實施例,系統100對搜尋空間進行限界以獲得一計算上更合理之搜尋空間(例如,以找到一計算上更合理之方式來判定一待放置物品之一最優位置)。在搜尋空間被表示為一樹之情形中,系統100判定修剪該樹之一方式,且系統100修剪該樹。作為一實例,修剪該樹包含對該樹之搜尋空間進行限界,使得系統100自考量中排除與經修剪分支/節點對應之彼等狀態作為可能的放置位置/定向。在某些實施例中,系統100將對可能放置(位置及定向)之分析或對一最佳放置(例如,目的地位置與定向之最佳組合/排列、用以產生下一組物品之一穩定放置的針對下一物品之放置之最佳目的地位置及定向等)之搜尋限制於已被修剪之搜尋空間中之彼等放置。
在某些實施例中,系統100至少部分地基於關於搜尋空間之各種部分而查詢一模型(例如,向模型查詢關於一評分函數之一評分或關於一成本函數之一成本)而修剪搜尋空間(例如,樹)。作為一實例,該樹中之每一節點與一特定放置位置及一定向處之一物品之放置對應。在某些實施例中,系統100根據與該樹中之一特定節點對應的物品之放置位置及定向而使用該模型來評價放置(例如,查詢模型)。回應於使用模型來評價針對一特定節點之放置,系統100判定是否在此節點處修剪該樹。系統100可回應於物品之放置至少部分地基於一評分函數之一評分、一成本函數之一成本或與工作空間之一預期狀態(例如,一物品堆疊之一預期穩定性、物品堆疊之一堆積密度等)有關之另一屬性而判定在此節點處修剪該樹(例如,搜尋空間可經修剪以移除/排除被視為實體不穩定之放置)。評分函數或成本函數可至少部分地基於以下各項中之一或多者:(i)物品堆疊之一預期穩定性,(ii)完成物品堆疊之一時間,(iii)物品堆疊是否滿足一預 定義準則或啟發法(例如,可變形部件朝向堆疊之頂部放置、較重物品朝向堆疊之底部放置、不規則形狀之物品朝向堆疊之頂部放置等)之一滿意度,(iv)碰撞避免或一預期碰撞(例如,對去往放置位置之一軌跡是否將導致物品或機器人臂與另一物品或機器人臂之間的一碰撞之一判定),(v)移動物品之一效率,及(vi)對於機器人在拾取、移動或放置物品以進行放置時是否預期被組態為一尷尬姿勢之一指示。
在某些實施例中,針對該樹(或馬爾可夫決策程序)中之每一節點,系統100查詢模型以判定與根據該節點處之放置來放置對應物品相關聯之一評分或成本。系統100可查詢一(若干)放置模型來模擬與該節點對應之物品之放置,且基於放置之一模擬結果而判定一評分/成本。系統100在根節點處開始且然後跟隨自根節點至該樹之更高階層級之分支而遍歷該樹。當系統100在遍歷該樹期間到達一特定節點時,系統100查詢模型以判定與對應放置相關聯之評分或成本,且判定是否修剪該特定節點(及自該特定節點直接或間接分支之任何下游節點)。舉例而言,系統100至少部分地基於比較與評分函數相關聯之評分和一預定義評分臨限值而判定是否修剪該節點。若評分小於評分臨限值,則系統100判定修剪該節點。
在某些實施例中,系統100經組態以准許/啟用物品之暫存,且系統100至少部分地基於物品放置之組合/排列而判定搜尋空間,包含改變多達一臨限暫存量之物品之一放置次序。舉例而言,若系統100經組態以准許暫存多達兩個物品,則系統100可基於自接下來的三個待放置物品中選擇第一下一待放置物品而判定搜尋空間。系統100可針對每一放置次序以及放置位置與定向之對應組合/排列而判定搜尋空間中之節點。
使用一機器學習模型來評估一托盤/物品堆疊之一狀態並模擬放置(例如,接下來的行動)使得系統100能夠使用機器學習技術來修剪搜尋空間(例如,該樹)。在某些實施例中,機器學習模型基於歷史資訊(例如,系統100之前看到的,或基於模型之訓練資料)而對一放置之可能結果進行評估及評分/加權。模型對托盤/物品堆疊及放置之一當前狀態進行評分,且系統100判定最佳放置(例如,系統100使用各別評分來判定最佳放置)。可基於以下操作而訓練模型:模擬(例如,使用一幾何模型模擬,或使用實體試驗模擬)各種物品之各種放置,且當一模擬提供一良好結果(例如,一穩定物品堆疊)時,提供一獎勵(例如,一優度指示),並且當模擬提供一不好的結果(例如,一不穩定物品堆疊、具有一低堆積密度之一物品堆疊、一不規則形狀之物品被放置於物品堆疊之底部處或其附近等)時,提供一負獎勵(例如,托盤之狀態係不利/不可行之一指示)。對各種物品之各種放置之模擬包含利用不同位置、定向及物品(例如,具有一或多個不同屬性之物品)等執行模擬。
在某些實施例中,除了或替代使用一機器學習模型來對一搜尋空間進行限界或模擬一物品之一放置以判定一放置,系統100使用一或多個啟發法來快速評價一放置之預期影響(例如,物品堆疊之穩定性之一改變(若存在))。
根據各種實施例,系統100針對下一物品(例如,該組待放置物品中之第一下一物品)執行一放置模擬。該放置模擬係結合判定自根節點(其與托盤/物品堆疊之當前狀態對應)分支之第一層級之節點來使用。系統100可結合模擬一第一層級節點之一放置基於一或多個放置模型而調用一組物品之一或多個放置模擬。舉例而言,系統100呼叫伺服器126來 提供模擬第一層級節點之放置之一結果。執行一物品之放置模擬係計算上昂貴的。舉例而言,系統100查詢一物理引擎以執行一模擬且接收一結果(例如,一所估計狀態之一模型)。雖然模擬保真度係非常合意的,但高保真度放置模擬(例如,基於此放置而判定物品堆疊之一模型)係昂貴的(例如,計算上昂貴的、時間昂貴的等)。
在某些實施例中,針對後續層級之節點(例如,在該組物品中之第一下一物品之後的物品放置),系統100結合判定所估計狀態(例如,物品堆疊)之一預期穩定性而使用一或多個啟發法。一或多個啟發法可為預定義的。舉例而言,可基於一堆疊策略或系統偏好而定義一或多個啟發法。啟發法可由一管理者實證地判定且被相應地進行預設。在某些實施例中,一或多個啟發法係基於被邏輯放置(例如,根據節點之放置)之對應物品或物品堆疊內之物品之一屬性。根據各種實施例,系統100僅針對自根節點分支之第一層級之節點執行物品之一放置模擬,且針對N-1個後續物品,系統100使用一或多個啟發法來藉由根據針對各別節點之放置位置及定向放置對應物品而判定一預期穩定性或對穩定性之一影響。
啟發法之實例可包含:(i)基於一非剛性或可變形物品在物品堆疊之底部處或其附近之放置之一預期穩定性,(ii)基於一較大物品在物品堆疊之頂部處或其附近之放置之一預期穩定性,(iii)基於一較重物品在物品堆疊之頂部處或其附近之放置之一預期穩定性,(iv)基於一較重物品在物品堆疊之底部處或其附近之放置之一預期穩定性,(v)基於一不規則形狀物品在堆疊之底部處或其附近之放置之一預期穩定性,及(vi)基於一不規則形狀物品在堆疊之頂部處或其附近之放置之一預期穩定性等。可實施各種其他啟發法。作為一實例,一啟發法指示若將一非剛性或可變形 物品放置於物品堆疊之底部處或其附近,則物品堆疊係不穩定的。作為一實例,一啟發法指示物品堆疊之穩定性不會因放置於物品堆疊之頂部處或其附近之一非剛性或可變形物品之放置而受到負面影響(例如,至少受到一臨限穩定性量影響)。作為一實例,一啟發法指示若將一較重物品放置於物品堆疊之頂部處或其附近,則物品堆疊係不穩定的。作為一實例,一啟發法指示物品堆疊之穩定性不會因放置於物品堆疊之底部處或其附近之一較重物品之放置而受到負面影響(例如,至少受到一臨限穩定性量影響)。作為一實例,一啟發法指示若將一不規則形狀物品(例如,一非矩形物品、一圓形物品等)放置於物品堆疊之底部處或其附近,則物品堆疊係不穩定的。作為一實例,一啟發法指示物品堆疊之穩定性不會因放置於物品堆疊之頂部處或其附近之一不規則形狀物品(例如,非矩形)之放置而受到負面影響(例如,至少受到一臨限穩定性量影響)。
根據各種實施例,一啟發法係執行一實體模擬之一計算上高效的變體。舉例而言,啟發法被定義為類似於執行一放置模擬。使用針對第一下一物品(例如,自根節點分支之第一層級之節點)之經模擬放置及使用針對第二或更多接下來的物品(例如,第二層級節點及分別自第二層級節點分支之節點)之放置之啟發法來判定物品堆疊及預期穩定性提供了針對下一物品之放置之一準確所估計狀態及用於填充樹之其餘部分(例如,判定一預期穩定性或對預期穩定性之影響)之一具成本效益的方法。
回應於遍歷搜尋空間(例如,修剪搜尋空間以移除不利/不可行放置),系統執行一樹搜尋以判定最佳放置。舉例而言,系統100執行一蒙特卡洛(Monte Carlo)樹搜尋以評估/判定經修剪搜尋空間當中的最佳放置。
在某些實施例中,系統包括其中托盤被分別安置之複數個區帶。系統可同期判定將在上面放置一特定物品之一托盤/物品堆疊,且拾取物品並將物品放置至一選定托盤。
雖然前述實例在將一組物品堆棧於一或多個托盤上之一系統之情境中進行論述,但機器人系統亦可結合自一或多個托盤解堆棧一組物品而使用。
圖2係圖解說明根據各種實施例之用以堆棧一或多個物品之一程序之一流程圖。在某些實施例中,程序200至少部分地由圖1之系統100實施。
在210處,獲得一組物品。該組物品可對應於將被共同地堆棧於一或多個托盤上之一組物品。根據各種實施例,至少部分地基於將履行一載貨單或訂單之一指示而判定待堆棧之一組物品。舉例而言,回應於接收到一訂單,可產生針對該訂單之一物品清單。作為另一實例,可產生與將被發送至同一接收者之複數個訂單對應之一物品清單。
物品可位於一倉庫內之一擱架或其他位置上。為了堆棧物品,將物品移動至堆棧物品之一機器人系統。舉例而言,可將物品放置於一或多個輸送機上,該一或多個輸送機將物品移動至一或多個機器人臂之範圍內,該一或多個機器人臂將物品堆棧至一或多個托盤上。回應於獲得物品清單,該等物品中之至少某些物品與一特定機器人臂、對應於特定機器人臂之一預定義區帶及/或一特定托盤(例如,一托盤識別符、定位至一預定義區帶中之一托盤)等相關聯。
在220處,執行計劃(或重新計劃)以基於物品清單及可用感測器資訊而產生用以拾取/放置物品之一計劃。計劃可包含用於擷取物品 清單上之一或多個物品並將此等物品放置於對應一或多個輸送機上以將該等物品攜載至一機器人臂之一或多個策略。根據各種實施例,至少部分地基於物品清單而判定將物品清單上之物品提供至適用機器人臂以用於堆棧之一次序。
將物品放置於輸送機上之次序可至少鬆散地基於物品及一或多個托盤上之物品之一預期堆疊(例如,一經模型化所估計狀態)。舉例而言,判定放置物品之次序之系統可產生物品之一(若干)預期堆疊之一模型(例如,使用一狀態估計器來判定一所估計狀態),且基於該模型而判定該次序(例如,以便首先遞送形成堆疊之基底/底部之物品且逐步遞送沿堆疊向上更高之物品)。作為另一實例,判定放置物品之次序之系統可使用一機器學習模型來評估物品堆疊之狀態及物品之放置,且基於針對產生一最佳結果(例如,具有一評分函數之一最高評分)之一情景(例如,物品順序、物品位置、物品定向)執行一樹搜尋而判定次序。
在某些實施例中,判定將物品放置於輸送機上之次序之系統可產生物品之一(若干)預期堆疊之一模型,且基於該模型而判定該次序(例如,以便首先遞送形成堆疊之基底/底部之物品且逐步遞送沿堆疊向上更高之物品)。系統可查詢一機器學習模型以判定與預期物品堆疊有關之狀態或資訊(例如,向一狀態估計器查詢一所估計狀態,或查詢模擬放置模型之一服務等)。在將物品清單上之物品堆棧於複數個托盤上之情形中,可將預期形成各別堆疊之基底/底部(或以其他方式相對靠近堆疊之底部)之物品在預期實質上在堆疊之中間或頂部中之物品之前放置。將被堆棧於複數個托盤上之各種物品可散置於彼此當中且機器人系統可在物品到達機器人臂處後旋即對該等物品進行分類(例如,機器人臂可至少基於物 品(諸如物品之識別符或物品之一屬性)而拾取物品並將該等物品放置至一適用托盤上)。因此,與對應堆疊之基底/底部部分對應之物品可散置於彼此當中且可在構建對應堆疊時將針對每一托盤/堆疊之各種物品放置於輸送機上。系統可實施一樹搜尋(例如,一搜尋空間之一樹)以判定產生一最佳物品堆疊之一物品順序(例如,基於使用一機器學習模型對預期物品堆疊之一評估),且系統然後控制將在輸送機上放置物品及將物品遞送至機器人臂之次序,該機器人臂執行堆棧以產生物品堆疊。
系統可產生針對屬於物品清單之物品之一或多個預期堆疊之一模型。可至少部分地基於一或多個臨限值(諸如一適配度臨限值或穩定性臨限值)、其他堆積度量(例如,密度)等而產生該模型。舉例而言,系統可產生一物品堆疊之一模型,針對該模型,一預期穩定性值滿足(例如,超過)穩定性臨限值。該模型可使用一機器學習程序來產生。可基於反覆地運行控制一機器人來拾取及放置物品之試驗或基於諸如物品之先前堆疊(例如,先前堆疊中之物品之屬性、與先前堆疊有關之效能度量,諸如穩定性、密度、適配度等)之歷史資訊而反覆地更新機器學習程序。在某些實施例中,至少部分地基於物品清單上之物品之一或多個屬性而產生用於堆棧該等物品之堆疊之模型。
可在判定計劃之前或期間獲得一物品之各種屬性。屬性可包含一物品之一大小、一物品之一形狀、一物品之一封裝類型、一物品之一識別符、一物品之一重心、物品是否易碎之一指示、物品之一頂部或底部之一指示、物品是否可變形之一指示、物品之一剛度之一指示等。作為一實例,可至少部分地基於物品清單而獲得與物品之至少一子集有關之一或多個屬性。可至少部分地基於由一或多個感測器獲得之資訊及/或藉由 在屬性至物品(例如,物品類型、物品識別符,諸如序列號、型號等)之一映射中執行一查找而獲得該一或多個屬性。
在某些實施例中,產生屬於物品清單之物品之一或多個預期狀態之模型包含產生(例如,判定)工作空間(例如,包括一或多個物品堆疊之一工作空間)之一所估計狀態。電腦系統判定用於移動(例如,堆棧或解堆棧等)一組一或多個物品之一計劃,且電腦系統控制一機器人(例如,一機器人臂)來根據該計劃移動該組一或多個物品。回應於根據該計劃移動該組一或多個物品,電腦系統判定工作空間之一所估計狀態。舉例而言,電腦系統至少部分地基於該組物品之移動而更新所估計狀態。在某些實施例中,回應於幾何模型與感測器資料係不一致的(例如,幾何模型與感測器資料之間的一差異大於一預定差異臨限值,或包括一異常等)之一判定,至少部分地基於幾何模型或感測器資料或者幾何模型與感測器資料之一組合而判定所估計狀態。經更新/當前所估計狀態反映該組一或多個物品之移動(例如,在堆棧之情形中,經更新所估計狀態包含與堆疊上之該組一或多個物品之放置有關之資訊等)。回應於判定經更新/當前所估計狀態,電腦系統判定用於移動另一組一或多個物品之一計劃,且電腦系統控制機器人來根據該計劃移動該另一組一或多個物品。
在某些實施例中,系統結合判定下一放置(例如,一組待放置物品中之下一物品之一放置)而使用當前所估計狀態。舉例而言,系統至少部分地基於所估計狀態而判定用於下一物品之可能放置之一搜尋空間。在某些實施例中,系統使用所估計狀態作為搜尋空間(例如,表示搜尋空間之一樹結構,或一馬爾可夫決策程序等)之根節點,且系統判定下一物品或一組物品(例如,接下來放置之一組N個物品)之各種組合/排列。 判定下一物品之放置包含調用一或多個放置模型且使用一物理引擎來基於放置模型評估所得經模擬物品堆疊。
回應於判定下一物品之放置,系統判定用於將物品放置於對應目的地位置及相關聯定向處之一計劃。
在230處,根據在220處判定及/或更新之計劃而拾取物品並將該等物品穿過一(預定/所計劃)軌跡移動至對應輸送機上之將在其附近放置物品之一位置,且將該等物品放置於目的地位置處。
在所展示之實例中,(重新)計劃及計劃實施(220、230)繼續進行直至完成(240)提供物品清單上之物品之高階目標為止,程序200在此處結束。在各種實施例中,可藉由諸如到達並非預期及/或無法被識別之物品、指示一屬性之一感測器讀數具有與基於物品識別及/或相關聯物品模型資訊所預期之值不同之一值等條件而觸發重新計劃(220)。非預期條件之其他實例包含但不限於:判定一預期物品丟失、重新評估物品識別並判定一物品與最初所識別的不同、偵測到一物品重量或其他屬性與所識別之物品不一致、掉落或需要重新抓取物品、判定一較晚到達之物品太重而無法如由原始及/或當前計劃所考慮而堆疊於一或多個其他物品上,以及偵測到堆疊於容座上之該組物品之不穩定性。
圖3係圖解說明根據各種實施例之用以判定一經模擬物品堆疊之一模型之一程序的一流程圖。在某些實施例中,程序300至少部分地由圖1之系統100實施。
根據各種實施例,回應於對系統將判定用於移動一或多個物品之一計劃之一判定而調用程序300。在某些實施例中,關於放置一組待堆疊物品中之物品中之每一者而調用程序300。在某些實施例中,以一 預定頻率/間隔(諸如在自所估計狀態之上一次判定以來已移動一預定之項目之後)調用程序300。除了前述內容中之任一者之外,系統亦可至少部分地基於一先前所放置物品或一當前被放置物品之一屬性而調用程序300。舉例而言,回應於先前所放置物品或當前物品具有一不規則形狀(例如,超過一臨限大小之一大小/尺寸、一非矩形形狀等)及/或係可變形的(例如,物品具有超過一可變形性臨限值之一預期可變形性,或物品具有諸如一塑膠袋之軟封裝等)之一判定而調用程序300。作為另一實例,系統回應於一先前所放置物品或一當前待放置物品可導致物品堆疊當中之一不穩定性(例如,一臨限不穩定性)之一判定而調用程序300。
程序300可基於執行複數個狀態估計模型以判定一所估計狀態或結合開發狀態估計模型(例如,選擇一狀態估計模型來用作一狀態估計器以堆棧一組物品)而反覆地執行。
在某些實施例中,將至少部分地基於程序300之所估計狀態用作向一放置模型之一輸入,該放置模型判定一組物品之一或多個放置。放置模型模擬該組物品至物品堆疊之一幾何模型之放置,其中幾何模型對應於所估計狀態。結合每一放置(或每一組放置),系統調用一物理引擎來模擬物品堆疊且評估物品堆疊(例如,模擬作用於物品堆疊上之外部力,模擬在一物品被放置於堆疊上時物品之間的力等)。
在310處,獲得與一(若干)經放置物品相關聯之資訊。系統基於與物品相關聯之預儲存資訊(例如,若預知物品(諸如)在待堆棧物品之一載貨單上)或基於由視覺系統獲得之資訊(例如,一物品識別符、一大小、一封裝類型、一重量等)而獲得與物品相關聯之資訊。與經放置物品相關聯之資訊可對應於物品之一屬性等。
在320處,接收與包含經放置物品之一物品堆疊有關之幾何資料。在某些實施例中,系統獲得當前幾何模型,該當前幾何模型已經更新以反映物品之放置。當前幾何模型可為結合判定一先前物品之放置或在物品所屬於之一組物品中包含之先前物品之一子集的放置(例如,基於一機器人根據計劃來放置物品之操作之一預期放置)而使用之所估計狀態。
在330處,獲得由一視覺系統獲得之感測器資料。在某些實施例中,系統獲得由視覺系統獲得之感測器資料。舉例而言,系統指示視覺系統擷取工作空間之一當前狀態,且系統使用與此擷取有關之資訊來獲得感測器資料。
在340處,至少部分地基於幾何資料及感測器資料而更新一當前狀態或模型。在某些實施例中,系統使用一狀態估計器來判定當前狀態或模型(例如,判定一所估計狀態)。系統可向一伺服器(例如,一遠端服務)查詢所估計狀態,且伺服器可實施一或多個狀態估計模型以估計物品堆疊之當前狀態。系統諸如回應於對幾何模型與感測器資料之間的一差異之一判定至少部分地基於幾何模型或感測器資料或者幾何模型及感測器資料兩者而判定一預期狀態。
根據各種實施例,系統至少部分地藉由基於幾何模型之至少一部分及感測器資料之至少一部分執行一內插而判定所估計狀態(例如,一經更新所估計狀態)。待執行之內插程序可由狀態估計器定義。在某些實施例中,關於幾何模型之一第一部分及感測器資料之一第一部分而執行以獲得所估計狀態之一第一部分之一內插程序與關於幾何模型之一第二部分及感測器資料之一第二部分而執行以獲得所估計狀態之一第二部分之一內插不同。
在某些實施例中,系統對當前狀態、幾何模型及/或感測器資料相應地進行分段。舉例而言,系統可基於預定義分段邊界(例如,將工作空間表示劃分成具有預定義大小/形狀之一組複數個部分)或一影像分析(例如,工作空間中之每一物品/物件或者物品/物件之子集被視為一個分段等)等而對當前狀態、幾何模型及/或感測器資料進行分段。
在某些實施例中,系統關於幾何資料之各種部分及感測器資料之對應部分而執行內插,且然後系統將各種部分拼接在一起以獲得一更大工作空間表示(例如,針對整個工作空間之一所估計狀態,或針對工作空間之一組部分之一所估計狀態)。
在某些實施例中,系統結合判定用於移動一或多個物品之一計劃及控制一機器人來根據該計劃移動一或多個物品而使用經更新所估計狀態。
在350處,做出關於程序300是否完成之一判定。在某些實施例中,回應於將不執行所估計狀態之進一步更新、將不移動其他物品、一使用者已退出系統、一管理者指示將暫停或停止程序300等之一判定而判定程序300完成。回應於對程序300完成之一判定,程序300結束。回應於程序300未完成之一判定,程序300返回至310。
圖4係圖解說明根據各種實施例之用以選擇物品放置之一程序之一流程圖。在某些實施例中,程序400至少部分地由圖1之系統100實施。根據各種實施例,結合判定一組物品之放置而調用程序400。程序400可用於評估不同放置模型或情景以判定產生一最佳結果(例如,具有一評分函數之一最高評分之一堆疊)之一(若干)放置。系統可調用一物理引擎來反覆地模擬各別放置以獲得被評估之一所得經模擬物品堆疊。
在405處,獲得一組物品。在某些實施例中,至少部分地基於感測器資料(諸如由工作空間中之一視覺系統獲得之資訊)而判定該組物品。系統至少部分地基於感測器資料而判定接下來的待放置物品(例如,系統判定被遞送至工作空間以進行堆棧之接下來的N個物品等)。在某些實施例中,至少部分地基於將被拾取及放置之物品之一預定義載貨單或清單而判定該組物品。
在410處,獲得托盤或物品堆疊之一當前狀態。在某些實施例中,系統判定托盤或堆疊物品之一當前所估計狀態。系統可基於使用物品堆疊之一幾何模型、工作空間之感測器資料或者幾何模型與感測器資料之一組合而判定所估計狀態。舉例而言,系統相對於幾何模型及感測器資料執行一內插以判定所估計狀態。
在某些實施例中,系統使用一機器學習模型來模型化托盤或物品堆疊之當前狀態且判定與物品堆疊相關聯之資訊,諸如堆積密度、穩定性、完成放置之時間等。
在415處,系統判定與放置該組物品之至少一部分之情景對應之一樹。在某些實施例中,系統判定與接下來的N個物品之放置(例如,放置位置及定向)之各種組合/排列對應之一搜尋空間。
在420處,修剪該樹以消除與不利情景對應之分支及/或節點。在某些實施例中,在450之後執行420。
在某些實施例中,系統判定與預期產生一不穩定物品堆疊(例如,一預期穩定性小於一預定義穩定性臨限值、一啟發法指示物品堆疊預期係不穩定的等)或放置預期具有超過一成本臨限值之一成本(例如,根據一預定義成本函數)之放置對應之分支/節點。回應於判定與預期產生 一不穩定物品堆疊或超過一臨限成本之一成本之放置對應之分支/節點,系統判定自搜尋空間修剪此等放置。舉例而言,系統將此等放置排除在進一步分析之外。
在某些實施例中,系統遍歷搜尋空間(例如,樹)且判定產生一不利/不可行結果之情景(例如,對應於產生一不利/不可行結果之放置之節點)。系統基於對一預定評分函數之一評分或一預定成本函數之一成本之一判定而判定一情景係不利/不可行的。作為一實例,系統比較一情景之評分與一評分臨限值,且若評分小於評分臨限值,則系統將該情景視為不利/不可行的。
在425處,選擇剩餘樹中之一情景。在某些實施例中,系統選擇經修剪搜尋空間中之放置之一組合/排列。系統可針對425至460進行反覆直至經修剪搜尋空間中剩餘之所有情景被分析。在某些實施例中,情景與表示搜尋空間之一樹結構中之一節點對應。在某些實施例中,情景與表示搜尋空間之一馬爾可夫決策程序中之一節點對應。
在430處,判定一待放置物品。在某些實施例中,系統判定下一待放置物品。在某些實施方案中,系統可准許物品之暫存,且在此一實施方案中,系統自符合暫存準則之一組接下來的物品當中判定下一物品。
在435處,判定可針對當前情景放置物品所根據的放置。放置可與可放置物品所根據的各種放置位置及定向對應。
在440處,選擇將針對該情景放置物品之一位置及/或定向。作為一實例,系統選擇搜尋空間中與物品之放置對應之一節點,且判定與選定節點對應之位置及/或定向。
在445處,模型化拾取及放置物品。在某些實施例中,回應於選擇物品之一放置(例如,判定與搜尋空間中之一節點對應之一放置),系統使用(例如,查詢)一機器學習模型來根據情景模型化托盤/物品堆疊之狀態及/或物品之放置。在某些實施例中,系統使用機器學習模型來判定基於一評分函數對情景(物品之放置)之一評分。
在450處,判定與物品堆疊對應之一或多個特性。舉例而言,系統至少部分地基於物品堆疊之模型而判定與情景對應之物品堆疊之特性,該模型係基於對物品放置之模擬而產生的。與物品堆疊有關之特性之實例包含(i)一預期穩定性、(ii)一成本、(iii)執行針對情景之放置之一時間、(iv)在執行放置之情況下是否預期發生一碰撞之一指示、(v)在物品之放置期間機器人是否預期定位於一尷尬或低效姿勢中之一指示等。
在某些實施例中,將445及450組合成一單個步驟,其中系統使用一機器學習模型來根據情景判定與物品堆疊對應之一或多個特性,及/或基於使用評分函數之一分析判定一評分。
在455處,系統判定是否要執行模型化更多物品之放置。舉例而言,系統根據情景判定該組物品(或該組接下來的N個物品)中是否有任何物品尚待放置。回應於判定要執行更多物品之放置模擬,程序400返回至430且程序400針對430至455進行反覆直至針對選定情景無其他的物品放置模型化要執行。回應於判定無額外物品存在,程序400繼續進行至460。
在460處,系統判定針對該組物品之放置之額外情景是否存在。舉例而言,系統判定堆疊物品之其他次序或組合/排列是否保留在搜尋空間內。回應於判定額外情景存在,程序400返回至425且程序400針對 425至460進行反覆直至無其他情景存在。回應於判定無額外情景存在,程序400繼續進行至465。
在465處,比較搜尋空間內之各種情景且判定一最佳情景。系統可至少部分地基於與各種情景之物品堆疊對應之一或多個特性而判定最佳情景(例如,該組物品或下一物品之預期產生一最佳結果之放置)。舉例而言,系統判定產生一最高預期穩定性之一放置。作為另一實例,系統判定產生根據一預定義成本函數之一最低成本之一放置。作為另一實例,系統將最佳情景判定為搜尋中遍歷之第一放置,針對該第一放置,預期穩定性滿足一穩定性準則(例如,大於一穩定性臨限值之一穩定性、不存在將指示物品堆疊係不穩定之一啟發法等)及/或滿足一成本準則。
在470處,實施根據最佳情景而拾取及放置物品。在某些實施例中,系統判定用於基於該情景之放置位置及定向而放置物品之一計劃。
圖5係圖解說明根據各種實施例之用以模擬一經模擬物品堆疊中之物品當中之相互作用之一程序的一流程圖。在某些實施例中,程序500至少部分地由圖1之系統100實施。
根據各種實施例,回應於系統判定一經模擬放置(諸如結合評估一經模擬放置或經模擬物品堆疊)而調用程序500。程序500可由控制一機器人臂以拾取與放置物品之一電腦系統(例如,機器人系統)在本端執行,或由為機器人系統提供一服務之一或多個伺服器遠端地執行。
在505處,接收要評價一物品堆疊之一模型之一請求。要評價一物品堆疊(例如,反映一或多個物品之經模擬放置之所估計堆疊等)之模型之該請求可係回應於要模擬一放置之一判定或以其他方式結合評估可 能放置而產生。
在510處,獲得一模擬模型。系統獲得一模擬模型,回應於一或多個外部力被施加至物品堆疊(例如,經模擬物品堆疊)之模型而根據該模擬模型模擬物品堆疊之模型之穩定性。
在515處,判定物品堆疊之一或多個特性。系統可評估經模擬物品堆疊之一狀態,諸如判定一密度、一穩定性、包含於物品堆疊中之物品之各別位置或者包含於物品堆疊中之一或多個物品之屬性等。
在520處,選擇要模擬之一外部力。系統選擇要針對經模擬物品堆疊模擬之一外部力。舉例而言,系統基於一使用者輸入選擇外部力。一使用者可經由提供於一用戶端系統上之一使用者介面輸入對要模型化/模擬之一外部力之選擇。作為另一實例,系統自所獲得選擇模型指示要模擬之一組外部力當中選擇外部力。
在525處,模擬選定外部力。系統模擬將外部力施加至經模擬物品堆疊。在某些實施例中,系統調用一物理引擎,該物理引擎將物品堆疊中之物品當中或外部力與物品堆疊(或者包含於物品堆疊中之一或多個物品)之間的相互作用模型化。調用該物理引擎可包含為該物理引擎提供力之一類型、力之一方向、力之一量值、經模擬物品堆疊之幾何模型之一指示及/或與物品之屬性有關之資訊,且請求該物理引擎模擬外部力之施加。
在530處,至少部分地基於選定力之模擬更新物品堆疊之一或多個特性。回應於模擬將外部力施加至經模擬物品堆疊,系統評估物品堆疊。評估物品堆疊之實例包含判定物品堆疊之一所得穩定性、判定經模擬物品堆疊之各種物品之位置(例如,以評價一物品是否已自物品堆疊掉 落,或物品是否已在物品堆疊內移動)等。
在535處,做出關於是否將關於物品堆疊執行額外模擬之一判定。回應於在535處判定將執行額外模擬,程序500返回至520且程序500可針對520至535進行反覆直至無其他額外模擬要關於物品堆疊來執行(例如,使用所獲得模擬模型)。相反,回應於在535處判定無其他模擬要執行,程序500繼續進行至540。
在540處,提供與物品堆疊有關之資訊。在某些實施例中,將與物品堆疊有關之資訊提供給調用程序500之一使用者、系統或其他模組/服務。舉例而言,若程序500由一使用者(例如,一用戶端系統)調用以模擬物品堆疊,則將與物品堆疊有關之資訊提供給該使用者。作為另一實例,若程序500由正判定一當前/下一物品之一放置之一系統或服務調用,則程序500將與物品堆疊有關之資訊提供給此系統或服務。
與物品堆疊有關之資訊可包含以下各項中之一或多者:(i)所得物品堆疊(例如,在經模擬外部力之後的物品堆疊)之一幾何模型,(ii)與物品堆疊之一穩定性(諸如根據一穩定性函數計算之一穩定性量測等)有關之資訊,(iii)基於一預定義評分函數(例如,基於堆疊密度、堆疊穩定性、物品堆疊之時間、物品堆疊之成本等之一評分函數)針對物品堆疊而計算之一評分(諸如對物品堆疊之一優度之一量測),(iv)一物品是否已自經模擬物品堆疊掉落之一指示等。
在545處,做出關於程序500是否完成之一判定。在某些實施例中,回應於將不執行物品堆疊之模型之進一步分析/評價、將不移動其他物品、一使用者已退出系統、一管理者指示將暫停或停止程序500等之一判定而判定程序500完成。回應於對程序500完成之一判定,程序500 結束。回應於程序500未完成之一判定,程序500返回至505。
圖6係圖解說明根據各種實施例之用以評估一經模擬物品堆疊之一程序之一流程圖。在某些實施例中,程序600至少部分地由圖1之系統100實施。可回應於要評估一物品堆疊之一判定調用而程序600。在某些實施例中,程序600由一物理引擎(諸如運行於一遠端伺服器上或本端地運行於控制一機器人臂之一電腦上之一物理引擎)實施。
在605處,接收要評估一經模擬物品堆疊之一請求。在某些實施例中,系統結合模型化/模擬一放置而接收要評估經模擬物品堆疊之一請求。舉例而言,結合判定產生一最佳結果(例如,具有一評分函數之一最高評分之一堆疊)之一放置而使用要評估經模擬物品堆疊之請求。
在610處,獲得經模擬物品堆疊之一幾何模型。經模擬物品堆疊之幾何模型包括物品堆疊之一當前狀態或者基於一或多個物品放置或經模擬物品放置而更新之一幾何模型。在一第一放置被模擬之情形中,系統使用一狀態估計器來判定物品堆疊之一所估計狀態(例如,基於一幾何模型及感測器資料之物品堆疊之一當前狀態等)。在被模擬之一放置係在自獲得一所估計狀態以來之一或多個放置之後的情形中,系統獲得如由一或多個放置(例如,經模擬放置或實際放置)反映之基於所估計狀態而判定之一幾何模型(例如,基於一幾何模型與感測器資料之一組合而判定之一最近模型)。
在615處,獲得包含於經模擬物品堆疊中之物品之屬性。系統獲得包含於經模擬物品堆疊中之物品及/或待放置物品之一或多個屬性。可與經模擬物品堆疊之幾何模型相關聯地儲存該一或多個屬性,或可基於感測器資料(諸如一視覺系統、重量感測器等)而獲得該一或多個屬 性。
在620處,使用幾何模型以及物品之屬性來判定經模擬物品堆疊之一或多個特性。在某些實施例中,系統使用一物理引擎基於幾何模型以及物品之屬性而評估經模擬物品堆疊。物理引擎模擬包含於物品堆疊中之物品當中之相互作用、由作用於物品堆疊上之外部力引起之相互作用等。相互作用之模擬用於表徵經模擬物品堆疊。舉例而言,經模擬物品堆疊之一或多個特性包含一堆疊密度、一穩定性、對堆疊中之不穩定或可能不穩定位置之一指示等。
在625處,使用經模擬物品堆疊之一或多個特性來評估經模擬物品堆疊。在某些實施例中,系統分析經模擬物品堆疊之一或多個特性以判定經模擬物品堆疊是否係足夠好的(例如,穩定的、密實的等)。舉例而言,系統使用一或多個特性來根據一預定義評分函數計算一值(例如,一評分)。
在630處,提供與經模擬物品堆疊之評估有關之資訊。系統提供評估之一結果。舉例而言,系統提供經模擬物品堆疊之一或多個特性之一指示,或基於評分函數而計算之評分。
在635處,做出關於程序600是否完成之一判定。在某些實施例中,回應於無其他模型要評估、無其他模擬要執行、用以判定一放置或評估一放置之一預定義時間量已到期/流逝、一使用者已退出系統、一管理者指示要暫停或停止程序600等之一判定而判定程序600完成。回應於程序600已完成之一判定,程序600結束。回應於程序600未完成之一判定,程序600返回至605。
圖7係圖解說明根據各種實施例之用以評估一經模擬物品堆 疊之一程序之一流程圖。在某些實施例中,程序700至少部分地由圖1之系統100實施。可回應於要評估一物品堆疊之一判定而調用程序700。
在705處,接收要評估一經模擬物品堆疊之一請求。在某些實施例中,系統結合模型化/模擬一放置而接收要評估經模擬物品堆疊之一請求。舉例而言,結合判定產生一最佳結果(例如,具有一評分函數之一最高評分之一堆疊)之一放置而使用要評估經模擬物品堆疊之請求。
在710處,獲得一評估模型。評估模型可與模擬或評估經模擬物品堆疊所根據的一情景對應。在某些實施例中,評估模型指示評估經模擬物品堆疊所根據的一度量。舉例而言,評估指示將用於計算指示物品堆疊之一優度等之一評分/值之一評分函數。在某些實施例中,評估模型包含要模擬之一或多個力之一指示,將針對該一或多個力評估物品堆疊。舉例而言,評估模型指示將被施加至物品堆疊之一組一或多個外部力。評估模型可指示外部力之一或多個力型樣,系統結合該一或多個力型樣而評估經模擬物品堆疊。作為另一實例,評估模型指示將在經模擬放置期間模擬之一組物品與物品相互作用等。
系統可儲存一組一或多個預定義評估模型,或者可結合請求評估經模擬物品堆疊而由一使用者輸入定義評估模型。
在715處,作成評估模型是否包含一外部力之模擬之一判定。回應於在715處判定評估模型包含一或多個外部力之模擬,程序700繼續進行至720。相反,回應於在715處判定評估模型不包含一或多個外部力之模擬,程序700繼續進行至735。
在720處,獲得一外部力型樣。回應於判定評估模型包含一外部力之模擬,系統獲得與待施加外部力相關聯之一或多個特性。一或多 個特性可指示力之一量值、將施加/模擬外部力之經模擬物品堆疊上之一位置、外部力之一方向、外部力之一類型等。
在725處,模擬外部力。在某些實施例中,系統使用一物理引擎來模擬將外部力施加至經模擬物品堆疊。物理引擎模擬力與經模擬物品堆疊中之一或多個物品之間的相互作用、包含於物品堆疊中之物品之間的相互作用等。物理引擎使用真實世界中之實體相互作用之一模型。實體相互作用之模擬考量施加至物品之各種力及物品之屬性等。
在730處,做出關於是否要模擬一額外外部力之一判定。舉例而言,系統判定評估模型是否包含尚未被模擬之一或多個外部力。回應於在730處判定要模擬一額外外部力,程序700返回至720且程序700針對720至730進行反覆直至無其他額外外部力要模擬。相反,回應於在730處判定無額外外部力要模擬,程序700繼續進行至735。
在735處,基於一評分函數而判定經模擬物品堆疊之一評分。系統獲得評分函數之參數且系統計算評分函數之一評分。作為一實例,評分函數指示經模擬物品堆疊之一穩定性、經模擬物品堆疊之一密度等。
在740處,做出關於是否要執行一回應動作之一判定。回應於在740處判定要執行一回應動作,程序700繼續進行至745。相反,回應於在740處判定無回應動作要執行,程序700繼續進行至750。在某些實施例中,是否要執行一回應動作之判定可至少部分地基於根據評分函數之評分。舉例而言,若一評分小於一評分臨限值,則系統判定執行一回應動作。在某些實施例中,是否要執行一回應動作之判定係基於外部力之模擬之一結果。舉例而言,回應於判定一物品已自經模擬堆疊掉落,系統可判 定需要人類干預來改良物品堆疊之穩定性(例如,包裹物品堆疊、重新定位物品堆疊內之物品等)或取回掉落物品等。
在745處,執行回應動作。回應於判定要執行一回應動作,系統致使執行回應動作。作為一實例,待執行之回應動作可包含控制一機器人臂來執行一不同放置、重新定位一物品、取回一掉落物品等。作為另一實例,回應動作可包含警報一使用者、提供缺乏穩定性之一指示或經模擬物品堆疊之評分,或者以其他方式請求人類干預(例如,取回一掉落物品、重新定位堆疊中之一(若干)物品以改良穩定性或密度等)。
在750處,提供經模擬物品堆疊之評分之一指示。可將評分之指示提供至調用程序700之一系統或程序(諸如用於判定放置之一程序),或者諸如經由一使用者介面而提供至一使用者等。
在755處,做出關於程序700是否完成之一判定。在某些實施例中,回應於無其他模型要評估、無其他模擬要執行、用以判定一放置或評估一放置之一預定義時間量已到期/流逝、一使用者已退出系統、一管理者指示要暫停或停止程序700等之一判定而判定程序700完成。回應於程序700已完成之一判定,程序700結束。回應於程序700未完成之一判定,程序700返回至705。
圖8A至圖8G用於圖解說明模擬向一經模擬物品堆疊之外部力之實例。
圖8A係根據各種實施例之基於幾何資料之一實例性物品堆疊之一圖式。物品之堆疊800對應於一經模擬物品堆疊。舉例而言,物品之堆疊800係堆疊於一托盤上之一組物品之一幾何模型。系統可已藉由使用一或多個放置模型模擬一組物品之放置而產生堆疊800。
圖8B係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。將外部力817模擬為被施加至堆疊815。可基於一模擬模型或一使用者輸入而定義外部力817。在圖8B中所圖解說明之實例中,外部力817可與堆疊815在被用於移動托盤之一堆高機或其他裝置嚙合時所經歷之一類型/程度之力對應。
圖8C係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。物品之堆疊830係在外部力817施加至堆疊815之後的一所得堆疊之一實例。如圖8C中所圖解說明,系統(例如,一物理引擎)模擬外部力817與堆疊815中之物品之間的相互作用及/或堆疊815內之物品之間的相互作用。與堆疊815相比,堆疊830具有自施加經模擬外部力817以來已移動之數個物品。舉例而言,物品832、834及836展示為與堆疊815中之對應物品相比已移位。
圖8D係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。將外部力847模擬為被施加至堆疊845。可基於一模擬模型或一使用者輸入而定義外部力847。在圖8D中所圖解說明之實例中,外部力847可與堆疊845在被用於移動托盤之一堆高機或其他裝置提升時所經歷之一類型/程度之力對應。舉例而言,圖8D將外部力847圖解說明為被施加至上面堆疊有堆疊845之托盤由堆高機之叉子嚙合之一位置。
圖8E係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。物品之堆疊860係在外部力847施加至堆疊845之後的一所得堆疊之一實例。如圖8E中所圖解說明,系統(例如,一物理引擎)模擬外部力847與堆疊845中之物品之間的相互作用及/或堆疊845內之物品之間的相互作用。與堆疊845相比,堆疊860具有自施加經模擬外 部力847以來已移動之數個物品。舉例而言,物品862及864展示為與堆疊845中之對應物品相比已移位。作為另一實例,物品864及866已自堆疊860掉落。回應於向堆疊845施加外部力847,系統可基於偵測到物品864及866已因外部力847自堆疊掉落(例如,堆疊860)而認為堆疊845不夠穩定。
圖8F係圖解說明根據各種實施例之施加至物品堆疊之一實例性力之一圖式。將外部力877模擬為被施加至堆疊875。可基於一模擬模型或一使用者輸入而定義外部力877。在圖8F中所圖解說明之實例中,外部力877可對應於基於一物件(例如,由一機器人臂移動之另一物品、一機器人臂、一人等)與堆疊875之一碰撞由堆疊875經歷之一類型/程度之力。
圖8G係根據各種實施例在實例性力被施加至經模擬物品堆疊之後的該堆疊之一圖式。物品之堆疊890係在外部力877施加至堆疊875之後的一所得堆疊之一實例。如圖8G中所圖解說明,系統(例如,一物理引擎)模擬外部力877與堆疊875中之物品之間的相互作用及/或堆疊875內之物品之間的相互作用。與堆疊875相比,堆疊890具有自施加經模擬外部力877以來已移動之數個物品。回應於向堆疊875施加外部力877,系統可基於偵測到堆疊875內之物品已自堆疊掉落而認為堆疊875係不夠穩定的且認為所得堆疊890對於放置新物品或移動上面堆疊有堆疊890之托盤係足夠穩定的。
圖9係圖解說明判定一托盤及/或物品堆疊之一狀態之一估計之程序的一實施例之一流程圖。在某些實施例中,程序900由以下各項中之一或多者實施:運行於一機器人臂之一控制系統上之一應用程式 902、伺服器904、狀態估計器906、視覺系統908以及放置判定器910。
在920處,應用程式902將一請求發送至伺服器904。請求可與對用於放置一物品之一計劃及/或策略之一放置請求對應。
回應於接收到放置請求,在922處,伺服器904調用一狀態判定。舉例而言,伺服器904將一請求或指令發送至狀態估計器906以判定(及提供)所估計狀態。在某些實施例中,狀態估計器906係運行於伺服器904上之一模組。在某些實施例中,狀態估計器906係由複數個不同伺服器/機器人系統進行查詢之一服務。舉例而言,狀態估計器906可為一雲端服務。
回應於調用狀態判定,狀態估計器906獲得視覺狀態。在某些實施例中,狀態估計器906向視覺系統908發送對一視覺狀態之一請求。
回應於在924處接收到對視覺狀態之請求,在926處,視覺系統908向狀態估計器906提供視覺狀態。舉例而言,回應於接收到對視覺狀態之請求,視覺系統使用一工作空間中之一或多個感測器來擷取工作空間之一快照。
回應於接收到視覺狀態,狀態估計器906判定托盤狀態(例如,托盤及/或物品堆疊之一所估計狀態)。狀態估計器906可基於一幾何模型及視覺狀態中之一或多者而判定所估計狀態。在某些實施例中,狀態估計器906組合幾何模型與視覺狀態(至少關於堆疊之一部分)。
在928處,狀態估計器906將托盤狀態提供至伺服器904。
在930處,伺服器904向放置判定器910發送包括托盤狀態之一放置請求。在某些實施例中,放置判定器910係運行於伺服器904上 之一模組。在某些實施例中,放置判定器910係由複數個不同伺服器/機器人系統進行查詢之一服務。舉例而言,放置判定器910可為一雲端服務。
在932處,放置判定器910向伺服器904提供一組一或多個可能放置。可至少部分地基於一(若干)待放置物品(例如,與物品相關聯之屬性)及托盤狀態(例如,物品堆疊內之物品之可用位置及屬性)等而判定該組一或多個可能放置。
在某些實施例中,該組一或多個可能放置係所有可能放置之一子集。舉例而言,放置判定器910使用一成本函數來判定該組一或多個可能放置以提供至伺服器904。放置判定器910可判定滿足關於成本函數之一成本準則(例如,具有小於一成本臨限值之一成本)之可能放置。
回應於接收到該組一或多個可能放置,在934處,伺服器904選擇一放置並將選定放置發送至應用程式902。舉例而言,將選定放置提供為對920處之初始放置請求之一回應。
在936處,應用程式902控制一機器人臂來放置物品。在某些實施例中,應用程式902判定用以將物品移動至選定放置之一計劃(例如,基於物品之一(若干)屬性及對應於選定放置之位置,諸如工作空間中之座標)。
在938處,應用程式902向伺服器904提供執行關於幾何狀態之一更新之一指示。舉例而言,應用程式902提供在936處執行物品之放置之確認且伺服器904將此確認視為要調用對幾何狀態(例如,幾何模型)之一更新之一指示。
在940處,伺服器904向狀態估計器906發送要更新幾何狀態之一請求。舉例而言,伺服器904請求狀態估計器906更新幾何模型以 反映根據對應計劃之物品之放置。
回應於接收到要更新幾何狀態之請求,狀態估計器906執行對應更新。在942處,狀態估計器906向伺服器904提供幾何狀態成功更新之一指示。
在944處,伺服器904向應用程式902提供幾何狀態成功更新以反映物品之放置之一指示。
可針對一組待堆疊物品重複程序900。
雖然在堆棧或解堆棧一組物品之情境中闡述前述實例,但可結合單個化一組物品及/或配套一組物品而實施各種實施例。舉例而言,實施各種實施例以至少部分地基於幾何資料及感測器資料(例如,幾何資料與感測器資料之一組合,諸如幾何資料與感測器資料之間的一內插)而判定/估計工作空間(例如,斜槽、輸送機、容座等)之一狀態。
結合流程圖闡述本文中所闡述之實施例之各種實例。雖然實例可包含以一特定次序執行之特定步驟,但根據各種實施例,各種步驟可以各種次序執行及/或各種步驟可被組合成一單個步驟或並行進行。
雖然已出於清晰理解之目的在某些細節上闡述前述實施例,但本發明並不限於所提供之細節。存在實施本發明之諸多替代方式。所揭示之實施例係說明性而非限制性。
500:程序
505:步驟
510:步驟
515:步驟
520:步驟
525:步驟
530:步驟
535:步驟
540:步驟
545:步驟

Claims (22)

  1. 一種機器人系統,其包括:一記憶體,其經組態以針對複數個物品中之每一者儲存表示該物品之一或多個實體屬性之一組屬性值;以及一或多個處理器,其耦合至該記憶體且經組態以:產生該機器人系統之一工作空間的一3D幾何模型;判定與放置該複數個物品之至少一組物品之一可能情景集對應的一搜尋空間;判定該搜尋空間的一限界以縮小放置至少該組物品之該可能情景集,該搜尋空間之該限界係至少部分基於(i)該3D幾何模型,及(ii)該搜尋空間中之一組情景的評分所判定;反覆地模擬在該有限界的該搜尋空間內之該情景集的一子集的放置;使用該3D幾何模型及該組物品之該組屬性值作為向一物理引擎之輸入,該物理引擎經組態以根據該情景子集計算該經模擬物品堆疊之一穩定性;至少部分基於該經模擬物品堆疊之該穩定性,評分該情景子集;及選擇要被實施之一情景來放置該該組物品。
  2. 如請求項1之機器人系統,其中結合模擬一物品在一特定位置中之一放置而產生該經模擬物品堆疊。
  3. 如請求項1之機器人系統,其中結合模擬一物品在一特定位置及一特定定向中之一放置而產生該經模擬物品堆疊。
  4. 如請求項1之機器人系統,其中該一或多個處理器進一步經組態以:模擬該複數個物品在一托盤或其他容座上之反覆放置以獲得該經模擬物品堆疊。
  5. 如請求項1之機器人系統,其中至少部分地基於下一待放置物品或用以放置該下一物品之一計劃而計算該穩定性。
  6. 如請求項1之機器人系統,其中至少部分地基於該複數個物品之至少二個當中之一相互作用而計算該穩定性。
  7. 如請求項1之機器人系統,其中:該一或多個處理器進一步經組態以模擬施加至該經模擬物品堆疊之一外部力;且該所計算穩定性反映施加至該經模擬物品堆疊之該外部力。
  8. 如請求項7之機器人系統,其中該外部力包含一搖動力。
  9. 如請求項7之機器人系統,其中基於一模擬模型而選擇該外部力。
  10. 如請求項7之機器人系統,其中至少部分地基於對一待模擬力之一類型或量值之一使用者選擇而選擇該外部力。
  11. 如請求項1之機器人系統,其中回應於該經模擬物品堆疊之該穩定性小於一穩定性臨限值之一判定,拒絕一候選放置作為要執行之一放置。
  12. 如請求項11之機器人系統,該候選放置對應於一或多個物品之一放置,結合該放置而產生該經模擬物品堆疊。
  13. 如請求項1之機器人系統,其中該一或多個處理器進一步經組態以:模擬一或多個物品之一候選放置以獲得該經模擬物品堆疊;判定該經模擬物品堆疊在該候選放置之後保持穩定之一可能性;及回應於判定該經模擬物品堆疊保持穩定之該可能性小於一預定義可能性臨限值,拒絕該候選放置。
  14. 如請求項13之機器人系統,其中判定該經模擬物品堆疊保持穩定之該可能性包括:判定在模擬該候選放置之後該經模擬物品堆疊之一所計算穩定性超過一預定義穩定性臨限值之可能性。
  15. 如請求項13之機器人系統,其中該預定義可能性臨限值係95%。
  16. 如請求項1之機器人系統,其中該一或多個處理器進一步經組態以: 判定該經模擬堆疊之該穩定性是否小於一穩定性臨限值;回應於判定該經模擬堆疊之該穩定性小於該穩定性臨限值,致使執行一回應動作。
  17. 如請求項16之機器人系統,其中該回應動作包括向一使用者提供一警報。
  18. 如請求項16之機器人系統,其中該回應動作包括致使執行一人類干預。
  19. 如請求項16之機器人系統,其中該回應動作包括判定用以堆疊該複數個物品之一新計劃。
  20. 如請求項16之機器人系統,其中該回應動作包括模擬該複數個物品之一放置以基於一不同放置模型而判定一新物品堆疊。
  21. 一種用以控制一機器人之方法,其包括:針對複數個物品中之每一者儲存表示該物品之一或多個實體屬性之一組屬性值;及產生一機器人系統之一工作空間的一3D幾何模型;判定一搜尋空間的一限界以縮小放置該複數個物品中之至少一組物品之一可能情景集,該搜尋空間之該限界係至少部分基於(i)該3D幾何模型,及(ii)該搜尋空間中之一組情景的評分所判定; 反覆地模擬在該有限界的該搜尋空間內之該情景集的一子集的放置;使用該3D幾何模型及該組物品之該組屬性值作為向一物理引擎之輸入,該物理引擎經組態根據該情景子集以計算該經模擬物品堆疊之一穩定性;至少部分基於該經模擬物品堆疊之該穩定性,評分該情景子集;及選擇要被實施之一情景來放置該該組物品。
  22. 一種用以控制一機器人之電腦程式產品,該電腦程式產品體現於一非暫時性電腦可讀媒體中且包括用於進行以下操作之電腦指令:針對複數個物品中之每一者儲存表示該物品之一或多個實體屬性之一組屬性值;產生一機器人系統之一工作空間的一3D幾何模型;判定一搜尋空間的一限界以縮小放置該複數個物品中之至少一組物品之一可能情景集,該搜尋空間之該限界係至少部分基於(i)該3D幾何模型,及(ii)該搜尋空間中之一組情景的評分所判定;反覆地模擬在該有限界的該搜尋空間內之該情景集的一子集的放置;使用該3D幾何模型及該組物品之該組屬性值作為向一物理引擎之輸入,該物理引擎經組態根據該情景子集以計算該經模擬物品堆疊之一穩定性;至少部分基於該經模擬物品堆疊之該穩定性,評分該情景子集;及選擇要被實施之一情景來放置該該組物品。
TW111122134A 2021-06-16 2022-06-15 機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品 TWI834194B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163211375P 2021-06-16 2021-06-16
US63/211,375 2021-06-16
US17/837,787 2022-06-10
US17/837,787 US20220405439A1 (en) 2021-06-16 2022-06-10 Physics engine based evaluation of pallet stability

Publications (2)

Publication Number Publication Date
TW202318243A TW202318243A (zh) 2023-05-01
TWI834194B true TWI834194B (zh) 2024-03-01

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200377315A1 (en) 2019-05-31 2020-12-03 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200377315A1 (en) 2019-05-31 2020-12-03 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation

Similar Documents

Publication Publication Date Title
KR102616626B1 (ko) 실시간 배치 시뮬레이션을 사용하여 패키지를 팔레트화하기 위한 로봇 시스템
CN115502985B (zh) 机器人多物品型码垛和卸垛
US10919151B1 (en) Robotic device control optimization using spring lattice deformation model
CN112009811A (zh) 用于处理失序到达的包裹的机器人系统
CN111605938B (zh) 用于使用实时放置模拟来码垛包裹的机器人系统
US20220402708A1 (en) Collision avoidance based on vision data, geometric data and physics engine evaluation
US20220405439A1 (en) Physics engine based evaluation of pallet stability
US20220402139A1 (en) Workflow for using learning based approach for placing boxes on pallets
US20220288787A1 (en) Multi-pallet mixed-case robotic palletizer
US20230241777A1 (en) Packing and planning for tight incollapsible loads
TWI834194B (zh) 機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品
US20220402709A1 (en) State estimation using geometric data and vision system for palletizing
TWI833175B (zh) 機器人單分系統、動態單分方法及體現於一非暫時性電腦可讀媒體中之電腦程式產品
US20220402710A1 (en) Simulated box placement for algorithm evaluation and refinement
US20220402133A1 (en) Workflow for using tree search-based approach for placing boxes on pallet with limited knowledge of future sequence
US20220402134A1 (en) Using simulated/generated noise to evaluate and refine state estimation
US20230278219A1 (en) Object sequencer for container loading
US20230245036A1 (en) Optimization of package weight distribution
US20230241776A1 (en) Object partitioner between heterogeneous transport containers
US20220331989A1 (en) Robotic foam dispenser
WO2022197468A1 (en) Robotic palletization system with variable conveyor height