TW202406697A - 採用前瞻規劃之共享工作空間中機器人的運動規劃和控制 - Google Patents

採用前瞻規劃之共享工作空間中機器人的運動規劃和控制 Download PDF

Info

Publication number
TW202406697A
TW202406697A TW112111455A TW112111455A TW202406697A TW 202406697 A TW202406697 A TW 202406697A TW 112111455 A TW112111455 A TW 112111455A TW 112111455 A TW112111455 A TW 112111455A TW 202406697 A TW202406697 A TW 202406697A
Authority
TW
Taiwan
Prior art keywords
robot
processor
motion plan
motion
collision
Prior art date
Application number
TW112111455A
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 TW202406697A publication Critical patent/TW202406697A/zh

Links

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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • 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
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39135For multiple manipulators operating at same time, avoid collision

Landscapes

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

Abstract

本文中描述之結構及演算法採用前瞻運動規劃,其中在一機器人執行所得運動規劃之前執行至少兩個目標的運動規劃,且評估在該等運動規劃之前一者與該等運動規劃之一後續(例如,後一)者之間轉變的能力。因此,系統可判定一機器人是否將在一第一運動規劃結束時被困住(例如,被另一機器人阻擋),從而阻止、限制或延遲一第二運動規劃的執行。此一狀況之偵測可引起可採取一或多個補救行動,例如產生一新的、經修訂或替換的第一運動規劃。其他補救行動可移動另一機器人,執行該另一機器人之運動規劃以緩解一阻擋狀況,及/或判定該等目標之一新順序。

Description

採用前瞻規劃之共享工作空間中機器人的運動規劃和控制
本發明大體上係關於機器人運動規劃及機器人之控制,且特定言之,係關於經由處理器電路系統執行碰撞偵測以產生運動規劃以在共享工作空間中有效地驅動機器人及類似者之系統及方法。
相關技術之描述
運動規劃係機器人控制及機器人學之一基本問題。一運動規劃指定一機器人可依循以自一起始狀態或當前狀態轉變至一目標狀態,通常以完成一任務而不與一操作環境中之任何障礙物碰撞或具有與操作環境中之任何障礙物碰撞之一減小概率之一路徑。運動規劃之挑戰涉及即使在環境之特性改變時仍以非常快的速度執行運動規劃之能力。例如,一或多個特性(諸如環境中之一或多個障礙物之定位及/或定向)可在(若干)機器人之一運行時間期間隨著時間改變。挑戰亦包含產生容許機器人針對相對於完成(若干)任務之一持續時間及/或相對於完成(若干)任務花費之能量之例項有效地完成任務之運動規劃。挑戰進一步包含使用相對低成本設備,以相對低能量消耗且用有限量之儲存器(例如,記憶體電路,例如在處理器晶片電路系統上)執行運動規劃。
機器人學中之一個問題係在一共享工作空間(工作空間通常被稱為工作單元或環境)中操作兩個或更多個機器人,例如其中機器人或機器人之機器人附肢可在任務之執行期間彼此干擾。
在一共同工作空間中操作多個機器人之一個方法可被稱為一任務級方法。任務級方法可採用教示及重複訓練。一工程師可藉由定義工作空間之共享部分且程式化個別機器人,使得在任何給定時間點,僅一個機器人在一共享工作空間中而確保機器人無碰撞。例如,當一第一機器人開始移動至一工作空間中時,第一機器人設定一旗標。一控制器(例如,微處理器、微控制器、經程式化邏輯控制器(PLC))讀取旗標且防止其他機器人移動至共享工作空間中,直至第一機器人在離開工作空間時撤銷確立旗標。此方法係直觀,易於理解、實施且故障排除的。然而,此方法必然具有低工作處理能力,此係因為使用任務級消除衝突通常導致至少一個機器人閒置達大部分時間,即使閒置機器人在共享工作空間中執行有用工作將係技術上可行的。
在一共同工作空間中操作多個機器人之另一方法(例如,在運行時間之前之一組態時間期間)採用離線規劃,以便達成比在前述基於任務級消除衝突之方法中更高之工作處理能力。為此,一系統可嘗試解決在全部機器人或機器人附肢之一組合關節空間中之一規劃問題。例如,若兩個6自由度(DOF)附肢在一工作空間中,則必須解決一12 DOF規劃問題。雖然此方法容許更高效能,但規劃可極耗時。12 DOF問題對於習知運動規劃演算法顯得太大而無法使用當前可用架構解決。
一個策略係解決此等問題以最佳化一第一機器人/機器人附肢之運動,且接著手動最佳化一第二機器人/機器人附肢之運動。此可採用反覆模擬運動以確保機器人/機器人附肢不彼此碰撞,此可耗費數小時之運算時間。另外,若對工作空間之一修改導致機器人/機器人附肢之一者之一軌跡之一改變,則必須重新驗證整個工作流程。
執行運動規劃以判定或產生可藉由一給定機器人執行以執行一或多個任務之運動規劃。運動規劃可指定使給定機器人轉變遍歷以達成一目標例如以執行一任務或作為執行一任務之部分之一組姿勢。例如,各姿勢可由一組關節角度指定,該組關節角度定義機器人之一或多個部分(例如,一附肢之連桿、末端執行器或臂端工具)之一實體組態且可映射至真實世界空間。例如,一運動規劃可指定將給定機器人之至少一部分(例如,末端執行器或臂端工具)定位於一目標處以執行(perform或execute)一經指派任務之一姿勢。一給定機器人之運動規劃可考量在一共享工作空間中操作之一或多個其他機器人之一位置、軌跡及/或預期軌跡。
本文中描述之結構及演算法採用前瞻運動規劃,其中在一機器人執行所得運動規劃之前執行對至少兩個連續目標之運動規劃,且評估在該等運動規劃之前一者與該等運動規劃之一後續(例如,後一或下一)者之間轉變之能力。因此,系統可判定一機器人是否將在一第一運動規劃之執行結束時被困住(例如,被另一機器人阻擋)或甚至鎖死,從而阻止、限制或延遲一第二運動規劃之執行。回應於此一狀況之偵測,本文中描述之結構及演算法可引起採取一或多個補救行動,例如,產生一新、經修訂或替換第一運動規劃。其他補救行動可包含移動另一機器人及/或執行另一機器人之運動規劃以緩解一阻擋或潛在阻擋狀況及/或判定一組目標之一新順序,該組目標包含第一目標及至少第二目標。
本文中描述之結構及演算法可有利地執行運動規劃以:i)判定一第一運動規劃以將一給定機器人自一個姿勢移動至一第一結束姿勢,該第一結束姿勢將第一機器人之至少一部分定位於一第一目標處;且ii)判定至少一第二運動規劃以將給定機器人自第一結束姿勢移動至一第二結束姿勢,在引起第一機器人例如根據第一運動規劃或一經修訂第一運動規劃移動之前判定第二運動規劃。例如,此可容許在一給定機器人執行運動規劃之前執行兩個或更多個目標之運動規劃。例如,此可容許系統考量各自目標之一或多個後續運動規劃如何影響一或多個先前運動規劃(例如,後續運動規劃係下一運動規劃,亦即,將最緊接在先前運動規劃之執行之後執行之一運動規劃)。可回應於另一機器人(例如,一第二機器人)將阻擋或可能將阻擋給定機器人(例如,一第一機器人)之一移動之一判定而採取各種補救行動。例如,在一第一運動規劃之執行將引起給定機器人處於致使其不可能或難以執行後續運動規劃或甚至延遲後續運動規劃之執行(例如,被困住、被鎖死、被阻擋或可能被另一機器人阻擋)之情況下,可採取一或多個補救行動。
例如,補救行動可包含產生用以轉變至第一目標之一新或經修訂或替換運動規劃但其中第一機器人處於不同於先前產生之第一運動規劃之結束姿勢之一結束姿勢。例如,新或經修訂或替換運動規劃可導致在第一目標處之更佳組態或定向給定機器人以達成一下一或後續目標(例如,第二目標)之一姿勢。例如,新或經修訂或替換運動規劃可導致在第一目標處之改良藉由給定機器人執行下一運動規劃以達成一下一或後續目標之一能力或可能性之一姿勢。例如,新或經修訂或替換運動規劃可導致在第一目標處之容許由新或經修訂或替換運動第一運動規劃指定之移動至由下一運動規劃指定之移動之間之轉變之一姿勢。
例如,一補救行動可包含引起正在阻擋或可能阻擋給定機器人之另一機器人移動以便在執行下一或後續運動規劃時不阻擋或不再阻擋給定機器人之一軌跡。
例如,一補救行動可包含產生另一機器人之一運動或經修訂運動規劃,該運動或經修訂運動規劃指定該另一機器人之一軌跡,該軌跡在給定機器人沿著由其運動規劃指定之一軌跡移動時不會阻擋或可能不會阻擋給定機器人或以其他方式減小在給定機器人與其他機器人之間發生之一碰撞之概率。
例如,一補救行動可包含判定或產生一組目標之一新順序,該組目標包含第一目標及至少第二目標。
本文中描述之各種技術可有利地促進在一共享工作空間或工作單元中操作之兩個或更多個機器人之操作,從而防止或至少減小機器人或機器人之機器人附肢將彼此碰撞之風險同時操作以使一或多個機器人分別有效地移動至一或多個目標以在共享工作空間中執行各自任務。
本文中描述之結構及演算法實現高自由度機器人以避免碰撞且在一改變之共享環境中繼續有效地工作。一有效規劃方法可在具有或不具有硬體加速之情況下被加速以在毫秒內產生無碰撞運動規劃。超快「即時」運動規劃容許機器人路徑在任務執行期間之運行時間被決定,而無需訓練或時間密集之路徑最佳化。此可有利地容許以一有效方式協調一共享工作空間中之多個機器人。
在至少一些實施方案中,本文中描述之結構及演算法可導致由多個機器人共享之一工作空間中之一機器人之有效、無碰撞機器人移動。即使在以高速操作時,仍可針對機器人之全部部分(例如,基底、機器人附肢、臂端工具、末端執行器)產生無碰撞運動。
本文中描述之結構及演算法可藉由(例如)在一或多個機器人之一運行時間期間執行自主規劃而有利地減少多機器人工作空間之程式化工作量。在至少一些實施方案中,操作者不需要程式化任何安全區、時間同步或關節空間軌跡。輸入可受限於待執行之(若干)任務或目標姿勢或目標之一描述及機器人之運動學模型。輸入可另外包含固定物件或視情況具有不可測軌跡之物件(例如,人)之表示。
本文中描述之結構及演算法可有利地動態地執行運動規劃,包含考量下一目標之一運動規劃對前一目標之運動規劃之影響,且若有必要則採取補救行動以有效地移動機器人遍歷各種姿勢以達成後續目標以便執行一或多個任務而無碰撞概率或具有一低碰撞概率。
在至少一些實施方案中,本文中描述之結構及演算法可容許機器人(例如)經由一非專屬通信頻道(例如,乙太網路連接)共享資訊,此可有利地促進一共享工作空間中之機器人之整合,甚至來自不同製造商之機器人。
在至少一些實施方案中,本文中描述之結構及演算法可在不使用相機或其他感知感測器之情況下操作。在至少一些實施方案中,機器人之間之座標依賴於機器人之運動學模型、機器人傳達其等各自運動規劃之能力及一共享工作空間之幾何模型。在其他實施方案中,可視情況採用虛擬或其他感知(例如)以避開可進入或佔用共享工作空間之部分之人或其他動態障礙物(例如,其他機器人)。
使用廣泛多種演算法以解決運動規劃問題。此等演算法之各者通常需要能夠判定一機器人之一給定姿勢或自一個姿勢至另一姿勢之一運動是否導致與機器人自身或與環境中之障礙物之一碰撞。可使用執行來自一經儲存處理器可執行指令集之處理器可執行指令以執行一演算法之處理器「在軟體中」執行碰撞評估或檢查。可使用一組專屬硬體電路(例如,實施於一場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)中之碰撞檢查電路)「在硬體中」執行碰撞評估或檢查。此等電路可(例如)表示在兩個狀態之間之一各自運動或轉變期間藉由一機器人/機器人附肢或其部分掃掠之體積(即,掃掠體積)。電路可(例如)產生指示一運動是否將與任何障礙物碰撞之一布林(Boolean)估測,其中至少一些障礙物表示在由在共享工作空間中操作之其他機器人執行一運動或轉變時掃掠之體積。
相關申請案之交叉參考
本專利申請案主張2022年4月6日申請之美國專利申請案第63/327,917號的優先權,該案之完整揭示內容藉此為了全部目的係以引用的方式併入本文中。
在以下描述中,闡述某些具體細節以便提供各項所揭示實施例之一透徹理解。然而,熟習相關技術者將認知,可在不具有此等具體細節之一或多者之情況下或使用其他方法、組件、材料等實踐實施例。在其他例項中,未詳細展示或描述與電腦系統、機器人、致動器系統及/或通信網路相關聯之熟知結構以避免不必要地使實施例之描述不清楚。在其他例項中,未詳細描述用於產生一或多個物件及類似者之感知資料及體積表示之熟知電腦視覺方法及技術以避免不必要地使實施例之描述不清楚。
除非背景內容另外需要,否則貫穿說明書及下文之發明申請專利範圍,詞「包括(comprise)」及其變動(諸如「包括(comprises)」及「包括(comprising)」)應在一開放、包含性意義上被解釋為「包含,但不限於」。
貫穿本說明書提及「一個實施方案」或「一實施方案」或「一項實施例」或「一實施例」意謂結合實施例描述之一特定特徵、結構或特性被包含於至少一個實施方案中或至少一個實施方案實施例中。因此,在貫穿本說明書之各種位置中出現之片語「一個實施方案」或「一實施方案」或「在一項實施例中」或「在一實施例中」不一定全部係指同一實施方案或實施例。此外,可在一或多個實施方案或實施例中以任何適合方式組合特定特徵、結構或特性。
如在本說明書及隨附發明申請專利範圍中使用,單數形式「一(a/an)」及「該」包含複數指涉物,除非內容另外清楚指示。亦應注意,術語「或」通常在其包含「及/或」之意義上被採用,除非內容另外清楚指示。
如本說明書及隨附發明申請專利範圍中使用,術語判定、正判定及經判定在用於是否將發生或導致一碰撞之背景內容中時意謂作出關於一給定姿勢或兩個姿勢之間經由數個中間姿勢之移動是否將或可導致一機器人之一部分與某一物件(例如,機器人之另一部分、另一機器人之一部分、一永久性障礙物、一暫現障礙物,例如一人)之間之一碰撞之一評估或預測。
如在本說明書及隨附發明申請專利範圍中使用,術語機器人係指能夠自主或半自主地實行一系列複雜行動之一機器。機器人可採取具有一基底、可移動地耦合至基底之一機器人附肢及由機器人附肢攜載之一末端執行器或臂端器具以及用於驅動其移動之一或多個致動器之一機器人之形式。此等機器人可類似於或可不類似於人類。機器人可替代地或另外採取車輛(例如,自主或半自主車輛)之形式。
如在本說明書及隨附發明申請專利範圍中使用,術語「第一」、「第二」、「第三」等等係以一相對意義而非以一絕對意義使用。因此,術語「第一運動規劃」係指待由一給定機器人在一「第二運動規劃」之前執行之一運動規劃,即使「第一運動規劃」可並非由給定機器人執行之絕對第一運動規劃。同樣地,術語「第一目標」及「第一結束姿勢」係指在下一或後續目標或下一或後續結束姿勢之前(例如分別在一「第二目標」或「第二結束姿勢」之前)發生之一目標或結束姿勢。此外,術語「後續運動規劃」係指由一給定機器人在一「先前運動規劃」之後執行之一運動規劃。當參考一機器人使用時,術語「第一機器人」、「第二機器人」及「第三機器人」僅用於區分在一共享工作空間中操作之兩個或更多個不同機器人,「第一機器人」在各種實例中通常係作為運動規劃之特定例項之物件之機器人。同樣地,術語「給定機器人」用於指代正執行其運動規劃之一機器人(運動規劃之特定例項之物件),而術語「其他機器人」或「若干其他機器人」用於指代共享工作空間中除「給定機器人」之外之機器人。
如在本說明書及隨附發明申請專利範圍中使用,術語「可行路徑」或「若干可行路徑」係指自一開始或當前節點至一目標節點之一路徑或若干路徑,其中該路徑或該等路徑中之節點之各連續對之節點由表示由各自節點表示之兩個組態或姿勢之間之一有效轉變之一各自邊緣耦合。如在本說明書及隨附發明申請專利範圍中使用,術語「適合路徑」或「若干適合路徑」係指滿足一或多個條件或約束(例如具有低於一臨限成本或可接受成本之一相關聯成本或成本函數)之一或多個可行路徑。如在本說明書及隨附發明申請專利範圍中使用,術語「選定路徑」係指已基於一或多個準則自一組可行路徑或一組適合路徑選擇(例如,基於成本或成本函數(例如,低成本或低成本函數)選擇)之一可行路徑。如在本說明書及隨附發明申請專利範圍中使用,術語「最小成本路徑」係指在一組可行路徑中或在一組適合路徑中具有可行路徑之一最小成本之一可行路徑。應注意,一成本或成本函數可表示碰撞之風險或概率、碰撞之一嚴重性、能量及/或一時間之一支出或消耗或與可行路徑相關聯之延時之一評估。
如在本說明書及隨附發明申請專利範圍中使用,術語「被阻擋」或「可能被阻擋」意謂一給定機器人在執行一運動規劃(例如,一後續或第二運動規劃)時被一障礙物(例如,被另一機器人)阻止或至少被延遲或將可能被阻止或將可能至少被延遲。在此等例項中,給定機器人可被困住,即,被阻止或至少延遲執行後續運動規劃直至針對給定機器人產生一新、經修訂或替換運動規劃及/或直至移動障礙物(例如,另一機器人)以便不再阻擋或可能阻擋給定機器人沿著由運動規劃(例如,一後續或第二運動規劃)定義之一軌跡移動。在一些例項中,一給定機器人可甚至被鎖死,無法沿著任何路徑或軌跡自一特定姿勢移動或轉變至少直至移動障礙物(例如,另一機器人)以便不再阻擋或可能阻擋給定機器人。延遲可為任何延遲(例如,在一旦被命令執行一後續或第二運動規劃便執行此運動規劃之能力方面除無延遲之外之任何量之延遲)或延遲可為長於一指定或臨限持續時間之延遲(例如,在一旦被命令執行一後續或第二運動規劃便執行此運動規劃之能力方面之一指定非零量之延遲)之一延遲。
本文中提供之標題及發明摘要僅係為了方便且不解譯實施例之範疇或含義。
圖1展示根據一個經繪示實施方案之包含複數個機器人102a、102b、102c (統稱為機器人102)之一機器人系統100,該複數個機器人102a、102b、102c在一共享工作空間104中操作以採用前瞻運動規劃實行任務以在機器人之一後續軌跡或路徑被或可能將被阻擋(例如,被另一機器人阻擋)時及/或在無法找到一適合且無阻擋後續軌跡或路徑之情況下更佳地定位一機器人。此可以各種方式改良機器人操作,例如,減少完成任務之整體時間,容許完成否則可能未完成之任務,減少整體能量使用,減少碰撞之發生及/或減少運算資源之消耗。
機器人102可採取許多種形式之任一者。通常言之,機器人將採取一或多個機器人附肢之形式或具有一或多個機器人附肢。機器人102可包含具有一或多個關節之一或多個連桿組及經耦合且可操作以回應於控制或驅動信號而移動連桿組之致動器(例如,電動馬達、步進馬達、螺線管、氣動致動器或液壓致動器)。氣動致動器可(例如)包含一或多個活塞、氣缸、閥、貯氣器及/或壓力源(例如,壓縮機、鼓風機)。液壓致動器可(例如)包含一或多個活塞、氣缸、閥、貯液器(例如,低可壓縮性液壓流體)及/或壓力源(例如,壓縮機、鼓風機)。機器人系統100可採用其他形式之機器人102,例如,自主或半自主車輛。
共享工作空間104通常表示其中機器人102a至102c可操作且移動之三維空間,但在某些有限實施方案中,共享工作空間104可表示二維空間。共享工作空間104係其中若運動未被控制以避免碰撞則機器人102之至少部分可在空間及時間上重疊或以其他方式碰撞之一體積或區域。應注意,工作空間104不同於下文(例如)參考圖3A至圖3D描述之機器人102a至102c之一各自「組態空間」或「C空間」。
如本文中解釋,當自另一機器人102b之一觀點考量時(即,當對另一機器人102b運動規劃時),一機器人102a或其部分可構成一障礙物。共享工作空間104可另外包含其他障礙物,例如,機械件(例如,輸送機106)、柱、支柱、牆、天花板、地板、桌、人及/或動物。共享工作空間104可另外包含機器人102作為執行任務之部分操縱之一或多個工作物品或工件108,例如,一或多個包裹、封裝、緊固件、工具、物品或其他物件。
機器人系統100可包含一或多個機器人控制系統109a、109b、109c (展示三個,統稱為機器人控制系統109),該一或多個機器人控制系統109a、109b、109c包含一或多個運動規劃器,例如,分別用於機器人102a、102b、102c之各者之一各自運動規劃器110a、110b、110c (展示三個,統稱為運動規劃器110)。在至少一些實施方案中,可採用一單一運動規劃器110以產生兩個、更多個或全部機器人102之運動規劃。運動規劃器110經通信地耦合以控制機器人102之各自者。運動規劃器110亦經通信地耦合以接收各種類型之輸入,例如包含機器人運動學模型112a、112b、112c (統稱為運動學模型112)及/或任務訊息114a、114b、114c。運動規劃器110視情況通信地耦合(圖1中未繪示)以接收在共享工作空間104中操作之其他機器人102之運動規劃或其他運動表示116a、116b、116c (統稱為116)。機器人運動學模型112 (例如)相對於關節、自由度、尺寸(例如,連桿組之長度)及/或相對於一給定機器人102之各自C空間定義機器人102之一幾何形狀。(如圖2中繪示,機器人運動學模型112至運動規劃圖之轉換可在於機器人之運行時間之前或在由機器人進行任務執行之前發生之一組態時間期間發生,例如藉由與機器人系統100相異且分開之一基於處理器之系統使用各種技術之任一者執行。)任務訊息114a至114c例如相對於目標(例如,目標位置、目標姿勢或結束姿勢、目標組態或目標狀態及/或結束組態或結束狀態)指定待執行之任務。任務之執行亦可涉及轉變或移動遍歷各自機器人102之數個中間姿勢、中間組態或中間狀態。例如,可在機器人之一組態空間(C空間)中(例如)相對於各自機器人102之關節位置及關節角度/旋轉(例如,關節姿勢、關節座標)定義姿勢、組態或狀態。可在一工作空間之真實世界座標(例如,2空間或二維空間或3空間或三維空間)中指定或替代地相對於C空間指定目標位置。術語目標或若干目標通常係指其中一機器人或其部分經定位以執行(perform或execute)一任務且機器人可自其執行(execute或perform)任務之一位置或區或區域。在此方面,應注意,一機器人能夠自其執行一任務之一位置不一定限於空間或區域中之一單一點,而係可涵蓋一相對大體積之空間或區域,且沿著一給定座標系統中之任何給定軸在尺寸上可並非均勻。因而,術語目標、若干目標、目標位置或若干目標位置不一定限於空間中或一區中之一單一點,而可涵蓋一體積、區或區域,例如,一機器人可自其執行一經定義任務之一體積、區或區域。
運動規劃器110視情況經通信地耦合以接收靜態物件資料118a、118b、118c作為輸入。靜態物件資料118a、118b、118c代表可(例如)先驗已知之工作空間104中之靜態物件118 (例如,大小、形狀、位置、佔用空間)。例如,靜態物件118可包含在工作空間中之一或多個固定結構,例如,柱、支柱、牆、天花板、地板、輸送機106。由於機器人102在一共享工作空間中操作,故靜態物件118對於各機器人將通常係相同的。因此,在至少一些實施方案中,供應至運動規劃器110之靜態物件資料118a、118b、118c將係相同的。在其他實施方案中,供應至運動規劃器110之靜態物件資料118a、118b、118c可(例如)基於機器人102在環境中之一位置或定向或機器人102之一環境視角而針對各機器人不同。另外,如上文提及,在一些實施方案中,一單一運動規劃器110可為兩個或更多個機器人102產生運動規劃。
運動規劃器110視情況經通信地耦合以接收(例如)藉由一感知子系統124提供之感知資料120作為輸入。感知資料120代表工作空間104中非先驗已知之靜態及/或動態物件。感知資料120可為如經由一或多個感測器(例如,相機122a、122b)感測及/或如藉由感知子系統124轉換為障礙物之數位表示之原始資料。
選用感知子系統124可包含一或多個處理器,該一或多個處理器可執行引起感知子系統124產生機器人102將在其中操作以執行各種不同情境之任務之一環境之一表示之一各自離散化之一或多個機器可讀指令。
選用感測器(例如,相機122a、122b)將原始感知資訊(例如,點雲)提供至感知子系統124。選用感知子系統124可處理原始感知資訊,且可將所得感知資料作為表示存在於環境中之障礙物之一點雲、一佔用柵格、框(例如,定界框)或其他幾何物件或三維像素串流(即,一「三維像素」係一3D或體積像素之一等效物)提供。障礙物之表示可視情況儲存於晶片上記憶體中。感知資料120可表示在一當前時間(例如,在運行時間期間)在環境中被佔用之三維像素或子體積(例如,框)。在一些實施方案中,當表示環境中之一機器人或另一障礙物時,機器人或一障礙物(例如,包含其他機器人)之各自表面可表示為三維像素或多邊形(通常三角形)之網格。在一些情況中,將物件代替性地表示為框(矩形稜柱、定界框、階層式資料結構,例如,八叉樹或球體樹)或其他幾何物件係有利的。歸因於物件非隨機塑形之事實,可存在如何組織三維像素之大量結構;一物件中之許多三維像素在3D空間中彼此緊鄰。因此,將物件表示為框可需要遠更少位元(即,可僅需要用於框之兩個相對邊角之x, y, z笛卡爾(Cartesian)座標)。又,執行框之相交測試在複雜度上與執行三維像素之相交測試相當。
至少一些實施方案可組合多個感測器之輸出且感測器可提供一非常精細粒度三維像素化。然而,為了使運動規劃器有效地執行運動規劃,可使用較粗糙三維像素(即,「處理器三維像素」)以表示3D空間中由機器人102或其部分在進行各種狀態、組態或姿勢之間之轉變時掃掠之環境及一體積。因此,選用感知子系統124可相應地變換感測器(例如,相機122a、122b)之輸出。在運行時間,若機器人控制系統200判定一處理器三維像素內之任何感測器三維像素被佔用,則機器人控制系統200將處理器三維像素視為被佔用且相應地產生佔用柵格。
在圖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時可視情況考量由靜態物件資料118a、118b、118c表示之一先驗靜態物件118及/或感知資料120之表示。運動規劃器110可有利地考量其他機器人102在一給定時間之一已知或一經預測位置、姿勢及/或運動狀態,例如,另一機器人102是否已完成一給定運動或任務,及容許完成基於其他機器人之一者之一運動或任務之一運動規劃之一重新計算(例如,使一先前經排除路徑或軌跡可供選取)。
如本文中描述,運動規劃器110採用前瞻運動規劃以促進在一共享工作空間或工作單元中操作之兩個或更多個機器人之有效操作,從而防止或至少減少機器人或機器人之機器人附肢將彼此碰撞之風險同時使一或多個機器人分別有效地移動至一或多個目標以在共享工作空間中執行各自任務。例如,運動規劃器110可:識別(例如,選擇、產生)一第一機器人之一第一運動規劃,該第一運動規劃指定用以使第一機器人自一個姿勢轉變至一第一目標及一對應第一結束姿勢之複數個姿勢,該第一結束姿勢將第一機器人之至少一部分定位於第一目標處;且識別(例如,選擇、產生)第一機器人之一第二運動規劃,該第二運動規劃指定用以使第一機器人自第一結束姿勢轉變至一第二目標及一對應第二結束姿勢之複數個姿勢,該第二結束姿勢將第一機器人之至少一部分定位於第二目標處。可在第一機器人執行第一運動規劃之前判定第二運動規劃。運動規劃器110可例如考量第一運動規劃將如何影響第一機器人執行一後續第二運動規劃(例如,第二運動規劃)之能力。例如,運動規劃器110可例如判定一第一運動規劃將使第一機器人放置於不可能或難以自其執行後續運動規劃之一第一結束姿勢中。例如,另一機器人(例如,一第二機器人)可阻擋或可能阻擋第一機器人按照後續運動規劃自第一結束姿勢移動,例如,困住、鎖死或至少延遲第一機器人執行第二運動規劃。一或多個補救行動可起因於此,如本文中別處描述,例如,產生一新或經修訂或替換第一運動規劃以將第一機器人或其之一部分放置於第一目標處但在比第一運動規劃中之第一結束姿勢更佳之一結束姿勢中。此可例如在(若干)機器人之一運行時間期間執行。新或經修訂或替換第一運動規劃可使用各種試探法識別以有效地定位或組態機器人以完成其任務。系統可監控其他機器人且回應於一適合路徑變得無阻擋或被清空或以其他方式被找到而引起機器人移動朝向一目標。
視情況,運動規劃器110可考量機器人102之一操作狀況,例如,一經阻擋軌跡或路徑或經預測之經阻擋軌跡或路徑之一發生或偵測及/或其中無法找到一適合且無阻擋軌跡或路徑之一情境之一發生或偵測。
圖2展示根據一個經繪示實施方案之一環境,其中一第一機器人控制系統200包含一第一運動規劃器204a,該第一運動規劃器204a產生第一運動規劃206a以控制一第一機器人202之操作,且視情況經由至少一個通信頻道(由接近箭頭指示,例如,傳輸器、接收器、收發器、無線電、路由器、乙太網路)將第一運動規劃206a及/或作為障礙物之運動之表示提供至其他機器人控制系統200b之其他運動規劃器204b以控制其他機器人(圖2中未繪示)。
同樣地,其他機器人控制系統200b之其他運動規劃器204b產生其他運動規劃206b以控制其他機器人(圖2中未繪示)之操作,且視情況將其他運動規劃206b提供至第一運動規劃器204a及其他機器人控制系統200b之其他運動規劃器204b之其他者。運動規劃器204a、204b亦可視情況接收指示各種機器人202之運動何時已完成之運動完成訊息209。此可容許運動規劃器204a、204b基於環境之一當前或經更新狀態產生新或經更新運動規劃。例如,在一第一機器人202已完成係待作為藉由第一機器人完成一任務之部分而形成之一組運動之部分或全部之一運動之後,一共享工作空間之一部分可變得無阻擋或以其他方式可供一第二機器人在其中執行一任務。另外或替代地,在一第一機器人202已完成係待作為藉由第一機器人完成一任務之部分而形成之一組運動之部分或全部之一運動之後,運動規劃器204a可接收由各種感測器收集或由其他運動規劃器204b產生之資訊(例如,影像、佔用柵格、關節位置及關節角度/旋轉),該資訊指示一共享工作空間之一部分何時可變得無阻擋或以其他方式可供一第二機器人在其中執行一任務。
(若干)機器人控制系統200可(例如)經由至少一個通信頻道(由接近箭頭指示,例如,傳輸器、接收器、收發器、無線電、路由器、乙太網路)通信地耦合以接收來自運動規劃圖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表示一機器人202或其部分在執行對應於運動規劃圖208之一各自邊緣216之一運動或轉變時將佔用之各自體積。掃掠體積表示211可以多種形式之任一者表示,例如作為三維像素、一歐幾里德(Euclidean)距離場、幾何物件之一階層架構。當回應性非一特定關注點時,此有利地允許在運行時間之前執行一些最運算密集的工作。
各機器人202可視情況包含一基底(圖2中未展示)。基底可在環境中固定或可在其中移動(例如,自主或半自主車輛)。各機器人202可視情況包含一組連桿、關節、臂端工具或末端執行器及/或可操作以繞關節移動連桿之致動器218a、218b、218c (展示三個,統稱為218)。該組連桿、關節、臂端工具或末端執行器通常包括機器人之一或多個附肢,該等機器人附肢可以可移動地耦合至機器人之基底。各機器人202可視情況包含接收(例如)呈運動規劃206a之形式之控制信號且提供驅動信號以驅動致動器218之一或多個運動控制器(例如,馬達控制器) 220 (僅展示一個)。替代地,運動控制器220可與機器人202分開且通信地耦合至機器人202。
可存在用於各機器人202之一各自機器人控制系統200,或替代地,一個機器人控制系統200可執行兩個或更多個機器人202之運動規劃。將為了闡釋性目的詳細描述一個機器人控制系統200。熟習此項技術者將認知,描述可適用於其他機器人控制系統200之類似或甚至相同額外例項。
機器人控制系統200可包括一或多個處理器222及一或多個相關聯非暫時性電腦或處理器可讀儲存媒體(例如,系統記憶體224a、磁碟機224b及/或處理器222之記憶體或暫存器(未展示))。非暫時性電腦或處理器可讀儲存媒體(例如,系統記憶體224a、(若干)驅動機224b)經由一或多個通信頻道(諸如系統匯流排234)通信地耦合至(若干)處理器222。系統匯流排234可採用任何已知匯流排結構或架構,包含具有記憶體控制器之一記憶體匯流排、一周邊匯流排及/或一局部匯流排。一或多個此等組件可亦或代替性地經由一或多個其他通信頻道(例如,一或多個平行電纜、串列電纜或能夠進行高速通信之無線網路頻道(例如,通用串列匯流排(「USB」) 3.0、快速周邊組件互連(PCIe)或經由Thunderbolt®))彼此通信。
機器人控制系統200亦可通信地耦合至一或多個遠端電腦系統(例如,伺服器電腦(例如,運動規劃圖之源212)、桌上型電腦、膝上型電腦、超級行動電腦、平板電腦、智慧型電話、穿戴型電腦及/或感測器(圖2中未繪示)),該一或多個遠端電腦系統直接可通信地耦合至機器人控制系統200之各種組件或(例如)經由一網路介面227間接可通信地耦合至機器人控制系統200之各種組件。遠端運算系統(例如,伺服器電腦(例如,運動規劃圖之源212))可用於程式化、組態、控制或以其他方式介接於或輸入資料(例如,運動規劃圖208、掃掠體積表示211、任務規範215)至機器人控制系統200及機器人控制系統200內之各種組件。此一連接可為透過一或多個通信頻道,例如,一或多個廣域網路(WAN),例如,乙太網路或網際網路,其等使用網際網路協定。如上文提及,預運行時間計算可藉由與機器人控制系統200或機器人202分開之一系統執行,而運行時間計算可藉由機器人控制系統200之(若干)處理器222 (在一些實施方案中,其(等)可內建於機器人202上)執行。
如提及,機器人控制系統200可包含一或多個處理器222 (即,電路系統)、非暫時性儲存媒體(例如,系統記憶體224a、(若干)驅動機224b)及耦合各種系統組件之系統匯流排234。處理器222可為任何邏輯處理單元,諸如一或多個中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)、可程式化邏輯控制器(PLC)等。系統記憶體224a可包含唯讀記憶體(「ROM」) 226、隨機存取記憶體(「RAM」) 228、快閃記憶體230、EEPROM (未展示)。可形成ROM 226之部分之一基本輸入/輸出系統(「BIOS」) 232含有基本常式,該等基本常式幫助諸如在起動期間在機器人控制系統200內之元件之間傳送資訊。
驅動機224b可為(例如)用於自一磁碟讀取且寫入至一磁碟之一硬碟機、用於自固態記憶體讀取且寫入至固態記憶體之一固態硬碟(例如,快閃記憶體驅動機)及/或用於自可抽換式光碟讀取且寫入至可抽換式光碟之一光碟機。在各項不同實施例中,機器人控制系統200亦可包含此等驅動機之任何組合。驅動機224b可經由系統匯流排234與(若干)處理器222通信。(若干)驅動機224b可包含耦合於此等驅動機與系統匯流排234之間之介面或控制器(未展示),如熟習相關技術者已知。驅動機224b及其相關聯電腦可讀媒體提供電腦或處理器可讀及/或可執行指令、資料結構、程式模組及用於機器人控制系統200之其他資料之非揮發性儲存。熟習相關技術者將瞭解,可採用可儲存可由一電腦存取之資料之其他類型之電腦可讀媒體,諸如WORM驅動機、RAID驅動機、磁帶盒、數位視訊光碟(「DVD」)、伯努利盒式磁帶(Bernoulli cartridge)、RAM、ROM、智慧卡等。
可執行指令及資料可儲存於系統記憶體224a中,例如一作業系統236、一或多個應用程式238、其他程式或模組240及程式資料242。應用程式238可包含引起(若干)處理器222執行以下之一或多者之處理器可執行指令:產生機器人202將在其中操作之環境之離散化表示,包含環境中之障礙物及/或目標物件或工件,其中其他機器人之經規劃運動可表示為障礙物;產生運動規劃,包含調用或以其他方式獲得一碰撞評估之結果,設定一運動規劃圖中之邊緣之成本值,且估測運動規劃圖中之可用路徑;識別(例如,選擇、產生)可行路徑及/或運動規劃,視情況儲存經判定之運動規劃及/或提供指令以引起一或多個機器人按照運動規劃移動。運動規劃及運動規劃建構(例如,碰撞偵測或評估,基於碰撞偵測或評估更新運動規劃圖中之邊緣之成本,及路徑搜尋或估測(包含識別可行路徑、評估用於適合路徑之可行路徑)及視情況自可行或適合路徑選擇一選定路徑)可如本文中(例如,參考圖4、圖5、圖6A、圖6B及圖7)及以引用的方式併入本文中之參考中描述般執行。碰撞偵測或評估可使用本文中其他處描述之各種結構及技術執行碰撞偵測或評估。應用程式238亦可包含一或多個機器可讀且機器可執行指令,該一或多個機器可讀且機器可執行指令引起(若干)處理器222監控環境中之機器人以判定一軌跡或路徑(例如,可行路徑)何時變得無阻擋或被清空,且回應於軌跡或路徑變得無阻擋或被清空而引起機器人移動朝向一目標。應用程式238可另外包含引起(若干)處理器222執行其他操作(例如,視情況處置(經由感測器擷取之)感知資料)之一或多個機器可讀且機器可執行指令。應用程式238可另外包含引起(若干)處理器222執行本文中及以引用的方式併入本文中之參考中描述之各種其他方法之一或多個機器可執行指令。
在各項實施例中,上文描述之操作之一或多者可藉由經由網路介面227透過一通信網路(例如,網路210)連結之一或多個遠端處理裝置或電腦執行。
雖然在圖2中被展示為儲存於系統記憶體224a中,但作業系統236、應用程式238、其他程式/模組240及程式資料242可儲存於其他非暫時性電腦或處理器可讀媒體(例如,(若干)驅動機224b)上。
機器人控制系統200之運動規劃器204可包含專屬運動規劃器硬體或可全部或部分經由(若干)處理器222及儲存於系統記憶體224a及/或驅動機224b中之處理器可執行指令實施。
運動規劃器204可包含或實施一運動轉換器250、一碰撞偵測器252、一成本設定器253、路徑尋找器254、一路徑分析器255、一前瞻估測器256及視情況一多路徑分析器257。此等之各者可經由執行邏輯(例如,可執行軟體或韌體指令,或硬接線邏輯)之一或多個處理器(例如,電路系統)實施。運動轉換器250將機器人之其他者之運動轉換為障礙物之表示。運動轉換器250接收來自其他運動規劃器204b之運動規劃206b或運動之其他表示。
運動轉換器250可包含一軌跡預測器251以(例如)在暫現物件之軌跡未知之情況下(例如,在物件係另一機器人但尚未接收到針對該另一機器人之運動規劃之情況下,在物件非另一機器人,例如係一人之情況下)預測暫現物件(例如,其他機器人、其他物件(包含例如人))之軌跡。例如,軌跡預測器251可假定一物件將在方向、速度及加速度上均繼續一現有運動而無改變。例如,軌跡預測器251可考量一物件之一運動或路徑之預期改變,例如,在物件之路徑將導致一碰撞之情況下,因此可預期物件停止或改變方向,或在物件之一目標已知之情況下,因此可預期物件在到達目標之後停止。在至少一些例項中,軌跡預測器251可採用物件之經學習行為模型以預測物件之軌跡。
運動轉換器250接著判定對應於(若干)運動之一面積或體積。例如,運動轉換器可將運動轉換為一對應掃掠體積,亦即,由對應機器人或其部分在如由運動規劃表示之姿勢之間移動或轉變時掃掠之一體積。有利地,運動轉換器250可簡單地將障礙物(例如,掃掠體積)佇列化,且可不需要判定、追蹤或指示對應運動或掃掠體積之一時間。雖然被描述為一給定機器人202之一運動轉換器250將其他機器人202b之運動轉換為障礙物,但在一些實施方案中,其他機器人202b可將一特定運動之障礙物表示(例如,掃掠體積)提供至給定機器人102。
碰撞偵測器252執行碰撞偵測或分析,從而判定一給定機器人202或其部分之一轉變或運動是否將導致與一障礙物之一碰撞。如提及,其他機器人之運動可有利地被表示為障礙物。因此,碰撞偵測器252可判定一個機器人之一運動是否將導致與移動穿過共享工作空間之另一機器人之碰撞。
在一些實施方案中,碰撞偵測器252實施基於軟體之碰撞偵測或評估,例如,執行一定界框-定界框碰撞評估或基於由機器人202、202b或其等部分在移動期間掃掠之體積之幾何(例如,球體)表示之一階層架構進行評估。在一些實施方案中,碰撞偵測器252實施基於硬體之碰撞偵測或評估,例如,採用一組專屬硬體邏輯電路以表示障礙物且透過專屬硬體邏輯電路串流傳輸運動之表示。在基於硬體之碰撞偵測或評估中,碰撞偵測器可採用電路(例如,一或多個FPGA 258)之一或多個可組態陣列且可視情況產生布林碰撞評估。
成本設定器253可至少部分基於碰撞偵測或評估設定或調整一運動規劃圖中之邊緣之一成本。例如,成本設定器253可為表示導致或將可能導致碰撞之狀態之間之轉變或姿勢之間之運動之邊緣設定一相對高成本值。又例如,成本設定器253可為表示不會導致或可能將不會導致碰撞之狀態之間之轉變或姿勢之間之運動之邊緣設定一相對低成本值。設定成本可包含經由某一資料結構(例如,欄位、指標、表)設定與一對應邊緣邏輯上相關聯之一成本值。
路徑識別器254可判定或識別自一開始節點至一目標節點之一或多個可行路徑。例如,路徑識別器254可判定或識別一運動規劃圖中提供自一開始或當前節點至一目標節點之一完整路徑之節點組,即,完整路徑中針對其之各對連續節點在其等之間具有一各自有效轉變之一組節點,如由耦合該對節點之節點之一邊緣之存在性表示。路徑識別器254可使用或執行任何種類之路徑尋找演算法。在一些實施方案中,路徑識別器254可獨立於成本判定或識別可行路徑,從而創建一組可行路徑。在其他例項中,路徑識別器254可在判定或識別可行路徑時考量成本。
選用路徑分析器255可使用具有成本值之運動規劃圖判定或識別一或多個適合路徑及/或選擇一單一路徑(即,選定路徑,例如,一最佳或最佳化路徑)。例如,路徑分析器255可識別滿足一些指定準則(例如,在一臨限上限內之成本)之一或多個路徑或甚至自藉由路徑識別器254判定或識別之可行路徑組選擇一單一路徑(例如,選擇一最低成本路徑)。例如,路徑分析器255可構成判定兩個狀態、組態或姿勢之間之一最低或相對低成本路徑之一最小成本路徑最佳化器,該等狀態、組態或姿勢由運動規劃圖中之各自節點表示。路徑分析器255可使用或執行任何種類之路徑尋找演算法,例如最低成本路徑尋找演算法,此考量與表示碰撞之可能性及/或視情況表示以下之一或多者之各邊緣相關聯之成本值:碰撞之一嚴重性、能量及/或時間之一支出或消耗或執行或完成之延時。
可使用用於判定最小成本路徑之各種演算法及結構(包含實施貝爾曼-福特(Bellman-Ford)演算法之演算法及結構),但可使用其他演算法及結構,包含但不限於其中將最小成本路徑判定為運動規劃圖208中之兩個節點之間之使得其構成邊緣之成本或權重之總和經最小化之路徑之任何此程序。此程序藉由使用將其他機器人之運動表示為障礙物之一運動規劃圖及碰撞偵測以增加找到「最好」路徑以執行一任務而無碰撞之效率及回應時間而改良對一機器人102、202進行運動規劃之技術。
前瞻估測器256可估測將起因於一先前運動規劃(例如,一第一運動規劃)之執行之一結束姿勢(例如,第一結束姿勢)是否將對一後續運動規劃(例如,一第二運動規劃)之執行不利,且若結束姿勢(例如,第一結束姿勢)將係不利的,則引起採取一補救行動。例如,前瞻估測器256可判定一給定機器人對先前運動規劃(例如,第一運動規劃)之執行是否將導致給定機器人被置於將引起給定機器人隨後在執行或嘗試執行一後續運動規劃(例如,第二運動規劃)時被困住或甚至鎖死(例如,例如被另一機器人阻擋或可能被阻擋)之一姿勢(例如,在一第一目標處之一姿勢)。例如,前瞻估測器256可判定一給定機器人對先前運動規劃(例如,第一運動規劃)之執行是否將引起給定機器人隨後在執行或嘗試執行一後續運動規劃(例如,第二運動規劃)時被阻擋或可能以高於某一經定義臨限值之一概率被阻擋(例如,被另一機器人阻擋)。例如,前瞻估測器256可判定一給定機器人對先前運動規劃(例如,第一運動規劃)之執行是否將引起其難以產生一後續運動規劃或具有無碰撞之一可接受概率(例如,等於或高於無碰撞之一經定義概率之概率,或低於經歷一碰撞之一經定義概率之一概率)之一後續運動規劃。例如,前瞻估測器256可判定一給定機器人對先前運動規劃(例如,第一運動規劃)之執行是否將歸因於給定機器人被阻擋或可能被阻擋而無法在第一與後續運動規劃之間轉變而引起一後續運動規劃之執行之一延遲或一不可接受長延遲。例如,前瞻估測器256可比較與兩個或更多個不同運動規劃相關聯之各自延遲,且判定運動規劃之任一者是否可接受(例如,具有低於一經定義延遲臨限值之一相關聯延遲)及/或決定是否應產生額外運動規劃以嘗試找到具有一可接受少量延遲之一運動規劃。
前瞻估測器256可例如回應於一阻擋或可能阻擋狀況之存在性或存在之一判定或若一給定機器人及/或另一機器人沿著一各自軌跡移動則將發生一阻擋或可能阻擋位置之一判定而引起採取一補救行動。在至少一些實施方案中,前瞻估測器256可判定或選擇待採取之一種類型之補救行動,例如,基於一或多個準則自一組不同類型之補救行動進行選擇。如本文中描述,可實施各種類型之補救行動之一或多者。例如,可基於自第一目標移動給定機器人之一第二運動規劃之分析產生一新、經修訂或替換第一運動規劃以將一給定機器人移動至一第一目標。又例如,可針對正在阻擋或將可能阻擋給定機器人之另一機器人產生一新、經修訂或替換運動規劃。又例如,可判定或產生一組目標之一新順序,該組目標包含第一目標及至少第二目標。此可偽隨機地或基於一或多個試探法(例如,始終嘗試將第一目標相對於正在被修改之該組目標之順序向下游移動一個位置)判定或產生。
選用多路徑分析器257可分析與兩個或更多個運動規劃相關聯之一總或彙總成本(例如,第一運動規劃及第二運動規劃之彙總成本)。此可用於識別具有總體最低成本之運動規劃之組合。例如,多路徑分析器257可結合一第二運動規劃考量第一運動規劃之兩個或更多個選項之總或彙總成本。此不限於僅兩個層級之運動規劃深度,而可考量額外層級之運動規劃(例如,用於自第二目標轉變至一第三目標之一第三運動規劃)。多路徑分析器257可構成判定兩個狀態、組態、姿勢或目標之間之兩個或更多個路徑之一最低或相對低成本組合之一最小成本路徑最佳化器,該等狀態、組態、姿勢或目標(例如,開始姿勢通過第一目標至第二目標)由運動規劃圖中之各自節點表示。多路徑分析器257可使用或執行任何種類之路徑尋找演算法,例如最低成本路徑尋找演算法,此考量與各邊緣相關聯之成本值,該等成本值表示碰撞之一相關聯可能性及/或視情況表示以下之一或多者:碰撞之一嚴重性、能量及/或時間之一支出或消耗或與由各自邊緣表示之轉變相關聯之執行或完成之延時。在至少一些實施方案中,多路徑分析器257可形成前瞻估測器256之部分。
運動規劃器204a可視情況包含一修剪器260。修剪器260可接收表示其他機器人之運動完成的資訊,資訊在本文中被稱為運動完成訊息209。替代地,可設定一旗標以指示完成。作為回應,修剪器260可移除表示現經完成運動之一障礙物或一障礙物之部分。此可容許一給定機器人之一新運動規劃的產生,這可更有效或容許給定機器人致力於執行原本先前由另一機器人之運動阻止的一任務。此方法有利地容許運動轉換器250在產生運動之障礙物表示時忽略運動的時序,同時仍實現比使用其他技術更佳的處理能力。運動規劃器204a可另外發送一信號、提示或觸發,以引起碰撞偵測器252鑑於障礙物之修改而執行一新碰撞偵測或評估,以產生其中與邊緣相關聯之邊緣權重或成本已被修改的一經更新運動規劃圖,且引起成本設定器253、路徑識別器254、路徑分析器255、前瞻估測器256及視情況多路徑分析器257相應地更新成本值且判定一新或經修訂運動規劃。
運動規劃器204a可視情況包含將來自選用感測器262 (例如,數位相機)之輸出(例如,環境之數位化表示)轉換為障礙物之表示的一環境轉換器263。因此,運動規劃器204a可執行考量環境中之暫時性物件(例如,人、動物等)的運動規劃。
(若干)處理器222及/或運動規劃器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, Inc.提供之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)之一表示及/或代表靜態或暫現障礙物118 (圖1)之感知資料120變換為數位形式(例如,點雲、歐幾里德距離場、資料結構格式(例如,階層式格式、非階層式格式)及/或曲線(例如,多項式或樣條曲線表示))。
運動規劃操作可包含但不限於使用各種碰撞評估技術或演算法(例如,基於軟體、基於硬體)判定或偵測或預測機器人之各種狀態或姿勢或機器人在各種狀態或姿勢之間之運動之碰撞。
在一些實施方案中,運動規劃操作可包含但不限於判定一或多個運動規劃圖、運動規劃或路線圖;儲存經判定之(若干)規劃圖、(若干)運動規劃或(若干)路線圖;及/或提供(若干)規劃圖、(若干)運動規劃或(若干)路線圖以控制一機器人之操作。
在一個實施方案中,碰撞偵測或評估係回應於一功能呼叫或類似程序而執行,且傳回布林值至其。碰撞偵測器252可經由一或多個場可程式化閘陣列(FPGA)及/或一或多個特定應用積體電路(ASIC)實施以執行碰撞偵測同時達成低延時、相對低功率消耗且增加可處置之資訊之一量。
在各種實施方案中,此等操作可完全在硬體電路系統中執行或作為儲存於一記憶體儲存器(諸如系統記憶體224a)中,且由一或多個硬體處理器222 (諸如一或多個微處理器、數位信號處理器(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號;及2020年6月23日申請之標題為「MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE」且發表為WO 2020/263861之國際專利申請案第PCT/US2020/039193號。熟習相關技術者將瞭解,經繪示實施方案以及其他實施方案可使用其他系統結構及配置及/或其他運算系統結構及配置(包含機器人、手持式裝置、多處理器系統、基於微處理器或可程式化消費者電子器件、個人電腦「PC」、網路連結PC、迷你電腦、主機電腦及類似者之系統結構及配置及/或運算系統結構及配置)實踐。實施方案或實施例或其等之部分(例如,在組態時間及運行時間)可在其中任務或模組藉由遠端處理裝置(其等透過一通信網路連結)執行之分佈式運算環境中實踐。在一分佈式運算環境中,程式模組可定位於本端及遠端記憶體儲存裝置或媒體兩者中。然而,何處及如何儲存某些類型之資訊對於幫助改良運動規劃係重要的。
例如,各種運動規劃解決方案將一路線圖(即,一運動規劃圖) 「併入(bake in)」至處理器(例如,FPGA)中,且路線圖中之各邊緣對應於處理器之一可重新組態布林電路。其中規劃圖被「併入」至處理器之設計帶來具有有限處理器電路系統來儲存多個或大規劃圖且通常不可重新組態以與不同機器人一起使用之一問題。
一個解決方案提供將規劃圖資訊放置於記憶體儲存器中之一可重新組態設計。此方法將資訊儲存於記憶體中而非併入至一電路中。另一方法採用模板化可重新組態電路替代記憶體。
如上文提及,可在運行時間之前之一組態時間期間擷取、接收、輸入或提供一些資訊(例如,機器人幾何模型)。可在組態時間期間處理經接收資訊以產生經處理資訊(例如,運動規劃圖)以加速操作或降低運行時間期間之運算複雜度。
在運行時間期間,可針對整個環境執行碰撞偵測,包含針對任何姿勢或姿勢之間之移動判定機器人之任何部分是否將碰撞或經預測與機器人自身之另一部分、與其他機器人或其等之部分、與環境中之永久性或靜態障礙物或與環境中具有未知軌跡之暫現障礙物(例如,人)碰撞。
圖3A、圖3B、圖3C及圖3D展示在其中機器人102 (圖1)、202 (圖2)之目標係執行一任務同時避免與靜態障礙物及動態障礙物之碰撞之情況中用於機器人102、202之例示性運動規劃圖300a、300b、300c、300d,該等障礙物可包含在一共享工作空間中操作之其他機器人。
特定言之,運動規劃圖300a (圖3A)繪示表示一當前姿勢之一當前節點308a與一第一目標之間之一第一可行路徑312a。在此實例中,第一目標可例如對應於表示將一機器人或其部分定位於第一目標處之一各自目標姿勢之一節點308i。在此實例中,第一可行路徑312a依序包括節點308a、308b、308c、308d、308e、308f、308g、308h及308i之間之邊緣,且在圖3A中以比運動規劃圖300a中之其他邊緣更粗之線寬繪示。為了方便參考,可將第一可行路徑312a稱為一先前或第一運動規劃。
運動規劃圖300b (圖3B)繪示第一目標與一第二目標之間之一可行路徑314。在此實例中,第一目標可例如對應於表示將一機器人或其部分定位於第一目標處之一各自目標姿勢之一節點308j。應注意,在至少一些境況中,可存在將一機器人或其部分定位於一給定目標處之一個、兩個或甚至更多個姿勢。因此,可存在將一機器人或其部分定位於一給定目標處之一個、兩個或甚至更多個節點。一些姿勢可更適用於避免機器人在一給定目標處被困住或甚至鎖死。在此實例中,第二目標可對應於表示將機器人或其部分定位於第二目標處之一各自姿勢之一節點308m。在此實例中,可行路徑314依序包括節點308j、308k、308l、308m之間之邊緣,且在圖3B中以比運動規劃圖300b中之其他邊緣更粗之線寬繪示。為了方便參考,可將可行路徑314稱為一後續或第二運動規劃,其中此旨在於先前或第一運動規劃之後執行。
應注意,將第一可行路徑312a之末端處之節點308i直接耦合至第二可行路徑314中之節點308j之邊緣與一相對高風險之碰撞相關聯。若針對運動規劃選擇該兩個可行路徑,則此可例如表示機器人被困住或甚至鎖死之一風險。本文中描述之前瞻運動規劃可考量此,且可採取補救行動。如上文提及,在至少一些運動規劃情境中,可存在將一機器人或其部分定位於一給定目標處以容許機器人執行一任務之多於一個姿勢(例如,兩個或更多個目標姿勢)。該等姿勢(例如,目標姿勢)由運動規劃圖中之各自節點表示。在當前實例中,與節點308i相關聯之姿勢及與節點308j相關聯之姿勢兩者將機器人或其部分定位於第一目標處。在此情境中,可用補救行動之一者係再次執行運動規劃以判定適應或考量第二運動規劃之一新、經修訂或替換第一運動規劃。在圖3C及圖3D中分別繪示兩個不同新、經修訂或替換第一運動規劃。
運動規劃圖300c (圖3C)繪示表示當前姿勢之當前節點308a與將機器人或其部分定位於第一目標處之節點308j之間之一新、經修訂或替換第一可行路徑312b之一個替代例。在此實例中,新、經修訂或替換第一可行路徑312b依序包括節點308a、308b、308c、308d、308e、308f、308g、308h、308n及308j之間之邊緣,且在圖3C中以比運動規劃圖300c中之其他邊緣更粗之線寬繪示。為了方便參考,可將新、經修訂或替換第一可行路徑312b稱為一新、經修訂或替換先前運動規劃,其中此旨在於後續或第二運動規劃之前執行。應注意,此運動規劃可具有一相對低相關聯碰撞風險(例如,由與其各自邊緣相關聯之彙總值指示,在此實例中,總數係1),但確實包含相對大數目個姿勢(例如,在此實例中,九個相異姿勢,但在許多實際應用中,相異姿勢之數目可遠更大)。
運動規劃圖300d (圖3D)繪示表示當前姿勢之當前節點308a與將機器人或其部分定位於第一目標處之一節點308j之間之一新、經修訂或替換第一可行路徑312c之另一替代例。在此實例中,新、經修訂或替換第一可行路徑312c依序包括節點308a、308o、308p、308n及308j之間之邊緣,且在圖3D中以比運動規劃圖300d中之其他邊緣更粗之線寬繪示。為了方便參考,可將新、經修訂或替換第一可行路徑312d稱為一新、經修訂或替換先前運動規劃,其中此旨在於後續或第二運動規劃之前執行。應注意,相較於圖3C之運動規劃,此運動規劃可具有一相對更高相關聯碰撞風險(例如,由與其各自邊緣相關聯之彙總值指示,在此實例中,總數係7),但相較於圖3C之運動規劃,確實包含相對小數目個姿勢(例如,在此實例中,五個相異姿勢,但在許多實際應用中,相異姿勢之數目可遠更大)。至少在一些實施方案中,一更小數目個姿勢可與更小延時及/或能量之更少支出相關聯。因此,在一些實施方案中,一更高碰撞風險可被視為延時及/或能量支出之節省之一合理權衡。
如本文中使用,術語可行路徑係指自一開始或當前節點至一目標節點完整之一路徑。可評估一組可行路徑之可行路徑以至少部分基於各可行路徑之一相關聯成本或成本函數且視情況基於一臨限或可接受成本識別一或多個適合或甚至最佳可行路徑。如本文中解釋,一成本或成本函數可表示碰撞之風險、碰撞之一嚴重性、能量及/或時間之一支出或消耗或與可行路徑相關聯之延時之一評估。
運動規劃圖300a、300b、300c、300d各分別包括藉由邊緣(在圖式中表示為節點對之間之直線)連接之複數個節點(在圖式中表示為空心圓)。調用節點之一子集作為節點308a至308p,且調用邊緣之一子集作為邊緣310a至310h。各節點隱含地或明確地表示特性化機器人102、202在機器人102、202之組態空間中之一狀態之時間及變數。組態空間通常被稱為C空間且係運動規劃圖300a、300b、300c、300d中表示之機器人102、202之狀態或組態或姿勢之空間。例如,各節點可表示機器人102、202之狀態、組態或姿勢(其可包含但不限於一位置、定向或姿勢(即,位置及定向))。狀態、組態或姿勢可(例如)由機器人102、202之關節之一組關節位置及關節角度/旋轉(例如,關節姿勢、關節座標)表示。
運動規劃圖300a、300b、300c、300d中之邊緣表示機器人102、202之此等狀態、組態或姿勢之間之有效或經容許轉變。運動規劃圖300a、300b、300c、300d中之邊緣不表示笛卡爾座標(2空間或3空間)中之實際移動,而表示機器人之C空間中之狀態、組態或姿勢之間之轉變。運動規劃圖300a、300b、300c、300d之各邊緣表示一機器人102、202在一各自節點對之間之一轉變。例如,邊緣310a表示一機器人102、202在兩個節點之間之一轉變。特定言之,邊緣310a表示處於與節點308b相關聯之一特定組態中之機器人102、202之一狀態與處於與節點308c相關聯之一特定組態中之機器人102、202之一狀態之間之一轉變。例如,機器人102、202可當前處於與節點308a相關聯之一特定組態中。雖然節點被展示為彼此相距各種距離,但此僅係為了闡釋性目的且此與任何實體距離無關。對運動規劃圖300a、300b、300c、300d中之節點或邊緣之數目無限制,然而,在運動規劃圖300a、300b、300c、300d中使用之節點及邊緣愈多,運動規劃器可能夠根據機器人102、202之一或多個狀態、組態或姿勢愈準確且精確地判定用於實行一任務之一適合或甚至一最佳路徑,此係因為存在更多可行路徑以自其等選擇最小成本路徑。
各邊緣被指派一成本值或與一成本值相關聯。成本值可表示相對於由對應邊緣表示之一運動之一碰撞評估。成本值可另外表示其他資訊,例如,與轉變相關聯之一能量支出或用於完成一相關聯移動或轉變或任務之一持續時間。
通常言之,可期望機器人102、202避開某些障礙物,例如,一共享工作空間中之其他機器人。在一些情境中,可期望機器人102、202接觸或緊密接近共享工作空間中之某些物件(例如)以抓握或移動一物件或工件。圖3A、圖3C及圖3D分別展示由一運動規劃器使用以識別供機器人102、202移動至一第一目標之一可行路徑312a、312b、312c (由粗線指示)之一「第一」運動規劃圖300a及一對「新」或「經修訂」或「替代」「第一」運動規劃圖300c、300d。產生或選擇可行路徑312a、312b、312c以引起機器人102、202藉由移動遍歷數個「中間姿勢」同時避免與一或多個障礙物之碰撞而移動至一第一目標。圖3B展示由一運動規劃器使用以識別供機器人102、202自一第一目標移動至一第二目標之一可行路徑314 (由粗線指示)之一「第二」運動規劃圖300b。目標通常係機器人102、202在其處實行一或多個指定任務(例如,拾取且放置一物件)之位置且一目標姿勢係用於執行指定任務之機器人之一姿勢。如先前提及,兩個或更多個節點可與各將機器人或其部分放置於一給定目標處之各自姿勢(例如,各將機器人或其部分放置於一給定實體位置處或一給定實體體積或區或空間內(自其可執行一任務,例如,在真實世界空間中之一實體位置、體積或區或空間中)之兩個或更多個姿勢)相關聯。因此,經由具有各自不同目標節點及因此彼此不同之結束或目標姿勢之兩個或更多個路徑到達一給定目標可係可行的。
障礙物可數位地表示為(例如)定界框、定向定界框、曲線(例如,樣條曲線)、歐幾里德距離場或幾何實體之階層架構、對於障礙物之類型及將執行之碰撞偵測(其自身可取決於所採用之特定硬體電路系統)之類型最適當之任一個數位表示。在一些實施方案中,預運算主要代理(例如,機器人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號。
運動規劃器110a、110b、110c (圖1)、204 (圖2)或其之一部分(例如,碰撞偵測器252,圖2)判定或評估一姿勢(由一節點表示)及/或運動或轉變(由一邊緣表示)將導致與一障礙物之一碰撞之一可能性或概率。在一些例項中,判定產生一布林值,而在其他例項中,判定可被表達為一概率。
針對其中存在節點之間之直接轉變將引起與一障礙物之一碰撞之一概率之運動規劃圖300a、300b、300c、300d中之節點,運動規劃器(例如,成本設定器253,圖2)將一成本值或權重指派至規劃圖300a、300b、300c、300d之在該等節點之間轉變之邊緣(例如,邊緣310a、310b、310c、310d、310e、310f、310g、310h),從而指示與障礙物之一碰撞概率。
例如,針對運動規劃圖300a、300b、300c、300d之具有低於一碰撞之一經定義臨限概率之與一障礙物之一碰撞之一各自概率之數個邊緣之各者,運動規劃器可指派具有等於或接近零之一值之一成本值或權重。在本實例中,運動規劃器已將零之一成本值或權重指派至規劃圖300a、300b、300c、300d中之表示不具有與一障礙物之一碰撞之任何概率或具有與一障礙物之一碰撞之非常小概率之機器人102、202之轉變或運動之該等邊緣。針對運動規劃圖300a、300b、300c、300d之具有高於一碰撞之經定義臨限概率之與環境中之一障礙物之一碰撞之一各自概率之數個邊緣之各者,運動規劃器指派具有實質上大於零之一值之一成本值或權重。在本實例中,運動規劃器已將大於零之一成本值或權重指派至運動規劃圖300a、300b、300c、300d中之具有與一障礙物之碰撞之一相對高概率之該等邊緣。用於碰撞概率之特定臨限值可變化。例如,臨限值可為碰撞之40%、50%、60%或更低或更高之概率。又,為一成本值或權重指派大於零之一值可包含為一權重指派對應於一碰撞之各自概率之大於零之一量值。例如,如在運動規劃圖300a、300b、300c、300d中展示,運動規劃器已將10之一相對高成本值或權重指派至具有碰撞之一較高概率之一些邊緣,但已將具有0之一相對較低量值之一成本值或權重指派至運動規劃器判定具有碰撞之一遠更低概率之其他邊緣。在其他實施方案中,成本值或權重可呈現碰撞與無碰撞之間之二元選取,在將成本值或權重指派至邊緣時,僅存在兩個成本值或權重以供選擇。
除基於碰撞之一相關聯概率之外,運動規劃器(例如,成本設定器253,圖2)亦可基於因數或參數(例如,能量支出、用於完成一相關聯移動、轉變及/或任務之整體持續時間)指派、設定或調整各邊緣之成本值或權重。
在運動規劃器至少部分基於碰撞評估設定表示機器人102、202與一障礙物之一碰撞概率之一成本值或權重之後,運動規劃器(例如,路徑識別器254、路徑分析器255,圖2)識別或產生可行路徑(例如,具有一當前或開始節點與一目標節點之間之可行轉變之可實行的路徑),且視情況執行一最佳化以識別(例如,判定、選擇)一適合路徑(例如,滿足一或多個條件或臨限值之一可行路徑)或甚至選擇所得運動規劃圖300a、300b、300c、300d中為機器人102、202提供如由經識別之適合或甚至最佳可行路徑312a、312b、312c、312d (不具有或具有與障礙物(包含在一共享工作空間中操作之其他機器人)之一碰撞之一相對低可能性)指定之一運動規劃之一選定可行路徑312a、312b、312c、312d (例如,一最佳可行路徑或一最好可行路徑或最適合可行路徑)。
在一個實施方案中,一旦已指派或設定運動規劃圖300a、300b、300c、300d之全部邊緣成本,運動規劃器(例如,路徑分析器255,圖2)便可執行一計算以判定至或朝向由一目標節點308i表示之一目標之一最小成本路徑。例如,路徑分析器255 (圖2)可執行自由運動規劃圖300a、300b、300c、300d中之當前節點308a表示之機器人102、202之當前狀態至可能狀態、組態或姿勢之一最小成本路徑演算法。接著藉由運動規劃器選擇運動規劃圖300a、300b、300c、300d中之最小成本(最接近零)路徑。如上文解釋,成本可不僅反映碰撞概率,而且亦反映其他因數或參數(例如,能量支出、用於完成相關聯移動、轉變及/或任務之整體持續時間)。在圖3A及圖3B中繪示之實例中,運動規劃圖300a、300b中之機器人102、202之一當前狀態、組態或姿勢係在節點308a處,且將給定機器人之至少一部分(例如,末端執行器、臂端工具)放置於一目標處以執行給定任務之機器人102、202之一第一目標狀態、組態或姿勢係一節點308i。在圖3A中,當前節點308a與目標節點308i之間之一可行路徑被描繪為運動規劃圖300a中之可行路徑312a (包括自節點308a連續延伸至節點308i之片段之粗線路徑)。在圖3B中,第一目標節點308i與一第二目標節點308m之間之一可行路徑(例如,經修訂)被描繪為運動規劃圖300b中之可行路徑314 (包括自節點308j延伸至節點308m之片段之粗線路徑,其具有中間節點308k及308I)。
雖然分別在運動規劃圖300a、300b、300c、300d中被展示為具有許多急轉彎之一可行路徑312a、314、312b、312c,但此等轉彎不表示一路線中之對應實體轉彎,而係機器人102、202之狀態、組態或姿勢之間之邏輯轉變。例如,經識別之可行路徑312a、314、312b、312c中之各邊緣可表示相對於環境中之機器人102、202之實體組態之一狀態改變,但不一定表示對應於圖3A、圖3B、圖3C及圖3D中分別展示之可行路徑312a、314、312b、312c之角度之機器人102、202之方向之一改變。
圖4展示根據至少一個經繪示實施方案之用於產生運動規劃圖及掃掠體積之一基於處理器之系統中之一操作方法400。方法400可在一運行時間之前(例如,在一組態時間期間)執行。方法400可由與一或多個機器人及/或一或多個機器人控制系統分開且相異且可能遠端之一基於處理器之系統(例如,伺服器電腦)執行。
運動規劃圖耗費大量時間及資源來建置,但如本文中描述,吾等將僅需要(例如)在發生在運行時間之前之一組態時間期間這麼做一次。一旦經產生,運動規劃圖便可儲存(例如,儲存於一規劃圖邊緣資訊記憶體或其他非暫時性電腦或處理器可讀媒體中),且處理器相對快速且有效地換入且換出運動規劃圖,或例如基於一機器人之一當前特性(例如,諸如機器人何時夾取具有一特定大小之一物件)選擇使用哪一運動規劃圖。
如上文提及,一些預處理活動可在運行時間之前執行且因此,在一些實施方案中,此等操作可藉由經由網路介面透過一通信網路連結至一機器人控制系統之遠端處理裝置執行。例如,一預運行時間程式化或組態階段容許針對一所關注問題準備機器人。在此等實施方案中,利用廣泛預處理來避免運行時間運算。例如,預處理可包含產生關於由機器人在進行一運動規劃圖中自一個狀態至另一狀態之一轉變時在3D空間中掃掠之一體積之經預運算資料(即,在機器人之運行時間之前運算),轉變由運動規劃圖中之邊緣表示。例如,經預運算資料可儲存於記憶體(例如,規劃圖邊緣資訊記憶體)中且在運行時間期間由適當處理器存取。一系統亦可在運行時間之前建置對應於可在運行時間期間發生之一機器人之不同可能改變之維度特性之一系列運動規劃圖。系統接著將此等規劃圖儲存於記憶體中。
在402處,基於處理器之系統之至少一個組件接收表示將執行其之運動規劃之機器人之一運動學模型。例如,運動學模型表示具有數個連桿及數個關節之一機器人附肢,關節在各自對連桿之間。運動學模型可呈任何已知或待開發格式。視情況,基於處理器之系統之至少一個組件至少部分基於機器人之運動學模型產生機器人之一資料結構表示。資料結構表示包含數個連桿及關節之一表示。可採用各種適合資料結構及技術,例如,各種階層式資料結構(例如,樹形資料結構)或非階層式資料結構(例如,EDF資料結構)。例如,此可採用在發表為WO 2020/040979之PCT/US2019/045270中描述之任何結構、方法或技術。
在404處,基於處理器之系統基於各自機器人運動學模型產生一機器人之一運動規劃圖。運動規劃圖將機器人之各狀態、組態或姿勢表示為一各自節點,且將狀態、組態或姿勢對之間之有效轉變表示為連接節點之對應對之邊緣。雖然相對於一圖描述,但運動規劃圖不一定需要被表示或儲存為一習知圖,而可使用任何種類之資料結構(例如,記錄及欄位、表、連結清單、指標、樹)例如邏輯地或在一記憶體電路或電腦處理器中表示。
在406處,基於處理器之系統視情況產生待執行其之運動規劃之機器人之運動規劃圖之各邊緣之一掃掠體積。掃掠體積表示由機器人或其之一部分在執行對應於各自邊緣之一運動或轉變時掃掠之一體積。掃掠體積可以多種形式之任一者表示,例如作為三維像素、一歐幾里德距離場、球體或其他幾何物件之一階層架構。
在408處,基於處理器之系統將運動規劃圖及/或掃掠體積提供至一機器人控制系統及/或運動規劃器。基於處理器之系統可經由一非專屬通信頻道(例如,乙太網路)提供運動規劃圖及/或掃掠體積。在一些實施方案中,來自不同機器人製造商之各種機器人可在一共享工作空間中操作。在一些實施方案中,各種機器人製造商可操作產生機器人製造商生產之各種機器人之運動規劃圖及/或掃掠體積之專屬基於處理器之系統(例如,伺服器電腦)。各機器人製造商可提供各自運動規劃圖及/或掃掠體積以供機器人控制器或運動規劃器使用。
例如,基於處理器之系統可使用在以下案中描述之結構及方法之任何一或多者以產生待執行其之運動規劃之(若干)機器人之運動規劃圖及/或產生表示待執行其之運動規劃之(若干)機器人之掃掠體積:發表為WO 2020/040979之PCT/US2019/045270;發表為WO 2020/247207之PCT/US2020/034551;及/或發表為WO 2019/156984之PCT/US2019/016700。
圖5展示根據至少一個經繪示實施方案之用於控制一或多個機器人之一基於處理器之系統之一操作方法500。方法500可在(若干)機器人之一運行時間期間執行。替代地,方法500之一部分可在(若干)機器人之運行時間之前之一組態時間期間執行,且方法500之一部分可在(若干)機器人之運行時間期間執行。
可針對在一多機器人操作環境或工作空間中操作之一個、兩個或更多個機器人執行方法500。例如,可針對兩個或更多個機器人(例如,一第一機器人R 1、一第二機器人R 2、一第三機器人R 3)之各者依序執行方法500。為了易於論述,關於一第一機器人R 1之控制描述方法500,其中在操作環境中之一第二機器人R 2潛在地表示對第一機器人R 1之移動之一障礙物。熟習此項技術者自論述將認知,此方法可外推至在操作環境中存在兩個或更多個其他機器人之情況下控制一個機器人,或在操作環境中存在兩個或更多個機器人之情況下控制兩個或更多個機器人。此可(例如)藉由針對各機器人依序執行方法500及/或(例如)相對於呈現為對一給定機器人之移動之潛在障礙物之其他機器人之各者針對該給定機器人連續反覆地執行方法500而執行。熟習此項技術者亦將認知,方法500可省略一些經繪示動作,包含額外動作,且方法500之許多動作可以不同於所繪示之一順序執行(execute或perform)及/或彼此同時執行(execute或perform)。
方法500可在一運行時間執行,運行時間係在其期間至少一個機器人在操作(例如,移動、執行任務)且通常兩個或更多個機器人在操作之一時段,例如,運行時間在一組態時間之後。方法500可藉由採取一或多個機器人控制系統之形式之一或多個基於處理器之系統執行,但將關於一個基於處理器之系統描述方法500。例如,機器人控制系統可共置或定位成「內建於」機器人之各自者。
方法500 (例如)回應於一機器人及/或機器人控制系統通電,回應於來自一呼叫常式之一呼叫或調用或回應於待藉由一機器人執行之一任務之接收而在502處開始。
在504處,基於處理器之系統視情況接收一或多個機器人之(若干)運動規劃圖。例如,基於處理器之系統可接收來自另一基於處理器之系統之(若干)運動規劃圖,該另一基於處理器之系統在一組態時間期間產生(若干)運動規劃圖,例如如關於圖4描述且如在圖4中繪示。運動規劃圖將機器人之各狀態、組態或姿勢表示為一各自節點,且將狀態、組態或姿勢對之間之有效轉變表示為連接對應節點之邊緣。雖然相對於一圖描述,但各運動規劃圖不一定需要被表示或儲存為一習知圖,而可使用任何種類之資料結構(例如,記錄及欄位、表、連結清單、指標、樹)例如邏輯地或在一記憶體電路或電腦處理器中表示。
在506處,基於處理器之系統視情況接收一或多個機器人(例如,正在規劃其之運動之機器人R 1,及視情況在環境中操作之其他機器人R 2、R 3)之一組掃掠體積。例如,基於處理器之系統可接收來自另一基於處理器之系統之該組掃掠體積,該另一基於處理器之系統在一組態時間期間產生(若干)運動規劃圖,例如如關於圖4描述且如在圖4中繪示。替代地,基於處理器之系統可(例如)基於運動規劃圖自身產生該組掃掠體積。掃掠體積表示由機器人或其之一部分在執行對應於一各自邊緣之一運動或平移時掃掠之各自體積。掃掠體積可以多種形式之任一者表示,例如作為三維像素、一歐幾里德距離場、球體或其他幾何物件之一階層架構。
在508處,基於處理器之系統接收(例如)呈任務規範之形式之數個任務。任務規範指定待藉由機器人執行或實行之機器人任務。例如,任務規範可指定其中一機器人待自一第一位置及第一姿勢移動至一第二位置(例如,第一目標)及第二姿勢(例如,第一目標姿勢),在第二位置處夾取一物件之一第一任務,及其中機器人待將物件移動至一第三位置(例如,第二目標)及第三姿勢(例如,第二目標姿勢)且在第三位置處釋放物件之一第二任務。任務規範可採取各種形式,例如,需要剖析至一較低階規範之一高階規範(例如,散文句及語法)。任務規範可採取(例如)指定一組關節位置及關節角度/旋轉(例如,關節姿勢、關節座標)之低階規範之形式。
在510處,基於處理器之系統視情況接收或產生環境之一表示,例如,如藉由一或多個感測器(例如,相機、LIDAR)感測之環境之一表示。表示可表示環境中之靜態或永久性物件及/或可表示環境中之動態或暫現物件。在一些實施方案中,一或多個感測器擷取感知資料且將感知資料發送至一或多個處理器。例如,感知資料可為表示環境中之障礙物之各自位置之佔用資訊。佔用資訊通常由經定位且經定向以感測機器人將在其中操作或在其中操作之環境之一或多個感測器產生。佔用資訊可採取原始或經預處理資料之形式,且可以任何現有或隨後創建之格式或結構描述格式化。例如,感知資料可為指示哪些三維像素或框由當前環境中之物件佔用之一串流。環境之表示之接收或產生可在一時間段期間(例如在一整個運行時間週期期間)發生,且可週期性地、非週期性地、連續地及/或持續地發生。
針對數個反覆之各者,系統接收或產生一機器人102在其中操作之一環境之一表示之一各自離散化。例如,各自離散化可包括各自三維像素集。例如,各自離散化之三維像素在各自離散化內之大小及形狀之至少一者上可係非均勻的。例如,各自離散化之三維像素之非均勻性之一各自分佈可彼此不同。障礙物可數位地表示為(例如)定界框、定向定界框或曲線(例如,樣條曲線)、對於障礙物之類型及將執行之碰撞偵測(其自身可取決於所採用之特定硬體電路系統或軟體演算法)之類型最適當之任一個數位表示。
例如,基於處理器之系統可表示環境中之一或多個靜態或永久性障礙物及/或環境中之一或多個動態或暫現障礙物(包含一或多個其他機器人)。
例如,基於處理器之系統之至少一個組件可接收表示環境中之數個永久性障礙物及/或環境中之數個暫現障礙物之佔用資訊。永久性障礙物係通常係靜態或保持固定,且至少在由機器人在機器人之運行時間期間執行一或多個任務期間將不移動之障礙物。暫現障礙物係出現/進入、消失/離開或至少在機器人之運行時間期間係動態或移動之障礙物。因此,暫現障礙物(若有)係在運行時間之至少某一部分期間在環境中具有一已知位置及定向且在組態時間在環境中不具有一已知固定位置或定向之障礙物。例如,佔用資訊可表示由環境中之各障礙物佔用之各自體積。佔用資訊可呈任何已知或待開發格式。佔用資訊可由一或多個感測器產生,或可經由一電腦或甚至由一人定義或指定。通常在機器人之一運行時間期間接收針對暫現障礙物之佔用資訊。有時在組態時間期間識別並規劃永久性或靜態物件,而通常在運行時間期間識別並規劃暫現或動態物件。
基於處理器之系統之至少一個組件可產生機器人將在其中操作之環境中之一或多個物件或障礙物之一或多個資料結構表示。一資料結構表示可包含在一組態時間在環境中具有一已知固定位置及定向,且因此被稱為永久性(其中假定該等物件自組態時間至一運行時間在環境中在已知位置及定向處持續存在)之數個障礙物之一表示。一資料結構表示可包含在一組態時間在環境中不具有一已知固定位置及定向及/或預期在一運行時間期間移動,且因此被稱為暫現(其中假定該等物件在一運行時間期間在環境中在未知位置及定向處出現、消失或移動)之數個障礙物之一表示。可採用各種適合資料結構(例如,各種階層式資料結構(例如,樹形資料結構)或非階層式資料結構(例如,EDF資料結構)及技術),例如如在發表為WO 2020/040979之PCT/US2019/045270中描述。因此,例如,基於處理器之系統之至少一個組件接收或產生環境中之障礙物之表示作為以下之任何一或多者:一歐幾里德距離場、定界體積之一階層架構;軸對準定界框(AABB)之一樹、定向(非軸對準)定界框之一樹、球體之一樹;具有三角形網格作為葉節點之定界框之一階層架構;球體之一階層架構;一k元(k-ary)球體樹;軸對準定界框(AABB)之一階層架構;定向定界框之一階層架構及/或儲存三維像素佔用資訊之一八叉樹。應注意,任何樹形資料結構之葉可為不同於資料結構之其他節點之一形狀,例如,全部節點係AABB,惟可採取三角形網格之形式之機器人節點或葉除外。使用球體作為定界體積促進快速比較(即,判定球體是否彼此重疊在運算上係容易的)。
例如,基於處理器之系統可使用在發表為WO 2020/040979之PCT/US2019/045270中描述之結構及方法之任何一或多者以表示環境中之障礙物。
視情況在512處,基於處理器之系統接收一或多個其他機器人(即,環境中除正在執行其之運動規劃之特定例項之給定機器人之外之機器人)之運動規劃。基於處理器之系統可有利地使用一或多個其他機器人之運動規劃以判定一給定機器人(例如,第一機器人R 1)之一軌跡是否將導致一碰撞或將具有導致與另一機器人(例如,第二機器人R 2、第三機器人R 3)之一碰撞之一非零概率,如本文中描述。
視情況在514處,基於處理器之系統預測環境中之障礙物之運動,例如,環境中之其他機器人(例如,第二機器人R 2、第三機器人R 3)之運動或軌跡。例如,基於處理器之系統可自一當前軌跡及/或自另一機器人之一目標之一知識或預測或另一機器人之一經預測或預期碰撞外推一未來軌跡。在基於處理器之系統不知道一或多個其他機器人之運動規劃之情況下,此可尤其有用。
在516處,基於處理器之系統將其他機器人及/或其他機器人之運動表示為正在執行其之運動規劃之特定例項之機器人之障礙物。例如,基於處理器之系統可將對應於各運動之掃掠體積佇列化為一障礙物佇列中之障礙物。掃掠體積可先前已針對各邊緣判定或計算,且經由一資料結構(例如,指標)與記憶體中之各邊緣邏輯上相關聯。如先前提及,掃掠體積可以各種形式之任一者表示,例如作為三維像素、一歐幾里德距離場、球體或其他幾何物件之一階層架構。
在518處,基於處理器之系統視情況將一目標計數器I初始化或設定為一(1),目標計數器容許基於處理器之系統在一迴圈中反覆遍歷總數N個目標。
在520處,基於處理器之系統執行一給定機器人(例如,第一機器人R 1)之運動規劃以執行數個任務(例如,一個、兩個或更多個任務),運動規劃係基於數目N個至少兩個或更多個連續目標。在由所得兩個或更多個運動規劃指定之一運動發生之前針對至少兩個或更多個連續目標執行運動規劃。因此,基於處理器之系統可在評估與用於前一目標(例如,一第一目標)之一運動規劃(例如,一第一運動規劃)之一相容性或該運動規劃之一充分性時考量用於一後續目標(例如,一第二目標)之一運動規劃,且若一補救行動被視為有用或有必要,則視情況實施一補救行動(如下文關於圖6A論述)。此可有利地避免一機器人被困住或甚至鎖死,其中例如自與由前一或第一運動規劃指定之一第一目標相關聯之一姿勢至由一後續或第二運動規劃指定之一下一或後續姿勢之一轉變被阻擋或將可能被阻擋(例如,被一共享工作空間中之另一機器人阻擋)。下文參考圖6A及圖6B繪示且描述運動規劃之至少一個實施方案,其包含碰撞檢查及將成本指派至一運動規劃圖中表示轉變之邊緣。圖6A及圖6B之實例不旨在為限制性,且可採用運動規劃之其他實施方案。
在522處,基於處理器之系統視情況控制產生其之運動規劃之給定機器人(例如,第一機器人R 1)之一操作,從而引起給定機器人按照運動規劃移動。例如,基於處理器之系統可將控制信號或驅動信號發送至一或多個運動控制器(例如,馬達控制器)以引起一或多個致動器根據運動規劃移動一或多個連桿組。應注意,雖然邊緣通常定義表示各自姿勢之一對節點之間之有效轉變,但任何邊緣可對應於機器人或其部分之一個、兩個或甚至更多個移動。因此,一個邊緣可對應於機器人自一對姿勢中之一個姿勢至另一姿勢之一單一移動,或替代地,一個邊緣可對應於機器人自一對姿勢中之一個姿勢至另一姿勢之複數個移動。
在524處,基於處理器之系統監控產生其之運動規劃之給定機器人(例如,第一機器人R 1)之經規劃軌跡。監控可包含監控以判定機器人或機器人之軌跡是否(例如)被另一機器人阻擋。監控可包含監控以判定給定機器人或給定機器人之軌跡是否可(例如,潛在地)被另一機器人之一已知或經預測移動阻擋,視情況包含此阻擋發生之概率之一評估。監控可包含監控以判定給定機器人或給定機器人之軌跡是否(例如)歸因於另一機器人之移動而變得無阻擋或潛在地無阻擋。
監控可包含監控以判定給定機器人是否已到達一目標(例如,最終目標)或達成將在其處將完成一任務之一目標姿勢(例如,最終目標姿勢)。監控亦可包含監控由機器人或其他機器人對運動之完成,此可有利地容許基於處理器之系統在後續碰撞偵測或評估期間移除對應於運動之障礙物而不予以考量。在一些實施方案中,此可引起可用於(例如)修剪障礙物之一運動完成訊息之產生,如下文參考圖7論述。基於處理器之系統可依賴於(若干)對應機器人之座標。座標可係基於來自運動控制器、致動器及/或感測器(例如,包含DOF相機及具有或不具有結構化照明之LIDAR之相機、旋轉編碼器、Reed開關)之資訊。在至少一些實施方案中,監控阻擋或無阻擋可包含使用廣泛多種碰撞偵測技術之任一者執行碰撞偵測,例如,使用表示由給定機器人掃掠之一體積及/或由環境中之其他機器人或其他障礙物掃掠之一體積之掃掠體積之碰撞偵測;或採用兩個球體是否相交之評估之碰撞偵測。
在526處,基於處理器之系統判定或評估給定機器人(例如,第一機器人R 1)或給定機器人之軌跡是否已變得被阻擋或潛在地被阻擋,或視情況已發生另一觸發條件。例如,基於處理器之系統可相對於操作環境中之一或多個物件或障礙物針對給定機器人之一路徑或軌跡執行碰撞檢查。可採用多種形式之碰撞檢查,儘管由於碰撞檢查通常係在(若干)機器人之一運行時間期間執行,此應係一相對快速程序。例如,碰撞檢查可採用表示由一給定機器人在自一個姿勢轉變至另一姿勢時掃掠之面積或體積之掃掠體積。例如,碰撞檢查可採用表示由其他機器人在自一個姿勢轉變至另一姿勢時掃掠之面積或體積之掃掠體積。可有利地在運行時間之前之一組態時間期間運算掃掠體積。碰撞檢查可採用表示給定機器人及(若干)障礙物之部分之球體之相交之判定。
若給定機器人(例如,第一機器人R 1)或給定機器人之軌跡已變得被阻擋或潛在地被阻擋(例如,具有被阻擋之一概率或等於或超過一經定義臨限值之碰撞概率)或替代地發生某一其他觸發條件,則控制返回至520。若給定機器人或給定機器人之軌跡未被阻擋或潛在地被阻擋(例如,具有低於一經定義臨限值之被阻擋之一概率或碰撞概率),則控制傳遞至528。
在528處,基於處理器之系統判定給定機器人(例如,第一機器人R 1)是否已到達當前目標I或已達成將機器人或其部分定位於目標I處之一目標姿勢。基於處理器之系統可依賴於給定機器人之座標。座標可係基於來自運動控制器、致動器及/或感測器(例如,包含DOF相機及具有或不具有結構化照明之LIDAR之相機、旋轉編碼器、Reed開關)之資訊。
若給定機器人尚未到達當前目標I亦未達成將機器人或其部分定位於目標I處之目標姿勢,則控制返回至522或視情況524,從而容許給定機器人根據運動規劃繼續移動朝向當前目標I。若給定機器人已到達當前目標I或達成目標姿勢,則控制傳遞至530。
在530處,基於處理器之系統使目標計數器遞增(I=I+1)。控制接著傳遞至530。
在532處,基於處理器之系統基於目標計數器判定是否已到達全部總數N個目標(I>N)。若尚未到達全部總數N個目標(I>N),則控制返回至522。若已到達全部總數N個目標(I>N),則控制傳遞至534。
在534處,方法500在534處終止(例如)直至再次被調用。替代地,方法500可重複直至例如藉由一斷電狀態或狀況確定地停止。在一些實施方案中,方法500可在一或多個處理器之一或多個核心上作為一多執行緒程序執行。
應注意,在許多實施方案中,方法500將針對額外任務及/或額外機器人重複。例如,基於處理器之系統可判定是否已到達一任務佇列及/或一運動規劃請求佇列之一末端。例如,基於處理器之系統可判定在一運動規劃請求佇列中是否存在任何剩餘運動規劃請求及/或是否已完成一任務佇列中之全部任務。在至少一些實施方案中,一組任務(例如,任務佇列)可暫時耗盡,其具有新或額外任務隨後到達之概率。在此等實施方案中,基於處理器之系統可執行一等待迴路,不時地檢查新或額外任務或等待指示一新或額外任務可供處理且實行之一信號。
在一些實施方案中,方法500之多個例項可在一或多個處理器之一或多個核心上在一多執行緒程序中(例如)彼此並行執行。因此,方法500可替代地重複直至(例如)藉由一斷電狀態或狀況確實地停止。
雖然依據一有序流程描述操作方法500,但各種運動或操作將在許多實施方案中同時或並行執行。通常,在一或多個機器人執行任務時,可實行一個機器人執行一個任務之運動規劃。因此,藉由機器人執行任務可與藉由一或多個運動規劃器執行運動規劃重疊或同時或並行。藉由機器人執行任務可與藉由其他機器人執行任務重疊或同時或並行。在一些實施方案中,一個機器人之運動規劃之至少某一部分可與一或多個其他機器人之運動規劃之至少某一部分重疊或同時或並行。
圖6A展示根據至少一個經繪示實施方案之用於執行一或多個機器人之運動規劃之一基於處理器之系統之一高階操作方法600。方法600可在(若干)機器人之一運行時間期間執行。替代地,方法600之一部分可在(若干)機器人之運行時間之前之一組態時間期間執行,且方法600之一部分可在(若干)機器人之運行時間期間執行。例如,可在執行方法500 (圖5)之運動規劃520時執行方法600,儘管運動規劃520不限於在方法600中描述且繪示之運動規劃。
可針對在一多機器人操作環境中操作之一個、兩個或更多個機器人執行方法600。例如,可針對各機器人(例如,一第一機器人R 1、一第二機器人R 2、一第三機器人R 3或甚至更多機器人)依序執行方法600。為了易於論述,關於一給定機器人(例如,第一機器人R 1)之控制描述方法600,其中在操作環境中之其他機器人(例如,第二機器人R 2、第三機器人R 3)潛在地表示對給定機器人(例如,第一機器人R 1)之移動之障礙物。熟習此項技術者自本文中之論述將認知,此方法600可外推至在操作環境中存在兩個或更多個其他機器人之情況下對於一個機器人之運動規劃,或在操作環境中存在兩個或更多個其他機器人之情況下對於兩個或更多個機器人之運動規劃。此可(例如)藉由針對各機器人依序執行方法600及/或(例如)相對於呈現為對一給定機器人之移動之潛在障礙物之其他機器人之各者針對該給定機器人連續反覆地執行方法600而執行。熟習此項技術者亦將認知,方法600可省略一些經繪示動作,包含額外動作,且方法600之許多動作可以不同於所繪示之一順序執行(execute或perform)及/或彼此同時執行(execute或perform)。
方法600可在一運行時間執行,運行時間係在其期間至少一個機器人在操作(例如,移動、執行任務)之一時段,例如,運行時間在一組態時間之後。方法600可藉由採取一或多個機器人控制系統之形式之一或多個基於處理器之系統執行。例如,機器人控制系統可共置或定位成「內建於」機器人之各自者。
方法600 (例如)回應於一機器人及/或機器人控制系統通電,回應於來自一呼叫常式之一呼叫或調用(諸如來自執行方法500之一呼叫常式之一呼叫),回應於一運動規劃請求或在待針對一機器人執行之運動規劃請求之一佇列中之一運動規劃請求之接收或回應於待藉由一機器人執行之一任務之接收而開始602。
在604處,基於處理器之系統執行一給定機器人(例如,第一機器人R 1)之碰撞偵測或評估。基於處理器之系統可採用在本文中或在以引用的方式併入本文中或在其他處描述之材料中描述之各種結構及演算法之任一者以執行碰撞偵測或評估。碰撞偵測或評估可包含針對一障礙物佇列中之各障礙物對各運動執行碰撞偵測或評估。在以下案中描述碰撞評估之實例以產生運動規劃圖,產生掃掠體積及/或執行碰撞檢查(例如,球體評估之相交):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號;及發表為WO 2020/040979之PCT/US2019/045270。如本文中描述,基於處理器之系統可使用碰撞評估以設定成本值或成本函數或作為設定在產生指定一機器人完成一任務之一適合路徑(例如,一組有序姿勢)之一運動規劃時可使用之運動規劃圖之各種邊緣之成本值或成本函數之部分。
在606處,基於處理器之系統至少部分基於給定機器人(例如,第一機器人R 1)之碰撞偵測或評估設定運動規劃圖中之邊緣之成本值或成本函數。成本值或成本函數可代表碰撞之一碰撞評估或風險(例如,概率或發生)。成本值可另外代表若一碰撞發生則一碰撞之一嚴重性(例如,將導致之損害之量值)。例如,與一人或其他有生命物件之一碰撞可被視為比與一牆或桌或其他無生命物件之碰撞更嚴重,且因此成本更高。成本值或成本函數可另外代表與對應於各自邊緣之一轉變相關聯之資源之一使用或消耗,例如,在執行相關聯轉變時將消耗之能量之一量或將引致之時間之一量。基於處理器之系統可採用在本文中或在以引用的方式併入本文中之材料中描述之各種結構及演算法之任一者以執行成本值或成本函數設定,通常將不具有碰撞風險或具有碰撞之低風險之邊緣之成本設定或調整為一相對低值(例如,零),且將將導致碰撞或具有碰撞之一高風險之邊緣之成本設定或調整為一相對高值(例如,十萬)。例如,基於處理器之系統可藉由經由一或多個資料結構將各邊緣與一相關聯成本值或成本函數邏輯上相關聯而設定運動規劃圖中之邊緣之成本值或成本函數。
在608處,基於處理器之系統產生指定用以使給定機器人自一開始或當前組態轉變或移動至一第一目標I之一組有效轉變之一運動規劃(例如,第一運動規劃)。第一運動規劃表示一可行路徑,且在至少一些例項中表示開始與第一目標I之間之一適合路徑(例如,滿足例如具有低於一臨限成本之一成本之指定準則之完整路徑)或甚至一選定路徑(例如,最佳路徑,例如,全部路徑中具有一最低成本之一完整路徑)。因此,運動規劃指定給定機器人遍歷對應於各自節點之各種姿勢以在一開始與一目標之間轉變之一軌跡。下文參考圖6B繪示且描述產生一運動規劃之一例示性實施方案。
在610處,基於處理器之系統產生指定用以使給定機器人自第一目標I轉變或移動至一第二目標I+1之一組有效轉變之一運動規劃(例如,第二運動規劃)。第二運動規劃表示一可行路徑,且在至少一些例項中表示第一目標I與第二目標I+1之間之一適合路徑(例如,滿足例如具有低於一臨限成本之一成本之指定準則之完整路徑)或甚至一選定路徑(例如,最佳路徑,例如,全部路徑中具有一最低成本之一完整路徑)。因此,運動規劃指定給定機器人遍歷對應於各自節點之各種姿勢以在第一目標與第二目標之間轉變之一軌跡。下文參考圖6B繪示且描述產生一運動規劃之一例示性實施方案。
應注意,在一些實施方案中,基於處理器之系統可重複任何數目個後續目標(例如,I+2、I+3、I+4)之後續運動規劃之產生,例如以容許針對一給定機器人之一更早運動規劃將對由給定機器人達成或到達一個或甚至更多個後續目標之能力所具有之影響之一更深考量或探索。
在612處,基於處理器之系統判定或評估在給定機器人沿著如由對應運動規劃(例如,第二運動規劃)指定之一軌跡移動時,(若干)其他機器人是否將或可能將(即,一相對高概率)阻擋給定機器人或給定機器人自前一目標(例如,第一目標I)至一後續或下一目標(例如,第二目標I+1)之移動。例如,基於處理器之系統可判定給定機器人是否將在自前一運動規劃(例如,第一運動規劃)轉變至一後續(替代地被稱為「下一」或「後一」)運動規劃(例如,第二運動規劃)時被困住、延遲或甚至鎖死。例如,基於處理器之系統可判定給定機器人是否將被阻擋或可能被阻擋自給定機器人按照第一運動規劃定位於第一目標處時將所處之一姿勢及給定機器人在第二運動規劃之執行之至少一初始部分期間將所處之一姿勢轉變。例如,基於處理器之系統可判定一給定機器人是否將或可能將歸因於被另一機器人阻擋而被阻止執行一後續運動規劃(例如,下一或後一運動規劃)。又例如,基於處理器之系統可判定一給定機器人是否將或可能將歸因於被另一機器人阻擋而延遲執行一後續運動規劃(例如,下一或後一運動規劃)。在至少一些例項中,延遲可為任何延遲,例如,在一旦被命令執行一後續或第二運動規劃便執行後續或第二運動規劃之能力方面之除無延遲之外之任何量之延遲。在其他例項中,延遲可為長於一指定或臨限持續時間之延遲(例如,在一旦被命令執行一後續或第二運動規劃便執行後續或第二運動規劃之能力方面之一指定非零量之延遲)之一延遲。
例如,基於處理器之系統可採用碰撞偵測以判定或評估在給定機器人沿著如由對應運動規劃(例如,第二運動規劃)指定之一軌跡移動時,(若干)其他機器人是否將或可能將阻擋給定機器人或給定機器人至一後續目標(例如,第二目標I+1)之移動。例如,超過一臨限碰撞概率之一碰撞概率或超過一臨限成本或成本值之一成本值或成本函數可指示一阻擋狀況。可採用(例如)如本文中其他處描述之各種碰撞偵測方法。若另一或另一些機器人將或可能將阻擋給定機器人或給定機器人至一目標之移動,則控制傳遞至614。若另一或另一些機器人不會或可能不會(即,一相對低概率)阻擋給定機器人或給定機器人至一目標之移動,則控制傳遞至618。
視情況在614處,基於處理器之系統回應於在給定機器人沿著如由對應運動規劃(例如,第二運動規劃)指定之一軌跡移動時,給定機器人將或可能將被阻擋嘗試自前一目標(例如,第一目標I)轉變至一後續或後一或下一目標(例如,第二目標I+1)之一判定而選擇採取一或多個補救行動。
一補救行動之一實例包含產生一新的或經修訂或替換的運動規劃以使給定機器人轉變至前一目標(例如,產生一新的或經修訂或替換的第一運動規劃)。例如,一新的或經修訂或替換的運動規劃可將給定機器人或其部分定位於一第一目標位置、體積、區或空間處,但以不同於先前產生之第一運動規劃將已將給定機器人置於之一目標姿勢的一目標姿勢。不同目標姿勢可更易於使給定機器人轉變至後續目標(例如,第二目標I+1),藉此避免被困住或甚至鎖死。在至少一些實施方案中,於產生給定機器人之一新的或經修訂或替換的運動規劃(例如,產生一新的或經修訂或替換的第一運動規劃)時,可偏置或以其他方式引起基於處理器之系統產生具有不同於給定機器人之先前產生之運動規劃(例如,第一運動規劃)之目標姿勢的一目標姿勢的新的或經修訂或替換的運動規劃。例如,此可藉由至少暫時增加與經連接至對應於給定機器人之先前產生之運動規劃之一結束姿勢之節點的邊緣相關聯的一成本來達成。
基於處理器之系統可視情況至少部分基於與第一運動規劃及至少一或多個經修訂運動規劃之各者相關聯之延遲之一各自量的一比較,而在第一運動規劃與至少一或多個經修訂運動規劃之間選擇。例如,一第一運動規劃可係與在其時間期間一給定機器人將被另一機器人阻擋或可能被另一機器人阻擋且因此在能夠執行一第二運動規劃之前以一第一結束姿勢卡在一第一目標處的一第一延量遲(例如,90秒)相關聯。又例如,一第一經修訂的運動規劃可係與在其時間期間給定機器人將被另一機器人阻擋或可能被另一機器人阻擋且因此在能夠執行第二運動規劃之前以一第二結束姿勢卡在第一目標處的一第二延遲量(例如,60秒)相關聯。在此一實例中,基於處理器之系統可選擇第一經修訂運動規劃以供第一機器人執行,因為此將導致可用選項之最小延遲。作為一進一步實例,一第二經修訂的運動規劃可係與在其時間期間,給定機器人將被另一機器人阻擋或可能被另一機器人阻擋且因此在能夠執行第二運動規劃之前以一第三結束姿勢卡在第一目標處的一第三延遲量(例如,15秒)相關聯。在此一實例中,基於處理器之系統可選擇第二經修訂的運動規劃以供第一機器人執行,因為此將導致可用選項之最小延遲。雖然僅基於延遲、持續時間或延時來繪示選擇,但基於處理器之系統可將其他參數(例如碰撞之風險或概率、碰撞之嚴重性及/或能量之支出)納入考量。
一補救行動之另一實例包含若另一機器人正在阻擋或將可能阻擋給定機器人,則引起另一機器人移動。例如,此可包含引起另一機器人移開或以其他方式移動以免阻擋給定機器人沿著由給定機器人之(若干)經產生運動規劃(例如,第一運動規劃、第二運動規劃)指定之一軌跡移動。
一補救行動之又一實例包含產生具有將阻擋或可能阻擋給定機器人之一軌跡或經規劃軌跡之另一機器人之一新、經修訂或替換運動規劃例如以引起另一機器人以另一機器人不會阻擋或可能不會阻擋給定機器人沿著由給定機器人之(若干)經產生運動規劃(例如,第一運動規劃、第二運動規劃)指定之一軌跡之移動之一方式移動。
一補救行動之又一進一步實例包含判定或產生一組目標之一新順序,該組目標包含第一目標及至少第二目標。因此,一第一目標可變為一第二目標且一第二目標可變為第一目標。
視情況在616處,基於處理器之系統引起採取一或多個補救行動。例如,此可包含基於處理器之系統調用給定機器人之運動規劃之另一反覆。例如,此可替代地或另外包含基於處理器之系統調用正在阻擋或可能阻擋給定機器人之移動之一或多個其他機器人之運動規劃之另一反覆。例如,此可替代地或另外包含基於處理器之系統將控制信號或驅動信號發送或傳輸至一或多個運動控制器(例如,馬達控制器)以引起一或多個致動器移動一或多個其他機器人之一或多個連桿組以移動其他機器人以免阻擋或可能阻擋給定機器人。例如,此可替代地或另外包含判定或產生一組目標之一新順序,該組目標包含第一目標及至少第二目標。
在618處,基於處理器之系統提供實施選定路徑(例如,選定路徑、選定可行路徑、選定適合路徑、選定適合可行路徑)之一運動規劃以便控制產生其之運動規劃之給定機器人(例如,第一機器人R 1)之操作。例如,基於處理器之系統可將控制信號或驅動信號發送至一或多個運動控制器(例如,馬達控制器)以引起一或多個致動器移動一或多個連桿組以引起給定機器人或其部分(例如,附肢、末端執行器、臂端工具)沿著由運動規劃指定之一軌跡移動。
方法600可在620處終止(例如)直至再次被調用。替代地,方法600可重複直至(例如)藉由一斷電狀態或狀況確定地停止。在一些實施方案中,方法600可在一或多個處理器之一或多個核心上作為一多執行緒程序執行。
雖然依據一有序流程描述操作方法600,但各種動作或操作將在許多實施方案中同時或並行執行。通常,在一或多個機器人執行任務時,可實行一個機器人執行一個任務之運動規劃。因此,藉由機器人執行任務可與藉由一或多個運動規劃器執行運動規劃重疊或同時或並行。藉由機器人執行任務可與藉由其他機器人執行任務重疊或同時或並行。在一些實施方案中,一個機器人之運動規劃之至少某一部分可與一或多個其他機器人之運動規劃之至少某一部分重疊或同時或並行。
圖6B展示根據至少一個經繪示實施方案之用於執行一或多個機器人之運動規劃之一基於處理器之系統之一低階操作方法630。方法630可在(若干)機器人之一運行時間期間執行。替代地,方法630之一部分可在(若干)機器人之運行時間之前之一組態時間期間執行,且方法630之一部分可在(若干)機器人之運行時間期間執行。例如,可在執行方法500 (圖5)之運動規劃520時執行方法630,儘管運動規劃520不限於在方法630中描述且繪示之運動規劃。
可針對在一多機器人操作環境中操作之一個、兩個或更多個機器人執行方法630。例如,可針對各機器人(例如,一第一機器人R 1、一第二機器人R 2、一第三機器人R 3或甚至更多機器人)依序執行方法630。為了易於論述,關於一給定機器人(例如,第一機器人R 1)之控制描述方法630,其中在操作環境中之其他機器人(例如,第二機器人R 2、第三機器人R 3)潛在地表示對第一機器人之移動之障礙物。熟習此項技術者自本文中之論述將認知,此方法630可外推至在操作環境中存在兩個或更多個其他機器人之情況下對於一個機器人之運動規劃,或在操作環境中存在一個、兩個或更多個其他機器人之情況下對於兩個或更多個機器人之各者之運動規劃。此可(例如)藉由針對各機器人依序執行方法630及/或(例如)相對於呈現對一給定機器人之移動之潛在障礙物之其他機器人之各者針對該給定機器人連續反覆地執行方法630而執行。熟習此項技術者亦將認知,方法630可省略一些經繪示動作,包含額外動作,且方法630之許多動作可以不同於所繪示之一順序執行(execute或perform)及/或彼此同時執行(execute或perform)。
方法630可在一運行時間執行,運行時間係在其期間至少一個機器人在操作(例如,移動、執行任務)之一時段,例如,運行時間在一組態時間之後。方法630可藉由採取一或多個機器人控制系統之形式之一或多個基於處理器之系統執行。例如,機器人控制系統可共置或定位成「內建於」機器人之各自者。
方法630 (例如)回應於一機器人及/或機器人控制系統通電,回應於來自一呼叫常式(諸如執行方法500之一常式或執行方法600之一常式)之一呼叫或調用,回應於一運動規劃請求或在待針對一機器人執行之運動規劃請求之一佇列中之一運動規劃請求之接收或回應於待藉由一機器人執行之一任務之接收而在632開始。
在634處,基於處理器之系統使用運動規劃圖產生一或多個可行路徑。可行路徑係經由有效轉變自一起始或當前節點延伸至一目標節點之完整路徑。一可行路徑指定給定機器人遍歷對應於各自節點之各種姿勢之一可能軌跡。
應注意,經產生可行路徑之一或多者可並非一適合可行路徑,例如此係因為沿著路徑之一轉變或邊緣之一成本或成本函數或甚至沿著路徑之一經累積成本或經累積成本函數太高(例如,高於一臨限成本或值或量值)。基於處理器之系統可最終由於該等可行路徑不適用於藉由給定機器人執行一特定任務而拒絕其等,即使經由由該路徑定義之轉變執行該任務係可實行的且因此可行。因此,如下文參考636論述,基於處理器之系統可視情況(例如)基於一成本臨限值自一或多個可行路徑之組識別一或多個適合可行路徑。此外,如下文參考638論述,基於處理器之系統可選擇可行路徑之一者,或甚至例如經由一最小成本分析在識別適合可行路徑時選擇適合可行路徑之一者以識別一選定路徑(替代地被稱為一選定可行路徑)。
視情況在636處,基於處理器之系統自一或多個可行路徑識別一或多個適合路徑(亦可互換地稱為適合可行路徑或經識別適合可行路徑)。例如,基於處理器之系統可識別各具有等於或低於一臨限成本之跨各自可行路徑之一相關聯經累積成本之一組可行路徑。因此,該組適合可行路徑可包含滿足一些經定義成本條件或約束之該等可行路徑。如其他處提及,成本可反映各種參數,例如包含碰撞之風險或概率、碰撞之嚴重性、能量支出、執行或完成路徑或經指派任務之持續時間或延時。在識別適合可行路徑時,除成本條件之外或代替成本條件,基於處理器之系統亦可強制執行其他條件或約束。
視情況在638處,基於處理器之系統選擇一路徑(被稱為一選定路徑)。例如,基於處理器之系統可自一或多個可行路徑選擇一路徑(因此可互換地稱為一選定可行路徑)。例如,基於處理器之系統可視情況自一或多個經識別適合路徑選擇一路徑(因此可互換地稱為選定適合路徑或選定適合可行路徑)。例如,基於處理器之系統可對一組可行路徑或該組適合路徑執行一最小成本分析以找到具有全部可行路徑之最小成本或全部可行路徑之一相對低成本之一選定路徑。由於成本或成本函數至少部分代表碰撞檢查,故選擇一路徑係至少部分基於碰撞偵測或評估(例如,碰撞之風險或概率)。一成本值或成本函數可另外代表其他準則及/或參數,例如,在執行對應運動時,碰撞之嚴重性(若發生碰撞)、能量之支出及/或時間之支出等。基於處理器之系統可採用在本文中或在以引用的方式併入本文中之材料中描述之各種結構及演算法之任一者以例如經由對自具有相關聯成本值之運動規劃圖產生之可行路徑或適合路徑執行一最小成本分析而選擇一路徑(例如,選定路徑、選定可行路徑、選定適合路徑、選定適合可行路徑)。
視情況在640處,基於處理器之系統基於一或多個參數(例如,組合之彙總或總成本)選擇一多路徑組合或多運動規劃組合,例如,前一路徑或前一運動規劃(例如,第一路徑或第一運動規劃)與一後續路徑或後續運動規劃(例如,第二路徑或第二運動)之一組合。
例如,基於處理器之系統可產生各指定一當前或開始與一第一目標之間之一完整路徑之一第一組候選路徑或候選運動規劃。另外或替代地,基於處理器之系統可產生各指定第一目標與一後續、後一或第二目標之間之一完整路徑之一第二組候選路徑或候選運動規劃。例如,基於處理器之系統可基於一或多個準則自第一組選擇一個路徑或運動規劃及/或自第二組選擇一個路徑或運動規劃。
例如,基於處理器之系統可對各種組合執行一最小成本分析(各組合包含來自第一組候選者之一第一路徑或第一運動及來自第二組候選者之一第二路徑或第二運動)以尋找具有最小總彙總成本或具有自一當前或起始姿勢至一第N目標之一相對低總彙總成本之一組合,其中N係等於或大於2之一整數。由於成本或成本函數至少部分代表碰撞檢查,故選擇一組合係至少部分基於碰撞偵測或評估(例如,碰撞之風險或概率)。一成本值或成本函數可另外代表其他準則及/或參數,例如,在執行對應運動時,碰撞之嚴重性(若發生碰撞)、能量之支出及/或時間之支出等。基於處理器之系統可採用在本文中或在以引用的方式併入本文中之材料中描述之各種結構及演算法之任一者以例如經由對自運動規劃圖產生之具有相關聯成本值之可行路徑或適合路徑執行一最小成本分析而選擇一路徑(例如,選定路徑、選定可行路徑、選定適合路徑、選定適合可行路徑)。
雖然未明確繪示,但可識別且選擇一組合以最小化在到達兩個或更多個目標時經歷之姿勢或轉變之一總彙總數目。在一些例項中,此可有利地最小化延時及/或能量支出。應注意,用於在任何給定對姿勢之間轉變之一持續時間及/或能量支出可不一定等於用於某一其他對姿勢之持續時間及/或能量支出,因此最小化姿勢或轉變之總彙總數目可不一定限制或減少延時及/或能量支出。
方法630可在642處終止(例如)直至再次被調用。替代地,方法630可重複直至(例如)藉由一斷電狀態或狀況確定地停止。在一些實施方案中,方法630可在一或多個處理器之一或多個核心上作為一多執行緒程序執行。
雖然依據一有序流程描述操作方法630,但各種動作或操作將在許多實施方案中同時或並行執行。通常,在一或多個機器人執行任務時,可實行一個機器人執行一個任務之運動規劃。因此,藉由機器人執行任務可與藉由一或多個運動規劃器執行運動規劃重疊或同時或並行。藉由機器人執行任務可與藉由其他機器人執行任務重疊或同時或並行。在一些實施方案中,一個機器人之運動規劃之至少某一部分可與一或多個其他機器人之運動規劃之至少某一部分重疊或同時或並行。
圖7展示根據至少一個經繪示實施方案之用於控制一多機器人環境中之一或多個機器人之操作之一基於處理器之系統中之一選用操作方法700。例如,在一或多個機器人之一運行時間期間,可執行方法700作為執行方法500 (圖5)及/或執行方法600 (圖6A至圖6B)之部分。方法700可藉由採取一或多個機器人控制系統之形式之一或多個基於處理器之系統執行。例如,機器人控制系統可共置或「內建於」機器人之各自者。
方法700 (例如)回應於一機器人及/或機器人控制系統之一通電,回應於來自一呼叫常式(例如,方法500)之一呼叫或調用或回應於任務之一組或清單或佇列之接收而在702處開始。
視情況在704處,基於處理器之系統視情況判定一對應運動是否已完成。監控運動之完成可有利地容許基於處理器之系統在後續碰撞偵測或評估期間移除對應於運動之障礙物而不予以考量。基於處理器之系統可依賴於對應機器人之座標。座標可係基於來自運動控制器、致動器及/或感測器(例如,相機、旋轉編碼器、Reed開關)之用以判定一給定運動是否已完成之資訊。
視情況在706處,基於處理器之系統回應於一給定運動已完成之一判定而產生或傳輸一運動完成訊息。替代地,基於處理器之系統可設定或重設一旗標。
在708處,基於處理器之系統(例如,障礙物修剪器260,圖2)回應於已產生或接收一運動完成訊息或旗標已設定之一判定而修剪對應於給定運動之一或多個障礙物。例如,基於處理器之系統可自一障礙物佇列移除對應障礙物。此有利地容許碰撞偵測或評估在清空不再呈現為一障礙物之一掃掠體積或其他表示(例如,球體、定界框)之環境下繼續進行。又例如,基於處理器之系統可移除對應於表示一給定機器人之完成移動之一邊緣之一掃掠體積。此亦有利地容許追蹤運動及對應掃掠體積而無需追蹤運動或對應掃掠體積之時序。
方法700可在710處終止(例如)直至再次被調用。替代地,方法700可重複直至(例如)藉由一斷電狀態或狀況確實地停止。在一些實施方案中,方法700可在一或多個處理器之一或多個核心上作為一多執行緒程序執行。
實例實例1.一種用於控制一多機器人環境中之一或多個機器人之一基於處理器之系統之操作方法,該方法包括: 針對該一或多個機器人之一第一機器人, 藉由至少一個處理器針對一第一目標執行該第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處; 藉由至少一個處理器針對一第二目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢之複數個姿勢,該第二結束姿勢將該第一機器人之至少一部分定位於該第二目標處;及 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動。 實例2.如實例1之方法,其中執行該第一機器人之運動規劃包含判定該第一機器人沿著一軌跡移動是否將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率。 實例3.如實例2之方法,其進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率而引起該第二機器人移出該第一機器人之一路徑。 實例4.如實例2之方法,其進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率而引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑。 實例5.如實例2之方法,其進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率而藉由至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例6.如實例5之方法,其進一步包括: 引起該第一機器人根據該第一機器人之該經修訂運動規劃移動。 實例7.如實例1之方法,其中執行該第一機器人之運動規劃包含判定該第一機器人沿著一第一軌跡移動是否將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率。 實例8.如實例7之方法,其進一步包括: 回應於判定該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率而藉由至少一個處理器執行該第二機器人之運動規劃以判定該第二機器人之一運動規劃,該第二機器人之該運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之至少一個姿勢;及 引起該第二機器人根據該第二機器人之該第二軌跡移動。 實例9.如實例7之方法,其進一步包括: 回應於判定該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率而藉由至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人之該第二軌跡,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時在該第二機器人沿著該第二機器人之該第二軌跡移動時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例10.如實例9之方法,其進一步包括: 引起該第一機器人根據該第一機器人之該經修訂運動規劃移動。 實例11.如實例1至10中任一者之方法,其中引起該第一機器人移動包含在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動至該第一目標。 實例12.如實例1至10中任一者之方法,其中引起該第一機器人移動包含在引起該第一機器人移動至該第一目標之後引起該第一機器人移動至該第二目標。 實例13.如實例1至10中任一者之方法,其進一步包括: 藉由至少一個處理器針對一第三目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第三運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第三運動規劃指定用以使該第一機器人自該第二結束姿勢轉變至一第三結束姿勢之複數個姿勢,該第三結束姿勢將該第一機器人之至少一部分定位於該第三目標處;及 其中該引起該第一機器人移動在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第三運動規劃之後發生。 實例14.如實例1至10中任一者之方法,其中執行該第一機器人之運動規劃包括: 將至少該第二機器人表示為至少一個障礙物;及 藉由至少一個處理器相對於該至少一個障礙物之該表示執行該第一機器人之至少一部分之至少一個運動之碰撞偵測。 實例15.如實例1至10中任一者之方法,其中執行該第一機器人之運動規劃包括: 將至少該第二機器人之數個運動表示為至少一個障礙物;及 藉由至少一個處理器相對於該至少一個障礙物之該表示執行該第一機器人之至少一部分之至少一個運動之碰撞偵測。 實例16.如實例15之方法,其中將至少該第二機器人之數個運動表示為障礙物包含:使用一組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠之一各自體積。 實例17.如實例16之方法,其進一步包括: 藉由至少一個處理器接收先前在一預運行時間運算之該組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠之一各自體積。 實例18.如實例15之方法,其中將該第二機器人之數個運動表示為障礙物包含:將該機器人之該等運動表示為以下至少一者:一佔用柵格、一階層樹或一歐幾里德距離場。 實例19.如實例1至10中任一者之方法,其進一步包括: 藉由至少一個處理器針對至少該第一機器人及該第二機器人之各者產生一各自運動規劃圖,各運動規劃圖包括複數個節點及邊緣,該等節點表示該等各自第一及第二機器人之各自狀態且該等邊緣表示由藉由該等各自邊緣連接之一各自節點對之該等各自者表示之各自狀態之間之有效轉變。 實例20.如實例1至10中任一者之方法,其中該執行該第一機器人之該運動規劃以判定該第一機器人之一第一運動規劃及該執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃兩者皆在該一或多個機器人之至少一者之一運行時間期間發生。 實例21.如實例1至10中任一者之方法,其進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率而藉由該至少一個處理器採取一補救行動。 實例22.如實例21之方法,其進一步包括: 藉由該至少一個處理器自一組兩個或更多個經定義補救行動自主地選擇待採取之該補救行動。 實例23.如實例21或22中任一者之方法,其中藉由該至少一個處理器採取一補救行動包含採取以下補救行動之至少一者:i)藉由該至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑;iii)藉由該至少一個處理器執行該第二機器人之運動規劃以判定該第二機器人之一經修訂運動規劃,該經修訂運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。 實例24.如實例1至10中任一者之方法,其進一步包括: 藉由該至少一個處理器至少部分基於跨兩個或更多個目標之各自者之兩個或更多個運動規劃之一聚合成本自一組兩個或更多個候選運動規劃自主地選擇一運動規劃。 實例25.一種用於控制一或多個機器人之基於處理器之系統,該系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作之處理器可執行指令: 執行如實例1至24中任一者之方法。 實例26.一種用於控制一或多個機器人之基於處理器之系統,該系統包括: 一第一機器人,其在一機器人環境中; 至少一第二機器人,其在該機器人環境中; 至少一個處理器;及 至少一個非暫時性處理器可讀媒體,其通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作之處理器可執行指令: 針對該一或多個機器人之一第一機器人, 針對一第一目標執行該第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,其中該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處; 針對一第二目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,其中該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢之複數個姿勢,該第二結束姿勢將該第一機器人之至少一部分定位於該第二目標處;且 在執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動。 實例27.如實例26之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器判定該第一機器人沿著一軌跡移動是否將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率。 實例28.如實例27之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率之一判定而引起該第二機器人移出該第一機器人之一路徑。 實例29.如實例27之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率之一判定而引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑。 實例30.如實例27之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率之一判定而執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例31.如實例30之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 引起該第一機器人根據該第一機器人之該經修訂運動規劃移動。 實例32.如實例26之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器判定該第一機器人沿著一第一軌跡移動是否將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率。 實例33.如請求項32之基於處理器之系統,其中該等處理器可執行指令在藉由至少一個處理器執行時引起該至少一個處理器進一步: 回應於該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率之一判定而執行該第二機器人之運動規劃以判定該第二機器人之一運動規劃,該第二機器人之該運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之至少一個姿勢;且 引起該第二機器人根據該第二機器人之該第二軌跡移動。 實例34.如實例32之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率之一判定而執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人之該第二軌跡,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時在該第二機器人沿著該第二機器人之該第二軌跡移動時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例35.如實例34之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 引起該第一機器人根據該第一機器人之該經修訂運動規劃移動。 實例36.如實例26至35中任一者之基於處理器之系統,其中為了引起該第一機器人移動,該至少一個處理器在執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動至該第一目標。 實例37.如實例26至35中任一者之基於處理器之系統,其中為了引起該第一機器人移動,該至少一個處理器在引起該第一機器人移動至該第一目標之後引起該第一機器人移動至該第二目標。 38.如實例26至35中任一者之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 針對一第三目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第三運動規劃,其中該運動規劃至少考量該一或多個機器人之該第二機器人,該第三運動規劃指定用以使該第一機器人自該第二結束姿勢轉變至一第三結束姿勢之複數個姿勢,該第三結束姿勢將該第一機器人之至少一部分定位於該第三目標處;及 其中引起該第一機器人移動在執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第三運動規劃之後發生。 實例39.如實例26至35中任一者之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器: 將至少該第二機器人表示為至少一個障礙物;且 相對於該至少一個障礙物之該表示執行該第一機器人之至少一部分之至少一個運動之碰撞偵測。 實例40.如實例26至35中任一者之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器: 將至少該第二機器人之數個運動表示為至少一個障礙物;及 相對於該至少一個障礙物之該表示執行該第一機器人之至少一部分之至少一個運動之碰撞偵測。 實例41.如實例40之基於處理器之系統,其中為了將至少該第二機器人之數個運動表示為障礙物,該至少一個處理器使用一組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠之一各自體積。 實例42.如實例41之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 接收先前在一預運行時間運算之該組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠之一各自體積。 43.如實例40之基於處理器之系統,其中為了將該第二機器人之數個運動表示為障礙物,該至少一個處理器:將該機器人之該等運動表示為以下至少一者:一佔用柵格、一階層樹或一歐幾里德距離場。 實例44.如實例26至35中任一者之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 針對至少該第一機器人及該第二機器人之各者產生一各自運動規劃圖,各運動規劃圖包括複數個節點及邊緣,該等節點表示該等各自第一及第二機器人之各自狀態且該等邊緣表示由藉由該等邊緣連接之一各自節點對之該等各自者表示之各自狀態之間之有效轉變。 實例45.如實例26至35中任一者之基於處理器之系統,其中該執行該第一機器人之該運動規劃以判定該第一機器人之一第一運動規劃及該執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃兩者皆在該一或多個機器人之至少一者之一運行時間期間發生。 實例46.如實例26至36中任一者之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率之一判定而採取一補救行動。 實例47.如實例46之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 自一組兩個或更多個經定義補救行動自主地選擇待採取之該補救行動。 實例48.如實例46或47中任一者之基於處理器之系統,其中為了採取一補救行動,該至少一個處理器引起以下補救行動之至少一者發生:i)藉由至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑;iii)引起該第二機器人之運動規劃之執行以判定該第二機器人之一經修訂運動規劃,該經修訂運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。 實例49.如實例26至36中任一者之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 至少部分基於跨兩個或更多個目標之各自者之兩個或更多個運動規劃之一聚合成本自一組兩個或更多個候選運動規劃自主地選擇一運動規劃。 實例50.一種用於控制一多機器人環境中之一或多個機器人之一基於處理器之系統之操作方法,該方法包括: 藉由至少一個處理器執行該一或多個機器人之一第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於一第一目標處; 藉由至少一個處理器執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢之複數個姿勢,該第二結束姿勢將該第一機器人之至少一部分定位於一第二目標處; 判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時是否將被困住、延遲或鎖死之至少一者;及 回應於判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時將被困住、延遲或鎖死之至少一者,藉由該至少一個處理器引起至少一個補救行動之執行。 實例51.如實例50之方法,其進一步包括: 藉由該至少一個處理器自一組該等補救行動自主地選擇待採取之該補救行動。 實例52.如實例50或51中任一者之方法,其中藉由該至少一個處理器引起一補救行動之該執行包含引起以下補救行動之至少一者:i)藉由該至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑;iii)藉由該至少一個處理器執行該第二機器人之運動規劃以判定該第二機器人之一經修訂運動規劃,該經修訂運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。 實例53.如實例50或51中任一者之方法,其中藉由該至少一個處理器引起一補救行動之該執行包含引起:藉由該至少一個處理器對該第一機器人之一進一步運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例54.如實例53之方法,其進一步包括: 至少部分基於與該第一運動規劃及至少該經修訂運動規劃之各者相關聯之延遲之一各自量之一比較而在該第一運動規劃與至少該經修訂運動規劃之間選擇。 實例55.如實例50至54中任一者之方法,其進一步包括: 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動。 實例56.一種用於控制一或多個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作之處理器可執行指令: 執行如實例50至55中任一者之方法。 實例57.一種用於控制一或多個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作之處理器可執行指令: 執行該一或多個機器人之一第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於一第一目標處; 執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢之複數個姿勢,該第二結束姿勢將該第一機器人之至少一部分定位於一第二目標處;且 判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時是否將被困住、延遲或鎖死之至少一者;且 回應於該第一機器人在自該第一運動規劃轉變至該第二運動規劃時將被困住、延遲或鎖死之至少一者之一判定而引起至少一個補救行動之執行。 實例58.如實例57之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時引起該至少一個處理器進一步: 自一組該等補救行動自主地選擇待引起之該補救行動。 實例59.如實例57或58中任一者之基於處理器之系統,其中為了引起至少一個補救行動之執行,該至少一個處理器引起以下補救行動之至少一者之執行:i)進一步運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人之一路徑;iii)執行該第二機器人之運動規劃以判定該第二機器人之一經修訂運動規劃,該經修訂運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外之複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。 實例60.如實例57或58中任一者之基於處理器之系統,其中為了引起一補救行動之執行,該至少一個處理器引起對該第一機器人之一進一步運動規劃以判定該第一機器人之一經修訂運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率之複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處。 實例61.如實例60之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時引起該至少一個處理器進一步: 至少部分基於與該第一運動規劃及至少該經修訂運動規劃之各者相關聯之延遲之一各自量之一比較而在該第一運動規劃與至少該經修訂運動規劃之間選擇。 實例62.如實例57至61中任一者之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時引起該至少一個處理器進一步: 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動。
前述詳細描述已經由使用方塊圖、示意圖及實例而闡述裝置及/或程序之各項實施例。在此等方塊圖、示意圖及實例含有一或多個功能及/或操作之範圍內,熟習此項技術者應理解,此等方塊圖、流程圖或實例內之各功能及/或操作可由廣範圍之硬體、軟體、韌體或基本上其等之任何組合個別地及/或共同地實施。在一項實施例中,本標的物可經由布林電路、特定應用積體電路(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號;2019年2月5日申請之標題為「MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MORE PROCESSRS AND IMPROVED OPERATION OF SAME」且發表為WO 2019/156984之國際專利申請案第PCT/US2019/016700號;2020年5月26日申請之標題為「APPARATUS, METHODS AND ARTICLES TO FACILITATE MOTION PLANNING ENVIRONMENTS HAVING DYNAMIC OBSTACLES」且發表為WO 2020/247207之國際專利申請案第PCT/US2020/034551號;2020年6月23日申請之標題為「MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE」且發表為WO 2020/263861之國際專利申請案第PCT/US2020/039193號;2020年8月21日申請之標題為「MOTION PLANNING FOR ROBOTS TO OPTIMIZE VELOCITY WHILE MAINTAINING LIMITS ON ACCELERATION AND JERK」且發表為WO 2021041223之國際專利申請案第PCT/US2020/047429號;2021年1月20日申請之標題為「CONFIGURATION OF ROBOTS IN MULTI-ROBOT OPERATIONAL ENVIRONMENT」且發表為US 2021/0220994之美國申請案第17/153,662號;及2022年3月11日申請之標題為「MOTION PLANNING AND CONTROL FOR ROBOTS IN SHARED WORKSPACE EMPLOYING STAGING POSES」之美國專利申請案第63/318,933號。鑑於上文詳細描述,可對實施例進行此等及其他改變。一般言之,在以下發明申請專利範圍中,所採用之術語不應被解釋為將發明申請專利範圍限於說明書及發明申請專利範圍中揭示之特定實施例,而應被解釋為包含全部可能實施例以及此等發明申請專利範圍所授權之等效物之全範疇。因此,發明申請專利範圍不受本發明限制。
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:網路基礎設施 200:機器人控制系統/第一機器人控制系統 200b:其他機器人控制系統 202:第一機器人 204a:第一運動規劃器 204b:其他運動規劃器 206a:第一運動規劃 206b:其他運動規劃 208:運動規劃圖 209:運動完成訊息 210:網路 211:掃掠體積表示 212:源 214:節點 215:任務規範 216:邊緣 218a:致動器 218b:致動器 218c:致動器 220:運動控制器 222:處理器 224a:系統記憶體 224b:磁碟機/驅動機 226:唯讀記憶體(ROM) 227:網路介面 228:隨機存取記憶體(RAM) 230:快閃記憶體 232:基本輸入/輸出系統(BIOS) 234:系統匯流排 236:作業系統 238:應用程式 240:其他程式或模組 242:程式資料 250:運動轉換器 251:軌跡預測器 252:碰撞偵測器 253:成本設定器 254:路徑尋找器/路徑識別器 255:路徑分析器 256:前瞻估測器 257:多路徑分析器 258:場可程式化閘陣列(FPGA) 260:修剪器 262:選用感測器 263:環境轉換器 300a:運動規劃圖 300b:運動規劃圖/「經修訂」運動規劃圖 300c:運動規劃圖 300d:運動規劃圖 308a至308p:節點 310a至310h:邊緣 312a:第一可行路徑 312b:新、經修訂或替換第一可行路徑 312c:新、經修訂或替換第一可行路徑 314:可行路徑 400:操作方法 402:操作 404:操作 406:操作 408:操作 500:操作方法 502:操作 504:操作 506:操作 508:操作 510:操作 512:操作 514:操作 516:操作 518:操作 520:操作 522:操作 524:操作 526:操作 528:操作 530:操作 532:操作 534:操作 600:操作方法 602:操作 604:操作 606:操作 608:操作 610:操作 612:操作 614:操作 616:操作 618:操作 620:操作 630:操作方法 632:操作 634:操作 636:操作 638:操作 640:操作 642:操作 700:操作方法 702:操作 704:操作 706:操作 708:操作 710:操作
在圖式中,相同元件符號識別類似元件或運動。圖式中之元件之大小及相對位置未必按比例繪製。例如,各種元件之形狀及角度未按比例繪製,且此等元件之一些經任意放大及定位以改良圖式易讀性。此外,如繪製之元件之特定形狀不旨在傳達關於特定元件之實際形狀之任何資訊,且已僅為了易於在圖式中辨識而選擇。
圖1係根據至少一個經繪示實施方案之一機器人系統之一示意圖,該機器人系統包含在一共享工作空間中操作以實行任務之複數個機器人,且包含動態地產生考量機器人之其他者之經規劃運動之機器人之運動規劃之運動規劃器,且視情況包含一感知子系統。
圖2係根據至少一個經繪示實施方案之其中一第一機器人經由一機器人控制系統控制之一環境之一功能方塊圖,該機器人控制系統包含視情況將運動規劃提供至其他機器人之其他運動規劃器之一運動規劃器,且進一步包含可與運動規劃器分開且相異之一規劃圖源。
圖3A係根據至少一個經繪示實施方案之在一共享工作空間中操作之一機器人之一例示性運動規劃圖,其具有在表示一當前姿勢之一當前節點與一第一目標及將一機器人或其部分定位於第一目標處之一對應第一姿勢之間之一路徑。
圖3B係根據至少一個經繪示實施方案之在一共享工作空間中操作之機器人之一例示性運動規劃圖,其具有第一目標節點與一第二目標及將機器人或其部分定位於第二目標處之一對應第二姿勢之間之一路徑。
圖3C係根據至少一個經繪示實施方案之在一共享工作空間中操作之機器人之一例示性運動規劃圖,其具有在表示當前姿勢之當前節點與第一目標及將機器人或其部分定位於第一目標處之一對應替代第一姿勢之間之一新或經修訂或替換路徑。
圖3D係根據至少一個經繪示實施方案之在一共享工作空間中操作之機器人之一例示性運動規劃圖,其具有在表示當前姿勢之當前節點與第一目標及將機器人或其部分定位於第一目標處之一對應替代第一姿勢之間之另一新或經修訂或替換路徑。
圖4係展示根據至少一個經繪示實施方案之用於產生運動規劃圖及掃掠體積之一基於處理器之系統中之一操作方法之一流程圖。
圖5係展示根據至少一個經繪示實施方案之用於(例如)在機器人之一運行時間期間控制一或多個機器人之一基於處理器之系統之一操作方法之一流程圖。
圖6A係展示根據至少一個經繪示實施方案之可作為執行圖5之方法之部分執行之用於(例如)在機器人之一運行時間期間執行一或多個機器人之運動規劃之一基於處理器之系統之一操作方法之一高階流程圖。
圖6B係展示根據至少一個經繪示實施方案之可作為執行圖5及圖6A之方法之部分執行之用於(例如)在機器人之一運行時間期間執行一或多個機器人之運動規劃之一基於處理器之系統之一操作方法之一低階流程圖。
圖7係展示根據至少一個經繪示實施方案之可作為執行圖5、圖6A或圖6B之方法之部分執行之用於控制一多機器人環境中之一或多個機器人之操作之一基於處理器之系統中之一操作方法之一流程圖。
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 (62)

  1. 一種用於控制一多機器人環境中之一或多個機器人之一基於處理器之系統之操作之方法,該方法包括: 針對該一或多個機器人之一第一機器人, 藉由至少一個處理器,針對一第一目標執行該第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢的複數個姿勢,該第一結束姿勢將該第一機器人之至少一部分定位於該第一目標處; 藉由至少一個處理器,針對一第二目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢的複數個姿勢,該第二結束姿勢將該第一機器人之至少一部分定位於該第二目標處;及 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後,引起該第一機器人移動。
  2. 如請求項1之方法,其中執行該第一機器人之運動規劃包含判定該第一機器人沿著一軌跡移動是否將導致與該第二機器人的一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率。
  3. 如請求項2之方法,進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人的一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率而引起該第二機器人移出該第一機器人的一路徑。
  4. 如請求項2之方法,進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人的一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率而引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑。
  5. 如請求項2之方法,進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率而藉由至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  6. 如請求項5之方法,進一步包括: 引起該第一機器人根據該第一機器人之該經修訂的運動規劃來移動。
  7. 如請求項1之方法,其中執行該第一機器人之運動規劃包含判定該第一機器人沿著一第一軌跡移動是否將導致與沿著一第二軌跡移動之該第二機器人的一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞的一概率。
  8. 如請求項7之方法,進一步包括: 回應於判定該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人的一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞的一概率而藉由至少一個處理器執行該第二機器人之運動規劃以判定該第二機器人之一運動規劃,該第二機器人之該運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的至少一個姿勢;及 引起該第二機器人根據該第二機器人之該第二軌跡來移動。
  9. 如請求項7之方法,進一步包括: 回應於判定該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人的一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞的一概率而藉由至少一個處理器來執行該第一機器人之運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人的該第二軌跡,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時在該第二機器人沿著該第二機器人之該第二軌跡移動時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  10. 如請求項9之方法,進一步包括: 引起該第一機器人根據該第一機器人之該經修訂的運動規劃來移動。
  11. 如請求項1至10中任一項之方法,其中引起該第一機器人移動包含在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動至該第一目標。
  12. 如請求項1至10中任一項之方法,其中引起該第一機器人移動包含在引起該第一機器人移動至該第一目標之後引起該第一機器人移動至該第二目標。
  13. 如請求項1至10中任一項之方法,進一步包括: 藉由至少一個處理器,針對一第三目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第三運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第三運動規劃指定用以使該第一機器人自該第二結束姿勢轉變至一第三結束姿勢的複數個姿勢,該第三結束姿勢將該第一機器人的至少一部分定位於該第三目標處, 其中該引起該第一機器人移動在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第三運動規劃之後發生。
  14. 如請求項1至10中任一項之方法,其中執行該第一機器人之運動規劃包括: 將至少該第二機器人表示為至少一個障礙物;及 藉由至少一個處理器,相對於該至少一個障礙物之該表示,執行該第一機器人之至少一部分之至少一個運動的碰撞偵測。
  15. 如請求項1至10中任一項之方法,其中執行該第一機器人之運動規劃包括: 將至少該第二機器人之數個運動表示為至少一個障礙物;及 藉由至少一個處理器,相對於該至少一個障礙物之該表示,執行該第一機器人之至少一部分之至少一個運動的碰撞偵測。
  16. 如請求項15之方法,其中將至少該第二機器人之數個運動表示為障礙物包含:使用一組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時,由該第二機器人之該部分掃掠的一各自體積。
  17. 如請求項16之方法,進一步包括: 藉由至少一個處理器接收先前在一預運行時間運算的該組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠的一各自體積。
  18. 如請求項15之方法,其中將該第二機器人之數個運動表示為障礙物包含:將該機器人之該等運動表示為以下至少一者:一佔用柵格、一階層樹,或一歐幾里德距離場。
  19. 如請求項1至10中任一項之方法,進一步包括: 藉由至少一個處理器,針對至少該第一機器人及該第二機器人之各者產生一各自運動規劃圖,各運動規劃圖包括複數個節點及邊緣,該等節點表示該等各自第一及第二機器人之各自狀態且該等邊緣表示由藉由該等各自邊緣連接之一各自節點對之該等各自者表示之各自狀態之間的有效轉變。
  20. 如請求項1至10中任一項之方法,其中該執行該第一機器人之該運動規劃以判定該第一機器人之一第一運動規劃及該執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃兩者皆在該一或多個機器人之至少一者的一運行時間期間發生。
  21. 如請求項1至10中任一項之方法,進一步包括: 回應於判定該第一機器人之一軌跡將導致與該第二機器人的一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率,而藉由該至少一個處理器來採取一補救行動。
  22. 如請求項21之方法,進一步包括: 藉由該至少一個處理器,自一組兩個或更多個經定義補救行動自主地選擇待採取的該補救行動。
  23. 如請求項21或22中任一項之方法,其中藉由該至少一個處理器採取一補救行動包含採取以下補救行動中之至少一者:i)藉由該至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑;iii)藉由該至少一個處理器執行該第二機器人之運動規劃以判定該第二機器人之一經修訂的運動規劃,該經修訂的運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。
  24. 如請求項1至10中任一項之方法,進一步包括: 藉由該至少一個處理器,至少部分基於跨兩個或更多個目標之各自者之兩個或更多個運動規劃的一聚合成本,自一組兩個或更多個候選運動規劃自主地選擇一運動規劃。
  25. 一種用於控制一或多個機器人之基於處理器之系統,該系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其經通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作的處理器可執行指令: 執行如請求項1至24中任一項之方法。
  26. 一種用於控制一或多個機器人之基於處理器之系統,該系統包括: 一第一機器人,其在一機器人環境中; 至少一第二機器人,其在該機器人環境中; 至少一個處理器;及 至少一個非暫時性處理器可讀媒體,其經通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作的處理器可執行指令: 針對該一或多個機器人之一第一機器人, 針對一第一目標執行該第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,其中該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處; 針對一第二目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,其中該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢的複數個姿勢,該第二結束姿勢將該第一機器人的至少一部分定位於該第二目標處;且 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後,引起該第一機器人移動。
  27. 如請求項26之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器判定該第一機器人沿著一軌跡移動是否將導致與該第二機器人的一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞的一概率。
  28. 如請求項27之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率的一判定而引起該第二機器人移出該第一機器人的一路徑。
  29. 如請求項27之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率的一判定而引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑。
  30. 如請求項27之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率的一判定而執行該第一機器人的運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  31. 如請求項30之基於處理器之系統,其中該等處理器可執行指令在經執行時引起該至少一個處理器進一步: 引起該第一機器人根據該第一機器人之該經修訂的運動規劃來移動。
  32. 如請求項26之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器判定該第一機器人沿著一第一軌跡移動是否將導致與沿著一第二軌跡移動之該第二機器人的一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞的一概率。
  33. 如請求項32之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 回應於該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率的一判定而執行該第二機器人的運動規劃以判定該第二機器人的一運動規劃,該第二機器人之該運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的至少一個姿勢;且 引起該第二機器人根據該第二機器人之該第二軌跡來移動。
  34. 如請求項32之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 回應於該第一機器人沿著一第一軌跡移動將導致與沿著一第二軌跡移動之該第二機器人之一碰撞或具有超過一臨限概率之導致與沿著一第二軌跡移動之該第二機器人之一碰撞之一概率的一判定而執行該第一機器人的運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人的該第二軌跡,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時在該第二機器人沿著該第二機器人之該第二軌跡移動時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  35. 如請求項34之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 引起該第一機器人根據該第一機器人之該經修訂的運動規劃來移動。
  36. 如請求項26至35中任一項之基於處理器之系統,其中為了引起該第一機器人移動,該至少一個處理器在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後引起該第一機器人移動至該第一目標。
  37. 如請求項26至34中任一項之基於處理器之系統,其中為了引起該第一機器人移動,該至少一個處理器在引起該第一機器人移動至該第一目標之後引起該第一機器人移動至該第二目標。
  38. 如請求項26至35中任一項之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 針對一第三目標執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第三運動規劃,其中該運動規劃至少考量該一或多個機器人之該第二機器人,該第三運動規劃指定用以使該第一機器人自該第二結束姿勢轉變至一第三結束姿勢的複數個姿勢,該第三結束姿勢將該第一機器人的至少一部分定位於該第三目標處, 其中引起該第一機器人移動在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第三運動規劃之後發生。
  39. 如請求項26至35中任一項之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器: 將至少該第二機器人表示為至少一個障礙物;且 相對於該至少一個障礙物之該表示,執行該第一機器人之至少一部分之至少一個運動的碰撞偵測。
  40. 如請求項26至35中任一項之基於處理器之系統,其中為了執行該第一機器人之運動規劃,該至少一個處理器: 將至少該第二機器人之數個運動表示為至少一個障礙物;及 相對於該至少一個障礙物之該表示執行該第一機器人之至少一部分之至少一個運動之碰撞偵測。
  41. 如請求項40之基於處理器之系統,其中為了將至少該第二機器人之數個運動表示為障礙物,該至少一個處理器使用一組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠的一各自體積。
  42. 如請求項41之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 接收先前在一預運行時間運算之該組掃掠體積,該等掃掠體積之各者表示在該第二機器人之至少一部分沿著由該各自運動表示之一軌跡移動時由該第二機器人之該部分掃掠的一各自體積。
  43. 如請求項40之基於處理器之系統,其中為了將該第二機器人之數個運動表示為障礙物,該至少一個處理器:將該機器人之該等運動表示為以下至少一者:一佔用柵格、一階層樹,或一歐幾里德距離場。
  44. 如請求項26至35中任一項之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 針對至少該第一機器人及該第二機器人之各者產生一各自運動規劃圖,各運動規劃圖包括複數個節點及邊緣,該等節點表示該等各自第一及第二機器人之各自狀態且該等邊緣表示由藉由該等邊緣連接之一各自節點對之該等各自者表示之各自狀態之間的有效轉變。
  45. 如請求項26至35中任一項之基於處理器之系統,其中該執行該第一機器人之該運動規劃以判定該第一機器人之一第一運動規劃及該執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃兩者皆在該一或多個機器人之至少一者的一運行時間期間發生。
  46. 如請求項26至36中任一項之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 回應於該第一機器人之一軌跡,將導致與該第二機器人之一碰撞或具有超過一臨限概率之導致與該第二機器人之一碰撞之一概率的一判定而採取一補救行動。
  47. 如請求項46之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 自一組兩個或更多個經定義補救行動,自主地選擇待採取的該補救行動。
  48. 如請求項46或47中任一項之基於處理器之系統,其中為了採取一補救行動,該至少一個處理器引起以下補救行動中之至少一者發生:i)藉由至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑;iii)引起該第二機器人之運動規劃之執行以判定該第二機器人之一經修訂的運動規劃,該經修訂的運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。
  49. 如請求項26至36中任一項之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 至少部分基於跨兩個或更多個目標之各自者之兩個或更多個運動規劃的一聚合成本,自一組兩個或更多個候選運動規劃自主地選擇一運動規劃。
  50. 一種用於控制一多機器人環境中之一或多個機器人之一基於處理器之系統之操作之方法,該方法包括: 藉由至少一個處理器,執行該一或多個機器人之一第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於一第一目標處; 藉由至少一個處理器,執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢的複數個姿勢,該第二結束姿勢將該第一機器人的至少一部分定位於一第二目標處; 判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時是否將被困住、延遲或鎖死之至少一者;及 回應於判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時將被困住、延遲或鎖死之至少一者,藉由該至少一個處理器引起至少一個補救行動的執行。
  51. 如請求項50之方法,進一步包括: 藉由該至少一個處理器,自一組該等補救行動自主地選擇待採取之該補救行動。
  52. 如請求項50或51中任一項之方法,其中藉由該至少一個處理器引起一補救行動之該執行包含引起以下補救行動中之至少一者:i)藉由該至少一個處理器執行該第一機器人之運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑;iii)藉由該至少一個處理器,執行該第二機器人之運動規劃以判定該第二機器人之一經修訂的運動規劃,該經修訂的運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。
  53. 如請求項50或51中任一項之方法,其中藉由該至少一個處理器引起一補救行動之該執行包含引起:藉由該至少一個處理器對該第一機器人之一進一步運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  54. 如請求項53之方法,進一步包括: 至少部分基於與該第一運動規劃及至少該經修訂之運動規劃之各者相關聯之延遲之一各自量的一比較,而在該第一運動規劃與至少該經修訂的運動規劃之間選擇。
  55. 如請求項50至54中任一項之方法,進一步包括: 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後,引起該第一機器人移動。
  56. 一種用於控制一或多個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其經通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作的處理器可執行指令: 執行如請求項50至55中任一項之方法。
  57. 一種用於控制一或多個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器; 至少一個非暫時性處理器可讀媒體,其經通信地耦合至該至少一個處理器且儲存在藉由該至少一個處理器執行時引起該至少一個處理器進行以下操作的處理器可執行指令: 執行該一或多個機器人之一第一機器人之運動規劃以判定該第一機器人之一第一運動規劃,該運動規劃至少考量該一或多個機器人之一第二機器人,該第一運動規劃指定用以使該第一機器人自一個姿勢轉變至一第一結束姿勢的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於一第一目標處; 執行該第一機器人之運動規劃以嘗試判定該第一機器人之一第二運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該第二運動規劃指定用以使該第一機器人自該第一結束姿勢轉變至一第二結束姿勢的複數個姿勢,該第二結束姿勢將該第一機器人的至少一部分定位於一第二目標處;且 判定該第一機器人在自該第一運動規劃轉變至該第二運動規劃時是否將被困住、延遲或鎖死之至少一者;及 回應於該第一機器人在自該第一運動規劃轉變至該第二運動規劃時將被困住、延遲或鎖死之至少一者的一判定,而引起至少一個補救行動的執行。
  58. 如請求項57之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時引起該至少一個處理器進一步: 自一組該等補救行動自主地選擇待引起之該補救行動。
  59. 如請求項57或58中任一項之基於處理器之系統,其中為了引起至少一個補救行動之執行,該至少一個處理器引起以下補救行動中之至少一者之執行:i)進一步運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人之碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處;ii)引起該第二機器人移出如由該第一機器人之該第一運動規劃或該第一機器人之該第二運動規劃之至少一者指定之該第一機器人的一路徑;iii)執行該第二機器人之運動規劃以判定該第二機器人之一經修訂的運動規劃,該經修訂的運動規劃指定用以使該第二機器人轉變至該第一機器人之一路徑之外的複數個姿勢;及iv)判定一組目標之一新順序,該組目標包含該第一目標及至少該第二目標。
  60. 如請求項57或58中任一項之基於處理器之系統,其中為了引起一補救行動之執行,該至少一個處理器引起對該第一機器人之一進一步運動規劃以判定該第一機器人之一經修訂的運動規劃,該運動規劃至少考量該一或多個機器人之該第二機器人,該經修訂的運動規劃指定用以使該第一機器人自一個姿勢轉變至該第一結束姿勢同時避免碰撞或至少減小與該第二機器人碰撞之一概率的複數個姿勢,該第一結束姿勢將該第一機器人的至少一部分定位於該第一目標處。
  61. 如請求項60之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時引起該至少一個處理器進一步: 至少部分基於與該第一運動規劃及至少該經修訂運動規劃之各者相關聯之延遲之一各自量的一比較,而在該第一運動規劃與至少該經修訂運動規劃之間選擇。
  62. 如請求項57至61中任一項之基於處理器之系統,其中該等處理器可執行指令在被執行時引起該至少一個處理器進一步: 在該執行該第一機器人之運動規劃以嘗試判定該第一機器人之該第二運動規劃之後,引起該第一機器人移動。
TW112111455A 2022-04-06 2023-03-27 採用前瞻規劃之共享工作空間中機器人的運動規劃和控制 TW202406697A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263327917P 2022-04-06 2022-04-06
US63/327,917 2022-04-06

Publications (1)

Publication Number Publication Date
TW202406697A true TW202406697A (zh) 2024-02-16

Family

ID=88243376

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112111455A TW202406697A (zh) 2022-04-06 2023-03-27 採用前瞻規劃之共享工作空間中機器人的運動規劃和控制

Country Status (2)

Country Link
TW (1) TW202406697A (zh)
WO (1) WO2023196240A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITTO20110994A1 (it) * 2011-10-31 2013-05-01 Comau Spa Metodo per il controllo di almeno due robot aventi rispettivi spazi di lavoro includenti almeno una regione in comune
EP4129581A1 (en) * 2017-05-18 2023-02-08 KUKA Hungária Kft. Robot motion planning for avoiding collision with moving obstacles
WO2020005993A1 (en) * 2018-06-25 2020-01-02 X Development Llc Robot coordination in a shared workspace
TW202107232A (zh) * 2019-06-24 2021-02-16 美商即時機器人股份有限公司 用於多個機械手臂於共用工作空間中之移動規劃
US11745345B2 (en) * 2019-08-30 2023-09-05 Intrinsic Innovation Llc Planning by work volumes to avoid conflicts

Also Published As

Publication number Publication date
WO2023196240A1 (en) 2023-10-12

Similar Documents

Publication Publication Date Title
JP7332199B2 (ja) 共用ワークスペースにおける複数のロボットの動作計画
JP7141665B2 (ja) ロボットの動作計画に役立つ衝突検出
JP6598090B2 (ja) 記憶媒体、ロボット動作を計画する方法、ロボット動作を計画するハードウェア、及びロボット
US9649765B2 (en) Reducing energy consumption of industrial robots by using new methods for motion path programming
JP7489727B2 (ja) マルチロボット運用環境におけるロボットの構成
US20220057803A1 (en) Apparatus, method and article to facilitate motion planning in an environment having dynamic objects
JP2022536263A (ja) 動的障害物を有する環境における動作計画を容易にする装置、方法及び物品
US20110153080A1 (en) Method and apparatus for industrial robotic pathscycle time optimization using fly by
JP2012232408A (ja) マルチロボットシステムのデッドロックを自動的に防止する方法及びシステム
EP4196323A1 (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
TW202406697A (zh) 採用前瞻規劃之共享工作空間中機器人的運動規劃和控制
CN115328167A (zh) 一种基于三角锥的群机器人多目标搜索方法
JP7450297B2 (ja) センサーの配置を含むロボット操作環境の構成
TW202348377A (zh) 用於在共享工作空間中之機器人之使用階段姿態之動作規劃及控制
Seyboldt et al. Sampling-based path planning to cartesian goal positions for a mobile manipulator exploiting kinematic redundancy
CN113146637B (zh) 一种机器人笛卡尔空间的运动规划方法
CN114986501A (zh) 一种机械臂路径规划方法、***及机械臂
TW202415506A (zh) 穩健運動規劃及/或用於多機器人環境之控制
TW202123031A (zh) 用以便利具有動態物件環境中之運動規劃的裝置、方法及物品
Zhang et al. STANDARDS OF MEASUREMENT AND DEVELOPMENTAL CHALLENGES IN PATH PLANNING FOR MANIPULATOR
CN115464650A (zh) 一种针对动态障碍物的冗余度机械臂避障模型的构建方法