TW202428406A - 多機器人操作環境中為優化磨損和其他參數所為之機器人的自動規劃設定 - Google Patents
多機器人操作環境中為優化磨損和其他參數所為之機器人的自動規劃設定 Download PDFInfo
- Publication number
- TW202428406A TW202428406A TW112132024A TW112132024A TW202428406A TW 202428406 A TW202428406 A TW 202428406A TW 112132024 A TW112132024 A TW 112132024A TW 112132024 A TW112132024 A TW 112132024A TW 202428406 A TW202428406 A TW 202428406A
- Authority
- TW
- Taiwan
- Prior art keywords
- robots
- robot
- processor
- candidate
- task
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 53
- 238000005457 optimization Methods 0.000 claims description 154
- 238000000034 method Methods 0.000 claims description 117
- 230000036544 posture Effects 0.000 claims description 34
- 230000001133 acceleration Effects 0.000 claims description 12
- 230000036461 convulsion Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 230000003094 perturbing effect Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract description 3
- 230000002068 genetic effect Effects 0.000 abstract 1
- 238000004088 simulation Methods 0.000 description 20
- 238000005265 energy consumption Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 239000012636 effector Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000001953 sensory effect Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 240000001436 Antirrhinum majus Species 0.000 description 1
- 241000879777 Lynx rufus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- -1 signal buses Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40113—Task planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40476—Collision, planning for collision free path
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40518—Motion and task planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本發明揭示基於待由一組機器人執行之一組任務跨一組非均質參數針對磨損、碰撞及視情況針對效能及/或能量損耗共同優化用於多機器人規劃設定之解決方案。非均質參數可包含以下之兩者或更多者:該等機器人之各自基座位置及定向、任務至各自機器人之一分配、該等機器人之各自目標序列及/或軌跡。此可在預執行時期執行。輸出可針對各機器人包含:工作單元佈局、目標之一有序清單或向量、視情況在各自目標處之停留持續時間及各對連續目標之間之路徑或軌跡。輸出可提供對問題之一完整可執行解決方案,在不存在時序之可變性之情況下,該解決方案可用於控制該等機器人而無需任何修改。可在產生候選解決方案之一群體時視情況使用例如差分演進之一般演算法。
Description
本發明大體上係關於一多機器人操作環境或共用工作空間中之機器人規劃設定,且係關於此一環境或共用工作空間中之機器人規劃設定之優化。
相關技術之描述
各種應用在為兩個或更多個機器人所共有或以其他方式由兩個或更多個機器人共用之一多機器人操作環境中採用或可希望採用兩個或更多個機器人。多機器人操作環境可採取一共用工作空間之形式。例如,可在對或使用一共同操作環境中之一或多個物件或工件執行任務(例如,將螺栓螺合至其中機器人可在運動範圍中重疊之一機殼)時採用兩個或更多個機器人。
運動規劃係機器人控制及機器人學之一基本問題。一運動規劃指定一機器人可自一起始狀態至一目的狀態遵循之通常用於完成一任務而不與一操作環境中之任何障礙物碰撞或具有與操作環境中之任何障礙物碰撞之一降低概率之一路徑。運動規劃之挑戰涉及快速執行運動規劃,同時可能考量環境改變(例如,環境中之障礙物之改變的位置或定向)之能力。挑戰進一步包含使用以相對低能量消耗且具有有限儲存量之相對低成本裝備(例如,記憶體電路,例如在處理器晶片電路系統上)執行運動規劃。
一多機器人操作環境或共用工作空間(工作空間通常被稱為工作單元)中之兩個或更多個機器人之操作提出一特定類別之問題。例如,運動規劃應考量且避免其中機器人或機器人之機器人附肢在執行任務期間可彼此干擾之情境。
在一共同工作空間中操作多個機器人之一個方法可被稱為一任務級方法。一工程師可藉由以下而手動地確保機器人無碰撞:定義工作空間之其中機器人可彼此碰撞之部分(在本文中稱為干擾區域),且程式化個別機器人使得僅一個機器人在任何給定時間點在工作空間之一干擾區域中。例如,當一第一機器人開始移動至工作空間之一干擾區域中時,第一機器人設定一旗標。一控制器(例如,經程式化邏輯控制器(PLC))讀取旗標且防止其他機器人移動至工作空間之干擾區域中,直至第一機器人在離開干擾區域時撤銷旗標。此方法係直觀的,理解簡單,但通常實施困難且耗時,且可未產生一優化結果。此方法需要具有低工作處理能力,此係因為任務級去衝突之使用通常導致至少一個機器人閒置達大部分時間,即使閒置機器人在共用工作空間中執行有用工作將技術上可行。
在習知方法中,一工程師團隊通常劃分問題,且彼此獨立地優化更小子問題(例如,將任務分配至機器人,對分配至各機器人之任務定序,針對各機器人進行運動規劃)。此可採用反覆模擬運動以確保機器人/機器人附肢不彼此碰撞,此可耗費許多小時之運算時間且可不導致一優化解決方案。另外,若對工作空間之一修改導致機器人/機器人附肢之一者之一軌跡之一改變,則必須重新驗證整個工作流程。當然,此等方法非最佳的,且通常需要專家經歷反覆嘗試找到在一起採取時產生一良好結果之解決方案之一組合之緩慢程序。
在本文中描述各種方法及設備,其等產生用於基於待藉由一多機器人操作環境中之機器人執行之一組給定任務跨一組非均質參數共同優化之多機器人規劃設定(例如工作單元佈局及任務規劃之共同優化組合)之解決方案。此可在一離線或預執行時期環境中執行,從而提供此等類型之問題之一全域優化器。
輸入可包含一多機器人操作環境之一模型、機器人之模型、對可採用之機器人之一總數之一限制、機器人待達成之一組任務及對可分配至各機器人之任務之一總數之一限制(即,機器人之目標容量)。輸入亦可視情況包含一機器人或其部分停留在一目標處以例如完成一任務(例如,螺合一螺栓或一螺母)或避免一碰撞之一或多個停留持續時間。輸入亦可視情況包含以下之一或多者:對一或多個參數或變數之一組界限或約束,或限制為模型化或模擬碰撞所提供之時間之一時間限制。
輸出可包含對問題之一完整解決方案,該解決方案可有利地至少相對於機器人在執行一序列任務時將經受之一磨損量優化,相對於碰撞評估(例如,碰撞之概率或可能性及/或碰撞之嚴重性)優化,且視情況另外相對於一或多個其他參數優化,例如:相對於能量損耗、能量消耗或能量效率優化;及/或相對於效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間)優化。特定言之,可已藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎跨候選解決方案之一群體優化解決方案。例如,非均質參數可包含以下之兩者或更多者:機器人之各自基座位置及定向、任務至機器人之各自者之一分配、及機器人之各自目標序列。在不存在時序之任何可變性之情況下,輸出可用於控制多機器人環境中之機器人而無需任何修改。替代地,可在執行時期期間採用一或多個運動規劃器以例如避免可歸因於時序之小可變性(例如,有時,拴緊一螺絲可比其他時間耗費稍微更多或稍微更少時間)而導致之碰撞。
例如,輸出可包含:工作單元佈局,且針對各機器人:目標之一有序清單或向量(例如,機器人
1: {目標7,目標2,暫停,目標9}),視情況在各自目標處之停留持續時間,及各對連續目標之間之路徑或軌跡(例如,無碰撞路徑或軌跡)。
工作單元佈局可例如在笛卡爾(Cartesian)座標中提供各機器人之一基座之一基座位置及定向。各機器人基座之基座位置及定向使用一各自6元組{X,Y,Z, r, p, y}指定,其中X、Y及Z分別指示沿著一正交座標系之各自軸之一位置,且r (即,側滾)指示繞軸之一第一者旋轉之一量,p (例如,俯仰)指示繞軸之一第二者旋轉之一量,且y (例如,偏航)指示繞軸之一第三者旋轉之一量。
例如,一全域優化器可係基於一多變數、混合整數優化演算法,例如被稱為差分演進(ED)之一演算法。技術方案不限於一DE演算法,除非演算法在發明申請專利範圍中被明確敘述。
全域優化器優化機器人基座放置(在笛卡爾座標中)、機器人功能姿勢(即,在C空間中)及每機器人任務規劃(針對各自機器人之目標及暫停之有序清單)。主要優化目的可係機器人將經受之一磨損量以及基於碰撞評估之優化,但額外優化目的可包含:能量損耗、能量消耗或能量效率;效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。因此,本文中描述之結構及演算法促進在一共用工作空間或工作單元中操作之兩個或更多個機器人之操作,從而相對於磨損將此放置及操作優化至至少某一程度,且潛在地防止或至少降低機器人或機器人之機器人附肢在操作以在共用工作空間中執行各自任務時彼此碰撞之風險。本文中描述之結構及演算法可有利地藉由執行已經優化至至少某一程度之自主規劃而減少多機器人工作空間之程式化努力。輸入可限於操作環境之一描述、待執行之任務及機器人之幾何模型。本文中描述之結構及演算法可有利地動態地分配待藉由機器人執行之任務。
在以下描述中,闡述某些具體細節以便提供各項所揭示實施例之一透徹理解。然而,熟習相關技術者將認知,可在不具有此等具體細節之一或多者之情況下或使用其他方法、組件、材料等實踐實施例。在其他例項中,未詳細展示或描述與電腦系統、致動器系統及/或通訊網路相關聯之熟知結構以避免不必要地使實施例之描述不清楚。在其他例項中,未詳細描述用於產生一或多個物件及類似者之感知資料及體積表示之熟知電腦視覺方法及技術以避免不必要地使實施例之描述不清楚。
除非背景內容另外需要,否則貫穿說明書及下文之發明申請專利範圍,詞「包括(comprise)」及其變動(諸如「包括(comprises)」及「包括(comprising)」)應在一開放、包含性意義上被解釋為「包含,但不限於」。
貫穿本說明書提及「一個實施方案」或「一實施方案」或「一項實施例」或「一實施例」意謂結合實施例描述之一特定特徵、結構或特性被包含於至少一個實施方案中或至少一個實施方案實施例中。因此,在貫穿本說明書之各種位置中出現之片語「一個實施方案」或「一實施方案」或「在一項實施例中」或「在一實施例中」不一定全部係指同一實施方案或實施例。此外,可在一或多個實施方案或實施例中以任何適合方式組合特定特徵、結構或特性。
如在本說明書及隨附發明申請專利範圍中使用,單數形式「一(a/an)」及「該」包含複數指涉物,除非內容另外清楚指示。亦應注意,術語「或」通常在其包含「及/或」之意義上被採用,除非內容另外清楚指示。
如在本說明書及隨附發明申請專利範圍中使用,術語優化(optimizing/optimize)及經優化意謂一經改良結果正在被準備、產生(generate或produce)或已被準備、產生(generate或produce)。此等術語以其等相對意義被使用,且不意謂已準備、產生(generate或produce)一絕對最佳值。
如在本說明書及隨附發明申請專利範圍中使用,術語「工作空間」或「共用工作空間」用於指代兩個或更多個機器人在其中操作之一當前操作環境,共用工作空間之一或多個部分係其中機器人可潛在地彼此碰撞之體積,因此可被稱為干擾區域。操作環境可包含障礙物及/或工件(即,機器人待與其互動或作用於其上或與其一起作用之物品)。
如本說明書及隨附發明申請專利範圍中使用,術語「任務」用於指代其中一機器人自一姿勢A轉變至一姿勢B而不與其環境中之障礙物碰撞之一機器人任務。任務可能涉及夾取或解除夾取一物品、移動或放下一物品、旋轉一物品或取回或放置一物品。自姿勢A轉變至姿勢B可視情況包含在一或多個中間姿勢之間轉變。
本文中提供之標題及發明摘要僅係為了方便且不解譯實施例之範疇或含義。
圖1展示根據一個所繪示實施方案之包含在一共用工作空間104中操作以實行任務之複數個機器人102a、102b、102c (統稱為102)之一機器人系統100。
機器人102可採取許多種形式之任一者。通常言之,機器人102將採取一或多個機器人附肢103 (僅調用一個)及一基座105 (僅調用一個)之形式或具有一或多個機器人附肢103及一基座105。機器人102可包含具有一或多個關節之一或多個連桿組及經耦合且可操作以回應於控制或驅動信號而移動連桿組之致動器(例如,電動馬達、步進馬達、螺線管、氣動致動器或液壓致動器)。氣動致動器可(例如)包含一或多個活塞、氣缸、閥、貯氣器及/或壓力源(例如,壓縮機、鼓風機)。液壓致動器可(例如)包含一或多個活塞、氣缸、閥、貯液器(例如,低可壓縮性液壓流體)及/或壓力源(例如,壓縮機、鼓風機)。機器人系統100可採用其他形式之機器人102,例如,自主車輛。
雖然在某些有限實施方案中,共用工作空間104可表示二維空間,但共用工作空間104通常表示機器人102可在其中操作且移動之三維空間。共用工作空間104係其中若運動未被控制以避免碰撞則機器人102之至少部分可在空間及時間上重疊或以其他方式碰撞之一體積或區域。應注意,工作空間104係一實體空間或體積,其中實體空間或體積可經由例如相對於某一參考系(例如,由圖1中繪示之正交軸X、Y及Z表示之一參考系)之笛卡爾座標方便地表示之一位置及定向。亦應注意,工作空間104之參考系不同於機器人102之任一者之一各自「規劃設定空間」或「C空間」,C空間通常由機器人102之任一者之一各自參考系中之一組關節位置、定向或規劃設定表示。
如本文中解釋,當自另一機器人102b之一觀點考量時(即,當對另一機器人102b運動規劃時),一機器人102a或其部分可構成一障礙物。共用工作空間104可另外包含其他障礙物,例如,機械件(例如,輸送機106)、柱、支柱、牆、天花板、地板、桌、人及/或動物。共用工作空間104可另外包含機器人102作為執行任務之部分操縱之一或多個工作物品或工件,例如,一或多個包裹、封裝、緊固件、工具、物品或其他物件。
機器人系統100包含一或多個基於處理器之多機器人規劃設定優化系統108 (在圖1中展示一個)。多機器人規劃設定優化系統108接收一組輸入109且產生一或多個解決方案作為輸出111,該一或多個解決方案指定機器人102之一規劃設定,包含各機器人102之一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列,機器人102之該規劃設定可至少相對於機器人在執行一序列任務時將經受之一磨損量,且相對於碰撞評估(例如,碰撞之概率或可能性及/或碰撞之嚴重性)優化至至少某一程度,且視情況另外相對於一或多個其他參數優化,例如:能量損耗、能量消耗或能量效率;及/或效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。
多機器人規劃設定優化系統108可包含一群體產生器110、一多機器人環境模擬器112及一多機器人優化引擎114。
群體產生器110基於經提供輸入109產生一組候選解決方案116。候選解決方案116表示對一規劃設定問題之可能解決方案,即,如何規劃設定工作空間104中之機器人102以完成一組任務。任何給定候選解決方案116可或可不實際上可行。亦即,一初始候選者可係無效的(例如,機器人處於不可能位置,具有其中存在一無法到達目標之一不可行任務規劃或將導致碰撞)。在一些實施方案中,群體產生器可嘗試找到更佳候選解決方案。
多機器人環境模擬器112基於各候選解決方案模型化多機器人環境以判定某些屬性,例如:機器人為了完成任務將招致或經歷之一磨損量;在完成任務時之碰撞之一概率或比率;一碰撞之嚴重性之一等級或其他指示;如由候選解決方案指定之一特定規劃設定之可行性或不可行性;及視情況完成任務所需之能量損耗或消耗之一量;及/或完成任務所需之時間之一量。多機器人環境模擬器112可在成本方面反映此,成本經由一或多個成本函數產生。
多機器人優化引擎114至少部分基於相關聯成本估算候選解決方案,且有利地跨一組兩個或更多個非均質參數共同優化,例如,跨以下之兩者或更多者:機器人之各自基座位置及定向、任務至機器人之各自者之一分配、機器人之各自目標序列及/或連續目標之間之各自軌跡或路徑(例如,無碰撞路徑)。使用連續目標之間之直線軌跡以易於解釋,但軌跡不需要係直線軌跡。
輸入109可包含表示或特性化操作環境或工作空間104 (例如,表示一地板、牆、天花板、支柱、其他障礙物等)之一或多個靜態環境模型。操作環境或工作空間104可由一或多個模型表示,例如,表示操作環境中之一地板、牆、天花板、障礙物及其他物件之一幾何模型(例如,點雲)。例如,此可在笛卡爾座標中表示。
輸入109可包含一或多個機器人模型,該一或多個機器人模型表示或特性化各機器人102,例如,指定幾何形狀及運動學,例如,大小或長度、連桿之數目、關節之數目、運動之關節類型範圍、對速度之限制、對加速度或急衝之限制。機器人102可由(例如)在接頭、自由度、尺寸(例如,連桿組之長度)方面及/或在機器人102a至102c之各自C空間方面定義一給定機器人102a至102c之一幾何形狀之一或多個機器人幾何模型表示。
輸入109可包含待執行(例如,表示為目標目的(例如,位置或規劃設定))之一或多組任務。例如,可在各自機器人102a至102c之結束姿勢、結束規劃設定或結束狀態及/或中間姿勢、中間規劃設定或中間狀態方面表示任務。例如,可在各自機器人102a至102c之關節位置及關節角度/旋轉(例如,關節姿勢、關節座標)方面定義姿勢、規劃設定或狀態。輸入109可視情況包含一機器人或其部分應停留在一給定目標處以便完成一任務(例如,拴緊一螺絲或螺母,拾取且放置物件,其目的係藉由在一共同工作空間中操作之兩個或更多個機器人將一堆物件分類成各自類型之物件之兩個或更多個相異物件堆)之一時間量之一或多個停留持續時間。
輸入109可視情況包含對可在工作空間104中經規劃設定之機器人之數目之一限制。輸入109可視情況包含對可分配至可在工作空間104中經規劃設定之一給定機器人102a至102c之任務或目標之數目(本文中稱為一任務容量)之一限制,例如限制規劃設定問題之複雜性以確保規劃設定問題可使用可用運算資源解決或可在某一可接受時間段內解決,或預消除鑑於任務或目標至一給定機器人102a至102c之一明顯過度分配而被假定為太緩慢之某些解決方案。輸入109可視情況包含對變數或其他參數之一或多個界限或約束。輸入109可視情況包含反覆循環之一總數或對可用於細化候選解決方案之反覆之時間限制例如以確保規劃設定問題可使用可用運算資源解決或可在某一可接受時間段內解決。
機器人系統100可視情況包含經通訊地耦合以控制機器人102之一或多個機器人控制系統118 (在圖1中僅展示一個)。例如,機器人控制系統118可向各種致動器提供控制信號(例如,驅動信號)以引起機器人102在各種規劃設定之間移動至各種指定目標以便執行指定任務。
機器人系統100可視情況包含經通訊地耦合以控制機器人102之一或多個運動規劃器120 (在圖1中僅展示一個)。運動規劃器120產生或細化機器人102之運動規劃例如以相對於由多機器人優化引擎114提供之運動規劃考量時間上之小偏差,或考量障礙物之意外出現(例如,進入操作環境或工作空間104之人),如本文中之別處描述。選用運動規劃器120可操作以動態地產生運動規劃以引起機器人102在一操作環境中實行任務。運動規劃器120以及其他結構及/或操作可採用在2019年6月24日申請之美國專利申請案第62/865,431號中描述之運動規劃器以及其他結構及/或操作。
在經包含之情況下,運動規劃器120視情況經通訊地耦合以接收(例如)藉由一感知子系統(未展示)提供之感知資料作為輸入。感知資料代表工作空間104中非先驗已知之靜態及/或動態物件。感知資料可係如經由一或多個感測器(例如,攝影機、立體攝影機、飛行時間攝影機、LIDAR)感測及/或如藉由感知子系統轉換為障礙物之數位表示之原始資料,該感知子系統可產生機器人102將在其中操作以執行各種不同情境之任務之一環境之一表示之一各自離散化。
各種通訊路徑在圖1中被繪示為各種結構之間之線,在一些情況中,指示輸入109及輸出111之方向之箭頭。通訊路徑可例如採取一或多個有線通訊路徑(例如,電導體、信號匯流排或光纖)及/或一或多個無線通訊路徑(例如,經由RF或微波無線電及天線、紅外線收發器)之形式。通訊頻道可包含例如一或多個傳輸器、接收器、收發器、無線電、路由器、有線埠(例如,乙太網路埠)等。
圖2展示根據至少一個所繪示實施方案之圖1之機器人系統100之一功能區塊表示。
機器人系統100可包含一機器人規劃設定優化系統108及機器人102。優化系統108可直接或經由一中介機器人控制系統118 (圖1)間接通訊地耦合以控制機器人102。
各機器人102a至102c可包含一組連桿、關節、臂端工具或末端執行器及/或可操作以繞關節移動連桿之致動器201a、201b、201c (展示三個,統稱為201)。各機器人102a至102c可包含例如自機器人規劃設定優化系統108接收控制信號且提供驅動信號以驅動致動器201之一或多個運動控制器(例如,馬達控制器) 202 (僅展示一個)。運動控制器202可專用於控制致動器201之指定者。
將為了闡釋性目的詳細描述一機器人規劃設定優化系統108。熟習此項技術者將認知,描述係例示性的且可對所述且所繪示機器人規劃設定優化系統108做出變動。
機器人規劃設定優化系統108可包括一或多個處理器222及一或多個相關聯非暫時性電腦或處理器可讀儲存媒體(例如,系統記憶體224a、磁碟機224b及/或處理器222之記憶體或暫存器(未展示))。非暫時性電腦或處理器可讀儲存媒體224a、224b經由一或多個通訊頻道(諸如系統匯流排229)通訊地耦合至處理器222。系統匯流排229可採用任何已知匯流排結構或架構,包含具有記憶體控制器之一記憶體匯流排、一周邊匯流排及/或一本機匯流排。一或多個此等組件可亦或代替性地經由一或多個其他通訊頻道(例如,一或多個平行電纜、串列電纜或能夠進行高速通訊之無線網路頻道(例如,通用串列匯流排(「USB」) 3.0、快速周邊組件互連(PCIe)或經由Thunderbolt®))彼此通訊。
機器人規劃設定優化系統108亦可通訊地耦合至一或多個遠端電腦系統212 (例如,伺服器電腦、桌上型電腦、膝上型電腦、超級行動電腦、平板電腦、智慧型電話、穿戴型電腦及/或感測器(圖2中未繪示)),一或多個遠端電腦系統212直接可通訊地耦合至或間接可通訊地耦合至機器人規劃設定優化系統108之各種組件(例如經由一網路介面(未展示)至一網路210)。遠端運算系統212 (例如,伺服器電腦(例如,輸入源))可用於程式化、規劃設定、控制輸入資料或以其他方式與輸入資料介接,或向機器人規劃設定優化系統108及機器人系統100內之各種組件提供輸入資料(例如,環境模型、機器人模型、任務、目標目的、對機器人之總數之限制、對每一機器人之任務之限制、對變數或其他參數之界限或約束、對反覆之限制)。此一連接可為透過一或多個通訊頻道,例如,一或多個廣域網路(WAN),例如,乙太網路或網際網路,其等使用網際網路協定。在一些實施方案中,預執行時期計算(例如,輸出之產生)可藉由與機器人102分開之一系統執行,而執行時期計算可藉由一或多個選用中介運動規劃器120 (圖1) (在一些實施方案中,其(等)可內建於機器人102a至102c上)執行。
如提及,機器人規劃設定優化系統108可包含一或多個處理器222 (即,電路系統)、非暫時性儲存媒體224a、224b及耦合各種系統組件之系統匯流排229。處理器222可係任何邏輯處理單元,諸如一或多個中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)、可程式化邏輯控制器(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號;及/或2019年6月24日申請之標題為「motion planning for multiple robots in shared workspace」之美國專利申請案第62/865,431號。
系統記憶體224a可包含唯讀記憶體(「ROM」) 226、隨機存取記憶體(「RAM」) 228、快閃記憶體230、EEPROM (未展示)。可形成ROM 226之部分之一基本輸入/輸出系統(「BIOS」) 232含有基本常式,該等基本常式幫助諸如在起動期間在機器人系統100內之元件之間傳送資訊。
磁碟機224b可為例如用於自一磁碟讀取且寫入至一磁碟之一硬碟機、用於自固態記憶體讀取且寫入至固態記憶體之一固態硬碟(例如,快閃記憶體隨身碟)及/或用於自可抽換式光碟讀取且寫入至可抽換式光碟之一光碟機。在各項不同實施例中,機器人規劃設定優化系統108亦可包含此等磁碟機之任何組合。磁碟機224b可經由系統匯流排229與處理器222通訊。磁碟機224b可包含耦合於此等磁碟機與系統匯流排229之間之介面或控制器(未展示),如熟習相關技術者已知。磁碟機224b及其相關聯電腦可讀媒體提供電腦或處理器可讀及/或可執行指令、資料結構、程式模組及用於機器人系統100之其他資料之非揮發性儲存。熟習相關技術者將瞭解,可採用可儲存可由一電腦存取之資料之其他類型之電腦可讀媒體,諸如WORM磁碟機、RAID磁碟機、磁帶盒、數位視訊光碟(「DVD」)、伯努利盒式磁帶(Bernoulli cartridge)、RAM、ROM、智慧卡等。
可執行指令及資料可儲存於系統記憶體224a中,例如一作業系統236、一或多個應用程式238、其他程式或模組240及程式資料242。應用程式238可包含引起處理器222執行以下之一或多者之處理器可執行指令:產生候選解決方案之群體,模型化候選解決方案,至少部分基於模型化產生或判定與各自候選解決方案相關聯之成本,至少相對於機器人在執行一序列任務時將經受之一磨損量,且相對於碰撞評估(例如,碰撞之概率或可能性及/或碰撞之嚴重性)對C候選解決方案執行一優化,且視情況另外相對於其他參數優化,例如:無其他參數、以下之一或多者:能量損耗、能量消耗或能量效率;效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。優化可藉由跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化之一優化引擎執行:機器人之各自基座位置及定向、任務至機器人之各自者之一分配、及機器人之各自目標序列;及/或可用於在一多機器人操作環境中定位且定向機器人且引起機器人執行任務之輸出。可如本文中(例如,參考圖3及圖10)且在以引用的方式併入本文中之參考案中描述般執行此操作。在至少一些實施方案中,處理器可執行指令引起處理器222建構運動規劃(例如,碰撞偵測或評估、基於碰撞偵測或評估更新運動規劃圖中之邊緣之成本,及執行路徑搜尋或估算)。應用程式238可另外包含引起處理器222執行其他操作(例如,視情況處置(經由感測器擷取之)感知資料)之一或多個機器可讀且機器可執行指令。應用程式238可另外包含引起處理器222執行本文中及以引用的方式併入本文中之參考中描述之各種其他方法之一或多個機器可執行指令。
雖然在圖2中被展示為儲存於系統記憶體224a中,但作業系統236、應用程式238、其他應用程式、程式/模組240及程式資料242可儲存於其他非暫時性電腦或處理器可讀媒體(例如,磁碟機224b)上。
雖然未要求,但許多實施方案將在電腦可執行指令之一般背景內容中描述,電腦可執行指令諸如儲存於電腦或處理器可讀媒體上且藉由一或多個電腦或處理器執行之應用程式模組、物件或巨集,該一或多個電腦或處理器可執行候選解決方案產生、例如經由正向運動學對候選解決方案之模型化、模型中之碰撞之偵測、執行時間及其他成本之判定、經由一成本函數之成本產生、跨一組非均質參數之共同優化、軌跡或路徑(例如,無碰撞路徑)之產生及/或其他運動規劃操作。
在各種實施方案中,操作可完全在硬體電路系統中執行或作為儲存於一記憶體儲存器(諸如系統記憶體224a)中,且由一或多個硬體處理器222 (諸如一或多個微處理器、數位信號處理器(DSP)、場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)、圖形處理單元(GPU)處理器、經程式化邏輯控制器(PLC)、電可程式化唯讀記憶體(EEPROM))執行之軟體,或作為硬體電路系統及儲存於記憶體儲存器中之軟體之一組合。
機器人規劃設定優化系統108可視情況包含一或多個輸入/輸出組件,例如,一監測器或觸控螢幕顯示器244、一鍵台或鍵盤246及/或指標裝置(諸如一電腦滑鼠248)。
熟習相關技術者應瞭解,所繪示實施方案以及其他實施方案可使用其他系統結構及配置及/或其他運算系統結構及配置(包含機器人、手持式裝置、多處理器系統、基於微處理器或可程式化消費者電子器件、個人電腦「PC」、網路連結PC、迷你電腦、主機電腦及類似者之系統結構及配置及/或運算系統結構及配置)實踐。實施方案或實施例或其等之部分(例如,在規劃設定時間及執行時期)可在其中任務或模組藉由遠端處理裝置(其等透過一通訊網路連結)執行之分佈式運算環境中實踐。在一分佈式運算環境中,程式模組可定位於本端及遠端記憶體儲存裝置或媒體兩者中。然而,何處及如何儲存某些類型之資訊對於幫助改良機器人規劃設定係重要的。
圖3展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一高階機器人規劃設定方法300。基於處理器之系統可包括至少一個處理器及儲存資料及處理器可執行指令之至少一者之至少一個非暫時性處理器可讀媒體。當藉由至少一個處理器執行時,處理器可執行指令引起至少一個處理器執行機器人規劃設定方法300之各種操作或動作。
數個機器人可經規劃設定以執行一組任務。任務可被指定為一任務規劃。任務規劃可指定需要藉由數目R個機器人執行之數目T個任務。一任務規劃可被模型化為每一機器人之一向量,其中向量係各自機器人待執行之任務之一有序清單,例如,{任務7,任務2,任務9}。一任務向量亦可視情況包含指定機器人或其部分應在一給定規劃設定或目標處停留之一持續時間之停留持續時間。任務向量亦可指定一起始姿勢及/或與解決任務非直接相關之其他「功能姿勢」 (例如,一「讓開」或儲存姿勢)。可在機器人之C空間中指定姿勢。
機器人規劃設定方法300可例如回應於系統或其組件之一起動或通電、資訊或資料之接收或藉由一呼叫常式或程式之一呼叫或調用而在302開始。機器人規劃設定方法300可在可發生在執行時期之前之一規劃設定時間或預執行時期執行。當回應性非一特定關注點時,此有利地允許在執行時期之前執行一些最運算密集的工作。
在304,基於處理器之系統之至少一個組件接收特性化一多機器人環境之輸入、待執行之一組任務且提供問題之各種約束或邊界。
例如,基於處理器之系統可接收多機器人操作環境之一或多個模型。模型可表示複數個機器人將在其中操作之實體環境,例如,表示環境中之一地板、牆及各種物件。
又例如,基於處理器之系統可接收將在多機器人操作環境中操作之複數個機器人之各者之一各自模型。機器人模型可表示機器人之實體屬性,例如,實體尺寸、運動範圍、關節之數目、連桿之數目、連桿之長度、末端執行器之類型、速度限制、加速度限制等。
又例如,基於處理器之系統可接收一組任務或目標。目標可表示各機器人或其部分必須依序或在某些時間移動至其以便完成一組任務之各種位置。例如,目標可在各自機器人之規劃設定空間(C空間)中表示。又例如,當至少一個機器人執行至少一個任務時,基於處理器之系統可視情況接收一或多個停留持續時間以停留在一或多個目標處。停留持續時間可有利地反映一機器人之一末端執行器需要保持在一給定目標處以便完成一各自任務(例如,將一緊固件螺合至一螺紋開口中,將一件插入一插座中)之一預期時間量。
又例如,基於處理器之系統可視情況接收對變數之一組界限或約束。各種界限及約束可適用於多機器人環境中之優化。例如,基於處理器之系統可視情況接收指定對模型化移動或模擬碰撞之一時間限制之一組時間間隔。例如,基於處理器之系統可視情況接收對被容許在多機器人操作環境中操作之機器人之一總數之一限制。例如,基於處理器之系統可視情況接收每一機器人容許之任務或目標之一最大數目,此再次可防止提交在給定可用運算資源或時間之情況下太複雜而難以解決之一問題。
在306,一群體產生器產生C候選解決方案之一群體。群體可包含一或多個候選解決方案。C候選解決方案之群體中之候選解決方案之各者針對機器人之各者指定:一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列。各自基座位置及定向指定多機器人操作環境中之各自機器人之一基座之一各自位置及定向。各自組至少一個經定義姿勢至少指定多機器人操作環境中之各自機器人之一各自起始姿勢及/或其他功能姿勢(例如,一讓開或儲存姿勢)。各自目標序列包括各自機器人移動通過以完成任務之一各自序列之目標之一各自有序清單。群體產生器可實施為執行處理器可執行指令之一或多個處理器。
群體產生器可採取可基於一或多個輸入參數偽隨機地產生C候選解決方案之群體之一偽隨機群體產生器之形式。一偽隨機群體產生器產生實際上可係或可不是可行解決方案之候選解決方案。群體產生器替代地產生各具有比C候選解決方案之一純偽隨機產生群體更低之成為一無效候選解決方案之一概率之C候選解決方案之群體。此可產生導致更快優化而無規劃設定空間覆蓋之損失之候選解決方案之群體。例如,群體產生器可考量操作環境以避免將一機器人之一基座定位於不可能(例如,由一牆或其他物件佔用)之一位置處,將導致具有無法由機器人到達之一或多個目標之一不可行任務規劃或將導致碰撞之候選解決方案。在使用一偽隨機群體產生器之情況下,可採用數種技術以改良候選解決方案,例如,下文參考圖6描述之技術。
在308,一優化引擎對C候選解決方案之群體執行一優化,至少相對於機器人在執行一序列任務時將經受之一磨損量優化,且相對於碰撞評估(例如,碰撞之概率或可能性及/或碰撞之嚴重性)優化,且視情況另外相對於無、一或多個其他參數優化,例如:能量損耗、能量消耗或能量效率;效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。特定言之,優化引擎跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化:機器人之各自基座位置及定向、任務至機器人之各自者之一分配、及機器人之各自目標序列。例如,優化引擎可選擇具有以下之一經共同優化組合之一優化候選解決方案:機器人之各者之各自基座之一各自優化基座位置及定向、一優化任務分配、及一優化運動規劃。優化係相對於機器人在執行一序列任務時將經受之一磨損量。優化可另外相對於一碰撞評估(例如,碰撞之概率或可能性及/或碰撞之嚴重性)。優化可另外視情況相對於一或多個其他參數,例如:無其他參數、以下之一或多者:能量損耗、能量消耗或能量效率;效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。優化引擎可實施為執行處理器可執行指令之一或多個處理器。如下文參考圖4描述,優化引擎可在執行優化時與一多機器人環境模擬器互動,例如,提供待模擬之候選解決方案及接收藉由一多機器人環境模擬器產生或判定之成本,該等成本特性化各自候選解決方案之磨損及碰撞之概率或比率,視情況各自候選解決方案之碰撞之嚴重性,及視情況額外參數,例如無額外參數、以下之一或多者:能量損耗、能量消耗或能量效率;效能或延時(亦被稱為時間效率,例如,完成一序列任務之時間);地板空間之有效使用;完成目的之移動數目;並行操作機器人之能力;最小化機器人之等待時間;一機器人之可用性;狀態條件;及/或適用於實行一特定類型之任務之一機器人之可用性(例如,具有一特定類型之臂端工具或末端執行器之一機器人之可用性)等。優化引擎可至少部分基於與候選解決方案相關聯之一各自成本選擇候選解決方案之一者,各自成本至少部分基於機器人在完成任務序列時將經受之磨損量及針對各自候選解決方案判定之碰撞值。
在310,優化引擎自優化提供輸出。特定言之,優化引擎可提供以下之一或多者作為輸出:機器人之各者之各自基座位置及定向、機器人之各者之一各自任務分配、機器人之各者之一各自運動規劃及/或具有或不具有在機器人之C空間中之各者目標處之停留持續時間之機器人之各者之一組無碰撞路徑。輸出可包含針對各機器人以在各自機器人之C空間中之目標之一優化有序清單之形式指定待執行之任務之一各自序列及在一或多個目標處之一或多個停留持續時間之一優化任務分配。輸出可另外或替代地包含指定一組無碰撞路徑之一優化運動規劃,該組無碰撞路徑指定目標之有序清單中之各對連續目標之間之一各自無碰撞路徑。在至少一些實施方案中,輸出足以驅動機器人執行一組任務。在至少一些實施方案中,可採用一運動規劃器以細化運動規劃。
高階機器人規劃設定方法300可在312終止例如直至再次被調用。雖然依據一有序流程描述高階機器人規劃設定方法300,但各種動作或操作將在許多實施方案中同時或並行執行。
圖4展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一高階多機器人環境模擬方法400。基於處理器之系統可包括至少一個處理器及儲存資料及處理器可執行指令之至少一者之至少一個非暫時性處理器可讀媒體。當藉由至少一個處理器執行時,處理器可執行指令引起至少一個處理器執行多機器人環境模擬方法400之各種操作或動作。多機器人環境模擬方法400可藉由一多機器人環境模擬器執行,該多機器人環境模擬器可藉由專用於模擬一多機器人環境中之移動之一或若干相異處理器實施。替代地,多機器人環境模擬器可藉由執行其他操作(例如執行優化)之一或多個處理器實施。
多機器人環境模擬方法400可例如回應於系統之一起動或通電、資訊或資料之接收或藉由一呼叫常式或程式之一呼叫或調用(例如,藉由高階機器人規劃設定方法300調用)而在402開始。
在404,一多機器人環境模擬器例如自一優化引擎或一群體產生器接收一候選解決方案。
在406,一多機器人環境模擬器基於一特定候選解決方案模型化多機器人環境中之機器人。候選解決方案可例如藉由優化引擎被提交或提供至多機器人環境模擬器。可採用習知模型化封包,例如,採用正向運動學以基於候選解決方案模型化機器人之移動之模型化封包。
在408,多機器人環境模擬器經由藉由多機器人環境模擬器執行之模型化判定機器人將招致或經受之一磨損量以便完成該序列任務。判定可包含判定各機器人為了完成該序列任務而招致之磨損量。判定可另外或替代地包含判定由各機器人集合為了藉由全部機器人完成該序列任務所招致之累積磨損量。例如,此可採用表示將由至少一個機器人或其部分相對於以下之一或多者經歷之各自磨損量之磨損模型:至少一個機器人或其部分在執行運動及/或執行一組任務時之一位置、移動、速度、加速度、急衝或扭矩。此等磨損模型可係基於在機器人之相對大量操作內收集之經驗資料,該等機器人之類型與在多機器人環境中採用之機器人之類型相同或至少類似。
視情況在410,多機器人環境模擬器經由藉由多機器人環境模擬器執行之模型化判定機器人將招致之一能量損耗或能量消耗以便完成該序列任務。判定可包含判定各機器人為了完成該序列任務而招致之能量損耗或能量消耗。判定可另外或替代地包含判定由機器人集合為了藉由全部機器人完成該序列任務所招致之能量損耗或能量消耗之累積量。例如,此可採用表示將由至少一個機器人相對於以下之一或多者招致之能量損耗或能量消耗之各自量之能量損耗或能量消耗模型:至少一個機器人或一機器人附肢之部分在執行運動及/或執行一組任務時之一位置、移動、速度、加速度、急衝或扭矩。此等能量損耗或能量消耗模型可係基於在機器人之相對大量操作內收集之經驗資料,該等機器人之類型與在多機器人環境中採用之機器人之類型相同或至少類似。
視情況在412,多機器人環境模擬器經由藉由多機器人環境模擬器執行之模型化判定完成該序列任務之一各自時間。判定可包含判定藉由可必須等待彼此之全部機器人完成該序列任務之總體時間。例如,此可包含判定各機器人完成各自任務之各自時間。
在414,多機器人環境模擬器經由藉由多機器人環境模擬器執行之模型化判定表示在完成該序列任務時發生的一碰撞之一比率或一概率之一碰撞值。判定可包含判定藉由全部機器人對該序列任務之一完成之總體碰撞值。例如,此可包含判定機器人之各者之各自碰撞值。
在416,多機器人環境模擬器向例如優化引擎提供經判定值(例如,經判定磨損值、經判定碰撞值、經判定能量損耗或消耗值、完成該序列任務之時間)。在一些實施方案中,多機器人環境模擬器提供經判定磨損及碰撞值及視情況其他值作為相異值以供優化引擎處理以形成可跨兩個或更多個非均質參數共同優化之一值,如本文中之別處描述。
多機器人環境模擬方法400可在418終止例如直至再次被調用。雖然依據一有序流程描述多機器人環境模擬方法400,但各種動作或操作將在許多實施方案中同時或並行執行。
圖5展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人環境模擬方法500。基於處理器之系統可包括至少一個處理器及儲存資料及處理器可執行指令之至少一者之至少一個非暫時性處理器可讀媒體。當藉由至少一個處理器執行時,處理器可執行指令引起至少一個處理器執行多機器人環境模擬方法500之各種操作或動作。多機器人環境模擬方法500可藉由一多機器人環境模擬器執行,該多機器人環境模擬器可藉由專用於模擬一多機器人環境中之移動之一或若干相異處理器實施。替代地,多機器人環境模擬器可藉由執行其他操作(例如執行優化)之一或多個處理器實施。
多機器人環境模擬方法500可例如回應於系統之一起動或通電、資訊或資料之接收或藉由一呼叫常式或程式之一呼叫或調用(例如,藉由高階機器人規劃設定方法300調用)而在502開始。
在504,一多機器人環境模擬器虛擬地執行如由係估算或考量之一對象之一候選解決方案指定之各機器人之任務序列中之各任務。任務序列可被指定為任務之各自有序清單。任務之有序清單各等效於機器人之C空間中之軌跡之一有序清單。任何之有序清單可包含連續姿勢或規劃設定(例如,關節規劃設定)之間之複數個軌跡、在一或多個姿勢下之一或多個停留持續時間、一起始姿勢及在機器人之C空間中之一或多個其他經定義功能姿勢(例如,一收起或「讓開」姿勢)。為了虛擬地執行各任務,處理器可執行指令在藉由至少一個處理器執行時,引起處理器虛擬地模擬複數個軌跡及以下之一或多者:在一或多個姿勢下之一或多個停留持續時間、起始姿勢或一或多個其他經定義功能姿勢。
在506,針對複數個出現期之各出現期(例如,0.1 s或某一選定輸入值),多機器人環境模擬器對至少一個機器人之一部分之一C空間位置取樣。多機器人環境模擬器使用正向運動學以識別機器人之一各自者之一或多個部分與機器人之各自者之另一部分之間、環境中之機器人之各自者與機器人之另一者之間、及機器人之各自者與多機器人操作環境中非另一機器人之另一物件之間之潛在碰撞。
多機器人環境模擬方法500可在508終止例如直至再次被調用。雖然依據一有序流程描述低階多機器人環境模擬方法500,但各種動作或操作將在許多實施方案中同時或並行執行。
所述系統及方法可採用各種方法以細化或改良候選解決方案。例如,一些方法可以一基礎解決方案開始,且在基礎解決方案上改良。又例如,一些方法可採用一般演算法或方法,例如一差分演進(DE)演算法或類似技術。下文參考圖6描述一DE演算法之一版本。
圖6展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人優化DE方法600。基於處理器之系統可包括至少一個處理器及儲存資料及處理器可執行指令之至少一者之至少一個非暫時性處理器可讀媒體。當藉由至少一個處理器執行時,處理器可執行指令引起至少一個處理器執行多機器人優化方法600之各種操作或動作。多機器人優化方法600可藉由一優化引擎執行,該優化引擎可藉由專用於多機器人環境之優化引擎之一或若干相異處理器實施。替代地,多機器人環境模擬器可藉由執行其他操作之一或多個處理器實施。
多機器人環境模擬方法600可例如回應於系統之一起動或通電、資訊或資料之接收或藉由一呼叫常式或程式之一呼叫或調用(例如,藉由高階機器人規劃設定方法300調用)而在602開始。
在604,群體產生器產生候選解決方案之一群體。
在606,將一外迴圈計數器I初始化至例如零。在608,將外迴圈計數器I遞增為例如I加一。
在610,以容許擾動之一格式表示候選解決方案。例如,可將候選解決方案表示為一候選解決方案向量。例如,候選解決方案向量可包含複數個實數向量元素,例如,各任務一個實數向量元素。實數向量元素可表示任務之一各自者、任務之各自者之一優先級及經識別以執行任務之各自者之機器人之一者之一各自組合。
在612,優化引擎擾動一候選解決方案I或引起候選解決方案I被擾動以產生一經擾動候選解決方案I’。例如,優化引擎可修改候選解決方案向量之實數向量元素(即,實數值)。
在614,一多機器人環境模擬器模型化經擾動候選解決方案I’。例如,多機器人環境模擬器可判定為了完成經擾動候選解決方案I’之該序列任務將經歷之一磨損量及表示在完成經擾動候選解決方案I’之該序列任務時發生的一碰撞之一比率或一概率之一碰撞值。視情況,多機器人環境模擬器可另外判定經擾動候選解決方案I’之無額外參數、一或多個額外參數(例如,能量損耗、能量消耗或能量效率;效能或延時)之值。
在616,優化引擎或多機器人環境模擬器判定經擾動候選解決方案I’之一成本值。經判定成本值可依據在完成經擾動候選解決方案I’之該序列任務時將經歷之經判定磨損量及經擾動候選解決方案I’之經判定碰撞值而變動。經判定成本值亦可依據完成經擾動候選解決方案I’之該序列任務之經判定能量損耗、能量消耗或能量效率及/或經判定效能或延時(完成經擾動候選解決方案I’之該序列任務之時間效率)而變動。在DE中,成本函數係一分段對數函數,但可被參數化,例如如由圖7中之參數化700及圖8中之圖表800表示。在圖7中,參數「task_reachability」等於(可到達目標目的之數目)/(目標目的之總數)。因此,若全部目標可到達,則參數「task_reachability」之值等於1。
在618,優化引擎或多機器人環境模擬器判定經擾動候選解決方案I’是否具有低於候選解決方案I之一相關聯成本。
在620,回應於經擾動候選解決方案I’具有低於候選解決方案I之一相關聯成本之一判定,優化引擎使用經擾動候選解決方案I’替換C候選解決方案之群體中之各自候選解決方案I。回應於經擾動候選解決方案I’不具有低於候選解決方案I之一相關聯成本之一判定,優化引擎不修改C候選解決方案之群體,從而將控制直接傳遞至622。
在622,優化引擎判定是否已發生一內迴圈反覆退出條件。例如,優化引擎判定何時已發生一收斂,是否已達到對反覆之數目之一限制及/或是否已達到對反覆時間之一限制。例如,在跨候選解決方案之當前群體之成本之一標準偏差小於一ε值之情況下,可將收斂視為已發生。
若已發生退出條件,則控制傳遞至626,其中多機器人環境模擬方法600可終止例如直至再次被調用。若尚未發生提出條件,則控制傳遞至624,其中優化引擎或多機器人環境模擬器判定在候選解決方案之群體中是否存在更多候選解決方案待擾動。若在候選解決方案之群體中存在更多候選解決方案待擾動,則控制返回至608,其中內迴圈計數器遞增且對下一候選解決方案進行擾動並分析。若在候選解決方案之群體中不存在更多候選解決方案待擾動,則控制返回至606,其中重新初始化內迴圈計數器,且可執行候選解決方案之可能經更新群體之另一遍次。
多機器人環境模擬方法600之各種動作可針對多個反覆重複,從而細化候選解決方案之群體直至滿足退出條件(例如,收斂)。
雖然依據一有序流程描述低階多機器人優化DE方法600,但各種動作或操作將在許多實施方案中同時或並行執行。
圖9展示根據至少一個所繪示實施方案之由一基於處理器之系統例如在執行低階多機器人優化DE方法600 (圖6)時在以容許擾動之一格式表示一候選解決方案時採用之一資料結構900。
一候選解決方案I可有利地使用一數字向量表示,使得系統可對數字執行一或多個函數以「擾動」數字且因此候選解決方案以產生一經擾動候選解決方案I’。存在表示候選解決方案之各種方式。本文中參考圖9中繪示之資料結構900描述一個方法。一系統可採用此方法或其他方法以表示候選解決方案。
一候選解決方案可最初表示為二維(2D)矩陣,該2D矩陣將被展平為一維(1D)向量。在2D矩陣中,列對應於任務。因此,針對具有T個任務之一問題,存在T個列。在2D矩陣中,行對應於機器人及優先級。因此,若存在P個優先級等級,則存在P*R個行。圖9中繪示之實例具有3個機器人,3個優先級等級及4個任務。在使用中,與圖9中繪示的相比,一特定問題可具有不同數目個機器人,不同數目個優先級等級及不同數目個問題。為了易於理解,簡化所繪示實例。
各任務被分配至一單一機器人,此在圖9中由各列恰具有一個項目被標記(即,使用一星號*標記)來繪示,從而表示哪一機器人以哪一優先級執行該任務。一給定機器人可執行高達在輸入中被指定為任務之一每機器人容量之最大數目個任務。然而,明顯地,一給定機器人每一優先級等級僅可執行一個任務。亦即,每行僅存在一個星號(*)。
系統可將2D矩陣展平為具有長度T之一1D向量,其中每一任務一個向量元素。向量元素對應於2D矩陣之「項目號」,以1開始。因此,針對圖9中繪示之實例,任務1具有2之一值,任務2具有13之一值(第一列具有9個項目,接著對於任務2之分配(見星號*)在列2之第4項目中),任務3具有21之一值,且任務4具有36之一值。明顯地,向量元素全部係整數。
系統可正規化所得整數向量<2,13,21,36>使得全部值在0與1之間。例如,系統可將各值除以矩陣中之項目之總數,例如,P*R*T=36。所得正規化實數向量係<2/36, 13/36, 21/36, 36/36>,其中個別向量元素加總至1。
為了擾動候選實數向量V,系統可首先採取若干(例如,三個)其他隨機選定候選者(例如,A、B及C),且使用以與上文直接描述之方式相同之方式正規化之各自正規化1D向量表示該等隨機選定候選者(例如,A、B及C)。系統現在可運算一經擾動實數向量V’。例如,系統可將經擾動向量V’運算為等於A + mut*(C-B)。
系統可接著藉由將向量V與經擾動向量V’之向量元素隨機混合而運算經擾動候選者Vp。亦即,針對經擾動候選者Vp之各元素(比如說,Vp[i]),系統隨機地選取V[i]或V’[i]。選取可藉由一參數加權,例如,該參數可使選取傾斜,使得選取非50/50。系統可將經擾動候選者Vp乘以P*R*T以向上縮放回表示經擾動候選者之1D向量。為了自1D實數值向量返回至2D矩陣,系統首先將實數捨入成整數。自此,系統可使用該等整數值標記一空白2D矩陣。
圖10展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人DE候選解決方案方法1000,從而詳細繪示一群體產生器之操作。基於處理器之系統可包括至少一個處理器及儲存資料及處理器可執行指令之至少一者之至少一個非暫時性處理器可讀媒體。當藉由至少一個處理器執行時,處理器可執行指令引起至少一個處理器執行多機器人DE候選解決方案方法1000之各種操作或動作。多機器人DE候選解決方案方法1000可藉由一優化引擎執行,該優化引擎可藉由專用於以多機器人環境之優化引擎之一或若干相異處理器實施。替代地,多機器人環境模擬器可藉由執行其他操作之一或多個處理器實施。
一全域優化器可係基於一多變數、混合整數、優化演算法,例如被稱為差分演進(DE)之一演算法。發明申請專利範圍不限於此演算法,除非演算法在發明申請專利範圍中被明確敘述。
全域優化器優化機器人基座放置(例如,在笛卡爾座標中)、機器人功能姿勢(例如,在C空間中)及每機器人任務規劃(目標之有序清單或向量及停留持續時間)。主要優化目的可係最小化機器人將經受之一磨損量,但其他目的可包含碰撞之最小化風險或概率;最小化能量使用;可用地板空間之優化使用;最小化總體時間效能或延時等。
優化器系統可包括三個組件:即,一優化引擎、一多機器人環境模擬器、及一候選解決方案產生器(例如,一種子產生器)。
如下文進一步詳細描述,候選解決方案產生器產生C候選解決方案之一群體,其中任何給定候選解決方案可或可非可行。
如下文進一步詳細描述,優化引擎例如藉由擾動候選解決方案之群體之一者(比如說候選者P)且查看所得經擾動候選者P’是否具有一較低成本而嘗試找到較佳候選解決方案。若是,則經擾動候選者P’替換群體中之候選者P。候選者之總數C不改變。
為了找到一候選解決方案之成本,多機器人環境模擬器模擬候選解決方案。一給定候選解決方案包含各機器人之任務之一有序清單,該有序清單等效於C空間中之軌跡之一有序清單。每一時間出現期(例如,0.1 s或某一選定輸入值),多機器人環境模擬器對各機器人之C空間中之位置取樣,且採用正向運動學以檢查機器人之虛擬表示是否與自身,與另一機器人或與操作環境中之某一障礙物或物件碰撞。多機器人環境模擬器判定在按照候選解決方案操作機器人之情況下將經歷之一磨損量。多機器人環境模擬器判定一碰撞概率或比率(例如,在其期間存在機器人與自身,與另一機器人或與操作環境中之某一障礙物或物件之至少一個碰撞之出現期之分率)。應注意,候選解決方案之群體之產生不需要產生無碰撞運動規劃,而僅追蹤碰撞率。不需要無碰撞路徑大大地加速處理;然而,一些實施方案可代替性地在此階段產生無碰撞路徑。一候選者之成本依據至少此兩個數(例如,磨損量及碰撞比率或概率)而變動。在DE中,此成本函數係可經參數化之一分段對數值。
視情況,多機器人環境模擬器可判定其他參數之值,例如,在按照候選解決方案操作之情況下將由機器人損耗或消耗之能量之一量及/或判定完整執行候選解決方案將耗時多長。
整體工作流程涉及其中優化器產生候選者且模擬器估算其等成本之一循環。程序重複,直至某一收斂準則,諸如成本之標準偏差小於某一ε值。
一候選解決方案產生器1002藉由執行各種操作或動作而產生候選解決方案。
在1004,候選解決方案產生器1002接收各種變數界限、固定參數、任務或目標目的及群體大小。在1006,候選解決方案產生器1002產生各機器人之基座之基座位置及定向。在1008,候選解決方案產生器1002在虛擬多機器人操作環境中虛擬地定位(locate或position)機器人基座,從而將此提供至一多機器人模擬器1009,多機器人模擬器1009模型化候選解決方案,從而將反饋提供至候選解決方案產生器1002。
在1010,候選解決方案產生器1002產生各機器人之均勻隨機起始姿勢及/或其他功能姿勢。
在1012,針對各任務或目標目的,候選解決方案產生器1002在1012a找到能夠完成任務或到達目標目的之一組機器人,在1012b隨機選擇該等機器人之一者,在1012c判定該組是否係空的(指示一不可行任務規劃),若該組係空的,則返回至1006,且否則在1012d將任務或目標目的分配至選定機器人。
在1014,針對各目標機器人,候選解決方案產生器1002在1014a判定分配至機器人之任務或目標目的之總數是否超過針對機器人指定之一限制或任務或目標容量,若過度分配(指示一不可行任務規劃),則返回至1006,且否則在1014b產生經分配任務或目標目的之一隨機序列。
在1016,候選解決方案產生器1002產色或細化候選解決方案,該候選解決方案可係表示各機器人之基座放置及定向、各機器人之起始及/或其他功能姿勢及各機器人之一目標序列之一向量或其他表示。在1018,將候選解決方案包含於候選解決方案(CS)之群體中。
在1020,候選解決方案產生器1002判定在候選解決方案之群體中是否存在足夠候選解決方案。若候選解決方案之群體中之候選解決方案之數目小於一指定數目,則控制可返回至1006以產生一額外候選解決方案。否則,控制可傳遞至1022,其中候選解決方案產生器1002將候選解決方案之群體傳回至一多機器人優化引擎1024以供進一步優化。
一旦已產生候選解決方案之初始群體,便可藉由例如擾動候選解決方案而細化候選解決方案之群體。
雖然依據一有序流程描述低階多機器人DE候選解決方案方法500,但各種動作或操作將在許多實施方案中同時或並行執行。
在至少一些實施方案中,本文中描述之結構及演算法可在不使用攝影機或其他感知感測器之情況下操作。在至少一些實施方案中,機器人之間之座標依賴於機器人之幾何模型、機器人傳達其等各自運動規劃之能力及一共用工作空間之幾何模型。在其他實施方案中,可視情況採用虛擬或其他感知(例如)以避免可進入或佔用共用工作空間之部分之人或其他動態障礙物。
使用廣泛多種演算法以解決運動規劃問題。此等演算法之各者通常需要能夠判定一機器人之一給定姿勢或自一個姿勢至另一姿勢之一運動是否導致與機器人自身或與環境中之障礙物之一碰撞。可使用執行來自一組經儲存處理器可執行指令之處理器可執行指令以執行一演算法之處理器「在軟體中」執行虛擬碰撞評估或檢查。可使用一組專屬硬體電路(例如,實施於一場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)中之碰撞檢查電路)「在硬體中」執行虛擬碰撞評估或檢查。此等電路可(例如)表示在兩個狀態之間之一各自運動或轉變期間藉由一機器人/機器人附肢或其部分掃掠之體積(即,掃掠體積)。電路可(例如)產生指示一運動是否將與任何障礙物碰撞之一布林(Boolean)估算,其中至少一些障礙物表示在由在共用工作空間中操作之其他機器人執行一運動或轉變時掃掠之體積。
實例實例1. 一種在一基於處理器之系統中操作之方法以規劃設定複數個機器人用於在其中將有複數個機器人操作之一多機器人操作環境,該方法包括:
經由一群體產生器產生C候選解決方案之一群體,C候選解決方案之該群體中之該等候選解決方案之各者針對該等機器人之各者指定:一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列,其中該各自基座位置及定向指定該多機器人操作環境中之該各自機器人之一基座之一各自位置及定向,該各自組至少一個經定義姿勢至少指定該多機器人操作環境中之該各自機器人之一各自起始姿勢,且該各自目標序列包括該各自機器人移動通過以完成任務之一各自序列之目標之一各自有序清單;
藉由跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化:該等機器人之該各自基座位置及定向、該等任務至該等機器人之各自者之一分配及該等機器人之該等各自目標序列;及
提供以下作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
實例2. 如實例1之方法,其中提供以下項作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃,其包含提供針對各機器人以該各自機器人之C空間中之目標之一優化有序清單之形式指定待執行之任務之一各自序列及在該等目標之一或多者處之一或多個停留持續時間之一優化任務分配,且提供指定一組無碰撞路徑之一優化運動規劃,該組無碰撞路徑指定目標之該有序清單中之各對連續目標之間之一各自無碰撞路徑。
實例3. 如實例1或2中任一者之方法,其進一步包括:
針對候選解決方案之該群體C之該等候選解決方案之各者,經由藉由一機器人環境模擬器執行之模型化判定完成該等任務序列之一各自時間及表示在完成該等任務序列時發生的一碰撞之一比率或一概率之一各自碰撞值。
實例4. 如實例3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於該等機器人為了完成該等任務序列將經受之該磨損量及針對該各自候選解決方案判定之該碰撞值。
實例5. 如實例3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,及iii)針對該各自候選解決方案判定之該碰撞值。
實例6. 如實例3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列所損耗之能量之一量,及iii)針對該各自候選解決方案判定之該碰撞值。
實例7. 如實例3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含:經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,iii)完成該等任務序列所損耗之能量之一量,及iv)針對該各自候選解決方案判定之該碰撞值。
實例8. 如實例3至7中任一者之方法,其中經由藉由一優化引擎之模型化判定完成該等任務序列之一各自時間及表示發生一碰撞之一比率或一概率之一各自碰撞值包含:
經由該多機器人環境模擬器虛擬地執行該等任務序列之各任務;
針對複數個出現期之各出現期,經由該多機器人環境模擬器對該等機器人之至少一者之一部分之一C空間位置取樣;及
使用正向運動學檢查碰撞以識別該等機器人之一各自者之一或多個部分與該等機器人之該各自者之另一部分之間、該環境中之該等機器人之該各自者與該等機器人之另一者之間、及該等機器人之該各自者與該多機器人操作環境中非另一機器人之另一物件之間之潛在碰撞。
實例9. 如實例8之方法,其中任務之該有序清單等效於該機器人之該C空間中之軌跡之一有序清單,且包含複數個軌跡、一或多個姿勢下之一或多個停留持續時間、一起始姿勢及該機器人之該C空間中之一或多個其他經定義功能姿勢,且虛擬地執行包含虛擬地執行以下:該複數個軌跡及以下之一或多者:在一或多個姿勢下之該一或多個停留持續時間、該起始姿勢或該一或多個其他經定義功能姿勢。
實例10. 如實例1或2之方法,其進一步包括:
針對C候選解決方案之該群體中之數個候選解決方案之各者,針對至少一個反覆:
擾動該各自候選解決方案以產生一經擾動候選解決方案;
模型化該經擾動候選解決方案;
判定該經擾動候選解決方案是否具有低於該各自候選解決方案之一相關聯成本;且
回應於該經擾動候選解決方案具有低於該各自候選解決方案之一相關聯成本之一判定,使用該經擾動候選解決方案替換C候選解決方案之該群體中之該各自候選解決方案。
實例11. 如實例10之方法,重複該擾動、該模型化、該判定及該替換達多個反覆直至一收斂之一發生、達到對反覆之數目之一限制或對反覆時間之一限制。
實例12. 如實例10之方法,其中擾動該各自候選解決方案以產生一經擾動候選解決方案包含擾動一候選解決方案向量,該候選解決方案向量包含複數個實數向量元素,各任務一個實數向量元素,該等實數向量元素表示該等任務之一各自者、該等任務之該各自者之一優先級及經識別以執行該等任務之該各自者之該等機器人之一者之一各自組合。
實例13. 如實例1或2之方法,其進一步包括:
接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動及一組任務時之一位置、速度、加速度、急衝或扭矩。
實例14. 如實例1或2之方法,其進一步包括:
接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動、一組任務時之一位置、速度、加速度、急衝或扭矩以及以下之至少一者:在該等機器人之至少一者執行至少一個任務時停留在一或多個目標處之一或多個停留持續時間、對變數之一組界限或約束、或指定對模擬碰撞之一時間限制之一組時間間隔。
實例15. 如實例1或2之方法,其中該群體產生器係一偽隨機群體產生器,且其中經由一群體種子產生器產生C候選解決方案之一群體包含經由該偽隨機群體產生器偽隨機地產生C候選解決方案之該群體。
實例16. 如實例1或2之方法,其中經由一群體產生器產生C候選解決方案之一群體包含產生具有比C候選解決方案之一純偽隨機產生群體更低之成為一無效候選解決方案之一概率之C候選解決方案之該群體。
實例17. 如實例1或2之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含選擇具有以下之一共同優化組合之一優化候選解決方案:該等機器人之各者之該各自基座之一各自優化基座位置及定向、一優化任務分配、及一優化運動規劃。
實例18. 如實例1至17中任一者之方法,其進一步包括:至少部分基於以下之一者規劃設定該等機器人:如由該輸出指定之該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
實例19. 一種用於規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之基於處理器之系統,該基於處理器之系統包括:
至少一個處理器;及
至少一個非暫時性處理器可讀媒體,其儲存資料及處理器可執行指令之至少一者,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器執行如實例1至18之方法之任一者。
實例20. 一種用於規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之基於處理器之系統,該基於處理器之系統包括:
至少一個處理器;及
至少一個非暫時性處理器可讀媒體,其儲存資料及處理器可執行指令之至少一者,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由一群體產生器產生C候選解決方案之一群體,C候選解決方案之該群體中之該等候選解決方案之各者針對該等機器人之各者指定:一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列,其中該各自基座位置及定向指定該多機器人操作環境中之該各自機器人之一基座之一各自位置及定向,該各自組至少一個經定義姿勢至少指定該多機器人操作環境中之該各自機器人之一各自起始姿勢,且該各自目標序列包括該各自機器人移動通過以完成任務之一各自序列之目標之一各自有序清單;
藉由跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化:該等機器人之該各自基座位置及定向、該等任務至該等機器人之各自者之一分配及該等機器人之該等各自目標序列;及
提供以下作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
實例21. 如實例20之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器提供以下作為一輸出:針對各機器人以該各自機器人之C空間中之目標之一優化有序清單之形式指定待執行之任務之一各自序列及在該等目標之一或多者處之一或多個停留持續時間之一優化任務分配,及指定一組無碰撞路徑之一優化運動規劃,該組無碰撞路徑指定目標之該有序清單中之各對連續目標之間之一各自無碰撞路徑。
實例22. 如實例20或21中任一者之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步:
針對候選解決方案之該群體C之該等候選解決方案之各者,經由藉由一機器人環境模擬器執行之模型化判定完成該等任務序列之一各自時間及表示在完成該等任務序列時發生的一碰撞之一比率或一概率之一各自碰撞值。
實例23. 如實例22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於該等機器人為了完成該等任務序列將經受之該磨損量及針對該各自候選解決方案判定之該碰撞值。
實例24 如實例22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,及iii)針對該各自候選解決方案判定之該碰撞值。
實例25. 如實例22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列所損耗之能量之一量,及iii)針對該各自候選解決方案判定之該碰撞值。
實例26. 如實例22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,iii)完成該等任務序列所損耗之能量之一量,及iv)針對該各自候選解決方案判定之該碰撞值。
實例27. 如實例22至26中任一者之基於處理器之系統,其中為了經由藉由一優化引擎之模型化判定完成該等任務序列之一各自時間及表示發生一碰撞之一比率或一概率之一各自碰撞值,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:
經由該多機器人環境模擬器虛擬地執行該等任務序列之各任務;
針對複數個出現期之各出現期,經由該多機器人環境模擬器對該等機器人之至少一者之一部分之一C空間位置取樣;及
使用正向運動學檢查碰撞以識別該等機器人之一各自者之一或多個部分與該等機器人之該各自者之另一部分之間、該環境中之該等機器人之該各自者與該等機器人之另一者之間、及該等機器人之該各自者與該多機器人操作環境中非另一機器人之另一物件之間之潛在碰撞。
實例28. 如實例27之基於處理器之系統,其中任務之該有序清單等效於該機器人之該C空間中之軌跡之一有序清單,且包含複數個軌跡、一或多個姿勢下之一或多個停留持續時間、一起始姿勢及該機器人之該C空間中之一或多個其他經定義功能姿勢,且為了虛擬地執行各任務,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:在一或多個姿勢下之一或多個停留持續時間、起始姿勢或一或多個其他經定義功能姿勢。
實例29. 如實例20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步:
針對C候選解決方案之該群體中之數個候選解決方案之各者,針對至少一個反覆:
擾動該各自候選解決方案以產生一經擾動候選解決方案;
模型化該經擾動候選解決方案;
判定該經擾動候選解決方案是否具有低於該各自候選解決方案之一相關聯成本;且
回應於該經擾動候選解決方案具有低於該各自候選解決方案之一相關聯成本之一判定,使用該經擾動候選解決方案替換C候選解決方案之該群體中之該各自候選解決方案。
實例30. 如實例29之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步重複該擾動、該模型化、該判定及該替換達多個反覆直至一收斂之一發生、達到對反覆之數目之一限制或對反覆時間之一限制。
實例31. 如實例29之基於處理器之系統,其中為了擾動該各自候選解決方案以產生一經擾動候選解決方案,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器擾動一候選解決方案向量,該候選解決方案向量包含複數個實數向量元素,各任務一個實數向量元素,該等實數向量元素表示該等任務之一各自者、該等任務之該各自者之一優先級及經識別以執行該等任務之該各自者之該等機器人之一者之一各自組合。
實例32. 如實例20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步:
接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動及一組任務時之一位置、速度、加速度、急衝或扭矩。
實例33. 如實例20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步:
接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動、一組任務時之一位置、速度、加速度、急衝或扭矩以及以下之至少一者:在該等機器人之至少一者執行至少一個任務時停留在一或多個目標處之一或多個停留持續時間、對變數之一組界限或約束、或指定對模擬碰撞之一時間限制之一組時間間隔。
實例34. 如實例20或21之基於處理器之系統,其中該群體產生器係一偽隨機群體產生器,且其中經由一群體種子產生器產生C候選解決方案之一群體包含經由該偽隨機群體產生器偽隨機地產生C候選解決方案之該群體。
實例35. 如實例20或21之基於處理器之系統,其中經由一群體產生器產生C候選解決方案之一群體包含產生具有比C候選解決方案之一純偽隨機產生群體更低之成為一無效候選解決方案之一概率之C候選解決方案之該群體。
實例36. 如實例20或21之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器選擇具有以下之一共同優化組合之一優化候選解決方案:該等機器人之各者之該各自基座之一各自優化基座位置及定向、一優化任務分配、及一優化運動規劃。
實例37. 如實例20至36中任一者之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:基於以下之至少一者規劃設定該等機器人:如由該輸出指定之該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
前述詳細描述已經由使用方塊圖、示意圖及實例而闡述裝置及/或程序之各項實施例。在此等方塊圖、示意圖及實例含有一或多個功能及/或操作之範圍內,熟習此項技術者應理解,此等方塊圖、流程圖或實例內之各功能及/或操作可由廣範圍之硬體、軟體、韌體或基本上其等之任何組合個別地及/或共同地實施。在一項實施例中,本標的物可經由布林電路、特定應用積體電路(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」之國際專利申請公開案第WO2016/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號;2020年1月22日申請之標題為「CONFIGURATION OF ROBOTS IN MULTI-ROBOT OPERATIONAL ENVIRONMENT」之美國專利申請案第62/964,405號;及發表為WO 2021/150439 A1之國際專利申請案第PCT /US202 l/0 13610號,該等案之全文以引用的方式併入本文中。鑑於上文詳細描述,可對實施例進行此等及其他改變。一般言之,在以下發明申請專利範圍中,所採用之術語不應被解釋為將發明申請專利範圍限於說明書及發明申請專利範圍中揭示之特定實施例,而應被解釋為包含全部可能實施例以及此等發明申請專利範圍所授權之等效物之全範疇。因此,發明申請專利範圍不受本發明限制。
100:機器人系統
102:機器人
102a:機器人
102b:機器人
102c:機器人
103:機器人附肢
104:共用工作空間
105:基座
106:輸送機
108:多機器人規劃設定優化系統
109:輸入
110:群體產生器
111:輸出
112:多機器人環境模擬器
114:多機器人優化引擎
116:候選解決方案
118:機器人控制系統
120:運動規劃器
201a:致動器
201b:致動器
201c:致動器
202:運動控制器
210:網路
212:遠端電腦系統/遠端運算系統
222:處理器
224a:系統記憶體/非暫時性儲存媒體
224b:磁碟機/非暫時性儲存媒體
226:唯讀記憶體(ROM)
228:隨機存取記憶體(RAM)
229:系統匯流排
230:快閃記憶體
232:基本輸入/輸出系統(BIOS)
236:作業系統
238:應用程式
240:其他程式或模組
242:程式資料
244:監測器/觸控螢幕顯示器
246:鍵台/鍵盤
248:電腦滑鼠
300:機器人規劃設定方法
302:操作
304:操作
306:操作
308:操作
310:操作
312:操作
400:高階多機器人環境模擬方法
402:操作
404:操作
406:操作
408:操作
410:操作
412:操作
414:操作
416:操作
418:操作
500:低階多機器人環境模擬方法
502:操作
504:操作
506:操作
508:操作
600:低階多機器人優化差分演進(DE)方法
602:操作
604:操作
606:操作
608:操作
610:操作
612:操作
614:操作
616:操作
618:操作
620:操作
622:操作
624:操作
626:操作
700:參數化
800:圖表
900:資料結構
1000:低階多機器人差分演進(DE)候選解決方案方法
1002:候選解決方案產生器
1004:操作
1006:操作
1008:操作
1009:多機器人模擬器
1010:操作
1012:操作
1012a:操作
1012b:操作
1012c:操作
1012d:操作
1014:操作
1014a:操作
1014b:操作
1016:操作
1018:操作
1020:操作
1022:操作
1024:多機器人優化引擎
在圖式中,相同元件符號識別類似元件或動作。圖式中之元件之大小及相對位置未必按比例繪製。例如,各種元件之形狀及角度未按比例繪製,且此等元件之一些經任意放大及定位以改良圖式易讀性。此外,如繪製之元件之特定形狀不旨在傳達關於特定元件之實際形狀之任何資訊,且已僅為了易於在圖式中辨識而選擇。
圖1係根據一個所繪示實施方案之複數個機器人在其中操作以實行任務且一規劃設定系統執行一優化以規劃設定機器人之一共用工作空間或多機器人操作環境之一示意圖。
圖2係根據一個所繪示實施方案之包含一或多個處理器及儲存處理器可執行指令之一或多個非暫時性處理器可讀媒體之圖1之規劃設定系統之一功能方塊圖且亦展示複數個機器人。
圖3展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一高階機器人規劃設定方法。
圖4展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一高階多機器人環境模擬方法。
圖5展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人環境模擬方法。
圖6展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人優化DE方法。
圖7展示根據至少一個所繪示實施方案之可與採用一差分演進(DE)演算法之一實施方案一起採用之一參數化成本函數。
圖8係進一步繪示根據至少一個所繪示實施方案之圖7之功能函數之一圖表。
圖9展示根據至少一個所繪示實施方案之由一基於處理器之系統例如在執行圖6之低階多機器人優化DE方法時在以容許擾動之一格式表示一候選解決方案時採用之一資料結構。
圖10展示根據至少一個所繪示實施方案之操作一基於處理器之系統以規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之一低階多機器人DE候選解決方案方法,從而詳細繪示一群體產生器之操作。
100:機器人系統
102a:機器人
102b:機器人
102c:機器人
103:機器人附肢
104:共用工作空間
105:基座
106:輸送機
108:多機器人規劃設定優化系統
109:輸入
110:群體產生器
111:輸出
112:多機器人環境模擬器
114:多機器人優化引擎
116:候選解決方案
118:機器人控制系統
120:運動規劃器
Claims (37)
- 一種在一基於處理器之系統中操作之方法以規劃設定複數個機器人用於在其中將有複數個機器人操作之一多機器人操作環境,該方法包括: 經由一群體產生器產生C候選解決方案之一群體,C候選解決方案之該群體中之該等候選解決方案之各者針對該等機器人之各者指定:一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列,其中該各自基座位置及定向指定該多機器人操作環境中之該各自機器人之一基座之一各自位置及定向,該各自組至少一個經定義姿勢至少指定該多機器人操作環境中之該各自機器人之一各自起始姿勢,且該各自目標序列包括該各自機器人移動通過以完成任務之一各自序列之目標之一各自有序清單; 藉由跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化:該等機器人之該各自基座位置及定向、該等任務至該等機器人之各自者之一分配及該等機器人之該等各自目標序列;及 提供以下作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
- 如請求項1之方法,其中提供以下項作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃,其包含提供針對各機器人以該各自機器人之C空間中之目標之一優化有序清單之形式指定待執行之任務之一各自序列及在該等目標之一或多者處之一或多個停留持續時間之一優化任務分配,且提供指定一組無碰撞路徑之一優化運動規劃,該組無碰撞路徑指定目標之該有序清單中之各對連續目標之間之一各自無碰撞路徑。
- 如請求項1或2中任一項之方法,其進一步包括: 針對候選解決方案之該群體C之該等候選解決方案之各者,經由藉由一機器人環境模擬器執行之模型化判定完成該等任務序列之一各自時間及表示在完成該等任務序列時發生的一碰撞之一比率或一概率之一各自碰撞值。
- 如請求項3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於該等機器人為了完成該等任務序列將經受之該磨損量及針對該各自候選解決方案判定之該碰撞值。
- 如請求項3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,及iii)針對該各自候選解決方案判定之該碰撞值。
- 如請求項3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序所損耗之能量之一量,及iii)針對該各自候選解決方案判定之該碰撞值。
- 如請求項3之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,iii)完成該等任務序列所損耗之能量之一量,及iv)針對該各自候選解決方案判定之該碰撞值。
- 如請求項3至7中任一項之方法,其中經由藉由一優化引擎之模型化判定完成該等任務序列之一各自時間及表示發生一碰撞之一比率或一概率之一各自碰撞值包含: 經由一多機器人環境模擬器虛擬地執行該等任務序列之各任務; 針對複數個出現期之各出現期,經由該多機器人環境模擬器對該等機器人之至少一者之一部分之一C空間位置取樣;及 使用正向運動學檢查碰撞以識別該等機器人之一各自者之一或多個部分與該等機器人之該各自者之另一部分之間、該環境中之該等機器人之該各自者與該等機器人之另一者之間、及該等機器人之該各自者與該多機器人操作環境中非另一機器人之另一物件之間之潛在碰撞。
- 如請求項8之方法,其中任務之該有序清單等效於該機器人之該C空間中之軌跡之一有序清單,且包含複數個軌跡、一或多個姿勢下之一或多個停留持續時間、一起始姿勢及該機器人之該C空間中之一或多個其他經定義功能姿勢,且虛擬地執行包含虛擬地執行以下:該複數個軌跡及以下之一或多者:在一或多個姿勢下之該一或多個停留持續時間、該起始姿勢或該一或多個其他經定義功能姿勢。
- 如請求項1或2之方法,其進一步包括: 針對C候選解決方案之該群體中之數個候選解決方案之各者,針對至少一個反覆: 擾動該各自候選解決方案以產生一經擾動候選解決方案; 模型化該經擾動候選解決方案; 判定該經擾動候選解決方案是否具有低於該各自候選解決方案之一相關聯成本;且 回應於該經擾動候選解決方案具有低於該各自候選解決方案之一相關聯成本之一判定,使用該經擾動候選解決方案替換C候選解決方案之該群體中之該各自候選解決方案。
- 如請求項10之方法,重複該擾動、該模型化、該判定及該替換達多個反覆直至一收斂之一發生、達到對反覆之數目之一限制或對反覆時間之一限制。
- 如請求項10之方法,其中擾動該各自候選解決方案以產生一經擾動候選解決方案包含擾動一候選解決方案向量,該候選解決方案向量包含複數個實數向量元素,各任務一個實數向量元素,該等實數向量元素表示該等任務之一各自者、該等任務之該各自者之一優先級及經識別以執行該等任務之該各自者之該等機器人之一者之一各自組合。
- 如請求項1或2之方法,其進一步包括: 接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動及一組任務時之一位置、速度、加速度、急衝或扭矩。
- 如請求項1或2之方法,其進一步包括: 接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動、一組任務時之一位置、速度、加速度、急衝或扭矩以及以下之至少一者:在該等機器人之至少一者執行至少一個任務時停留在一或多個目標處之一或多個停留持續時間、對變數之一組界限或約束、或指定對模擬碰撞之一時間限制之一組時間間隔。
- 如請求項1或2之方法,其中該群體產生器係一偽隨機群體產生器,且其中經由一群體種子產生器產生C候選解決方案之一群體包含經由該偽隨機群體產生器偽隨機地產生C候選解決方案之該群體。
- 如請求項1或2之方法,其中經由一群體產生器產生C候選解決方案之一群體包含產生具有比C候選解決方案之一純偽隨機產生群體更低之成為一無效候選解決方案之一概率之C候選解決方案之該群體。
- 如請求項1或2之方法,其中藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化包含選擇具有以下之一共同優化組合之一優化候選解決方案:該等機器人之各者之該各自基座之一各自優化基座位置及定向、一優化任務分配、及一優化運動規劃。
- 如請求項1至17中任一項之方法,其進一步包括: 至少部分基於以下之一者規劃設定該等機器人:如由該輸出指定之該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
- 一種用於規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器;及 至少一個非暫時性處理器可讀媒體,其儲存資料及處理器可執行指令之至少一者,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器執行如請求項1至18之方法之任一者。
- 一種用於規劃設定複數個機器人將在其中操作之一多機器人操作環境之複數個機器人之基於處理器之系統,該基於處理器之系統包括: 至少一個處理器;及 至少一個非暫時性處理器可讀媒體,其儲存資料及處理器可執行指令之至少一者,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由一群體產生器產生C候選解決方案之一群體,C候選解決方案之該群體中之該等候選解決方案之各者針對該等機器人之各者指定:一各自基座位置及定向、一各自組至少一個經定義姿勢及一各自目標序列,其中該各自基座位置及定向指定該多機器人操作環境中之該各自機器人之一基座之一各自位置及定向,該各自組至少一個經定義姿勢至少指定該多機器人操作環境中之該各自機器人之一各自起始姿勢,且該各自目標序列包括該各自機器人移動通過以完成任務之一各自序列之目標之一各自有序清單; 藉由跨以下之兩者或更多者之一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化:該等機器人之該各自基座位置及定向、該等任務至該等機器人之各自者之一分配及該等機器人之該等各自目標序列;及 提供以下作為輸出:該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
- 如請求項20之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器提供以下作為一輸出:針對各機器人以該各自機器人之C空間中之目標之一優化有序清單之形式指定待執行之任務之一各自序列及在該等目標之一或多者處之一或多個停留持續時間之一優化任務分配,及指定一組無碰撞路徑之一優化運動規劃,該組無碰撞路徑指定目標之該有序清單中之各對連續目標之間之一各自無碰撞路徑。
- 如請求項20或21中任一項之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步: 針對候選解決方案之該群體C之該等候選解決方案之各者,經由藉由一機器人環境模擬器執行之模型化判定完成該等任務序列之一各自時間及表示在完成該等任務序列時發生的一碰撞之一比率或一概率之一各自碰撞值。
- 如請求項22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於該等機器人為了完成該等任務序列將經受之該磨損量及針對該各自候選解決方案判定之該碰撞值。
- 如請求項22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,及iii)針對該各自候選解決方案判定之該碰撞值。
- 如請求項22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列所損耗之能量之一量,及iii)針對該各自候選解決方案判定之該碰撞值。
- 如請求項22之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎至少相對於該等機器人將經受之一磨損量對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由該優化引擎至少部分基於與該等候選解決方案之一者相關聯之一各自成本選擇該候選解決方案,該各自成本至少部分基於以下之各者:i)該等機器人為了完成該等任務序列將經受之該磨損量,ii)完成該等任務序列之該時間,iii)完成該等任務序列所損耗之能量之一量,及iv)針對該各自候選解決方案判定之該碰撞值。
- 如請求項22至26中任一項之基於處理器之系統,其中為了經由藉由一優化引擎之模型化判定完成該等任務序列之一各自時間及表示發生一碰撞之一比率或一概率之一各自碰撞值,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 經由一多機器人環境模擬器虛擬地執行該等任務序列之各任務; 針對複數個出現期之各出現期,經由該多機器人環境模擬器對該等機器人之至少一者之一部分之一C空間位置取樣;及 使用正向運動學檢查碰撞以識別該等機器人之一各自者之一或多個部分與該等機器人之該各自者之另一部分之間、該環境中之該等機器人之該各自者與該等機器人之另一者之間、及該等機器人之該各自者與該多機器人操作環境中非另一機器人之另一物件之間之潛在碰撞。
- 如請求項27之基於處理器之系統,其中任務之該有序清單等效於該機器人之該C空間中之軌跡之一有序清單,且包含複數個軌跡、一或多個姿勢下之一或多個停留持續時間、一起始姿勢及該機器人之該C空間中之一或多個其他經定義功能姿勢,且為了虛擬地執行各任務,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器:在一或多個姿勢下之一或多個停留持續時間、起始姿勢或一或多個其他經定義功能姿勢。
- 如請求項20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步: 針對C候選解決方案之該群體中之數個候選解決方案之各者,針對至少一個反覆: 擾動該各自候選解決方案以產生一經擾動候選解決方案; 模型化該經擾動候選解決方案; 判定該經擾動候選解決方案是否具有低於該各自候選解決方案之一相關聯成本;且 回應於該經擾動候選解決方案具有低於該各自候選解決方案之一相關聯成本之一判定,使用該經擾動候選解決方案替換C候選解決方案之該群體中之該各自候選解決方案。
- 如請求項29之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步重複該擾動、該模型化、該判定及該替換達多個反覆直至一收斂之一發生、達到對反覆之數目之一限制或對反覆時間之一限制。
- 如請求項29之基於處理器之系統,其中為了擾動該各自候選解決方案以產生一經擾動候選解決方案,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器擾動一候選解決方案向量,該候選解決方案向量包含複數個實數向量元素,各任務一個實數向量元素,該等實數向量元素表示該等任務之一各自者、該等任務之該各自者之一優先級及經識別以執行該等任務之該各自者之該等機器人之一者之一各自組合。
- 如請求項20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步: 接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動及一組任務時之一位置、速度、加速度、急衝或扭矩。
- 如請求項20或21之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器進一步: 接收輸入,該輸入包含該多機器人操作環境之至少一個模型、將在該多機器人操作環境中操作之該等機器人之至少兩者之各者之一各自模型、表示將由該至少一個機器人相對於以下之一或多者經歷之各自磨損量之該等機器人之至少一者之至少一個磨損模型:該至少一個機器人在執行運動、一組任務時之一位置、速度、加速度、急衝或扭矩以及以下之至少一者:在該等機器人之至少一者執行至少一個任務時停留在一或多個目標處之一或多個停留持續時間、對變數之一組界限或約束、或指定對模擬碰撞之一時間限制之一組時間間隔。
- 如請求項20或21之基於處理器之系統,其中該群體產生器係一偽隨機群體產生器,且其中經由一群體種子產生器產生C候選解決方案之一群體包含經由該偽隨機群體產生器偽隨機地產生C候選解決方案之該群體。
- 如請求項20或21之基於處理器之系統,其中經由一群體產生器產生C候選解決方案之一群體包含產生具有比C候選解決方案之一純偽隨機產生群體更低之成為一無效候選解決方案之一概率之C候選解決方案之該群體。
- 如請求項20或21之基於處理器之系統,其中為了藉由跨一組兩個或更多個非均質參數共同優化之一優化引擎對C候選解決方案之該群體執行一優化,該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器選擇具有以下之一共同優化組合之一優化候選解決方案:該等機器人之各者之該各自基座之一各自優化基座位置及定向、一優化任務分配、及一優化運動規劃。
- 如請求項20至36中任一項之基於處理器之系統,其中該等處理器可執行指令在藉由該至少一個處理器執行時,引起該處理器: 基於以下之至少一者規劃設定該等機器人:如由該輸出指定之該等機器人之各者之該各自基座位置及定向、該等機器人之各者之一各自任務分配、及該等機器人之各者之一各自運動規劃。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263410545P | 2022-09-27 | 2022-09-27 | |
US63/410,545 | 2022-09-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202428406A true TW202428406A (zh) | 2024-07-16 |
Family
ID=90479083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112132024A TW202428406A (zh) | 2022-09-27 | 2023-08-25 | 多機器人操作環境中為優化磨損和其他參數所為之機器人的自動規劃設定 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202428406A (zh) |
WO (1) | WO2024073245A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5877867B2 (ja) * | 2014-04-25 | 2016-03-08 | ファナック株式会社 | 複数台のロボットのシミュレーション装置 |
US9457469B2 (en) * | 2014-08-14 | 2016-10-04 | Siemens Industry Software Ltd. | Method and apparatus for automatic and efficient location generation for cooperative motion |
WO2017168187A1 (en) * | 2016-03-31 | 2017-10-05 | Siemens Industry Software Ltd. | Method and system for determining optimal positioning of a plurality of robots in a simulated production environment |
US11216009B2 (en) * | 2018-06-25 | 2022-01-04 | Intrinsic Innovation Llc | Robot coordination in a shared workspace |
TW202146189A (zh) * | 2020-01-22 | 2021-12-16 | 美商即時機器人股份有限公司 | 於多機器人操作環境中之機器人之建置 |
-
2023
- 2023-08-25 TW TW112132024A patent/TW202428406A/zh unknown
- 2023-09-14 WO PCT/US2023/074143 patent/WO2024073245A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024073245A1 (en) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7489727B2 (ja) | マルチロボット運用環境におけるロボットの構成 | |
US20200398428A1 (en) | Motion planning for multiple robots in shared workspace | |
Proia et al. | Control techniques for safe, ergonomic, and efficient human-robot collaboration in the digital industry: A survey | |
Mokaram et al. | A ROS-integrated API for the KUKA LBR iiwa collaborative robot | |
Tahriri et al. | Optimizing the robot arm movement time using virtual reality robotic teaching system | |
US20240009845A1 (en) | Systems, methods, and user interfaces employing clearance determinations in robot motion planning and control | |
Andreevich et al. | Designing algorithms for service robots on the basis of mivar approach | |
TW202415506A (zh) | 穩健運動規劃及/或用於多機器人環境之控制 | |
TW202428406A (zh) | 多機器人操作環境中為優化磨損和其他參數所為之機器人的自動規劃設定 | |
US20230342967A1 (en) | Configuration of robot operational environment including layout of sensors | |
Shinde et al. | Minimizing cycle time and energy consumption for a multi-degree serial manipulator using teaching–learning-based optimization | |
Yasuda | Discrete event behavior-based distributed architecture design for autonomous intelligent control of mobile robots with embedded petri nets | |
US20230286156A1 (en) | Motion planning and control for robots in shared workspace employing staging poses | |
EP3978209B1 (en) | Generative design techniques for soft robot manipulators | |
Szabó et al. | GPU Accelerated Collision Detection for Robotic Manipulators | |
Roveda et al. | One-stage auto-tuning procedure of robot dynamics and control parameters for trajectory tracking applications | |
Testa et al. | A stable method for task priority adaptation in quadratic programming via reinforcement learning | |
Yasuda | Design and implementation of Petrinet based distributed control architecture for robotic manufacturing systems | |
Zafar et al. | Inverse Kinematic Modelling of a 3-DOF Robotic Manipulator using Hybrid Deep Learning Models | |
CN118871259A (zh) | 采用分段姿态的共享工作空间机器人的运动规划与控制 | |
Proia | Control techniques for collaborative and cooperative robotic systems | |
Kluge-Wilkes et al. | ¹ Chair of Production Metrology and Quality Management, Laboratory for Machine Tools and Production Engineering (WZL), RWTH Aachen University, Aachen, Germany A. Kluge-Wilkes@ wzl. rwth-aachen. de 2 | |
Ahmad | Feasibility study on robot off-line programming and simulation using matlab tools; simmechanics and simulink packages | |
Ou et al. | Toward a Cognitive Assembly System | |
Jafarian et al. | Artificial Neural Networks: A Learning Collision Detection Approach for Industrial Robot Manipulators |