Method and apparatus for improving sampling-based graph generation for online robotic path planning
The method addresses high-dimensional path planning challenges by generating partial robot poses with constrained sampling based on reference poses, achieving efficient and smooth robot motion paths.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-14
- Publication Date
- 2026-03-06
AI Technical Summary
High-dimensional configuration spaces for robots with many degrees of freedom (DoF) lead to significant computational burdens and inefficiencies in online path planning, often resulting in poor-quality motion paths.
A graph generation method that reduces computational complexity by performing unconstrained sampling for partial robot poses, using a distance function to determine the remaining configuration parameters based on reference robot poses, thereby generating high-quality paths.
This approach significantly reduces computational burden while ensuring high-quality robot motion paths, enabling efficient online path planning with reduced graph size and improved motion smoothness.
Smart Images

Figure 2026507859000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to robotics, and more particularly to generating graphs for use in online path planning. [Background technology]
[0002] The workspace of a robot is the region of space that the robot can reach and operate within, and is determined by the physical dimensions of the robot, the number of joints or other moving parts it has, and the range of motion that each moving part supports. For example, for a robot with three revolute joints in a two-dimensional plane, the workspace is a torus. For a robot with three revolute joints in three-dimensional space, the workspace is a Euclidean space (R 3 ) is a subset of
[0003] The term "pose" or "robot pose" refers to the combination of a specific position and orientation of all links of a robot in its environment. Here, "link" generally refers to an articulated member or part that makes up the overall body of the robot. In a scenario where the robot carries a tool, each robot pose defines a specific location and orientation of the Tool Center Point (TCP) in the workspace. In the example of a robot arm with three revolute joints mentioned above, any specific combination of values for the three revolute joints defines the corresponding robot pose.
[0004] Of course, a particular robot may have additional revolute joints, any number of joints, or a mixture of different types of joints. Examples of joint types include revolute joints, prismatic joints, sliding joints, spherical joints, and cylindrical joints. Each independently controllable joint or other moving part of a robot represents a degree of freedom. Robots with many degrees of freedom (DoF) are capable of complex and highly flexible movements within their workspace, making them suitable for a wide range of applications.
[0005] A typical "application" executed by a computer system controlling a robot requires moving the robot within its workspace to perform one or more tasks. To move the robot within the workspace, the controller must determine a path of movement, such as between a starting robot pose and an ending robot pose. "Online path planning" refers to the process of identifying feasible paths between robot poses, including static and dynamic obstacle avoidance, in a typical operational scenario. A "path" in this context can be understood as a series of consecutive robot poses commanded to the robot to transition from one specific position and orientation within the workspace to another. A "feasible" path is one that is collision-free and within the robot's self-interference and other mechanical constraints.
[0006] Online path planning for robots with high DoF poses significant processing challenges. The dimensions of the robot's "configuration space" correspond to the robot's DoF. Here, "configuration space" or "C-space" is a mathematical representation of all possible configurations of the robot, and the term "configuration" refers to the set of specific values for the complete set of parameters that must be set to fix the robot in a specific robot pose within its environment. Returning to the example of three revolute joints, C-space is the collection of all possible combinations of the robot arm's three joint angles. Each possible combination can be represented as a corresponding "configuration vector" with three vector elements, where the value of each vector element specifies the joint angle for each of the three joints. Of course, the configuration vector for a robot with high DoF will have many vector elements, each corresponding to one of the multiple parameters that must be specified to fix a specific robot pose.
[0007] Rather than considering all possible paths for moving from one robot pose to another, the controller uses a graph to plan paths along edges in the graph, thereby reducing the path search space to the paths defined by the graph. However, for this graph-based approach to work in the sense of providing smooth, high-quality movement with sufficient planning flexibility for dynamic path planning, the graph must contain a sufficiently large and well-distributed set of nodes. That is, the graph must provide a sufficient number of paths to choose from for the robot movements required to perform the tasks specified by the application.
[0008] A variety of approaches exist for graph generation, including a range of sampling-based approaches. Each "sample" is a point in the robot's workspace; that is, each sample corresponds to a particular robot pose. Examples of variations within the family of sampling-based approaches include Rapidly-exploring Random Trees (RRT) and roadmap-based approaches. Even within RRT and roadmap-based implementations, there are many sub-variations.
[0009] Regardless of the specific approach used for graph generation, graph solutions do not eliminate the problem of high dimensionality and the corresponding computational burden. At high DoFs, the computational burden remains significant, and the required processing becomes impractical or grossly inefficient. Meanwhile, attempts to shorten or otherwise reduce the computational complexity of graph generation run the risk of producing graphs that result in poor-quality motion and inefficient path determination during online path planning. Summary of the Invention
[0010] The disclosed techniques for graph generation for online path planning offer multiple advantages, including reducing the computational burden of graph generation while providing high-quality behavior during online robot operation. Achieving these conflicting goals involves reducing the dimensionality of the graph generation problem by performing unconstrained sampling to define partial robot poses that set values for fewer than all of the robot's configuration parameters. The remaining configuration parameters for each sample are determined in a constrained manner. This determination depends on a distance function that relates the partial robot poses to one or more "reference robot poses," which are provided as inputs to the graph generation and are associated with the task the robot is to perform. The reference robot poses may be determined automatically based on a computer analysis of the robot application or may be user-entered values.
[0011] One embodiment includes a method for generating a graph for use by an online path planner in controlling the movement of a robot within an environment. The method includes performing a sampling procedure that includes unconstrained selection of partial robot poses for the robot within the environment, such that the sampling procedure operates in a dimension less than the robot's degrees of freedom (DoF). Each partial robot pose specifies values for fewer than all configuration parameters required to define a complete pose of the robot within the environment, and the method includes transforming each partial robot pose to a corresponding complete pose by determining, for each partial robot pose, values of configuration parameters not considered in the partial robot pose according to a distance function that relates the partial robot pose to one or more reference robot poses. The method further includes taking the complete poses as nodes of a graph and determining edges between each pair of nodes. Each edge is a feasible path between a particular pair of nodes.
[0012] Another embodiment includes a method for generating a graph for use in online path planning for a robot. The graph is a data structure including a collection of nodes and edges. Each node represents a respective robot pose. Each edge is a feasible path between each pair of nodes. The method includes receiving data specifying a set of two or more reference robot poses associated with performing a task by the robot, and generating each node as a corresponding configuration vector including multiple vector elements. Each vector element is a value of a corresponding one of multiple configuration parameters representing degrees of freedom (DoF) of the robot.
[0013] Generating each node includes (i) setting a value for each of one or more vector elements in a first subset of vector elements independently of a set of two or more reference robot poses, the first subset defining partial robot poses, and (ii) setting a value for each of one or more vector elements in a second disjoint subset of vector elements according to a distance function relating the partial robot poses to the one or more reference robot poses. The method further includes determining edges according to path feasibility between each pair of nodes and storing the graph on a computer-readable medium for use by a computer controller of the robot in performing online path planning.
[0014] A related embodiment includes a computer system for generating a graph for use in online path planning for a robot. The graph includes a collection of nodes and edges. Each node is a respective robot pose in a sampling reference frame. Each edge is a feasible path between each pair of nodes. The computer system includes an interface circuit and a processing circuit configured to receive data identifying a set of two or more reference robot poses associated with task performance by the robot.
[0015] The processing circuitry is configured to generate each node as a corresponding configuration vector including a plurality of vector elements. Each vector element is a value of a corresponding one of a plurality of configuration parameters representing degrees of freedom (DoF) of the robot. According to the configuration, the processing circuitry generates each node by: (i) setting a value for each of one or more vector elements in a first subset of vector elements independently of a set of two or more reference robot poses, the first subset defining partial robot poses; (ii) setting a value for each of one or more vector elements in a second disjoint subset of vector elements according to a distance function relating the partial robot pose to the one or more reference robot poses; and (iii) determining edges according to the feasibility of paths between each pair of nodes. The processing circuitry is further configured to store the graph on a computer-readable medium for use by a computer controller of the robot in performing online path planning.
[0016] Of course, the present invention is not limited to the above features and advantages. Those skilled in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings. [Brief explanation of the drawings]
[0017] [Figure 1] FIG. 1 is a diagram of an example robot. [Figure 2] FIG. 10 is a diagram of another example robot, showing the change in posture of the robot from time A to time B. [Figure 3] FIG. 1 is a block diagram of a computer system configured to generate graphs for use in online route planning, according to one embodiment. [Figure 4] FIG. 1 is an example graph for use in online route planning. [Figure 5] FIG. 1 is a diagram of a set of example samples (nodes) and reference robot poses used in a partially constrained graph generation approach, according to one embodiment. [Figure 6]FIG. 4 is a block diagram of a detailed example of the computer system introduced in FIG. 3. [Figure 7] FIG. 4 is a block diagram of a detailed example of the computer system introduced in FIG. 3. [Figure 8] FIG. 1 is a logic flow diagram illustrating a method for generating a graph using partial constraints, according to one embodiment. [Figure 9] FIG. 1 is a logic flow diagram illustrating a method for generating a graph using partial constraints, according to one embodiment. [Figure 10] FIG. 1 is a logic flow diagram illustrating a method for generating a graph using partial constraints, according to one embodiment. [Figure 11] FIG. 2 is a block diagram of a functional module or processing unit for generating a graph using partial constraints, according to one embodiment. [Figure 12] FIG. 10 is a diagram of steps or operations for performing sampling for graph generation with partial constraints applied to the sampling, according to one embodiment. [Figure 13] FIG. 1 is a block diagram of a robot illustrating wrist center location in the context of using partial constraints to determine graph nodes, according to one embodiment. [Figure 14] FIG. 1 is a diagram of a robot in an example workspace illustrating the use of start and target tool center point (TCP) orientations to determine partial constraints, according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0018] FIG. 1 shows an example robot 10 having a base 12 coupled to a first arm 14 via a first revolute joint 16. The robot 10 has a first axis designated J1. A second revolute joint 18 allows the first arm 14 to rotate relative to the base 12 about a second axis designated J2. A third revolute joint 20 connects the first arm 14 to a first segment 22A of a second arm, thereby allowing the first segment 22A of the second arm to rotate relative to the first arm 14 about a third axis designated J3. A fourth revolute joint 24 allows the second segment 22B of the second arm to rotate relative to the first segment 22A about a fourth axis designated J4. The two segments 22A and 22B are collectively referred to as the second arm 22.
[0019] Second arm 22 terminates in an articulated end effector or tool holder 26 that adds a fifth and sixth axis, designated J5 and J6, respectively. A fifth revolute joint 28 provides the fifth axis. A sixth revolute joint 30 allows the distal portion of end effector or tool holder 26 to rotate about the sixth axis. For generality, end effector or tool holder 26 will simply be referred to as end element 26. Elements 22B and 26, along with the moving parts J4, J5, and J6, form the wrist portion of the robot, allowing robot 10 to perform rotational movement and fine positioning of end element 26 and any tool held therein, while the moving parts J1, J2, and J3 provide coarse positioning of robot 10 within the workspace.
[0020] Any desired TCP position and orientation of the robot 10 corresponds to a point in space that has a defined relationship to the wrist center of the robot 10 and corresponds to a particular configuration of the robot 10 in its configuration space (C-space), within the mechanical constraints of the robot 10. Broadly speaking, C-space includes all possible values of the joint angles of the six joints, but is filtered or limited to only those combinations that are within the mechanical limits of the robot 10.
[0021] In one example scenario where the robot 10 has six revolute joints J1-J6, the corresponding configuration vector is expressed as C={VJ1, VJ2, VJ3, VJ4, VJ5, VJ6}, where "VJX" denotes the angle of any joint X. Thus, each unique combination of the six joint angle values represents a specific configuration of the robot 10 and a corresponding specific robot pose. That is, specifying each joint angle value defines the complete spatial position and orientation of the robot 10 within its surrounding environment or workspace, which can be understood to define a specific robot pose, also referred to as a "complete robot pose," to emphasize that values for all joints, and therefore moving parts, of the robot 10 are specified.
[0022] Different configuration vectors, i.e., different combinations of values for the entire set of joint angles, define different robot poses, each of which therefore defines a particular orientation and position of the Tool Center Point (TCP) of the tool held by the robot 10.
[0023] With each configuration vector representing a specific corresponding position and orientation of the TCP within the workspace, programming the robot to perform a specific task can be understood as determining a series of robot poses that will move the end element 26, or a tool carried by it, through the workspace of the robot 10 at the required positions and orientations. As discussed in the Background section of this specification, determining the series of robot poses required to perform a task is referred to as path planning, and even with the six degrees of freedom (DoF) possessed by the example robot 10, path planning represents a mathematically complex processing problem.
[0024] 2 illustrates another embodiment of a robot 10. That is, as used herein, the term "robot 10" is used as a general reference and not as a reference to a particular mechanical arrangement.
[0025] The robot 10 shown in FIG. 2 includes a base 32 having a first revolute joint 34 and a first arm 36 having one end fixed to a rotating portion of the base 32 by a second revolute joint 38 and the other end fixed to a second arm 40 by a third revolute joint 42. The second arm 40 includes a first segment 40A connected to a second segment 40B via a fourth revolute joint 44. A fifth revolute joint 46 connects the second segment 40B to a third arm 48. A sixth revolute joint 50 connects the distal end of the third arm 48 to a gripper 52 (as a type of terminal element 26). The robot 10 executes an application that involves picking up an object 54 from a first surface 56, such as a parts shelf, and placing the object 54 on a second surface 58, such as a work surface. Executing the application, which can be viewed as a task or a collection of subtasks, requires the robot 10 to follow a path 59 through its environment. Again, the movement of the robot 10 along the path 59 can be understood as the robot 10 moving through a series of robot poses.
[0026] The problem of planning a path 59 involves many considerations, including mechanical feasibility, such as related to self-interference limits and joint constraints of the robot 10, as well as consideration of static and dynamic obstacles and motion quality, where "motion quality" refers to smoothness and efficiency. For example, if a particular robot pose within the sequence of robot poses included in the path 59 includes abrupt or non-monotonic changes in one or more joint angles, the robot 10 may experience jerky movements, vibrations, etc.
[0027] The higher the DoF, the more challenging the path planning problem becomes. However, as discussed in the Background section, online path planning can be simplified through the use of graphs. FIG. 3 illustrates a computer system 60. The computer system 60 is programmed to instantiate and execute a graph generation function 62 that implements an advantageous technique for generating a graph 64, via an online path planning function 66 instantiated by a robot controller 68. Here, the robot controller 68 itself may be a general-purpose computer or a programmable logic controller (PLC) specifically adapted to instantiate the online path planning function 66 through program execution and to perform overall control of the robot 10. Thus, in one or more embodiments, the robot controller 68 also functions as the computer system 60. In other words, the robot controller 68 in one or more embodiments is programmed to implement the graph generation function 62. However, other embodiments include a computer separate from the robot controller 68 for graph generation.
[0028] An advantageous technique for graph generation relies on one or more reference robot poses 70. The reference robot poses 70 serve as additional inputs to the graph generation function 62. Each reference robot pose 70 is a configuration vector of the robot 10, i.e., a complete set of all parameters necessary to specify a particular pose of the robot 10 within its environment. The reference robot poses are input as coordinates in space, i.e., points in the robot's workspace, and converted to a corresponding configuration vector, or are input directly as a configuration vector in C-space. In one or more embodiments, a human operator, i.e., a user, inputs the reference robot poses 70. In one or more other embodiments, the reference robot poses 70 are derived from automated processing of the associated robot application.
[0029] The 6-DoF example in Figure 1 is non-limiting, and much higher DoFs are contemplated. The particular robot 10 described below has M DoFs (M is an integer greater than or equal to 2), typically much greater than 2, such as 7, 10, 14, etc. Having M DoFs means that there are M configuration parameters whose values must be specified to set a particular robot pose. Each configuration parameter corresponds to a moving part of the robot 10, such as a sliding link, a revolute joint, a prismatic joint, etc.
[0030] According to the above terminology, each reference robot pose 70 is defined by a configuration vector having M vector elements, each of which specifies the value of a corresponding one of M configuration parameters of the robot 10. For example, where M is equal to 7, each of the M configuration parameters is of the type of joint angle or any value appropriate for the corresponding moving part. Each configuration parameter can be specified independently, at least within the range of possible values, but a hierarchical or mechanical order is applied to them.
[0031] 1, the angle set for the first revolute joint 16 determines the region of space within which the first arm 14 moves. The angles set for the first revolute joint 16 and the second revolute joint 18 determine the region of space within which the second arm 22 moves. Thus, saying that a robot's joints, or more broadly, its moving parts, have a hierarchical, physical, or mechanical order refers to the fact that, from the first or base element of the robot to the last element, each successive moving element affects the region of space that the subsequent element can reach.
[0032] The reference robot poses 70 may be provided, for example, as a set of two or more reference robot poses associated with one or more tasks performed by the robot 10. For example, one or more of the reference robot poses 70 may be an actual robot pose used in performing the task. As a specific example, one reference robot pose 70 may be a pose corresponding to the start of a task performed by the robot, and another reference robot pose 70 may be a pose corresponding to the end of the task. However, additional or alternative reference robot poses 70 may be provided.
[0033] In broad terms, a reference robot pose 70 is "associated" with one or more tasks means that the reference robot pose 70 is a feasible pose that is at least similar to one or more robot poses used in performing the tasks. The reference robot pose 70 can be specified in two ways: (a) a discrete set of two or more points, or (b) a discrete number of contiguous waypoints. Here, the term "point" refers to a specific spatial point in the workspace reference frame or a corresponding configuration vector in C-space.
[0034] 4 shows an example graph 64 generated by computer system 60. Graph 64 includes a collection of nodes 72 interconnected by edges 74. Each node 72 represents a respective reference robot pose, and each edge 74 is a feasible path between a respective pair of nodes 72. FIG. 4 also shows a path 76 formed by online path planning function 66 using the nodes 72 / edges 74 of graph 64. However, path 76 is not part of the initial graph generation performed by graph generation function 62.
[0035] 5 shows another example collection of nodes 72 as may be generated by graph generation function 62. Here, nodes 72 are shown in perspective view to better understand them as being or representing points in the workspace of robot 10. Each point is a particular robot pose that produces a particular wrist center position and orientation within the workspace.
[0036] These points are generated through a "sampling" process, in which the graph generation function 62 generates each point (node 72) in the graph 64 as a selected (sampled) point in a sampling reference frame (workspace or C-space). Advantageously, the sampling technique disclosed herein generates the graph nodes 72 using a "partially constrained" approach, in which "unconstrained sampling" sets values for only a first subset of the robot's configuration parameters, while the values set for the remaining second subset of configuration parameters are determined on a "constrained" basis. This approach allows the initial sampling to operate at a lower dimension than the robot's full DoF, but the constraints ensure that the resulting graph 64 provides high-quality motion.
[0037] "Unconstrained sampling" means that sampling is performed without utilizing any reference robot poses 70 in the sampling reference frame, i.e., the robot's workspace or configuration space. Correspondingly, determining the values of configuration parameters not set during unconstrained sampling, depending on the reference robot poses 70, represents a constraint; as a result, each sample, i.e., the determination of the values of all configuration parameters at each point or node in the graph 64, is considered to be "partially constrained." One way to consider this technique is to consider that unconstrained sampling corresponds to defining "partial robot poses." This means that the values of one or more, but not all, configuration parameters of the robot are set in an unconstrained manner, and then each partial robot pose is "transformed" into a complete or overall robot pose depending on one or more reference robot poses 70.
[0038] 6 illustrates one embodiment of a computer system 60 configured for graph generation (i.e., having a graph generation function 62 implemented). This same circuitry may be further configured to perform online path planning and overall robot control, such as when a general-purpose microprocessor executes computer program instructions, thereby instantiating the graph generation function 62 and the online path planning function 66.
[0039] According to the details shown, computer system 60 includes a processing circuit 100. Processing circuit 100 includes or is communicatively coupled to storage 102. In one or more embodiments, storage 102 stores one or more computer programs 104 (referred to in the figures as "CP") along with one or more types of data 106. In at least one embodiment, stored data 106 includes one or more generated graphs 64.
[0040] The interface circuitry 110 of the computer system 60 communicatively couples the processing circuitry 100 to one or more external entities, systems, or devices. For example, the interface circuitry 110 includes a first transceiver circuit (shown in the figures as a transmitter (TX) 112 and a receiver (RX) 114) for interfacing with a local area network (LAN) or other data network. In a non-limiting example, the TX 112 and the RX 114 are implemented as Ethernet-based interface circuitry. Of course, such circuitry may also include radio circuitry for wireless communication, either as an alternative to or in addition to a wired connection.
[0041] The illustrated interface circuitry 110 further includes a user interface (UI) 116, such as interface circuitry supporting one or more electronic displays, a mouse, a keyboard, etc. In at least one embodiment, a user inputs the reference robot pose 70 into the computer system 60 through user interface elements displayed on an electronic display or by instructing the computer system 60 to read the reference robot pose 70 from a data file.
[0042] 7 illustrates a processing circuit 100 according to one embodiment. One or more general-purpose microprocessors 120 are specially adapted to perform the graph generation described herein by executing computer program instructions stored in memory 122. In this regard, storage 102 may include memory 122, or may be understood more broadly as one or more types of computer-readable media. Examples include volatile and non-volatile memory and / or file storage systems.
[0043] Thus, in one or more embodiments, the computer system 60 generates a graph 64 for use in online path planning for the robot 10. The graph 64 includes a collection of nodes 72 and edges 74. Each node 72 is a respective robot pose in a sampled reference frame. Each edge 74 is a feasible path between a respective pair of nodes 72. The computer system 60 includes an interface circuit 110 configured to receive data identifying a set of two or more reference robot poses 70 associated with task performance by the robot 10.
[0044] Furthermore, the processing circuit 100 is configured to generate each node 72 as a corresponding configuration vector including a plurality of vector elements, and each vector element is a corresponding one of a plurality of configuration parameters representing the degrees of freedom (DoF) of the robot 10. The generation for each node is based on (a) setting a value for each of one or more vector elements within a first subset of vector elements, regardless of a set of two or more reference robot poses 70 (the first subset defines a partial robot pose), and (b) setting a value for each of one or more vector elements within a second subset of mutually prime vector elements according to a distance function that associates the partial robot pose with one or more reference robot poses 70.
[0045] Furthermore, the processing circuit 100 determines edges 74 according to the path executability between each pair of nodes 72 and is configured to store the graph 64 in a computer-readable medium for use by the computer controller 68 of the robot 10 when executing an online path plan. The computer-readable medium may be a memory 122 used by an online path planning unit, such as an online path planning function 66, or a file storage system accessed by the online path planning unit.
[0046] The robot 10 has M joints that proceed in a physical order from the first joint to the last joint, and as a result, each corresponding configuration vector has M vector elements that proceed from the first vector element to the last vector element. Here, the first subset of vector elements includes the first N of the M vector elements, and the second subset includes the last (M - N) vector elements. M and N are integers, where M ≥ 2 and 1 ≤ N < M. Broadly speaking, the first subset of vector elements defines the indirect configuration between the first N of the M joints of the robot 10. The second subset defines the configuration of the remaining (M - N) joints of the robot 10.
[0047] Consider a configuration vector of the form {VA1, VA2, VA3, VA4, ..., VAM}, where "V" represents a value, "A1" represents the first joint or other moving part, "A2" represents the second moving part, and so on. Here, "first," "second," etc. refer to the physical order of the moving parts in the hierarchy of moving parts, e.g., proceeding from the base of robot 10 to the end of robot 10. Returning briefly to Figure 1, joint J2 is lower in the joint hierarchy than joint J1 because the spatial region of the associated arm that joint J2 moves is determined by the value to which joint J1 is set.
[0048] Thus, the term "partial robot pose" refers to an incomplete specification of values for M configuration parameters of the robot 10. In a particular example, the term "partial robot pose" means that at least initial configuration parameters of the robot 10 have been set, but one or more additional configuration parameters have not been set. Thus, a partial robot pose is an incomplete specification of the configuration parameters of the robot 10.
[0049] Consider a six-joint robot with C of the form {VA1, VA2, VA3, VA4, VA5, VA6}, proceeding in the physical order of the moving parts within the robot 10. In the context of this example, {VA1, VA2, VA3, VA4, VA5}, {VA1, VA2, VA3, VA4}, {VA1, VA2, VA3}, {VA1, VA2}, and {VA1} define a "first subset" of partial robot poses. If the first subset is {VA1, VA2, VA3}, then the remaining second subset is {VA4, VA5, VA6}.
[0050] Rather than sampling points of graph 64 in the M-dimensional search space, sampling is performed in a reduced search space having dimensions corresponding to the number of components included in the first subset. The number of vector elements to include in the first subset may depend on a particular robot and a particular application. In any case, by considering fewer dimensions than all M dimensions in the initial node generation, the processing circuit 100 is configured to select a partial robot pose as a point within the reduced dimensional space corresponding to the dimensions of the first subset.
[0051] These points, i.e., the partial robot poses, can be determined by deterministic sampling or random sampling. These points are selected, for example, by execution of a probabilistic roadmap (PRM) algorithm. In another example, these points are selected by execution of a rapidly-exploring random tree (RRT) algorithm.
[0052] Regardless of the particular sampling algorithm used, graph 64 is generated by selecting points within an N-dimensional space, where M is the degrees of freedom (DoF) of robot 10 and N < M. "Selecting" a point within the N-dimensional space means setting a value for each of the first N of the M total configuration parameters of robot 10. Here, N is 1 or more. The values are selected deterministically or randomly and may be filtered or generated considering executable values, but they are set independently of the reference robot pose 70.
[0053] To convert each such point (i.e., each partial robot pose) into a complete or overall robot pose, the values of the configuration parameters excluded from that partial robot pose are set by a distance function that relates the partial robot pose to reference robot poses 70, provided as a set of two or more reference robot poses 70. Setting the values of the remaining configuration parameters at the point by a distance function limits TCP orientation changes between nodes 72 of graph 64, thereby ensuring high-quality movement. In other words, this approach allows for sampling at a relatively coarse level in a dimension lower than the DoF of robot 10, while simultaneously providing graph edges 74 that embody high-quality movement.
[0054] In one or more embodiments, the set of two or more reference robot poses 70 is a continuous set. The distance function is expressed as a nonlinear optimization problem. In one or more other embodiments, the set of two or more reference robot poses 70 is a discrete set of reference robot poses. The distance function is an analytic function.
[0055] 8 and 9 illustrate a method 800 for generating a graph 64 for use in online path planning for a robot 10. The graph 64 is a data structure including a collection of nodes 72 and edges 74. Each node 72 represents a respective robot pose. Each edge 74 is a feasible path between each pair of nodes 72. The method 800 includes receiving data specifying a set of two or more reference robot poses 70 associated with task performance by the robot 10 (block 802) and generating each node 72 as a corresponding configuration vector including a plurality of vector elements (block 804). Each vector element is the value of a corresponding one of a plurality of configuration parameters representing degrees of freedom (DoF) of the robot 10.
[0056] For each node, generation includes setting a value for each of one or more vector elements in a first subset of vector elements independently of a set of two or more reference robot poses (block 804A, the first subset defining partial robot poses), and setting a value for each of one or more vector elements in a second disjoint subset (block 804B) according to a distance function relating the partial robot poses to one or more reference robot poses 70. Once node generation is complete (YES from block 804C), method 800 proceeds to determining edges 74 according to path feasibility between each pair of nodes 72 (block 804D) and storing the graph 64 to a computer-readable medium (block 806) for use by the computer controller 68 of the robot 10 in performing online path planning.
[0057] Method 800 may further include steps corresponding to any one or any combination of the operations described above for processing circuit 100.
[0058] 10 shows a method 1000 for generating a graph 64 for use by the online path planner in controlling the movement of the robot 10. The method 800 may be understood as a more detailed example of the method 1000.
[0059] The method 1000 includes performing a sampling procedure (block 1002) to select partial robot poses of the robot 10 in the environment, such that the sampling procedure operates at a dimension lower than the robot DoF. Each partial robot pose specifies values for fewer than all configuration parameters necessary to define a complete pose of the robot 10 in the environment. The method 1000 further includes transforming each partial robot pose into a corresponding complete robot pose by determining, for each partial robot pose, values of configuration parameters not considered in the partial robot pose according to a distance function that relates the partial robot pose to a set of two or more reference robot poses 70 (block 1004). The method 1000 further includes taking the complete robot poses as nodes 72 in the graph 64 and determining edges 74 between each pair of nodes 72 (block 1006). Each edge 74 is a feasible path between a particular pair of nodes 72.
[0060] The foregoing details can be understood as an example of generating a graph 64, such as a "roadmap." This graph is used to calculate feasible collision-free paths that the robot 10 can follow for a task or application while avoiding collisions with other objects and robots in the environment. A related technique reduces the size of the collision-free graph. This reduction is achieved by utilizing a set of specified reference robot poses 70 as input to the graph generation. This set can be understood as the robot's tool center point poses. The reduction can be dramatic, for example, from a roadmap that may have hundreds of thousands of nodes to a roadmap with tens of thousands of nodes.
[0061] A "roadmap" in this context is a specific form of graph generation that contains a set of valid configurations (nodes) of the robot with edges interconnecting the nodes. During online path planning, the robot uses the roadmap to find a path from the current configuration to a desired configuration. The robot can query the roadmap to find a path that avoids obstacles and other constraints.
[0062] The graph may also be generated by a Rapidly-Exploring Random Tree (RRT) algorithm, a type of sampling-based algorithm. The RRT algorithm is a randomized process that incrementally builds a tree structure over the robot's configuration space by iteratively adding new nodes to the tree. Each new node is obtained by randomly sampling the configuration space and then connected to the nearest node in the tree. This process is repeated until a path from the starting configuration to the goal configuration is found. In the context of dimensionality reduction described above, each node is generated as a partial robot pose and can then be refined into a complete robot pose based on its distance relationship with an input set of reference robot poses.
[0063] The reduced-size graph enables fast, online path planning for robots. For example, a user can specify a reference robot tool centerpoint pose for a robot used in a pick-and-place application based on constraints in the environment. The robot control then generates a collision-free roadmap with a tool centerpoint configuration as close as possible to the input reference pose while maintaining a small roadmap size. For example, using an Intel® Core™ i7 CPU running at 2.21 GHz, the technology described herein enables the calculation of smooth, executable, collision-free paths in real time, typically within 20–25 milliseconds, for a 6-DoF robot from a roadmap with 5,000 to 10,000 nodes.
[0064] FIG. 11 illustrates an example implementation of functional processing modules or units for generating a roadmap according to the disclosed technology. "User input" includes relevant robot kinematic information and constraints, a set of two or more reference robot poses, robot shape information, obstacle shape information, and roadmap specifications (e.g., roadmap size, etc.). Note that a "voxel" in the context of FIG. 11 is a cubic representation of an occupancy parameterized by size and center (x, y, z) location. Of particular interest is that the "node sample" operation operates in reduced dimensions associated with the partial robot poses described above.
[0065] For a 6-axis robot, the dimension of C space is R 6 It can be expressed as R 6 While graph generation based on sampling in is computationally intensive, known approaches to reduced-dimensional sampling involve compromises in motion quality, such as simply fixing the values taken by a subset of the configuration parameters. For example, in the case of Cartesian space sampling, a typical choice of sampling space is 3 and the TCP orientation (e.g., Euler angle) φ∈R 3 is.
[0066] In this case, a possible solution to reduce the sampling dimension is to introduce constraints, such as constraints on the TCP orientation. In this case, the sampling space is reduced to R 6 but three-dimensional p∈R 3 Therefore, node sampling is limited to the lower dimensions. Dividing each dimension by 10 gives n φ x10 3 node, where n φis the number of orientations for a given TCP. Because the number of nodes in this case is much smaller than in the configuration space, a deterministic Cartesian space sampling approach is computationally efficient. In the next subsection, the proposed idea for generating roadmaps with TCP orientation constraints is detailed. However, fixing Euler angles as the "full constraints" used to reduce the sampling dimension introduces the possibility of low-quality movement between the resulting graph nodes.
[0067] Applying the disclosed techniques to this six-axis example, Euler angles are not fixed along graph edges. Instead, the Euler angles at each graph node are calculated by a distance function that relates a partial robot pose to a set of two or more reference robot poses, where p∈R 3 This refers to the one defined by the sampled values of the TCP position parameter, defined as follows: Doing so constrains the TCP's orientation changes along the graph edges interconnecting each graph node.
[0068] In the first step, the user specifies the workspace region (upper and lower bounds of the x, y, and z ranges). In the second step, the user provides a reference (representative) configuration. The reference or representative configuration provides a basis for selecting the inverse kinematics solution and is required when sampling for graph generation is performed in the workspace and the sampled nodes need to be mapped back to C-space. In the third step, the user determines constraints for the roadmap. For example, the user can select a preferred TCP orientation (Euler angles of the TCP points) during motion. In the fourth step, the user provides a set of two or more reference robot poses. These can be robot configurations close to the starting and goal maneuvering regions. The reference robot poses allow nodes on the roadmap to be connected to configurations close to the starting and goal regions, leading to shorter, smoother paths. In the fifth step, performed by the computer, nodes are uniformly sampled in the workspace. For each sample point, there are multiple candidates for every given TCP orientation.
[0069] Then, in the sixth step, the workspace points are solved by an inverse kinematics (IK) solver to the joint positions q∈R 6 The analytical IK solver outputs multiple solutions with several combinations of configurations: lefty, righty, above, below, flip, and non-flip. The graph generator selects the solution that is closest to the reference configuration provided in step 2 and adds it as a node to the graph. Finally, in step 7, each node uses the nearest neighbor search submodule to find its k nearest neighbors, and then checks the collision status of potential edges between that node and its k nearest neighbors. Edges without collisions are added to the graph.
[0070] Therefore, for a fixed TCP orientation (e.g., Euler angle) φ∈R 3 p∈R while specifying 3 Then, we sample the TCP pose using an IK solver to construct q∈R 6By generating each node by calculating p, the sampling complexity is significantly reduced. In this case, p is used to determine θ1 to θ3, and the TCP orientation is used to constrain θ4 to θ6 rather than fixing them. If only a fixed TCP orientation is specified, the IK solver will calculate Euler angles (θ4 to θ6) to maintain the TCP orientation in all cases. Doing so leads to unnatural geometric paths and reduces the smoothness of the robot's movement. Although the number of TCP orientations can be more than one, adding more types of constraints does not necessarily alleviate the unsmooth movement.
[0071] There may be other approaches to determining θ4-θ6 without specifying the TCP orientation. One approach is to select θ4-θ6 directly in the configuration space. The simplest way is to provide a fixed combination of θ4-θ6. In this case, the TCP orientation is not always the same but is determined by the given configuration θ4-θ6.
[0072] In this six-axis example, partial constraints θ4 through θ6 are determined based on an input reference configuration, called the reference robot pose. These reference robot poses can be designed to avoid collisions of the robot with static objects in the environment. The specification of the reference robot poses can be (1) discrete or (2) batch-continuous. In the six-axis example, in the discrete case, the reference robot pose is determined based on the set of configuration parameters Q d ={θ1, θ2, θ3,…θ N}, where q i ∀i = 1, 2, 3...N...
[0073] In the batch-continuous case, the reference robot pose is described by a discrete batch of contiguous sets that depend on the position of the robot wrist center in the workspace. This set is denoted by Q B ={Q B1 , Q B2 , Q B3 , … Q BN} where QBi ={θ|θ∈R n , p∈P i}, which is defined as the i-th subset P i (P i ⊂R 3 ), where n represents the degrees of freedom. The limiting case is a single set Q = {θ|θ⊆R n Note that}.
[0074] Although the reference robot pose requires user specification or analytical preprocessing by the application, the calculations associated with specifying the reference robot pose are offline and do not affect the roadmap calculation.
[0075] Batch attraction function approach In this method, the configurations θ4-θ6 can be calculated based on a batch-sequential representation of the RRPs, which provides a range of user-defined reference configurations that depend on the robot wrist center position in the workspace. An example representation of a set of reference robot poses (RRPs) is:
number
[0076] The goal is to find θ4 through θ6 from the set QBi. In one or more embodiments, the calculation of θ4 through θ6 uses an attraction function. For clarity, continuing with the example case of a robot 10 having six revolute joints that proceed in mechanical order from J1 to J6, the complete robot configuration is specified by a set of six joint angles: C = {θ1, θ2, θ3, θ4, θ5, θ6}. Graph generation according to the disclosed technique determines the values of the first three joint angles θ1, θ2, and θ3 using unconstrained sampling in the sampling reference frame to select points in the three-dimensional sampling space (i.e., to select each point defined by a specific combination of values for θ1, θ2, and θ3). At each point, the values of the last three joint angles θ4, θ5, and θ6 are constrained depending on one or more of the RRPs. Since the first three joint angles θ1, θ2, θ3 define the position of the robot 10 in space, the set of values for θ1, θ2, θ3 can be understood to define a partial robot pose of the robot 10.
[0077] The last three joint angles θ4, θ5, and θ6 define the wrist center position of the robot 10, i.e., the position and orientation of the TCP. Based on this premise, the process can be understood as follows: First, a partial robot pose is defined using unconstrained sampling in a reduced dimension represented by the configuration parameters that define the partial robot pose. The determination of the remaining configuration parameters required to define the complete pose is constrained as a function of one or more of the RRPs. These constraints limit or restrict the change in TCP position between nodes in the graph, thereby providing smooth movement of the graph edges. Of course, as already mentioned, the complete set of configuration parameters may significantly exceed six, or there may be multiple types of moving parts reflected in the complete set of configuration parameters. A generalized approach for a set of M configuration parameters is as follows: First, take the first one or more of the M configuration parameters as a first subset that defines a partial robot pose of the robot. Then, use unconstrained sampling to determine the partial robot pose as a graph node. Next, use the RRP-based constraints to determine values for a subset of the remaining one or more configuration parameters for each sampled node.
[0078] Returning to the specific example of using the attraction function in the context of partial constraints, the basic idea of the attraction function is to find the Q node with the wrist center position closest to the sampled node. Bi The goal of this paper is to find an appropriate RRP within the given set of parameters. This attraction function is a scalar nonlinear function that uses forward kinematics to compute the minimum norm of the difference between the wrist center position associated with a given sample point q and the wrist center position associated with the decision variable θ∈Q. Mathematically, this can be expressed as a nonlinear optimization problem expressed as follows:
number
number
[0079] The decision variable in the above optimization problem is θ. The objective function is a nonlinear forward kinematic mapping. The constraint set Q Bi can be any continuous set without invalidating the attraction function approach described above. The procedure for solving this problem for a 6-axis robot example is described below. (1) Divide the workspace based on the wrist center position of the robot. For example, a pick-and-place robot application can be roughly divided into an area near the pick, an area near the place, and the remaining workspace. (2) For each partition, compute a set of feasible joint configurations. This computation typically requires specifying a set of feasible robot TCP poses, followed by computing a contiguous set in joint space via inverse kinematics mapping. Users can specify a set of feasible robot TCP poses based on their specific application and the constraints associated with each partition. (3) Continuous set Q Bi to each partition of the workspace. (4) Sample p in Cartesian space. (5) Set Q associated with sampled p Bi Find. (6) Given a sampled position p, we use an inverse kinematics (IK) solver to solve q 1-3 = [θ1, θ2, θ3] T (p is defined as the position of the robot's wrist center). 1-3 is the closest IK solution to the given IK reference configuration. (7) Related constraint set Q Bi Using,we formulate the optimization problem provided in Eq. (1). (8) Use previously sampled nodes as initial estimates. (9) Using the initial guess from step 7, solve the nonlinear optimization using a numerical approach such as the interior point method, barrier method, or sequential quadratic programming. (10) Optimization solution θ optimal By taking the fourth to sixth elements from this, θ4 to θ6 are obtained. (11) q=[q 1-3 T , θ4~θ6 T ] T If is collision-free, add it to the graph as a node.
[0080] A visual illustration of this approach is presented for a 2DoF system in FIG. 12. In the illustrated example, θ1 is a sampled position, and the goal is to find an appropriate θ2 for generating a sampled node given two constraint sets, named Q1 and Q2. In other words, θ1 is a sampled position, or partial robot pose, and is selected independently of the RRP. The determination of the remaining configuration parameter θ2 is performed on a partial constraint basis. To solve this problem, a reference robot pose 70 represents a sort of initial "guess," and in one or more embodiments, the reference robot pose 70 is a user-generated input. Based on the initial guess, the nonlinear optimization problem of Equation (1) is solved. This process is repeated for all sampled positions, with the previously sampled node being used as the initial guess.
[0081] The initial guess for the nonlinear optimization is based on a previously sampled node, which biases the search toward and near the initial guess. Selecting a previously sampled node as the initial guess for the optimization results in a local minimum solution close to the specified initial guess. The selection of this particular initial guess constrains the relative TCP orientation change rate between adjacent sampled nodes, resulting in better route quality. Note that this approach provides a soft guarantee on the boundedness of the TCP orientation change rate.
[0082] Algebraic Approach Instead of using a batch attraction approach, an algebraic approach can be used in which the RRP representation is discrete and the points take on a finite number of discrete values. This approach is analytical and calculates partially constrained configuration parameters based on the partial robot poses and the RRPs. That is, for each node, the values of the robot's configuration parameters designated as defining a "partial robot pose" are set via unconstrained sampling in a dimension corresponding to the number of configuration parameters used to define the partial robot pose. The values of the remaining configuration parameters for each node are determined in a partially constrained manner by calculations based on that partial robot pose and one or more RRPs.
[0083] Again using the six-axis example, each node in the graph is or corresponds to a configuration vector that specifies the values of six joint angles θ1, θ2, θ3, θ4, θ5, θ6. The values of the first three joint angles θ1, θ2, θ3 at each node are determined by unconstrained sampling, and a partially constrained determination of the remaining joint angles θ4, θ5, θ6 at each node is made based on the partial robot pose represented by the θ1, θ2, θ3 values and one or more RRPs. This configuration for a particular node can be expressed as follows:
number
[0084] The idea is to determine θ4-θ6 for each workspace sample point p (rather than just using a single set of θ4-θ6). An example of the corresponding procedure in the context of six axes is given below with reference to Figure 13.
[0085] (1) Sample in Cartesian space p.
[0086] (2) Using the forward kinematics solver to determine the wrist center position
number
number
[0087] (3) Distance
number
number
number
[0088] (4) Given a sampled position p, use an IK solver to find q 1-3 =[θ1, θ2, θ3] T (p is defined as the wrist center position of the robot). 1-3 is the closest IK solution to the given IK reference configuration.
[0089] (5) Based on the following formula, q 4-6 =[θ4, θ5, θ6] T Calculate.
number
[0090] (6)q=[q 1-3 T , q 4-6 T ] T If is collision-free, add it to the graph as a node.
[0091]
number
[0092] If a workspace sample point is close to some reference robot pose, the TCP orientation of the workspace sample point will be close to the TCP orientation of the reference point. This leads to a smooth transition, and the resulting motion will be smoother than that obtained by simply fixing the last subset of configuration parameters at each node. The quality of the path can also be understood mathematically using the following example: Consider the one-dimensional case for sampling. The nodes are sampled uniformly from a starting position at the origin to the desired target position, with a total distance d G The orientation of the sampled TCP can be calculated from the last three joints as follows:
number
[0093] Consider a perturbation of a linear equation.
number
number
[0094] Therefore, the TCP orientation change rate is bounded and determined by the sampling resolution, resulting in smooth path quality. After the workspace sampling step is completed, the added nodes are connected to each other by their k-nearest neighbors, and each node is connected to each relay point.
[0095] FIG. 14 illustrates an application where a 6-DoF robot is required for a deburring application. The robot operates near a feeder region and a brush region as shown. Both regions are associated with different TCP orientations. One approach to generating a graph using the advantageous partial constraint techniques disclosed herein involves the user specifying a set of two or more RRPs. One particular choice of RRPs is the starting and target TCP orientation in joint space, q start and q goal This approach is an example of what it means for an RRP to be "associated" with one or more tasks performed by a robot. For applications with multiple unique starting and target configurations, the user can specify an RRP that is the same as or close to the robot configuration at all such locations.
[0096] Based on the RRP specification, the sampled node configuration of the last three joints is the weighted sum of the start and target configuration-based reference robot poses that are closest to the sampled node position, expressed as:
number
[0097] The orientation of the starting TCP shown in Figure 14 can be expressed in Euler angles as [90, 90, 0] degrees, and the orientation of the target TCP can be expressed as [118.4, 64.4, 2.9] degrees. These are, of course, example numbers, and the actual values depend on many factors.
[0098] Application-constrained TCP case In certain applications, there may be constraints on the orientation of the TCP during the robot's movement between a given start and goal position, and the robot must always maintain the same orientation (φ constrained ) that the range of Q must be a single value (φ constrained ) and when using the algebraic approach, graph generation is performed as if the reference robot pose is φ constrained This may be based on the equality of
[0099] User interaction with roadmap generation As described above, running a roadmap algorithm is one approach to generating graphs for use in online path planning. Roadmap generation requires the user to specify certain application-specific parameters.
[0100] In the first step, the user must model the application configuration using a commercial modeling tool and generate a CAD file. In the second step, the user provides a reference robot pose based on the application constraints. These reference points can be either discrete or continuous, as described above in the context of the algebraic and batch attraction approaches. In the third step, the user provides optional relay points. These relay points are joint configurations near the starting and goal manipulation regions. Relay points allow nodes on the roadmap to be connected to configurations near the starting and goal regions, leading to shorter, smoother paths. In the fourth step, the user must specify the robot's kinematic model, the workspace region (upper and lower x, y, and z ranges), and the voxel size of the roadmap. The voxel size has a lower limit preset in the roadmap generation software.
[0101] Once the necessary inputs for the roadmap have been generated by the user, the user generates the roadmap using a software program. For example, the graph generation function 62 shown in Figure 3 is part of a software program executed by one or more microprocessors.
[0102] After generating the roadmap, the user verifies the functionality of the roadmap by following these steps: (1) The user checks the functionality and performance of the roadmap using software emulation tools. (2) The user arbitrarily changes certain parameters, such as the reference robot pose, for better performance. (3) The user deploys the generated roadmap into a path plan in the physical robot cell.
[0103] However, as noted above, the use of the Roadmap algorithm is merely one example of a sampling-based graph generation approach, and the partial constraint technique disclosed herein is applicable to a wide range of sampling scenarios and offers significant improvements over conventional approaches to sampling-based graph generation. In a partial constraint approach, sampling is limited to a first subset of one or more initial parameters from the complete set of the robot's configuration parameters. For example, a robot with M DoF has M configuration parameters, with the first N (progressing in hierarchical or mechanical order) treated as the first subset. This means that sampling is limited to generating each node in the graph as a unique combination of values for the first N configuration parameters. These first N values define a partial robot pose, and the values of each node's subset of the remaining (MN) configuration parameters are determined according to a distance function that relates that partial robot pose to two or more reference robot poses. This "partial constraint" imposed on the values taken by each node's subset of the remaining configuration parameters limits the rate of change of TCP orientation between adjacent nodes in the graph, which means that using the graph for online path planning results in high-quality robot movement.
[0104] It should be noted that modifications and other embodiments of the disclosed inventions will come to mind to one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. It is to be understood, therefore, that the inventions are not limited to the particular embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the present disclosure. Although specific terms may be employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
1. 1. A method for generating a graph for use in online path planning of a robot, the graph being a data structure including a collection of nodes and edges, each node representing a robot pose and each edge being a feasible path between each pair of the nodes; The method comprises: receiving data specifying a set of two or more reference robot poses associated with performing a task by the robot; generating each node as a corresponding configuration vector including a plurality of vector elements, each vector element being a value of a corresponding one of a plurality of configuration parameters representing degrees of freedom (DoF) of the robot, said generating including: setting values for each of one or more vector elements in the first subset defining a partial robot pose independently of the set of two or more reference robot poses; setting values for each of one or more vector elements in a second disjoint subset of vector elements according to a distance function relating the partial robot pose to one or more of the reference robot poses; and determining the edges according to path feasibility between each pair of the nodes; storing the graph on a computer readable medium for use by a computer controller of the robot in performing online path planning; A method comprising:
2. The method of claim 1 , wherein the computer-readable medium is a memory used by an online route planner or a file storage system accessed by the online route planner.
3. 2. The method of claim 1, wherein the robot has M joints that proceed in physical order from first to last, such that each corresponding configuration vector has M vector elements proceeding from first to last, a first subset of the vector elements comprising the first N of the M vector elements and a second subset comprising the last (M-N) vector elements, where M and N are integers, M≧2 and 1≦N<M.
4. 2. The method of claim 1, wherein the first subset of vector elements defines configurations of the first N of M joints of the robot, and the second subset defines configurations of the remaining (M-N) joints of the robot.
5. The method of claim 1 , wherein the generating step includes selecting the partial robot poses as points in a reduced dimensional space corresponding to a dimension of the first subset.
6. The method of claim 5 , wherein the points are determined by deterministic sampling or random sampling.
7. The method of claim 5 , wherein the points are selected by execution of a probabilistic roadmap (PRM) algorithm.
8. The method of claim 5 , wherein the points are selected by running a Rapidly-exploring Random Tree (RRT) algorithm.
9. The method of claim 1 , wherein each node defines the orientation and location of a tool center point (TCP), and the distance function constrains the change in TCP orientation along each edge.
10. The method of claim 1 , wherein the set of two or more reference robot poses is a continuous set and the distance function is expressed as a nonlinear optimization problem.
11. The method of claim 1 , wherein the set of two or more reference robot poses is a discrete collection of reference robot poses, and the distance function is an analytical function.
12. 1. A method for generating a graph for use by an online path planner in controlling the movement of a robot within an environment, comprising: performing a sampling procedure to select partial robot poses of the robot within the environment, the sampling procedure operating at a dimension less than the robot's degrees of freedom (DoF), and each partial robot pose specifying values for fewer than all configuration parameters required to define a complete pose of the robot within the environment; transforming each partial robot pose into a complete robot pose by determining values of configuration parameters not considered in the partial robot pose according to a distance function relating the partial robot pose to a set of two or more reference robot poses; taking the complete robot poses as nodes of the graph and determining edges between each pair of the nodes, each edge being a feasible path between a particular pair of the nodes; A method comprising:
13. 1. A computer system for generating a graph for use in online path planning of a robot, the graph comprising a collection of nodes and edges, each node being a respective robot pose in a sampling reference frame, and each edge being a feasible path between each pair of the nodes; The computer system includes: an interface circuit configured to receive data specifying a set of two or more reference robot poses associated with task performance by the robot; processing circuitry; The processing circuitry Generate each node as a corresponding constituent vector containing multiple vector elements; storing the graph on a computer readable medium for use by a computer controller of the robot in performing online path planning; It is configured as follows: each vector element is a value of a corresponding one of a plurality of configuration parameters representing a degree of freedom (DoF) of the robot; the generating is based on assigning values to each of one or more vector elements in the first subset defining a partial robot pose independently of the set of two or more reference robot poses, assigning values to each of one or more vector elements in a disjoint second subset of vector elements according to a distance function relating the partial robot pose to one or more of the reference robot poses, and determining the edges according to path feasibility between each pair of the nodes. Computer system.
14. The computer system of claim 13 , wherein the computer-readable medium is a memory used by an online route planner or a file storage system accessed by the online route planner.
15. 14. The computer system of claim 13, wherein the robot has M joints that proceed in physical order from first to last, such that each corresponding configuration vector has M vector elements that proceed from first to last, a first subset of the vector elements including the first N of the M vector elements and a second subset including the last (M-N) vector elements, where M and N are integers, M≧2 and 1≦N<M.
16. 14. The computer system of claim 13, wherein the first subset of vector elements defines configurations of the first N of M joints of the robot, and the second subset defines configurations of the remaining (M-N) joints of the robot.
17. 14. The computer system of claim 13, wherein, with respect to generating the nodes, the processing circuitry is configured to select the partial robot poses as points in a reduced dimensional space corresponding to a dimension of the first subset.
18. The computer system of claim 17 , wherein the points are determined by deterministic sampling or random sampling.
19. 20. The computer system of claim 17, wherein the points are selected by execution of a probabilistic roadmap (PRM) algorithm.
20. 18. The computer system of claim 17, wherein the points are selected by execution of a Rapidly-exploring Random Tree (RRT) algorithm.
21. The computer system of claim 13 , wherein each node defines the orientation and location of a tool center point (TCP), and the distance function limits the change in TCP orientation along each edge.
22. The computer system of claim 13 , wherein the set of two or more reference robot poses is a continuous set, and the distance function is expressed as a nonlinear optimization problem.
23. The computer system of claim 13 , wherein the set of two or more reference robot poses is a discrete collection of reference robot poses, and the distance function is an analytical function.