TW202310994A - 基於視覺資料、幾何資料及物理引擎評估之碰撞迴避 - Google Patents

基於視覺資料、幾何資料及物理引擎評估之碰撞迴避 Download PDF

Info

Publication number
TW202310994A
TW202310994A TW111122135A TW111122135A TW202310994A TW 202310994 A TW202310994 A TW 202310994A TW 111122135 A TW111122135 A TW 111122135A TW 111122135 A TW111122135 A TW 111122135A TW 202310994 A TW202310994 A TW 202310994A
Authority
TW
Taiwan
Prior art keywords
items
item
stack
pallet
placement
Prior art date
Application number
TW111122135A
Other languages
English (en)
Other versions
TWI849437B (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
Application filed by 美商靈巧公司 filed Critical 美商靈巧公司
Publication of TW202310994A publication Critical patent/TW202310994A/zh
Application granted granted Critical
Publication of TWI849437B publication Critical patent/TWI849437B/zh

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/16Stacking of articles of particular shape
    • B65G57/20Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical
    • B65G57/22Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement
    • B65G57/24Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement the layers being transferred as a whole, e.g. on pallets
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/03Stacking of articles by adding to the top of the stack from above
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G61/00Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/02Control or detection
    • B65G2203/0208Control or detection relating to the transported articles
    • B65G2203/0233Position of the article
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/04Detection means
    • B65G2203/041Camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/04Detection means
    • B65G2203/042Sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Human Computer Interaction (AREA)
  • Stacking Of Articles And Auxiliary Devices (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本發明揭示一種機器人系統。該系統包含經組態以自部署於一工作區中之一或多個感測器接收指示該工作區之一當前狀態之感測器資料的一通信介面,該工作區包括一棧板或其他容器及堆疊於該容器上或該容器中之複數個物品。該系統包含一或多個處理器,該一或多個處理器使用至少部分基於過去物品放置之一幾何模型結合該感測器資料來估計該棧板或其他容器及堆疊於該棧板或其他容器上或該棧板或其他容器中之一或多個物品之一狀態,且使用該經估計狀態來產生或更新用以控制一機器人手臂以依迴避使下一物品與堆疊於該棧板或其他容器上或該棧板或其他容器中之任何其他物品碰撞的一方式將該下一物品放置於該棧板或其他容器上或該棧板或其他容器中,或自該棧板或其他容器移除該下一物品的一計劃。

Description

基於視覺資料、幾何資料及物理引擎評估之碰撞迴避
本申請案係關於基於視覺資料、幾何資料及物理引擎評估之碰撞迴避。
裝運及配送中心、倉庫、裝運碼頭、航空貨運站、大型商店及裝運及接收非同質物品組之其他活動使用諸如在盒子、板條箱、貨櫃、輸送帶中及在棧板上等包裝及拆包異種物品之策略。在盒子、板條箱中、在棧板上等包裝異種物品使所得物品組能夠由起重設備(諸如叉車、起重機等)處置且使物品能夠被更有效地包裝以用於儲存(例如,在一倉庫中)及/或裝運(例如,在卡車、貨艙等中)。
在一些背景下,物品可在大小、重量、密度、龐大、剛度、包裝強度等方面如此相異,使得任何給定物品或物品組可或可不具有將使彼等物品能夠支持可能需要包裝(例如,在一盒子、貨櫃、棧板等中)之一給定其他物品之大小、重量、重量分佈等的屬性。當組裝一棧板或其他組異種物品時,必須仔細選擇及堆疊物品以確保經堆棧之堆疊不會塌陷、傾斜或以其他方式變得不穩定(例如,以便不能夠由諸如一叉車等之設備處置)並迴避物品損壞。
當前,棧板通常係用手堆疊及/或拆包。例如,人類工人(例如)基於一裝運發票或載貨單(manifest)等選擇待堆疊之物品並使用人類判斷及直覺來選擇更大及更重物品放置於底部上。然而,在一些情況下,物品僅經由一輸送機或其他機構到達及/或自一有序清單中之貯存箱選擇等,從而導致一不穩定的經堆棧或以其他方式包裝之組。
在許多環境中,歸因於物品之種類繁多,(例如)在一給定棧板上之待包裝之物品之順序、數目及混合之變動,以及必須自其拾取物品以放置於棧板或其他貨櫃上之貨櫃及/或進給機構之多種類型及位置,機器人之使用變得更具挑戰性。
本發明可以諸多方式來實施,包含作為一程序;一設備;一系統;一物質組合物;體現於一電腦可讀儲存媒體上之一電腦程式產品;及/或一處理器,諸如經組態以執行儲存於耦接至該處理器之一記憶體上及/或由該記憶體提供之指令的一處理器。在本說明書中,此等實施方案或本發明可採用之任何其他形式可被稱為技術。一般而言,在本發明之範疇內,可改變所揭示程序之步驟之順序。除非另有說明,否則可將被描述為經組態以執行一任務之一組件(諸如一處理器或一記憶體)實施為臨時經組態以在一給定時間執行該任務之一通用組件或經製造以執行該任務之一特定組件。如本文中所使用,術語「處理器」係指經組態以處理資料(諸如電腦程式指令)之一或多個裝置、電路及/或處理核心。
在下文連同繪示本發明之原理之附圖提供對本發明之一或多項實施例之一詳細描述。本發明係結合此等實施例進行描述,但本發明並不限於任何實施例。本發明之範疇係僅藉由發明申請專利範圍限制且本發明涵蓋諸多替代例、修改及等效物。在以下描述中闡述許多具體細節以便提供本發明之透徹理解。出於例示目的提供此等細節且可在不具有此等具體細節之一些或全部之情況下根據發明申請專利範圍來實踐本發明。為清楚起見,尚未詳細描述與本發明相關的技術領域中已知之技術材料,使得不會不必要地模糊本發明。
如本文中所使用,一幾何模型可意謂一工作區之一狀態(諸如一程式化地判定之狀態)之一模型。例如,使用所判定之幾何資料結合產生用以移動工作區中之一物品之一計劃及若該物品根據計劃移動之一預期結果來產生幾何模型。例如,一幾何模型對應於藉由控制一機器人手臂在一工作區內拾取、移動及/或放置物品來修改之該工作區之一狀態,且物品之拾取、移動及放置被認為根據計劃執行(例如,無錯誤,諸如可基於以下引入之錯誤或雜訊:(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)判定對應於該放置之該物品自一源位置至一目的地位置之一軌跡;及(v)控制一機器人手臂沿著該軌跡移動物品並將物品放置於該目的地位置處。
在一些實施例中,判定當前狀態包含獲得工作區之幾何資料(例如,一幾何模型),獲得工作區之感測器資料(例如,由一視覺系統擷取之資料),及使用狀態估計器以基於幾何資料與感測器資料之一組合獲得經估計狀態。狀態估計器可為被視為基於一幾何模型及由視覺系統擷取之資料最佳大致估計一工作區之一狀態之一狀態估計模型。使用狀態估計器來獲得經估計狀態可包含查詢可在一遠端伺服器(例如,一雲端服務)上運行或在機器人系統本端運行之狀態估計器。狀態估計器可使用一機器學習程序來訓練。
在一些實施例中,判定一特定物品之放置包含獲得經估計狀態,自待移動之一組物品當中選擇一物品,獲得與該選定物品相關聯之屬性,判定選定物品之一組可能放置,模擬該組可能放置並使用一物理引擎來模型化/評估放置及/或其上放置選定物品之一物品堆疊,及基於經模擬放置及/或放置之評估自該組可能放置當中選擇一放置。判定該組可能放置可包含基於經估計狀態及/或待放置之物品之屬性判定一搜尋空間及對該搜尋空間定界以自搜尋空間移除不可行的放置。模擬可能放置及使用物理引擎來模型化/評估放置可包含使用一放置模型來模擬經定界之搜尋空間內之各種放置及查詢一物理引擎以評估由放置引起之在工作區中之物品間互動、由放置引起之在工作區中之物品至物體互動,及獲得由經模擬放置引起之一經模擬物品堆疊。自可能放置組當中選擇一放置可包含使用一評分函數來判定可能放置組之對應值,及基於與各自可能放置相關聯之評分函數之值選擇放置。例如,選擇具有一最高評分之一放置。作為另一實例,具有滿足一評分準則(例如,高於一評分臨限值之一評分)及一或多個其他準則(例如,移動物品之成本、放置具有相關聯之無碰撞軌跡之判定、由放置引起之一經模擬物品堆疊之一穩定性臨限值等)之一評分的一放置。
在一些實施例中,判定對應於放置之物品自一源位置至一目的地位置之一軌跡包含判定將物品自源位置移動至一目的地位置之一組可能軌跡,及基於一軌跡選擇準則選擇一軌跡。選擇軌跡可包含判定一對應成本(例如,使用一預定義成本函數)或對應評分(例如,使用一預定義評分函數),及基於該成本或評分自該組可能軌跡當中選擇一軌跡。可基於軌跡未導致物品與工作區內之另一物品或物體之間的一碰撞之一判定來選擇軌跡。例如,系統使用物品及工作區之一3D表示來判定物品(或移動物品之機器人手臂)之任何部分是否與由工作區中之另一物品或物體佔用之另一點/體積相交。可藉由自該組可能軌跡當中判定無碰撞軌跡,及自無碰撞軌跡當中選擇具有移動物品之一最低成本(或以其他方式滿足一軌跡選擇準則,諸如低於一預定義成本臨限值之一成本)之一軌跡來選擇軌跡。
結合拾取及放置物品使用之各種模型可使用一機器學習程序來訓練。例如,一機器學習程序可用於訓練(i)狀態估計器;(ii)放置模型;(iii)使用一機器學習程序訓練之一程序;(iv)物理引擎等。機器學習程序可包含以下一或多者:一監督式學習、一無監督式學習、一分類學習實施方案、一迴歸學習實施方案、一叢集化實施方案等。一分類學習實施方案之實例可包含一支援向量機模型、一判別分析模型、一樸素貝葉斯模型、最近鄰模型等之一或多者。一迴歸學習實施方案之實例可包含一線性迴歸GLM模型、一支援向量迴歸模型、一高斯程序迴歸模型、一整體方法模型、一決策樹模型、一神經網路模型等之一或多者。一叢集化實施方案之實例包含一K均值模型、一K中心點(Medoids)模型、一模糊C均值模型、一階層式模型、一高斯混合模型、一神經網路叢集化模型、一隱藏式馬可夫(Markov)模型等之一或多者。
根據各項實施例,回應於機器人將一物品放置於棧板上,用於估計一工作區之一狀態或棧板及/或棧板上之一物品堆疊之一狀態的一系統記錄與物品之放置相關的資訊(例如,物品之一位置、物品之一大小等)。例如,系統基於機器人放置工作區之各種物品及其他物體之位置(其可經預定義或使用視覺系統識別)具有系統(例如,工作區等)之狀態之一邏輯知識。該邏輯知識可對應於幾何資料,諸如基於控制機器人所藉助之方式獲得之資訊。然而,邏輯知識可不同於工作區之真實世界狀態,或棧板及/或棧板上之一物品堆疊之真實世界狀態。類似地,如上文所論述,如由視覺系統偵測之工作區之狀態,或棧板及/或棧板上之一物品堆疊之狀態(例如,基於感測器資料模型化之真實世界狀態)可不同於諸如基於感測器資料中之雜訊或不準確/不完整感測器資料之真實世界狀態。各項實施例使用幾何資料(例如,邏輯知識)及感測器資料來組合世界觀。使用幾何資料及感測器資料兩者來模型化世界(例如,工作區)填充各資料集之世界觀中之間隙。例如,可使用基於視覺系統獲得之感測器資料結合判定是否需要更新/細化工作區之一預期狀態或棧板或棧板上之物品堆疊之預期狀態。根據各項實施例之狀態估計對棧板及/或棧板上之物品堆疊之狀態提供比僅使用感測器或僅使用幾何資料將可能實現的情況更佳的估計。此外,可使用棧板及/或棧板上之物品堆疊之狀態之估計結合將物品堆棧至一棧板/將物品自一棧板卸除堆棧。使用工作區之狀態或棧板及/或棧板上之物品堆疊之狀態之估計之較佳估計結合判定拾取及放置物品可提供較佳放置,此在堆棧/卸除堆棧之情況下可導致較佳最終棧板(例如,更緊密/密集包裝之棧板、更穩定棧板等)。
在一些實施例中,一狀態估計器(例如,一棧板狀態估計器、一工作區狀態估計器等)可儲存及/或管理(i)基於幾何資料模型化之狀態與(ii)基於視覺系統模型化之狀態之間的一差異。例如,狀態估計器可儲存/管理一當前狀態。狀態估計器可為由一電腦系統(諸如控制拾取及放置(若干)物品之機器人之機器人系統),或由與控制機器人之機器人系統通信之一伺服器執行之一模組。
在一些實施例中,判定可放置物品之可能位置係至少部分基於棧板/物品堆疊之邊緣。例如,在棧板之頂表面上(例如,在將任何物品放置於棧板上之前),邊緣可對應於棧板之圓周。作為另一實例,在棧板之頂表面上(例如,在將任何物品放置於棧板上之前),該等邊緣可基於棧板之邊角來判定(例如,該等邊緣可藉由二相鄰邊角來界定)。若已將一或多個物品放置於棧板上,堆疊之一頂表面可為不平坦的(例如,非平面的)。可放置物品之可能位置可至少部分基於以下一或多者之邊緣來判定:(i)棧板之邊緣;及(ii)棧板/物品堆疊上之一或多個物品之一或多個邊緣。在一些實施例中,可放置物品之可能位置可至少部分基於以下一或多者之邊緣來判定:(i)棧板之邊緣;及(ii)棧板/物品堆疊上之一或多個物品之至少兩個邊緣之邊角。在一些實施例中,若已將一或多個物品放置於棧板上,則可放置物品之可能位置可包括以下一或多者:(i)棧板;及(ii)由放置於棧板上之一(若干)物品形成之層之一或多個表面。判定可放置物品之位置係至少部分基於判定對應於(例如,界定)其上可放置一物品之表面之一或多個邊緣。例如,可針對由已放置於棧板上之物品形成之各種層或表面(例如,已放置於棧板上之物品之一或多者之一頂表面)判定一或多個邊緣。
根據各項實施例,可至少部分基於棧板之一當前模型來判定一邊緣。例如,對應於將物品堆棧於一棧板上之機器人之一工作區之一視覺系統可獲得可自其判定感測器資料之資訊。可使用感測器資料結合產生棧板之一模型。例如,棧板之模型可對應於棧板之一當前狀態。在一些實施例中,一系統對棧板之模型執行一分析(例如,一影像分析)。作為一實例,系統可執行一邊緣偵測分析以判定模型中之邊緣。系統可進一步處理模型以判定對應於其上可放置一物品之表面之邊緣。
在一些實施例中,基於棧板及/或棧板上之物品堆疊上之一或多個表面之一或多個頂點來判定一可能位置。該一或多個頂點可至少部分基於一或多個邊緣來判定。例如,一頂點可對應於兩個邊緣相接之一邊角或點。
根據各項實施例,回應於判定可放置物品之可能位置(例如,基於棧板之邊緣、棧板上之物品之邊緣,及/或其上可放置物品之各種表面之邊緣,諸如由棧板上之物品形成之邊緣),系統至少部分基於對應預期穩定性量度來判定一組可行位置。作為一實例,系統可至少藉由自可能位置移除針對其在放置之後之物品(或在物品放置之後之一物品堆疊)預期不穩定之彼等位置來判定該組可行位置。作為另一實例,系統可至少藉由自可能位置移除針對其在放置之後之物品的一預期穩定性(或在物品放置之後之一物品堆疊的預期穩定性)低於一特定穩定性臨限值之彼等位置來判定該組可行位置。可預組態及/或可設定穩定性臨限值使得僅一組N個最佳位置保留於該組可行位置中。N可為一整數,或可能位置之一總數之百分位數。系統可呼叫或執行一物理引擎來評估與將一物品放置於一特定位置處相關聯的一預期穩定性,且至少部分基於來自該物理引擎之一回應(例如,關於物品堆疊是否預期為穩定的,或不穩定或不足夠穩定),系統可判定該特定可能位置是否係一可行位置(例如,特定可能位置是否包含於該組可行位置中)。
根據一些實施例,系統基於與放置物品之一目的地位置相關聯之評分函數之值來判定該目的地位置。回應於判定可放置物品之該組可行位置,系統可判定與該組可行位置中所包括之位置相關聯之評分函數之對應值。評分函數可包含與包裝密度、棧板/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間等之一或多者相關聯之經加權值。與棧板/堆棧程序相關聯之其他特性之值可包含於與最佳放置相關的函數中。在一些實施例中,評分函數可包含與將物品移動至一特定位置相關聯之一成本函數或與該成本函數一起使用。可選擇該組可行位置中具有基於評分函數之最佳評分(例如,一最高評分)之位置作為待放置物品之目的地位置。
根據各項實施例,評分函數可指示一棧板/物品堆疊之一優良。例如,評分函數可對應於與棧板/物品堆疊之一或多個特性相關的一目標量度。評分函數可包含與包裝密度、棧板/堆疊穩定性、完成堆棧之時間、完成一組物品之放置之時間等之一或多者相關聯之經加權值。與棧板/堆棧程序相關聯之其他特性之值可包含於與最佳放置相關的函數中。在一些實施例中,基於參數化至少包括對應於一當前棧板、一當前物品及一放置位置之值或變量之一函數來判定評分函數。根據各項實施例,評分函數之參數係基於一或多種機器學習方法來訓練。結合判定評分函數之一值,系統可呼叫或執行一物理引擎結合判定棧板/物品堆疊之一穩定性(或預期穩定性)。
在一些實施例中,用於評估物品堆疊之系統(例如,物理引擎)模擬作用於物品堆疊之力。例如,物理引擎考量工作區內之物品及/或物體當中之所有互動,諸如物品間互動、物品至機器人手臂互動、叉車至棧板互動等。系統可模擬各種類型之外力及/或具有各種量值之外力。系統可模擬之力之類型之實例包含(i)一摩擦力(例如,在兩個物品之間等);(ii)重力;(iii)一法向力;(iv)一擺動力;(v)在一物品之移動期間產生之搖擺力;(vi)對應於接合其上堆疊物品堆疊之一棧板之一叉車之一力等。可模擬各種其他類型之力。可根據一預定義力分佈(包含待模擬之力之一定義/特性)來實施外力之模擬。力分佈可包含力之一類型、力之一量值、施加力之一位置等之一或多者。在一些實施方案中,力分佈係基於一使用者輸入(諸如由一使用者經由系統之一用戶端系統輸入之用以模擬一特定外力之一請求)。作為一實例,一使用者請求系統模擬在一叉車(或其他運載工具/裝置)拾取及/或移動其上堆疊物品堆疊之一棧板時產生之一力。在一些實施方案中,力分佈係由待模擬之一案例設定或參考。
在一些實施例中,評估一物品堆疊係基於一物品堆疊之一表示(例如,一經估計狀態/幾何模型)、一或多個物品之屬性(例如,若此等屬性未包含於幾何模型中)及用於判定物品堆疊之一評分(例如,優良、穩定性、密度等之一值)之一評分函數。評估物品堆疊可進一步基於待模擬之一力之一力分佈(例如,待根據一預定義案例或基於用以模擬一外力之一使用者請求模擬之一或多個力之力分佈)。
結合模擬物品之放置,系統回應於放置之模擬儲存與該放置相關的資訊。例如,對於各經模擬放置,系統更新工作區之一幾何模型(例如,經模擬物品堆疊之一幾何模型)。結合模擬待模擬之一組放置之一第一放置,系統獲得物品堆疊之一經估計狀態。系統使用一狀態估計器(例如,一狀態估計模型)來判定經估計狀態(例如,物品堆疊之幾何模型)。接著,系統循序地模擬一或多個物品之放置及用各放置更新物品堆疊之幾何模型。該組放置內之放置可基於判定可能/可行放置並自可能放置當中選擇待模擬之放置之一放置模型來判定。系統(例如,物理引擎)可模型化/模擬在構建物品堆疊時(例如,在對物品堆疊進行進一步放置時)物品堆疊當中之物品之初始位置及定向的一移位。系統可基於物品堆疊中所包含之物品之(若干)位置/(若干)定向之經模型化/模擬之移位來評估穩定性或穩定性之其他特性。在一些實施例中,系統針對包含於物品堆疊中(例如,棧板上)之每個物品評估此物品之位置及定向針對待放置之一組物品之各放置之一經模型化/模擬之移位。
在一些實施例中,使用物理引擎結合判定一棧板/物品堆疊的一預期穩定性(諸如在實施一動作之前)。例如,在將一物品放置於一棧板上之前(例如,在堆棧期間),系統使用物理引擎來評估將一物品放置於棧板上之一特定位置處的一預期穩定性。作為另一實例,在自一棧板移除一物品之前(例如,在卸除堆棧期間),系統使用物理引擎來評估自棧板/物品堆疊移除物品的一預期穩定性。回應於判定一棧板/物品堆疊的預期穩定性在動作之執行之後將為穩定的,可執行動作或以其他方式將其視為作為一可能/可允許動作之一動作。相反地,回應於判定一棧板/物品堆疊的預期穩定性在動作之執行之後將為不穩定的(或不足夠穩定,諸如小於一預定穩定性臨限值),可將動作視為作為一不可能/不允許動作之一動作。系統基於比較與一物品堆疊之穩定性相關的一度量與一穩定性臨限值來判定該物品堆疊是否係穩定的(例如,足夠穩定)。在一些實施例中,基於與穩定性相關聯之一可信區間來設定預定義之穩定性臨限值。例如,預定義之穩定性臨限值可經設定使得棧板在95%之時間係穩定的且不經受自堆疊掉落之物品影響等。作為另一實例,預定義之穩定性臨限值可經設定使得棧板在99%之時間係穩定的。預定義之穩定性臨限值可由一使用者設定。
系統可至少部分基於與棧板及/或物品堆疊相關的感測器資料來判定穩定性或預期穩定性。作為一實例,可由與執行堆棧/卸除堆棧之機器人在其中操作之工作區相關聯之一視覺系統獲得感測器資料。在一些實施例中,物理引擎判定或獲得棧板及/或物品堆疊之一模型。該模型可至少部分基於感測器資料產生。在一些實施例中,模型包括與棧板及/或物品堆疊上之一或多個物品相關聯之一或多個屬性。一物品之一屬性之實例包含大小(例如,長度、寬度、高度等)、重量、重心、包裝類型、剛度之一量度、物品是否剛性之一指示、一識別碼(例如,一條碼、標記等)。其他屬性可包含於模型中或與模型相關聯。根據各項實施例,物理引擎可至少部分基於棧板及/或物品堆疊之模型來判定棧板及/或物品堆疊之一穩定性。作為一實例,物理引擎可基於棧板及/或物品堆疊上之一或多個物品之一位置(或相對位置)及至少一個物品之至少一個屬性來判定棧板及/或物品堆疊之一穩定性。
根據各項實施例,系統回應於判定一棧板/物品堆疊之穩定性不穩定(或不足夠穩定,諸如小於一預定穩定性臨限值)而實施一補救動作(例如,一回應動作)。補救動作之實例包含(i)向一使用者提供一警示/指示;(ii)請求人類干預;(iii)判定及實施用以自棧板/物品堆疊移除引起不穩定性之一物品之一計劃;(iv)判定及實施用以將預期改良棧板/物品堆疊之穩定性(例如,改良穩定性以超過一預期穩定性臨限值)之一物品添加至棧板/物品堆疊的一計劃;(v)判定包裹棧板及/或物品堆疊之至少一部分。在一些實施例中,可實施一或多個補救動作。系統可至少部分基於一或多個補救動作可改良穩定性及/或一或多個補救動作預期改良穩定性之一程度(例如,程度之一量度)之一可能性(例如,可能性之一量度)來選擇實施之一或多個補救動作。系統可引起(例如)藉由控制一機器人手臂執行一任務或提示一使用者手動干預等來執行補救動作。
根據各項實施例,機器人系統可使用工作區之狀態(例如,至少部分基於幾何資料及感測器資料判定之狀態)結合判定用於將一物品自一源位置移動至一目的地位置之一計劃。例如,機器人系統可判定包括物品及/或機器人(例如,機器人手臂)之迴避工作區中之另一物品或物體之間的一碰撞之一軌跡的一計劃。機器人系統可判定工作區中之各種物品或物體之位置且至少部分基於判定物品/機器人之一軌跡不與工作區中之另一物品或物體相交來判定該軌跡。在一些實施例中,在機器人實施計劃/沿著經計劃軌跡移動物品時,機器人系統可獲得幾何資料及/或感測器資料,且產生工作區之一經更新狀態。系統可基於經計劃軌跡及工作區之經更新狀態來判定是否偵測/預期一碰撞事件。回應於基於經計劃軌跡及工作區之經更新狀態判定偵測/預期一碰撞事件,系統可判定用於移動物品之一經更新計劃。作為一實例,該經更新計劃可包括沿著其移動物品/機器人之一經更新軌跡。作為另一實例,經更新計劃可包括警示一使用者及/或提示人類干預。作為另一實例,經更新計劃可包括暫停物品之移動及/或等待自工作區清除一物體(例如,在一使用者進入或步行通過工作區之情況下)。
在一些實施例中,狀態估計器在一物品之放置之後反覆地更新其狀態內部模型(例如,世界、棧板及/或棧板上之物品堆疊等)。狀態之內部模型可對應於工作區或棧板及/或棧板上之物品堆疊之一當前狀態。棧板狀態估計器可在各物品之放置之後更新其內部模型。例如,控制機器人之機器人系統可提供與物品相關的資訊(例如,物品之(若干)特性,諸如尺寸、重量、重心等)、由視覺系統獲得之感測器資料,及/或對應於控制機器人以放置物品之位置之幾何資料。回應於接收與物品相關的資訊、感測器資料及/或幾何資料,棧板狀態估計器可更新其內部模型。例如,狀態估計器(例如,一工作區狀態估計器、一棧板狀態估計器等)可(i)將感測器資料提供至用於使用感測器資料模型化狀態之一模組;(ii)將幾何資料及/或與物品相關的資訊提供至用於使用幾何資料模型化狀態之模組;及(iii)基於根據感測器資料之狀態之一模型及/或根據幾何資料之狀態之一模型(例如,或兩種狀態之間的一差異)更新其內部模型。
可使用工作區內之各種物體作為參考(例如,可使用機器人之一底座、一貨架、一輸送機、一定框結構、棧板之一底部作為作為堆疊之底部之一參考點等)來判定工作區之狀態之模型。可在放置一物品之後或在移動機器人或物品時更新模型,使得在對應位置處表示物品或機器人。
可使用棧板作為參考(例如,可使用棧板之一底部作為作為堆疊之底部之一參考點等)來判定棧板及/或物品堆疊之狀態之模型(例如,對應於經估計狀態之幾何模型)。可在放置一物品之後更新模型,使得在放置物品之位置處表示物品。狀態之模型可儲存為一個二維網格(例如,10 x 10)。模型可進一步包括與棧板上之物品堆疊中之各物品相關聯之資訊。例如,與物品相關聯之一或多個特性可與模型中之物品相關聯地儲存。在一些實施例中,可基於堆疊上之各種物品之位置及與物品相關聯之一或多個特性來判定/運算物品堆疊之一穩定性。可基於經儲存模型之單元與實體世界之間的一經判定轉換將棧板之狀態之模型轉換為實體世界中之一表示。
各項實施例包括包括一種機器人系統,其包括一通信介面及耦接至該通信介面之一或多個處理器。該一或多個處理器可經組態以:經由該通信介面接收與待堆疊於一目的地位置上或該目的地位置中之複數個物品相關聯之資料;至少部分基於該經接收資料產生用以將該等物品堆疊於該目的地位置上或該目的地位置中之一計劃;及至少部分藉由控制機器人手臂以根據該計劃拾取該等物品及將該等物品堆疊於該目的地位置上或該目的地位置中來實施該計劃。產生用以將物品堆疊於目的地位置上或目的地位置中之計劃可包括,對於各物品:至少部分基於與該物品相關聯之一特性及(i)其上將堆疊一或多個物品之一平台或容器之一特性及(ii)該平台或容器上之一物品堆疊之一當前狀態之至少一者來判定目的地位置,其中:平台或容器上之一物品堆疊之當前狀態係至少部分基於與該物品堆疊中所包括之一或多個物品之放置相關的幾何資料,及由一視覺系統獲得之與物品堆疊相關的感測器資料。可至少部分基於與物品堆疊中所包括之一或多個物品之放置相關的幾何資料與由一視覺系統獲得之與物品堆疊相關的感測器資料之間的一差異來判定物品堆疊之當前狀態。可至少部分基於機器人系統查詢一棧板狀態估計器(例如,運行於一伺服器上或在機器人系統本端運行之一狀態估計器)來獲得平台或容器上之物品堆疊之當前狀態。
其他申請案之交叉參考本申請案主張2021年6月16日申請之標題為COLLISION AVOIDANCE BASED ON VISION DATA, GEOMETRIC DATA AND PHYSICS ENGINE EVALUATION之美國臨時專利申請案第63/211,377號之優先權,該案針對所有目的以引用的方式併入本文中。
圖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可同時(例如,並行及/或同時(contemporaneously))將一或多個物品堆疊於複數個棧板上。複數個棧板之各者可與一載貨單及/或訂單相關聯。例如,棧板之各者可與一預設目的地(例如,客戶、地址等)相關聯。在一些例項中,複數個棧板之一子集可與同一載貨單及/或訂單相關聯。然而,複數個棧板之各者可與不同載貨單及/或訂單相關聯。機器人手臂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方向(垂直方向)上之力感測器)可用於識別、判定輸送機104及/或其中可定位及/或重新定位物品(例如,藉由系統100)之其他源及/或停靠區域上之物品之屬性,抓握、拾取該等物品,將該等物品移動通過一經判定軌跡,及/或將該等物品放置於容器106上或容器106中之一目的地位置中。
在所展示之實例中,(若干)攝影機112安裝於末端執行器108之主體之側上,但在一些實施例中,(若干)攝影機112及/或額外攝影機可安裝於其他位置中,諸如在末端執行器108之主體之下側上(例如,自吸盤110之間的一位置指向下方),或在機器人手臂102之片段或其他結構或其他位置上。在各項實施例中,諸如112、114及116之攝影機可用於讀取在輸送機104上之物品上可見及/或包括輸送機104上之物品之文字、標誌、照片、圖式、影像、標記物、條碼、QR碼或其他經編碼及/或圖形資訊或內容。
在一些實施例中,系統100包括經組態以回應於控制信號自一間隔件材料供應源施配一定量之間隔件材料之一施配器裝置(未展示)。該施配器裝置可安置於機器人手臂102上或在工作區之接近度內(例如,在工作區之一臨限距離內)。例如,施配器裝置可安置於機器人手臂102之工作區內,使得施配器裝置在容器106 (例如,棧板)上或周圍,或在機器人手臂102之末端執行器108之一預定距離內施配間隔件材料。在一些實施例中,施配器裝置包括經組態以將施配器裝置安裝於機器人手臂102之一末端執行器108上或附近之一安裝硬體。該安裝硬體係一支架、一帶子及一或多個緊固件等之至少一者。作為一實例,施配器裝置可包括加偏壓於施配器裝置內之供應材料以自施配器裝置頂出施配之一偏壓裝置/機構。施配器裝置可包含用於控制間隔件材料之施配(例如,防止在未致動閘控結構的情況下施配間隔件材料,及允許回應於致動施配待施配之間隔件材料)之一閘控結構。
施配器裝置可包括經組態以接收一控制信號之一通信介面。例如,施配器裝置可與一或多個終端機(諸如控制電腦118)通信。施配器裝置可經由一或多個有線連接及/或一或多個無線連接與一或多個終端機通信。在一些實施例中,施配器裝置傳送資訊至一或多個終端機。例如,施配器裝置可向控制電腦118發送施配器裝置之一狀態之一指示(例如,施配器裝置是否正常操作之一指示)、施配器裝置中所包括之間隔件材料之一類型之一指示、施配器裝置中之間隔件材料之一供應位準之一指示(例如,施配器裝置是否滿的、空的、半滿的等之一指示)。控制電腦118可結合控制施配器裝置施配一定量之間隔件材料而使用。例如,控制電腦118可判定一間隔件將結合對一或多個物品進行堆棧而使用,諸如以改良容器106上/中之物品堆疊的預期穩定性之一穩定性。控制電腦118可判定結合對一或多個物品進行堆棧而使用之間隔件材料之量(例如,間隔件之一數目、間隔件材料之一量等)。例如,可至少部分基於判定用於對一或多個物品進行堆棧之一計劃來判定結合對一或多個物品進行堆棧而使用之間隔件材料之量。
在一些實施例中,施配器裝置包括經組態以回應於控制信號自一間隔件材料供應源施配一定量之間隔件材料之一致動器。回應於判定一間隔件/間隔件材料將結合對一或多個物品進行堆棧而使用,控制電腦118可產生控制信號以引起致動器施配該量之間隔件材料。控制信號可包括待用作間隔件之間隔件材料之量之一指示。
根據各項實施例,一間隔件或一間隔件材料係剛性塊。例如,間隔件或一間隔件材料可為一剛性發泡體塊。在一些實施例中,一間隔件或一間隔件材料包括聚胺基甲酸酯。
在一些實施例中,間隔件材料之供應源包括複數個預切割塊。該複數個預切割塊可預裝載至將複數個預切割塊偏壓至一施配端之一彈簧負載之筒中。回應於自筒施配一預切割塊,將複數個預切割塊之另一預切割塊推動至待自筒施配之下一線上位置。
在一些實施例中,間隔件材料之供應源包括一較大間隔件材料塊、一間隔件材料條及一間隔件材料卷之一或多者。施配器裝置或系統100可包括經組態以自間隔件材料供應源切割一定量之間隔件材料之一切割器。回應於提供至致動器之控制信號,致動器可引起切割器自間隔件材料供應源切割一定量之間隔件材料。
在一些實施例中,間隔件材料之供應源包括一液體前驅體。回應於提供至致動器之控制信號,致動器引起一定量之間隔件材料施配至一棧板或該棧板上之一物品堆疊之一表面上。經施配之前驅體可在施配至棧板或棧板上之物品堆疊之表面上之後硬化。
在一些實施例中,間隔件材料之供應源包括一經擠壓材料。回應於提供至致動器之控制信號,將經擠壓材料填充至一所要大小及一所要堅固度之一或多者。可回應於經擠壓材料經填充至所要大小及所要堅固度之一或多者之一判定來密封經擠壓材料。在一些實施例中,經擠壓材料係用一流體填充。流體可為空氣、水等之一或多者。在一些實施例中,經擠壓材料係用凝膠填充。
在各項實施例中,一機器人控制之施配器工具或機器填充盒子之間及/或鄰近於盒子之空隙,以準備用於經放置之下一盒子/層之表面區域。在一些實施例中,系統100可使用一機器人手臂102來拾取/放置預定義之切割材料及/或可動態地修整間隔件材料以適應經放置之下一物品之表面區域的需要。在一些實施例中,機器人控制之施配器裝置,或包括機器人控制之施配器之機器人堆棧系統包括用以自一長管及/或包裝進行修整以設定一長方體之大小並將該長方體放置於一現有棧板上結合準備用於系統判定其可能未正常地契合於棧板表面區域上(例如,在一先前層之一上表面上)之下一盒子或物品之表面區域的一裝置。間隔件可包含(但不限於)發泡體、一充氣塑膠包、木材、金屬、塑膠等。施配器裝置可將長方體(例如,間隔件)直接放置(例如,頂出、施配等)於棧板上,及/或裝置可靠近機器人手臂施配長方體(例如,間隔件),且末端執行器可將長方體(例如,間隔件)重新定位/放置於棧板表面區域上。施配器裝置可施配一預定量(例如,一正確量或一預期量)之間隔件材料以校正或改良層上(例如,層之上表面上)之盒子或物品之間的表面積差異,以準備用於下一盒子或物品之表面區域。
進一步參考圖1,在所展示之實例中,系統100包含經組態以在此實例中經由無線通信(但在各項實施例中,以有線及無線通信之一或兩者)與元件(諸如機器人手臂102、輸送機104、末端執行器108,及諸如攝影機112、114及116及/或圖1中未展示之重量、力及/或其他感測器之感測器)通信的一控制電腦118。在各項實施例中,控制電腦118經組態以使用來自感測器(諸如攝影機112、114及116及/或圖1中未展示之重量、力及/或其他感測器)之輸入來查看、識別及判定待裝載至容器106中及/或自容器106卸載之物品之一或多個屬性。在各項實施例中,控制電腦118使用儲存於控制電腦118上及/或可供控制電腦118存取之一程式庫中之物品模型資料來識別一物品及/或其屬性(例如,基於影像及/或其他感測器資料)。控制電腦118使用對應於一物品之一模型來判定及實施用以將物品連同其他物品堆疊於一目的地(諸如容器106)中/上之一計劃。在各項實施例中,物品屬性及/或模型係用於判定用以抓握一物品、移動該物品及將物品放置於一目的地位置(例如,物品經判定為放置之一經判定位置)中作為將物品堆疊於容器106中/上之一計劃/重新計劃程序之部分的一策略。
在所展示之實例中,控制電腦118連接至一「按需」遙操作裝置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可使用機器學習程序以至少部分基於在與物品相關的資訊(例如,屬性資訊、目的地位置等)與拾取物品之效能(例如,與過去反覆拾取及放置物品或類似物品(諸如共用一或多個類似屬性之物品)相關聯之歷史資訊)之間的一關聯來改良拾取策略。
根據各項實施例,控制電腦118控制系統100將一間隔件放置於一容器106 (例如,一棧板)或一物品堆疊上結合改良容器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提供用於模擬一組物品之放置及提供下一物品之一放置或一組物品之一序列放置之一指示/建議的一服務。伺服器126可用於諸如藉由運行一物理引擎以分析物品堆疊中之物品或工作區內之其他物品或物體預期經歷之互動來評估一物品堆疊(或經模擬物品堆疊)之穩定性。控制電腦118可向伺服器126查詢一特定物品之一放置或一特定物品之一組可能放置(例如,接著可在控制電腦118本端評估其等以選擇一放置)之一指示。回應於獲得一物品之放置,控制電腦118判定用以控制機器人手臂102以根據放置拾取及放置該物品之一計劃。控制電腦118可向伺服器126查詢各物品或一組物品之一放置之一指示(例如,每當機器人系統將放置一物品或請求該組物品之一集體放置序列時發送一查詢),或一物品堆疊(諸如一經模擬物品堆疊)之一評估。結合向伺服器126查詢與一放置相關的資訊,控制電腦118可發送與將判定/模擬其放置之一或多個物品及工作區之經估計狀態相關的資訊(諸如一當前物品堆疊之一幾何模型)。結合向伺服器126查詢一經模擬物品堆疊之一評估或物理模擬,控制電腦118可發送與經模擬堆疊之一幾何模型、包含於經模擬堆疊中之一或多個物品之一指示、一或多個物品之一或多個屬性等相關的資訊。控制電腦118亦可對伺服器126提供物理引擎將實施以模擬及評估經模擬物品堆疊之一案例之一指示。
根據各項實施例,控制電腦118基於一狀態估計器判定(例如,本端地)一或多個物品之放置。控制電腦可基於一放置模型獲得一或多個物品之放置。狀態估計器可由伺服器126訓練/自伺服器126獲得。伺服器126模擬狀態估計器模型及放置模型(例如,具有不同參數化之模型等)之各種組合/排列以判定狀態估計器模型及/或放置模型(例如,待由系統100 (諸如由控制電腦118)部署之模型)。狀態估計器模型基於一幾何模型與由視覺系統擷取之感測器資料之一組合來判定工作區(或物品堆疊)之一經估計狀態。在一些實施例中,狀態估計器對幾何模型之至少部分及感測器資料之至少部分進行內插以獲得經估計狀態。
在一些實施例中,伺服器126評估用於結合拾取及放置(例如,堆棧/卸除堆棧)一組物品而判定物品之放置之複數個放置模型。伺服器126可將待用於判定待由機器人手臂102 (例如,在控制電腦118的控制下)拾取及放置之一組物品之放置之一放置模型提供至控制電腦118,或可以其他方式選擇伺服器126將回應於來自控制電腦118之查詢而使用以判定放置之一放置模型。
在一些實施例中,伺服器126評估複數個放置模型以判定待結合操作一機器人手臂拾取及放置物品而使用之一放置模型。該放置模型可針對一組特定物品而選擇(例如,判定)。例如,可控制機器人手臂102以使用不同放置模型判定不同組物品(例如,不同物品清單、載貨單、訂單等)之放置(例如,位置、定向、順序等)。在一些實施例中,系統100可組態以接收對一物品堆疊之一特性或與物品堆疊相關聯之其他資料檔之偏好或偏向之選擇。作為一實例,系統100接收來自一使用者,或自動地基於一特定順序(諸如基於將經由其運輸一物品堆疊之一運輸類型等)之對一物品堆疊之一資料檔之使用者設定或其他偏好的選擇。對一放置類型之偏好之選擇之實例可包含:(i)預期導致一最低成本(例如,時間、電力等)對一組物品進行堆棧/卸除堆棧之一放置模型;(ii)預期導致物品堆疊之一最高穩定性(或超過一臨限穩定性之一穩定性)之一放置模型;(iii)預期導致物品堆疊之一最高密度(或超過一密度臨限值之密度)之一放置模型;(iv)預期導致具有根據一評分函數之最高評分(或超過一臨限評分之一評分)之一物品堆疊的一放置模型;(v)預期耐受預定義之外力(例如,力之一方向、一力之一臨限範圍等)之一放置模型等。可使用各種其他特性或偏好結合選擇一適當放置模型。
在一些實施例中,複數個放置模型可包含,對於各放置模型,模擬盒子之放置或以其他方式模型化物品堆疊(例如,作為一底座之棧板或其他容器及堆疊於其上之個別物品)及特性化所得物品堆疊。伺服器126可執行各放置模型之複數個(例如,幾個)模擬並彙總結果以特性化放置模型。特性化所得物品堆疊(及/或放置模型)包含判定與由模擬引起之(若干)物品堆疊相關聯之一或多個特性或資料檔。例如,伺服器126基於針對物品堆疊運算關於一預定義評分函數之一評分(例如,值)來特性化所得物品堆疊。在一些實施例中,特性化所得物品堆疊(例如,經模擬物品堆疊)包含基於一物理引擎模擬物品或物體當中之互動。特性化物品堆疊之其他實例可包含針對(若干)物品堆疊判定一包裝密度、一穩定性、完成對應放置之一預期時間、完成對應放置之一成本(例如,基於一預定義成本函數)、回應於一外力之施加之物品堆疊的預期穩定性等。可判定關於物品堆疊之各種其他特性並將其等用於量測所得物品堆疊之優良。
複數個放置模型之至少一子集之評估可並行運行。回應於使用複數個放置模型模擬放置,伺服器126判定待由系統100結合提供物品之放置而實施之一放置模型。伺服器126可提供放置模型至放置案例或偏好之一映射以容許系統100選擇一放置模型來實施以用於堆疊一特定物品堆疊(例如,基於一使用者或系統偏好,諸如最佳化物品堆疊之一特定特性等)。在一些實施例中,至少部分基於在經評估之複數個放置模型之複數個模擬當中執行一內插來判定待實施之放置模型。在一些實施例中,複數個放置模型之至少一子集具有不同雜訊輪廓(例如,針對由視覺系統獲得之感測器資料模型化之雜訊及/或針對一幾何模型與由一機器人手臂根據使用該幾何模型產生之一計劃對物品之實際放置之間的一差異模型化的雜訊等)。
評估複數個放置模型可包含模型化/模擬一或多個預定義外力。在一些實施例中,模型化/模擬一或多個預定義外力包含獲得待模擬之一(若干)力之一力輪廓,及使用一物理引擎對經模擬物品堆疊施加力並模擬一所得堆疊(例如,模擬力與經模擬堆疊之間的互動,諸如在一逐物品或逐物體基礎上)。外力可由一使用者(例如,經由用戶端系統)或根據基於力(例如,重力、表示物品堆疊諸如經由一叉車之移動之一力、表示另一物體與物品堆疊之碰撞之一力等)之類型及量值之一預定義力輪廓來定義。
在一些實施例中,伺服器126調用一物理引擎結合模擬一或多個物品之放置。物理引擎可為模型化物品堆疊當中之複數個物品與真實世界物理(包含針對物品堆疊起作用之力,諸如重力)之間的互動之一服務。可進一步調用物理引擎以諸如根據一使用者輸入或根據由物品堆疊之模擬提供之一指令模擬外力。例如,物理引擎模擬在自一工作區移除棧板時作用於物品堆疊之一外力,諸如在棧板由一叉車拾取及/或隨著該叉車移動由該叉車運送時作用於一物品堆疊之力。作為另一實例,物理引擎模擬基於與另一物體(諸如另一物品、機器人手臂102等)之意外碰撞作用於物品堆疊之一外力。可分析使用物理引擎之模擬之結果以評定可反映基於經模擬力已改變之各種物品之位置的所得經模擬物品堆疊。系統評估所得經模擬物品堆疊之穩定性。例如,系統可獲得一穩定性度量及/或與該穩定性度量相關聯之一可信區間結合提供所得經模擬物品堆疊之穩定性之一指示。
根據各項實施例,回應於機器人將一物品放置於棧板上,用於估計棧板及/或棧板上之一物品堆疊之一狀態之一系統記錄與物品之放置相關的資訊(例如,物品之一位置、物品之一大小等)。例如,系統基於機器人已在棧板上放置各種物品之位置而具有系統之狀態之一邏輯知識。該邏輯知識可對應於幾何資料,諸如基於控制機器人所藉助之方式獲得之資訊。然而,邏輯知識可不同於棧板及/或棧板上之一物品堆疊之真實世界狀態。類似地,如上文所論述,如由視覺系統偵測之棧板及/或棧板上之一物品堆疊之狀態(例如,基於感測器資料模型化之真實世界狀態)可不同於諸如基於感測器資料中之雜訊或不準確/不完整感測器資料之真實世界狀態。各項實施例使用幾何資料(例如,邏輯知識)及感測器資料來組合世界觀。使用幾何資料及感測器資料兩者來模型化世界填充各資料集之世界觀中之間隙。例如,可使用基於視覺系統獲得之感測器資料結合判定是否需要更新/細化棧板或棧板上之物品堆疊之一預期狀態。根據各項實施例之狀態估計對棧板及/或棧板上之物品堆疊之狀態提供比僅使用感測器或僅使用幾何資料將實現的情況更佳的估計。此外,可使用棧板及/或棧板上之物品堆疊之狀態之估計結合將物品堆棧至一棧板/將物品自一棧板卸除堆棧。使用棧板及/或棧板上之物品堆疊之狀態之估計之較佳估計結合判定將物品堆棧至一棧板/將物品自一棧板卸除堆棧可提供較佳放置,此可導致較佳最終棧板(例如,更緊密/密集包裝之棧板、更穩定棧板等)。
在一些實施例中,回應於判定使用幾何資料之棧板或物品堆疊之預期狀態與使用視覺系統(例如,感測器資料)之棧板或物品堆疊之狀態充分不同,系統100可向一使用者提供一指示。系統100 (例如,控制電腦118或伺服器126)可判定經估計狀態之一不確定性,且比較該不確定性與一不確定性臨限值。回應於判定經估計狀態之不確定性超過一預定義不確定性臨限值,系統100可提示一使用者進行人類干預(例如,調和不確定性)。經估計狀態之不確定性可基於幾何模型之一部分與感測器資料之一對應部分之間的一差異而出現,其中此差異超過一差異臨限值或以其他方式異常等。例如,系統可提示使用者確認使用幾何資料之預期狀態是否正確,使用視覺系統之狀態是否正確,或是否兩者皆不正確,且使用者修改當前狀態。使用者可使用一使用者介面來調和使用幾何資料之預期狀態與使用視覺系統之狀態之間的差異。使用幾何資料之預期狀態與使用視覺系統之狀態充分不同之判定可基於兩個狀態或狀態之模型之間的一差異超過一預定義差異臨限值之一判定。
根據各項實施例,用於估計棧板及/或棧板上之物品堆疊之狀態之系統100係在一不同運算系統(諸如一(若干)伺服器(例如,伺服器126))上實施。用於使用幾何資料模型化狀態,使用視覺系統(例如,感測器資料)模型化狀態,及更新預期狀態(例如,基於狀態之間的差異之一調和)之模組或演算法可為高成本的且需要相對大量運算能力。此外,機器人工作區或控制機器人之電腦系統(例如,控制電腦118)處之處理能力可約束用以執行模組之運算能力及/或頻寬。在一些實施例中,控制機器人之系統可獲得與待放置之物品相關的感測器資料及資訊,且經由一或多個網路將與待放置之物品相關的感測器資料及資訊發送至一伺服器。在一些實施例中,可使用複數個伺服器(例如,伺服器126)結合實施用於估計系統之狀態(例如,棧板之狀態及/或棧板上之物品堆疊之狀態)之不同模組。例如,用於使用幾何資料模型化狀態之一模組可由一第一伺服器執行,用於使用視覺系統模型化狀態之一模組可由一第二伺服器執行,且用於至少部分基於狀態之間的差異更新預期狀態之一模組可由一第三伺服器執行。可實施用於判定預期狀態之不同模組之各種伺服器可彼此通信。
在一些實施例中,回應於幾何資料及感測器資料之一或兩者指示一物體(其可引起該物體與機器人或由機器人移動之物品之間的一碰撞事件)在工作區內之一判定而查詢狀態估計器。例如,機器人系統可查詢狀態估計器作為確認工作區中之一物體之存在之一檢查。在幾何資料及感測器資料之一者中而非另一者中偵測到一物體之情況下,則對狀態估計器之查詢(及對此之回應)可調和差異。在一些實施例中,控制電腦118向運行於伺服器126上之一狀態估計器查詢經估計狀態。
在一些實施例中,一狀態估計器可儲存及/或管理(i)基於幾何資料模型化之狀態與(ii)基於視覺系統模型化之狀態之間的一差異。例如,狀態估計器儲存/管理棧板及/或棧板上之物品堆疊之一當前狀態。狀態估計器可為由一電腦系統(諸如控制機器人手臂102拾取及放置一組物品之控制電腦118)或由與控制機器人之機器人系統通信之一伺服器(例如,伺服器126)執行之一模組。
根據各項實施例,可使用狀態估計器(例如,一棧板狀態估計器、一工作區狀態估計器等)結合判定在各物品之計劃/放置期間之一當前狀態。例如,控制機器人及/或判定用於移動物品之一計劃之機器人系統(例如,控制電腦118)可查詢狀態估計器結合判定用以移動物品之一計劃。可使用(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在一尷尬位置/姿勢中之預期定位等之一或多者相關聯之經加權值。與棧板/堆棧程序相關聯之其他特性之值可被包含於與最佳放置相關的函數中。在一些實施例中,基於參數化至少包括對應於一當前棧板、一當前物品及一放置位置之值或變量之一函數來判定評分函數。評分函數之參數可基於一或多種機器學習方法來訓練。
在一些實施例中,判定將根據其放置一物品(例如,一當前物品/第一個接下來物品)之一放置(例如,一位置/定向)係至少部分基於待放置之相對較小數目個(例如,預定義數目個)接下來物品(例如,待放置之少量下一序列物品)。例如,至少部分基於當前物品(例如,當前物品之一或多個屬性)、(若干)接下來物品(例如,此(此等)物品之一或多個屬性)及對應於其上可放置當前物品及/或(若干)接下來物品之表面之一或多個邊緣來判定將根據其放置物品之放置。在一些實施例中,基於參數化至少包括對應於一當前棧板、一當前物品及一放置位置之值或變量之一函數來判定評分函數。評分函數之參數可基於一或多種機器學習方法來訓練。
根據各項實施例,系統100判定物品堆疊之一經估計狀態。例如,系統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可至少部分基於物品堆疊上/當中之物品之放置更新幾何模型以包含物品堆疊之一經更新穩定性(例如,以基於特定物品之放置反映特定物品與其他物品之互動或其他物品當中之互動)。
在一些實施例中,系統100在(i)預定數目個物品之移動(例如,放置)或(ii)該預定數目個物品之較早移動或一異常(諸如滿足一或多個異常準則之一異常) (例如,異常之程度超過一異常臨限值等)之偵測之後,更新當前狀態(例如,基於對幾何模型之一更新進行更新)。可基於使用者偏好、一機器人控制系統原則設定或以其他方式基於物品之放置之經驗分析判定預定數目個物品(例如,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)基於一不規則形狀物品在堆疊之底部處或附近之放置的一預期穩定性;及(iv)基於一不規則形狀物品在堆疊之頂部處或附近之放置的一預期穩定性等。可實施各種其他啟發法。作為一實例,若將一非剛性或可變形物品放置於物品堆疊之底部處或附近,則一啟發指示物品堆疊不穩定。作為一實例,一啟發指示物品堆疊之穩定性不受放置於物品堆疊之頂部處或附近之一非剛性或可變形物品之放置的負面影響(例如,至少達一臨限穩定性量)。作為一實例,若將一重物品放置於物品堆疊之頂部處或附近,則一啟發指示物品堆疊不穩定。作為一實例,一啟發指示物品堆疊之穩定性不受放置於物品堆疊之底部處或附近之一重物品之放置的負面影響(例如,至少達一臨限穩定性量)。作為一實例,若將一不規則形狀物品(例如,一非矩形物品、一圓形物品等)放置於物品堆疊之底部處或附近,則一啟發指示物品堆疊不穩定。作為一實例,一啟發指示物品堆疊之穩定性不受放置於物品堆疊之頂部處或附近之一不規則形狀物品(例如,非矩形)之放置的負面影響(例如,至少達一臨限穩定性量)。
根據各項實施例,一啟發係執行一實體模擬之一運算上有效的變動。例如,啟發經定義為類似於執行放置之一模擬。使用第一個接下來物品(例如,自根節點分支之第一層級節點)之經模擬放置及使用第二個或更多個接下來物品(例如,第二層級節點及分別自第二層級節點分支之節點)之放置之啟發法來判定物品堆疊及預期穩定性提供下一物品之放置之一準確經估計狀態及用於填入樹之其餘部分(例如,判定對預期穩定性之影響的一預期穩定性)之一成本有效方法。
回應於遍歷搜尋空間(例如,修剪搜尋空間以移除不利/不可行的放置),系統100執行一樹搜尋以判定最佳放置。例如,系統100執行一Monte Carlo樹搜尋以評估/判定經修剪搜尋空間當中之最佳放置。
回應於判定一放置或一組可能放置(例如,針對其之一評分超過一評分臨限值之放置),系統100 (例如,控制電腦118)判定物品將沿著其移動並根據該放置或該組可能放置之各自放置來放置之一軌跡。系統100判定對應於各自放置之用於將一物品自一源位置移動至一目的地位置之一組可能軌跡。系統100可自該組可能軌跡當中判定針對其以迴避使物品與堆疊於棧板或其他容器上或棧板或其他容器中之任何其他物品碰撞的方式移動物品之彼等軌跡。系統100可基於根據一預定義成本函數評估針對其預期無碰撞之可能軌跡來選擇移動物品所沿著之軌跡。例如,系統100判定各軌跡之一成本並選擇一最低成本軌跡或滿足一成本準則(例如,低於一成本臨限值之一成本)之一軌跡。成本函數可至少部分基於以下一或多者:(i)完成自源位置至目的地位置之移動之一時間;(ii)在垂直方向上將物品向上移動之一程度;(iii)一距離;(iv)移動物體所消耗之一預期能量;(v)一預期搖擺量或其他力(例如,在一機器人手臂之一末端執行器與經移動之物品之間的剪切力)等。
在一些實施例中,系統100包括其中分別安置棧板之複數個區。系統100可同時判定其上將放置一特定物品之一棧板/物品堆疊,並拾取及放置物品至一選定棧板。
儘管前文實例係在一系統將一組物品堆棧於一或多個棧板上之背景下論述,但機器人系統亦可結合將一組物品自一或多個棧板卸除堆棧來使用。
圖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之經估計狀態係用作至判定一組物品之一或多個放置之一放置模型之一輸入。該放置模型將該組物品之放置模擬至物品堆疊之一幾何模型,其中該幾何模型對應於經估計狀態。結合各放置(或各組放置),系統調用一物理引擎以模擬物品堆疊且評估物品堆疊(例如,模擬作用於物品堆疊之外力,在將一物品放置於堆疊上時模擬物品之間的力等)。
在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,修剪樹以消除對應於不利案例之分支及/或節點。在一些實施例中,420係在450之後執行。
在一些實施例中,系統判定對應於預期產生一不穩定物品堆疊(例如,一預期穩定性小於一預定義穩定性臨限值,一啟發指示物品堆疊預期不穩定等)之(若干)放置之分支/節點,或該(等)放置預期具有超過一成本臨限值之一成本(例如,根據一預定義成本函數)。回應於判定對應於預期產生一不穩定物品堆疊或超過一臨限成本之一成本之(若干)放置之分支/節點,系統判定自搜尋空間修剪此等放置。例如,系統將此等放置排除在進一步分析之外。
在一些實施例中,系統遍歷搜尋空間(例如,樹)並判定產生一不利/不可行結果之案例(例如,對應於放置之節點)。系統基於一預定評分函數之一評分或一預定成本函數之一成本之一判定來判定一案例係不利/不可行的。作為一實例,系統比較一案例之評分與一評分臨限值,且若評分小於該評分臨限值,則系統將該案例視為不利/不可行的。
在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以來已移動之若干物品。例如,相較於堆疊815中之對應物品,物品832、834及836經展示為已移位。
圖8D係繪示根據各項實施例之施加至物品堆疊之一實例性力之一圖式。外力847經模擬為施加至堆疊845。外力847可基於一模擬模型或一使用者輸入來定義。在圖8D中所繪示之實例中,外力847可對應於在由一叉車或用於移動棧板之其他裝置抬起時堆疊845所經歷之力之一類型/範圍。圖8D繪示施加至其上堆疊堆疊845之棧板由叉車之(若干)叉子接合之一位置之外力847。
圖8E係根據各項實施例之在將實例性力施加至堆疊之後之經模擬物品堆疊的一圖式。物品之堆疊860係在將外力847施加至堆疊845之後之一所得堆疊之一實例。如圖8E中所繪示,系統(例如,一物理引擎)模擬外力847與堆疊845中之物品之間的互動及/或堆疊845內之物品之間的互動。相較於堆疊845,堆疊860具有自施加經模擬外力847以來已移動之若干物品。例如,相較於堆疊845中之對應物品,物品862及864經展示為已移位。作為另一實例,物品864及866已自堆疊860掉落。回應於將外力847施加至堆疊845,系統可基於物品864及866已自由外力847引起之堆疊(例如,堆疊860)掉落之偵測而認為堆疊845不足夠穩定。
圖8F係繪示根據各項實施例之施加至物品堆疊之一實例性力之一圖式。外力877經模擬為施加至堆疊875。外力877可基於一模擬模型或一使用者輸入來定義。在圖8F中所繪示之實例中,外力877可對應於基於一物體(例如,由一機器人手臂移動之另一物品、一機器人手臂、一人等)與堆疊875之一碰撞由堆疊875所經歷之力之一類型/範圍。
圖8G係根據各項實施例之在將實例性力施加至堆疊之後之經模擬物品堆疊的一圖式。物品之堆疊890係在將外力877施加至堆疊875之後之一所得堆疊之一實例。如圖8G中所繪示,系統(例如,一物理引擎)模擬外力877與堆疊875中之物品之間的互動及/或堆疊875內之物品之間的互動。相較於堆疊875,堆疊890具有自施加經模擬外力877以來已移動之若干物品。回應於將外力877施加至堆疊875,系統可基於堆疊875內之物品未自堆疊掉落且所得堆疊890足夠穩定以用於放置新物品,或其上堆疊堆疊890之棧板之移動之偵測而認為堆疊875足夠穩定。
圖9係繪示根據各項實施例之基於一工作區之一經估計狀態拾取及放置物品之一程序的一流程圖。在一些實施例中,程序900係至少部分由圖1之系統100實施。
在910,獲得一工作區之一幾何模型及感測器資料。作為一實例,一工作區之幾何模型係基於各種物品之放置至一物品堆疊之一經儲存映射。工作區之感測器資料可自工作區之一視覺系統獲得。
在920,至少部分基於幾何模型與感測器資料之一組合判定工作區之一經估計狀態。系統使用一狀態估計器以基於幾何模型及感測器資料來判定經估計狀態。例如,狀態估計器可用感測器資料之至少部分內插幾何模型之至少部分以獲得經估計狀態。
在930,使用經估計狀態來產生或更新用以依下一物品不與另一物品/物體碰撞之一方式來移動該物品之一計劃。在一些實施例中,系統使用經估計狀態來判定一物品之一組可能放置,自該組可能放置當中選擇一最佳放置,判定用一機器人手臂抓握物品之一抓握策略及機器人手臂沿著其移動並根據選定放置來放置物品之一軌跡。
在940,控制一機器人手臂根據計劃移動物品。
在950,進行關於程序900是否完成之一判定。在一些實施例中,回應於判定無進一步物品將被移動、一使用者已退出系統、一管理者指示程序900將被暫停或停止等,將程序900判定為完成。回應於程序900完成之一判定,程序900結束。回應於程序900未完成之一判定,程序900返回至910。
圖10係繪示判定用於移動一組物品之一放置及軌跡之一程序之一流程圖。在一些實施例中,程序1000係至少部分由圖1之系統100實施。可結合放置各物品,或結合放置一組物品來調用程序1000。程序1000可在對一機器人系統提供一服務之一伺服器上運行,使得該機器人系統向該伺服器查詢用於移動一物品之放置/軌跡。
在1005,接收待拾取及放置一組物品之一指示。待拾取及放置該組物品之該指示可指示一組待拾取及放置物品。
在1010,獲得工作區之一經估計狀態。該經估計狀態可對應於自儲存器獲得之工作區之一最近判定之當前狀態,或可諸如藉由查詢一狀態估計器來產生經估計狀態。
在1015,選擇要移動之一物品。例如,自針對其接收待拾取及放置此等物品之指示之物品組當中選擇該物品。在不允許緩衝之情況下,選定物品可對應於待放置之下一物品(例如,經由諸如一輸送機之一源遞送至工作區之下一物品等)。
在1020,判定一組可能放置。系統使用經估計狀態及物品(例如,物品之屬性)來判定一組可能放置。例如,系統產生包括所有可能放置之一搜尋空間。該搜尋空間可由系統遍歷結合判定一最佳放置(例如,產生一最佳結果之一放置)。
在1025,選擇一放置。系統自該組可能放置當中選擇待評估之一放置。
在1030,進行關於放置是否超過一評分臨限值之一判定。在一些實施例中,系統基於一預定義評分函數來評估放置。例如,系統基於評分函數來運算用於放置之一值,且系統比較用於放置之該值(例如,評分)與評分臨限值。放置之評估可基於查詢一放置模型等。回應於判定放置之評分未超過評分臨限值,程序1000返回至1025。相反地,回應於判定放置之評分超過(或等於)評分臨限值,系統1000繼續進行至1035。
在1035,判定針對選定放置移動物品之一組可能軌跡。在一些實施例中,該組可能軌跡係基於與以下一或多者相關聯之一定界準則來判定:(i)完成移動之一時間;(ii)軌跡之路徑之一長度;(iii)物品在垂直方向上沿著軌跡向上移動之一量等。
在1040,選擇一軌跡。例如,自該組可能軌跡當中選擇該軌跡。
在1045,進行關於軌跡之一成本是否小於一成本臨限值之一判定。系統根據一預定義成本函數判定軌跡之成本。回應於在1045判定軌跡之成本不小於成本臨限值,則程序1000返回至1040且程序1000反覆進行針對選定放置之軌跡組。相反地,回應於在1045判定軌跡之成本小於成本臨限值,則程序1000繼續進行至1050。
在1050,將軌跡儲存於一組可行放置及軌跡中。例如,系統儲存可能放置至可行軌跡之一映射。
在1055,進行關於是否將評估額外軌跡之一判定。系統判定針對選定放置之可能軌跡組是否具有尚未對其執行評估之一額外軌跡。回應於在1055判定將評估額外軌跡,程序1000返回至1040且程序1000反覆進行1040至1055。回應於判定將不評估針對選定放置之進一步軌跡,程序1000繼續進行至1060。
在1060,進行關於是否將評估額外放置之一判定。系統判定可能放置組是否包含尚未對其執行評估之一(若干)額外放置。回應於在1060判定將評估額外放置,程序1000返回至1025且程序1000反覆進行1025至1060直至將不評估進一步放置。回應於在1060判定將不評估額外放置,程序1000繼續進行至1065。
在1065,提供與該組可行放置及軌跡相關的資訊。在一些實施例中,系統將可行放置及對應可行軌跡之組提供至控制以根據一選定放置及軌跡移動物品組之一程序或其他系統。
在1070,進行關於程序1000是否完成之一判定。在一些實施例中,回應於判定無進一步物品將被移動、無進一步放置將被評估、一使用者已退出系統、一管理者指示程序1000將被暫停或停止等,將程序1000判定為完成。回應於程序1000完成之一判定,程序1000結束。回應於程序1000未完成之一判定,程序1000返回至1005。
圖11係繪示根據各項實施例之根據一計劃移動一組物品之一程序的一流程圖。在一些實施例中,程序1100係至少部分由圖1之系統100實施。
在1105,獲得一物品清單。
在1110,選擇待拾取及放置之一物品。系統自物品清單當中選擇物品。在不允許物品緩衝(例如,系統未經組態以緩衝特定數目個物品)之情況下,選定物品對應於待放置之下一物品(例如,由諸如一輸送機之一源遞送至工作區之下一物品)。
在1115,進行關於是否成功地放置物品之一判定。回應於在1115判定成功地放置物品,程序1100繼續進行至1145。回應於在1115判定未成功地放置物品,程序1100繼續進行至1120。在一些實施例中,對於針對其調用程序1100之物品清單之第一物品,可略過1115之第一次反覆。
在1120,獲得與工作區相關的一幾何資料。作為一實例,一工作區之幾何模型係基於各種物品之放置至一物品堆疊之一經儲存映射。
在1125,獲得與工作區相關的感測器資料。可自工作區之一視覺系統獲得工作區之感測器資料。
在1130,基於幾何資料及感測器資料創建或更新工作區之一模型。工作區之模型係基於幾何資料與感測器資料之一組合來判定。例如,工作區之模型係基於向一狀態估計器查詢經估計狀態來獲得。
在1135,執行計劃/重新計劃拾取及/或放置物品。在一些實施例中,系統至少部分基於物品及工作區之當前/經更新模型來判定/更新用以移動一物品之一計劃。例如,系統判定物品之一或多個屬性及當前/經更新模型以判定用以移動物品之一計劃。
在1140,實施用以拾取及放置物品之計劃。系統控制一機器人手臂以根據計劃拾取及放置一物品。在經過一預定義時間量之後,程序1100可返回至1115以評定是否成功地放置物品,且若否,則更新計劃並透過反覆進行1120至1140來實施經更新計劃。
在1145,進行關於程序1100是否完成之一判定。在一些實施例中,回應於判定無進一步物品將被移動、一使用者已退出系統、一管理者指示程序1100將被暫停或停止等,將程序1100判定為完成。回應於程序1100完成之一判定,程序1100結束。回應於程序1100未完成之一判定,程序1100返回至1105。
圖12係繪示根據各項實施例之以迴避一碰撞之方式移動一物品之一程序的一流程圖。在一些實施例中,程序1200係至少部分由圖1之系統100實施。可結合實施用以移動一物品之一計劃來調用程序1200。例如,回應於判定用於移動物品之一放置、軌跡及/或計劃,可調用程序1200。
在1205,進行關於是否成功地放置物品之一判定。回應於在1205判定成功地放置物品,程序1200可結束。相反地,回應於在1205判定未成功地放置物品,程序1200繼續進行至1210。在一些實施例中,略過1205之第一次反覆(例如,若回應於指示一機器人手臂實施計劃而調用程序1200)。
在1210,根據一計劃或一經更新計劃移動一機器人。在一些實施例中,一控制電腦控制一機器人手臂以根據計劃/經更新計劃拾取及放置一物品。
在1215,獲得與工作區相關的幾何資料。作為一實例,一工作區之幾何模型係基於各種物品之放置至一物品堆疊之一經儲存映射。
在1220,獲得與工作區相關的感測器資料。可自工作區之一視覺系統獲得工作區之感測器資料。
在1225,基於幾何資料及感測器資料創建/更新工作區之一模型。在一些實施例中,系統基於一幾何模型(例如,使用幾何資料產生)與感測器資料之一組合來判定經估計狀態。
在1230,基於工作區之當前模型評估計劃。在一些實施例中,系統判定計劃是否將導致與工作區內之另一物品或物體之一碰撞。例如,系統使用物品之一3D表示來判定物品或機器人手臂之任何部分是否與工作區之由另一物品或物體佔用之一部分/體積相交。
在1235,進行關於是否偵測到一碰撞事件之一判定。回應於在1235判定未偵測到一碰撞事件,程序1200返回至1205。相反地,回應於在1235判定偵測到碰撞事件,程序1200繼續進行至1240。
在1240,基於工作區之一當前模型更新一計劃。在一些實施例中,回應於偵測一預期碰撞,系統更新計劃以迴避該預期碰撞。例如,系統判定用於放置物品之一不同放置及/或不同軌跡。
圖13係繪示根據各項實施例之判定一棧板及/或物品堆疊之一狀態之一估計之一程序的一流程圖。在一些實施例中,程序1300係由在一機器人手臂之一控制系統上運行之一應用程式1302、伺服器1304、狀態估計器1306、視覺系統1308及放置判定器1310之一或多者實施。
在1320,應用程式1302向伺服器1304發送一請求。該請求可對應於用於放置一物品之一計劃及/或策略之一放置請求。
回應於接收放置請求,在1322,伺服器1304調用一狀態判定。例如,伺服器1304向狀態估計器1306發送一請求或指令以判定(及提供)經估計狀態。在一些實施例中,狀態估計器1306係在伺服器1304上運行之一模組。在一些實施例中,狀態估計器1306係由複數個不同伺服器/機器人系統查詢之一服務。例如,狀態估計器1306可為一雲端服務。
回應於調用狀態判定,狀態估計器1306獲得視覺狀態。在一些實施例中,狀態估計器1306向視覺系統1308發送針對一視覺狀態之一請求。
回應於在1324接收針對視覺狀態之請求,在1326,視覺系統1308將視覺狀態提供至狀態估計器1306。例如,回應於接收針對視覺狀態之請求,視覺系統使用一工作區中之一或多個感測器以擷取工作區之一快照。
回應於接收視覺狀態,狀態估計器1306判定棧板狀態(例如,棧板及/或物品堆疊之一經估計狀態)。狀態估計器1306可基於一幾何模型及視覺狀態之一或多者來判定經估計狀態。在一些實施例中,狀態估計器1306組合幾何模型與視覺狀態(至少關於堆疊之一部分)。
在1328,狀態估計器1306將棧板狀態提供至伺服器1304。
在1330,伺服器1304將包括棧板狀態之一放置請求發送至放置判定器1310。在一些實施例中,放置判定器1310係在伺服器1304上運行之一模組。在一些實施例中,放置判定器1310係由複數個不同伺服器/機器人系統查詢之一服務。例如,放置判定器1310可為一雲端服務。
在1332,放置判定器1310將一組一或多個潛在放置提供至伺服器1304。該組一或多個潛在放置可至少部分基於待放置之一(若干)物品(例如,與物品相關聯之屬性)及棧板狀態(例如,物品堆疊內之物品之可用位置及屬性)等來判定。
在一些實施例中,該組一或多個潛在放置係所有可能放置之一子集。例如,放置判定器1310使用一成本函數來判定該組一或多個潛在放置以提供至伺服器1304。放置判定器1310可判定滿足關於成本函數之一成本準則(例如,具有小於一成本臨限值之一成本)之潛在放置。
回應於接收該組一或多個潛在放置,在1334,伺服器1304選擇一放置並將該選定放置發送至應用程式1302。例如,選定放置係作為1320之初始放置請求之一回應而提供。
在1336,應用程式1302控制一機器人手臂放置物品。在一些實施例中,應用程式1302判定一計劃以將物品移動至選定放置(例如,基於物品之一(若干)屬性及對應於選定放置之位置,諸如工作區中之座標)。
在1338,應用程式1302提供一指示至伺服器1304以執行關於幾何狀態之一更新。例如,應用程式1302提供在1336執行物品之放置之確認且伺服器1304將此確認視為將調用對幾何狀態(例如,幾何模型)之更新之一指示。
在1340,伺服器1304向狀態估計器1306發送更新幾何狀態之一請求。例如,伺服器1304請求狀態估計器1306根據對應計劃更新幾何模型以反映物品之放置。
回應於接收更新幾何狀態之請求,狀態估計器1306執行對應更新。在1342,狀態估計器1306將成功地更新幾何狀態之一指示提供至伺服器1304。
在1344,伺服器1304將成功地更新幾何狀態以反映物品之放置之一指示提供至應用程式1302。
可針對待堆疊之一組物品重複程序1300。
儘管前文實例係在對一組物品進行堆棧或卸除堆棧之背景下描述,但各項實施例可結合單分一組物品及/或打包一組物品來實施。例如,實施各項實施例以至少部分基於幾何資料及感測器資料(例如,幾何資料與感測器資料之一組合,諸如幾何資料與感測器資料之間的一內插)來判定/估計工作區(例如,滑槽、輸送機、容器等)之一狀態。
結合流程圖描述本文中所描述之實施例之各項實例。儘管該等實例可包含按一特定順序執行之特定步驟,但根據各項實施例,可按不同順序執行各種步驟及/或各種步驟可被組合成一單個步驟或並行的。
儘管為清楚理解之目的已相當詳細地描述前述實施例,但本發明並不限於所提供之細節。存在實施本發明之許多替代方式。所揭示實施例係闡釋性且非限制性的。
100:系統 102:機器人手臂 104:輸送機 106:棧板/容器 108:末端執行器 110:吸盤 112:攝影機 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:程序 910:步驟 920:步驟 930:步驟 940:步驟 950:步驟 1000:程序 1005:步驟 1010:步驟 1015:步驟 1020:步驟 1025:步驟 1030:步驟 1035:步驟 1040:步驟 1045:步驟 1050:步驟 1055:步驟 1060:步驟 1065:步驟 1070:步驟 1100:程序 1105:步驟 1110:步驟 1115:步驟 1120:步驟 1125:步驟 1130:步驟 1135:步驟 1140:步驟 1145:步驟 1200:程序 1205:步驟 1210:步驟 1215:步驟 1220:步驟 1225:步驟 1230:步驟 1235:步驟 1240:步驟 1300:程序 1302:應用程式 1304:伺服器 1306:狀態估計器 1308:視覺系統 1310:放置判定器 1320:步驟 1322:步驟 1324:步驟 1326:步驟 1328:步驟 1330:步驟 1332:步驟 1334:步驟 1336:步驟 1338:步驟 1340:步驟 1342:步驟 1344:步驟
在以下詳細描述及隨附圖式中揭示本發明之各項實施例。
圖1係繪示根據各項實施例之用以對異質物品進行堆棧及/或卸除堆棧之一機器人系統的一圖式。
圖2係繪示根據各項實施例之用以對一或多個物品進行堆棧之一程序的一流程圖。
圖3係繪示根據各項實施例之用以判定一經模擬物品堆疊之一模型之一程序的一流程圖。
圖4係繪示根據各項實施例之用以選擇物品之放置之一程序的一流程圖。
圖5係繪示根據各項實施例之用以模擬一經模擬物品堆疊中之物品當中之互動之一程序的一流程圖。
圖6係繪示根據各項實施例之用以評估一經模擬物品堆疊之一程序的一流程圖。
圖7係繪示根據各項實施例之用以評估一經模擬物品堆疊之一程序的一流程圖。
圖8A係根據各項實施例之基於幾何資料之一實例性物品堆疊之一圖式。
圖8B係繪示根據各項實施例之施加至物品堆疊之一實例性力之一圖式。
圖8C係根據各項實施例之在將實例性力施加至堆疊之後之經模擬物品堆疊的一圖式。
圖8D係繪示根據各項實施例之施加至物品堆疊之一實例性力之一圖式。
圖8E係根據各項實施例之在將實例性力施加至堆疊之後之經模擬物品堆疊的一圖式。
圖8F係繪示根據各項實施例之施加至物品堆疊之一實例性力之一圖式。
圖8G係根據各項實施例之在將實例性力施加至堆疊之後之經模擬物品堆疊的一圖式。
圖9係繪示根據各項實施例之基於一工作區之一經估計狀態拾取及放置物品之一程序的一流程圖。
圖10係繪示判定用於移動一組物品之一放置及軌跡之一程序之一流程圖。
圖11係繪示根據各項實施例之根據一計劃移動一組物品之一程序的一流程圖。
圖12係繪示根據各項實施例之以迴避碰撞之一方式移動一物品之一程序的一流程圖。
圖13係繪示根據各項實施例之判定一棧板及/或物品堆疊之一狀態之一估計之一程序的一流程圖。
400:程序
405:步驟
410:步驟
415:步驟
420:步驟
425:步驟
430:步驟
435:步驟
440:步驟
445:步驟
450:步驟
455:步驟
460:步驟
465:步驟
470:步驟

Claims (20)

  1. 一種機器人系統,其包括: 一通信介面,其經組態以自部署於一工作區中之一或多個感測器接收指示該工作區之一當前狀態之感測器資料,該工作區包括一棧板或其他容器及堆疊於該容器上或該容器中之複數個物品;及 一或多個處理器,其或其等耦合至該通信介面且經組態以: 使用至少部分基於過去物品放置之一幾何模型結合該感測器資料來估計該棧板或其他容器及堆疊於該棧板或其他容器上或該棧板或其他容器中之一或多個物品之一狀態;及 使用該經估計狀態來產生或更新用以控制一機器人手臂以依迴避使一下一物品與堆疊於該棧板或其他容器上或該棧板或其他容器中之任何其他物品碰撞的一方式將該下一物品放置於該棧板或其他容器上或該棧板或其他容器中,或自該棧板或其他容器移除該下一物品的一計劃。
  2. 如請求項1之機器人系統,其中產生或更新該計劃包括: 運算將沿著其移動該下一物品之一軌跡,該軌跡基於該經估計狀態運算以迴避該下一物品或該機器人手臂與(i)堆疊於該棧板或其他容器上或該棧板或其他容器中之任何其他物品及(ii)該工作區中之另一物體之間的碰撞。
  3. 如請求項1之機器人系統,其中該一或多個處理器進一步經組態以: 判定該經估計狀態之一不確定性; 判定該經估計狀態之該不確定性是否超過一不確定性臨限值;及 回應於判定該經估計狀態之該不確定性超過該不確定性臨限值,提示人類干預。
  4. 如請求項3之機器人系統,其中提示人類干預包含將一警示傳送至由一使用者使用之一用戶端系統。
  5. 如請求項3之機器人系統,其中該經估計狀態之該不確定性係基於該幾何模型與由該工作區中之一或多個感測器獲得之感測器資料之間的一差異。
  6. 如請求項5之機器人系統,其中回應於該幾何模型與該感測器資料之間的一差異超過一預定義差異臨限值之一判定,將不確定性視為超過該不確定性臨限值。
  7. 如請求項1之機器人系統,其中該一或多個處理器進一步經組態以: 偵測該工作區中之一物體; 回應於偵測該物體,查詢一狀態估計器以獲得該經估計狀態;及 產生或更新用以控制一機器人手臂以依迴避該物體與該物品或該機器人手臂之間的一碰撞之一方式移動該物品的一計劃。
  8. 如請求項7之機器人系統,其中產生或更新用以控制該機器人手臂以依迴避該物體與該物品或該機器人手臂之間的一碰撞之該方式移動該物品的該計劃包括: 判定將沿著其將該物品自一當前位置移動至一目的地位置以迴避與該物體之該碰撞之一軌跡。
  9. 如請求項1之機器人系統,其中使用該經估計狀態產生用以控制該機器人手臂放置一下一物品之該計劃包括: 判定該複數個物品之一堆疊之一個三維形貌; 判定該下一物品之一或多個屬性;及 判定該機器人手臂將沿著其移動該下一物品以將該下一物品放置於該堆疊上之一軌跡,該軌跡至少部分基於(i)該堆疊之該三維形貌及(ii)該下一物品之該一或多個屬性來判定。
  10. 如請求項9之機器人系統,其中該機器人手臂將沿著其移動該下一物品之該軌跡係至少部分基於該下一物品之尺寸及用該機器人手臂自該下一物品之一頂部抓握該下一物品之一策略。
  11. 如請求項9之機器人系統,其中該機器人將沿著其移動該下一物品之該軌跡係至少部分基於該下一物品被移動或移動該下一物品之該機器人手臂未與由該工作區中之另一物品或物體佔用之空間中之(若干)任何點相交的一判定來判定。
  12. 如請求項11之機器人系統,其中該下一物品被移動或移動該下一物品之該機器人手臂未與由該工作區中之另一物品或物體佔用之空間中之(若干)任何點相交的該判定係基於該下一物品及工作區之一個三維表示來執行。
  13. 如請求項9之機器人系統,其中該軌跡係基於與沿著該軌跡將該下一物品自一當前位置移動至一目的地位置相關聯之一預定義成本來進一步判定。
  14. 如請求項9之機器人系統,其中該軌跡係基於根據相對於一預定義評分函數之該放置之一評分選擇該下一物品之一對應放置來進一步判定。
  15. 如請求項1之機器人系統,其中該計劃係至少部分基於執行該下一物品之一放置之一模擬來判定。
  16. 如請求項15之機器人系統,其中該執行該下一物品之該放置之該模擬包括調用一物理引擎以模擬包含(i)該複數個物品及(ii)根據該放置來放置之該下一物品之一堆疊。
  17. 如請求項16之機器人系統,其中該放置係至少部分基於相對於一預定義評分函數之一對應評分而自一組可能放置選擇。
  18. 如請求項17之機器人系統,其中該放置之該評分係至少部分基於由經模擬之該放置所引起之一經模擬物品堆疊之一穩定性。
  19. 一種控制一機器人之方法,其包括: 自部署於一工作區中之一或多個感測器接收指示該工作區之一當前狀態之感測器資料,該工作區包括一棧板或其他容器及堆疊於該容器上或該容器中之複數個物品; 藉由一或多個處理器使用至少部分基於過去物品放置之一幾何模型結合該感測器資料來估計該棧板或其他容器及堆疊於該棧板或其他容器上或該棧板或其他容器中之一或多個物品之一狀態;及 使用該經估計狀態來產生或更新用以控制一機器人手臂以依迴避使一下一物品與堆疊於該棧板或其他容器上或該棧板或其他容器中之任何其他物品碰撞的一方式將該下一物品放置於該棧板或其他容器上或該棧板或其他容器中,或自該棧板或其他容器移除該下一物品的一計劃。
  20. 一種用以控制一機器人之電腦程式產品,該電腦程式產品體現於一非暫時性電腦可讀媒體中且包括用於以下之電腦指令: 自部署於一工作區中之一或多個感測器接收指示該工作區之一當前狀態之感測器資料,該工作區包括一棧板或其他容器及堆疊於該容器上或該容器中之複數個物品; 藉由一或多個處理器使用至少部分基於過去物品放置之一幾何模型結合該感測器資料來估計該棧板或其他容器及堆疊於該棧板或其他容器上或該棧板或其他容器中之一或多個物品之一狀態;及 使用該經估計狀態來產生或更新用以控制一機器人手臂以依迴避使一下一物品與堆疊於該棧板或其他容器上或該棧板或其他容器中之任何其他物品碰撞的一方式將該下一物品放置於該棧板或其他容器上或該棧板或其他容器中,或自該棧板或其他容器移除該下一物品的一計劃。
TW111122135A 2021-06-16 2022-06-15 機器人系統、控制一機器人之方法、及用以控制一機器人之電腦程式產品 TWI849437B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163211377P 2021-06-16 2021-06-16
US63/211,377 2021-06-16
US17/837,797 US20220402708A1 (en) 2021-06-16 2022-06-10 Collision avoidance based on vision data, geometric data and physics engine evaluation
US17/837,797 2022-06-10

Publications (2)

Publication Number Publication Date
TW202310994A true TW202310994A (zh) 2023-03-16
TWI849437B TWI849437B (zh) 2024-07-21

Family

ID=84491124

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111122135A TWI849437B (zh) 2021-06-16 2022-06-15 機器人系統、控制一機器人之方法、及用以控制一機器人之電腦程式產品

Country Status (3)

Country Link
US (1) US20220402708A1 (zh)
TW (1) TWI849437B (zh)
WO (1) WO2022265933A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220402710A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Simulated box placement for algorithm evaluation and refinement
CN118429896B (zh) * 2024-07-02 2024-09-24 宝鸡宏顺达钛业有限公司 一种基于人工智能的分配器生产监测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111993448B (zh) * 2019-08-21 2022-02-08 牧今科技 用于夹持和保持物体的机器人多夹持器组件和方法
US11020854B2 (en) * 2019-11-05 2021-06-01 Mujin, Inc. Robotic system with wall-based packing mechanism and methods of operating same

Also Published As

Publication number Publication date
TWI849437B (zh) 2024-07-21
US20220402708A1 (en) 2022-12-22
WO2022265933A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
TWI849437B (zh) 機器人系統、控制一機器人之方法、及用以控制一機器人之電腦程式產品
TWI834194B (zh) 機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品
TWI849436B (zh) 機器人系統、用以控制一機器人之方法及用以控制一機器人之電腦程式產品
US20220402139A1 (en) Workflow for using learning based approach for placing boxes on pallets
CN112009811A (zh) 用于处理失序到达的包裹的机器人系统
US20220402709A1 (en) State estimation using geometric data and vision system for palletizing
US20230241777A1 (en) Packing and planning for tight incollapsible loads
US20230245036A1 (en) Optimization of package weight distribution
CN111605938B (zh) 用于使用实时放置模拟来码垛包裹的机器人系统
TW202243836A (zh) 具有可變輸送機高度之機器人堆棧系統
US20220402134A1 (en) Using simulated/generated noise to evaluate and refine state estimation
US20230241776A1 (en) Object partitioner between heterogeneous transport containers
CN111498212B (zh) 用于处理失序到达的包裹的机器人系统
US20220402133A1 (en) Workflow for using tree search-based approach for placing boxes on pallet with limited knowledge of future sequence
US20220289501A1 (en) Singulation of arbitrary mixed items
TWI856330B (zh) 利用模擬/產生之雜訊以評估及細化狀態估計
TWI852023B (zh) 機器人系統、控制一機器人之方法、及用以控制一機器人之電腦程式產品
US20230278219A1 (en) Object sequencer for container loading
US20220331989A1 (en) Robotic foam dispenser
CN111498214A (zh) 具有打包机制的机器人系统