[go: up one dir, main page]

TWI875723B - Apparatus, method and article to facilitate motion planning in an environment having dynamic objects - Google Patents

Apparatus, method and article to facilitate motion planning in an environment having dynamic objects Download PDF

Info

Publication number
TWI875723B
TWI875723B TW108144760A TW108144760A TWI875723B TW I875723 B TWI875723 B TW I875723B TW 108144760 A TW108144760 A TW 108144760A TW 108144760 A TW108144760 A TW 108144760A TW I875723 B TWI875723 B TW I875723B
Authority
TW
Taiwan
Prior art keywords
node
agents
environment
collision
graph
Prior art date
Application number
TW108144760A
Other languages
Chinese (zh)
Other versions
TW202123031A (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 杜克大學
Priority to TW108144760A priority Critical patent/TWI875723B/en
Publication of TW202123031A publication Critical patent/TW202123031A/en
Application granted granted Critical
Publication of TWI875723B publication Critical patent/TWI875723B/en

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/80Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
    • Y02T10/84Data processing systems or methods, management, administration

Landscapes

  • Traffic Control Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A motion planner of a computer system of a primary agent, e.g., an autonomous vehicle, uses reconfigurable collision detection architecture hardware to perform a collision assessment on a planning graph for the primary agent prior to execution of a motion plan. For edges on the planning graph, which represent transitions in states of the primary agent, the system sets a probability of collision with another agent, e.g., a dynamic object, in the environment based at least in part on the collision assessment. Depending on whether the goal of the primary agent is to avoid or collide with a particular dynamic object in the environment, the system then performs an optimization to identify a path in the resulting planning graph with either a relatively low or relatively high potential of a collision with the particular dynamic object. The system then causes the actuator system of the primary agent to implement a motion plan with the applicable identified path based at least in part on the optimization.

Description

用以便利具有動態物件環境中之運動規劃的裝置、方法及物品Devices, methods and articles for facilitating movement planning in an environment with dynamic objects

發明領域Invention Field

本揭露內容大體上係關於運動規劃,且特定言之係關於便利在具有動態物件之環境中對代理,例如自主車輛或其他機器人代理,進行運動規劃的系統及方法。The present disclosure relates generally to motion planning, and more particularly to systems and methods for facilitating motion planning for an agent, such as an autonomous vehicle or other robotic agent, in an environment with dynamic objects.

發明背景Invention Background

運動規劃為機器人中之基本問題。運動規劃可用於控制自主車輛之運動或控制其他類型之機器人或機器人之部分(例如,附件)的運動。舉例而言,運動規劃指定一路徑,自主車輛或機器人或其部分可自第一組配狀態(例如,開始姿勢)至目標狀態(例如,結束姿勢)跟隨該路徑,且通常不與操作環境中之任何障礙物碰撞,或與操作環境中之任何物件碰撞之可能性降低。然而,在一些情況下,可能需要與操作環境中之物件互動,以便檢測物件、自物件收集資訊、與物件交換資訊或甚至例如在遊戲中與物件碰撞。通常存在涉及創建運動規劃之四個主要分量:感知、地圖(在本文中亦被稱作運動規劃圖)建構、碰撞偵測及路徑搜尋。每一分量提出在自主車輛或機器人周圍的環境內克服之挑戰,該環境包括靜態物件,且特定言之包括在環境內移動之動態物件。動態障礙物之未來移動亦有可能為未知或不確定的。此類動態物件可與自主車輛或其他類型之機器人之目標相反地移動。因此,對於自主車輛或其他類型之機器人,執行運動規劃以即時地跟上彼等改變以避免碰撞或攔截此類物件從而達成目標狀態係有利的。Motion planning is a fundamental problem in robotics. Motion planning can be used to control the motion of an autonomous vehicle or to control the motion of other types of robots or parts of robots (e.g., accessories). For example, a motion plan specifies a path that an autonomous vehicle or robot or part thereof can follow from a first assembled state (e.g., a starting pose) to a target state (e.g., an ending pose) and typically without colliding with any obstacles in the operating environment or with a reduced probability of colliding with any objects in the operating environment. However, in some cases, it may be necessary to interact with objects in the operating environment in order to detect objects, collect information from objects, exchange information with objects, or even collide with objects, such as in a game. There are generally four main components involved in creating a motion plan: perception, map (also referred to herein as a motion plan map) construction, collision detection, and path finding. Each component presents challenges to overcome within the environment surrounding an autonomous vehicle or robot, which includes static objects, and specifically includes dynamic objects that move within the environment. The future movement of dynamic obstacles may also be unknown or uncertain. Such dynamic objects may move in opposition to the goal of the autonomous vehicle or other type of robot. Therefore, it is advantageous for an autonomous vehicle or other type of robot to perform motion planning to keep up with their changes in real time to avoid collisions or intercept such objects to achieve the target state.

發明概要Summary of the invention

運動規劃器系統可接收感知資訊,該感知資訊表示主要代理(例如,自主車輛、其他類型之機器人)操作之環境。運動規劃器系統在執行運動規劃之前在用於主要代理之規劃圖上執行碰撞評估,該碰撞評估考慮環境中之其他代理的動作,包括彼等其他代理可如何對主要代理採取之動作作出反應以及對彼此作出反應。The motion planner system may receive sensory information representing the environment in which a primary agent (e.g., an autonomous vehicle, other type of robot) operates. The motion planner system performs collision assessment on the planning graph for the primary agent before performing motion planning, which collision assessment considers the actions of other agents in the environment, including how they other agents may react to actions taken by the primary agent and to each other.

規劃圖之每一邊緣表示主要代理在主要代理之組配空間中自一個狀態至另一狀態之轉變,且具有與該轉變相關聯之固有或操作成本。固有或操作成本可反映主要代理之各種操作參數,諸如燃料及/或能量用量及/或時間。每一邊緣可具有對應於各別固有或操作成本之初始權重。Each edge of the planning diagram represents a transition of a principal agent from one state to another in the principal agent's combination space and has an inherent or operating cost associated with the transition. The inherent or operating cost may reflect various operating parameters of the principal agent, such as fuel and/or energy usage and/or time. Each edge may have an initial weight corresponding to the respective inherent or operating cost.

對於規劃圖上表示主要代理之狀態轉變的邊緣,系統至少部分地基於碰撞評估判定與環境中之動態物件碰撞的機率,且接著基於與動態物件碰撞之機率修改或調整邊緣之初始權重。舉例而言,系統可將成本函數應用於每一邊緣以基於彼邊緣之初始權重(亦即,對應於固有成本之權重)執行數學運算以獲得經修改權重。此可藉由以下操作來進行:基於碰撞機率將額外權重添加至初始經指派權重,使初始經指派權重乘以碰撞機率因數,或應用涉及碰撞機率及對應於固有成本之初始權重的某一其他函數或公式。如本文中所描述,碰撞評估有利地考慮環境中之其他代理對主要代理之動作作出的反應,以及對彼此作出之反應。除了碰撞機率之外,系統可指派獨立於碰撞機率之物件特定成本,諸如物件之相對重要性的成本反映。舉例而言,與人碰撞之成本可指派為顯著高於與樹碰撞之成本。For edges on the planning graph that represent state transitions of the primary agent, the system determines the probability of collision with a dynamic object in the environment based at least in part on the collision evaluation, and then modifies or adjusts the initial weight of the edge based on the probability of collision with the dynamic object. For example, the system may apply a cost function to each edge to perform a mathematical operation based on the initial weight of that edge (i.e., the weight corresponding to the inherent cost) to obtain a modified weight. This may be done by adding an additional weight to the initial assigned weight based on the collision probability, multiplying the initial assigned weight by a collision probability factor, or applying some other function or formula involving the collision probability and the initial weight corresponding to the inherent cost. As described herein, collision evaluation advantageously considers the reactions of other agents in the environment to the actions of the primary agent, as well as to each other. In addition to collision probability, the system can assign object-specific costs that are independent of collision probability, such as costs that reflect the relative importance of the objects. For example, the cost of colliding with a person can be assigned a significantly higher cost than the cost of colliding with a tree.

舉例而言,在主要代理之目標為避免與該主要代理之環境中之動態物件碰撞的實例中,若規劃圖之各別邊緣具有與一或多個動態物件碰撞之相對高各別機率,則系統可將具有相對大正值之權重指派至該等邊緣。若規劃圖之各別邊緣具有與環境中之一或多個動態物件碰撞之相對低各別機率,則系統可將具有相對小正值之權重指派至該等邊緣。系統接著執行最佳化以識別所得規劃圖中有相對低可能性與主要代理操作之環境中之一或多個動態物件碰撞的路徑。系統接著任選地使主要代理之致動器系統至少部分地基於最佳化實施有相對低可能性與此類動態物件碰撞之運動規劃。For example, in an instance where the goal of the primary agent is to avoid collisions with dynamic objects in the primary agent's environment, if individual edges of the planning graph have a relatively high individual probability of colliding with one or more dynamic objects, then the system may assign weights with relatively large positive values to those edges. If individual edges of the planning graph have a relatively low individual probability of colliding with one or more dynamic objects in the environment, then the system may assign weights with relatively small positive values to those edges. The system then performs optimization to identify paths in the resulting planning graph that have a relatively low probability of colliding with one or more dynamic objects in the environment in which the primary agent operates. The system then optionally causes the primary agent's actuator system to implement a motion plan that has a relatively low probability of colliding with such dynamic objects based at least in part on optimization.

亦舉例而言,在主要代理之目標為與該主要代理之環境中之動態物件碰撞的實例中,若規劃圖之各別邊緣具有與一或多個動態物件碰撞之相對高各別機率,則系統可將具有相對低正值之權重指派至該等邊緣,而若規劃圖之各別邊緣具有與環境中之一或多個動態物件碰撞之相對低各別機率,則系統將具有相對高正值之權重指派至該等邊緣。系統接著執行最佳化以識別所得規劃圖中有相對高可能性與主要代理操作之環境中之一或多個動態物件碰撞的路徑。系統接著任選地使主要代理之致動器系統至少部分地基於最佳化實施有相對高可能性與此類動態物件碰撞之運動規劃。Also for example, in an instance where the goal of the primary agent is to collide with a dynamic object in the primary agent's environment, the system may assign weights with relatively low positive values to individual edges of the planning graph if those edges have relatively high individual probabilities of colliding with one or more dynamic objects, and assign weights with relatively high positive values to those edges if those edges have relatively low individual probabilities of colliding with one or more dynamic objects in the environment. The system then performs optimization to identify paths in the resulting planning graph that have a relatively high probability of colliding with one or more dynamic objects in the environment in which the primary agent operates. The system then optionally causes the primary agent's actuator system to implement a motion plan that has a relatively high probability of colliding with such dynamic objects based at least in part on the optimization.

在所揭示實施中,存在網格中之每一邊緣經初始化為「不碰撞」之計算策略。對例如動態物件之其他代理之意圖取樣。舉例而言,可開發每一代理之行為模型,其將代理意圖處理為模型化潛在策略或目標,而非簡單軌跡。潛在策略或目標可呈可經取樣以判定代理將如何對其他代理軌跡作出反應之形式。每一代理之意圖提供軌跡t ,從而產生一組軌跡S 對於S中之每一樣本未來軌跡t :判定網格中與t 碰撞之邊緣(此可並行地進行);且使邊緣之成本遞增以反映碰撞機率(例如,若軌跡之10%與邊緣E碰撞,則E之碰撞機率為10%)。執行最小成本路徑搜尋(在應用包括機率碰撞之成本項之一或多個成本函數之後)以尋找規劃。邊緣之成本不一定必須為邊緣之碰撞機率之線性函數。In the disclosed implementation, there is a computational strategy where every edge in the grid is initialized to "no collision". Sample the intentions of other agents, such as dynamic objects. For example, a behavioral model for each agent can be developed that treats the agent's intentions as modeled potential strategies or goals, rather than simple trajectories. The potential strategies or goals can be in a form that can be sampled to determine how the agent will react to other agent trajectories. Each agent's intention provides a trajectory t , which produces a set of trajectories S. For each sample future trajectory t in S: determine the edges in the grid that collide with t (this can be done in parallel); and increment the cost of the edge to reflect the probability of collision (e.g., if 10% of the trajectories collide with edge E, then E has a 10% chance of collision). Performs a minimum cost path search (after applying one or more cost functions that include a cost term for the probability of collision) to find a plan. The cost of an edge does not necessarily have to be a linear function of the edge's collision probability.

在主要代理之目標為避免與特定動態物件碰撞的實例中,運動規劃器執行最佳化以識別所得規劃圖中之路徑,該運動規劃器提供主要代理操作之環境中有相對低可能性與此類動態物件碰撞的主要代理之運動規劃(例如,行進路線)。系統接著使主要代理(例如,自主車輛)之致動器系統至少部分地基於最佳化實施有相對低可能性與一或多個物件碰撞之運動規劃。In an example where the primary agent's goal is to avoid collisions with specific dynamic objects, a motion planner performs optimization to identify paths in the resulting planning graph that provide a motion plan (e.g., a path of travel) for the primary agent that has a relatively low probability of colliding with such dynamic objects in the environment in which the primary agent operates. The system then causes an actuator system of the primary agent (e.g., an autonomous vehicle) to implement the motion plan with a relatively low probability of colliding with one or more objects based at least in part on the optimization.

在主要代理之目標為與動態物件碰撞的實例中,運動規劃器執行最佳化以識別所得規劃圖中之路徑,該運動規劃器提供在主要代理操作之環境中有相對高可能性與此類動態物件碰撞的主要代理之運動規劃(例如,行進路線)。系統接著使主要代理(例如,自主車輛)之致動器系統至少部分地基於最佳化實施有相對高可能性與一或多個物件碰撞之運動規劃。In instances where the primary agent's goal is to collide with dynamic objects, a motion planner performs optimization to identify paths in the resulting planning graph that provide a motion plan (e.g., a path of travel) for the primary agent that has a relatively high probability of colliding with such dynamic objects in the environment in which the primary agent operates. The system then causes an actuator system of the primary agent (e.g., an autonomous vehicle) to implement the motion plan with a relatively high probability of colliding with one or more objects based at least in part on the optimization.

描述了一種在基於處理器之系統中操作以經由規劃圖執行運動規劃的運動規劃方法,其中每一規劃圖分別包含多個節點及邊緣,每一節點隱式地或顯式地表示表徵主要代理之狀態的時間及變數,該主要代理在包括一或多個其他代理之環境中操作,且每一邊緣表示各別的一對節點之間的轉變。該方法可概述為包括:對於第一規劃圖中之當前節點,針對分別表示一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在邊緣中之任一者與各別軌跡碰撞的情況下判定第一規劃圖之哪些邊緣與各別軌跡碰撞;將成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者;對於第一規劃圖中之數個候選節點中之每一者,候選節點為第一規劃圖中由第一規劃圖之各別單一邊緣直接耦接至第一規劃圖中之當前節點的任何節點,尋找第一規劃圖中自當前節點至目標節點之最小成本路徑,該最小成本路徑自當前節點直接傳遞至各別候選節點且接著傳遞至目標節點,在各別候選節點與目標節點之間沿著對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之軌跡尋找候選節點中之每一者之最小成本路徑之後,對於候選節點中之每一者,至少部分地基於跨越所有軌跡與各別候選節點之每一最小成本路徑相關聯的各別成本計算各別值;以及至少部分地基於經計算各別值選擇候選節點中之一者。A motion planning method operating in a processor-based system to perform motion planning via planning graphs is described, wherein each planning graph comprises a plurality of nodes and edges, each node implicitly or explicitly representing time and variables characterizing a state of a principal agent operating in an environment including one or more other agents, and each edge represents a transition between a respective pair of nodes. The method can be summarized as including: for a current node in a first planning graph, for each trajectory in a set of trajectories representing actual or expected trajectories of at least one of one or more other agents, determining which edges of the first planning graph collide with the respective trajectory if any of the edges collides with the respective trajectory; applying a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence; for each of a plurality of candidate nodes in the first planning graph, the candidate node is any node in the first planning graph that is directly coupled to the current node in the first planning graph by a respective single edge of the first planning graph, Finding a minimum cost path from a current node to a target node in a first planning graph, the minimum cost path passing from the current node directly to respective candidate nodes and then to the target node, with or without a number of intervening nodes successively along corresponding paths between the respective candidate nodes and the target node; after finding the minimum cost path for each of the candidate nodes with respect to a trajectory in the set of trajectories, for each of the candidate nodes, calculating a respective value based at least in part on a respective cost associated with each minimum cost path across all trajectories with the respective candidate nodes; and selecting one of the candidate nodes based at least in part on the calculated respective values.

將成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者可包括:對於經判定為與至少一個軌跡碰撞之邊緣中之任一者,將各別邊緣之成本增加至相對高量值以反映經判定碰撞,其中該相對高量值相對高於反映至少一個其他邊緣之碰撞之不存在的相對低量值。Applying a cost function to one or more of the respective edges to reflect at least one of a determined collision or its absence may include: for any of the edges determined to have collided with at least one trajectory, increasing the cost of the respective edge to a relatively high value to reflect the determined collision, wherein the relatively high value is relatively higher than a relatively low value reflecting the absence of a collision with at least one other edge.

將成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者可包括:對於經判定為不與至少一個軌跡碰撞之邊緣中之任一者,將各別邊緣之成本增加至相對高量值以反映碰撞之經判定不存在,其中相對高量值相對高於反映至少一個其他邊緣之碰撞的相對低量值。Applying a cost function to one or more of the respective edges to reflect at least one of a determined collision or its absence may include: for any of the edges determined not to collide with at least one trajectory, increasing the cost of the respective edge to a relatively high value to reflect the determined absence of a collision, wherein the relatively high value is relatively higher than a relatively low value reflecting a collision with at least one other edge.

該方法可進一步包括:對環境中之其他代理中之至少一者中之每一者取樣以判定其他代理之各別預期軌跡;以及自其他代理中之每一者之經判定各別實際或預期軌跡形成該組軌跡。The method may further include: sampling each of at least one of the other agents in the environment to determine a respective expected trajectory of the other agents; and forming the set of trajectories from the determined respective actual or expected trajectories of each of the other agents.

方法可進一步包括基於候選節點為第一規劃圖中由第一規劃圖之各別單一邊緣直接耦接至第一規劃圖中之當前節點的任何節點,自第一規劃圖之其他節點選擇第一規劃圖中之候選節點。The method may further include selecting a candidate node in the first planning graph from other nodes in the first planning graph based on the candidate node being any node in the first planning graph that is directly coupled to a current node in the first planning graph by a respective single edge of the first planning graph.

至少部分地基於跨越所有軌跡與各別候選節點之每一最小成本路徑相關聯之各別成本計算各別值可包括計算與每一最小成本路徑相關聯之各別成本之平均值,該每一最小成本路徑經由各別候選節點且在存在之情況下經由所有介入節點自當前節點延伸至目標節點。Calculating respective values based at least in part on respective costs associated with each minimum cost path across all trajectories to respective candidate nodes may include calculating an average of the respective costs associated with each minimum cost path extending from a current node to a target node through the respective candidate node and, where present, through all intervening nodes.

至少部分地基於經計算各別值選擇候選節點中之一者可包括選擇候選節點中具有為所有經計算值中之最小值之各別計算值的候選節點。Selecting one of the candidate nodes based at least in part on the calculated respective values may include selecting one of the candidate nodes having a respective calculated value that is a minimum of all calculated values.

該方法可進一步包括基於候選節點中之選定者更新主要代理之軌跡。The method may further include updating the trajectory of the primary agent based on the selection of the candidate nodes.

該方法可進一步包括在將成本函數應用於各別邊緣以反映經判定碰撞之前初始化第一規劃圖。初始化第一規劃圖可包括:對於第一規劃圖中之每一邊緣,關於環境中之數個靜態物件中之每一者對邊緣執行碰撞評估以在存在之情況下識別各別邊緣與靜態物件之間的碰撞。初始化第一規劃圖可包括:對於經評估為與靜態物件中之至少一者碰撞的每一邊緣,將成本函數應用於各別邊緣以反映經評估碰撞或自第一規劃圖移除邊緣。初始化第一規劃圖可包括:對於第一規劃圖中之每一節點,計算自該節點至目標節點之成本;以及使經計算成本與各別節點在邏輯上相關聯。The method may further include initializing the first planning map before applying the cost function to the respective edges to reflect the determined collisions. Initializing the first planning map may include: for each edge in the first planning map, performing a collision evaluation on the edge with respect to each of a plurality of static objects in the environment to identify a collision between the respective edge and the static object if present. Initializing the first planning map may include: for each edge evaluated to collide with at least one of the static objects, applying the cost function to the respective edge to reflect the evaluated collision or removing the edge from the first planning map. Initializing the first planning graph may include: for each node in the first planning graph, calculating the cost from the node to the target node; and logically associating the calculated costs with the respective nodes.

該方法可進一步包括:將候選節點中之選定者指派為第一規劃圖中之新當前節點;對於第一規劃圖中之新當前節點,針對分別表示一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在邊緣中之任一者與各別軌跡碰撞的情況下判定第一規劃圖之哪些邊緣與各別軌跡碰撞;將成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者;以及對於第一規劃圖中之數個新候選節點中之每一者,新候選節點為第一規劃圖中由第一規劃圖之各別單一邊緣直接耦接至第一規劃圖中之新當前節點的任何節點,尋找第一規劃圖中自新當前節點至目標節點之最小成本路徑,該最小成本路徑自新當前節點直接傳遞至各別新候選節點且接著傳遞至目標節點,在各別新候選節點與目標節點之間沿著對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之軌跡尋找新候選節點中之每一者之最小成本路徑之後,對於新候選節點中之每一者,至少部分地基於跨越所有軌跡與各別新候選節點之每一最小成本路徑相關聯的各別成本計算各別值;以及至少部分地基於經計算各別值選擇新候選節點中之一者。The method may further include: assigning a selected one of the candidate nodes as a new current node in the first planning graph; for the new current node in the first planning graph, for each trajectory in a set of trajectories representing actual or expected trajectories of at least one of one or more other agents, determining which edges of the first planning graph collide with the respective trajectory if any of the edges collides with the respective trajectory; applying a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence; and for each of a plurality of new candidate nodes in the first planning graph, the new candidate node is a node in the first planning graph that is directly coupled to the node in the first planning graph by a respective single edge of the first planning graph. any node of the new current node of the first planning graph, finding a minimum cost path from the new current node to the target node in the first planning graph, the minimum cost path being transmitted from the new current node directly to the respective new candidate nodes and then to the target node, with or without a number of intervening nodes continuously along the corresponding path between the respective new candidate nodes and the target node; after finding the minimum cost path for each of the new candidate nodes with respect to the trajectory in the set of trajectories, for each of the new candidate nodes, calculating a respective value based at least in part on the respective cost associated with each minimum cost path across all trajectories with the respective new candidate nodes; and selecting one of the new candidate nodes based at least in part on the calculated respective values.

描述了一種用以經由規劃圖執行運動規劃的基於處理器之系統,其中每一規劃圖分別包含多個節點及邊緣,每一節點隱式地或顯式地表示表徵主要代理之狀態的時間及變數,該主要代理在包括一或多個其他代理之環境中操作,且每一邊緣表示各別的一對節點之間的轉變。系統可概述為包括:至少一個處理器;以及至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令或資料中之至少一者,該等處理器可執行指令或資料在由至少一個處理器執行時使至少一個處理器執行上文概述之方法中之任一種。A processor-based system for executing motion planning via planning graphs is described, wherein each planning graph comprises a plurality of nodes and edges, each node implicitly or explicitly representing time and variables characterizing a state of a primary agent operating in an environment including one or more other agents, and each edge representing a transition between a respective pair of nodes. The system may be summarized as comprising: at least one processor; and at least one non-transitory processor-readable medium storing at least one of processor-executable instructions or data that, when executed by the at least one processor, cause the at least one processor to perform any of the methods summarized above.

描述了一種在運動規劃系統中操作之方法,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖。該方法可概述為包括:對於相對於第一圖中之當前節點的每一可用下一節點,經由至少一個處理器計算經由各別下一節點自當前節點到達目標節點之各別相關聯代表性成本,該各別相關聯代表性成本鑒於基於環境中之一或多個代理中之每一者之非確定性行為對與環境中之一或多個代理碰撞之機率進行的評估反映與經由各別下一節點自當前節點至目標節點之每一可用路徑相關聯的各別代表性成本,該等代理可隨時間改變位置、速度、軌跡、行進路徑或形狀中之任一或多者;基於每一可用下一節點之經計算各別相關聯代表性成本經由至少一個處理器選擇下一節點;以及至少部分地基於選定下一節點經由至少一個處理器命令移動。A method is described for operating in a motion planning system that employs a graph having nodes representing states and edges representing transitions between states. The method can be summarized as including: for each available next node relative to the current node in the first graph, calculating, via at least one processor, a respective associated representative cost of reaching a target node from the current node via the respective next node, the respective associated representative cost reflecting the respective representative cost associated with each available path from the current node to the target node via the respective next node in view of an evaluation of the probability of collision with one or more agents in the environment based on the non-deterministic behavior of each of the one or more agents in the environment, the agents may change any one or more of position, speed, trajectory, path of travel or shape over time; selecting, via at least one processor, a next node based on the calculated respective associated representative cost of each available next node; and commanding movement, via at least one processor, based at least in part on the selected next node.

計算經由各別下一節點自當前節點到達目標節點之各別相關聯代表性成本可包括:對於當前節點與目標節點之間經由各別下一節點之每一預期路徑,針對當前節點與目標節點之間沿著各別預期路徑的每一邊緣,判定各別相關聯代表性成本;針對當前節點與目標節點之間沿著各別預期路徑之每一邊緣將每一邊緣之經判定各別相關聯代表性成本指派至各別邊緣;至少部分地基於經指派之經判定各別相關聯代表性成本自當前節點與目標節點之間經由各別下一節點之各別預期路徑判定各別下一節點之最小成本路徑;以及將表示經判定最小成本路徑之值指派至各別下一節點。Calculating the respective associated representative costs from the current node to the target node via the respective next nodes may include: for each expected path between the current node and the target node via the respective next nodes, determining the respective associated representative costs for each edge along the respective expected path between the current node and the target node; for each edge along the respective expected path between the current node and the target node, assigning the determined respective associated representative costs of each edge to the respective edges; determining the minimum cost path of the respective next node from the respective expected path between the current node and the target node via the respective next nodes based at least in part on the assigned determined respective associated representative costs; and assigning a value representing the determined minimum cost path to the respective next node.

至少部分地基於經指派之經判定各別相關聯代表性成本自當前節點與目標節點之間經由各別下一節點之各別預期路徑判定各別下一節點之最小成本路徑可包括判定包括自當前節點遍歷(traverse)至各別下一節點之成本的最小成本路徑。Determining a minimum cost path to a respective next node based at least in part on respective expected paths between a current node and a target node through respective next nodes based at least in part on the assigned determined respective associated representative costs may include determining a minimum cost path including a cost of traversing from the current node to the respective next node.

針對當前節點與目標節點之間沿著各別預期路徑的每一邊緣判定各別相關聯代表性成本可包括:針對當前目標與目標節點之間沿著各別預期路徑的每一邊緣,以及基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險。Determining a respective associated representative cost for each edge along the respective expected path between the current node and the target node may include: for each edge along the respective expected path between the current target and the target node, and evaluating the risk of collision with one or more agents in the environment based on one or more probability functions that respectively represent non-deterministic behavior of each of the one or more agents in the environment.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:鑒於由各別下一節點與每一連續節點之間沿著各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示環境中之一或多個代理中之每一者之非確定性行為的機率函數取樣。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment may include sampling the probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment given a sequence of actions represented by a respective one of each edge between a respective next node and each successive node along a respective expected path.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:鑒於由各別下一節點與沿著通向目前節點之各別預期路徑之每一連續節點之間的每一邊緣中之各別者表示的一系列動作,對分別表示環境中之一或多個代理中之每一者之非確定性行為的機率函數取樣,該目前節點為在碰撞風險之評估期間到達之沿著各別預期路徑的另一節點。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment may include: given a sequence of actions represented by a respective one of each edge between a respective next node and each consecutive node along a respective expected path leading to a current node, sampling the probability function that respectively represents the non-deterministic behavior of each of the one or more agents in the environment, the current node being another node along the respective expected path reached during the evaluation of the collision risk.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:對於代理中之每一者,對分別表示各別代理之非確定性行為的各別機率函數重複取樣。對分別表示各別代理之非確定性行為的各別機率函數重複取樣可包括對各別機率函數重複取樣達多次反覆,該等反覆之總數目至少部分地基於在必須發生命令之前的可用時間量。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent non-deterministic behavior of each of the one or more agents in the environment may include: for each of the agents, repeatedly sampling a respective probability function that respectively represents the non-deterministic behavior of the respective agent. Repeatedly sampling the respective probability function that respectively represents the non-deterministic behavior of the respective agent may include repeatedly sampling the respective probability function for a number of iterations, the total number of iterations being based at least in part on an amount of time available before a command must occur.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:對於代理中之每一者,鑒於由各別下一節點與每一連續節點之間沿著各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示環境中之一或多個代理中之每一者之非確定性行為的機率函數重複取樣。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment may include: for each of the agents, repeatedly sampling the probability function that respectively represents the non-deterministic behavior of each of the one or more agents in the environment given a sequence of actions represented by a respective one of each edge between a respective next node and each successive node along a respective expected path.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:對於代理中之每一者,鑒於由各別下一節點與沿著通向目前節點之各別預期路徑之每一連續節點之間的每一邊緣中之各別者表示的一系列動作,對分別表示環境中之一或多個代理中之每一者之非確定性行為的機率函數重複取樣,該目前節點為在碰撞風險之評估期間到達之沿著各別預期路徑的另一節點。碰撞風險之評估涉及對各別預期路徑之遍歷的模擬。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent non-deterministic behavior of each of the one or more agents in the environment may include: for each of the agents, given a sequence of actions represented by each of the edges between the respective next node and each successive node along the respective expected path leading to a current node, repeatedly sampling the probability function that respectively represents the non-deterministic behavior of each of the one or more agents in the environment, the current node being another node along the respective expected path reached during the evaluation of the collision risk. The evaluation of the collision risk involves simulation of traversal of the respective expected path.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:至少基於環境中之一或多個代理中之每一者的經機率性判定之各別軌跡經由專用風險評估硬體評估碰撞風險,其中各別相關聯代表性成本至少部分地基於經評估碰撞風險。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent non-deterministic behavior of each of the one or more agents in the environment may include: evaluating the collision risk based at least on the probabilistically determined respective trajectories of each of the one or more agents in the environment via dedicated risk evaluation hardware, wherein the respective associated representative costs are based at least in part on the evaluated collision risk.

基於分別表示環境中之一或多個代理中之每一者之非確定性行為的一或多個機率函數評估與環境中之一或多個代理發生碰撞的風險可包括:基於分別表示環境中之一或多個代理中之至少一次要者之非確定性行為的一或多個機率函數評估與環境中之代理發生碰撞的風險,該等代理中之主要者為對其執行運動規劃之代理。Evaluating the risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment may include evaluating the risk of a collision with an agent in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of at least a minor one of the one or more agents in the environment, a major one of the agents being the agent for which motion planning is performed.

該方法可進一步包括:在計算自當前節點經由各別下一節點到達目標節點之各別相關聯代表性成本之前初始化第一圖。初始化第一圖可包括:執行靜態碰撞評估以識別與環境中之一或多個靜態物件的任何碰撞;對於第一圖中之每一節點,計算自各別節點到達目標節點之各別成本;以及對於第一圖中之每一節點,使到達目標節點之各別經計算成本與各別節點在邏輯上相關聯。The method may further include: initializing the first graph before calculating respective associated representative costs to reach a target node from a current node via respective next nodes. Initializing the first graph may include: performing static collision evaluation to identify any collisions with one or more static objects in the environment; for each node in the first graph, calculating a respective cost to reach the target node from the respective node; and for each node in the first graph, logically associating the respective calculated cost to reach the target node with the respective node.

描述了一種用以執行運動規劃的基於處理器之系統,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖。系統可概述為包括:至少一個處理器;以及至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令或資料中之至少一者,該等處理器可執行指令或資料在由至少一個處理器執行時使至少一個處理器執行上文所描述之方法中之任一種。A processor-based system for performing motion planning is described that employs a graph having nodes representing states and edges representing transitions between states. The system may be summarized as comprising: at least one processor; and at least one non-transitory processor-readable medium storing at least one of processor-executable instructions or data that, when executed by the at least one processor, causes the at least one processor to perform any of the methods described above.

描述了一種在運動規劃系統中操作之方法,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖以產生主要代理之運動規劃。該方法可概述為包括:將步長計數器T初始化為開始值(T= 0);初始化第一圖;執行模擬,該模擬包含:在第一圖中之當前節點N處而不在第一圖中之目標節點G處開始:對於一或多次取樣反覆,針對環境中之一或多個次要代理中之每一次要代理,自機率函數對在步長計數器自步長計數器之開始值至當前值遞增(T+1,亦即,下一步長)時各別次要代理將採取之動作取樣,該機率函數表示由主要代理採取及由一或多個次要代理採取的動作;判定第一圖之與下一動作碰撞的任何邊緣;對於與下一動作碰撞之任何邊緣,將各別成本函數應用於邊緣以反映碰撞條件之存在;對於直接連接至當前節點之一組節點之在第一圖中之每一節點,計算表示最小成本路徑之值,該最小成本路徑自當前節點至目標節點經由一或多個預期路徑遍歷一或多個路徑,該一或多個預期路徑係經由直接連接至當前節點之各別節點;判定是否執行另一取樣反覆;回應於判定為不執行另一取樣反覆,自直接連接至當前節點之該組節點選擇該組節點中之節點中具有最小成本的節點;使步長計數器遞增(T = T+1);判定模擬是否在目標節點處,回應於模擬不在目標節點處之判定,將選定節點設定為新當前節點,而不命令主要代理,且繼續模擬;回應於模擬在目標節點處之判定,自直接連接至當前節點之該組節點選擇具有最小成本之節點;以及提供選定節點之識別,該選定節點具有最小成本以命令主要代理之移動。A method operating in a motion planning system is described that employs a graph having nodes representing states and edges representing transitions between states to generate a motion plan for a primary agent. The method can be summarized as comprising: initializing a step counter T to a starting value (T = 0); initialize the first graph; perform a simulation, the simulation comprising: starting at a current node N in the first graph instead of a target node G in the first graph: for one or more sampling iterations, for each of the one or more secondary agents in the environment, sampling from a probability function the actions that the respective secondary agent will take when the step counter increments from the starting value of the step counter to the current value (T+1, i.e., the next step length), the probability function representing the actions taken by the primary agent and by the one or more secondary agents; determining any edges of the first graph that collide with the next action; for any edges that collide with the next action The method comprises the steps of: determining an edge of the first graph and applying a respective cost function to the edge to reflect the existence of a collision condition; for each node in the first graph of a set of nodes directly connected to the current node, calculating a value representing a minimum cost path, the minimum cost path traversing one or more paths from the current node to a target node via one or more expected paths, the one or more expected paths being through respective nodes directly connected to the current node; determining whether to perform another sampling iteration; in response to determining not to perform another sampling iteration, selecting a node having a minimum cost from the nodes in the set of nodes directly connected to the current node; incrementing a step counter (T = T+1); determining whether the simulation is at a target node, in response to a determination that the simulation is not at the target node, setting a selected node as a new current node without commanding the primary agent and continuing the simulation; in response to a determination that the simulation is at the target node, selecting a node with a minimum cost from the set of nodes directly connected to the current node; and providing an identification of the selected node, the selected node having a minimum cost to command movement of the primary agent.

自表示由一或多個次要代理及主要代理採取之動作的機率函數對在步長計數器自步長計數器之開始值至當前值遞增時各別次要代理將採取之動作取樣可包括鑒於由主要代理採取之由直接連接至當前節點之各別節點與每一連續節點之間沿著通向目標節點之路線的每一邊緣中之各別者表示的一系列動作,對表示環境中之一或多個次要代理中之每一者之非確定性行為的機率函數取樣。Sampling the actions to be taken by respective secondary agents as the step counter increments from a starting value to a current value of the step counter from probability functions representing actions taken by one or more secondary agents and the primary agent may include sampling probability functions representing non-deterministic behavior of each of the one or more secondary agents in the environment in view of a series of actions taken by the primary agent represented by respective ones of each edge between respective nodes directly connected to the current node and each successive node along a path to a target node.

鑒於由每一邊緣中之各別者表示的一系列動作對分別表示環境中之一或多個代理中之每一者之非確定性行為的機率函數取樣可包括:對於代理中之每一者,對分別表示各別代理之非確定性行為的各別機率函數重複取樣。Sampling a probability function that represents the non-deterministic behavior of each of one or more agents in the environment, respectively, given the sequence of actions represented by a respective one of each edge may include: for each of the agents, repeatedly sampling a respective probability function that represents the non-deterministic behavior of the respective agent, respectively.

主要代理可為主要自主車輛。該方法可進一步包括:接收表示主要自主車輛操作之環境的感知資訊;以及由主要自主車輛實施所得運動規劃。接收感知資訊可包括接收表示環境中之至少一個動態物件之位置及軌跡的感知資訊。接收感知資訊可包括在運動規劃器處接收感知資訊,該感知資訊係經由主要自主車輛所攜載之一或多個感測器收集且表示環境中之至少一個其他車輛的位置或軌跡。The primary agent may be a primary autonomous vehicle. The method may further include: receiving sensory information representing an environment in which the primary autonomous vehicle operates; and a resulting motion plan implemented by the primary autonomous vehicle. Receiving the sensory information may include receiving sensory information representing a position and trajectory of at least one dynamic object in the environment. Receiving the sensory information may include receiving sensory information at the motion planner, the sensory information collected via one or more sensors carried by the primary autonomous vehicle and representing a position or trajectory of at least one other vehicle in the environment.

該方法可進一步包括由物件偵測器自經由一或多個感測器收集之感知資訊識別環境中之至少一第一動態物件。The method may further include identifying, by the object detector, at least a first dynamic object in the environment from sensory information collected via the one or more sensors.

描述了一種運動規劃系統,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖以產生主要代理之運動規劃。運動規劃系統可概述為包括:至少一個處理器;至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令,該等處理器可執行指令在由至少一個處理器執行時使至少一個處理器執行上文所描述之方法中之任一種。A motion planning system is described that employs a graph having nodes representing states and edges representing transitions between states to generate motion plans for a primary agent. The motion planning system can be summarized as comprising: at least one processor; at least one non-transitory processor-readable medium storing processor-executable instructions that, when executed by the at least one processor, cause the at least one processor to perform any of the methods described above.

較佳實施例之詳細說明DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

在以下描述中,闡述某些特定細節以便提供對各種所揭示實施例之透徹理解。然而,熟習相關技術者將認識到,可在沒有此等特定細節中之一或多者的情況下,或運用其他方法、組件、材料等來實踐實施例。在其他情況下,與電腦系統相關聯之熟知結構、致動器系統及/或通訊網路尚未展示或詳細地描述以避免不必要地混淆對實施例之描述。在其他情況下,未詳細地描述用於產生一或多個物件之感知資料及體積表示形態(representation)以及佔用網格(occupancy grid)及其類似者之建構的熟知電腦視覺方法及技術以避免不必要地混淆對實施例之描述。In the following description, certain specific details are set forth in order to provide a thorough understanding of the various disclosed embodiments. However, one skilled in the relevant art will recognize that the embodiments may be practiced without one or more of these specific details, or using other methods, components, materials, etc. In other cases, well-known structures, actuator systems, and/or communication networks associated with computer systems have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments. In other cases, well-known computer vision methods and techniques for generating sensory data and volume representations of one or more objects and the construction of occupancy grids and the like are not described in detail to avoid unnecessarily obscuring the description of the embodiments.

除非上下文另外要求,否則在通篇說明書及隨後申請專利範圍中,詞語「包含(comprise)」及其變化形式,諸如「包含(comprises/comprising)」),應視為開放的、包括性的含義,亦即「包括但不限於」。Unless the context requires otherwise, throughout this specification and the following claims, the word "comprise" and variations thereof, such as "comprises/comprising", should be construed to have an open, inclusive meaning, i.e., "including but not limited to".

本說明書通篇中對「一個實施」或「一實施」或「一個實施例」或「一實施例」之提及意謂結合該實施例描述之特定特徵、結構或特性包括於至少一個實施或至少一個實施例中。因此,在本說明書中之不同位置出現的片語「一個實施」或「一實施」或「在一個實施例中」或「在一實施例中」未必全部係指同一實施或同一實施例。另外,可在一或多個實施或實施例中以任何適合的方式組合特定特徵、結構或特性。References throughout this specification to "one implementation" or "an implementation" or "an embodiment" or "an embodiment" mean that the specific features, structures, or characteristics described in conjunction with the embodiment are included in at least one implementation or at least one embodiment. Therefore, the phrases "one implementation" or "an implementation" or "in an embodiment" or "in an embodiment" appearing in different places in this specification do not necessarily all refer to the same implementation or the same embodiment. In addition, specific features, structures, or characteristics may be combined in any suitable manner in one or more implementations or embodiments.

除非上下文另外清晰指示,否則如本說明書及所附申請專利範圍中所使用,單數形式「一(a/an)」及「該(the)」包括多個參考物。亦應注意,除非上下文明確規定,否則術語「或」一般以其包括「及/或」之含義而使用。As used in this specification and the appended claims, the singular forms "a", "an", and "the" include plural references unless the context clearly dictates otherwise. It should also be noted that the term "or" is generally used in its sense including "and/or" unless the context clearly dictates otherwise.

本說明書通篇中對「主要代理」或「一主要代理」之提及意謂對其制定或產生各別運動規劃之代理(例如,半自主或完全自主車輛、具有或不具有可移動附件之機器人)。本說明書通篇中對「其他代理」或「另一代理」或「次要代理」或「一次要代理」之提及意謂除主要代理以外對其制定或產生各別運動規劃之代理(例如,半自主或完全自主車輛、具有或不具有可移動附件之機器人)。在一些情況下,可針對此等其他或次要代理發生運動規劃之其他實例,但彼等運動規劃不針對主要代理。References throughout this specification to a "primary agent" or "a primary agent" means the agent for which a respective motion plan is made or generated (e.g., a semi-autonomous or fully autonomous vehicle, a robot with or without movable appendages). References throughout this specification to "other agents" or "another agent" or "secondary agents" or "a secondary agent" means agents other than the primary agent for which a respective motion plan is made or generated (e.g., a semi-autonomous or fully autonomous vehicle, a robot with or without movable appendages). In some cases, other instances of motion planning may occur for these other or secondary agents, but their motion planning is not for the primary agent.

本文提供之揭露內容之標題及摘要僅僅係為了方便且不解譯實施例之範疇或含義。The titles and abstracts of the disclosures provided herein are for convenience only and do not interpret the scope or meaning of the embodiments.

圖1展示根據一個所說明實施例之主要代理(例如,自主車輛、具有或不具有可移動附件之機器人) 102可操作的動態操作環境100。出於簡潔起見,動態操作環境100在本文中被稱作環境。雖然通常關於自主車輛描述,但本文中所描述之各種實施適用於機器人或其部分,例如,可操作以導航環境之機器人及/或具有一或多個可移動附件之機器人。FIG. 1 shows a dynamic operating environment 100 in which a primary agent (e.g., an autonomous vehicle, a robot with or without removable appendages) 102 can operate according to one illustrated embodiment. For the sake of brevity, the dynamic operating environment 100 is referred to herein as an environment. Although generally described with respect to autonomous vehicles, various implementations described herein are applicable to robots or portions thereof, e.g., a robot operable to navigate an environment and/or a robot with one or more removable appendages.

環境表示主要代理(例如,自主車輛) 102可操作及移動之二維或三維空間。主要代理102可為汽車、飛機、船、無人機或任何其他車輛,或可為另一類型之機器人,該主要代理可自主地或半自主地(亦即,至少部分自主地)操作及沿著由環境100表示之空間中之路線或路徑移動。環境100為車輛操作之二維或三維空間,且不同於車輛之「組配空間」(通常被稱作「C空間」),該組配空間如下文關於圖4A至5B之運動規劃圖所提及且如以下各項中所解釋: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號,其亦特此以全文引用之方式併入。組配空間通常係多維的(亦即,大於3個維度)。參考圖1,環境100可包括障礙物碰撞區域。此等障礙物碰撞區域可歸於靜態物件(例如,建築物、樹、岩石等)或動態物件(例如,其他空中或地面車輛、人、動物、滾動岩石、鳥等),該等物件可共同地被稱作環境100中之「代理」或「其他代理」。舉例而言,靜態物件C 108表示不在環境100中移動且在環境100中形成碰撞區域之物件,以使得車輛102有可能在該車輛及靜態物件C 108嘗試同時在環境100內佔據相同空間之情況下與該靜態物件碰撞。在各種實施例中,可存在比圖1中展示之靜態物件更少或額外的靜態物件。The environment represents a two- or three-dimensional space in which a primary agent (e.g., an autonomous vehicle) 102 can operate and move. The primary agent 102 can be a car, airplane, boat, drone, or any other vehicle, or can be another type of robot that can autonomously or semi-autonomously (i.e., at least partially autonomously) operate and move along a route or path in the space represented by the environment 100. Environment 100 is a two-dimensional or three-dimensional space in which the vehicle operates and is distinct from the "assembly space" (commonly referred to as "C-space") of the vehicle, which assembly space is referred to below with respect to the motion planning diagrams of FIGS. 4A to 5B and as explained in: International Patent Application No. PCT/US2017/036880, filed on June 9, 2017, entitled "MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS," which is hereby incorporated by reference in its entirety; and International Patent Application No. PCT/US2017/036880, filed on January 5, 2016, entitled "SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MANUFACTURE AND USE THEREOF," filed on January 5, 2016. MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME)" International Patent Application Publication No. WO 2016/122840, which is also hereby incorporated by reference in its entirety. The assembly space is typically multi-dimensional (i.e., greater than 3 dimensions). Referring to Figure 1, environment 100 may include obstacle collision regions. These obstacle collision regions may be attributed to static objects (e.g., buildings, trees, rocks, etc.) or dynamic objects (e.g., other air or ground vehicles, people, animals, rolling rocks, birds, etc.), which objects may be collectively referred to as "agents" or "other agents" in environment 100. For example, static object C 108 represents an object that is not moving in environment 100 and that forms a collision zone in environment 100 such that vehicle 102 may collide with the static object if the vehicle and static object C 108 attempt to occupy the same space in environment 100 at the same time. In various embodiments, there may be fewer or additional static objects than those shown in FIG. 1 .

除靜態物件之外,亦可存在動態物件,包括表示以已知/某些軌跡移動之物件的彼等動態物件(例如,下落之磚、滾動之罐)、由有意識的生物(例如,騎腳踏車者、行人、駕駛員、飛行員、鳥等)控制之彼等物件,及由其他自主系統諸如在其他自主車輛或機器人之狀況下控制之彼等物件。歸因於此等動態物件,對運動規劃之挑戰涉及以極快速度執行運動規劃之能力及分析動態物件可如何移動之不確定性的能力。車輛102周圍的環境100可快速改變,且車輛102執行運動規劃以跟上彼等改變係有利的。舉例而言,如圖1中所展示,代理,例如動態物件A 104,當前沿著軌跡110遠離車輛102移動。然而,可存在車輛102需要跟隨或攔截動態物件A 104以便檢測動態物件A 104、自動態物件A 104收集資訊、與動態物件A 104交換資訊或甚至在遊戲中與動態物件A 104碰撞的實例。In addition to static objects, there may also be dynamic objects, including those that represent objects moving in known/certain trajectories (e.g., falling bricks, rolling cans), those controlled by conscious beings (e.g., cyclists, pedestrians, drivers, pilots, birds, etc.), and those controlled by other autonomous systems such as in the case of other autonomous vehicles or robots. Due to these dynamic objects, the challenges for motion planning involve the ability to perform motion planning at extremely fast speeds and the ability to analyze the uncertainty of how a dynamic object may move. The environment 100 around the vehicle 102 can change quickly, and it is advantageous for the vehicle 102 to perform motion planning to keep up with those changes. For example, as shown in FIG1 , an agent, such as dynamic object A 104, is currently moving away from the vehicle 102 along a track 110. However, there may be instances where the vehicle 102 needs to follow or intercept dynamic object A 104 in order to detect dynamic object A 104, collect information from dynamic object A 104, exchange information with dynamic object A 104, or even collide with dynamic object A 104 in a game.

相反,如圖1中所展示,動態物件B 112當前沿著軌跡106朝向車輛102移動。可存在車輛102需要避免與動態物件B 112碰撞或避免接近該動態物件以便在無碰撞之情況下到達目標目的地、避免由此碰撞造成損傷或例如在遊戲中避開與動態物件B 112接觸的實例。在一個實施例中,車輛102之目標為在不與動態物件B 112碰撞之情況下最大化時間,使得例如動態物件B 112在與車輛102碰撞之前耗盡燃料。在一個示例實施例中,車輛102之目標為在當前時間與車輛102到達所需目的地或達成特定目標之時間之間或在當前時間與動態物件B 112耗盡燃料之時間之間最小化與動態物件B 112碰撞之機率。可存在比圖1中展示之環境100中之動態物件更少或額外的動態物件。另外,在一些情況下,環境可具有對應於車輛102之範圍的邊界,該範圍可至少部分地取決於可用於車輛102之當前燃料或能量。1 , dynamic object B 112 is currently moving toward vehicle 102 along track 106. There may be instances where vehicle 102 needs to avoid colliding with dynamic object B 112 or avoid approaching the dynamic object in order to reach a target destination without collision, avoid damage from such collision, or avoid contact with dynamic object B 112, such as in a game. In one embodiment, the goal of vehicle 102 is to maximize the time without colliding with dynamic object B 112, such that, for example, dynamic object B 112 runs out of fuel before colliding with vehicle 102. In one example embodiment, a goal of the vehicle 102 is to minimize the probability of colliding with the dynamic object B 112 between the current time and the time when the vehicle 102 reaches a desired destination or achieves a specific goal, or between the current time and the time when the dynamic object B 112 runs out of fuel. There may be fewer or additional dynamic objects in the environment 100 than shown in FIG1 . Additionally, in some cases, the environment may have boundaries corresponding to the range of the vehicle 102, which may be determined at least in part by the current fuel or energy available to the vehicle 102.

雖然圖1說明代表性環境100,但典型環境可包括許多額外代理,包括對應於其他有人操縱及自主載具以及各種其他天然或人工靜態及動態物件及障礙物的物件。本文中所教示之概念可以類似方式用於比所說明環境人口更多的環境。1 illustrates a representative environment 100, a typical environment may include many additional agents, including objects corresponding to other manned and autonomous vehicles and a variety of other natural or artificial static and dynamic objects and obstacles. The concepts taught herein may be used in a similar manner for environments that are more populated than the illustrated environment.

圖2及以下論述提供呈電腦系統200形式之適合控制器的簡要一般描述,各種所說明運動規劃系統及方法可實施於該電腦系統中。FIG. 2 and the following discussion provide a brief general description of a suitable controller in the form of a computer system 200 in which the various described motion planning systems and methods may be implemented.

儘管不需要,但許多實施例將在電腦可執行指令之一般上下文中加以描述,諸如儲存於電腦或處理器可讀媒體上且由可執行碰撞評估及運動規劃操作的電腦或處理器及專用車輛運動規劃硬體執行的應用程式模組、物件或巨集。此類運動規劃操作可包括對規劃圖之邊緣執行碰撞評估,判定及設定碰撞機率,執行最佳化以識別規劃圖中之路徑從而藉由尋找規劃圖內之最小成本路徑及實施此類運動規劃來避免與環境中之物件碰撞或使得與之碰撞。Although not required, many embodiments will be described in the general context of computer executable instructions, such as application modules, objects, or macros stored on a computer or processor readable medium and executed by a computer or processor and dedicated vehicle motion planning hardware that can perform collision assessment and motion planning operations. Such motion planning operations may include performing collision assessments on edges of a plan graph, determining and setting collision probabilities, performing optimizations to identify paths in the plan graph to avoid collisions with or cause collisions with objects in the environment by finding the minimum cost path within the plan graph and implementing such motion planning.

經由運動規劃器進行運動規劃通常包括碰撞偵測及尋找最小成本路徑。碰撞偵測、最小成本路徑尋找或此二者可例如實施於一或多個場可程式化閘陣列(FPGA)上,從而有利地允許容易的可重組配性。碰撞偵測、最小成本路徑尋找或此二者可例如實施於一或多個特殊應用積體電路(ASIC)上,從而有利地允許快速處理同時仍允許一定的可重組配性。Motion planning via a motion planner typically includes collision detection and finding a minimum cost path. Collision detection, minimum cost path finding, or both may be implemented, for example, on one or more field programmable gate arrays (FPGAs), thereby advantageously allowing easy reconfigurability. Collision detection, minimum cost path finding, or both may be implemented, for example, on one or more application specific integrated circuits (ASICs), thereby advantageously allowing fast processing while still allowing some reconfigurability.

當表示代理時,車輛(例如,自主車輛或機器人)或環境中之物件(例如,靜態或動態障礙物)可將其表面表示為立體像素(3D像素)或多邊形(通常為三角形)網。每一離散化空間區域被稱為「立體像素」,其等效於3D (體積)像素。在一些狀況下,將物件替代地表示為方框(box) (矩形稜鏡)係有利的。由於物件並非隨機成形,因此在立體像素之組織方式方面可存在大量結構;物件中之許多立體像素在3D空間中彼此緊鄰。因此,將物件表示為方框可能需要少得多的位元(亦即,方框之二個相對拐角可能僅需要x、y、z座標)。另外,對方框進行相交測試之複雜度與對立體像素進行相交測試之複雜度相當。各種其他數據結構可用以表示物件之3D表面,該等數據結構諸如歐幾裏德距離場、二進位空間分割樹等。When representing an agent, a vehicle (e.g., an autonomous vehicle or robot) or an object in the environment (e.g., a static or dynamic obstacle) can have its surface represented as stereo pixels (3D pixels) or a mesh of polygons (usually triangles). Each discretized spatial region is called a "stereo pixel," which is equivalent to a 3D (volume) pixel. In some cases, it is advantageous to represent objects as boxes (rectangular prisms) instead. Since objects are not randomly shaped, there can be a lot of structure in how the stereo pixels are organized; many stereo pixels in an object are adjacent to each other in 3D space. Therefore, representing an object as a box may require far fewer bits (i.e., two opposing corners of a box may only require x, y, z coordinates). Additionally, the complexity of intersection testing for boxes is comparable to the complexity of intersection testing for voxels. Various other data structures can be used to represent the 3D surface of an object, such as Euclidean distance fields, binary space partitioning trees, etc.

在一個實施例中,藉由首先將所有動態物件立體像素(或方框)串流傳輸至處理器(例如,FPGA、ASIC)上來執行碰撞評估。接著自專用於地圖之記憶體串流傳輸用於車輛102之地圖之每一邊緣的邊緣資訊。每一邊緣具有對應於3D空間中之體積的一定數目個立體像素(或方框),該等立體像素當在地圖中進行自一個狀態至由彼邊緣表示之另一狀態的轉變時由車輛102掃掠(sweep)。當在地圖中進行自一個狀態至由彼邊緣表示之另一狀態的轉變時由車輛102掃掠之彼等立體像素或方框儲存於記憶體中以用於地圖之每一邊緣。對於每一邊緣立體像素(或方框),當其自邊緣之掃掠體積串流傳輸時,若其與障礙物立體像素(或方框)中之任一者碰撞,則系統200判定與地圖中之彼邊緣發生碰撞。舉例而言,當邊緣立體像素自地圖之邊緣x之掃掠體積串流傳輸時,若其與障礙物立體像素(或)中之任一者碰撞,則系統注意到與邊緣x碰撞。此實施改良了碰撞評估之技術,此係因為其相比於對規劃圖之所有邊緣並行地執行碰撞評估之其他設計使得大得多的地圖能夠用於碰撞評估。特定言之,此幫助克服了其他設計關於可儲存於晶片電路系統上之有限量之地圖資訊的缺點。然而,使用本文中所描述之碰撞評估方法,晶片上儲存器通常足以儲存所有障礙物方框(但使用立體像素可較少)。此提供將大地圖及/或多個地圖儲存於不太昂貴的晶片外儲存器,例如動態隨機存取記憶體(DRAM)中的能力。In one embodiment, collision assessment is performed by first streaming all dynamic object 3D pixels (or boxes) to a processor (e.g., FPGA, ASIC). Edge information for each edge of the map for the vehicle 102 is then streamed from a memory dedicated to the map. Each edge has a certain number of 3D pixels (or boxes) corresponding to a volume in 3D space that is swept by the vehicle 102 when making a transition in the map from one state to another represented by that edge. Those 3D pixels or boxes swept by the vehicle 102 when a transition is made in the map from one state to another state represented by that edge are stored in memory for each edge of the map. For each edge 3D pixel (or box), if it collides with any of the obstacle 3D pixels (or boxes) as it is streamed from the swept volume of the edge, the system 200 determines that a collision has occurred with that edge in the map. For example, if an edge 3D pixel collides with any of the obstacle 3D pixels (or boxes) as it is streamed from the swept volume of edge x of the map, the system notes a collision with edge x. This implementation improves the art of collision assessment because it enables much larger maps to be used for collision assessment compared to other designs that perform collision assessment on all edges of the planning map in parallel. In particular, this helps overcome the shortcomings of other designs regarding the limited amount of map information that can be stored on-chip circuitry. However, using the collision assessment method described herein, on-chip memory is typically sufficient to store all obstacle boxes (but may be less using stereo pixels). This provides the ability to store large maps and/or multiple maps in less expensive off-chip memory, such as dynamic random access memory (DRAM).

在各種實施中,此類操作可完全在硬體電路系統中執行,或作為儲存在諸如系統記憶體214之記憶體儲存器中且由諸如一或多個微處理器、數位信號處理器(DSP)、場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、圖形處理單元(GPU)處理器、程式化邏輯控制器(PLC)、電可程式化唯讀記憶體(EEPROM)之一或多個硬體處理器212a執行的軟體而執行,或作為硬體電路系統與儲存於記憶體儲存器中之軟體的組合而執行。舉例而言,執行最佳化以識別規劃圖中之路徑從而藉由尋找規劃圖內之最小成本路徑來避免與環境中之物件碰撞或使得與之碰撞可由最佳化器292執行。在一個示例實施例中,當路徑最佳化器292藉由硬體實施時,規劃圖之拓樸亦可映射至硬體單元之可重組配網狀架構上以能夠快速判定最小成本路徑。此映射涉及運用每一實體節點之邏輯相鄰者之位址及邊緣權重程式化每一實體節點。此允許架構可重組配為不同規劃圖拓樸。其他實施可使用實施於FPGA上之小型處理器。In various implementations, such operations may be performed entirely in hardware circuitry, or as software stored in memory storage such as system memory 214 and executed by one or more hardware processors 212a such as one or more microprocessors, digital signal processors (DSPs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), graphics processing unit (GPU) processors, programmable logic controllers (PLCs), electrically programmable read-only memories (EEPROMs), or as a combination of hardware circuitry and software stored in memory storage. For example, performing optimization to identify paths in a plan graph to avoid collisions with objects in the environment or to cause collisions with them by finding the minimum cost path in the plan graph can be performed by the optimizer 292. In an exemplary embodiment, when the path optimizer 292 is implemented by hardware, the topology of the plan graph can also be mapped to a reconfigurable mesh architecture of hardware units to enable rapid determination of the minimum cost path. This mapping involves programming each physical node using the addresses and edge weights of its logical neighbors. This allows the architecture to be reconfigured into different plan graph topologies. Other implementations may use a small processor implemented on an FPGA.

在替代實施例中,可由專用運動規劃硬體並行地對用於車輛102之所得規劃圖之邊緣中之每一者執行碰撞評估,該專用運動規劃硬體諸如可重組配碰撞偵測架構及以下各項中所描述之其他實施例: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號。舉例而言,此類專用運動規劃硬體之全部或部分可併入於運動規劃器280及碰撞評估器288中或形成運動規劃器280及碰撞評估器288之部分。另外,感知、規劃圖建構、碰撞偵測及路徑搜尋之各種相關態樣之實施亦描述於以下各項中: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號。熟習相關技術者將瞭解,所說明實施以及其他實施可用其他系統組配及/或其他計算系統組配加以實踐,包括機器人、手持器件、多處理器系統、基於微處理器或可程式化之消費型電子裝置、個人電腦(「PC」)、網路連接PC、小型電腦、大型電腦及其類似者之組配。實施或其部分(例如,在設計時間、組配時間、預執行階段(pre-runtime))可在分佈式計算環境中加以實踐,在該環境中,任務或模組由經由通訊網路鏈接之遠端處理器件執行。在分佈式計算環境中,程式化模組可位於本端及遠端記憶體儲存器件二者或媒體中。然而,車輛102具有高效計算能力對於允許車輛102即時地對改變之環境作出回應係重要的。對此問題之常見部署解決方案對於效能及電力前端二者失敗。其過慢而無法允許高自由度車輛及機器人實時地對環境作出回應,且使系統擔負對若干CPU或GPU供電。為了解決此問題,展示於圖2之示例實施中的電腦系統200包括具有車輛102上之碰撞評估器288的運動規劃器280,該碰撞評估器使用完全可重定目標之碰撞偵測微架構,諸如FPGA 290。然而,在各種替代實施例中,可使用包括可程式化邏輯區塊陣列及可重組配互連階層之其他可程式化碰撞偵測微架構,諸如ASIC架構。在程式化階段中,碰撞偵測微架構可應用於任何車輛規劃問題。碰撞評估器288可用以達成與特定物件之碰撞避免及/或用以試圖與其他物件之碰撞。將可重組配處理器用作碰撞評估器288有效地移除了設計完全專用於單一車輛/地圖對之限制。最小成本路徑模組允許例如使用分佈式貝爾曼-福特(Bellman-Ford)策略快速計算最小成本路徑。In an alternative embodiment, collision assessment may be performed in parallel for each of the edges of the resulting planning graph for vehicle 102 by dedicated motion planning hardware, such as the reconfigurable collision detection architecture and other embodiments described in: International Patent Application No. PCT/US2017/036880, entitled “MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS,” filed on June 9, 2017, and International Patent Application No. PCT/US2017/036880, entitled “SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MANUFACTURE AND USE THEREOF,” filed on January 5, 2016. For example, all or part of such dedicated motion planning hardware may be incorporated into or form part of the motion planner 280 and the collision evaluator 288. In addition, implementations of various related aspects of perception, planning graph construction, collision detection, and path finding are also described in the following: International Patent Application No. PCT/US2017/036880, filed on June 9, 2017, entitled "MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS", and International Patent Application Publication No. WO 2016/122840, filed on January 5, 2016, entitled "SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME". Those skilled in the relevant art will appreciate that the described implementations and other implementations may be implemented with other system configurations and/or other computing system configurations, including configurations of robots, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronic devices, personal computers ("PCs"), network-connected PCs, minicomputers, mainframe computers, and the like. The implementations or portions thereof (e.g., at design time, assembly time, pre-runtime) may be implemented in a distributed computing environment in which tasks or modules are executed by remote processing devices linked via a communications network. In a distributed computing environment, programmed modules may be located in both local and remote memory storage devices or media. However, it is important for the vehicle 102 to have efficient computing capabilities to allow the vehicle 102 to respond to the changing environment in real time. Commonly deployed solutions to this problem fail on both the performance and power front ends. They are too slow to allow high-degree-of-freedom vehicles and robots to respond to the environment in real time, and burden the system with powering several CPUs or GPUs. To address this problem, the computer system 200 shown in the example implementation of FIG. 2 includes a motion planner 280 with a collision evaluator 288 on the vehicle 102 that uses a fully retargetable collision detection microarchitecture, such as an FPGA 290. However, in various alternative embodiments, other programmable collision detection micro-architectures, such as ASIC architectures, may be used, including an array of programmable logic blocks and a reconfigurable interconnect hierarchy. In the programming stage, the collision detection micro-architecture can be applied to any vehicle planning problem. The collision evaluator 288 can be used to achieve collision avoidance with specific objects and/or to attempt collisions with other objects. The use of a reconfigurable processor as the collision evaluator 288 effectively removes the limitation of the design being completely dedicated to a single vehicle/map pair. The minimum cost path module allows the minimum cost path to be quickly calculated, for example using a distributed Bellman-Ford strategy.

如上文所提及,一些預處理活動可在執行階段之前執行,且因此,在一些實施例中,此等操作可由遠端處理器件執行,該等遠端處理器件經由網路介面260經由通訊網路鏈接至車輛200。舉例而言,程式化階段允許針對感興趣的問題組配處理器。在此類實施例中,利用廣泛預處理以避免執行階段計算。關於3D空間中之體積的預計算資料被發送至運動規劃器280之碰撞評估器288,該體積當在地圖中進行自一個狀態至由地圖中之邊緣表示之另一狀態的轉變時由車輛102掃掠。地圖之拓樸亦可映射至諸如FPGA 290之計算單元之可重組配網狀架構上,以能夠快速判定最小成本路徑。映射步長包括運用計算單元之可重組配網狀架構之每一實體節點之邏輯相鄰者的位址及邊緣權重程式化每一實體節點。此允許架構以不同地圖拓樸為目標。在執行階段期間,感測器282將感知資料發送至運動規劃器280。感知資料為立體像素或方框(下文更詳細地描述)存在於當前環境中之串流。碰撞評估器288計算哪些運動有可能涉及碰撞且哪些不太可能,且在完成後,結果由規劃最佳化器292用於判定最小成本路徑。此可有利地在不與感測器282或其他外部組件進一步通訊之情況下發生。取決於車輛102之目標為避免抑或試圖與環境中之特定物件碰撞,運動規劃器280基於環境在執行階段期間相應地修改與地圖相關聯之成本。運動規劃器280接著執行及返回通向致動器系統266之所得路徑。圖2展示諸如用於自主車輛102之電腦系統200,該電腦系統包含運動規劃器280及一或多個相關聯非暫時性機器可讀儲存媒體,諸如系統記憶體214及與磁碟機224相關聯之電腦可讀媒體226。相關聯非暫時性電腦或處理器可讀儲存媒體,包括系統記憶體214及與磁碟機224相關聯之電腦可讀媒體226,經由諸如系統匯流排216之一或多個通訊頻道以通訊方式耦接至運動規劃器280。系統匯流排216可採用任何已知匯流排結構或架構,包括具有記憶體控制器之記憶體匯流排、周邊匯流排及/或區域匯流排。一或多個感測器282、物件偵測器284、物件行為預測器286及致動器系統266亦經由系統匯流排216以通訊方式耦接至運動規劃器280。此等組件中之一或多者亦可或替代地經由一或多個其他通訊通道頻道彼此通訊,該等頻道例如能夠進行高速通訊之一或多個並聯電纜、串列電纜或無線網路頻道,例如通用串列匯流排(「USB」) 3.0、周邊組件高速互連(PCIe)或Thunderbolt®As mentioned above, some pre-processing activities may be performed prior to the execution phase, and thus, in some embodiments, such operations may be performed by remote processing devices that are linked to the vehicle 200 via the communications network via the network interface 260. For example, the programming phase allows the processor to be configured for the problem of interest. In such embodiments, extensive pre-processing is utilized to avoid execution phase calculations. Pre-calculated data about volumes in 3D space is sent to the collision evaluator 288 of the motion planner 280, which is swept by the vehicle 102 as a transition is made in the map from one state to another state represented by an edge in the map. The topology of the map can also be mapped onto a reconfigurable mesh architecture of a computing unit such as an FPGA 290 to enable rapid determination of the minimum cost path. The mapping step includes programming each physical node using the addresses and edge weights of the logical neighbors of each physical node of the reconfigurable mesh architecture of the computing unit. This allows the architecture to target different map topologies. During the execution phase, the sensor 282 sends sensor data to the motion planner 280. The sensor data is a stream of stereo pixels or boxes (described in more detail below) that exist in the current environment. The collision evaluator 288 calculates which movements are likely to involve collisions and which are unlikely, and upon completion, the results are used by the planning optimizer 292 to determine the minimum cost path. This can advantageously occur without further communication with the sensors 282 or other external components. Depending on whether the goal of the vehicle 102 is to avoid or attempt a collision with a particular object in the environment, the motion planner 280 modifies the costs associated with the map accordingly during the execution phase based on the environment. The motion planner 280 then executes and returns the resulting path to the actuator system 266. Figure 2 shows a computer system 200 such as for use with the autonomous vehicle 102, the computer system including the motion planner 280 and one or more associated non-transitory machine-readable storage media, such as system memory 214 and computer-readable media 226 associated with the disk drive 224. The associated non-transitory computer or processor readable storage media, including the system memory 214 and the computer readable media 226 associated with the disk drive 224, are communicatively coupled to the motion planner 280 via one or more communication channels such as the system bus 216. The system bus 216 can adopt any known bus structure or architecture, including a memory bus with a memory controller, a peripheral bus and/or a local bus. One or more sensors 282, object detectors 284, object behavior predictors 286 and actuator systems 266 are also communicatively coupled to the motion planner 280 via the system bus 216. One or more of these components may also or alternatively communicate with each other via one or more other communication channels, such as one or more parallel cables, serial cables, or wireless network channels capable of high-speed communication, such as Universal Serial Bus (“USB”) 3.0, Peripheral Component Interconnect Express (PCIe), or Thunderbolt® .

電腦系統200亦可以可通訊方式耦接至遠端系統,例如桌上型電腦、膝上型電腦、超攜帶型電腦、平板電腦、智慧型手機、可穿戴電腦(未展示),該等遠端系統以可直接通訊方式耦接或經由網路介面260以可間接通訊方式耦接至電腦系統200之各種組件。在實施中,電腦系統200自身或其一部分可為遠端的。此等遠端系統可用以程式化、組配、控制或以其他方式與電腦系統200及電腦系統200內之各種組件介接或將資料輸入至電腦系統200及電腦系統200內之各種組件。此連接可經由一或多個通訊頻道,例如一或多個廣域網路(WAN),例如使用網際網路協定之網際網路。如上文所提及,預執行階段計算(例如,初始地圖產生)可由與車輛102或其他類型之機器人分離的系統執行,而可對車輛102執行執行階段計算,此係由於系統能夠更新或改變車輛速度以即時或近即時地(微秒)作出反應且對改變之操作環境100作出反應係重要的。The computer system 200 may also be communicatively coupled to remote systems, such as desktop computers, laptop computers, ultraportable computers, tablet computers, smart phones, wearable computers (not shown), which are directly communicatively coupled or indirectly communicatively coupled to various components of the computer system 200 via the network interface 260. In implementations, the computer system 200 itself or a portion thereof may be remote. These remote systems may be used to program, configure, control, or otherwise interface with or input data to the computer system 200 and various components within the computer system 200. This connection may be via one or more communication channels, such as one or more wide area networks (WANs), such as the Internet using the Internet Protocol. As mentioned above, pre-runtime calculations (e.g., initial map generation) may be performed by a system separate from the vehicle 102 or other type of robot, while run-time calculations may be performed on the vehicle 102, since it is important for the system to be able to update or change vehicle speed in real-time or near-real-time (microseconds) and react to changing operating environment 100.

圖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號。結果,此類區塊無需進一步詳細描述,因為其將由熟習相關技術者鑒於以引用之方式併入本文中的參考案而理解。Some aspects of the construction and operation of the various blocks shown in FIG. 2 are described in the following: International Patent Application No. PCT/US2017/036880, filed on June 9, 2017, entitled “MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS”, and International Patent Application Publication No. WO 2016/122840, filed on January 5, 2016, entitled “SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME”. As a result, such blocks do not require further detailed description as they will be understood by those skilled in the relevant art in view of the references incorporated herein by reference.

電腦系統200可包括一或多個處理單元212a、212b (統稱為212)、系統記憶體214及將包括系統記憶體214之各種系統組件耦接至處理單元212的系統匯流排216。處理單元212可為任何邏輯處理單元,諸如一或多個中央處理單元(CPU) 212a、數位信號處理器(DSP) 212b、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)等。代替碰撞評估器288之FPGA 290或除了FPGA 290之外,可使用此類ASIC及FPGA對用於車輛102之規劃圖之邊緣執行碰撞評估。系統記憶體214可包括唯讀記憶體(「ROM」) 218及隨機存取記憶體(「RAM」) 220。基本輸入/輸出系統(「BIOS」) 222可形成ROM 218之部分,其含有幫助諸如在啟動期間在電腦系統200內之元件之間傳送資訊的基本常式。The computer system 200 may include one or more processing units 212a, 212b (collectively 212), a system memory 214, and a system bus 216 coupling various system components including the system memory 214 to the processing unit 212. The processing unit 212 may be any logical processing unit, such as one or more central processing units (CPUs) 212a, digital signal processors (DSPs) 212b, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc. Such ASICs and FPGAs may be used instead of or in addition to the FPGA 290 of the collision evaluator 288 to perform collision assessment on the edges of the planning graph for the vehicle 102. System memory 214 may include read-only memory ("ROM") 218 and random access memory ("RAM") 220. Basic input/output system ("BIOS") 222 may form part of ROM 218 and contains basic routines that help transfer information between components within computer system 200, such as during startup.

電腦系統200可包括磁碟機224,該磁碟機可為例如用於自硬碟讀取及寫入至硬碟之硬碟機、用於自快閃記憶體器件讀取及寫入至快閃記憶體器件之快閃記憶體驅動機、用於自可移光碟讀取及寫入至可移光碟之光碟驅動機,或自磁碟讀取及寫入至磁碟之磁碟驅動機。在各種不同實施例中,電腦系統200亦可包括此類磁碟機之任何組合。磁碟機224可經由系統匯流排216與處理單元212通訊。磁碟機224可包括耦接於此類驅動機與系統匯流排216之間的介面或控制器(未展示),如熟習相關技術者已知。磁碟機224及其相關聯電腦可讀媒體226為電腦系統200提供電腦可讀指令、數據結構、程式化模組及其他資料之非依電性儲存。熟習相關技術者應瞭解,可使用可儲存可由電腦存取之資料的其他類型之電腦可讀媒體,諸如WORM驅動機、RAID驅動機、匣式磁帶、數位視訊磁碟(「DVD」)、柏努利匣(柏努利cartridge)、RAM、ROM、智慧卡等。The computer system 200 may include a disk drive 224, which may be, for example, a hard disk drive for reading from and writing to a hard disk, a flash memory drive for reading from and writing to a flash memory device, an optical disk drive for reading from and writing to a removable optical disk, or a disk drive for reading from and writing to a magnetic disk. In various different embodiments, the computer system 200 may also include any combination of such disk drives. The disk drive 224 may communicate with the processing unit 212 via the system bus 216. The disk drive 224 may include an interface or controller (not shown) coupled between such a drive and the system bus 216, as is known to those skilled in the relevant art. The disk drive 224 and its associated computer-readable medium 226 provide non-volatile storage of computer-readable instructions, data structures, programmable modules, and other data for the computer system 200. Those skilled in the relevant art will appreciate that other types of computer-readable media that can store data that can be accessed by a computer may be used, such as WORM drives, RAID drives, magnetic tape cartridges, digital video disks ("DVDs"), Bernoulli cartridges, RAM, ROM, smart cards, etc.

程式模組可儲存於系統記憶體214中,該等程式模組諸如作業系統236、一或多個應用程式238、其他程式或模組240及程式資料242。應用程式238可包括進行以下操作之指令:使處理器212對對應於環境100之規劃圖之邊緣執行碰撞評估,判定及設定規劃圖之每一邊緣之碰撞機率,執行最佳化以識別規劃圖中之路徑從而避免與環境100中之代理(例如,動態物件B 112)碰撞或使得與之碰撞。用以識別規劃圖中之路徑的最佳化可包括尋找規劃圖內之最小成本路徑。應用程式238可包括接著使處理器212將信號發送至致動器系統266以使車輛102根據如本文中所描述之運動規劃移動的指令。應用程式238可另外包括一或多個機器可讀指令,該一或多個機器可讀指令使處理器212執行如本文中及以引用之方式併入本文中之參考中所描述的感知(經由感測器282)、規劃圖建構、碰撞偵測及路徑搜尋之其他操作。Program modules may be stored in the system memory 214, such as an operating system 236, one or more applications 238, other programs or modules 240, and program data 242. The applications 238 may include instructions for causing the processor 212 to perform collision evaluation on edges of a plan graph corresponding to the environment 100, determine and set a collision probability for each edge of the plan graph, and perform optimization to identify paths in the plan graph that avoid collisions with or cause collisions with agents (e.g., dynamic object B 112) in the environment 100. The optimization for identifying paths in the plan graph may include finding a minimum cost path within the plan graph. The application 238 may include instructions that then cause the processor 212 to send signals to the actuator system 266 to move the vehicle 102 according to the motion plan as described herein. The application 238 may additionally include one or more machine-readable instructions that cause the processor 212 to perform other operations of perception (via the sensor 282), map construction, collision detection, and path finding as described herein and in the references incorporated herein by reference.

應用程式238可另外包括進行以下操作之一或多個機器可讀指令:使處理器212自感測器282接收表示車輛102操作之環境100的感知資訊;使運動規劃器280使用碰撞評估器288之可重組配碰撞偵測架構硬體對用於車輛102之所得規劃圖之邊緣中之二者或更多者中的每一者執行碰撞評估;對於所得規劃圖之二個或更多個邊緣中之每一者,至少部分地基於碰撞評估設定碰撞機率;執行最佳化以識別所得規劃圖中有相對高可能性與車輛102操作之環境100中之一或多個其他代理(例如,動態物件A 104)碰撞的路徑;且使致動器系統266至少部分地基於最佳化實施有相對高可能性與車輛102操作之環境100中之一或多個其他代理(例如,動態物件A 104)碰撞的運動規劃。可重組配碰撞偵測架構硬體可為例如FPGA 290。然而,在各種替代實施例中,可使用包括可程式化邏輯區塊陣列及可重組配互連階層之其他可程式化碰撞偵測微架構,諸如ASIC架構。The application 238 may further include one or more machine-readable instructions for performing the following operations: causing the processor 212 to receive sensor information representing the environment 100 in which the vehicle 102 is operating from the sensor 282; causing the motion planner 280 to perform a collision assessment on each of two or more of the edges of the resulting planning graph for the vehicle 102 using the reconfigurable collision detection architecture hardware of the collision evaluator 288; for each of the two or more edges of the resulting planning graph, setting a collision probability based at least in part on the collision assessment; performing optimization to identify one or more other agents in the resulting planning graph that have a relatively high probability of being associated with one or more other agents in the environment 100 in which the vehicle 102 is operating (e.g., dynamic object A); 104); and causing the actuator system 266 to implement a motion plan that has a relatively high probability of colliding with one or more other agents (e.g., dynamic object A 104) in the environment 100 in which the vehicle 102 operates based at least in part on the optimization. The reconfigurable collision detection architecture hardware can be, for example, an FPGA 290. However, in various alternative embodiments, other programmable collision detection microarchitectures including an array of programmable logic blocks and a reconfigurable interconnect hierarchy, such as an ASIC architecture, can be used.

應用程式238可另外包括一或多個機器可讀指令,該一或多個機器可讀指令使處理器212針對規劃圖至少部分地基於對與車輛102操作之環境100中之一或多個動態物件(104、112)碰撞之機率的評估進行以下操作:若各別邊緣具有與環境100中之一或多個動態物件(104、112)碰撞的相對低各別機率,則將具有等於或大於零之值的權重指派至規劃圖之每一邊緣;若各別邊緣具有與環境100中之一或多個動態物件(104、112)碰撞的相對高各別機率,則將具有小於零之值的權重指派至規劃圖之每一邊緣;以及執行最佳化以識別所得規劃圖中有相對高可能性與車輛102操作之環境100中之一或多個代理,例如動態物件(104、112)碰撞的路徑。The application 238 may further include one or more machine-readable instructions that cause the processor 212 to perform the following operations on the planning map based at least in part on an evaluation of the probability of collision with one or more dynamic objects (104, 112) in the environment 100 in which the vehicle 102 operates: if a respective edge has a relatively low respective probability of collision with one or more dynamic objects (104, 112) in the environment 100, then it will have a probability of collision equal to or greater than Assigning a weight having a value of zero to each edge of the planning graph; assigning a weight having a value less than zero to each edge of the planning graph if the respective edge has a relatively high respective probability of colliding with one or more dynamic objects (104, 112) in the environment 100; and performing optimization to identify paths in the resulting planning graph that have a relatively high probability of colliding with one or more agents in the environment 100, such as dynamic objects (104, 112), in which the vehicle 102 is operating.

應用程式238可另外包括進行以下操作之一或多個機器可讀指令:使處理器212經由感測器282接收表示車輛102操作之環境100的感知資訊;使運動規劃器280使用碰撞評估器288之可重組配碰撞偵測架構硬體對規劃圖之邊緣中之二者或更多者中的每一者執行碰撞評估;對於規劃圖之二個或更多個邊緣中之每一者,至少部分地基於碰撞評估設定碰撞機率;執行最佳化以識別所得規劃圖中提供車輛102在二維或三維空間中之最長行進路線的路徑,該行進路線由有相對低可能性與車輛102操作之環境100中之一或多個動態物件(例如,動態物件B 112)碰撞的路徑指定;及至少部分地基於最佳化實施有相對低可能性與車輛102操作之環境100中之一或多個動態物件(例如,動態物件B 112)碰撞的運動規劃。The application 238 may further include one or more machine-readable instructions for: causing the processor 212 to receive sensor information representing the environment 100 in which the vehicle 102 operates via the sensor 282; causing the motion planner 280 to perform a collision assessment on each of two or more of the edges of the planning graph using the reconfigurable collision detection architecture hardware of the collision evaluator 288; ; for each of two or more edges of the planning graph, setting a collision probability based at least in part on the collision evaluation; performing optimization to identify a path in the resulting planning graph that provides a longest travel path for the vehicle 102 in two-dimensional or three-dimensional space, the travel path being specified by a path that has a relatively low probability of colliding with one or more dynamic objects (e.g., dynamic object B 112) in the environment 100 in which the vehicle 102 operates; and implementing motion planning that has a relatively low probability of colliding with one or more dynamic objects (e.g., dynamic object B 112) in the environment 100 in which the vehicle 102 operates based at least in part on the optimization.

應用程式238可另外包括使處理器212執行本文所描述之各種其他方法的一或多個機器可讀指令,該等方法包括但不限於圖6至13中所說明之方法。The application 238 may additionally include one or more machine-readable instructions for causing the processor 212 to perform various other methods described herein, including but not limited to the methods illustrated in FIGS. 6-13 .

儘管在圖2中展示為儲存於系統記憶體214中,但作業系統236、應用程式238、其他程式/模組240及程式資料242可儲存於磁碟機224之相關聯電腦可讀媒體226上。Although shown in FIG. 2 as being stored in system memory 214 , operating system 236 , applications 238 , other programs/modules 240 , and program data 242 may be stored on associated computer-readable media 226 of disk drive 224 .

處理單元212可為任何邏輯處理單元,諸如一或多個中央處理單元(CPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)等。市售電腦系統之非限制性實例包括但不限於:由美國英特爾® 公司(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中所展示之各種區塊之建構及操作具有習知設計。因此,無需在本文中進一步詳細描述此類區塊,如由熟習相關技術者將理解。運動規劃器280之碰撞評估器288之可重組配碰撞偵測架構硬體可為2017年6月9日提交之題為「自主車輛之運動規劃及可重組配運動規劃處理器(MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS)」的國際專利申請案第PCT/US2017/036880中所描述之此類架構中之一者,諸如為每一邊緣提供具有儲存機構及比較器之「邊緣模組」陣列,該等儲存機構及比較器並聯連接至邏輯閘以執行平行線之輸出之「或」以產生碰撞結果。The processing unit 212 may be any logic processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc. Non-limiting examples of commercially available computer systems include, but are not limited to: Celeron, Core, Core 2, Itanium, and Xeon series microprocessors provided by Intel ® Corporation; K8, K10, Bulldozer, and Bobcat series microprocessors provided by Advanced Micro Devices; A5, A6, and A7 series microprocessors provided by Apple Computer; Snapdragon series microprocessors provided by Qualcomm Inc; and SPARC series microprocessors provided by Oracle Corp. Unless otherwise described, the construction and operation of the various blocks shown in Figure 2 have known designs. Therefore, there is no need to further describe such blocks in detail herein, as will be understood by those skilled in the relevant art. The reconfigurable collision detection architecture hardware of the collision evaluator 288 of the motion planner 280 may be one of the architectures described in international patent application No. PCT/US2017/036880 filed on June 9, 2017, entitled “MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS”, such as providing an array of “edge modules” having storage mechanisms and comparators for each edge, wherein the storage mechanisms and comparators are connected in parallel to logic gates to perform an “OR” of the outputs of parallel lines to generate a collision result.

圖3為根據一個所說明實施例之展示圖2之電腦系統中之各種組件之間的示例資料流300之方塊圖。諸如攝影機、雷射感測器設備、音訊感測器等併入於主要代理102內或與主要代理102進行可操作通訊之一或多個感測器282收集感知資訊302且將此感知資訊傳達至物件偵測器284以產生環境100之模型。物件偵測器284提取關於諸如環境100中之動態物件A 104及動態物件B 112之代理之所偵測移動的軌跡資訊,且將此軌跡資訊308傳達至物件行為預測器286。至少部分地基於如由軌跡資訊308指示的環境100中之動態物件(104、112)之當前所偵測軌跡,物件行為預測器286產生動態物件(104、112)之一或多個經預測軌跡且將此資訊作為經預測軌跡資訊306之部分傳達至運動規劃器280。舉例而言,若軌跡資訊308指示動態物件A 104當前在朝向特定方向之軌跡上,則物件行為預測器286可預測動態物件A 104有40%機率將繼續其當前軌跡,有60%機率進行其他行為。FIG3 is a block diagram showing an example data flow 300 between various components in the computer system of FIG2 according to one illustrated embodiment. One or more sensors 282, such as cameras, laser sensor devices, audio sensors, etc., incorporated into or in operable communication with the primary agent 102, collect sensory information 302 and communicate this sensory information to the object detector 284 to generate a model of the environment 100. The object detector 284 extracts trajectory information about the detected movement of agents such as dynamic object A 104 and dynamic object B 112 in the environment 100, and communicates this trajectory information 308 to the object behavior predictor 286. Based at least in part on the current detected trajectory of the dynamic objects (104, 112) in the environment 100 as indicated by the trajectory information 308, the object behavior predictor 286 generates one or more predicted trajectories for the dynamic objects (104, 112) and communicates this information to the motion planner 280 as part of the predicted trajectory information 306. For example, if the trajectory information 308 indicates that the dynamic object A 104 is currently on a trajectory toward a particular direction, the object behavior predictor 286 may predict that there is a 40% probability that the dynamic object A 104 will continue its current trajectory and a 60% probability that it will perform another behavior.

各種因素可能影響環境100中之動態物件(104、112)之經預測軌跡之物件行為預測器286的判定。舉例而言,在一些實施中,可指示或判定動態物件(104、112)具有將影響其在環境100內之未來移動的目標。作為一個實例,可指示或判定經偵測為當前在直接遠離主要代理102之軌跡上的動態物件A 104具有遠離(且保持遠離)主要代理102之目標。因此,當預測動態物件A 104之移動時,物件行為預測器286可考慮此點。另一方面,可指示或判定經偵測為當前在直接朝向主要代理102之軌跡上的動態物件B 112具有與主要代理102碰撞之目標。因此,當預測動態物件B 112之移動時,物件行為預測器286可考慮此點。Various factors may affect the determination of the object behavior predictor 286 of the predicted trajectory of a dynamic object (104, 112) in the environment 100. For example, in some implementations, it may be indicated or determined that a dynamic object (104, 112) has a goal that will affect its future movement within the environment 100. As one example, it may be indicated or determined that dynamic object A 104, which is detected as currently on a trajectory directly away from the primary agent 102, has a goal of moving away from (and remaining away from) the primary agent 102. Thus, the object behavior predictor 286 may take this into account when predicting the movement of dynamic object A 104. On the other hand, it may be indicated or determined that the dynamic object B 112 detected as currently on a trajectory directly toward the primary agent 102 has a goal of colliding with the primary agent 102. Therefore, the object behavior predictor 286 may take this into account when predicting the movement of the dynamic object B 112.

另外,例如動態物件(104、112)之其他代理之移動可能受主要代理102之軌跡改變影響。因此,物件行為預測器286可在判定動態物件(104、112)之經預測軌跡時考慮主要代理102之當前軌跡中經規劃且尚未實施或執行之改變,且將此資料包括於提供至運動規劃器280之經預測軌跡資訊306中。舉例而言,若指示或判定經偵測為當前在直接朝向主要代理102之軌跡上的動態物件B 112具有與主要代理102碰撞之目標,則可預測若主要代理102改變其軌跡,則動態物件B 112可對其軌跡作出對應改變以追蹤主要代理102。因此,若主要代理102具有在不與動態物件B 112碰撞(亦即,嘗試與主要代理102碰撞)之情況下到達環境100內之目的地的目標,則考慮到在主要代理102改變其到達目的地之軌跡時動態物件B 112可對該動態物件之軌跡作出對應改變以追蹤主要代理102,運動規劃器280能夠規劃通向目的地之路徑以避免與動態物件B 112碰撞。Additionally, the movement of other agents, such as dynamic objects (104, 112), may be affected by changes in the trajectory of the primary agent 102. Therefore, the object behavior predictor 286 may consider planned and not yet implemented or executed changes in the current trajectory of the primary agent 102 when determining the predicted trajectory of the dynamic objects (104, 112), and include this data in the predicted trajectory information 306 provided to the motion planner 280. For example, if it is indicated or determined that dynamic object B 112 detected as currently on a trajectory directly toward primary agent 102 has a goal of colliding with primary agent 102, it can be predicted that if primary agent 102 changes its trajectory, dynamic object B 112 can make corresponding changes to its trajectory to track primary agent 102. Therefore, if the primary agent 102 has a goal of reaching a destination within the environment 100 without colliding with the dynamic object B 112 (i.e., attempting to collide with the primary agent 102), the motion planner 280 can plan a path to the destination to avoid colliding with the dynamic object B 112, taking into account that the dynamic object B 112 can make corresponding changes to the trajectory of the dynamic object to track the primary agent 102 as the primary agent 102 changes its trajectory to reach the destination.

總體而言,系統藉由使用感測器282之組合及由物件偵測器284及物件行為預測器286執行之處理來執行感知以產生環境100之模型。在一個實施中,感測器282產生佔用網格。佔用網格為表示諸如環境100之環境之離散化視圖中哪些空間區域及時間含有障礙物的資料結構。每一離散化空間區域被稱為等效於3D (體積)像素之「立體像素」。在一些狀況下,將物件替代地表示為方框(矩形稜鏡)係有利的。由環境中之物件界定之空間區域由此類體積表示形態表示,該等物件包括動態物件A 104、動態物件B 112及靜態物件C 108。一或多個動態物件(例如,動態物件A 104及動態物件B 112)之體積表示形態以及相關靜態物件之體積表示形態自物件偵測器284傳達至運動規劃器280。佔用網格之建構描述於一般熟習電腦視覺及感測技術者可用且已知的大量已公佈文獻中。In general, the system performs perception using a combination of sensors 282 and processing performed by object detectors 284 and object behavior predictors 286 to generate a model of environment 100. In one implementation, sensors 282 generate an occupancy grid. The occupancy grid is a data structure that represents which spatial regions and times in a discretized view of an environment, such as environment 100, contain obstacles. Each discretized spatial region is called a "stereo pixel," which is equivalent to a 3D (volume) pixel. In some cases, it is advantageous to represent objects as boxes (rectangular prisms) instead. The spatial region defined by objects in the environment, including dynamic object A 104, dynamic object B 112, and static object C 108, is represented by such volumetric representations. The volumetric representations of one or more dynamic objects (e.g., dynamic object A 104 and dynamic object B 112) and the volumetric representations of the associated static objects are communicated from the object detector 284 to the motion planner 280. The construction of occupancy grids is described in a large amount of published literature available and known to those of ordinary skill in computer vision and sensing techniques.

運動規劃器280自物件偵測器284接收包括動態及靜態物件之體積表示形態的感知資料且自物件行為預測器接收經預測軌跡資訊。運動規劃器280接著沿著規劃圖中與感知資料中之障礙物產生碰撞的每一邊緣調整碰撞機率以考慮經預測軌跡,判定考慮成本及碰撞機率之路徑,且將路徑輸出至計算系統。The motion planner 280 receives sensory data including volumetric representations of dynamic and static objects from the object detector 284 and receives predicted trajectory information from the object behavior predictor. The motion planner 280 then adjusts the collision probability along each edge in the planning graph that collides with an obstacle in the sensory data to take into account the predicted trajectory, determines a path that takes into account cost and collision probability, and outputs the path to the computing system.

運動規劃器可包括硬體處理器及記憶體儲存器作為運動規劃器280內之碰撞評估器288之部分。舉例而言,FPGA 290或其他可程式化邏輯區塊陣列可儲存規劃圖,在本文中亦被稱作「地圖」(參見例如圖4A至5B)。在一些實施中,運動規劃器280包括用以執行碰撞偵測之硬體碰撞偵測電路,諸如FPGA 290。在一些實施中,運動規劃器280包括可重組配碰撞偵測加速度。關於2D或3D空間中當在地圖中進行自一個狀態至由地圖中之邊緣表示之另一狀態的轉變時由主要代理102掃掠之體積的資料可儲存於運動規劃器280之碰撞評估器288之記憶體儲存器處,使得在運動規劃期間,當接收包括經預測軌跡資訊之感知資料時,感知資料由碰撞評估器288之硬體處理器與儲存於碰撞評估器288之記憶體儲存器(或電腦系統200之本端系統記憶體214)中的資料進行比較以判定碰撞。在執行階段操作期間,可基於一或多個變數向規劃圖之邊緣指派資訊。舉例而言,在主要代理102之目標為與動態物件A 104碰撞的狀況下,基於動態物件A 104根據經預測軌跡資訊306朝向之預測,運動規劃器280將產生與動態物件A 104碰撞的主要代理102之運動規劃。為此,碰撞評估器288評估規劃圖中之所有邊緣與動態物件A 104碰撞的可能性。應注意,環境100為主要代理102操作之二維或三維空間,且不同於下文關於圖4A至5B中表示之運動規劃圖所參考的主要代理之「組配空間」。主要代理之組配空間為主要代理102之表徵主要代理之狀態的所有組配之空間,通常為多維空間,例如具有多於三個維度。圖4A至5B中所表示之規劃圖400及500中的邊緣表示主要代理102之組配之間的轉變。規劃圖400之邊緣不必表示笛卡爾座標中之實際移動,但在一些實施例中可如此。規劃圖400之邊緣亦可包括速度改變等。The motion planner may include a hardware processor and memory storage as part of the collision evaluator 288 within the motion planner 280. For example, an FPGA 290 or other programmable logic block array may store a planning map, also referred to herein as a "map" (see, e.g., FIGS. 4A-5B ). In some implementations, the motion planner 280 includes hardware collision detection circuitry, such as an FPGA 290, for performing collision detection. In some implementations, the motion planner 280 includes a reconfigurable collision detection accelerometer. Data regarding the volume swept by the primary agent 102 in 2D or 3D space when a transition is made in the map from one state to another state represented by an edge in the map may be stored at the memory storage of the collision evaluator 288 of the motion planner 280, so that during motion planning, when sensory data including predicted trajectory information is received, the sensory data is compared by the hardware processor of the collision evaluator 288 with the data stored in the memory storage of the collision evaluator 288 (or the local system memory 214 of the computer system 200) to determine collisions. During run-time operations, information may be assigned to the edges of the planning graph based on one or more variables. For example, in the case where the primary agent 102 aims to collide with the dynamic object A 104, the motion planner 280 will generate a motion plan for the primary agent 102 to collide with the dynamic object A 104 based on the prediction of the direction of the dynamic object A 104 according to the predicted trajectory information 306. To this end, the collision evaluator 288 evaluates the likelihood of all edges in the plan graph colliding with the dynamic object A 104. It should be noted that the environment 100 is the two-dimensional or three-dimensional space in which the primary agent 102 operates, and is different from the "assembly space" of the primary agent referenced below with respect to the motion plan graphs shown in Figures 4A to 5B. The master agent combination space is the space of all combinations of master agents 102 that characterize the state of the master agent, and is typically a multi-dimensional space, for example, having more than three dimensions. The edges in the planning diagrams 400 and 500 shown in Figures 4A to 5B represent transitions between combinations of master agents 102. The edges of the planning diagram 400 do not necessarily represent actual movements in Cartesian coordinates, but in some embodiments they may. The edges of the planning diagram 400 may also include speed changes, etc.

規劃圖400及500之每一邊緣表示主要代理自一個狀態至另一狀態之轉變,且具有與該轉變相關聯之固有或操作成本。舉例而言,固有或操作成本可與燃料用量、執行相關聯動作之時間、與動作相關聯之磨損及/或其他因素相關。可向每一邊緣指派對應於固有或操作成本之初始權重。Each edge of the plans 400 and 500 represents a transition of a primary agent from one state to another and has an inherent or operating cost associated with the transition. For example, the inherent or operating cost may be related to fuel usage, time to perform the associated action, wear and tear associated with the action, and/or other factors. Each edge may be assigned an initial weight corresponding to the inherent or operating cost.

系統至少部分地基於碰撞評估而在執行階段期間調整邊緣之成本以表示與環境中之動態物件(104、112)碰撞的機率。系統可藉由基於碰撞機率修改每一邊緣之初始經指派權重來執行成本調整。舉例而言,系統可將成本函數應用於每一邊緣以基於彼邊緣之初始權重(亦即,對應於固有成本之權重)執行數學運算以獲得經修改權重。此可藉由以下操作來進行:基於碰撞機率將額外權重添加至初始經指派權重,使初始經指派權重乘以碰撞機率因數,或應用涉及碰撞機率及對應於固有成本之初始權重的某一其他函數或公式。The system adjusts the cost of the edge during the run phase to represent the probability of collision with a dynamic object (104, 112) in the environment based at least in part on the collision evaluation. The system can perform the cost adjustment by modifying the initial assigned weight of each edge based on the collision probability. For example, the system can apply a cost function to each edge to perform a mathematical operation based on the initial weight of that edge (i.e., the weight corresponding to the inherent cost) to obtain a modified weight. This can be done by adding an additional weight to the initial assigned weight based on the collision probability, multiplying the initial assigned weight by a collision probability factor, or applying some other function or formula involving the collision probability and the initial weight corresponding to the inherent cost.

亦可在執行階段期間調整經指派至邊緣之固有或操作成本以反映物件特定成本,該等物件特定成本表示避免碰撞或達成與物件碰撞之相對重要性及/或嚴重性。此等物件特定成本獨立於固有或操作成本且獨立於碰撞機率。舉例而言,與人碰撞相關聯之物件特定成本可設定為顯著高於與無生命物件碰撞相關聯之物件特定成本。The inherent or operational costs assigned to edges can also be adjusted during runtime to reflect object-specific costs that represent the relative importance and/or severity of avoiding a collision or achieving a collision with an object. These object-specific costs are independent of the inherent or operational costs and independent of the probability of collision. For example, the object-specific cost associated with a collision with a person can be set to be significantly higher than the object-specific cost associated with a collision with an inanimate object.

為說明簡單起見,在圖4A至5B中,對應於每一邊緣之固有成本的所有初始權重已設定為零且藉由添加指示碰撞機率之額外成本加以調整。因此,在主要代理102之目標為與環境中之動態物件(諸如動態物件A 104)碰撞的一個實施中,與碰撞機率零組合之初始權重0產生邊緣權重0,而較大碰撞機率產生具有較大負值(亦即,具有較大絕對值之負數)之邊緣權重。在主要代理102之目標為避免與環境中之動態物件(諸如動態物件B 112)碰撞的另一實施中,較大碰撞機率可產生具有較大正值之經調整邊緣權重。For simplicity of explanation, in FIGS. 4A to 5B , all initial weights corresponding to the intrinsic cost of each edge have been set to zero and adjusted by adding an additional cost indicative of the probability of collision. Thus, in one implementation where the goal of the primary agent 102 is to collide with a dynamic object in the environment (e.g., dynamic object A 104), an initial weight of 0 combined with a collision probability of zero results in an edge weight of 0, while a greater collision probability results in an edge weight with a greater negative value (i.e., a negative number with a greater absolute value). In another implementation where the goal of the primary agent 102 is to avoid collisions with dynamic objects in the environment (e.g., dynamic object B 112), a greater collision probability may result in an adjusted edge weight with a greater positive value.

一旦已調整規劃圖之所有邊緣權重,路徑最佳化器292便自規劃圖中所指示的主要代理102之當前位置至主要代理102已耗盡燃料/電力之所有可能最終點執行最小成本路徑演算法。接著由運動規劃器280選擇規劃圖中之最小(最負)路徑。Once all edge weights of the plan map have been adjusted, the path optimizer 292 executes a minimum cost path algorithm from the current position of the master agent 102 indicated in the plan map to all possible end points where the master agent 102 has exhausted fuel/power. The smallest (most negative) path in the plan map is then selected by the motion planner 280.

一旦路徑最佳化器292識別到規劃圖內之路徑,運動規劃器便立即將此經識別路徑310即時地傳達至主要代理102之致動器系統266以產生對應於主要代理102之各種馬達或移動系統的信號,從而使主要代理102之實體移動發生以實施運動規劃。Once the path optimizer 292 identifies the path within the planning graph, the motion planner immediately communicates the identified path 310 to the actuator system 266 of the main agent 102 in real time to generate signals corresponding to the various motors or motion systems of the main agent 102, thereby causing the physical movement of the main agent 102 to implement the motion plan.

圖4A為根據一個所說明實施例之圖1之主要代理102在主要代理102之目標為與圖1之可能嘗試避開主要代理102之動態物件A 104碰撞的狀況下之示例運動規劃圖400。規劃圖400包含由邊緣連接之多個節點。舉例而言,節點408b及節點408c由邊緣410a連接。每一節點隱式地或顯式地表示表徵主要代理102在主要代理之組配空間中之狀態的時間及變數。在本實例中,主要代理之組配空間(通常被稱作C空間)為規劃圖400中所表示之主要代理之組配的空間,該等組配表徵主要代理之狀態。規劃圖400中之邊緣表示主要代理102之此等組配之間的轉變。規劃圖400之邊緣不表示笛卡爾座標中之實際移動。舉例而言,每一節點可表示主要代理之組配,該組配可包括但不限於主要代理102之當前位置、姿勢、速度及朝向。在一些實施例中,主要代理102之加速度亦由規劃圖400中之節點表示。FIG. 4A is an example motion planning graph 400 of the primary agent 102 of FIG. 1 according to an illustrated embodiment, when the primary agent 102's goal is to collide with the dynamic object A 104 of FIG. 1 that may attempt to avoid the primary agent 102. The planning graph 400 includes a plurality of nodes connected by edges. For example, node 408b and node 408c are connected by edge 410a. Each node implicitly or explicitly represents time and variables that characterize the state of the primary agent 102 in the primary agent's combination space. In this example, the primary agent's combination space (commonly referred to as C-space) is the space of combinations of the primary agents represented in the planning graph 400, which combinations characterize the state of the primary agents. The edges in the planning graph 400 represent transitions between these configurations of the primary agent 102. The edges of the planning graph 400 do not represent actual movement in Cartesian coordinates. For example, each node may represent a configuration of the primary agent, which may include but is not limited to the current position, pose, velocity, and orientation of the primary agent 102. In some embodiments, the acceleration of the primary agent 102 is also represented by a node in the planning graph 400.

規劃圖400之每一邊緣表示物件102在各別的一對節點之間的轉變。舉例而言,邊緣410a表示諸如主要代理102之物件在二個節點之間的轉變。特定言之,邊緣410a表示主要代理102在與節點408b相關聯之特定組配下的狀態與主要代理102與節點408c相關聯之狀態之間的轉變。舉例而言,主要代理102當前可處於與節點408a相關聯之特定組配中。儘管節點展示為距彼此各種距離,但此僅用於例示性目的,且此與任何實體距離無關且不存在對規劃圖400中之節點數目的限制。然而,在規劃圖400中使用之節點愈多,運動規劃器280能夠根據主要代理102之目標判定最佳路徑愈準確及精確,此係由於存在最小成本路徑所選自之較多路徑。Each edge of the plan diagram 400 represents a transition of an object 102 between a respective pair of nodes. For example, edge 410a represents a transition of an object such as a primary agent 102 between two nodes. Specifically, edge 410a represents a transition between the state of the primary agent 102 in a particular combination associated with node 408b and the state of the primary agent 102 associated with node 408c. For example, the primary agent 102 may currently be in a particular combination associated with node 408a. Although the nodes are shown as being at various distances from each other, this is for illustrative purposes only and is not related to any physical distance and there is no limit to the number of nodes in the plan diagram 400. However, the more nodes that are used in the planning graph 400, the more accurately and precisely the motion planner 280 can determine the best path based on the goals of the primary agent 102 since there are more paths from which the minimum cost path can be selected.

可存在主要代理102需要跟隨或攔截動態物件A 104以便檢測動態物件A 104、自動態物件A 104收集資訊、與動態物件A 104交換資訊或甚至在遊戲中與動態物件A 104碰撞的實例。圖4A展示規劃圖如何由運動規劃器280使用以在主要代理102之目標為與動態物件A 104碰撞的狀況下識別用於主要代理102之路徑。此時,運動規劃器280已接收表示主要代理102操作之環境100的感知資訊。如上文所描述,碰撞偵測可使用立體像素或方框來表示環境中去往運動規劃器280之物件,包括主要代理102及動態物件A 104。然而,應理解,可使用其他物件表示形態。There may be instances where the primary agent 102 needs to follow or intercept dynamic object A 104 in order to detect dynamic object A 104, collect information from dynamic object A 104, exchange information with dynamic object A 104, or even collide with dynamic object A 104 during gameplay. FIG4A shows how the planning graph is used by the motion planner 280 to identify a path for the primary agent 102 if the primary agent 102's goal is to collide with dynamic object A 104. At this point, the motion planner 280 has received sensory information representing the environment 100 in which the primary agent 102 operates. As described above, collision detection may use 3D pixels or boxes to represent objects in the environment to the motion planner 280, including the main agent 102 and the dynamic object A 104. However, it should be understood that other object representation forms may be used.

在一個實施中,環境離散化成立體像素或方框之3D區域。接著,預計算由環境100中之主要代理102掃掠之每一運動體積與離散化空間中之立體像素或方框之間的所有可能碰撞。此類碰撞評估之實例描述於以下各項中: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號。In one implementation, the environment is discretized into 3D regions of stereo pixels or boxes. Then, all possible collisions between each motion volume swept by the primary agent 102 in the environment 100 and the stereo pixels or boxes in the discretized space are estimated. Examples of such collision assessments are described in International Patent Application No. PCT/US2017/036880, filed on June 9, 2017, entitled “MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS,” and International Patent Application Publication No. WO 2016/122840, filed on January 5, 2016, entitled “SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME.”

由於動態物件A 104在環境100中移動,因此運動規劃器280亦基於對動態物件A 104朝向何處之預測針對規劃圖400中之二個或更多個邊緣判定主要代理102與動態物件A 104的碰撞評估。對於規劃圖400之此等邊緣中之每一者,運動規劃器280至少部分地基於碰撞評估在特定將來時間設定主要代理102與動態物件A 104碰撞之機率。舉例而言,根據感知資訊,動態物件A 104被偵測為處於環境100中之特定位置處。基於動態物件A 104之當前軌跡110,運動規劃器280判定動態物件A 104將處於環境100中之特定位置處。對於規劃圖400中之節點,在該等節點之間的直接移動有機率引起與動態物件A 104碰撞之情況下,運動規劃器將權重指派至規劃圖400之在彼等節點之間轉變的邊緣(邊緣410b、410c、410d、410e、410f、410g、410h、410i、410j、410k),該權重指示與動態物件A 104碰撞之機率。在圖4A中所展示之實例中,此標示為圖部分414,但不對應於實體區域。Since the dynamic object A 104 is moving in the environment 100, the motion planner 280 also determines a collision evaluation of the primary agent 102 and the dynamic object A 104 for two or more edges in the planning graph 400 based on the prediction of where the dynamic object A 104 is heading. For each of these edges in the planning graph 400, the motion planner 280 sets a probability of the primary agent 102 colliding with the dynamic object A 104 at a particular future time based at least in part on the collision evaluation. For example, based on the perception information, the dynamic object A 104 is detected to be at a particular location in the environment 100. Based on the current trajectory 110 of the dynamic object A 104, the motion planner 280 determines that the dynamic object A 104 will be at a particular location in the environment 100. For nodes in the planning graph 400, where direct movement between those nodes has a probability of causing a collision with the dynamic object A 104, the motion planner assigns weights to the edges of the planning graph 400 that transition between those nodes (edges 410b, 410c, 410d, 410e, 410f, 410g, 410h, 410i, 410j, 410k), the weights indicating the probability of a collision with the dynamic object A 104. In the example shown in FIG. 4A , this is labeled as diagram portion 414 , but does not correspond to a physical area.

舉例而言,對於規劃圖400之數個邊緣中與動態物件A 104碰撞之各別機率低於經界定臨限碰撞機率的每一者,運動規劃器280可指派具有等於或大於零之值的權重。在本實例中,運動規劃器280已將權重零指派至規劃圖400中之彼等邊緣,根據動態物件A 104之當前軌跡,該等邊緣不具有與動態物件A 104碰撞之任何(或具有極小)機率。舉例而言,如規劃圖400上所展示,運動規劃器280已將權重零指派至邊緣410a,此係由於根據動態物件A 104之當前軌跡110,不存在(或存在極小)在邊緣410a處與動態物件A 104碰撞之機率。對於規劃圖400之數個邊緣中與環境100中之動態物件A 104碰撞之各別機率高於經界定臨限碰撞機率的每一者,運動規劃器280接著指派具有小於零之值的權重。在本實例中,運動規劃器280已將小於零之權重指派至規劃圖400中之彼等邊緣,根據動態物件A 104之當前軌跡,該等邊緣具有較高機率與動態物件A 104碰撞。用於碰撞機率之特定臨限值可變化。舉例而言,臨限值可為40%、50%、60%或更低或更高的碰撞機率。另外,運動規劃器280指派具有小於零之值的權重可包括指派具有與各別碰撞機率對應之量值的負權重。舉例而言,如規劃圖400中所展示,運動規劃器已將權重-3指派至邊緣410b、410c、410d及410e,但已將具有較低量值-2之負權重指派至邊緣410f,且已將具有較高量值-5之權重指派至邊緣410g。經指派權重無需為整數。For example, for each of the plurality of edges in the planning graph 400 whose respective probability of colliding with the dynamic object A 104 is lower than the defined threshold collision probability, the motion planner 280 may assign a weight having a value equal to or greater than zero. In the present example, the motion planner 280 has assigned a weight of zero to those edges in the planning graph 400 that, based on the current trajectory of the dynamic object A 104, do not have any (or have a very small) probability of colliding with the dynamic object A 104. For example, as shown on the planning graph 400, the motion planner 280 has assigned a weight of zero to the edge 410a because there is no (or very little) probability of collision with the dynamic object A 104 at the edge 410a according to the current trajectory 110 of the dynamic object A 104. For each of the plurality of edges in the planning graph 400 whose respective probability of collision with the dynamic object A 104 in the environment 100 is higher than the defined threshold collision probability, the motion planner 280 then assigns a weight having a value less than zero. In the present example, the motion planner 280 has assigned weights less than zero to those edges in the planning graph 400 that have a higher probability of colliding with the dynamic object A 104 based on the current trajectory of the dynamic object A 104. The specific threshold value for the probability of collision can vary. For example, the threshold value can be 40%, 50%, 60% or lower or higher probability of collision. In addition, the motion planner 280 assigning weights having values less than zero can include assigning negative weights having magnitudes corresponding to the respective probability of collision. For example, as shown in planning diagram 400, the motion planner has assigned a weight of -3 to edges 410b, 410c, 410d, and 410e, but has assigned a negative weight having a lower magnitude of -2 to edge 410f, and has assigned a weight having a higher magnitude of -5 to edge 410g. The assigned weights need not be integers.

圖4B為根據一個所說明實施例之圖1之主要代理102在主要代理102之目標為與圖1之可能嘗試避開主要代理102之動態物件A 104碰撞的狀況下之示例運動規劃圖400,及在主要代理102之規劃圖400中識別以與動態物件A 104碰撞的示例路徑412 (包括圖400之將節點408a連接至408d的加粗邊緣)。在運動規劃器280至少部分地基於碰撞評估設定主要代理102與動態物件A 104碰撞之機率之後,運動規劃器280執行最佳化以識別所得規劃圖400中有相對高可能性與動態物件A 104碰撞的路徑412。4B is an example motion planning graph 400 of the primary agent 102 of FIG. 1 when the primary agent 102's goal is to collide with the dynamic object A 104 of FIG. 1 that may attempt to avoid the primary agent 102, and an example path 412 (including the bolded edge of the graph 400 connecting nodes 408a to 408d) identified in the planning graph 400 of the primary agent 102 to collide with the dynamic object A 104 according to an illustrated embodiment. After the motion planner 280 sets the probability of the primary agent 102 colliding with the dynamic object A 104 based at least in part on the collision evaluation, the motion planner 280 performs optimization to identify paths 412 in the resulting planning graph 400 that have a relatively high probability of colliding with the dynamic object A 104 .

舉例而言,一旦已如圖4A及4B中所展示指派規劃圖400之所有邊緣權重,運動規劃器280便可自規劃圖400中之主要代理102之當前狀態至主要代理102已耗盡燃料之所有可能最終點執行最小成本路徑演算法。接著由運動規劃器280選擇規劃圖400中之最小(最負)路徑。在本實例中,規劃圖中之主要代理102之當前狀態處於節點408a處,且此最小(最負路徑)描繪為規劃圖400中之路徑412。儘管展示為規劃圖400中具有許多急轉彎之路徑,但此類轉彎並不表示路線中之對應實體轉彎,而是主要代理102之狀態之間的邏輯轉變。舉例而言,經識別路徑412中之每一節點可表示相對於環境100中之主要代理102之實體組配的狀態改變,但未必表示對應於圖4B中所展示之路徑412之角度的主要代理102之朝向改變。For example, once all edge weights of the planning graph 400 have been assigned as shown in Figures 4A and 4B, the motion planner 280 may execute a minimum cost path algorithm from the current state of the master agent 102 in the planning graph 400 to all possible end points where the master agent 102 has exhausted its fuel. The minimum (most negative) path in the planning graph 400 is then selected by the motion planner 280. In this example, the current state of the master agent 102 in the planning graph is at node 408a, and this minimum (most negative path) is depicted as path 412 in the planning graph 400. Although shown as a path with many sharp turns in the planning graph 400, such turns do not represent corresponding physical turns in the route, but rather logical transitions between states of the primary agent 102. For example, each node in the identified path 412 may represent a change in state relative to the physical configuration of the primary agent 102 in the environment 100, but does not necessarily represent a change in orientation of the primary agent 102 corresponding to the angle of the path 412 shown in FIG. 4B .

可使用用於判定最小成本路徑之各種程序,包括實施貝爾曼-福特演算法之彼等程序,但可使用其他程序,包括但不限於將最小成本路徑判定為規劃圖400中之二個節點之間的路徑以使該規劃圖之構成邊緣之權重總和最小化的任何此類程序。此程序藉由以下操作來改良例如自主車輛之主要代理之用於與動態物件(104、112)碰撞之運動規劃的技術:使用規劃圖及碰撞偵測以增加尋找與所需物件碰撞之最佳路線的效率及回應時間。另外,一些實施使用識別主要代理102之有相對高可能性與主要代理102操作之環境中之一或多個靜態物件碰撞之路徑的相同程序。在試圖與此類靜態物件碰撞之狀況下,運動規劃器280可對規劃圖400之具有與環境100中之靜態物件碰撞之各別機率的邊緣指派具有大負值之權重。以此方式,當運動規劃器在最佳化期間選擇最小成本路徑時,此等路徑將更可能被選擇。然而,在此等實施中,不需要考慮靜態物件之速度、軌跡或加速度。Various procedures for determining the minimum cost path may be used, including those implementing the Bellman-Ford algorithm, but other procedures may be used, including but not limited to any such procedure that determines the minimum cost path as the path between two nodes in the planning graph 400 that minimizes the sum of the weights of the constituent edges of the planning graph. This procedure improves the techniques used by a master agent, such as an autonomous vehicle, for motion planning for collisions with dynamic objects (104, 112) by using the planning graph and collision detection to increase the efficiency and response time of finding the best path to collide with the desired object. In addition, some implementations use the same procedure to identify paths of the master agent 102 that have a relatively high probability of colliding with one or more static objects in the environment in which the master agent 102 operates. In the case of an attempted collision with such a static object, the motion planner 280 may assign weights with large negative values to the edges of the planning graph 400 that have respective probabilities of collision with static objects in the environment 100. In this way, when the motion planner selects the minimum cost path during optimization, such paths will be more likely to be selected. However, in such implementations, the velocity, trajectory, or acceleration of the static objects need not be considered.

在一些實施中,當主要代理102嘗試與動態物件A 104碰撞時,環境中可存在主要代理102應避免與之碰撞的靜態物件。在此狀況下,基於碰撞評估設定規劃圖400之邊緣之碰撞機率包括指派權重(例如,藉由修改/調整初始權重)以相應地避免與此類靜態物件碰撞。舉例而言,對於規劃圖400之數個邊緣中具有與環境100中之靜態物件碰撞之各別機率的每一者,運動規劃器280指派具有無窮大之值的權重。以此方式,當運動規劃器在最佳化期間選擇最小成本路徑時,將避免具有設定為無窮大之邊緣權重的此類路徑,此係由於該等路徑在橫穿情況下將導致與靜態物件碰撞。In some implementations, when the primary agent 102 attempts to collide with the dynamic object A 104, there may be static objects in the environment that the primary agent 102 should avoid colliding with. In this case, setting the collision probability of the edges of the planning graph 400 based on the collision evaluation includes assigning weights (e.g., by modifying/adjusting the initial weights) to avoid collisions with such static objects accordingly. For example, for each of a number of edges of the planning graph 400 that have a respective probability of colliding with a static object in the environment 100, the motion planner 280 assigns a weight having an infinite value. In this way, when the motion planner chooses minimum-cost paths during optimization, such paths with edge weights set to infinite will be avoided, since such paths will result in collisions with static objects in the event of a traversal.

運動規劃器280可執行最佳化以識別所得規劃圖400中有最高可能性與沿著主要代理102之整個路線之動態物件A 104碰撞的路徑。在一些實施中,路線之長度可至少部分地由主要代理102何時耗盡燃料/電力來界定。指示主要代理102之「剩餘燃料」的變數可由電腦系統200儲存。在一些實施中,運動規劃器280可執行最佳化以識別所得規劃圖400中有相對高可能性在最短相對時間量內與主要代理102操作之環境中之一或多個物件碰撞的路徑。替代地,在一些實施中,運動規劃器280可執行最佳化以識別所得規劃圖400中具有最長行進持續時間之路徑,該行進持續時間由有相對高可能性與動態物件A 104碰撞之路徑指定。The motion planner 280 may perform optimization to identify a path in the resulting plan map 400 that has the highest probability of colliding with dynamic object A 104 along the entire route of the primary agent 102. In some implementations, the length of the route may be defined at least in part by when the primary agent 102 runs out of fuel/power. A variable indicating the "remaining fuel" of the primary agent 102 may be stored by the computer system 200. In some implementations, the motion planner 280 may perform optimization to identify a path in the resulting plan map 400 that has a relatively high probability of colliding with one or more objects in the environment in which the primary agent 102 is operating in the shortest relative amount of time. Alternatively, in some implementations, the motion planner 280 may perform optimization to identify the path in the resulting planning graph 400 having the longest travel duration, where the travel duration is specified by the path having a relatively high probability of colliding with the dynamic object A 104.

規劃圖400中之路徑亦可基於動態物件A之軌跡110之改變或預測改變而識別。在動態物件A 104之軌跡110發生每次改變或預測改變時,可即時或近即時地再次執行碰撞評估及最佳化程序。另外,所得規劃圖400可具有或儲存相關聯資料,該資料表示主要代理102及/或動態物件(104、112)之實體或效能約束、主要代理102之加速度、間距、橫搖及偏航,且在一些實施中,亦表示動態物件A 104之加速度、間距、橫搖及偏航。可接著基於此等變數執行用以識別路徑之最佳化。舉例而言,若主要代理動態物件A 104之間距、橫搖及/或偏航改變,則此可指示動態物件A 104之軌跡改變(或產生預測改變)。The paths in the planning map 400 may also be identified based on changes or predicted changes in the trajectory 110 of the dynamic object A. The collision assessment and optimization process may be re-executed in real time or near real time each time the trajectory 110 of the dynamic object A 104 changes or is predicted to change. In addition, the resulting planning map 400 may have or store associated data representing the physical or performance constraints of the master agent 102 and/or the dynamic objects (104, 112), the acceleration, pitch, roll, and yaw of the master agent 102, and in some implementations, the acceleration, pitch, roll, and yaw of the dynamic object A 104. Optimization to identify the path may then be performed based on these variables. For example, if the pitch, roll, and/or yaw of the primary proxy dynamic object A 104 changes, this may indicate a change in the trajectory of the dynamic object A 104 (or result in a predicted change).

圖5A為根據一個所說明實施例之圖1之主要代理102在主要代理102之目標為避免與圖1之接近主要代理102之動態物件B 112碰撞的狀況下之示例運動規劃圖500。類似於規劃圖400,規劃圖500分別包含由邊緣連接之多個節點。每一節點隱式地或顯式地表示表徵主要代理102之狀態的時間及變數。舉例而言,每一節點可表示主要代理之組配,可包括但不限於主要代理102之當前位置、姿勢、速度及朝向。在一些實施例中,主要代理102之加速度亦由規劃圖500中之節點表示。FIG. 5A is an example motion planning graph 500 of the primary agent 102 of FIG. 1 according to an illustrated embodiment, when the primary agent 102's goal is to avoid collision with the dynamic object B 112 of FIG. 1 that is close to the primary agent 102. Similar to the planning graph 400, the planning graph 500 includes a plurality of nodes connected by edges. Each node implicitly or explicitly represents a time and variable that characterizes the state of the primary agent 102. For example, each node may represent a combination of the primary agent, which may include but is not limited to the current position, posture, velocity, and orientation of the primary agent 102. In some embodiments, the acceleration of the primary agent 102 is also represented by a node in the planning graph 500.

可存在需要主要代理102避開動態物件B 112以便避免與動態物件B 112碰撞之實例。圖5A展示規劃圖如何由運動規劃器280使用以在主要代理102之目標為避免與動態物件B 112碰撞或避開動態物件B 112及動態物件B 112諸如在遊戲中嘗試與主要代理102碰撞的狀況下識別主要代理102之路徑。此時,運動規劃器280已接收表示主要代理102操作之環境100的感知資訊。如上文所描述,碰撞偵測可使用立體像素或方框來表示環境中之物件,包括動態物件B 112。立體像素或方框亦可用以表示去往運動規劃器280之主要代理102。然而,應理解,可使用其他物件表示形態。在一個實施中,環境離散化成立體像素或方框之3D區域。接著,預計算規劃圖500中由環境100中之主要代理102掃掠之每一運動體積與離散化空間中之立體像素或方框之間的所有可能碰撞。There may be instances where the primary agent 102 is required to avoid dynamic object B 112 in order to avoid collision with dynamic object B 112. FIG. 5A shows how the planning graph is used by the motion planner 280 to identify the path of the primary agent 102 in a situation where the primary agent 102's goal is to avoid collision with dynamic object B 112 or to avoid dynamic object B 112 and dynamic object B 112 attempts to collide with the primary agent 102, such as in a game. At this point, the motion planner 280 has received sensory information representing the environment 100 in which the primary agent 102 operates. As described above, collision detection may use stereo pixels or boxes to represent objects in the environment, including dynamic object B 112. Stereopixels or boxes may also be used to represent the primary agent 102 to the motion planner 280. However, it should be understood that other objects may be used to represent the morphology. In one implementation, the environment is discretized into 3D regions of stereo pixels or boxes. All possible collisions between each motion volume swept by the primary agent 102 in the environment 100 in the planning map 500 and the stereo pixels or boxes in the discretized space are then estimated.

由於動態物件B 112在環境100中移動,因此運動規劃器280亦基於對動態物件B 112朝向何處之預測針對規劃圖500中之二個或更多個邊緣判定主要代理102與動態物件B 112的碰撞評估。對於規劃圖500之此等邊緣中之每一者,運動規劃器280至少部分地基於碰撞評估在特定將來時間設定主要代理102與動態物件B 112碰撞之機率。舉例而言,根據感知資訊,動態物件B 112被偵測為處於環境100中之特定位置處。基於動態物件B 112之當前軌跡106,運動規劃器280判定動態物件B 112將處於環境100中之特定位置處。對於規劃圖500中之節點,在該等節點之間的直接移動有機率引起與動態物件B 112碰撞之情況下,運動規劃器將權重指派至規劃圖500之在彼等節點之間轉變的邊緣(邊緣510a、510b、510c、510d、510e、510f、510g、510h、510i、510j、510k、510l、510m、510n、510o及510p),該權重指示與動態物件B 112碰撞之機率。在圖5A中所展示之實例中,此標示為圖部分514,但不對應於實體區域。Since the dynamic object B 112 is moving in the environment 100, the motion planner 280 also determines a collision evaluation of the primary agent 102 and the dynamic object B 112 for two or more edges in the planning graph 500 based on the prediction of where the dynamic object B 112 is heading. For each of these edges in the planning graph 500, the motion planner 280 sets a probability of the primary agent 102 colliding with the dynamic object B 112 at a particular future time based at least in part on the collision evaluation. For example, based on the perception information, the dynamic object B 112 is detected to be at a particular location in the environment 100. Based on the current trajectory 106 of the dynamic object B 112 , the motion planner 280 determines that the dynamic object B 112 will be at a specific location in the environment 100 . For nodes in the planning graph 500 where direct movement between those nodes has a chance of causing a collision with dynamic object B 112, the motion planner assigns weights to the edges of the planning graph 500 that transition between those nodes (edges 510a, 510b, 510c, 510d, 510e, 510f, 510g, 510h, 510i, 510j, 510k, 510l, 510m, 510n, 510o, and 510p) that indicate the chance of a collision with dynamic object B 112. In the example shown in FIG5A , this is labeled as graph portion 514, but does not correspond to a solid area.

舉例而言,對於規劃圖500之數個邊緣中與動態物件B 112碰撞之各別機率高於經界定臨限碰撞機率的每一者,運動規劃器280可指派具有大於零之值的權重。在本實例中,運動規劃器280已將權重零指派至規劃圖500中之彼等邊緣,根據動態物件B 112之當前軌跡,該等邊緣不具有與動態物件B 112碰撞之任何(或具有極小)機率。對於規劃圖500之數個邊緣中與環境100中之動態物件B 112碰撞之各別機率高於經界定臨限碰撞機率的每一者,運動規劃器280接著指派具有大於零之值的權重。在本實例中,運動規劃器280已將大於零之權重指派至規劃圖500中之彼等邊緣,根據動態物件B 112之當前軌跡,該等邊緣具有較高機率與動態物件B 112碰撞。用於碰撞機率之特定臨限值可變化。舉例而言,臨限值可為40%、50%、60%或更低或更高的碰撞機率。另外,運動規劃器280指派具有大於零之值的權重可包括指派具有大於零之量值的負權重,該量值與各別碰撞機率對應。舉例而言,如規劃圖500中所展示,運動規劃器已將權重5指派至具有較高碰撞機率之邊緣510f及510i,但已將具有較低量值1之權重指派至邊緣510p及510g,運動規劃器280已將邊緣510p及510g判定為具有低得多的碰撞機率。For example, for each of the plurality of edges in the planning graph 500 whose respective probability of colliding with the dynamic object B 112 is higher than the defined threshold collision probability, the motion planner 280 may assign a weight having a value greater than zero. In the present example, the motion planner 280 has assigned a weight of zero to those edges in the planning graph 500 that, based on the current trajectory of the dynamic object B 112, do not have any (or have a very small) probability of colliding with the dynamic object B 112. For each of the plurality of edges of the planning graph 500 whose respective probability of colliding with the dynamic object B 112 in the environment 100 is higher than the defined threshold collision probability, the motion planner 280 then assigns a weight having a value greater than zero. In the present example, the motion planner 280 has assigned weights greater than zero to those edges in the planning graph 500 that have a higher probability of colliding with the dynamic object B 112 based on the current trajectory of the dynamic object B 112. The specific threshold value for the collision probability may vary. For example, the threshold value may be 40%, 50%, 60% or lower or higher collision probability. In addition, the motion planner 280 assigning weights with values greater than zero may include assigning negative weights with magnitudes greater than zero, which correspond to respective collision probabilities. For example, as shown in the planning diagram 500, the motion planner has assigned a weight of 5 to edges 510f and 510i with higher collision probabilities, but has assigned a weight with a lower magnitude of 1 to edges 510p and 510g, which the motion planner 280 has determined to have much lower collision probabilities.

圖5B為根據一個所說明實施例之圖1之主要代理102在主要代理102之目標為避免與圖1之接近主要代理之動態物件B 112碰撞的狀況下之示例運動規劃圖500,及在主要代理102之規劃圖500中識別以避免與動態物件B 112碰撞的示例路徑512 (包括圖500之將節點508a連接至508b的加粗邊緣)。在運動規劃器280至少部分地基於碰撞評估設定主要代理102與動態物件B 112碰撞之機率之後,運動規劃器280執行最佳化以識別所得規劃圖500中提供主要代理102之最長行進路線的路徑512,該行進路線由有相對低可能性與動態物件B 112碰撞之路徑指定。5B is an example motion planning graph 500 of the primary agent 102 of FIG. 1 when the primary agent 102's goal is to avoid collision with dynamic object B 112 of FIG. 1 that is close to the primary agent, and an example path 512 (including the bolded edge of the graph 500 connecting nodes 508a to 508b) identified in the planning graph 500 of the primary agent 102 to avoid collision with dynamic object B 112 according to an illustrated embodiment. After the motion planner 280 sets the probability of the primary agent 102 colliding with the dynamic object B 112 based at least in part on the collision evaluation, the motion planner 280 performs optimization to identify a path 512 in the resulting planning graph 500 that provides the longest travel path for the primary agent 102, which is specified by a path having a relatively low probability of colliding with the dynamic object B 112.

在一個實施中,一旦已如圖5A及5B中所展示指派規劃圖500之所有邊緣權重,運動規劃器280便可執行計算以判定最長行進路線,使得動態物件B 112在與主要代理102碰撞之前將耗盡燃料。舉例而言,一旦已如圖5A及5B中所展示指派規劃圖500之所有邊緣權重,運動規劃器280便可自規劃圖500中之主要代理102之當前狀態至主要代理102已耗盡燃料/電力之所有可能最終點執行最小成本路徑演算法。接著由運動規劃器280選擇規劃圖500中具有最小成本(最接近零)路徑之最長路線(例如,在時間或距離上)。然而,規劃圖500中之最長路線及最小成本(最接近零)路徑常常競爭。在需要最長路線之狀況下,尋找規劃圖500中之最小成本路徑並不具有與選擇具有最小碰撞機率之路徑一樣高的優先級。在本實例中,規劃圖中之主要代理102之當前狀態處於節點508a處,且此路徑描繪為規劃圖500中之路徑512。In one implementation, once all edge weights of the planning graph 500 have been assigned as shown in Figures 5A and 5B, the motion planner 280 may perform calculations to determine the longest path of travel so that the dynamic object B 112 will run out of fuel before colliding with the primary agent 102. For example, once all edge weights of the planning graph 500 have been assigned as shown in Figures 5A and 5B, the motion planner 280 may perform a minimum cost path algorithm from the current state of the primary agent 102 in the planning graph 500 to all possible end points where the primary agent 102 has run out of fuel/power. The longest route (e.g., in time or distance) in the plan graph 500 with the minimum cost (closest to zero) path is then selected by the motion planner 280. However, the longest route and the minimum cost (closest to zero) path in the plan graph 500 often compete. In the case where the longest route is required, finding the minimum cost path in the plan graph 500 does not have the same high priority as selecting the path with the minimum collision probability. In this example, the current state of the main agent 102 in the plan graph is at node 508a, and this path is depicted as path 512 in the plan graph 500.

在一些實施中,主要代理102可存在到達特定目的地(同時避免與動態物件B 112碰撞)之次要目標。在此狀況下,最佳化可包括自規劃圖500中之主要代理102之當前狀態至所需目的地執行最小成本路徑演算法。在一個實施例中,主要代理102之目標為在不與動態物件B 112碰撞之情況下最大化時間,使得例如動態物件B 112在與主要代理102碰撞之前耗盡燃料。在一個示例實施例中,主要代理102之目標為在當前時間與主要代理102到達所需目的地或達成特定目標之時間之間或在當前時間與動態物件B 112耗盡燃料之時間之間最小化與動態物件B 112碰撞之機率。此程序藉由以下操作來改良用於避免與動態物件(104、112)碰撞之運動規劃的技術:使用規劃圖及碰撞偵測以增加尋找避免與可能試圖與自主主要代理碰撞之動態物件(104、112)碰撞之最佳路線的效率及回應時間。另外,一些實施使用識別主要代理102之與主要代理102操作之環境中之一或多個靜態物件碰撞之可能性為零之路徑的相同程序。在應避免與此類靜態物件碰撞之狀況下,運動規劃器280對規劃圖500之具有與環境100中之靜態物件碰撞之各別機率的數個邊緣中之每一者指派具有無窮大之值的權重。以此方式,當運動規劃器在最佳化期間選擇最小成本路徑時,將避免具有設定為無窮大之邊緣權重的此類路徑,此係由於在橫穿彼邊緣之情況下一定會與靜態物件碰撞。在此等實施中,不考慮靜態物件之速度或軌跡。In some implementations, the primary agent 102 may have a secondary goal of reaching a specific destination (while avoiding collisions with dynamic object B 112). In this case, optimization may include executing a minimum cost path algorithm from the current state of the primary agent 102 in the planning graph 500 to the desired destination. In one embodiment, the primary agent 102's goal is to maximize the time without colliding with dynamic object B 112, such that, for example, dynamic object B 112 runs out of fuel before colliding with the primary agent 102. In one example embodiment, the primary agent 102's goal is to minimize the probability of colliding with dynamic object B 112 between the current time and the time the primary agent 102 reaches the desired destination or achieves a specific goal, or between the current time and the time dynamic object B 112 runs out of fuel. This process improves upon techniques for motion planning for avoiding collisions with dynamic objects (104, 112) by using a planning graph and collision detection to increase the efficiency and response time of finding the best path to avoid collisions with dynamic objects (104, 112) that may attempt to collide with the autonomous primary agent. Additionally, some implementations use the same process to identify paths of the primary agent 102 that have a zero probability of colliding with one or more static objects in the environment in which the primary agent 102 operates. In situations where collisions with such static objects should be avoided, the motion planner 280 assigns a weight having an infinite value to each of a plurality of edges of the planning graph 500 that have a respective probability of colliding with a static object in the environment 100. In this way, when the motion planner chooses the minimum cost path during optimization, it will avoid such paths with edge weights set to infinity, since crossing that edge will definitely result in a collision with a static object. In these implementations, the velocity or trajectory of the static objects is not considered.

在一些實施中,可存在多個其他代理,例如動態物件(104、112),主要代理102具有避開該等其他代理中之一些的目標,且主要代理102具有攔截該等其他代理中之其他者或與之碰撞的目標。在此等實施中,本文中針對用以與動態物件(104、112)碰撞之主要代理102所描述的程序及本文中針對用以避免與動態物件(104、112)碰撞之主要代理102所描述的程序可同時、同步或以其他方式彼此結合地實施。舉例而言,一些物件可經識別為用以碰撞之物件,且其他物件可經識別為用以避免碰撞之物件。運動規劃器280接著執行如本文中所描述之最佳化,相應地考慮對應於動態及靜態物件以及應碰撞抑或避開此類物件之軌跡及感知資訊。在此狀況下,基於碰撞評估設定規劃圖之邊緣之碰撞機率包括指派權重(例如,藉由修改/調整初始權重)以相應地碰撞或避免碰撞。In some implementations, there may be multiple other agents, such as dynamic objects (104, 112), with the primary agent 102 having a goal of avoiding some of the other agents and the primary agent 102 having a goal of intercepting or colliding with others of the other agents. In such implementations, the procedures described herein for the primary agent 102 to collide with the dynamic objects (104, 112) and the procedures described herein for the primary agent 102 to avoid collisions with the dynamic objects (104, 112) may be implemented simultaneously, synchronously, or otherwise in conjunction with one another. For example, some objects may be identified as objects to collide with and other objects may be identified as objects to avoid collision with. The motion planner 280 then performs optimization as described herein, taking into account trajectory and sensor information corresponding to dynamic and static objects and whether such objects should be collided with or avoided. In this case, setting the collision probability of the edges of the planning graph based on the collision evaluation includes assigning weights (e.g., by modifying/adjusting initial weights) to collide or avoid collision accordingly.

運動規劃器280可執行最佳化以識別所得規劃圖500中有最低可能性與沿著主要代理102之整個路線之動態物件B 112碰撞的路徑。在一些實施中,路線之長度可至少部分地由主要代理102何時耗盡燃料/電力來界定。指示主要代理102之剩餘燃料或電力的變數可由電腦系統200儲存。在一些實施中,運動規劃器280可執行最佳化以識別所得規劃圖500中具有最長行進持續時間之路徑,該行進持續時間由有相對低可能性與動態物件B 112碰撞之路徑指定。該路徑亦可基於動態物件B 112之軌跡106之改變或預測改變而識別。在動態物件B 112之軌跡106發生每次改變或預測改變時,可即時或近即時地再次執行碰撞評估及最佳化程序。另外,所得規劃圖500可具有資料,該資料表示主要代理及/或動態物件之實體或效能約束、主要代理102之加速度、間距、橫搖及偏航,且在一些實施中亦表示動態物件B 112之加速度、間距、橫搖及偏航。可接著基於此等變數執行用以識別路徑之最佳化。舉例而言,若動態物件B 112之間距、橫搖及/或偏航改變,則此可指示動態物件B 112之軌跡改變(或產生預測改變)。The motion planner 280 may perform optimization to identify the path in the resulting plan map 500 that has the lowest probability of colliding with the dynamic object B 112 along the entire route of the primary agent 102. In some implementations, the length of the route may be defined at least in part by when the primary agent 102 runs out of fuel/power. A variable indicating the remaining fuel or power of the primary agent 102 may be stored by the computer system 200. In some implementations, the motion planner 280 may perform optimization to identify the path in the resulting plan map 500 that has the longest travel duration, which is specified by the path having a relatively low probability of colliding with the dynamic object B 112. The path may also be identified based on changes or predicted changes in the trajectory 106 of the dynamic object B 112. The collision assessment and optimization process may be re-executed in real time or near real time with each change or predicted change in the trajectory 106 of the dynamic object B 112. In addition, the resulting planning map 500 may have data representing the physical or performance constraints of the master agent and/or dynamic objects, the acceleration, pitch, roll, and yaw of the master agent 102, and in some implementations, the acceleration, pitch, roll, and yaw of the dynamic object B 112. Optimization to identify the path may then be performed based on these variables. For example, if the pitch, roll, and/or yaw of dynamic object B 112 changes, this may indicate a change in the trajectory of dynamic object B 112 (or result in a predicted change).

運動規劃器280可經程式化以用於廣泛範圍之自主車輛及機器人(具有及不具有附件)及預期任務情境。運動規劃器280可針對不同車輛或機器人再使用或再程式化,或運動規劃器280可設計成用於特定車輛或機器人。一種類型之機器人為自主車輛,諸如本文中所描述之自主車輛。The motion planner 280 can be programmed for use with a wide range of autonomous vehicles and robots (with and without attachments) and anticipated mission scenarios. The motion planner 280 can be reused or reprogrammed for different vehicles or robots, or the motion planner 280 can be designed for use with a specific vehicle or robot. One type of robot is an autonomous vehicle, such as the autonomous vehicles described herein.

圖6為根據一個所說明實施例之主要代理102 (例如,自主車輛、具有或不具有附件之機器人等)可操作且例如動態物件A 104及動態物件B 112之其他代理具有已知軌跡(例如,分別為tA 110及tB 106)之環境100的示意圖。在此情境下,可考慮環境100中之其他代理之意圖,亦即,該等代理隨時間變化之軌跡,而非僅僅考慮該等代理之目前軌跡而規劃主要代理102之軌跡。此又允許回應於例如動態物件A 104及動態物件B 112之其他代理之改變軌跡對主要代理102之部分進行條件性動作。舉例而言,在主要代理102之環境100中,若個人跑進道路中,則相對於主要代理102之軌跡將採取之動作將取決於該個人持續跑步抑或停止。換言之,知曉代理(例如,在此實例中之個人)之軌跡允許考慮改變情形之方案,而非獨立於環境100中之其他代理可執行之情形而規劃穿過網格之完整路徑。另外,此方法避免對碰撞雙重計數,該雙重計數諸如可在規劃路徑之前將整組軌跡應用於運動圖之邊緣時發生。6 is a schematic diagram of an environment 100 in which a primary agent 102 (e.g., an autonomous vehicle, a robot with or without attachments, etc.) is operable and other agents, such as dynamic object A 104 and dynamic object B 112, have known trajectories (e.g., tA 110 and tB 106, respectively), according to one illustrated embodiment. In this scenario, the trajectory of the primary agent 102 can be planned taking into account the intent of the other agents in the environment 100, i.e., their changing trajectories over time, rather than just their current trajectories. This in turn allows conditional actions to be taken on portions of the primary agent 102 in response to the changing trajectories of other agents, such as dynamic object A 104 and dynamic object B 112. For example, in the environment 100 of the primary agent 102, if a person runs into the road, the action to be taken relative to the trajectory of the primary agent 102 will depend on whether the person continues running or stops. In other words, knowing the trajectory of an agent (e.g., a person in this example) allows for scenarios of changing circumstances to be considered, rather than planning a complete path through the grid independently of what other agents in the environment 100 may be doing. Additionally, this approach avoids double counting of collisions, which may occur if an entire set of trajectories is applied to the edges of a motion graph before planning a path.

圖7為用於圖6之主要代理102的示例運動規劃圖700。在實施例中,網格中之每一節點(例如,n0 n1 n2 …)具有相關聯值(亦即,成本),該相關聯值係基於與節點與主要代理102之目標(亦即,最終狀態)之間的網格(例如,c0,4 c0,5 等)之邊緣相關聯的成本。FIG7 is an example motion planning graph 700 for the master agent 102 of FIG6. In an embodiment, each node in the grid (e.g., n0 , n1 , n2, ...) has an associated value (i.e., cost) based on the cost associated with the edge of the grid (e.g., c0,4 , c0,5 , etc.) between the node and the goal (i.e., final state) of the master agent 102.

藉由執行靜態背景碰撞偵測來初始化網格以尋找與靜態物件(例如,靜態物件C 108)碰撞之邊緣。在此狀況下,可將成本指派(或可將成本函數應用)至已經判定為導致與靜態物件碰撞之邊緣(例如,n14 n15 之間的邊緣),從而導致成本相對高。舉例而言,成本可設定為無窮大,藉此有效地防止主要代理102之軌跡包括經識別為與靜態物件碰撞之邊緣。在網格之初始化之第二態樣中,基於例如自所討論節點至目標節點(例如,n15 )之最小成本路徑針對每一節點判定至目標之成本。舉例而言,節點n13 之成本可由n13 n16 之間的邊緣之成本(c13,16 )及n16 n15 之間的邊緣之成本(c16,15 )判定。The grid is initialized by performing static background collision detection to find edges that collide with static objects (e.g., static object C 108). In this case, a cost may be assigned (or a cost function may be applied) to edges that have been determined to cause collisions with static objects (e.g., the edge between n 14 and n 15 ), resulting in a relatively high cost. For example, the cost may be set to be infinite, thereby effectively preventing the trajectory of the primary agent 102 from including edges identified as colliding with static objects. In a second aspect of the initialization of the grid, a cost to a target node (e.g., n 15 ) is determined for each node based on, for example, the minimum cost path from the node in question to the target node. For example, the cost of node n13 can be determined by the cost of the edge between n13 and n16 ( c13,16 ) and the cost of the edge between n16 and n15 ( c16,15 ).

可在時間T=i,在表示為n (例如,n0 )之節點處開始使用圖7中所描繪之圖700對主要代理102進行運動規劃。如上文所解釋,運動規劃考慮主要代理102之環境100中之其他代理之意圖,例如動態物件(104、112)之意圖。例如使用基於機率函數之行為模型對意圖進行取樣,以產生每一代理Aj 之軌跡t ,從而產生一組軌跡S 。如下文進一步詳細解釋,在個別地將每一軌跡t 應用於圖700時判定最小成本路徑,且接著執行成本之平均化。此與在判定最小成本路徑之前將整組軌跡應用於運動規劃圖之方法形成對比。Motion planning for the primary agent 102 may be performed using the graph 700 depicted in FIG. 7 beginning at time T=i at a node denoted n (e.g., n 0 ). As explained above, motion planning takes into account the intentions of other agents in the environment 100 of the primary agent 102, such as the intentions of dynamic objects ( 104 , 112 ). The intentions are sampled, for example using a behavior model based on a probability function, to generate a trajectory t for each agent A j , thereby generating a set of trajectories S . As explained in further detail below, the minimum cost path is determined when each trajectory t is applied to the graph 700 individually, and then an averaging of the costs is performed. This is in contrast to methods that apply the entire set of trajectories to the motion planning graph before determining the minimum cost path.

對於S 中之每一軌跡t ,關於運動規劃圖700中之哪些邊緣(若存在)與軌跡碰撞,亦即,關於哪些邊緣將導致主要代理102與對應於軌跡t之另一代理碰撞進行判定。例如藉由應用判定與碰撞相關聯之成本的成本函數,諸如導致高值被指派至碰撞中之邊緣的函數來修改此等邊緣之成本值。For each trajectory t in S , a determination is made as to which edges (if any) in the motion planning graph 700 collide with the trajectory, i.e., as to which edges will cause the primary agent 102 to collide with another agent corresponding to trajectory t. The cost values of the edges are modified, for example, by applying a cost function that determines the cost associated with the collision, such as a function that causes high values to be assigned to edges in collision.

在已基於軌跡t 修改圖700之邊緣之成本之後,針對候選節點n'中之每一者,亦即可在單一時間步長內(亦即,在時間T=i+1)自當前節點n (例如,n0 )到達之節點,計算成本。藉由尋找自當前節點n (例如,n0 )至目標(例如,n15 )之穿過候選節點n'之最小成本路徑來計算候選節點n' (例如,n3 n4 n5 n1 )之成本。圖7展示自節點n0 至目標(節點n15 )之穿過候選節點n4 之第一最小成本路徑710及自節點n0 至目標之穿過候選節點n5 之第二最小成本路徑720的實例。在此等實例中,對於軌跡t ,節點n4 之成本將為沿著第一路徑之邊緣的總和(例如,c0,4 c4,9 c9,13 c13,16 c16,15 )。After the cost of the edges of the graph 700 has been modified based on the trajectory t , a cost is calculated for each of the candidate nodes n', i.e., nodes reachable from the current node n (e.g., n0 ) within a single time step (i.e., at time T=i+1). The costs of the candidate nodes n' (e.g., n3 , n4 , n5 , and n1 ) are calculated by finding the minimum cost path from the current node n (e.g., n0) to the target (e.g., n15) that passes through the candidate nodes n' . FIG . 7 shows an example of a first minimum cost path 710 from node n0 to the target (node n15 ) that passes through candidate node n4 and a second minimum cost path 720 from node n0 to the target that passes through candidate node n5 . In these examples, for trajectory t , the cost of node n4 will be the sum of the edges along the first path (e.g., c 0,4 , c 4,9 , c 9,13 , c 13,16 , c 16,15 ).

以上述方式針對該組軌跡S中之每一軌跡(t1 t2 、…tm )計算候選節點n ' 之成本,每一軌跡對應於代理Aj (j =1至m ),其中m 為其他代理之數目。在該組軌跡S 上使成本平均化以提供每一候選節點n'之平均成本。選擇具有最低平均成本之候選節點n ' 作為主要代理之下一節點。因此,在時間T=i +1,具有最低平均成本之候選節點n ' 變成下一時間步長T=i +2之當前節點n 。此情形繼續,直至主要代理102到達目標節點(例如,n15 ),亦即,達成由目標節點表示之狀態。The cost of candidate node n ' is calculated in the above manner for each trajectory ( t1 , t2 , ... tm ) in the set of trajectories S, each trajectory corresponding to agent Aj ( j = 1 to m ), where m is the number of other agents. The costs are averaged over the set of trajectories S to provide an average cost for each candidate node n'. The candidate node n ' with the lowest average cost is selected as the next node of the primary agent. Therefore, at time T = i +1, the candidate node n ' with the lowest average cost becomes the current node n for the next time step T = i +2. This situation continues until the primary agent 102 reaches the target node (e.g., n15 ), that is, reaches the state represented by the target node.

圖8A為根據一個所說明實施例之展示經由規劃圖識別主要代理之路徑之方法800的流程圖,該等路徑穿過具有最低平均成本之候選節點,該最低平均成本考慮其他代理之已知軌跡。在805處,系統執行靜態背景碰撞偵測。在810處,針對每一節點計算至目標之成本。如上文關於圖7所論述,網格中之每一節點(例如,n0 n1 n2 …)具有相關聯值(亦即,成本),該相關聯值係基於與節點與主要代理102之目標(亦即,最終狀態)之間的網格(例如,c0,4 c0,5 等)之邊緣相關聯的成本。尤其基於與二個節點之間沿著所討論邊緣之移動相關聯的固有成本(例如,燃料及/或能量成本)而判定與網格之邊緣相關聯的成本。在實施中,基於自所討論節點至目標節點(例如,n15 )之最小成本路徑針對每一節點判定至目標之成本。在815處,系統判定主要代理之環境100中之其他代理Aj 的軌跡t 。在820處,對於當前節點n ,亦即運動規劃圖700中之主要代理之當前位置,系統計算一組軌跡S上之每一候選節點n' 之平均成本,如在圖8B及其在下文之對應描述中進一步詳細解釋。在825處,運動規劃圖700中之主要代理102之狀態(例如,姿勢)自節點n 移動至具有最低平均成本之候選節點n' 。在830處,在下一時間步長內使時間遞增且重複方法800。FIG8A is a flow chart showing a method 800 of identifying paths of a primary agent through a planning graph that traverse candidate nodes with the lowest average cost taking into account known trajectories of other agents, according to one illustrated embodiment. At 805, the system performs static background collision detection. At 810, a cost to a goal is calculated for each node. As discussed above with respect to FIG7, each node in the grid (e.g., n0 , n1 , n2 ...) has an associated value (i.e., cost) that is based on the cost associated with the edge of the grid (e.g., c0,4 , c0,5 , etc.) between the node and the goal (i.e., final state) of the primary agent 102. In particular, the costs associated with the edges of the grid are determined based on the inherent costs (e.g., fuel and/or energy costs) associated with movement between two nodes along the edge in question. In an implementation, the cost to the target node (e.g., n 15 ) is determined for each node based on the minimum cost path from the node in question to the target node. At 815 , the system determines the trajectories t of the other agents A j in the environment 100 of the primary agent. At 820 , for the current node n , i.e., the current position of the primary agent in the motion planning graph 700 , the system calculates the average cost of each candidate node n ' on a set of trajectories S, as further explained in FIG. 8B and its corresponding description below. At 825, the state (eg, posture) of the primary agent 102 in the motion planning graph 700 is moved from node n to the candidate node n' with the lowest average cost. At 830, time is incremented and the method 800 is repeated for the next time step.

圖8B為根據一個所說明實施例之展示可用於計算每一候選節點之成本之方法850的流程圖,該成本在圖8A之方法中在一組已知軌跡上平均化(參見區塊820)。在855處,對於t =1至m ,開始循環以考慮該組軌跡S中之每一軌跡t ,其中m 為軌跡之數目。在860處,在存在之情況下,系統判定運動規劃圖700之哪些邊緣與軌跡t 碰撞。在865處,在存在之情況下,系統將成本函數應用於經判定為與軌跡t 碰撞之邊緣之值。在870處,系統基於自節點n 至目標之穿過各別候選節點n'的最小成本路徑判定每一候選節點n' 之成本。在875處,使識別軌跡之索引t 遞增,且重複方法850,直至所有軌跡皆已被處理。FIG. 8B is a flow chart showing a method 850 that can be used to calculate the cost of each candidate node, which is averaged over a set of known trajectories in the method of FIG. 8A (see block 820), according to one illustrated embodiment. At 855, for t = 1 to m , a loop is started to consider each trajectory t in the set of trajectories S, where m is the number of trajectories. At 860, if present, the system determines which edges of the motion planning graph 700 collide with trajectory t . At 865, if present, the system applies the cost function to the value of the edge determined to collide with trajectory t . At 870, the system determines the cost of each candidate node n' based on the minimum cost path from node n to the target through each candidate node n' . At 875, the index t identifying the track is incremented and method 850 is repeated until all tracks have been processed.

圖9為根據一個所說明實施例之主要代理102 (例如,自主車輛、具有或不具有附件之機器人等)可操作且主要代理102及其他代理(例如,動態物件A 104及動態物件B 112)具有相互相依軌跡之環境100的示意圖。動態物件(104、112)之軌跡(例如,XA 及XB )可經機率性模型化。在所揭示實施例中,動態物件A 104及動態物件B 112可對主要代理102及環境中之所有其他代理二者之移動作出反應(包括彼此)。因此,開發每一代理之行為模型,其將代理意圖處理為模型化潛在策略或目標,而非簡單軌跡。潛在策略或目標呈可經取樣以判定代理將如何對其他代理軌跡作出反應之形式。當主要代理102在當前時間T處於節點n 處時,系統試圖判定其他代理在未來將處於何處。首先,基於主要代理的自其開始節點至節點n之路徑且考慮次要代理對主要代理之動作以及所有次要代理之動作的機率反應,向前模擬其他代理之策略直至當前時間T。因此,給定次要代理之機率函數表示主要及次要代理直至當前時間之動作中之至少一些。此產生指示其他代理在當前時間T佔據之空間的結果。此係因為另一代理在當前時間T之位置取決於由所有其他代理及主要代理102遵循直至當前時間T之軌跡。FIG. 9 is a schematic diagram of an environment 100 in which a primary agent 102 (e.g., an autonomous vehicle, a robot with or without attachments, etc.) can operate and in which the primary agent 102 and other agents (e.g., dynamic object A 104 and dynamic object B 112) have interdependent trajectories according to one illustrated embodiment. The trajectories (e.g., XA and XB ) of the dynamic objects (104, 112) can be probabilistically modeled. In the disclosed embodiment, dynamic object A 104 and dynamic object B 112 can react to the movements of both the primary agent 102 and all other agents in the environment (including each other). Thus, a behavioral model of each agent is developed that treats the agent's intentions as modeling potential strategies or goals rather than simple trajectories. Potential strategies or goals are in a form that can be sampled to determine how agents will react to other agent trajectories. When the primary agent 102 is at node n at the current time T, the system attempts to determine where the other agents will be in the future. First, the strategies of the other agents are simulated forward to the current time T based on the primary agent's path from its starting node to node n and considering the probabilistic reactions of the secondary agents to the actions of the primary agent and the actions of all secondary agents. Therefore, the probability function given to the secondary agent represents at least some of the actions of the primary and secondary agents up to the current time. This produces a result that indicates the space occupied by the other agents at the current time T. This is because the location of another agent at the current time T depends on the trajectory followed by all other agents and the primary agent 102 up to the current time T.

圖10為用於圖9之主要代理102的示例運動規劃圖1000,其展示第一最小成本路徑1010及第二最小成本路徑1020之實例。根據一個所說明實施例,第二最小成本路徑1020係基於在主要代理102沿著第一最小成本路徑1010自當前節點(例如,n0 )至候選節點(例如,n4 )之經規劃移動之後計算的其他代理之經機率性判定之軌跡而判定。FIG10 is an example motion planning graph 1000 for the primary agent 102 of FIG9 showing examples of a first minimum cost path 1010 and a second minimum cost path 1020. According to one illustrated embodiment, the second minimum cost path 1020 is determined based on the probabilistically determined trajectories of other agents calculated after the primary agent 102 has moved along the first minimum cost path 1010 from a current node (e.g., n0 ) to a candidate node (e.g., n4 ).

在實施例中,網格中之每一節點(例如,n0 n1 n2 …)具有相關聯值(亦即,成本),該相關聯值係基於與節點與主要代理之目標之間的網格之邊緣相關聯的成本。藉由執行靜態背景碰撞偵測來初始化網格以尋找與靜態物件(例如,靜態物件C 108)碰撞之邊緣。在此狀況下,可將成本指派(或可將成本函數應用)至已經判定為導致與靜態物件碰撞之邊緣(例如,n14 n15 之間的邊緣),從而導致成本相對高。舉例而言,成本可設定為無窮大,藉此有效地防止主要代理102之軌跡包括經識別為與靜態物件碰撞之邊緣。在網格之初始化之第二態樣中,基於例如自所討論節點至目標節點(例如,n15 )之最小成本路徑針對每一節點判定至目標之成本。In an embodiment, each node in the grid (e.g., n0 , n1 , n2, ...) has an associated value (i.e., cost) that is based on the cost associated with the edges of the grid between the node and the target of the primary agent. The grid is initialized by performing static background collision detection to find edges that collide with static objects (e.g., static object C 108). In this case, a cost may be assigned (or a cost function may be applied) to the edges that have been determined to cause collisions with static objects (e.g., the edge between n14 and n15 ), resulting in a relatively high cost. For example, the cost may be set to be infinite, thereby effectively preventing the trajectory of the primary agent 102 from including edges identified as colliding with static objects. In a second aspect of initialization of the grid, a cost to a target is determined for each node based on, for example, the minimum cost path from the node in question to the target node (e.g., n15 ).

在實施例中,模型化其他代理Aj ,使其各自具有其自身的機率行為模型。對於每一代理Aj ,下一運動規劃步長由所有其他代理及主要代理102自時間T=0起採取之動作的機率函數Xj 給定。機率函數Xj 可基於諸如標準差、方差及處理成本/時間之因素取樣k 次。In an embodiment, the other agents Aj are modeled so that each has its own probabilistic behavior model. For each agent Aj , the next motion planning step is given by the probability function Xj of the actions taken by all other agents and the main agent 102 since time T=0. The probability function Xj can be sampled k times based on factors such as standard deviation, variance, and processing cost/time.

可在時間T=0,在表示為n (例如,n0 )之節點處開始使用圖10中所描繪之圖1000對主要代理102進行運動規劃。對於每一代理Aj ,在存在之情況下,系統判定哪些網格邊緣與正移動至主要代理在時間T=1時將位於之節點的每一代理碰撞。使用成本函數修改碰撞邊緣之值,該成本函數量測經預測實際碰撞之成本,且將高值指派至碰撞中之邊緣。基於經修改邊緣成本,計算每一候選節點n ' (例如,n3 n4 n5 n1 )之值。經由候選節點n ' 中之每一者判定自當前節點(例如,n0 )至目標(例如,n15 )之最小成本路徑。Motion planning for the primary agent 102 may be performed using the graph 1000 depicted in FIG. 10 beginning at time T=0 at a node denoted n (e.g., n0 ). For each agent Aj , the system determines which grid edges, if any, collide with each agent moving to the node where the primary agent would be at time T=1. The values of the colliding edges are modified using a cost function that measures the cost of predicted actual collisions and assigns high values to edges in collision. Based on the modified edge costs, the value of each candidate node n ' (e.g., n3 , n4 , n5 , and n1 ) is calculated. The minimum cost path from the current node (e.g., n0 ) to the target (e.g., n15 ) is determined through each of the candidate nodes n ' .

出於規劃之目的,假定主要代理102移動至值最小的候選節點n ' ,在圖10中所描繪之實例中,該候選節點為節點n4 。穿過節點n4之最小成本路徑1010可為例如穿過節點n4 n8 n12 n16 且在節點n15 (亦即,該目標)處結束之路徑。如下文進一步詳細解釋,此僅為經規劃路徑,而非運動規劃圖1000中之主要代理102之實際路徑。換言之,此經規劃移動不導致運動指令由運動規劃系統發送至主要代理102。For planning purposes, it is assumed that the primary agent 102 moves to the candidate node n ' with the smallest value, which in the example depicted in FIG. 10 is node n4 . The minimum cost path 1010 through node n4 may be, for example, a path that passes through nodes n4 , n8 , n12 , n16 and ends at node n15 (i.e., the goal). As explained in further detail below, this is only a planned path, not the actual path of the primary agent 102 in the motion planning graph 1000. In other words, this planned move does not result in a motion command being sent to the primary agent 102 by the motion planning system.

主要代理102至節點n4 之經規劃移動,亦即假設移動,影響其他代理之路徑,如藉由機率模型判定。此意謂在時間T=0判定之其中主要代理102在節點n0 處的最小成本路徑1010可能不再為時間T=1時之最小成本路徑。在節點n4 為主要代理102之當前節點的假定下重複上文所描述之計算,且自節點n4 判定新最小成本路徑1020,例如穿過節點n9 n13 n16 且在目標節點n15 處結束之路徑。重複計算,直至主要代理102之經規劃路線到達目標,例如節點n15 The planned movement of the master agent 102 to node n4 , i.e., the hypothetical movement, affects the paths of the other agents, as determined by the probability model. This means that the minimum cost path 1010 determined at time T=0 where the master agent 102 is at node n0 may no longer be the minimum cost path at time T=1. The calculations described above are repeated under the assumption that node n4 is the current node of the master agent 102, and a new minimum cost path 1020 is determined from node n4 , such as a path that passes through nodes n9 , n13 , n16 and ends at the target node n15 . The calculations are repeated until the planned route of the master agent 102 reaches the target, such as node n15 .

在以此方式映射主要代理102之經規劃移動之後,運動規劃圖1000將具有邊緣,該等邊緣之成本已基於經規劃路線而判定,該經規劃路線又係基於用以模型化主要代理之環境中之其他代理的機率函數。判定具有最低值(亦即,成本)之候選節點n' ,且主要代理102自當前節點n0 移動至候選節點n' (例如,n3 n4 n5 n1 )。在運動規劃圖1000中之主要代理102之此實際移動之後,在下一時間步長T=T+1自新當前節點n (例如,n3 n4 n5 n1 )重複上文所描述之程序。After mapping the planned movement of the primary agent 102 in this manner, the motion planning graph 1000 will have edges whose costs have been determined based on the planned route, which in turn is based on the probability function used to model other agents in the primary agent's environment. The candidate node n' with the lowest value (ie, cost) is determined, and the primary agent 102 moves from the current node n 0 to the candidate node n' (eg, n 3 , n 4 , n 5 , or n 1 ). After this actual movement of the primary agent 102 in the motion planning graph 1000, the procedure described above is repeated at the next time step T=T+1 from the new current node n (eg, n 3 , n 4 , n 5 or n 1 ).

圖11A為根據一個所說明實施例之展示經由規劃圖識別主要代理102之路徑之方法1100的流程圖,該等路徑穿過具有最低平均成本之候選節點,該最低平均成本考慮主要代理102至目標之經規劃路徑及其他代理之經機率性判定之路徑。在1105處,系統執行靜態背景碰撞偵測,如上文所描述。在1110處,針對運動規劃圖1000之每一節點計算至目標之成本。在1115處,系統針對每一代理Aj 判定後續步長Xj 之機率模型以產生一組模型S 。在1120處,系統基於主要代理102自當前節點n至目標之經規劃路徑及其他代理之經機率性判定之路徑計算每一候選節點n ' 之值,如圖11B及其在下文之對應描述中進一步詳細解釋。在1125處,主要代理102自其當前節點n 移動至具有最低值(亦即,成本)之候選節點n' 。在1130處,在下一時間步長T=T+1內重複方法1100。FIG. 11A is a flow chart showing a method 1100 of identifying paths of a primary agent 102 through a planning graph that traverse candidate nodes with the lowest average cost considering the planned path of the primary agent 102 to a target and the probabilistically determined paths of other agents, according to one illustrated embodiment. At 1105, the system performs static background collision detection, as described above. At 1110, the cost to the target is calculated for each node of the motion planning graph 1000. At 1115, the system determines a probability model for the next step size X j for each agent A j to generate a set of models S. At 1120, the system calculates the value of each candidate node n ' based on the planned path of the primary agent 102 from the current node n to the target and the probabilistically determined paths of the other agents, as further explained in FIG. 11B and its corresponding description below. At 1125, the primary agent 102 moves from its current node n to the candidate node n' with the lowest value (i.e., cost). At 1130, the method 1100 is repeated in the next time step T=T+1.

圖11B為根據一個所說明實施例之展示基於主要代理102至目標之經規劃路徑及其他代理之經機率性判定之路徑計算每一候選節點之值之方法1135的流程圖,該方法適用於圖11A之方法1100 (區塊1120)。在1140處,系統基於其他代理Aj 之基於一組模型S 的經取樣後續步長Xj 判定每一候選節點n ' 之值,如圖11C及其在下文之對應描述中進一步詳細解釋。在1142處,系統基於自當前節點n0 至在時間T+1具有最低值之候選節點n' 的移動指定主要代理102之下一經規劃位置。在1144處,若主要代理102尚未在目標節點處,則使時間遞增(在1146處)且在下一時間步長內重複方法1135。若主要代理102處於目標節點處,則處理返回至方法1100 (在區塊1120之後)。FIG. 11B is a flow chart showing a method 1135 for calculating the value of each candidate node based on the planned path of the primary agent 102 to the target and the probabilistically determined paths of the other agents, which is applicable to the method 1100 (block 1120) of FIG. 11A according to one illustrated embodiment. At 1140, the system determines the value of each candidate node n ' based on the sampled subsequent step lengths xj of the other agents Aj based on a set of models S , as further explained in FIG. 11C and its corresponding description below. At 1142, the system specifies the next planned position of the primary agent 102 based on the movement from the current node n0 to the candidate node n' with the lowest value at time T+1. At 1144, if the primary agent 102 is not yet at the target node, the time is incremented (at 1146) and the method 1135 is repeated at the next time step. If the primary agent 102 is at the target node, the process returns to the method 1100 (after block 1120).

圖11C為根據一個所說明實施例之展示基於邊緣碰撞成本自其他代理Aj 之基於一組機率模型S 的經取樣後續步長Xj 判定下一時間步長T+1處每一候選節點n ' 之值之方法1150的流程圖,該方法適用於圖11B之方法1135 (區塊1140)。在1155處,基於每代理之樣本數目p 開始反覆循環。在1160處,基於其他代理之數目j 開始反覆循環。在1165處,系統基於該組模型S 判定代理Aj 之機率下一步長Xj 之第k 個樣本。在1170處,在存在之情況下,系統判定運動規劃圖1000之哪些邊緣在時間T+1與代理Aj 之經判定機率下一步長Xj 碰撞。在1175處,在存在之情況下,系統將成本函數應用於經判定為在時間T+1與代理Aj 之機率下一步長Xj 碰撞之邊緣之值。在1180處,重複其他代理之反覆循環,直至已處理所有其他代理。在1185處,在其他代理之反覆循環已完成j 次之後,重複樣本之反覆循環,直至所有樣本已完成,亦即,k 次。FIG. 11C is a flow chart showing a method 1150 for determining the value of each candidate node n ' at the next time step T +1 based on edge collision cost from the sampled subsequent steps Xj of other agents Aj based on a set of probability models S , according to an illustrated embodiment, which is applicable to the method 1135 (block 1140) of FIG. 11B. At 1155, iterate based on the number of samples per agent p . At 1160, iterate based on the number of other agents j . At 1165, the system determines the kth sample of the probability next step Xj of agent Aj based on the set of models S. At 1170, the system determines which edges of the motion planning graph 1000 collide with the determined probability step length Xj of agent Aj at time T+1, if any. At 1175, the system applies the cost function to the values of the edges determined to collide with the probability step length Xj of agent Aj at time T+1, if any. At 1180, the iterative loop for other agents is repeated until all other agents have been processed. At 1185, after the iterative loop for other agents has been completed j times, the iterative loop for the sample is repeated until all samples have been completed, i.e., k times.

如上文所解釋,在實施中,代理Aj 之機率行為模型為相互相依的,此係因為每一代理Aj 之軌跡取決於所有其他代理及主要代理之軌跡。因此,所有代理Aj 及主要代理之當前及過去位置作為輸入提供至機率行為模型以判定代理Aj 中之每一者的經預測下一步長Xj 。在此情況下,窗口或歷史或回顧(看back)通常會有一定限制。因此,程序(描繪於圖11C中)之最內循環為用以在重複取樣之前判定所有代理Aj 之經預測下一步長Xj 的循環。以此方式,基於所有代理Aj 及主要代理之相同當前位置執行所有樣本。As explained above, in implementation, the probabilistic behavior model of agents Aj is interdependent because the trajectory of each agent Aj depends on the trajectory of all other agents and the master agent. Therefore, the current and past positions of all agents Aj and the master agent are provided as input to the probabilistic behavior model to determine the predicted next step length Xj for each of the agents Aj . In this case, the window or history or look back (looking back) is usually limited. Therefore, the innermost loop of the process (depicted in Figure 11C) is the loop used to determine the predicted next step length Xj for all agents Aj before repeated sampling. In this way, all samples are performed based on the same current position of all agents Aj and the master agent.

前述詳細描述已經由使用方塊圖、示意圖及實例闡述器件及/或程序之各種實施例。就此等方塊圖、示意圖及實例含有一或多個功能及/或操作而言,熟習此項技術者應理解此等方塊圖、流程圖或實例內之每一功能及/或操作可藉由廣泛範圍之硬體、軟體、韌體或其虛擬任何組合個別地及/或共同地實施。在一個實施例中,可經由特殊應用積體電路(ASIC)及/或FPGA實施本發明主題。然而,熟習此項技術者將認識到,本文所揭示之實施例完全或部分地可在各種不同實施中在標準積體電路中實施為在一或多個電腦上運行的一或多個電腦程式(例如,在一或多個電腦系統上運行之一或多個程式)、在一或多個控制器(例如,微控制器)上運行的一或多個程式、在一或多個處理器(例如,微處理器)上運行的一或多個程式、韌體,或其虛擬任何組合,且設計電路系統及/或寫入用於軟體及或韌體之程式碼將根據本發明完全在一般熟習此項技術者之技能內。The foregoing detailed description has been illustrated by using block diagrams, schematics, and examples to illustrate various embodiments of devices and/or programs. To the extent that such block diagrams, schematics, and examples contain one or more functions and/or operations, those skilled in the art should understand that each function and/or operation within such block diagrams, flow charts, or examples can be implemented individually and/or collectively by a wide range of hardware, software, firmware, or any combination thereof. In one embodiment, the subject matter of the present invention can be implemented via an application specific integrated circuit (ASIC) and/or FPGA. However, those skilled in the art will recognize that the embodiments disclosed herein may be implemented in whole or in part in a variety of different implementations in standard integrated circuits as one or more computer programs running on one or more computers (e.g., one or more programs running on one or more computer systems), one or more programs running on one or more controllers (e.g., microcontrollers), one or more programs running on one or more processors (e.g., microprocessors), firmware, or any combination thereof, and that designing circuit systems and/or writing program code for software and/or firmware based on the present invention will be well within the skills of those skilled in the art.

熟習此項技術者將認識到,本文中陳述的方法或演算法中之許多可使用額外動作,可省略一些動作,及/或可以不同於所指定次序之次序執行動作。Those skilled in the art will recognize that many of the methods or algorithms described herein may use additional actions, may omit some actions, and/or may perform the actions in an order different from the order specified.

另外,熟習此項技術者應瞭解,本文中教示之機構能夠以各種形式作為程式產品分佈,且例示性實施例同樣適用而不管用以實際上實施分佈的信號攜載媒體之特定類型。信號攜載媒體之實例包括但不限於以下各者:諸如硬碟機之可記錄型媒體、CD ROM及電腦記憶體。In addition, those skilled in the art will appreciate that the mechanisms taught herein can be distributed as program products in a variety of forms, and that the exemplary embodiments apply equally regardless of the specific type of signal-carrying media used to actually implement the distribution. Examples of signal-carrying media include, but are not limited to, the following: recordable media such as hard drives, CD ROMs, and computer memory.

可組合上述各種實施例以提供其他實施例。本說明書中所提及及/或應用程式資料表中所列之所有一般指派之美國專利申請案公開案、美國專利申請案、外來專利及外來專利申請案以全文引用之方式併入本文中,該等申請案包括但不限於:2018年1月12日提交之題為「用以便利具有動態物件環境中之自主車輛之運動規劃的裝置、方法及物品(APPARATUS, METHOD, AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS)」的美國專利申請案第62/616,783號;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 016/122840號。可鑒於以上詳細描述對實施例進行此等及其他改變。一般而言,在以下申請專利範圍中,所用術語不應解釋為將申請專利範圍限於本說明書及申請專利範圍中所揭示之特定實施例,而應解釋為包括所有可能之實施例連同該等申請專利範圍有權要求的等效物之全部範疇。相應地,申請專利範圍不受本揭露內容限制。The various embodiments described above may be combined to provide other embodiments. All generally assigned U.S. patent application publications, U.S. patent applications, foreign patents, and foreign patent applications mentioned in this specification and/or listed in the application data sheet are incorporated herein by reference in their entirety, including but not limited to: Apparatus, method, and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects, filed on January 12, 2018, entitled "APPARATUS, METHOD, AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC and U.S. Patent Application No. 62/616,783, entitled “MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS,” filed on June 9, 2017; and International Patent Application Publication No. WO 016/122840, entitled “SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME,” filed on January 5, 2016. These and other changes can be made to the embodiments in light of the above detailed description. In general, in the following claims, the terms used should not be interpreted as limiting the claims to the specific embodiments disclosed in this specification and the claims, but should be interpreted to include all possible embodiments together with the full range of equivalents to which the claims are entitled. Accordingly, the claims are not limited by the present disclosure.

100:動態操作環境 102:主要代理/車輛 104:動態物件A 106,110,XA,XB:軌跡 108:靜態物件C 112:動態物件B 200:電腦系統 212a:硬體處理器/處理單元/中央處理單元 212b:處理單元/數位信號處理器 214:系統記憶體 216:系統匯流排 218:唯讀記憶體 220:隨機存取記憶體 222:基本輸入/輸出系統 224:磁碟機 226:電腦可讀媒體 236:作業系統 238:應用程式 240:其他程式/模組 242:程式資料 260:網路介面 266:致動器系統 280:運動規劃器 282:感測器 284:物件偵測器 286:物件行為預測器 288:碰撞評估器 290:場可程式化閘陣列(FPGA) 292:路徑最佳化器 300:資料流 302:感知資訊 306:經預測軌跡資訊 308:軌跡資訊 310:經識別路徑 400,500,700,1000:運動規劃圖 408a,408b,408c,408d,508a,508b,n0 ,n1 ,n2 ,n5 ,n6 ,n7 ,n8 ,n9 ,n10 ,n11 ,n12 ,n13 ,n14 ,n15 ,n16 :節點 410a,410b,410c,410d,410e,410f,410g,410h,410i,410j,410k,510a,510b,510c,510d,510e,510f,510g,510h,510i,510j,510k,510l,510m,510n,510o,510p:邊緣 412,512:路徑 414,514:圖部分 710,1010:第一最小成本路徑 720,1020:第二最小成本路徑 800,850,1100,1135,1150:方法 820,1120,1140:區塊 n4 :候選節點100: Dynamic operating environment 102: Main agent/vehicle 104: Dynamic object A 106,110,XA,XB: Track 108: Static object C 112: Dynamic object B 200: Computer system 212a: Hardware processor/processing unit/central processing unit 212b: Processing unit/digital signal processor 214: System memory 216: System bus 218: Read-only memory 220: Random access memory 222: Basic input/output system 224: Disk drive 226: Computer readable media 236: Operating system 238: Application program 240: Other programs/modules 242: Program data 260: Network interface 266: Actuator system 280: Motion planner 282: Sensor 284: Object detector 286: Object behavior predictor 288: Collision evaluator 290: Field programmable gate array (FPGA) 292: Path optimizer 300: Data stream 302: Perception information 306: Predicted trajectory information 308: Trajectory information 310: Identified path 400, 500, 700, 1000: Motion planning graph 408a, 408b, 408c, 408d, 508a, 508b, n 0 , n 1 , n 2 , n 5 , n 6 , n 7 , n 8 , n 9 , n 10 , n 11 , n 12 , n 13 , n 14 , n 15 , n 16 : Node 410a, 410b, 410c, 410d, 410e, 410f, 410g, 410h, 410i, 410j, 410k, 510a, 510b, 510c, 510d, 510e, 510f, 510g, 510h, 510i, 510j, 510k, 510l, 510m, 510n, 510o, 510p: Edge 412, 512: Path 414, 514: Graph portion 710, 1010: First minimum cost path 720, 1020: Second minimum cost path 800, 850, 1100, 1135, 1150: Method 820, 1120, 1140: Block n 4 :Candidate Node

在附圖中,相同參考標號標識類似元件或動作。圖式中的元件之大小及相對位置未必係按比例繪製。舉例而言,各種元件之形狀及角度未按比例繪製,且此等元件中之一些經任意放大及定位以改善圖式可讀性。此外,所繪製元件之特定形狀並不意欲傳達關於特定元件之實際形狀的任何資訊,而僅僅已經選擇以易於在附圖中進行辨識。In the drawings, the same reference numerals identify similar elements or actions. The size and relative positions of the elements in the drawings are not necessarily drawn to scale. For example, the shapes and angles of various elements are not drawn to scale, and some of these elements are arbitrarily enlarged and positioned to improve drawing readability. In addition, the specific shapes of the drawn elements are not intended to convey any information about the actual shape of the specific element, but have simply been selected for easy identification in the drawings.

圖1為根據一個所說明實施例之主要代理(例如,自主車輛、具有或不具有附件之機器人等)可操作之環境的示意圖。1 is a schematic diagram of an environment in which a primary agent (e.g., an autonomous vehicle, a robot with or without attachments, etc.) may operate according to one illustrated embodiment.

圖2為根據一個所說明實施例之與可在圖1之環境中操作之主要代理(例如,自主車輛、具有或不具有可移動附件之機器人等)相關聯之電腦系統的功能框圖。2 is a functional block diagram of a computer system associated with a primary agent (e.g., an autonomous vehicle, a robot with or without removable appendages, etc.) that may operate in the environment of FIG. 1 according to one illustrated embodiment.

圖3為根據一個所說明實施例之展示圖2之電腦系統中之各種組件之間的示例資料流之方塊圖。3 is a block diagram showing example data flow between various components in the computer system of FIG. 2 according to one illustrated embodiment.

圖4A為根據一個所說明實施例之圖1之主要代理在主要代理之目標為與圖1之可能嘗試避開主要代理之動態物件碰撞的狀況下之示例運動規劃圖。4A is an example motion planning diagram of the primary agent of FIG. 1 when the primary agent's goal is to collide with a dynamic object of FIG. 1 that may attempt to avoid the primary agent, according to one illustrated embodiment.

圖4B為根據一個所說明實施例之圖1之主要代理在主要代理之目標為與圖1之可能嘗試避開主要代理之動態物件碰撞的狀況下之示例運動規劃圖,及在主要代理之規劃圖中識別以與動態物件碰撞的示例路徑。4B is an example motion planning graph of the primary agent of FIG. 1 when the primary agent's goal is to collide with a dynamic object of FIG. 1 that may attempt to avoid the primary agent, and example paths identified in the primary agent's planning graph to collide with the dynamic object, according to one illustrated embodiment.

圖5A為根據一個所說明實施例之圖1之主要代理在主要代理之目標為避免與圖1之接近主要代理之動態物件碰撞的狀況下之示例運動規劃圖。5A is an example motion planning diagram of the primary agent of FIG. 1 when the primary agent's goal is to avoid collision with a dynamic object that is close to the primary agent of FIG. 1 according to one illustrated embodiment.

圖5B為根據一個所說明實施例之圖1之主要代理在主要代理之目標為避免與圖1之接近主要代理之動態物件碰撞的狀況下之示例運動規劃圖及在主要代理之規劃圖中識別以避免與動態物件碰撞的示例路徑。5B is an example motion planning graph of the primary agent of FIG. 1 when the primary agent's goal is to avoid collision with a dynamic object that is close to the primary agent of FIG. 1 and an example path identified in the primary agent's planning graph to avoid collision with the dynamic object according to one illustrated embodiment.

圖6為根據一個所說明實施例之主要代理(例如,自主車輛、具有或不具有附件之機器人等)可操作且其他代理具有已知軌跡之環境的示意圖。6 is a schematic diagram of an environment in which a primary agent (e.g., an autonomous vehicle, a robot with or without attachments, etc.) may operate and in which other agents have known trajectories, according to one illustrated embodiment.

圖7為根據一個所說明實施例之圖6之主要代理的示例運動規劃圖,其展示穿過二個候選節點中之每一者之最小成本路徑的實例,其中成本係基於其他代理之已知軌跡而判定。7 is an example motion planning graph of the primary agent of FIG. 6 showing examples of minimum cost paths through each of two candidate nodes, where the costs are determined based on the known trajectories of other agents, according to one illustrated embodiment.

圖8A為根據一個所說明實施例之展示經由規劃圖識別主要代理之路徑之方法的流程圖,該等路徑穿過具有最低平均成本之候選節點,該最低平均成本考慮其他代理之已知軌跡。8A is a flow chart showing a method for identifying paths of a primary agent through a planning graph that traverse candidate nodes with the lowest average cost taking into account known trajectories of other agents according to one illustrated embodiment.

圖8B為根據一個所說明實施例之展示可用於計算每一候選節點之成本之方法的流程圖,該成本在圖8A之方法中在一組已知軌跡上平均化。8B is a flow chart showing a method that may be used to calculate the cost of each candidate node, which is averaged over a set of known trajectories in the method of FIG. 8A, according to one illustrated embodiment.

圖9為根據一個所說明實施例之主要代理(例如,自主車輛、具有或不具有附件之機器人等)可操作且主要代理及其他代理具有相互相依軌跡之環境的示意圖。9 is a schematic diagram of an environment in which a primary agent (e.g., an autonomous vehicle, a robot with or without attachments, etc.) may operate and in which the primary agent and other agents have interdependent trajectories according to one illustrated embodiment.

圖10為根據一個所說明實施例之用於圖9之主要代理的示例運動規劃圖,其展示基於在主要代理沿著第一最小成本路徑自當前節點至候選節點之經規劃移動之後自機率模型計算的其他代理之軌跡而判定之第一最小成本路徑及第二最小成本路徑的實例。Figure 10 is an example motion planning diagram for the primary agent of Figure 9 according to an illustrated embodiment, showing examples of a first minimum cost path and a second minimum cost path determined based on the trajectories of other agents calculated from a probability model after the primary agent's planned movement from a current node to a candidate node along the first minimum cost path.

圖11A為根據一個所說明實施例之展示經由規劃圖識別主要代理之路徑之方法的流程圖,該等路徑穿過具有最低平均成本之候選節點,該最低平均成本考慮主要代理至目標之經規劃路徑及其他代理之使用機率模型判定的路徑。11A is a flow chart showing a method for identifying paths of a primary agent through a planning graph that traverse candidate nodes with the lowest average cost considering the planned path of the primary agent to a target and the paths of other agents determined using a probability model according to one illustrated embodiment.

圖11B為根據一個所說明實施例之展示基於主要代理至目標之經規劃路徑及其他代理之自機率模型判定的路徑計算每一候選節點之值之方法的流程圖,該方法適用於圖11A之方法。11B is a flow chart showing a method for calculating the value of each candidate node based on the planned path of the primary agent to the target and the paths of other agents determined from the probability model, which is applicable to the method of FIG. 11A , according to one illustrated embodiment.

圖11C為根據一個所說明實施例之展示基於邊緣碰撞成本自基於機率模型的其他代理之經取樣後續步長判定下一時間步長處每一候選節點之值之方法的流程圖,該方法適用於圖11B之方法。11C is a flow chart showing a method for determining the value of each candidate node at the next time step based on edge collision costs from sampled subsequent steps of other agents based on a probability model, according to an illustrated embodiment, which method is applicable to the method of FIG. 11B .

100:動態操作環境100: Dynamic operating environment

102:主要代理/車輛102:Main Agent/Vehicle

104:動態物件A104: Dynamic Object A

106,110:軌跡106,110: Track

108:靜態物件C108: Static Object C

112:動態物件B112: Dynamic Object B

Claims (66)

一種在一基於處理器之系統中操作以經由規劃圖執行運動規劃的運動規劃方法,其中每一規劃圖分別包含多個節點及邊緣,每一節點隱式地或顯式地表示表徵一主要代理之一狀態的時間及變數,該主要代理在包括一或多個其他代理之一環境中操作,且每一邊緣表示各別的一對該等節點之間的一轉變,該方法包含:對於一第一規劃圖中之一當前節點,針對分別表示該一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在該第一規劃圖之該等邊緣中之任一者與各別軌跡碰撞的情況下,判定哪些邊緣與該各別軌跡碰撞;將一成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者;對於該第一規劃圖中之數個候選節點中之每一者,該等候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該當前節點的任何節點,尋找該第一規劃圖中自該當前節點至一目標節點之一最小成本路徑,該最小成本路徑自該當前節點直接傳遞至各別候選節點且接著傳遞至該目標節點,在該各別候選節點與該目標節點之間沿著一對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之該等軌跡尋找該等候選節點中之每一者之該最小成本路徑之後,對於該等候選節點中之每一者,至少部分地基於跨越所有該等軌 跡與該各別候選節點之每一最小成本路徑相關聯的一各別成本計算一各別值;以及至少部分地基於經計算各別值選擇該等候選節點中之一者。 A motion planning method operating in a processor-based system to perform motion planning via planning graphs, wherein each planning graph comprises a plurality of nodes and edges, each node implicitly or explicitly representing time and variables characterizing a state of a primary agent operating in an environment including one or more other agents, and each edge representing a transition between a respective pair of the nodes, the method comprising: for a first planning graph a current node in the first planning graph, for each trajectory in a set of trajectories representing actual or expected trajectories of at least one of the one or more other agents, if any of the edges in the first planning graph collides with the respective trajectory, determining which edges collide with the respective trajectory; applying a cost function to one or more of the respective edges to reflect at least one of the determined collision or the absence thereof; for a plurality of candidate nodes in the first planning graph, For each of the points, the candidate node is any node in the first planning graph that is directly coupled to the current node in the first planning graph by a respective single edge in the first planning graph, finding a minimum cost path from the current node to a target node in the first planning graph, the minimum cost path being transmitted directly from the current node to the respective candidate node and then to the target node, between the respective candidate node and the target node along a pair of The method further comprises: determining a path that has or does not have a plurality of intervening nodes in succession; after finding the minimum cost path for each of the candidate nodes with respect to the trajectories in the set of trajectories, calculating a respective value for each of the candidate nodes based at least in part on a respective cost associated with each minimum cost path across all of the trajectories and the respective candidate node; and selecting one of the candidate nodes based at least in part on the calculated respective values. 如請求項1之運動規劃方法,其中將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者包括:對於經判定為與至少一個軌跡碰撞之該等邊緣中之任一者,將該各別邊緣之一成本增加至一相對高量值以反映該經判定碰撞,其中該相對高量值相對高於一相對低量值,該相對低量值反映至少一個其他邊緣之碰撞之一不存在。 The motion planning method of claim 1, wherein applying a cost function to one or more of the individual edges to reflect at least one of the determined collision or its non-existence comprises: for any of the edges determined to have collided with at least one trajectory, increasing a cost of the individual edge to a relatively high value to reflect the determined collision, wherein the relatively high value is relatively higher than a relatively low value, the relatively low value reflecting the non-existence of one of the collisions with at least one other edge. 如請求項1之運動規劃方法,其中將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者包括:對於經判定為不與至少一個軌跡碰撞之該等邊緣中之任一者,將該各別邊緣之一成本增加至一相對高量值以反映碰撞之經判定不存在,其中該相對高量值相對高於一相對低量值,該相對低量值反映至少一個其他邊緣之一碰撞。 The motion planning method of claim 1, wherein applying a cost function to one or more of the individual edges to reflect at least one of the determined collision or its non-existence comprises: for any of the edges determined not to collide with at least one trajectory, increasing a cost of the individual edge to a relatively high value to reflect the determined non-existence of the collision, wherein the relatively high value is relatively higher than a relatively low value, the relatively low value reflecting a collision with at least one other edge. 如請求項1之運動規劃方法,其進一步包含:對於該環境中之該等其他代理中之至少一者中的每一者,取樣以判定該其他代理之各別預期軌跡;以及自該等其他代理中之每一者之經判定各別實際或預期軌跡形成該組軌跡。 The motion planning method of claim 1 further comprises: for each of at least one of the other agents in the environment, sampling to determine the respective expected trajectory of the other agent; and forming the set of trajectories from the determined respective actual or expected trajectory of each of the other agents. 如請求項1之運動規劃方法,其進一步包含:基於該等候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該當前節點的任何節點,自該第一規劃圖之該等其他節點選擇該第一規劃圖中之該等候選節點。 The motion planning method of claim 1 further comprises: based on the waiting node being any node in the first planning graph directly coupled to the current node in the first planning graph by a respective single edge of the first planning graph, selecting the waiting node in the first planning graph from the other nodes of the first planning graph. 如請求項1之運動規劃方法,其中至少部分地基於跨越所有該等軌跡與該各別候選節點之每一最小成本路徑相關聯之一各別成本計算一各別值包括計算與每一最小成本路徑相關聯之該各別成本之平均值,該每一最小 成本路徑經由該各別候選節點且在存在之情況下經由所有該等介入節點自該當前節點延伸至該目標節點。 A motion planning method as claimed in claim 1, wherein calculating a respective value based at least in part on a respective cost associated with each minimum cost path across all of the trajectories and the respective candidate node comprises calculating an average of the respective costs associated with each minimum cost path extending from the current node to the target node via the respective candidate node and, if present, via all of the intervening nodes. 如請求項1之運動規劃方法,其中至少部分地基於經計算各別值選擇該等候選節點中之一者包括選擇該等候選節點中具有為所有經計算值中之最小值之各別計算值的該候選節點。 A motion planning method as claimed in claim 1, wherein selecting one of the candidate nodes based at least in part on the calculated respective values comprises selecting the candidate node having a respective calculated value that is the minimum of all calculated values among the candidate nodes. 如請求項1之運動規劃方法,其進一步包含:基於該等候選節點中之選定者更新該主要代理之一軌跡。 The motion planning method of claim 1 further comprises: updating a trajectory of the main agent based on the selected one of the waiting nodes. 如請求項1之方法,其進一步包含:在將該成本函數應用於該等各別邊緣以反映該等經判定碰撞之前初始化該第一規劃圖。 The method of claim 1, further comprising: initializing the first planning graph before applying the cost function to the respective edges to reflect the determined collisions. 如請求項9之方法,其中初始化該第一規劃圖包括:對於該第一規劃圖中之每一邊緣,關於該環境中之數個靜態物件中之每一者對該邊緣執行一碰撞評估以在存在之情況下識別該各別邊緣與該等靜態物件之間的碰撞。 The method of claim 9, wherein initializing the first planning graph includes: for each edge in the first planning graph, performing a collision evaluation on the edge with respect to each of a plurality of static objects in the environment to identify collisions between the respective edge and the static objects, if any. 如請求項10之方法,其中初始化該第一規劃圖進一步包括:對於經評估為與該等靜態物件中之至少一者碰撞的每一邊緣,將一成本函數應用於該各別邊緣以反映經評估碰撞或自該第一規劃圖移除該邊緣。 The method of claim 10, wherein initializing the first planning graph further comprises: for each edge evaluated to collide with at least one of the static objects, applying a cost function to the respective edge to reflect the evaluated collision or removing the edge from the first planning graph. 如請求項9至11中任一項之方法,其中初始化該第一規劃圖進一步包括:對於該第一規劃圖中之每一節點,計算自該節點至該目標節點之一成本;以及使經計算成本與各別節點在邏輯上相關聯。 A method as in any one of claims 9 to 11, wherein initializing the first planning graph further comprises: for each node in the first planning graph, calculating a cost from the node to the target node; and logically associating the calculated costs with the respective nodes. 如請求項1至11中任一項之方法,其進一步包含:將該等候選節點中之該選定者指派為該第一規劃圖中之一新當前節點; 對於一第一規劃圖中之該新當前節點,針對分別表示該一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在該第一規劃圖之該等邊緣中之任一者與該各別軌跡碰撞的情況下,判定哪些邊緣與該各別軌跡碰撞;將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者;以及對於該第一規劃圖中之數個新候選節點中之每一者,該等新候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該新當前節點的任何節點,尋找該第一規劃圖中自該新當前節點至一目標節點之一最小成本路徑,該最小成本路徑自該新當前節點直接傳遞至各別新候選節點且接著傳遞至該目標節點,在該各別新候選節點與該目標節點之間沿著一對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之該等軌跡尋找該等新候選節點中之每一者之該最小成本路徑之後,對於該等新候選節點中之每一者,至少部分地基於跨越所有該等軌跡與該各別新候選節點之每一最小成本路徑相關聯的一各別成本計算一各別值;以及至少部分地基於經計算各別值選擇該等新候選節點中之一者。 The method of any one of claims 1 to 11, further comprising: assigning the selected one of the waiting nodes as a new current node in the first planning graph; For the new current node in the first planning graph, for each trajectory in a set of trajectories representing the actual or expected trajectory of at least one of the one or more other agents, any one of the edges in the first planning graph In the case of a collision with the respective trajectory, determining which edges collide with the respective trajectory; applying a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence; and for each of a plurality of new candidate nodes in the first planning graph, the new candidate nodes are directly coupled to the respective single edge of the first planning graph by a respective single edge of the first planning graph. any node of the new current node in the first planning graph, finding a minimum cost path from the new current node to a target node in the first planning graph, the minimum cost path being directly transmitted from the new current node to the respective new candidate node and then to the target node, with or without a plurality of intervening nodes continuously along a corresponding path between the respective new candidate node and the target node; After finding the minimum cost path to each of the new candidate nodes with respect to the trajectories in the set of trajectories, for each of the new candidate nodes, calculating a respective value based at least in part on a respective cost associated with each minimum cost path across all of the trajectories to the respective new candidate node; and selecting one of the new candidate nodes based at least in part on the calculated respective value. 一種用以經由規劃圖執行運動規劃的基於處理器之系統,其中每一規劃圖分別包含多個節點及邊緣,每一節點隱式地或顯式地表示表徵一主要代理之一狀態的時間及變數,該主要代理在包括一或多個其他代理之一環境中操作,且每一邊緣表示各別的一對該等節點之間的一轉變,該系統包含: 至少一個處理器;以及至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令或資料中之至少一者,該等處理器可執行指令或資料在由該至少一個處理器執行時使該至少一個處理器進行以下操作:對於一第一規劃圖中之一當前節點,針對分別表示該一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在該第一規劃圖之該等邊緣中之任一者與各別軌跡碰撞的情況下,判定哪些邊緣與該各別軌跡碰撞;將一成本函數應用於各別邊緣中之一或多者以反映經判定碰撞或其不存在中之至少一者;對於該第一規劃圖中之數個候選節點中之每一者,該等候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該當前節點的任何節點,尋找該第一規劃圖中自該當前節點至一目標節點之一最小成本路徑,該最小成本路徑自該當前節點直接傳遞至各別候選節點且接著傳遞至該目標節點,在該各別候選節點與該目標節點之間沿著一對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之該等軌跡尋找該等候選節點中之每一者之該最小成本路徑之後,對於該等候選節點中之每一者,計算表示跨越所有該等軌跡與該各別候選節點之每一最小成本路徑相關聯之一各別成本之一平均值的一各別值;以及至少部分地基於經計算各別值選擇該等候選節點中之一者。 A processor-based system for executing motion planning via planning graphs, wherein each planning graph comprises a plurality of nodes and edges, each node implicitly or explicitly representing time and variables representing a state of a primary agent operating in an environment including one or more other agents, and each edge representing a transition between a respective pair of such nodes, the system comprising: at least one processor; and at least one non-transitory processor-readable medium storing processor-executable instructions or data, the processors may execute instructions or data that, when executed by the at least one processor, cause the at least one processor to perform the following operations: for a current node in a first planning graph, for each trajectory in a set of trajectories representing actual or expected trajectories of at least one of the one or more other agents, if any of the edges in the first planning graph collides with the respective trajectory, determine which edges collide with the respective trajectory; apply a cost function to the respective edges; to reflect at least one of a determined collision or its non-existence; for each of a plurality of candidate nodes in the first planning graph, the candidate node is any node in the first planning graph that is directly coupled to the current node in the first planning graph by a respective single edge of the first planning graph, finding a minimum cost path from the current node to a target node in the first planning graph, the minimum cost path being directly transmitted from the current node to the respective candidate node and then to the target node, successively with or without a plurality of intervening nodes along a corresponding path between the respective candidate node and the target node; after finding the minimum cost path for each of the candidate nodes with respect to the trajectories in the set of trajectories, for each of the candidate nodes, calculating a respective value representing an average of a respective cost associated with each minimum cost path to the respective candidate node across all of the trajectories; and selecting one of the candidate nodes based at least in part on the calculated respective value. 如請求項14之基於處理器之系統,其中為了將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者,該至少一個處理器進行以下操作:對於經判定為與至少一個軌跡碰撞之該等邊緣中之任一者,將該各別邊緣之一成本增加至一相對高量值以反映該經判定碰撞,該相對高量值相對高於一相對低量值,該相對低量值反映至少一個其他邊緣之不存在一碰撞。 A processor-based system as claimed in claim 14, wherein in order to apply a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence, the at least one processor performs the following operations: for any of the edges determined to collide with at least one trajectory, increase a cost of the respective edge to a relatively high value to reflect the determined collision, the relatively high value being relatively higher than a relatively low value, the relatively low value reflecting the absence of a collision for at least one other edge. 如請求項14之基於處理器之系統,其中為了將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者,該至少一個處理器進行以下操作:對於經判定為不與至少一個軌跡碰撞之該等邊緣中之任一者,將該各別邊緣之一成本增加至一相對高量值以反映碰撞之經判定不存在,該相對高量值相對高於一相對低量值,該相對低量值反映至少一個其他邊緣之一碰撞。 A processor-based system as claimed in claim 14, wherein to apply a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence, the at least one processor performs the following operations: for any of the edges determined not to collide with at least one trajectory, increase a cost of the respective edge to a relatively high value to reflect the determined absence of a collision, the relatively high value being relatively higher than a relatively low value, the relatively low value reflecting a collision with at least one other edge. 如請求項14之基於處理器之系統,其中該至少一個處理器進一步進行以下操作:對於該環境中之該等其他代理中之至少一者中的每一者,對該等其他代理之意圖取樣以判定該其他代理之各別預期軌跡;以及自該等其他代理中之每一者之經判定各別實際或預期軌跡形成該組軌跡。 A processor-based system as claimed in claim 14, wherein the at least one processor further performs the following operations: for each of at least one of the other agents in the environment, sampling the intentions of the other agents to determine the respective expected trajectories of the other agents; and forming the set of trajectories from the determined respective actual or expected trajectories of each of the other agents. 如請求項14之基於處理器之系統,其中該至少一個處理器進一步進行以下操作:基於該等候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該當前節點的任何節點,自該第一規劃圖之該等其他節點選擇該第一規劃圖中之該等候選節點。 A processor-based system as claimed in claim 14, wherein the at least one processor further performs the following operation: based on the waiting selected node being any node in the first planning graph directly coupled to the current node in the first planning graph by a respective single edge of the first planning graph, selecting the waiting selected node in the first planning graph from the other nodes of the first planning graph. 如請求項14之基於處理器之系統,其中為了至少部分地基於跨越所有該等軌跡與該各別候選節點之每一最小成本路徑相關聯之一各別成本 計算一各別值,該至少一個處理器計算與每一最小成本路徑相關聯之該各別成本之平均值,該每一最小成本路徑經由該各別候選節點且在存在之情況下經由所有該等介入節點自該當前節點延伸至該目標節點。 A processor-based system as claimed in claim 14, wherein to calculate a respective value based at least in part on a respective cost associated with each minimum cost path across all of the trajectories to the respective candidate node, the at least one processor calculates an average of the respective costs associated with each minimum cost path extending from the current node to the target node through the respective candidate node and, if present, through all of the intervening nodes. 如請求項14之基於處理器之系統,其中為了至少部分地基於經計算各別值選擇該等候選節點中之一者,該至少一個處理器選擇該等候選節點中具有為所有經計算值中之最小值之各別計算值的該候選節點。 A processor-based system as claimed in claim 14, wherein in order to select one of the candidate nodes based at least in part on the calculated respective values, the at least one processor selects the candidate node among the candidate nodes having the respective calculated value that is the minimum of all calculated values. 如請求項14之基於處理器之系統,其中該至少一個處理器進一步進行以下操作:基於該等候選節點中之選定者更新該主要代理之一軌跡。 A processor-based system as claimed in claim 14, wherein the at least one processor further performs the following operations: updating a trajectory of the primary agent based on the selected one of the waiting nodes. 如請求項14之基於處理器之系統,其中該至少一個處理器進一步進行以下操作:在將該成本函數應用於該等各別邊緣以反映該等經判定碰撞之前初始化該第一規劃圖。 A processor-based system as claimed in claim 14, wherein the at least one processor further performs the following operations: initializing the first planning graph before applying the cost function to the respective edges to reflect the determined collisions. 如請求項22之基於處理器之系統,其中為了初始化該第一規劃圖,該至少一個處理器進行以下操作:對於該第一規劃圖中之每一邊緣,關於該環境中之數個靜態物件中之每一者對該邊緣執行一碰撞評估以在存在之情況下識別該各別邊緣與該等靜態物件之間的碰撞。 A processor-based system as claimed in claim 22, wherein to initialize the first planning graph, the at least one processor performs the following operations: for each edge in the first planning graph, performing a collision evaluation on the edge with respect to each of a plurality of static objects in the environment to identify collisions between the respective edge and the static objects, if any. 如請求項23之基於處理器之系統,其中為了初始化該第一規劃圖,該至少一個處理器進一步進行以下操作:對於經評估為與該等靜態物件中之至少一者碰撞的每一邊緣,將一成本函數應用於該各別邊緣以反映經評估碰撞或自該第一規劃圖移除該邊緣。 A processor-based system as claimed in claim 23, wherein to initialize the first planning graph, the at least one processor further performs the following operations: for each edge evaluated as colliding with at least one of the static objects, applying a cost function to the respective edge to reflect the evaluated collision or removing the edge from the first planning graph. 如請求項22至24中任一項之基於處理器之系統,其中為了初始化該第一規劃圖,該至少一個處理器進一步進行以下操作:對於該第一規劃圖中之每一節點,計算自該節點至該目標節點之一成本; 以及使經計算成本與各別節點在邏輯上相關聯。 A processor-based system as claimed in any one of claims 22 to 24, wherein to initialize the first planning graph, the at least one processor further performs the following operations: for each node in the first planning graph, calculating a cost from the node to the target node; and logically associating the calculated costs with the respective nodes. 如請求項14至24中任一項之基於處理器之系統,其中該至少一個處理器進一步進行以下操作:將該等候選節點中之該選定者指派為該第一規劃圖中之一新當前節點;對於一第一規劃圖中之該新當前節點,針對分別表示該一或多個其他代理中之至少一者之實際或預期軌跡的一組軌跡中之每一軌跡,在該第一規劃圖之該等邊緣中之任一者與該各別軌跡碰撞的情況下,判定哪些邊緣與該各別軌跡碰撞;將一成本函數應用於該等各別邊緣中之一或多者以反映該經判定碰撞或其不存在中之至少一者;以及對於該第一規劃圖中之數個新候選節點中之每一者,該等新候選節點為該第一規劃圖中由該第一規劃圖之一各別單一邊緣直接耦接至該第一規劃圖中之該新當前節點的任何節點,尋找該第一規劃圖中自該新當前節點至一目標節點之一最小成本路徑,該最小成本路徑自該新當前節點直接傳遞至各別新候選節點且接著傳遞至該目標節點,在該各別新候選節點與該目標節點之間沿著一對應路徑連續地具有或不具有數個介入節點;在關於該組軌跡中之該等軌跡尋找該等新候選節點中之每一者之該最小成本路徑之後,對於該等新候選節點中之每一者,至少部分地基於跨越所有該等軌跡與該各別新候選節點之每一最小成本路徑相關聯的一各別成本計算一各別值;以及 至少部分地基於經計算各別值選擇該等新候選節點中之一者。 A processor-based system as in any of claims 14 to 24, wherein the at least one processor further performs the following operations: assigning the selected one of the waiting nodes as a new current node in the first planning graph; for the new current node in the first planning graph, for each trajectory in a set of trajectories representing actual or expected trajectories of at least one of the one or more other agents, In the event that any of the edges of a first planning graph collides with the respective trajectory, determining which edges collide with the respective trajectory; applying a cost function to one or more of the respective edges to reflect at least one of the determined collision or its absence; and for each of a plurality of new candidate nodes in the first planning graph, the new candidate nodes are selected from a respective one of the first planning graph and the first candidate node. A single edge is directly coupled to any node of the new current node in the first planning graph, finding a minimum cost path from the new current node to a target node in the first planning graph, the minimum cost path passing from the new current node directly to respective new candidate nodes and then to the target node, with or without a number of intervening nodes successively along a corresponding path between the respective new candidate nodes and the target node node; after finding the minimum cost path to each of the new candidate nodes with respect to the trajectories in the set of trajectories, for each of the new candidate nodes, calculating a respective value based at least in part on a respective cost associated with each minimum cost path across all of the trajectories to the respective new candidate node; and selecting one of the new candidate nodes based at least in part on the calculated respective values. 一種在一運動規劃系統中操作之方法,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖,該方法包含:對於相對於一第一圖中之一當前節點的每一可用下一節點,經由至少一個處理器計算經由各別下一節點自該當前節點到達一目標節點之一各別相關聯代表性成本,該各別相關聯代表性成本鑒於基於一環境中之一或多個代理中之每一者之一非確定性行為對與該環境中之該一或多個代理碰撞之一機率進行的一評估反映與經由該各別下一節點自該當前節點至該目標節點之每一可用路徑相關聯的一各別代表性成本,該等代理可隨時間改變一位置、一速度、一軌跡、一行進路徑或一形狀中之任一或多者;基於每一可用下一節點之經計算各別相關聯代表性成本經由至少一個處理器選擇一下一節點;以及至少部分地基於選定下一節點經由至少一個處理器命令一移動。 A method operating in a motion planning system employing a graph having nodes representing states and edges representing transitions between states, the method comprising: for each available next node relative to a current node in a first graph, calculating, by at least one processor, a respective associated representative cost of reaching a target node from the current node via the respective next node, the respective associated representative cost being a cost based on a non-deterministic behavior of each of one or more agents in an environment with respect to the target node in the environment; An evaluation of a probability of collision of one or more agents reflecting a respective representative cost associated with each available path from the current node to the target node via the respective next node, the agents being able to change any one or more of a position, a velocity, a trajectory, a path of travel, or a shape over time; selecting a next node via at least one processor based on the calculated respective associated representative cost of each available next node; and commanding a move via at least one processor based at least in part on the selection of the next node. 如請求項27之方法,其中計算經由該各別下一節點自該當前節點到達一目標節點之一各別相關聯代表性成本包含:對於該當前節點與該目標節點之間經由該各別下一節點之每一預期路徑,針對該當前節點與該目標節點之間沿著各別預期路徑的每一邊緣,判定一各別相關聯代表性成本;針對該當前節點與該目標節點之間沿著該各別預期路徑之每一邊緣將每一邊緣之經判定各別相關聯代表性成本指派至各別邊緣;至少部分地基於經指派之經判定各別相關聯代表性成本自該當前節點與該目標節點之間經由該各別下一節點之該等各別預期路徑判定該各別下一節點之一最小成本路徑;以及將表示經判定最小成本路徑之一值指派至該各別下一節點。 The method of claim 27, wherein calculating a respective associated representative cost for reaching a target node from the current node via the respective next node comprises: for each expected path between the current node and the target node via the respective next node, determining a respective associated representative cost for each edge along the respective expected path between the current node and the target node; and determining a respective associated representative cost for each edge along the respective expected path between the current node and the target node. Assigning a determined respective associated representative cost of each edge to each edge of the respective expected path; determining a minimum cost path to the respective next node from the respective expected paths between the current node and the target node through the respective next node based at least in part on the assigned determined respective associated representative costs; and assigning a value representing the determined minimum cost path to the respective next node. 如請求項28之方法,其中至少部分地基於該等經指派之經判定各別相關聯代表性成本自該當前節點與該目標節點之間經由該各別下一節點之該等各別預期路徑判定該各別下一節點之一最小成本路徑包含:判定包括自該當前節點遍歷至該各別下一節點之一成本的一最小成本路徑。 The method of claim 28, wherein determining a minimum cost path to the respective next node based at least in part on the respective expected paths between the current node and the target node through the respective next node based on the respective determined associated representative costs assigned comprises: determining a minimum cost path including a cost traversed from the current node to the respective next node. 如請求項29之方法,其中針對該當前節點與該目標節點之間沿著該各別預期路徑的每一邊緣判定一各別相關聯代表性成本包含:針對當前目標與該目標節點之間沿著該各別預期路徑的每一邊緣,以及基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險。 The method of claim 29, wherein determining a respective associated representative cost for each edge between the current node and the target node along the respective expected path comprises: for each edge between the current target and the target node along the respective expected path, and evaluating a risk of a collision with the one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:鑒於由該各別下一節點與每一連續節點之間沿著該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個代理中之每一者之該非確定性行為的該等機率函數取樣。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: sampling the probability functions representing the non-deterministic behavior of each of the one or more agents in the environment, respectively, given a sequence of actions represented by each of the edges along the respective expected paths between the respective next node and each successive node. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:鑒於由該各別下一節點與每一連續節點之間沿著通向一目前節點之該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個代理中之每一者之該非確定性行為的該等機率函數取樣,該目前節點為在碰撞之該風險之該評估期間到達之沿著該各別預期路徑的一另一節點。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: sampling the probability functions representing the non-deterministic behavior of each of the one or more agents in the environment, respectively, given a sequence of actions represented by each of the edges between the respective next node and each successive node along the respective expected path to a current node, the current node being another node along the respective expected path reached during the evaluation of the risk of collision. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一 或多個代理發生一碰撞的一風險包含:對於該等代理中之每一者,對分別表示各別代理之該非確定性行為的各別機率函數重複取樣。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions that respectively represent the non-deterministic behavior of each of the one or more agents in the environment comprises: for each of the agents, repeatedly sampling a respective probability function that respectively represents the non-deterministic behavior of the respective agent. 如請求項33之方法,其中該對分別表示該各別代理之該非確定性行為的該各別機率函數重複取樣包括對該各別機率函數重複取樣達多次反覆,該等反覆之一總數目至少部分地基於在必須發生該命令之前的一可用時間量。 The method of claim 33, wherein the repetitive sampling of the respective probability functions representing the non-deterministic behavior of the respective agents comprises repetitive sampling of the respective probability functions for a plurality of iterations, a total number of the iterations being based at least in part on an amount of time available before the command must occur. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:對於該等代理中之每一者,鑒於由該各別下一節點與每一連續節點之間沿著該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個代理中之每一者之該非確定性行為的該等機率函數重複取樣。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: for each of the agents, given a sequence of actions represented by each of the edges along the respective expected paths between the respective next node and each successive node, repeatedly sampling the probability functions representing the non-deterministic behavior of each of the one or more agents in the environment. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:對於該等代理中之每一者,鑒於由該各別下一節點與每一連續節點之間沿著通向一目前節點之該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個代理中之每一者之該非確定性行為的該等機率函數重複取樣,該目前節點為在碰撞之該風險之該評估期間到達之沿著該各別預期路徑的一另一節點。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: for each of the agents, given a sequence of actions represented by each of the edges between the respective next node and each successive node along the respective expected path to a current node, repeatedly sampling the probability functions representing the non-deterministic behavior of each of the one or more agents in the environment, the current node being another node along the respective expected path reached during the evaluation of the risk of collision. 如請求項30之方法,其中碰撞之該風險之該評估涉及對該等各別預期路徑之遍歷的模擬。 The method of claim 30, wherein the assessment of the risk of collision involves simulation of traversal of the respective expected paths. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:至少基於該環境中之該一或多個代理中之每一者的一經機率性判定之各別軌跡經由專用風險評估硬體評估碰撞之一風險,其中該等各別相關聯代表性成本至少部分地基於碰撞之經評估風險。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: evaluating a risk of collision via dedicated risk evaluation hardware based at least on a probabilistically determined respective trajectory of each of the one or more agents in the environment, wherein the respective associated representative costs are based at least in part on the evaluated risk of collision. 如請求項30之方法,其中基於分別表示該環境中之一或多個代理中之每一者之該非確定性行為的一或多個機率函數評估與該環境中之該一或多個代理發生一碰撞的一風險包含:基於分別表示該環境中之一或多個代理中之至少一次要者之該非確定性行為的一或多個機率函數評估與該環境中之該等代理發生一碰撞的一風險,該等代理中之主要者為對其執行運動規劃之一代理。 The method of claim 30, wherein evaluating a risk of a collision with one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more agents in the environment comprises: evaluating a risk of a collision with the one or more agents in the environment based on one or more probability functions representing the non-deterministic behavior of at least one of the one or more agents in the environment, the primary of the agents being an agent for which motion planning is performed. 如請求項27之方法,其進一步包含:在計算自該當前節點經由該各別下一節點到達一目標節點之一各別相關聯代表性成本之前初始化該第一圖。 The method of claim 27 further comprises: initializing the first graph before calculating a respective associated representative cost from the current node to a target node via the respective next node. 如請求項40之方法,其中初始化該第一圖包含:執行一靜態碰撞評估以識別與該環境中之一或多個靜態物件的任何碰撞;對於該第一圖中之每一節點,計算自各別節點到達一目標節點之一各別成本;以及對於該第一圖中之每一節點,使到達一目標節點之各別經計算成本與該各別節點在邏輯上相關聯。 The method of claim 40, wherein initializing the first graph comprises: performing a static collision evaluation to identify any collisions with one or more static objects in the environment; for each node in the first graph, calculating a respective cost to reach a target node from the respective node; and for each node in the first graph, logically associating the respective calculated cost to reach a target node with the respective node. 一種用以執行運動規劃的基於處理器之系統,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖,該系統包含:至少一個處理器;以及 至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令或資料中之至少一者,該等處理器可執行指令或資料在由該至少一個處理器執行時使該至少一個處理器進行以下操作:對於相對於一第一圖中對其執行該運動規劃之一主要代理之一當前節點的每一可用下一節點,計算經由各別下一節點自該當前節點到達一目標節點之一各別相關聯代表性成本,該各別相關聯代表性成本鑒於基於一環境中之一或多個其他代理中之每一者之一非確定性行為對該主要代理與該環境中之該一或多個其他代理碰撞之一機率進行的一評估反映與經由該各別下一節點自該當前節點至該目標節點之每一可用路徑相關聯的一各別代表性成本,該非確定性行為包含隨時間改變一位置、一速度、一軌跡、一行進路徑或一形狀中之任一或多者;基於每一可用下一節點之經計算各別相關聯代表性成本選擇一下一節點;以及至少部分地基於選定下一節點命令一移動。 A processor-based system for performing motion planning employing a graph having nodes representing states and edges representing transitions between states, the system comprising: at least one processor; and at least one non-transitory processor-readable medium storing at least one of processor-executable instructions or data that, when executed by the at least one processor, cause the at least one processor to perform the following operations: for each available next node relative to a current node of a primary agent in a first graph for which the motion planning is performed, calculate a respective associated representative of a path from the current node to a target node via the respective next node; The respective associated representative costs reflect a respective representative cost associated with each available path from the current node to the target node via the respective next node in view of an evaluation of a probability of the primary agent colliding with the one or more other agents in the environment based on a non-deterministic behavior of each of the one or more other agents in the environment, the non-deterministic behavior including changing any one or more of a position, a velocity, a trajectory, a path of travel, or a shape over time; selecting a next node based on the calculated respective associated representative costs of each available next node; and commanding a move based at least in part on the selected next node. 如請求項42之基於處理器之系統,其中為了計算經由該各別下一節點自該當前節點到達一目標節點之一各別相關聯代表性成本,該至少一個處理器進行以下操作:對於至少包含該當前節點與該目標節點之間沿著任何預期路徑之該等邊緣的一組該等邊緣,判定該等邊緣中之每一者之一各別相關聯代表性成本;將每一邊緣之經判定各別相關聯代表性成本指派至該組邊緣中之各別邊緣;至少部分地基於經指派之經判定各別相關聯代表性成本自該當前節點與該目標節點之間經由該各別下一節點之各別預期路徑判定該各別下一節點之一最小成本路徑;以及 將表示經判定最小成本路徑之一值指派至該各別下一節點。 A processor-based system as in claim 42, wherein in order to calculate a respective associated representative cost of reaching a target node from the current node via the respective next node, the at least one processor performs the following operations: for a set of edges including at least the edges along any expected path between the current node and the target node, determining a respective associated representative cost for each of the edges ; assigning the determined respective associated representative costs of each edge to the respective edges in the set of edges; determining a minimum cost path to the respective next node based at least in part on the respective expected paths between the current node and the target node through the respective next node based at least in part on the assigned determined respective associated representative costs; and assigning a value representing the determined minimum cost path to the respective next node. 如請求項43之系統,其中為了至少部分地基於該等經指派之經判定各別相關聯代表性成本自該當前節點與該目標節點之間經由該各別下一節點之該等各別預期路徑判定該各別下一節點之一最小成本路徑,該至少一個處理器判定包括自該當前節點遍歷至該各別下一節點之一成本的一最小成本路徑。 The system of claim 43, wherein in order to determine a minimum cost path to the respective next node based at least in part on the respective expected paths between the current node and the target node through the respective next node based on the respective determined associated representative costs assigned, the at least one processor determines a minimum cost path including a cost to traverse from the current node to the respective next node. 如請求項43之系統,其中為了判定該組邊緣中之每一邊緣之一各別相關聯代表性成本,該至少一個處理器基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞之一風險。 The system of claim 43, wherein to determine a respective representative cost associated with each edge in the set of edges, the at least one processor estimates a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more other agents in the environment. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:鑒於由該各別下一節點與每一連續節點之間沿著該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的該等機率函數取樣。 The system of claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: given a series of actions represented by each of the edges along the respective expected paths between the respective next node and each successive node, the probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment are sampled. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:鑒於由該各別下一節點與每一連續節點之間沿著通向一目前節點之該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的該等機率函數取樣,該目前 節點為在碰撞之該風險之該評估期間到達之沿著該各別預期路徑的一另一節點。 The system of claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: given a series of actions represented by each of the edges between the respective next node and each successive node along the respective expected path leading to a current node, the probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment are sampled, the current node being another node along the respective expected path reached during the evaluation of the risk of collision. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:對於該一或多個其他代理中之每一者,對分別表示各別代理之該非確定性行為的各別機率函數重複取樣。 A system as claimed in claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: for each of the one or more other agents, repeatedly sampling a respective probability function respectively representing the non-deterministic behavior of the respective agent. 如請求項48之系統,其中為了對分別表示該各別代理之該非確定性行為的該等各別機率函數重複取樣,該至少一個處理器對該各別機率函數重複取樣達多次反覆,該等反覆之一總數目至少部分地基於在必須發生該命令之前的一可用時間量。 The system of claim 48, wherein to repeatedly sample the respective probability functions representing the non-deterministic behavior of the respective agents, the at least one processor repeatedly samples the respective probability functions for a plurality of iterations, a total number of the iterations being based at least in part on an amount of time available before the command must occur. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:對於該一或多個其他代理中之每一者,鑒於由該各別下一節點與每一連續節點之間沿著該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的該等機率函數重複取樣。 The system of claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: for each of the one or more other agents, given a series of actions represented by each of the edges along the respective expected paths between the respective next node and each successive node, the probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment are repeatedly sampled. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作: 對於該一或多個其他代理中之每一者,鑒於由該各別下一節點與每一連續節點之間沿著通向一目前節點之該各別預期路徑的每一邊緣中之各別者表示的一系列動作,對分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的該等機率函數重複取樣,該目前節點為在碰撞之該風險之該評估期間到達之沿著該各別預期路徑的一另一節點。 A system as claimed in claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: For each of the one or more other agents, given a series of actions represented by each edge between the respective next node and each successive node along the respective expected path leading to a current node, the probability functions respectively representing the non-deterministic behavior of each of the one or more other agents in the environment are repeatedly sampled, the current node being another node along the respective expected path reached during the evaluation of the risk of collision. 如請求項45之系統,其中碰撞之該風險之該評估涉及對該等各別預期路徑之遍歷的模擬。 The system of claim 45, wherein the assessment of the risk of collision involves simulation of traversal of the respective expected paths. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:至少基於該環境中之該一或多個其他代理中之每一者的一經機率性判定之各別軌跡經由專用風險評估硬體評估碰撞之一風險,其中該等各別相關聯代表性成本至少部分地基於碰撞之經評估風險。 The system of claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: evaluating a risk of collision via dedicated risk evaluation hardware based at least on a probabilistically determined respective trajectory of each of the one or more other agents in the environment, wherein the respective associated representative costs are based at least in part on the evaluated risk of collision. 如請求項45之系統,其中為了基於分別表示該環境中之該一或多個其他代理中之每一者之該非確定性行為的一或多個機率函數評估該主要代理與該環境中之該一或多個其他代理發生一碰撞的一風險,該至少一個處理器進行以下操作:至少基於該環境中之該一或多個其他代理中之每一者的一經機率性判定之各別軌跡經由專用風險評估硬體評估碰撞之一風險,其中該等各別相關聯代表性成本至少部分地基於碰撞之經評估成本。 The system of claim 45, wherein in order to evaluate a risk of a collision between the primary agent and the one or more other agents in the environment based on one or more probability functions representing the non-deterministic behavior of each of the one or more other agents in the environment, the at least one processor performs the following operations: evaluating a risk of collision via dedicated risk evaluation hardware based at least on a probabilistically determined respective trajectory of each of the one or more other agents in the environment, wherein the respective associated representative costs are based at least in part on the evaluated cost of the collision. 如請求項42之系統,其中該至少一個處理器進一步進行以下操作:在計算自該當前節點經由該各別下一節點到達一目標節點之一各別相關聯 代表性成本之前初始化該第一圖。 A system as claimed in claim 42, wherein the at least one processor further performs the following operations: initializing the first graph before calculating a respective associated representative cost from the current node to a target node via the respective next node. 如請求項55之系統,其中為了初始化該第一圖,該至少一個處理器進行以下操作:執行一靜態碰撞評估以識別該主要代理與該環境中之一或多個靜態物件的任何碰撞;對於該第一圖中之每一節點,針對各別節點計算到達一目標節點之一各別成本;以及對於該第一圖中之每一節點,使到達一目標節點之各別經計算成本與該各別節點在邏輯上相關聯。 The system of claim 55, wherein to initialize the first graph, the at least one processor performs the following operations: performing a static collision evaluation to identify any collisions of the primary agent with one or more static objects in the environment; for each node in the first graph, calculating a respective cost for reaching a target node for each respective node; and for each node in the first graph, logically associating the respective calculated cost for reaching a target node with the respective node. 一種在一運動規劃系統中操作之方法,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖以產生一主要代理之一運動規劃,該方法包含:將一步長計數器(T)初始化為一開始值(T=0);初始化一第一圖;執行一模擬,該模擬包含:在該第一圖中之一當前節點(N)處而不在該第一圖中之一目標節點(G)處開始:對於一或多次取樣反覆,針對一環境中之一或多個次要代理中之每一次要代理,自一機率函數對在該步長計數器自該步長計數器之該開始值至一當前值遞增(T+1,亦即,下一步長)時各別次要代理將採取之一動作取樣,該機率函數表示由該主要代理採取及由該一或多個次要代理採取的動作;判定該第一圖之與下一動作碰撞的任何邊緣;對於與該下一動作碰撞之任何邊緣,將一各別成本函數應用於該 邊緣以反映一碰撞條件之一存在;對於直接連接至該當前節點之一組節點之在該第一圖中之每一節點,計算表示一最小成本路徑之一值,該最小成本路徑自該當前節點至該目標節點經由一或多個預期路徑遍歷一或多個路徑,該一或多個預期路徑係經由直接連接至該當前節點之各別節點;判定是否執行另一取樣反覆;回應於判定為不執行另一取樣反覆,自直接連接至該當前節點之該組節點選擇該組節點中之該等節點中具有一最小成本的該節點;使該步長計數器遞增(T=T+1);判定模擬是否在該目標節點處,回應於該模擬不在該目標節點處之一判定,將選定節點設定為一新當前節點,而不命令該主要代理,且繼續模擬;回應於該模擬在該目標節點處之一判定,自直接連接至該當前節點之該組節點選擇具有一最小成本之一節點;以及提供選定節點之一識別,該選定節點具有該最小成本以命令該主要代理之移動。 A method operating in a motion planning system, which uses a graph having nodes representing states and edges representing transitions between states to generate a motion plan for a primary agent, the method comprising: initializing a step counter (T) to a starting value (T=0); initializing a first graph; performing a simulation, the simulation comprising: starting at a current node (N) in the first graph instead of a target node (G) in the first graph: for one or more sampling iterations, for one or more secondary agents in an environment; for each secondary agent in the first graph, sampling from a probability function an action that the respective secondary agent will take when the step counter increments from the starting value of the step counter to a current value (T+1, i.e., the next step), the probability function representing the action taken by the primary agent and by the one or more secondary agents; determining any edge of the first graph that collides with the next action; for any edge that collides with the next action, applying a respective cost function to the edge to reflect the existence of a collision condition; for straight for each node in the first graph of a set of nodes connected to the current node, calculating a value representing a minimum cost path from the current node to the target node via one or more expected paths traversing one or more paths via respective nodes directly connected to the current node; determining whether to perform another sampling iteration; and in response to determining not to perform another sampling iteration, selecting from the set of nodes directly connected to the current node a node having a minimum cost. the node of the present invention; incrementing the step counter (T=T+1); determining whether the simulation is at the target node, in response to a determination that the simulation is not at the target node, setting the selected node as a new current node without commanding the primary agent and continuing the simulation; in response to a determination that the simulation is at the target node, selecting a node having a minimum cost from the set of nodes directly connected to the current node; and providing an identification of the selected node having the minimum cost to command the movement of the primary agent. 如請求項57之方法,其中自表示由該一或多個次要代理及該主要代理採取之動作的一機率函數對在該步長計數器自該步長計數器之該開始值至一當前值遞增時該各別次要代理將採取之一動作取樣包含:鑒於由該主要代理採取之由直接連接至該當前節點之該各別節點與每一連續節點之間沿著通向該目標節點之一路線的每一邊緣中之各別者表示的一系列該等動作,對表示該環境中之該一或多個次要代理中之每一者之一非確定性行為的該機率函數取 樣。 The method of claim 57, wherein sampling an action to be taken by the respective secondary agent as the step counter increments from the starting value of the step counter to a current value from a probability function representing actions taken by the one or more secondary agents and the primary agent comprises: sampling the probability function representing a non-deterministic behavior of each of the one or more secondary agents in the environment in view of a series of such actions represented by each of the edges between the respective node directly connected to the current node and each successive node along a path to the target node taken by the primary agent. 如請求項57之方法,其中鑒於由每一邊緣中之各別者表示的一系列動作對分別表示該環境中之該一或多個代理中之每一者之該非確定性行為的該等機率函數取樣包含:對於該等代理中之每一者,對分別表示各別代理之該非確定性行為的各別機率函數重複取樣。 The method of claim 57, wherein sampling the probability functions representing the non-deterministic behavior of each of the one or more agents in the environment in view of the sequence of actions represented by each of the edges comprises: for each of the agents, repeatedly sampling the respective probability functions representing the non-deterministic behavior of the respective agents. 如請求項57之方法,其中該主要代理為一主要自主車輛,且該方法進一步包含:接收表示該主要自主車輛操作之該環境的感知資訊;以及由該主要自主車輛實施一所得運動規劃。 The method of claim 57, wherein the primary agent is a primary autonomous vehicle, and the method further comprises: receiving sensory information representing the environment in which the primary autonomous vehicle operates; and implementing a resulting motion plan by the primary autonomous vehicle. 如請求項60之方法,其中接收感知資訊包括接收表示該環境中之至少一個動態物件之一位置及一軌跡的感知資訊。 The method of claim 60, wherein receiving sensory information includes receiving sensory information representing a position and a trajectory of at least one dynamic object in the environment. 如請求項60之方法,其中接收感知資訊包括在一運動規劃器處接收感知資訊,該感知資訊係經由該主要自主車輛所攜載之一或多個感測器收集且表示該環境中之至少一個其他車輛的一位置或一軌跡。 The method of claim 60, wherein receiving sensory information includes receiving sensory information at a motion planner, the sensory information being collected via one or more sensors carried by the primary autonomous vehicle and representing a position or a trajectory of at least one other vehicle in the environment. 如請求項62之方法,其進一步包含:由一物件偵測器自經由該一或多個感測器收集之該感知資訊識別該環境中之至少一第一動態物件。 The method of claim 62 further comprises: identifying at least one first dynamic object in the environment by an object detector from the sensing information collected by the one or more sensors. 一種運動規劃系統,其採用具有表示狀態之節點及表示狀態之間的轉變之邊緣的圖以產生一主要代理之一運動規劃,該系統包含:至少一個處理器;至少一個非暫時性處理器可讀媒體,其儲存處理器可執行指令,該等處理器可執行指令在由該至少一個處理器執行時使該至少一個處理器進行以下操作將一步長計數器初始化為一開始值;初始化一第一圖; 執行一模擬,該模擬包含:在該第一圖中之一當前節點處而不在該第一圖中之一目標節點處開始:對於一或多次取樣反覆,針對一環境中之一或多個次要代理中之每一次要代理,自一機率函數對在該步長計數器自該步長計數器之該開始值至一當前值遞增時各別次要代理將採取之一動作取樣,該機率函數表示由該主要代理採取及由該一或多個次要代理採取的動作;判定該第一圖之與下一動作碰撞的任何邊緣;對於與該下一動作碰撞之任何邊緣,將一各別成本函數應用於該邊緣以反映一碰撞條件之一存在;對於直接連接至該當前節點之一組節點之在該第一圖中之每一節點,計算表示一最小成本路徑之一值,該最小成本路徑自該當前節點至該目標節點經由一或多個預期路徑遍歷一或多個路徑,該一或多個預期路徑係經由直接連接至該當前節點之各別節點;判定是否執行另一取樣反覆;回應於不執行另一取樣反覆之一判定,自直接連接至該當前節點之該組節點選擇該組節點中之該等節點中具有一最小成本的該節點;使該步長計數器遞增;判定模擬是否在該目標節點處,回應於該模擬不在該目標節點處之一判定,將選定節點設定為一新當前節點,而不命令該主要代理,且繼續該模擬;回應於該模擬在該目標節點處之一判定,自直接連接至該當前節點之該組節點選擇具有一最小成本之一節點; 以及提供選定節點之一識別,該選定節點具有該最小成本以命令該主要代理之移動。 A motion planning system that uses a graph having nodes representing states and edges representing transitions between states to generate a motion plan for a primary agent, the system comprising: at least one processor; at least one non-transitory processor-readable medium storing processor-executable instructions that, when executed by the at least one processor, cause the at least one processor to perform the following operations: initialize a step counter to a starting value; initialize a first graph; and execute a simulation, the simulation comprising: at a current node in the first graph; Starting at a target node in the first graph but not at the target node in the first graph: for one or more sampling iterations, for each of one or more secondary agents in an environment, sampling from a probability function an action that the respective secondary agent will take when the step counter increases from the starting value of the step counter to a current value, the probability function representing actions taken by the primary agent and by the one or more secondary agents; determining any edges of the first graph that collide with the next action; for any edges that collide with the next action, applying a respective cost function for the edge to reflect the existence of a collision condition; for each node in the first graph of a set of nodes directly connected to the current node, calculating a value representing a minimum cost path, the minimum cost path traversing one or more paths from the current node to the target node via one or more expected paths, the one or more expected paths being through respective nodes directly connected to the current node; determining whether to perform another sampling iteration; in response to a determination not to perform another sampling iteration, selecting the set of nodes from the set of nodes directly connected to the current node; The method includes: selecting the node with a minimum cost from the nodes in the target node; incrementing the step counter; determining whether the simulation is at the target node, setting the selected node as a new current node without commanding the primary agent and continuing the simulation in response to a determination that the simulation is at the target node; selecting a node with a minimum cost from the set of nodes directly connected to the current node; and providing an identification of the selected node, the selected node having the minimum cost to command movement of the primary agent. 如請求項64之系統,其中為了自一機率函數對在該步長計數器遞增時該各別次要代理將採取之一動作取樣,該至少一個處理器鑒於由直接連接至該當前節點之該各別節點與每一連續節點之間沿著通向該目標節點之一路線的每一邊緣中之各別者表示的一系列該等動作,對表示該環境中之該一或多個次要代理中之每一者之該非確定性行為的該機率函數取樣。 The system of claim 64, wherein in order to sample from a probability function an action that the respective secondary agent will take when the step counter is incremented, the at least one processor samples the probability function representing the non-deterministic behavior of each of the one or more secondary agents in the environment in view of a series of such actions represented by a respective one of each edge between the respective node directly connected to the current node and each successive node along a path to the target node. 如請求項64之系統,其中為了鑒於由每一邊緣中之各別者表示的一系列動作對分別表示該環境中之該一或多個次要代理中之每一者之該非確定性行為的該等機率函數取樣,該至少一個處理器進行以下操作:對於該等次要代理中之每一者,對分別表示各別代理之該非確定性行為的各別機率函數重複取樣。A system as in claim 64, wherein in order to sample the probability functions representing the non-deterministic behavior of each of the one or more secondary agents in the environment in view of the series of actions represented by each of the edges, the at least one processor performs the following operations: for each of the secondary agents, repeatedly sample the respective probability functions representing the non-deterministic behavior of the respective agent.
TW108144760A 2019-12-06 2019-12-06 Apparatus, method and article to facilitate motion planning in an environment having dynamic objects TWI875723B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108144760A TWI875723B (en) 2019-12-06 2019-12-06 Apparatus, method and article to facilitate motion planning in an environment having dynamic objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108144760A TWI875723B (en) 2019-12-06 2019-12-06 Apparatus, method and article to facilitate motion planning in an environment having dynamic objects

Publications (2)

Publication Number Publication Date
TW202123031A TW202123031A (en) 2021-06-16
TWI875723B true TWI875723B (en) 2025-03-11

Family

ID=77516841

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108144760A TWI875723B (en) 2019-12-06 2019-12-06 Apparatus, method and article to facilitate motion planning in an environment having dynamic objects

Country Status (1)

Country Link
TW (1) TWI875723B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI849522B (en) * 2022-10-07 2024-07-21 財團法人資訊工業策進會 Ship navigation display system and ship navigation display method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050216181A1 (en) * 2004-03-26 2005-09-29 Estkowski Regina I System and method for adaptive path planning
US20060235610A1 (en) * 2005-04-14 2006-10-19 Honeywell International Inc. Map-based trajectory generation
US20140249741A1 (en) * 2012-12-19 2014-09-04 Elwha LLC, a limited liability corporation of the State of Delaware Collision targeting for hazard handling
TWI588071B (en) * 2011-03-14 2017-06-21 辛波提克有限責任公司 Replenishment and order fulfillment system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050216181A1 (en) * 2004-03-26 2005-09-29 Estkowski Regina I System and method for adaptive path planning
US20060235610A1 (en) * 2005-04-14 2006-10-19 Honeywell International Inc. Map-based trajectory generation
TWI588071B (en) * 2011-03-14 2017-06-21 辛波提克有限責任公司 Replenishment and order fulfillment system
US20140249741A1 (en) * 2012-12-19 2014-09-04 Elwha LLC, a limited liability corporation of the State of Delaware Collision targeting for hazard handling

Also Published As

Publication number Publication date
TW202123031A (en) 2021-06-16

Similar Documents

Publication Publication Date Title
JP7394853B2 (en) Devices, methods and articles that facilitate motor planning in environments with moving objects
US11970161B2 (en) Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
JP7479064B2 (en) Apparatus, methods and articles for facilitating motion planning in environments with dynamic obstacles - Patents.com
US12090668B2 (en) Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same
JP6598090B2 (en) Storage medium, method for planning robot operation, hardware for planning robot operation, and robot
IL282278B1 (en) Design of an autonomous vehicle
Pimentel et al. Information-driven rapidly-exploring random tree for efficient environment exploration
CN119217375A (en) Robot dynamic obstacle avoidance trajectory planning method, system, device and storage medium
Liu et al. Deep-Reinforcement-Learning-Based Driving Policy at Intersections Utilizing Lane Graph Networks
TWI875723B (en) Apparatus, method and article to facilitate motion planning in an environment having dynamic objects
CN119604824B (en) Robust motion planning and/or control for a multi-robot environment
TW202406697A (en) Motion planning and control for robots in shared workspace employing look ahead planning
HK40050393A (en) Apparatus, method and article to facilitate motion planning in an environment having dynamic objects
Liu et al. Toward Efficient Self-Motion-Based Memory Representation for Visuomotor Navigation of Embodied Robot
Lee et al. Mobile Robot Navigation Using Deep Reinforcement Learning. Processes 2022, 10, 2748
Ryou et al. Real-Time Sampling-based Online Planning for Drone Interception
Akmandor Enhancing Motion Planning Efficiency in Dynamic Environments Through Advanced Algorithms for Mobile Robots
Kalita et al. ROBOT NAVIGATION IN INDOOR ENVIRONMENT THROUGH SELF LEARNING
HK40072789B (en) Apparatus and method to facilitate motion planning in environments having dynamic obstacles
HK40072789A (en) Apparatus and method to facilitate motion planning in environments having dynamic obstacles
HK40032685B (en) Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same