TW202107232A - 用於多個機械手臂於共用工作空間中之移動規劃 - Google Patents

用於多個機械手臂於共用工作空間中之移動規劃 Download PDF

Info

Publication number
TW202107232A
TW202107232A TW109120779A TW109120779A TW202107232A TW 202107232 A TW202107232 A TW 202107232A TW 109120779 A TW109120779 A TW 109120779A TW 109120779 A TW109120779 A TW 109120779A TW 202107232 A TW202107232 A TW 202107232A
Authority
TW
Taiwan
Prior art keywords
robot
movement
arm
robotic arm
processor
Prior art date
Application number
TW109120779A
Other languages
English (en)
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 TW202107232A publication Critical patent/TW202107232A/zh

Links

Images

Classifications

    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35148Geometric modeling for swept volume of moving solids
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40446Graph based
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40475In presence of moving obstacles, dynamic environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40512Real time path planning, trajectory generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

在機器人學之移動規劃中有用之碰撞偵測在針對在一共用工作空間中操作之複數個機械手臂中之任一給定機械手臂執行移動規劃時有利地將該複數個機械手臂中之每一者之所規劃移動表示為障礙,包含在碰撞評定期間考量該等所規劃移動。至少部分地基於該碰撞評定而給一移動規劃曲線圖之邊緣指派成本值。可在完成對應移動時刪減障礙。可將移動規劃請求排隊,且舉例而言回應於一錯誤或受阻擋狀況而跳過某些機械手臂。

Description

用於多個機械手臂於共用工作空間中之移動規劃
本發明一般而言係關於機械手臂移動規劃,且特定而言係關於經由處理器電路系統執行碰撞偵測以產生移動規劃從而在共用工作空間中驅動機械手臂及諸如此類之系統及方法。
移動規劃係機械手臂控制及機器人學中之一根本問題。通常為了在不與一操作環境中之任何障礙碰撞之情況下或在與該操作環境中之任何障礙碰撞之可能性減小之情況下完成一任務,一移動規劃規定一機械手臂自一開始狀態至一目標狀態可遵循之一路徑。對移動規劃之挑戰涉及甚至在環境之特性改變時亦以非常快的速度執行移動規劃之能力。舉例而言,環境中之一或多個障礙之諸如位置或定向之特性可隨著時間而改變。挑戰進一步包含使用相對低成本設備、以相對低能量消耗且藉助有限量之儲存區(例如,例如在處理器晶片電路系統上之記憶體電路)執行移動規劃。
機器人學中之一個問題係在一共用工作空間(工作空間通常稱為工作單元)中操作兩個或更多個機械手臂,舉例而言,在該共用工作空間中,該等機械手臂或該等機械手臂之機械附件在執行任務期間可能彼此干擾。
在一共同工作空間中操作多個機械手臂之一種方法可稱為一任務級方法。該任務級方法可採用教示與重複訓練。一工程師可藉由如下方式來確保該等機械手臂係無碰撞的:界定工作空間之共用部分;及將個別機械手臂程式化,使得在任一給定時間點僅一個機械手臂位於一共用工作空間中。舉例而言,當一第一機械手臂開始移動至一工作空間中時,該第一機械手臂設定一旗標。一控制器(例如 ,經程式化邏輯控制器(PLC))讀取該旗標且阻止其他機械手臂移動至該共用工作空間中直至該第一機械手臂在離開該工作空間時將該旗標撤銷確立為止。此方法係直觀的、易於理解、實施及排除故障的。然而,此方法之工作吞吐量必然較低,此乃因使用任務級消除衝突通常導致機械手臂中之至少一者大部分時間係閒置的,即使該閒置機械手臂在共用工作空間中執行有用工作將係技術上可能的。
在一共同工作空間中操作多個機械手臂之另一方法採用離線規劃,以便達成比在前述基於任務級消除衝突之方法中高之工作吞吐量。這樣做,一系統可嘗試解決所有機械手臂或機械附件之一經組合聯合空間中之一規劃問題。舉例而言,若兩個6個自由度(DOF)附件位於一工作空間中,則必須解決一12個DOF規劃問題。雖然此方法允許較高效能,但規劃可係極其耗時的。12個DOF問題對於習用移動規劃演算法似乎太大而不能使用當前可用架構來解決。
解決此等問題之一個策略係針對一第一機械手臂/機械附件最佳化移動,且然後針對一第二機械手臂/機械附件手動地最佳化移動。此可採用反覆地模擬移動以確保該等機械手臂/機械附件不彼此碰撞,此可花費諸多小時之計算時間。另外,若對工作空間之一修改引起該等機械手臂/機械附件中之一者之一軌跡之一改變,則必須重新驗證整個工作流程。
本文中所闡述之結構及演算法促進操作在一共用工作空間或工作單元中操作之兩個或更多個機械手臂,從而阻止或至少降低機械手臂或機械手臂之機械附件將在操作以於該共用工作空間中執行各別任務時彼此碰撞之風險。
本文中所闡述之結構及演算法使得高自由度機械手臂能夠避免碰撞且繼續在一變化之共用環境中工作。可在具有或不具有硬體加速度之情況下使一高效規劃方法加速度,從而在若干毫秒內產生無碰撞移動規劃。超快速「即時」移動規劃允許在任務執行期間在運行時間決定機械手臂路徑,而不需要訓練或時間密集型路徑最佳化。此可有利地允許在一共用工作空間中協調多個機械手臂。
在至少某些實施方案中,本文中所闡述之結構及演算法可保證緊密共用工作空間中之多個機械手臂之無碰撞機械手臂協調。甚至當以高速度操作時,可針對機械手臂之所有部件(例如 ,機械附件、臂端工具、末端執行器)保證無碰撞移動。
本文中所闡述之結構及演算法可藉由執行自主規劃而有利地減少針對多機械手臂工作空間之程式化努力。在至少某些實施方案中,操作者不需要程式化任何安全區帶、時間同步或聯合空間軌跡。輸入可限於對機械手臂之待執行任務及幾何模型之一描述。輸入可另外包含固定物件或視情況具有不可預測軌跡之物件(例如 ,人)之表示。
本文中所闡述之結構及演算法可有利地動態地分配待由機械手臂執行之任務。一或多個目標姿勢可在執行一任務期間改變。任務之總體操作或執行可甚至在一給定機械手臂出故障或將被阻擋時繼續。
在至少某些實施方案中,本文中所闡述之結構及演算法可允許機械手臂(舉例而言)經由一非專屬通信頻道(例如 ,乙太網路連接)共用資訊,此可有利地促進將來自不同製造商之機械手臂整合於一共用工作空間中。
在至少某些實施方案中,本文中所闡述之結構及演算法可在不具有相機或其他感知感測器之情況下操作。在至少某些實施方案中,機械手臂之間的協調依賴於機械手臂之幾何模型、機械手臂傳遞其各別移動規劃之能力及一共用工作空間之幾何模型。在其他實施方案中,舉例而言,為了避開可能進入或佔據該共用工作空間之部分之人類或其他動態障礙,可視情況採用視覺或其他感知。
使用各種各樣演算法來解決移動規劃問題。此等演算法中之每一者通常需要能夠判定一機械手臂之一給定姿勢或自一個姿勢至另一姿勢之一移動是否引起與機械手臂自身或與環境中之障礙之一碰撞。可「在軟體中」使用執行來自一所儲存處理器可執行指令集之處理器可執行指令以執行一演算法之處理器執行碰撞評定或檢查。可「在硬體中」使用一組專用硬體電路(例如 ,在一場可程式化閘陣列(FPGA)中實施之碰撞檢查電路、特殊應用積體電路(ASIC))執行碰撞評定或檢查。此等電路可(舉例而言)表示在兩個狀態之間的一各別移動或轉變期間由一機械手臂/機械附件或其部分掃掠之體積(亦即 ,掃掠體積)。該等電路可(舉例而言)產生指示一移動是否將與任何障礙碰撞之一布林評估,其中該等障礙中之至少某些障礙表示在執行一移動或轉變時由在共用工作空間中操作之其他機械手臂掃掠之體積。
態樣1.     闡述一種控制複數個機械手臂在一共同工作空間中操作之方法,該共同工作空間係其中該等機械手臂之一移動範圍重疊之一工作空間。該方法可經總結為包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第一移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第一移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣2.     如態樣1之方法,其進一步包括: 回應於由該機械手臂R1 完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R1 完成之該至少一個移動對應之部分。
態樣3.     如態樣1之方法,其進一步包括: 回應於由該機械手臂R2 至該機械手臂Rn 中之任何一或多者完成至少一個移動,更新障礙之一表示以消除與由該由機械手臂R2 至該機械手臂Rn 中之一各別者完成之該至少一個移動對應之部分。
態樣4.     如態樣1之方法,其進一步包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣5.     如態樣4之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第一移動規劃自i等於1至i等於n接連地發生。
態樣6.     如態樣5之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n接連地發生。
態樣7.     如態樣5之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n未接連地發生。
態樣8.     如態樣4之方法,其中至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作包含提供致使一個機械手臂Ri 在該機械手臂R1 之前移動之信號,且該方法進一步包括: 回應於由該機械手臂Ri 完成至少一個移動,在針對該複數個機械手臂中之該機械手臂R1 產生該第二移動規劃之前更新障礙之一表示以消除與由該機械手臂Ri 完成之該至少一個移動對應之部分。
態樣9.     如態樣1之方法,其進一步包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對兩個或更多個機械手臂Ri 中之某些而非所有機械手臂,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於3之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣10.   如態樣9之方法,其中跳過該針對該機械手臂R2 至該機械手臂Rn 中之一者產生一第二移動規劃。
態樣11.   如態樣9之方法,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者被該機械手臂R2 至該機械手臂Rn 中之另一者阻擋而不能移動而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
態樣12.   如態樣9之方法,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者具有指示已發生一錯誤狀況之一錯誤狀態而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
態樣13.   如態樣1之方法,其中將至少該機械手臂R1 之若干個移動表示為至少一個障礙包含:針對至少一個機械手臂Ri+1 ,在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之移動表示為障礙。
態樣14.   如態樣13之方法,其中在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙包含:使用先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在該機械手臂R1 至該機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
態樣15.   如態樣13之方法,其進一步包括: 接收先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在機械手臂R1 至機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
態樣16.   如態樣13之方法,其中在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙包含將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為以下各項中之至少一者:一佔據網格、一階層樹或一歐幾里德距離場。
態樣17.   如態樣1之方法,其中將至少該機械手臂R1 之該等移動中之每一者表示為至少一個障礙包含使用一各別掃掠體積來表示各別移動,該掃掠體積對應於在該各別移動期間由至少該機械手臂R1 之至少一部分掃掠之一體積,且其中相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測包含使用先前在一運行時間前計算之一掃掠體積之一表示執行碰撞偵測,該掃掠體積表示在該機械手臂Ri 之至少一部分沿著由該各別移動表示之一軌跡移動時由該機械手臂Ri 之該部分掃掠之一各別體積。
態樣18.   如態樣1之方法,其進一步包括: 針對該複數個機械手臂中之機械手臂R1 至該機械手臂Rn 中之每一者,經由一各別移動規劃曲線圖表示各別機械手臂,每一移動規劃曲線圖包括複數個節點及邊緣,該等節點表示該各別機械手臂之各別狀態且該等邊緣表示由邊緣所連接之一各別對節點中之各別者表示之各別狀態之間的有效轉變。
態樣19.   闡述一種用以控制複數個機械手臂在一共同工作空間中操作之系統,該共同工作空間係其中該等機械手臂之一移動範圍重疊之一工作空間。該系統可經總結為包括: 至少一個處理器;及 至少一個非暫時性儲存媒體,其以通信方式耦合至該至少一個處理器且儲存在由該至少一個處理器執行時致使該至少一個處理器進行以下操作之處理器可執行指令: 針對該複數個機械手臂中之一機械手臂R1 產生一第一移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第一移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣20.   如態樣19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 回應於由該機械手臂R1 完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R1 完成之該至少一個移動對應之部分。
態樣21.   如態樣19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 回應於由該機械手臂R2 至該機械手臂Rn 中之任何一或多者完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R2 至該機械手臂Rn 中之一各別者完成之該至少一個移動對應之部分。
態樣22.   如態樣19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;且 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣23.   如態樣22之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第一移動規劃自i等於1至i等於n接連地發生。
態樣24.   如態樣23之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n接連地發生。
態樣25.   如態樣23之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n未接連地發生。
態樣26.   如態樣22之系統,其中為了至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器提供致使一個機械手臂Ri 在該機械手臂R1 之前移動之信號,且進一步: 回應於由該機械手臂Ri 完成至少一個移動,在針對該複數個機械手臂中之該機械手臂R1 產生該第二移動規劃之前更新障礙之一表示以消除與由該機械手臂Ri 完成之該至少一個移動對應之部分。
態樣27.   如態樣19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對兩個或更多個機械手臂Ri 中之某些而非所有機械手臂,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於3之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;且 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
態樣28.   如態樣27之系統,其中跳過針對該機械手臂R2 至該機械手臂Rn 中之一者產生一第二移動規劃。
態樣29.   如態樣27之系統,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者被該機械手臂R2 至該機械手臂Rn 中之另一者阻擋而不能移動而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
態樣30.   如態樣27之系統,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者具有指示已發生一錯誤狀況之一錯誤狀態而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
態樣31.   如態樣19之系統,其中為了將至少該機械手臂R1 之若干個移動表示為至少一個障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:針對至少一個機械手臂Ri+1 ,在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙。
態樣32.   如態樣31之系統,其中為了將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:使用先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在該機械手臂R1 至該機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
態樣33.   如態樣31之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 接收先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在機械手臂R1 至機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
態樣34.   如態樣31之系統,其中為了在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為以下各項中之至少一者:一佔據網格、一階層樹或一歐幾里德距離場。
態樣35.   如態樣19之系統,其中為了將至少該機械手臂R1 之該等移動中之每一者表示為至少一個障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:使用一各別掃掠體積來表示各別移動,該掃掠體積對應於在該各別移動期間由至少該機械手臂R1 之至少一部分掃掠之一體積,且其中為了相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器至少部分地基於先前在一運行時間前計算之一掃掠體積之一表示而執行碰撞偵測,該掃掠體積表示在該機械手臂Ri 之至少一部分沿著由該各別移動之一軌跡移動時由該機械手臂Ri 之該部分掃掠之一各別體積。
態樣36.   如態樣19之系統,其中針對該複數個機械手臂中之機械手臂R1 至該機械手臂Rn 中之每一者,經由一各別移動規劃曲線圖表示各別機械手臂,每一移動規劃曲線圖包括複數個節點及邊緣,該等節點表示該各別機械手臂之各別狀態且該等邊緣表示由邊緣所連接之一各別對節點中之各別者表示之各別狀態之間的有效轉變。
在以下說明中,陳述一些特定細節以便提供對各種所揭示實施例之一透徹理解。然而,熟習相關技術者將認識到,可在無此等特定細節中之一或多者之情況下或用其他方法、組件、材料等實踐實施例。在其他例項中,未詳細展示或闡述與電腦系統、致動器系統及/或通信網路相關聯之眾所周知之結構,以避免不必要地使對實施例之闡述模糊。在其他例項中,未詳細闡述用於產生一或多個物件及諸如此類之感知資料及體積表示之眾所周知的電腦視覺方法及技術以避免不必要地使對實施例之闡述模糊。
除非上下文另有需要,否則在以下說明書及申請專利範圍通篇中,應將措辭「包括(comprise)」及其變化形式(諸如,「包括(comprises)」及「包括(comprising)」)解釋為一開放、包含性意義,亦即,「包含但不限於」。
在本說明書通篇中對「一項實施方案」或「一實施方案」或對「一項實施例」或「一實施例」之提及意味結合該實施例所闡述之一特定特徵、結構或特性包含於至少一個實施方案中或至少一個實施方案實施例中。因此,在本說明書通篇中之各個地方出現之片語「一個實施方案」或「一實施方案」或「在一項實施例中」或「在一實施例中」未必全部係指相同實施方案或實施例。此外,該等特定特徵、結構或特性可在一或多個實施方案或實施例中以任何適合方式組合。
除非內容另外明確指出,否則如本說明書及隨附申請專利範圍中所使用,單數形式「一(a、an)」及「該(the)」包含複數個指示物。亦應注意,除非內容另外明確指出,否則術語「或」通常係以其包含「及/或」之含義被採用。
如本說明書及隨附申請專利範圍中所使用,術語判定(determine、determining及determined)在於是否將發生或得出一碰撞之內容脈絡中使用時意味關於經由若干個中間姿勢的兩個姿勢之間的一給定姿勢或移動是否將引起一機械手臂之一部分與某一物件(例如 ,該機械手臂之另一部分、另一機械手臂之一部分、一永久障礙、一暫時障礙,例如一人)之間的一碰撞而做出一評定或預測。
本文中所提供之本發明之標題及發明摘要僅為方便起見且並不解釋實施例之範疇或含義。
圖1展示根據一項所圖解說明實施方案之一機械系統100,機械系統100包含在一共用工作空間104中操作以實施任務之複數個機械手臂102a、102b、102c (統稱為102)。
機械手臂102可採取各種形式中之任一者。通常,機械手臂將採取一或多個機械附件之形式,或具有一或多個機械附件。機械手臂102可包含具有一或多個關節之一或多個連桿,及經耦合且可操作以使該等連桿回應於控制或驅動信號而移動之致動器(例如 ,電動馬達、步進馬達、螺線管、氣動致動器或液壓致動器)。氣動致動器可(舉例而言)包含一或多個活塞、汽缸、閥、氣體貯器及/或壓力源(例如 ,壓縮機、鼓風機)。液壓致動器可(舉例而言)包含一或多個活塞、汽缸、閥、流體貯器(例如 ,低壓縮性液壓流體)及/或壓力源(例如 ,壓縮機、鼓風機)。機械系統100可採用其他形式之機械手臂102,舉例而言,自主載具。
共用工作空間104通常表示機械手臂102a至102c可在其中操作且移動之一個三維空間,儘管在一些受限制實施方案中共用工作空間104可表示一個二維空間。共用工作空間104係若移動未經控制以避免碰撞則機械手臂102之至少若干部分可在其中在空間及時間上重疊或以其他方式碰撞的一體積或面積。應注意,工作空間104不同於下文(舉例而言)參考圖3所闡述之機械手臂102a至102c之一各別「組態空間」或「C空間」。
如本文中所闡釋,一機械手臂102a或其部分在自另一機械手臂102b之一視角來考量時(亦即 ,在針對另一機械手臂102b進行移動規劃時)可構成一障礙。共用工作空間104可另外包含其他障礙,舉例而言,機械件(例如 ,傳送帶106)、支柱、柱、壁、天花板、地板、台面、人類及/或動物。共用工作空間104可另外包含一或多個工作物項或工件108,機械手臂102操縱工作物項或工件108作為執行任務之一部分,舉例而言,一或多個包裹、封裝、緊固件、工具、物項或其他物件。
機械系統100可包含一或多個機械手臂控制系統109a、109b、109c (展示三個,統稱為109),機械手臂控制系統109a、109b、109c包含一或多個移動規劃器,舉例而言,分別用於機械手臂102a、102b、102c中之每一者之一各別移動規劃器110a、110b、110c (展示三個,統稱為110)。在至少某些實施方案中,可採用一單個移動規劃器109來針對兩個、兩個以上或所有機械手臂102產生移動規劃。移動規劃器110以通信方式經耦合以控制機械手臂102中之各別者。移動規劃器110亦以通信方式經耦合以接收各種類型之輸入,舉例而言,包含在共用工作空間104中操作之其他機械手臂102之機械手臂幾何模型112a、112b、112c (亦稱為移動學模型,統稱為112)、任務訊息114a、114b、114c (統稱為114)及移動規劃或其他移動表示116a、116b、116c (統稱為116)。舉例而言,就一給定機械手臂102之關節、自由度、尺寸(例如 ,連桿長度)而言及/或就機械手臂102之各別C空間而言,機械手臂幾何模型112定義機械手臂102之一幾何結構。(如圖2中所圖解說明,可在運行時間或任務執行之前發生將機械手臂幾何模型112轉換為移動規劃曲線圖,舉例而言,使用各種技術中之任一者由與機械系統100不同且分開之一基於處理器之系統執行。)  舉例而言,就各別機械手臂102之最終姿勢、最終組態或最終狀態及/或中間姿勢、中間組態或中間狀態而言,任務訊息114規定待執行之任務。舉例而言,可就各別機械手臂102之關節位置及關節角度/旋轉(例如 ,關節姿勢、關節座標)而言來定義姿勢、組態或狀態。
移動規劃器110視情況以通信方式經耦合以接收靜態物件資料118a、118b、118c (統稱為118)作為輸入。靜態物件資料118表示可(例如)稱為先驗的工作空間104中之靜態物件之(例如 ,大小、形狀、位置、所佔據空間)。靜態物件可(舉例而言)包含工作空間中之固定結構中之一或多者,例如支柱、柱、壁、天花板、地板、傳送帶106。由於機械手臂102在一共用工作空間中操作,因此該等靜態物件通常將對於每一機械手臂係完全相同的。因此,在至少某些實施方案中,供應至移動規劃器110之靜態物件資料118a、118b、118c將係完全相同的。在其他實施方案中,舉例而言,基於環境中之機械手臂102之一位置或定向或者機械手臂102之一環境視角,供應至移動規劃器110之靜態物件資料118a、118b、118c對於每一機械手臂可不同。另外,如上所述,在某些實施方案中,一單個移動規劃器110可針對兩個或更多個機械手臂102產生移動規劃。
移動規劃器110視情況以通信方式經耦合以接收(舉例而言)由一感知子系統124提供之感知資料120作為輸入。感知資料120表示未稱為先驗的工作空間104中之靜態及/或動態物件。感知資料120可係如經由一或多個感測器(例如 ,相機122a、122b)感測及/或如由感知子系統124轉換為障礙之數位表示的原始資料。
選用感知子系統124可包含可執行一或多個機器可讀指令之一或多個處理器,該一或多個機器可讀指令致使感知子系統124產生機械手臂102將在其中操作以執行各種不同情景之任務之一環境之一表示之一各別離散化。
選用感測器(例如 ,相機122a、122b)將原始感知資訊(例如 ,點雲)提供至感知子系統124。選用感知子系統124可處理該原始感知資訊,且可提供所得感知資料作為一點雲、一佔據網格、框(例如 ,定界框)或其他幾何物件或者表示存在於環境中之障礙之立體像素(亦即 ,一「立體像素」係一3D或體積像素之一等效形式)串流。障礙表示可視情況儲存於晶片上記憶體中。感知資料120可表示在環境中在一當前時間(例如 ,運行時間)佔據哪些立體像素或子體積(例如 ,框)。在某些實施方案中,當表示一機械手臂或環境中之另一障礙時,機械手臂或一障礙(例如 ,包含其他機械手臂)之各別表面可表示為立體像素或多邊形(通常為三角形)網。在某些情形中,將物件替代地表示為框(矩形稜柱、定界框)或其他幾何物件係有利的。由於物件並非任一形狀之事實,因此在如何組織立體像素方面可存在大量結構;一物件中之諸多立體像素在3D空間中彼此緊挨著。因此,將物件表示為框可需要少得多的位元(亦即 ,可僅需要針對框之兩個相對隅角之x、y、z笛卡爾座標)。而且,執行框之相交測試在複雜性方面與執行立體像素之相交測試相當。
至少某些實施方案可組合多個感測器之輸出且該等感測器可提供一非常精細粒度體素化。然而,為了使移動規劃器高效地執行移動規劃,較粗糙立體像素(亦即 ,「處理器立體像素」)可用於表示環境及在進行各種狀態、組態或姿勢之間的轉變時由機械手臂102或其部分掃掠的3D空間中之一體積。因此,選用感知子系統124可相應地變換感測器(例如 ,相機122a、122b)之輸出。舉例而言,相機122a、122b之輸出可在每一軸線上使用10位元之精確度,因此直接源自相機122a、122b之每一立體像素具有一30位元ID,且存在230 個感測器立體像素。系統200a (圖2)可在每一軸線上使用6位元精確度以達成一18位元處理器立體像素ID,且將存在218 個處理器立體像素。因此,每處理器立體像素可存在(舉例而言) 212 個感測器立體像素。在運行時間,若系統200a判定佔據一處理器立體像素內之感測器立體像素中之任一者,則系統200a將處理器立體像素視為被佔據且因此產生佔據網格。
各種通信路徑在圖1中經圖解說明為箭頭。該等通信路徑可(舉例而言)採取一或多個有線通信路徑(例如 ,電導體、信號匯流排或光纖)及/或一或多個無線通信路徑(例如 ,經由RF或微波無線電及天線、紅外線收發器)之形式。顯而易見地,移動規劃器110a至110c中之每一者直接或間接以通信方式彼此耦合,以將針對機械手臂102a至102c中之一各別者之移動規劃提供至移動規劃器110a至110c中之其他者。舉例而言,移動規劃器110a至110c可經由一網路基礎結構(例如一非專屬網路基礎結構(例如 ,乙太網路基礎結構) 126)以通信方式彼此耦合。此可有利地允許在一共用工作空間中操作來自不同製造商之機械手臂。
術語「環境」用於係指一機械手臂之一當前工作空間,該當前工作空間係其中兩個或更多個機械手臂在同一工作空間中操作之一共用工作空間。該環境可包含障礙及/或工件(亦即 ,機械手臂將與其互動或作用於其或與其作用之物項)。術語「任務」用於係指其中一機械手臂在不與其環境中之障礙碰撞之情況下自一姿勢A轉變至一姿勢B之一機械任務。該任務可能涉及抓取或放開一物項,使一物項移動或下降,使一物項旋轉,或者撿回或放置一物項。自姿勢A轉變至姿勢B可視情況包含在一或多個中間姿勢之間轉變。術語「情景」用於係指一類環境/任務對。舉例而言,一情景可係「在具有一3英尺台面或傳送帶之一環境中且在具有一給定範圍中之大小及形狀之x障礙與y障礙之間的拾放任務」。取決於目標位置以及障礙大小及形狀,可存在符合此等準則之諸多不同任務/環境對。
移動規劃器110可操作以動態地產生移動規劃116以致使機械手臂102在一環境中實施任務,同時考量機械手臂102中之其他者之所規劃移動(例如 ,如由各別移動規劃116或所得掃掠體積所表示)。移動規劃器110可視情況在產生移動規劃116時考量先驗靜態物件118及/或感知資料120之表示。視情況,移動規劃器110可考量其他機械手臂102在一給定時間之一移動狀態,例如另一機械手臂102是否已完成一給定移動或任務,且基於完成其他機械手臂中之一者之一移動或任務而允許一移動規劃之一重新計算,因此使一先前排除之路徑或軌跡可用以供選擇。視情況,移動規劃器110可考量機械手臂102之一操作狀況,例如一故障狀況之一發生或偵測、一受阻擋狀態之一發生或偵測及/或加快或替代地延遲或跳過一移動規劃請求之請求之一發生或偵測。
圖2展示根據一項所圖解說明實施方案之其中一第一機械手臂控制系統200a包含一第一移動規劃器204a之一環境,第一移動規劃器204a產生第一移動規劃206a以控制一第一機械手臂202之操作,且經由至少一個通信頻道(由近似箭頭指示,例如 ,傳輸器、接收器、收發器、無線電、路由器、乙太網路)將第一移動規劃206a及/或作為障礙之移動表示提供至其他機械手臂控制系統200b之其他移動規劃器204b以控制其他機械手臂(圖2中未圖解說明)。
同樣地,其他機械手臂控制系統200b之其他移動規劃器204b產生其他移動規劃206b以控制其他機械手臂(圖2中未圖解說明)之操作,且將其他移動規劃206b提供至第一移動規劃器204a及其他機械手臂控制系統200b之其他移動規劃器204b中之其他者。移動規劃器204a、204b亦可接收指示何時已完成各種機械手臂202之移動之移動已完成訊息209。此可允許移動規劃器204a、204b基於環境之一當前或經更新狀態而產生新的或經更新移動規劃。舉例而言,一共用工作空間之一部分可使一第二機械手臂變得可用於在一第一機械手臂202已完成係由該第一機械手臂執行之一任務之一部分或全部之一移動之後執行一任務。
機械手臂控制系統200a、200b可(舉例而言)經由至少一個通信頻道(由近似箭頭指示,例如 ,傳輸器、接收器、收發器、無線電、路由器、乙太網路)以通信方式耦合,以自移動規劃曲線圖208及/或掃掠體積表示211之一或多個源212接收移動規劃曲線圖208及/或掃掠體積表示211。根據一項所圖解說明實施方案,移動規劃曲線圖208及/或掃掠體積211之源212可與移動規劃器204a、204b分開且不同。移動規劃曲線圖208及/或掃掠體積211之源212可(舉例而言)係可由機械手臂202之各別製造商或由某一其他實體操作或控制之一或多個基於處理器之運算系統(例如 ,伺服器電腦)。移動規劃曲線圖208可各自包含表示各別機械手臂之狀態、組態或姿勢之一組節點214 (在圖2中僅指出兩個),及耦合各別對節點214中之節點214且表示狀態、組態或姿勢之間的法定或有效轉變之一組邊緣216 (在圖2中僅指出兩個)。狀態、組態或姿勢可(舉例而言)表示針對各別機械手臂202之關節中之每一者之若干組關節位置、定向、姿勢或座標。因此,每一節點214可表示如完全由包括機械手臂202之關節之姿勢定義的一機械手臂202或其部分之一姿勢。可在一運行時間(亦即 ,在執行任務之前所定義)之前(舉例而言,在一運行時間前或組態時間期間)判定、設置或定義移動規劃曲線圖208。掃掠體積211表示在執行與移動規劃曲線圖208之一各別邊緣對應之一移動或轉變時將佔據的一機械手臂202或其部分之各別體積。可以各種形式中之任一者將掃掠體積211表示(舉例而言)為立體像素、一歐幾里德距離場、一幾何物件階層。當回應性並非一特定問題時,此有利地准許在運行時間之前執行大部分計算密集型工作中之某些。
每一機械手臂202可包含可操作以使連桿圍繞關節移動之一組連桿、關節、臂端工具或末端執行器及/或致動器218a、218b、218c (展示三個,統稱為218)。每一機械手臂202可包含接收例如呈移動規劃206a之形式之控制信號且提供驅動信號以驅動致動器218之一或多個移動控制器(例如 ,馬達控制器) 220 (僅展示一個)。
可針對每一機械手臂202存在一各別機械手臂控制系統200a、200b,或替代地,一個機械手臂控制系統200a可針對兩個或更多個機械手臂202執行移動規劃。將出於說明性目的詳細闡述一個機械手臂控制系統200a。熟習此項技術者將認識到,說明可應用於其他機械手臂控制系統200b之類似或甚至完全相同額外例項。
機械手臂控制系統200a可包括一或多個處理器222及處理器222之一或多個相關聯非暫時性電腦或處理器可讀儲存媒體,舉例而言,系統記憶體224a、磁碟機224b及/或記憶體或暫存器(未展示)。非暫時性電腦或處理器可讀儲存媒體224a、224b經由諸如系統匯流排226之一或多個通信頻道以通信方式耦合至處理器222a。系統匯流排226可採用任何已知匯流排結構或架構,包含具有記憶體控制器之一記憶體匯流排、一周邊匯流排及/或一區域匯流排。此等組件中之一或多者亦可或替代地經由一或多個其他通信頻道彼此進行通信,舉例而言,能夠進行高速通信之一或多個並行電纜、串行電纜或無線網路頻道,例如,通用串列匯流排(「USB」) 3.0、高速周邊組件互連(PCIe)或Thunderbolt®
機械手臂控制系統200a亦可以通信方式耦合至一或多個遠端電腦系統,例如 ,伺服器電腦(例如 ,移動規劃曲線圖源212)、桌上型電腦、膝上型電腦、超便攜電腦、平板電腦、智慧型電話、隨身電腦及/或感測器(圖2中未圖解說明),該一或多個遠端電腦系統直接以通信方式耦合或(舉例而言)經由一網路介面227間接以通信方式耦合至機械手臂控制系統200之各種組件。遠端運算系統(例如 ,伺服器電腦(例如 ,移動規劃曲線圖之源212))可用於程式化、組態、控制機械手臂控制系統200a及機械手臂控制系統200內之各種組件或以其他方式與機械手臂控制系統200a及機械手臂控制系統200內之各種組件介接或將資料(例如 ,移動規劃曲線圖208、掃掠體積211、任務規範215)輸入至機械手臂控制系統200a及機械手臂控制系統200內之各種組件。此一連接可係透過一或多個通信頻道,舉例而言,一或多個廣域網(WAN) (例如,乙太網路)或使用網際網路協定之網際網路。如上所述,可由與機械手臂控制系統200a或機械手臂202分開之一系統執行運行時間前計算(例如 ,產生移動規劃曲線圖系列),同時可由機械手臂控制系統200之處理器222執行運行時間計算,處理器222在某一實施方案中可在機械手臂202上。
如所述,機械手臂控制系統200a可包含一或多個處理器222 (亦即 ,電路系統)、非暫時性儲存媒體224a、224b及耦合各種系統組件之系統匯流排226。處理器222可係任一邏輯處理單元,諸如一或多個中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、可程式化邏輯控制器(PLC)等。系統記憶體224a可包含唯讀記憶體(「ROM」) 226、隨機存取記憶體(「RAM」) 228、FLASH記憶體230、EEPROM (未展示)。可形成ROM 226之一部分之一基本輸入/輸出系統(「BIOS」) 232含有諸如在啟動期間幫助在機械手臂控制系統200內之元件之間傳送資訊之基本常式。
舉例而言,磁碟機224b可係用於自一磁碟讀取且對該磁碟進行寫入之一硬碟機、用於自固體記憶體讀取且對該固體記憶體進行寫入之一固態(例如 ,快閃記憶體)磁碟機及/或用於自可抽換光碟讀取且對該可抽換光碟進行寫入之一光碟機。在各種不同實施例中,機械手臂控制系統200a亦可包含此等磁碟機之任一組合。磁碟機224b可經由系統匯流排226與處理器222通信。磁碟機224b可包含耦合於此等磁碟機與系統匯流排226之間的介面或控制器(未展示),如熟習相關技術者已知。磁碟機224b及其相關聯電腦可讀媒體為機械手臂控制系統200提供電腦或處理器可讀及/或可執行指令、資料結構、程式模組及其他資料之非揮發性儲存。熟習相關技術者將瞭解,可採用可儲存可由一電腦存取之資料的其他類型之電腦可讀媒體,諸如WORM磁碟機、RAID磁碟機、磁盒、數位視訊磁碟(「DVD」)、白努利匣、RAM、ROM、智慧卡等。
可執行指令及資料可儲存於系統記憶體224a (舉例而言,一作業系統236、一或多個應用程式238、其他程式或模組240及程式資料242)中。應用程式238可包含致使處理器222執行以下操作中之一或多者之處理器可執行指令:產生機械手臂202將在其中操作之環境之離散化表示,包含其他機械手臂之所規劃移動在其中可表示為障礙之環境中之障礙及/或目標物件或工件;產生移動規劃或道路圖,包含調用或以其他方式獲得一碰撞評定之結果、設定一移動規劃曲線圖中之邊緣之成本值及評估該移動規劃曲線圖中之可用路徑;及/或視情況儲存所判定複數個移動規劃或道路圖。可如在本文中且在以引用方式併入本文中之參考文獻中所闡述(例如 ,參考圖4及圖5)而執行移動規劃建構(例如 ,碰撞偵測或評定、基於碰撞偵測或評定而更新移動規劃曲線圖中之邊緣之成本及路徑搜尋或評估)。該碰撞偵測或評定可使用本文中別處所闡述之各種結構及技術執行碰撞偵測或評定。應用程式238可另外包含致使處理器222執行其他操作(例如,視情況處置感知資料(經由感測器所擷取))之一或多個機器可讀且機器可執行指令。應用程式238可另外包含致使處理器222執行在本文中且在以引用方式併入本文中之參考文獻中所闡述之各種其他方法的一或多個機器可執行指令。
在各種實施例中,上文所闡述之操作中之一或多者可由透過一通信網路(例如 ,網路210)經由網路介面227連結之一或多個遠端處理裝置或電腦執行。
雖然在圖2中經展示為儲存於系統記憶體224a中,但作業系統236、應用程式238、其他程式/模組240及程式資料242可儲存於其他非暫時性電腦或處理器可讀媒體(舉例而言,磁碟機224b)上。
機械手臂控制系統200a之移動規劃器204a可包含專用移動規劃器硬體,或可經由處理器222及儲存於系統記憶體224a及/或磁碟機224b中之處理器可執行指令全部地或部分地實施。
移動規劃器204a可包含或實施一移動轉換器250、一碰撞偵測器252、一成本設定器254及一路徑分析器256。
移動轉換器250將機械手臂中之其他者之移動轉換為障礙表示。移動轉換器250自其他移動規劃器200b接收移動規劃204b或其他移動表示。移動轉換器250然後判定對應於該(等)移動之一面積或體積。舉例而言,該移動轉換器可將移動轉換為一對應掃掠體積,該對應掃掠體積係在於如由移動規劃表示之姿勢之間移動或轉變時由對應機械手臂或其部分掃掠之一體積。有利地,移動規劃器204a可僅僅將障礙(例如 ,掃掠體積)排隊,且可不需要判定、追蹤或指示對應移動或掃掠體積之一時間。雖然經闡述為將其他機械手臂202b之移動轉換為障礙的用於一給定機械手臂202之一移動轉換器250,但在某些實施方案中,其他機械手臂202b可將一特定移動之障礙表示(例如 ,掃掠體積)提供至給定機械手臂202。
碰撞偵測器252執行碰撞偵測或分析,從而判定一給定機械手臂202或其部分之一轉變或移動是否將引起與一障礙之一碰撞。如所述,其他機械手臂之移動可有利地表示為障礙。因此,碰撞偵測器252可判定一個機械手臂之一移動是否將引起與移動經過共用工作空間之另一機械手臂之碰撞。
在某些實施方案中,碰撞偵測器252實施基於軟體之碰撞偵測或評定,舉例而言,基於在移動期間由機械手臂202、202b或其部分掃掠之體積之一幾何(例如 ,球體)表示階層而執行一定界框-定界框碰撞評定(assessment或assessing)。在某些實施方案中,碰撞偵測器252實施基於硬體之碰撞偵測或評定,舉例而言,採用一組專用硬體邏輯電路來表示障礙且透過專用硬體邏輯電路流式傳輸移動表示。在基於硬體之碰撞偵測或評定中,碰撞偵測器可採用一或多個可組態電路陣列,舉例而言,一或多個FPGA 258,且可視情況產生布林碰撞評定。
成本設定器254可至少部分地基於碰撞偵測或評定而設定或調整一移動規劃曲線圖中之邊緣之一成本。舉例而言,成本設定器254可針對邊緣設定一相對高成本值,該等邊緣表示引起或將可能引起碰撞之狀態之間的轉變或姿勢之間的移動。而且,舉例而言,成本設定器254可針對邊緣設定一相對低成本值,該等邊緣表示不引起或將可能不引起碰撞之狀態之間的轉變或姿勢之間的移動。設定成本可包含設定經由某一資料結構(例如 ,欄位、指標、資料表)與一對應邊緣邏輯上相關聯之一成本值。
路徑分析器256可使用具有成本值之移動規劃曲線圖判定一路徑(例如 ,最佳的或最佳化的)。舉例而言,路徑分析器256可構成判定兩種狀態、組態或姿勢之間的一最低或相對低成本路徑之一最少成本路徑最佳化器,該等狀態、組態或姿勢由移動規劃曲線圖中之各別節點表示。考量與每一邊緣相關聯之表示碰撞可能性之成本值,路徑分析器256可使用或執行任何種類之路徑尋找演算法,舉例而言,最低成本路徑尋找演算法。
可使用用以判定最少成本路徑之各種演算法及結構,包含實施Bellman-Ford演算法之彼等演算法及結構,但亦可使用其他演算法及結構,包含但不限於任一此類程序,其中最少成本路徑經判定為移動規劃曲線圖208中之兩個節點之間的路徑,使得最少化其構成邊緣之成本或權重之總和。此程序藉由以下方式而改良一機械手臂102、202之移動規劃技術:使用表示作為障礙之其他機械手臂之移動的一移動規劃曲線圖及碰撞偵測來增加尋找「最好」路徑以在不具有碰撞之情況下執行一任務之效率及回應時間。
移動規劃器204a可視情況包含一刪減器260。刪減器260可接收表示由其他機械手臂完成移動之資訊,該資訊在本文中稱為移動已完成訊息209。替代地,一旗標可經設定以指示完成。作為回應,刪減器260可移除表示現在已完成移動之一障礙或一障礙之部分。彼可允許針對一給定機械手臂產生一新移動規劃(其可係更高效的)或允許該給定機械手臂致力於執行先前由另一機械手臂之移動以其他方式阻止之一任務。此方法有利地允許移動轉換器250在產生移動之障礙表示時忽視移動定時,同時仍實現比使用其他技術更佳之吞吐量。移動規劃器204a可另外發送一信號、提示或觸發以致使碰撞偵測器252執行一新碰撞偵測或評定(給定障礙之修改)從而產生其中已修改與邊緣相關聯之邊緣權重或成本之一經更新移動規劃曲線圖,且致使成本設定器254及路徑分析器256更新成本值且因此判定一新的或經修訂移動規劃。
移動規劃器204a可視情況包含將來自選用感測器262 (例如 ,數位相機)之輸出(例如 ,環境之數位化表示)轉換為障礙表示之一環境轉換器263。因此,移動規劃器204a可執行考量環境中之暫時物件(例如,人、動物等)之移動規劃。
處理器212及/或移動規劃器204a可係或可包含任何邏輯處理單元,諸如一或多個中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、可程式化邏輯控制器(PLC)等。可商購電腦系統之非限制性實例包含但不限於:由美國之Intel® Corporation提供之Celeron、Core、Core 2、Itanium及Xeon系列之微處理器;由美國之Advanced Micro Devices提供之K8、K10、Bulldozer及Bobcat系列微處理器;由美國之Apple Computer提供之A5、A6及A7系列微處理器;由美國之Qualcomm有限公司提供之Snapdragon系列微處理器;及由美國之Oracle Corp提供之SPARC系列微處理器。圖2中所展示之各種結構之構造及操作可實施或採用在以下各項中所闡述或類似於在以下各項中所闡述之彼等結構、技術及演算法之結構、技術及演算法:2017年6月9日提出申請之標題為「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」之第PCT/US2017/036880號國際專利申請案;2016年1月5日提出申請之標題為「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」之第WO 2016/122840號國際專利申請公開案;及/或2018年1月12日提出申請之標題為「APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS」之第62/616,783號美國專利申請案。
儘管未要求,但將在電腦可執行指令之一般內容脈絡中闡述諸多實施方案,諸如儲存於電腦或處理器可讀媒體上且由可執行障礙表示、碰撞評定及其他移動規劃操作之一或多個電腦或處理器執行之程式應用模組、物件或巨集。
移動規劃操作可包含但不限於產生或變換以下各項中之一者、多者或全部:基於一幾何模型112 (圖1)之機械手臂幾何結構之一表示;任務114 (圖1);及在各種狀態或姿勢中及/或在於狀態或姿勢之間移動期間由機械手臂佔據之體積(例如 ,掃掠體積)呈數位形式之表示,例如 ,點雲、歐幾里德距離場、資料結構格式(例如 ,階層格式、非階層格式)及/或曲線(例如 ,多項式或樣條表示)。移動規劃操作可視情況包含但不限於產生或變換以下各項中之一者、多者或全部:靜態或永久障礙118 (圖1)之一表示;及/或表示靜態或暫時障礙之呈數位形式之感知資料120 (圖1),例如 ,點雲、歐幾里德距離場、資料結構格式(例如 ,階層格式、非階層格式及/或曲線(例如 ,多項式或樣條表示)。
移動規劃操作可包含但不限於使用各種碰撞評定技術或演算法(例如 ,基於軟體的、基於硬體的)來針對機械手臂之各種狀態或姿勢或者機械手臂在狀態或姿勢之間的移動判定或偵測或預測碰撞。
在某些實施方案中,移動規劃操作可包含但不限於:判定一或多個移動規劃曲線圖、移動規劃或道路圖;儲存該(等)所判定規劃曲線圖、移動規劃或道路圖;及/或提供該(等)規劃曲線圖、移動規劃或道路圖以控制一機械手臂之操作。
在一項實施方案中,回應於一函數調用或類似程序而執行碰撞偵測或評定,且將一布林值傳回至其。可經由一或多個場可程式化閘陣列(FPGA)及/或一或多個特殊應用積體電路(ASIC)實施碰撞偵測器252以執行碰撞偵測同時達成低延時、相對低電力消耗且增加可處置之一資訊量。
在各種實施方案中,此等操作可完全地在硬體電路系統中或作為儲存於一記憶體儲存器(諸如系統記憶體224a)中且由一或多個硬體處理器222a (諸如一或多個微處理器、數位信號處理器(DSP)、場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、圖形處理單元(GPU)處理器、經程式化邏輯控制器(PLC)、電可程式化唯讀記憶體(EEPROM))執行之軟體或者作為硬體電路系統與儲存於該記憶體儲存器中之軟體之一組合來執行。
亦在以下各項中闡述可完全地或部分地採用之感知、規劃曲線圖建構、碰撞偵測及路徑搜尋之各種態樣:2017年6月9日提出申請之標題為「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」之第PCT/US2017/036880號國際專利申請案;2016年1月5日提出申請之標題為「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」之第WO 2016/122840號國際專利申請公開案;2018年1月12日提出申請之標題為「APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS」之第62/616,783號美國專利申請案;及2019年6月3日提出申請之標題為「APPARATUS, METHODS AND ARTICLES TO FACILITATE MOTION PLANNING IN ENVIRONMENTS HAVING DYNAMIC OBSTACLES」之第62/856,548號美國專利申請案。熟習相關技術者將瞭解,所圖解說明之實施方案以及其他實施方案可藉助其他系統結構及配置及/或其他運算系統結構及配置來實踐,包含機械手臂、手持式裝置、多處理器系統、基於微處理器的或可程式化消費型電子器件、個人電腦(「PC」)、網路化PC、迷你型電腦、大型電腦及諸如此類之彼等。可在分散式運算環境中實踐該等實施方案或實施例或其部分(例如, 在組態時間及運行時間),其中由透過一通信網路連結之遠端處理裝置執行任務或模組。在一分散式運算環境中,程式模組可位於本端及遠端記憶體儲存裝置或媒體兩者中。然而,一些類型之資訊儲存於何處及如何儲存對於幫助改良移動規劃係重要的。
舉例而言,各種移動規劃解決方案將一道路圖(亦即 ,一移動規劃曲線圖)「燒錄」至處理器(例如 ,FPGA)中,且該道路圖中之每一邊緣對應於處理器之一不可重新組態布林電路。將規劃曲線圖「燒錄」至處理器之設計構成具有受限制處理器電路系統以儲存多個或大量規劃曲線圖之一問題且對於與不同機械手臂一起使用一般係不可重新組態的。
一個解決方案提供將規劃曲線圖資訊放置至記憶體儲存器中之一可重新組態設計。此方法將資訊儲存於記憶體中而非燒錄至一電路中。另一方法代替記憶體而採用經模板化可重新組態電路。
如上所述,可在運行時間之前的一組態時間期間擷取、接收、輸入或提供某些資訊(例如 ,機械手臂幾何模型)。可在組態時間期間處理所接收資訊以產生經處理資訊(例如 ,移動規劃曲線圖)從而在運行時間期間加速操作或降低計算複雜性。
在運行時間期間,可針對整個環境執行碰撞偵測,包含針對任一姿勢或姿勢之間的移動判定機械手臂之任一部分是否將與以下各項碰撞或被預測為與以下各項碰撞:機械手臂自身之另一部分、其他機械手臂或其部分、環境中之永久或靜態障礙或環境中之具有未知軌跡之暫時障礙(例如 ,人)。
圖3展示在其中機械手臂102 (圖1)、202 (圖2)之目標係執行一任務同時避免與靜態障礙及動態障礙之碰撞之情形中機械手臂102、202之一實例性移動規劃曲線圖300,該等障礙可包含在一共用工作空間中操作之其他機械手臂。
規劃曲線圖300分別包括由邊緣310a至310h (在圖式中表示為節點對之間的直線)連接之複數個節點308a至308i (在圖式中表示為開圓)。每一節點隱式地或顯式地表示表徵在機械手臂102、202之組態空間中的機械手臂102、202之一狀態之時間及變數。該組態空間通常稱為C空間且係在規劃曲線圖300中表示的機械手臂102、202之狀態或組態或姿勢之空間。舉例而言,每一節點可表示機械手臂102、202之狀態、組態或姿勢,其可包含但不限於一位置、定向或姿勢(亦即 ,位置及定向)。該狀態、組態或姿勢可(舉例而言)由機械手臂102、202之關節之一組關節位置及關節角度/旋轉(例如 ,關節姿勢、關節座標)表示。
規劃曲線圖300中之邊緣表示機械手臂102、202之此等狀態、組態或姿勢之間的有效或所允許轉變。規劃曲線圖300之邊緣不表示笛卡爾座標中之實際移動,而是表示C空間中之狀態、組態或姿勢之間的轉變。規劃曲線圖300之每一邊緣表示一各別對節點之間的一機械手臂102、202之一轉變。舉例而言,邊緣310a表示兩個節點之間的一機械手臂102、202之一轉變。特定而言,邊緣310a表示在與節點308b相關聯之一特定組態中之機械手臂102、202之一狀態與在與節點308c相關聯之一特定組態中之機械手臂102、202之一狀態之間的一轉變。舉例而言,機械手臂102、202當前可處於與節點308a相關聯之一特定組態中。儘管該等節點經展示處於距彼此之各種距離處,但此係僅出於說明性目的且此不與任何實體距離相關。不存在對規劃曲線圖300中之節點或邊緣數目之限制,然而,在規劃曲線圖300中使用之節點及邊緣愈多,移動規劃器可能夠根據機械手臂102、202之一或多個狀態、組態或姿勢愈準確地且精確地判定最佳路徑以實施一任務,此乃因存在更多路徑以供選擇最少成本路徑。
給每一邊緣指派一成本值或每一邊緣與一成本值相關聯。該成本值可表示關於由對應邊緣表示之一移動之一碰撞評定。
通常,期望機械手臂102、202避免一些障礙,舉例而言,在一共用工作空間中之其他機械手臂。在某些情景中,可期望機械手臂102、202接觸或緊密接近於該共用工作空間中之一些物件,舉例而言以抓住或移動一物件或工件。圖3展示在其中機械手臂102、202之一目標係避免與一或多個障礙之碰撞同時在實施一任務(例如 ,拾放一物件)時移動經過若干個姿勢之情形中由一移動規劃器使用以識別機械手臂102、202之一路徑之一規劃曲線圖300。
無論哪一數位表示對於障礙類型及將執行之碰撞偵測類型(其自身可取決於所採用之特定硬體電路系統),障礙可以數位方式(舉例而言)表示為定界框、經定向定界框、曲線(例如 ,樣條)、歐幾里德距離場或幾何實體階層。在某些實施方案中,對主代理102之道路圖中之掃掠體積進行預運算。在以下各項中闡述碰撞評定之實例:2017年6月9日提出申請之標題為「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」之第PCT/US2017/036880號國際專利申請案;2018年8月23日提出申請之標題為「COLLISION DETECTION USEFUL IN MOTION PLANNING FOR ROBOTICS」之第62/722,067號美國專利申請案;及2016年1月5日提出申請之標題為「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」之第WO 2016/122840號國際專利申請公開案。
移動規劃器或其一部分(例如 ,碰撞偵測器252,圖2)判定或評定一移動或轉變(由一邊緣表示)將引起與一障礙之一碰撞之一可能性或概率。在某些例項中,該判定產生一布林值,而在其他例項中,該判定可表達為一概率。
對於規劃曲線圖300中之節點(其中存在節點之間的直接轉變將引起與一障礙之一碰撞之一概率),移動規劃器(例如 ,成本設定器254,圖2)將指示與障礙之一碰撞之概率之一成本值或權重指派給在彼等節點之間轉變的規劃曲線圖300之邊緣(例如 ,邊緣310a、310b、310c、310d、310e、310f、310g、310h)。在圖3中所展示之實例中,相對高概率之一區域表示為曲線圖部分314,但不對應於一實體區域。
舉例而言,對於具有與一障礙之一碰撞之一各別概率(其低於一碰撞之一所定義臨限概率)的規劃曲線圖300之若干個邊緣中之每一者,移動規劃器可指派具有等於或接近於零之一值之一成本值或權重。在本發明實例中,移動規劃器已將零之一成本值或權重指派給規劃曲線圖300中之彼等邊緣,該等邊緣表示不具有與一障礙之一碰撞之任何概率或具有與一障礙之一碰撞之非常小概率的機械手臂102、202之轉變或移動。對於具有與環境中之一障礙之一碰撞之一各別概率(其高於一碰撞之所定義臨限概率)的規劃曲線圖300之若干個邊緣中之每一者,移動規劃器指派具有實質上大於零之一值之一成本值或權重。在本發明實例中,移動規劃器已將大於零之一成本值或權重指派給具有與一障礙之碰撞之一相對高概率的規劃曲線圖300中之彼等邊緣。用於碰撞概率之特定臨限值可變化。舉例而言,該臨限值可係40%、50%、60%或者更低或更高碰撞概率。而且,指派具有大於零之一值之一成本值或權重可包含指派與一碰撞之各別概率對應之具有大於零之一量值之一權重。舉例而言,如規劃曲線圖300中所展示,移動規劃器已將5之一成本值或權重指派給具有一更高碰撞概率之邊緣310f及310i,但已將具有1之一較低量值之一成本值或權重指派給邊緣310p及310g,移動規劃器判定邊緣310p及310g具有一低得多之碰撞概率。在其他實施方案中,成本值或權重可呈現碰撞與無碰撞之間的一個二進制選擇,在將成本值或權重指派給邊緣時僅存在兩個成本值或權重以供選擇。
除碰撞概率之外,移動規劃器亦可基於因數或參數而指派、設定或調整每一邊緣之成本值或權重。
在移動規劃器至少部分地基於碰撞評定而設定表示機械手臂102、202與一障礙之一碰撞概率之一成本值或權重之後,移動規劃器(例如 ,路徑分析器256,圖2)執行一最佳化以在所得規劃曲線圖300中識別一路徑312,所得規劃曲線圖300為機械手臂102、202提供一移動規劃,如在不具有與包含在一共用工作空間中操作之其他機械手臂之障礙之一碰撞之可能性或具有該碰撞之一相對低可能性之情況下由該路徑所規定。
在一項實施方案中,一旦已指派或設定規劃曲線圖300之所有邊緣成本,移動規劃器(例如 ,路徑分析器256,圖2)便可執行一計算以判定去往或朝向由一目標節點表示之一目標狀態的一最少成本路徑。舉例而言,路徑分析器256 (圖2)可執行自規劃曲線圖300中的機械手臂102、202之當前狀態至可能狀態、組態或姿勢之一最少成本路徑演算法。然後由移動規劃器選擇規劃曲線圖300中之該最少成本(最接近於零)路徑。如上文所闡釋,成本可不僅反映碰撞概率,而且反映其他因數或參數。在本發明實例中,規劃曲線圖300中的機械手臂102、202之一當前狀態、組態或姿勢位於節點308a處,且路徑經繪示為規劃曲線圖300中之路徑312 (粗線路徑包括自節點308a至節點308i而延伸之節段)。
儘管經展示為具有諸多急轉彎的規劃曲線圖300中之一路徑,但此等轉彎不表示一路線中之對應實體轉彎,而是表示機械手臂102、202之狀態、組態或姿勢之間的邏輯轉變。舉例而言,所識別路徑312中之每一邊緣可表示相對於環境中之機械手臂102、202之實體組態之一狀態改變,但未必表示與圖3中所展示之路徑312之角度對應的機械手臂102、202之一方向改變。
圖4根據至少一個所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃曲線圖及掃掠體積之一操作方法400。可在一運行時間之前(舉例而言,在一組態時間期間)執行方法400。方法400可由與一或多個機械手臂及/或一或多個機械手臂控制系統分開且不同並且可能在該一或多個機械手臂及/或一或多個機械手臂控制系統遠端之一基於處理器之系統(例如 ,伺服器電腦)執行。
在402處,一基於處理器之系統接收一或多個機械手臂移動學模型。該等機械手臂移動學模型提供各別機械手臂之幾何結構之一規範。
在404處,該基於處理器之系統基於該各別機械手臂移動學模型而針對一機械手臂產生一移動規劃曲線圖。該移動規劃曲線圖將機械手臂之每一狀態、組態或姿勢表示為一各別節點,且將若干對狀態、組態或姿勢之間的有效轉變表示為連接對應對節點之邊緣。雖然就一曲線圖而言來闡述,但該移動規劃曲線圖未必需要經表示或儲存為一習用曲線圖,而是可(舉例而言)邏輯上或在一記憶體電路或電腦處理器中使用任何種類之資料結構(例如 ,記錄及欄位、資料表、連結清單、指標、樹)來表示。
在406處,該基於處理器之系統針對該移動規劃曲線圖之每一邊緣產生一掃掠體積。該掃掠體積表示在執行對應於該各別邊緣之一移動或轉變時由該機械手臂或其一部分掃掠之一體積。該掃掠體積可以各種形式中之任一者來表示,舉例而言,表示為立體像素、一歐幾里德距離場、一球體或其他幾何物件階層。
在408處,該基於處理器之系統將該等移動規劃曲線圖及/或該等掃掠體積提供至一機械手臂控制系統及/或移動規劃器。該基於處理器之系統可經由一非專屬通信頻道(例如 ,乙太網路)提供該等移動規劃曲線圖及/或該等掃掠體積。在某些實施方案中,來自不同機械手臂製造商之各種機械手臂可在一共用工作空間中操作。在某些實施方案中,各種機械手臂製造商可操作針對該等機械手臂製造商生產之各種機械手臂產生該等移動規劃曲線圖及/或該等掃掠體積之專屬基於處理器之系統(例如 ,伺服器電腦)。該等機械手臂製造商中之每一者可提供各別移動規劃曲線圖及/或掃掠體積以供該等機械手臂控制器或移動規劃器使用。
圖5A及圖5B根據至少一個所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃且視情況控制在一共用工作空間中操作之複數個機械手臂的一操作方法500。可在一運行時間期間(舉例而言,在一組態時間之後)執行方法500。方法500可由採取一或多個機械手臂控制系統之形式之一或多個基於處理器之系統執行。該等機械手臂控制系統可(舉例而言)位於同一處,或者「載於」該等機械手臂中之各別者上。
舉例而言,回應於一機械手臂及/或機械手臂控制系統之一電源接通、回應於來自一調用常式之一調用或啟用或者回應於接收到一任務,方法500在502處開始。
在504處,該基於處理器之系統視情況接收一或多個機械手臂之移動規劃曲線圖。舉例而言,該基於處理器之系統可自在一組態時間期間產生移動規劃曲線圖之另一基於處理器之系統接收移動規劃曲線圖。該等移動規劃曲線圖將機械手臂之每一狀態、組態或姿勢表示為一各別節點,且將若干對狀態、組態或姿勢之間的有效轉變表示為連接對應節點之邊緣。雖然就一曲線圖而言來闡述,但每一移動規劃曲線圖未必需要經表示或儲存為一習用曲線圖,而是可(舉例而言)邏輯上或在一記憶體電路或電腦處理器中使用任何種類之資料結構(例如 ,記錄及欄位、資料表、連結清單、指標、樹)來表示。
在506處,該基於處理器之系統視情況接收一或多個機械手臂之一組掃掠體積。舉例而言,該基於處理器之系統可自在一組態時間期間產生移動規劃曲線圖之另一基於處理器之系統接收該組掃掠體積。替代地,該基於處理器之系統可(舉例而言)基於該等移動規劃曲線圖而產生該組掃掠體積自身。該等掃掠體積表示在執行對應於一各別邊緣之一移動或轉變時由機械手臂或其一部分掃掠之各別體積。該等掃掠體積可以各種形式中之任一者來表示,舉例而言,表示為立體像素、一歐幾里德距離場、一球體或其他幾何物件階層。
在508處,該基於處理器之系統(舉例而言)以任務規範之形式接收若干個任務。該等任務規範規定待由該等機械手臂執行或實施之機械手臂任務。舉例而言,該等任務規範可規定一機械手臂將自一第一位置移動至第二位置,在該第二位置處抓握一物件,將該物件移動至一第三位置且在該第三位置處釋放該物件。該等任務規範可採取各種形式,舉例而言,需要剖析至一較低位準規範之一高位準規範(例如 ,散文句及語法)。該等任務規範可採取低位準規範之形式,舉例而言,該等低位準規範規定一組關節位置及關節角度/旋轉(例如 ,關節姿勢、關節座標)。
在510處,該基於處理器之系統視情況接收或產生對在該共用工作空間中操作之複數個機械手臂R1 至RN 中之每一者之移動規劃的一請求集合或組。該請求集合或組稱為一請求清單或佇列,儘管此未必暗示該清單或佇列中之任務之一次序或配置對應於應或將執行或實施或處理任務之一次序。可基於待由每一機械手臂實施之任務而產生請求。在某些例項中,可在請求佇列中將請求相對於彼此排序,舉例而言,其中在一第二機械手臂執行一第二移動(例如 ,在一第一位置處抓握一工件)之前一第一機械手臂應該要執行一第一移動(例如 ,在該第一位置處釋放該工件)。
在512處,對於一第一經排隊請求i,該基於處理器之系統針對一對應機械手臂(例如 ,機械手臂Ri )產生一對應移動規劃。產生該移動規劃可包含(舉例而言):執行碰撞偵測或評定;基於該碰撞偵測或評定而設定機械手臂Ri 之一移動規劃曲線圖中之邊緣之成本值;及例如經由一最少成本分析使用具有成本值之該等移動規劃曲線圖來判定一路徑。雖然此說明針對該請求及實施該請求之機械手臂採用相同計數器,但此僅僅為了便於理解。如本文中所述,執行一任務之任一給定請求可由能夠執行各別任務之任一給定機械手臂實施。舉例而言,一第i個請求可由一第i+3個機械手臂完成,舉例而言,其中該第i+3個機械手臂係在正服務於一第i個請求時可用之機械手臂。通常,將存在比機械手臂多得多之任務,因此任一給定機械手臂Ri 將執行佇列中除一第i個請求以外之請求。因此,未必存在請求與機械手臂之間的一對一關係。
在514處,該基於處理器之系統將一或多個機械手臂(例如 ,機械手臂Ri )之移動規劃中之移動表示為其他機械手臂之障礙。舉例而言,該基於處理器之系統可將與作為一障礙佇列中之障礙之每一移動對應之掃掠體積排隊。該等掃掠體積可先前已針對每一邊緣經判定或計算,且在記憶體中經由一資料結構(例如 ,指標)邏輯上與每一邊緣相關聯。如先前所述,該等掃掠體積可以各種形式中之任一者來表示,舉例而言,表示為立體像素、一歐幾里德距離場、一球體或其他幾何物件階層。
在516處,該基於處理器之系統視情況控制產生移動規劃所針對之對應機械手臂(例如 ,Ri )之一操作。舉例而言,該基於處理器之系統可將控制信號或驅動信號發送至一或多個移動控制器(例如 ,馬達控制器)以致使一或多個致動器使一或多個連桿根據移動規劃移動。
在518處,該基於處理器之系統視情況判定是否已完成對應移動。監測移動完成可有利地允許該基於處理器之系統在後續碰撞偵測或評定期間自考量因素移除對應於移動之障礙。該基於處理器之系統可依賴於對應機械手臂之座標。該等座標可基於來自移動控制器、致動器及/或感測器(例如 ,相機、旋轉編碼器、舌簧開關)之用以判定是否已完成一給定移動之資訊。
在520處,該基於處理器之系統回應於已完成一給定移動之一判定而產生或傳輸一移動已完成訊息或者設定一旗標。
在522處,該基於處理器之系統針對每一額外經排隊請求i+1執行一反覆迴圈。在該反覆迴圈之每一遍次中,該基於處理器之系統執行下文緊接地闡述之行為524至544中之一或多者。雖然經闡述為一反覆迴圈,但該基於處理器之系統可針對一任務或移動規劃請求組、清單或佇列中之每一任務或移動規劃請求執行方法500之一或多個行為。可相對於機械手臂中之任一選定者執行針對任一給定任務或移動規劃請求之移動規劃,可由基於處理器之系統基於一或多個準則而自主地進行該選擇,舉例而言,如下文參考圖6所闡述。
在524處,該基於處理器之系統判定是否已產生或接收或旗標設定一移動已完成訊息。
在526處,該基於處理器之系統回應於已產生或接收或旗標設定一移動已完成訊息之一判定而刪減對應於給定移動之一或多個障礙。舉例而言,該基於處理器之系統可自一障礙佇列移除對應障礙。此有利地允許在自環境清除不再作為一障礙存在之一掃掠體積之情況下繼續進行碰撞偵測或評定。此亦有利地允許在不需要追蹤移動或對應掃掠體積之定時之情況下追蹤該等移動及對應掃掠體積。
在532處,該基於處理器之系統對機械手臂(例如 ,Ri+1 )執行碰撞偵測或評定。該基於處理器之系統可採用在本文中或在以引用方式併入本文中以執行碰撞偵測或評定之材料中所闡述之各種結構及演算法中之任一者。碰撞偵測或評定可包含針對一障礙佇列中之每一障礙之每一移動執行碰撞偵測或評定。
在534處,該基於處理器之系統至少部分地基於對該機械手臂(例如 ,Ri+1 )之該碰撞偵測或評定而設定該移動規劃曲線圖中之邊緣之成本值。該基於處理器之系統可採用在本文中或在以引用方式併入本文中以執行成本值設定(通常把不具有碰撞風險或具有低碰撞風險之邊緣之成本設定或調整至一相對低值(例如 ,零)且把將產生碰撞或具有一高碰撞風險之邊緣之成本設定或調整至一相對高值(例如 ,十萬))之材料中所闡述之各種結構及演算法中之任一者。
在536處,該基於處理器之系統至少部分地基於該碰撞偵測或評定而針對該機械手臂(例如 ,Ri+1 )產生一移動規劃。該基於處理器之系統可採用在本文中或在以引用方式併入本文中以產生移動規劃之材料中所闡述之各種結構及演算法中之任一者,舉例而言,對具有經設定成本值之移動規劃曲線圖執行一最少成本分析。
在538處,該基於處理器之系統將當前機械手臂(例如 ,Ri+1 )之移動規劃中之移動表示為其他機械手臂之障礙。舉例而言,該基於處理器之系統可將與作為一障礙佇列中之障礙之每一移動對應之掃掠體積排隊。該等掃掠體積可先前已針對每一邊緣經判定或計算,且在記憶體中經由一資料結構(例如 ,欄位、指標)邏輯上與每一邊緣相關聯。如先前所述,該等掃掠體積可以各種形式中之任一者來表示,舉例而言,表示為立體像素、一歐幾里德距離場、一球體或其他幾何物件階層。
在540處,該基於處理器之系統控制產生移動規劃所針對之當前機械手臂(例如 ,Ri+1 )之操作。舉例而言,該基於處理器之系統可將控制信號或驅動信號發送至一或多個移動控制器(例如 ,馬達控制器)以致使一或多個致動器使一或多個連桿移動。
在542處,該基於處理器之系統視情況判定是否已完成該對應移動。監測移動完成可有利地允許該基於處理器之系統在後續碰撞偵測或評定期間自考量因素移除對應於移動之障礙。該基於處理器之系統可依賴於對應機械手臂之座標。該等座標可基於來自移動控制器、致動器及/或感測器(例如 ,相機、旋轉編碼器、舌簧開關)之用以判定是否已完成一給定移動之資訊。
在544處,該基於處理器之系統回應於已完成一給定移動之一判定而產生或傳輸一移動已完成訊息。
在546處,該基於處理器之系統判定是否已到達佇列之一末端。舉例而言,該基於處理器之系統可判定移動規劃請求佇列中是否保留有任何移動規劃請求,及/或是否已完成所有任務。在至少某些實施方案中,在具有新的或額外任務稍後到達之可能性之情況下可暫時刪除任務組(例如 ,任務佇列)。在此等實施方案中,基於處理器之系統可執行一等待迴圈,從而不時地檢查新的或額外任務或者等待指示一新的或額外任務可用於處理及實施之一信號。
方法500可在548處終止。另一選擇係,方法500可重複直至肯定地(舉例而言)由一關斷電源狀態或狀況停止為止。在某些實施方案中,方法500可作為一個多緒程序在一或多個處理器上執行。
雖然就一有序流程而言來闡述操作方法500,但在諸多實施方案中將同時或並行地執行各種行為或操作。通常,在一或多個機械手臂執行任務之同時可實施使一個機械手臂執行一個任務之移動規劃。因此,由機械手臂執行任務可與由一或多個移動規劃器執行移動規劃重疊或同時或並行。由機械手臂執行任務可與由其他機械手臂執行任務重疊或同時或並行。在某些實施方案中,一個機械手臂之移動規劃之至少某一部分可與一或多個其他機械手臂之移動規劃之至少某一部分重疊或同時或並行。
圖6根據至少一個所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃且視情況控制在一共用工作空間中操作之複數個機械手臂之一操作方法600。可在一運行時間期間(舉例而言,在一組態時間之後)執行方法600。方法600可由採取一或多個機械手臂控制系統之形式之一或多個基於處理器之系統執行。該等機械手臂控制系統可(舉例而言)位於同一處,或者「載於」該等機械手臂中之各別者上。可連同方法500 (圖5A及圖5B)採用方法600。
舉例而言,回應於一機械手臂及/或機械手臂控制系統之一接通電源、回應於來自一調用常式之一調用或啟用或者回應於接收到一任務組或清單或佇列,方法600在602處開始。
在604處,一基於處理器之系統自待執行之一任務組或清單或佇列選擇一任務。該等任務可共同達成一目標。舉例而言,任務可包含拾放物件,其中目標係由在一共同工作空間中操作之兩個或更多個機械手臂將一物件堆分類成各別類型之物件之兩個或更多個不同物件堆。
該基於處理器之系統可自一任務組(例如 ,任務佇列)選擇任務。該等任務可採取移動規劃請求之形式,或對應於移動規劃請求,或可取決於特定系統架構而產生各別移動規劃請求。該任務佇列中之該等任務可係或可並非有序的。可基於任何一或多個準則而選擇該等任務,例如 ,用以達成一目標之一個任務相對於另一任務之一次序、該任務相對於其他任務之一優先級、實現一目標之效率(例如 ,完成目標之時間、能量消耗、完成目標之移動次數、並行操作機械手臂之能力、最小化機械手臂之等待時間)、一機械手臂之可用性適合於實施一特定類型之任務(例如,具有某一類型之臂端工具或末端執行器之一機械手臂之可用性)。
在606處,該基於處理器之系統選擇一機械手臂來執行該選定任務。該基於處理器之系統可基於任何一或多個準則而選擇一機械手臂,例如 ,該機械手臂之可用性、該機械手臂執行該任務之適合性、缺乏其他機械手臂執行該任務或執行該機械手臂不適合於執行之其他類型之任務之適合性、一狀況(例如 ,錯誤狀況、低功率狀況、受阻擋狀態狀況、耗損狀況、經排程服務狀況)之存在或不存在。
在608處,該基於處理器之系統針對該對選定任務及選定機械手臂執行移動規劃。舉例而言,該基於處理器之系統可執行如一般參考方法500 (圖5)所闡述之移動規劃。
在610處,該基於處理器之系統判定是否存在將致使跳過或延遲由選定機械手臂執行選定任務之一狀況。狀況可包含指示選定機械手臂或各別機械手臂控制系統中之一操作或機械錯誤之一錯誤狀況。狀況可包含指示如由移動規劃指示的機械手臂之一給定移動當前被阻擋或以其他方式不可達成的一受阻擋狀況。狀況可包含選定機械手臂之一低功率狀況、一耗損狀況或一經排程服務狀況,其全部指示選定機械手臂可不能夠在給定時間完成任務。狀況亦可包含一跳過狀況,其中一給定機械手臂或機械手臂控制系統確立對一任務或移動規劃請求之一更動控制。另外或替代地,該基於處理器之系統可處置加快狀況,該等加快狀況包含一更動控制請求,該更動控制請求致使加快一給定任務或移動規劃請求,從而使該給定任務或移動規劃請求在任務或移動規劃請求佇列中之任務或移動規劃請求中之其他者之前移動,或以其他方式提高一任務或移動規劃請求相對於一或多個其他任務或移動規劃請求之一優先級。
回應於在610處判定存在將致使跳過或延遲由選定機械手臂執行選定任務之一狀況,該基於處理器之系統將控制傳回至606以選擇一不同機械手臂來執行選定任務。替代地,控制將傳遞至604以選擇一新任務,先前任務保留在待執行之任務佇列中或往回添加至待執行之任務佇列。此可促進選擇可在過渡時期已添加至任務佇列之更緊急任務。
回應於在610處判定不存在一狀況,控制傳遞至612,其中將用於實施選定任務之移動規劃發送至選定機械手臂。此可(舉例而言)包含經由有線或無線通信頻道將高位準指令或低位準指令(例如 ,馬達控制指令)提供至選定機械手臂。
在614處,該選定機械手臂執行或實施該移動規劃。舉例而言,一或多個致動器致使一機械附件及相關聯臂端工具執行任務。
在616處,該基於處理器之系統判定在待服務之組、清單或佇列中是否存在額外任務或移動規劃請求。在至少某些實施方案中,在具有新的或額外任務稍後到達之可能性之情況下可暫時刪除任務組(例如 ,任務佇列)。在此等實施方案中,基於處理器之系統可執行一等待迴圈,從而不時地檢查新的或額外任務或者等待指示一新的或額外任務可用於處理及實施之一信號。
方法600可在618處終止。替代地,方法600可重複直至肯定地(舉例而言)由一關斷電源狀態或狀況停止為止。在某些實施方案中,方法600可作為一個多緒程序在一或多個處理器上執行。舉例而言,可同時執行針對多個任務之移動規劃。
前述詳細說明已經由使用方塊圖、示意圖及實例陳述裝置及/或程序之各項實施例。只要此等方塊圖、示意圖及實例含有一或多個功能及/或操作,熟習此項技術者便將理解,可藉由一寬廣範圍之硬體、軟體、韌體或幾乎其任何組合來個別地及/或共同地實施此等方塊圖、流程圖或實例內之每一功能及/或操作。在一項實施例中,可經由布林電路、特殊應用積體電路(ASIC)及/或FPGA實施本發明標的物。然而,熟習此項技術者將認識到,本文中所揭示之實施例可在各種不同實施方案中作為在一或多個電腦上運行之一或多個電腦程式(例如 ,作為在一或多個電腦系統上運行之一或多個程式)、作為在一或多個控制器(例如 ,微控制器)上運行之一或多個程式、作為在一或多個處理器(例如 ,微處理器)上運行之一或多個程式、作為韌體或作為幾乎其任何組合而全部或部分地實施於標準積體電中,且鑒於本發明,針對軟體及/或韌體設計電路及/或撰寫程式碼將恰好在熟習此項技術者之技能範圍內。
熟習此項技術者將認識到,本文中陳述之方法或演算法中之諸多方法或演算法可採用額外行為,可省略某些行為,及/或可以不同於所規定之一次序執行行為。
另外,熟習此項技術者將瞭解,本文中所教示之機制能夠在硬體中(舉例而言,在一或多個FPGA或ASIC中)實施。
可組合上文所闡述之各個實施例以提供額外實施例。本說明書中所提及及/或申請資料表中所列出之所有共同受讓之美國專利申請公開案、美國專利申請案、外國專利及外國專利申請案以其全文引用方式併入本文中,包含但不限於:2017年6月9日提出申請之標題為「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」之第PCT/US2017/036880號國際專利申請案;2016年1月5日提出申請之標題為「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」之第WO 2016/122840號國際專利申請公開案;2018年1月12日提出申請之標題為「APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS」之第62/616,783號美國專利申請案;2018年2月6日提出申請之標題為「MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MORE PROCESSORS AND IMPROVED OPERATION OF SAME」之第62/626,939號美國專利申請案;2019年6月3日提出申請之標題為「APPARATUS, METHODS AND ARTICLES TO FACILITATE MOTION PLANNING IN ENVIRONMENTS HAVING DYNAMIC OBSTACLES」之第62/856,548號美國專利申請案;及2019年6月24日提出申請之標題為「MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE」之第62/865,431號美國專利申請案。鑒於上文詳述之說明可對該等實施例作出此等及其他改變。一般而言,在以下申請專利範圍中,所用術語不應理解為將申請專利範圍限於說明書及申請專利範圍中所揭示之特定實施例,而應理解為包含所有可能實施例以及此申請專利範圍所賦予之等效物之全部範疇。因此,申請專利範圍並不受本發明限制。
100:機械系統 102a:機械手臂 102b:機械手臂 102c:機械手臂 104:共用工作空間/工作空間 106:傳送帶 108:工作物項/工件 109a:機械手臂控制系統 109b:機械手臂控制系統 109c:機械手臂控制系統 110a:移動規劃器 110b:移動規劃器 110c:移動規劃器 112a:幾何模型 112b:幾何模型 112c:幾何模型 114a:任務訊息 114b:任務訊息 114c:任務訊息 116a:移動規劃/移動表示 116b:移動規劃/移動表示 116c:移動規劃/移動表示 118a:靜態物件資料 118b:靜態物件資料 118c:靜態物件資料 120:感知資料 122a:相機 122b:相機 124:感知子系統 126:非專屬網路基礎結構 200a:系統/第一機械手臂控制系統/機械手臂控制系統 200b:機械手臂控制系統 202:機械手臂 204a:第一移動規劃器/移動規劃器 204b:移動規劃器 206a:第一移動規劃/移動規劃 206b:移動規劃 208:移動規劃曲線圖 209:移動已完成訊息 210:網路 211:掃掠體積表示/掃掠體積 212:源/移動規劃曲線圖源 214:節點 215:任務規範 216:邊緣 218a:致動器 218b:致動器 218c:致動器 220:移動控制器 222:處理器 224a:系統記憶體/非暫時性電腦或處理器可讀儲存媒體/非暫時性儲存媒體 224b:磁碟機/非暫時性電腦或處理器可讀儲存媒體/非暫時性儲存媒體 226:唯讀記憶體/系統匯流排 227:網路介面 228:隨機存取記憶體 230:FLASH記憶體 232:基本輸入/輸出系統 236:作業系統 238:應用程式 240:程式或模組 242:程式資料 250:移動轉換器 252:碰撞偵測器 254:成本設定器 256:路徑分析器 258:場可程式化閘陣列 260:刪減器 262:感測器 263:環境轉換器 300:移動規劃曲線圖/規劃曲線圖 308a至308i:節點 310a至310h:邊緣 312:路徑 314:曲線圖部分 400:操作方法/方法 402:步驟 404:步驟 406:步驟 408:步驟 500:操作方法/方法 502:步驟 504:步驟 506:步驟 508:步驟 510:步驟 512:步驟 514:步驟 516:步驟 518:步驟 520:步驟 522:步驟 524:步驟 526:步驟 532:步驟 534:步驟 536:步驟 538:步驟 540:步驟 542:步驟 544:步驟 546:步驟 548:步驟 600:操作方法/方法 602:步驟 604:步驟 606:步驟 608:步驟 610:步驟 612:步驟 614:步驟 616:步驟 618:步驟
在各圖式中,相同元件符號識別類似元件或行為。圖式中之元件之大小及相對位置未必係按比例繪製。舉例而言,各種元件之形狀及角度未按比例繪製,且此等元件中之某些元件經任意放大及定位以改良圖式易讀性。此外,如所繪製之元件之特定形狀並不意欲傳達關於特定元件之實際形狀之任何資訊,且僅出於在圖式中易於辨識之目的而選擇。 圖1係根據一項所圖解說明實施方案之一機械系統之一示意圖,該機械系統包含在一共用工作空間中操作以實施任務之複數個機械手臂,且包含針對該等機械手臂動態地產生考量該等機械手臂中之其他者之所規劃移動之移動規劃的移動規劃器,且視情況包含一感知子系統。 圖2係根據一項所圖解說明實施方案之在其中經由一機械手臂控制系統控制一第一機械手臂之一環境之一功能方塊圖,該機械手臂控制系統包含一移動規劃器,將移動規劃提供給其他機械手臂之其他移動規劃器,且進一步包含與該等移動規劃器分開且不同之一規劃曲線圖源。 圖3係根據一項所圖解說明實施方案之在一共用工作空間中操作之一機械手臂之一C空間之一實例性移動規劃曲線圖。 圖4係根據至少一個所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃曲線圖及掃掠體積之一操作方法之一流程圖。 圖5A及圖5B係根據一項所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃且視情況控制在一共用工作空間中操作之複數個機械手臂之一操作方法之一流程圖。 圖6係根據至少一個所圖解說明實施方案展示在一基於處理器之系統中用以產生移動規劃且視情況控制在一共用工作空間中操作之複數個機械手臂之一操作方法之一流程圖。
100:機械系統
102a:機械手臂
102b:機械手臂
102c:機械手臂
104:共用工作空間/工作空間
106:傳送帶
108:工作物項/工件
109a:機械手臂控制系統
109b:機械手臂控制系統
109c:機械手臂控制系統
110a:移動規劃器
110b:移動規劃器
110c:移動規劃器
112a:幾何模型
112b:幾何模型
112c:幾何模型
114a:任務訊息
114b:任務訊息
114c:任務訊息
116a:移動規劃/移動表示
116b:移動規劃/移動表示
116c:移動規劃/移動表示
118a:靜態物件資料
118b:靜態物件資料
118c:靜態物件資料
120:感知資料
122a:相機
122b:相機
124:感知子系統
126:非專屬網路基礎結構

Claims (36)

  1. 一種控制複數個機械手臂在其中該等機械手臂之一移動範圍重疊之一共同工作空間中操作之方法,該方法包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第一移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第一移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  2. 如請求項1之方法,其進一步包括: 回應於由該機械手臂R1 完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R1 完成之該至少一個移動對應之部分。
  3. 如請求項1之方法,其進一步包括: 回應於由該機械手臂R2 至該機械手臂Rn 中之任何一或多者完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R2 至該機械手臂Rn 中之一各別者完成之該至少一個移動對應之部分。
  4. 如請求項1之方法,其進一步包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  5. 如請求項4之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第一移動規劃自i等於1至i等於n接連地發生。
  6. 如請求項5之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n接連地發生。
  7. 如請求項5之方法,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n未接連地發生。
  8. 如請求項4之方法,其中至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作包含提供致使一個機械手臂Ri 在該機械手臂R1 之前移動之信號,且該方法進一步包括: 回應於由該機械手臂Ri 完成至少一個移動,在執行針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃之前更新障礙之一表示以消除與由該機械手臂Ri 完成之該至少一個移動對應之部分。
  9. 如請求項1之方法,其進一步包括: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對兩個或更多個機械手臂Ri 中之某些而非所有機械手臂,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於3之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;及 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且該方法進一步包括: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  10. 如請求項9之方法,其中跳過該針對該機械手臂R2 至該機械手臂Rn 中之一者產生一第二移動規劃。
  11. 如請求項9之方法,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者被該機械手臂R2 至該機械手臂Rn 中之另一者阻擋而不能移動而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
  12. 如請求項9之方法,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者具有指示已發生一錯誤狀況之一錯誤狀態而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
  13. 如請求項1之方法,其中將至少該機械手臂R1 之若干個移動表示為至少一個障礙包含:針對至少一個機械手臂Ri+1 ,在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之移動表示為障礙。
  14. 如請求項13之方法,其中在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙包含:使用先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在該機械手臂R1 至該機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
  15. 如請求項13之方法,其進一步包括: 接收先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在機械手臂R1 至機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
  16. 如請求項13之方法,其中在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙包含將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為以下各項中之至少一者:一佔據網格、一階層樹或一歐幾里德距離場。
  17. 如請求項1之方法,其中將至少該機械手臂R1 之該等移動中之每一者表示為至少一個障礙包含使用一各別掃掠體積來表示各別移動,該掃掠體積對應於在該各別移動期間由至少該機械手臂R1 之至少一部分掃掠之一體積,且其中相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測包含使用先前在一運行時間前計算之一掃掠體積之一表示執行碰撞偵測,該掃掠體積表示在該機械手臂Ri 之至少一部分沿著由該各別移動表示之一軌跡移動時由該機械手臂Ri 之該部分掃掠之一各別體積。
  18. 如請求項1之方法,其進一步包括: 針對該複數個機械手臂中之機械手臂R1 至該機械手臂Rn 中之每一者,經由一各別移動規劃曲線圖表示各別機械手臂,每一移動規劃曲線圖包括複數個節點及邊緣,該等節點表示該各別機械手臂之各別狀態且該等邊緣表示由邊緣所連接之一各別對節點中之各別者表示之各別狀態之間的有效轉變。
  19. 一種用以控制複數個機械手臂在其中該等機械手臂之一移動範圍重疊之一共同工作空間中操作之系統,該系統包括: 至少一個處理器;及 至少一個非暫時性儲存媒體,其以通信方式耦合至該至少一個處理器且儲存在由該至少一個處理器執行時致使該至少一個處理器進行以下操作之處理器可執行指令: 針對該複數個機械手臂中之一機械手臂R1 產生一第一移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;且 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第一移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  20. 如請求項19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 回應於由該機械手臂R1 完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R1 完成之該至少一個移動對應之部分。
  21. 如請求項19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 回應於由該機械手臂R2 至該機械手臂Rn 中之任何一或多者完成至少一個移動,更新障礙之一表示以消除與由該機械手臂R2 至該機械手臂Rn 中之一各別者完成之該至少一個移動對應之部分。
  22. 如請求項19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對至少一個機械手臂Ri 中之每一者,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於2之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;且 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  23. 如請求項22之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第一移動規劃自i等於1至i等於n接連地發生。
  24. 如請求項23之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n接連地發生。
  25. 如請求項23之系統,其中該針對該機械手臂R1 至該機械手臂Rn 產生一第二移動規劃自i等於1至i等於n未接連地發生。
  26. 如請求項22之系統,其中為了至少部分地基於該複數個機械手臂中之對應者之各別第一移動規劃而控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器提供致使一個機械手臂Ri 在該機械手臂R1 之前移動之信號,且進一步: 回應於由該機械手臂Ri 完成至少一個移動,在針對該複數個機械手臂中之該機械手臂R1 產生該第二移動規劃之前更新障礙之一表示以消除與由該機械手臂Ri 完成之該至少一個移動對應之部分。
  27. 如請求項19之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 針對該複數個機械手臂中之一機械手臂R1 產生一第二移動規劃; 針對兩個或更多個機械手臂Ri 中之某些而非所有機械手臂,自i等於2至i等於n,其中n係該複數個機械手臂中之該等機械手臂之一總數且n係等於或大於3之一整數, 將至少該機械手臂R1 之若干個移動表示為至少一個障礙; 相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測;且 至少部分地基於對該機械手臂Ri 之至少該部分之該至少一個移動之該碰撞偵測而針對該機械手臂Ri 產生一第二移動規劃;且進一步: 至少部分地基於該複數個機械手臂中之對應者之各別第二移動規劃而提供信號來控制該機械手臂R1 至該機械手臂Rn 中之至少一者之操作。
  28. 如請求項27之系統,其中跳過針對該機械手臂R2 至該機械手臂Rn 中之一者產生一第二移動規劃。
  29. 如請求項27之系統,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者被該機械手臂R2 至該機械手臂Rn 中之另一者阻擋而不能移動而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
  30. 如請求項27之系統,其中回應於該機械手臂R2 至該機械手臂Rn 中之一者具有指示已發生一錯誤狀況之一錯誤狀態而跳過該針對該機械手臂R2 至該機械手臂Rn 中之一各別者產生一第二移動規劃。
  31. 如請求項19之系統,其中為了將至少該機械手臂R1 之若干個移動表示為至少一個障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:針對至少一個機械手臂Ri+1 ,在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將該機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙。
  32. 如請求項31之系統,其中為了將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示作為障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:使用先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在該機械手臂R1 至該機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
  33. 如請求項31之系統,其中在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器進一步: 接收先前在一運行時間前計算之一組掃掠體積,該等掃掠體積中之每一者表示在機械手臂R1 至機械手臂Ri 中之各別者之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂R1 至該機械手臂Ri 中之該各別者之該部分掃掠之一各別體積。
  34. 如請求項31之系統,其中為了在對該機械手臂Ri+1 之該至少一個移動執行該碰撞偵測之前將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器將機械手臂R1 至該機械手臂Ri 中之兩者或更多者之該移動表示為以下各項中之至少一者:一佔據網格、一階層樹或一歐幾里德距離場。
  35. 如請求項19之系統,其中為了將至少該機械手臂R1 之該等移動中之每一者表示為至少一個障礙,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器:使用一各別掃掠體積來表示各別移動,該等掃掠體積對應於在該各別移動期間由至少該機械手臂R1 之至少一部分掃掠之一體積,且其中為了相對於該至少一個障礙之該表示對該機械手臂Ri 之至少一部分之至少一個移動執行碰撞偵測,在由該至少一個處理器執行時,該等處理器可執行指令致使該至少一個處理器至少部分地基於先前在一運行時間前計算之一掃掠體積之一表示而執行碰撞偵測,該掃掠體積表示在該機械手臂Ri 之至少一部分沿著由各別移動表示之一軌跡移動時由該機械手臂Ri 之該部分掃掠之一各別體積。
  36. 如請求項19之系統,其中針對該複數個機械手臂中之機械手臂R1 至該機械手臂Rn 中之每一者,經由一各別移動規劃曲線圖表示各別機械手臂,每一移動規劃曲線圖包括複數個節點及邊緣,該等節點表示該各別機械手臂之各別狀態且該等邊緣表示由邊緣所連接之一各別對節點中之各別者表示之各別狀態之間的有效轉變。
TW109120779A 2019-06-24 2020-06-19 用於多個機械手臂於共用工作空間中之移動規劃 TW202107232A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962865431P 2019-06-24 2019-06-24
US62/865,431 2019-06-24

Publications (1)

Publication Number Publication Date
TW202107232A true TW202107232A (zh) 2021-02-16

Family

ID=74039067

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109120779A TW202107232A (zh) 2019-06-24 2020-06-19 用於多個機械手臂於共用工作空間中之移動規劃

Country Status (6)

Country Link
US (1) US20200398428A1 (zh)
EP (1) EP3969233A4 (zh)
JP (1) JP7332199B2 (zh)
CN (1) CN114269525B (zh)
TW (1) TW202107232A (zh)
WO (1) WO2020263861A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220289501A1 (en) * 2021-03-15 2022-09-15 Dexterity, Inc. Singulation of arbitrary mixed items
US11752636B2 (en) 2019-10-25 2023-09-12 Dexterity, Inc. Singulation of arbitrary mixed items

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11890758B2 (en) * 2019-08-30 2024-02-06 Intrinsic Innovation Llc Robot planning from process definition graph
US11724387B2 (en) * 2020-04-03 2023-08-15 Fanuc Corporation Fast robot motion optimization with distance field
CN111846726B (zh) * 2020-07-30 2022-04-19 重庆惠科金渝光电科技有限公司 一种运输设备的搬运方法和运输设备
GB2607699B (en) * 2021-04-14 2023-11-08 Bae Systems Plc Robotic cells
EP4074471A1 (en) * 2021-04-14 2022-10-19 BAE SYSTEMS plc Robotic cells
US20230063370A1 (en) * 2021-08-30 2023-03-02 Rapyuta Robotics Co., Ltd. Multi-robot route planning
CN114019912B (zh) * 2021-10-15 2024-02-27 上海电机学院 一种群体机器人运动规划控制方法及系统
US20230147624A1 (en) * 2021-11-11 2023-05-11 Rapyuta Robotics Co., Ltd. Autonomous mobile robots for coverage path planning
TW202406697A (zh) * 2022-04-06 2024-02-16 美商即時機器人股份有限公司 採用前瞻規劃之共享工作空間中機器人的運動規劃和控制
WO2024011062A1 (en) * 2022-07-05 2024-01-11 Realtime Robotics, Inc. Robust motion planning and/or control for multi-robot environments

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10065317B2 (en) * 2016-06-30 2018-09-04 General Electric Company Control system for coordinating robotic machines to collaborate on tasks
US9144904B2 (en) * 2008-05-21 2015-09-29 Fanuc Robotics America Corporation Method and system for automatically preventing deadlock in multi-robot systems
US8315738B2 (en) * 2008-05-21 2012-11-20 Fanuc Robotics America, Inc. Multi-arm robot system interference check via three dimensional automatic zones
KR101105325B1 (ko) * 2009-09-08 2012-01-16 부산대학교 산학협력단 실제 로봇의 다중 경로계획 방법
US8386080B2 (en) * 2009-09-15 2013-02-26 Harris Corporation Robotic apparatus implementing collision avoidance scheme and associated methods
US20160121487A1 (en) * 2014-11-03 2016-05-05 Qualcomm Incorporated Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior
WO2016122840A1 (en) * 2015-01-26 2016-08-04 Duke University Specialized robot motion planning hardware and methods of making and using same
US10766139B2 (en) * 2015-02-13 2020-09-08 Abb Schweiz Ag Method for avoiding collisions between two robots
KR101748632B1 (ko) * 2015-10-29 2017-06-20 한국과학기술연구원 로봇의 구동 경로를 계획하기 위한 로봇 제어 시스템 및 로봇 구동 경로 계획방법
JP6576255B2 (ja) * 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
US10296012B2 (en) * 2016-12-21 2019-05-21 X Development Llc Pre-computation of kinematically feasible roadmaps
JP6705976B2 (ja) * 2017-05-11 2020-06-03 株式会社安川電機 ロボット、ロボットの制御方法、ワークの製造方法
CN108942920A (zh) * 2018-05-30 2018-12-07 北京极智嘉科技有限公司 一种加工食品的拣选系统和方法
CN108789416B (zh) * 2018-07-27 2023-12-19 中国科学院自动化研究所 用于控制双机械臂柔性带电作业的系统及方法
TWI699636B (zh) * 2019-05-21 2020-07-21 華邦電子股份有限公司 協同型機器人控制系統和方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11752636B2 (en) 2019-10-25 2023-09-12 Dexterity, Inc. Singulation of arbitrary mixed items
US11780096B2 (en) 2019-10-25 2023-10-10 Dexterity, Inc. Coordinating multiple robots to meet workflow and avoid conflict
US20220289501A1 (en) * 2021-03-15 2022-09-15 Dexterity, Inc. Singulation of arbitrary mixed items

Also Published As

Publication number Publication date
EP3969233A4 (en) 2022-08-17
US20200398428A1 (en) 2020-12-24
WO2020263861A1 (en) 2020-12-30
CN114269525B (zh) 2024-03-26
EP3969233A1 (en) 2022-03-23
CN114269525A (zh) 2022-04-01
JP7332199B2 (ja) 2023-08-23
JP2022539324A (ja) 2022-09-08

Similar Documents

Publication Publication Date Title
TW202107232A (zh) 用於多個機械手臂於共用工作空間中之移動規劃
JP7141665B2 (ja) ロボットの動作計画に役立つ衝突検出
JP7489727B2 (ja) マルチロボット運用環境におけるロボットの構成
US11465279B2 (en) Robot base position planning
US20240091944A1 (en) Safety systems and methods employed in robot operations
US20240009845A1 (en) Systems, methods, and user interfaces employing clearance determinations in robot motion planning and control
US10933526B2 (en) Method and robotic system for manipulating instruments
EP4096875A1 (en) Digital representations of robot operational environment, useful in motion planning for robots
US20230342967A1 (en) Configuration of robot operational environment including layout of sensors
US20220339788A1 (en) Method and system for positioning sensors within a workspace
US20230286156A1 (en) Motion planning and control for robots in shared workspace employing staging poses
WO2023196240A1 (en) Motion planning and control for robots in shared workspace employing look ahead planning
US20240208060A1 (en) Digital representations of robot operational environment, useful in motion planning for robots
US20230182293A1 (en) Systems and methods for grasp planning for a robotic manipulator
TW202415506A (zh) 穩健運動規劃及/或用於多機器人環境之控制
US20240208058A1 (en) Methods and apparatus for automated ceiling detection
WO2024011062A1 (en) Robust motion planning and/or control for multi-robot environments