EP3723948A1

Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same

Abstract

This record has no abstract on file.

Term

12.4 yearsto projected expiry

Projected expiry 5 February 2039, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

101 claims: 22 independent, 79 dependent

  1. 1
    Claims of equivalent WO 2019156984 A1 CLAIMS1. A method of operation in a robot control system, the method comprising:for a first robot that will operate in an environment, determining a plurality of planning graphs, each planning graph respectively comprising a plurality of nodes connected by a plurality of edges, each node which represents, implicitly or explicitly, variables that characterize a respective state of the first robot, and each edge which represents a transition between a respective pair of the states of the first robot, where the respective pair of states are represented by respective ones of a pair of nodes that are coupled by a respective edge in the respective planning graph;for at least two or more of the edges of each of the planning graphs, generating a respective set of edge information that represents a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge;storing the plurality of planning graphs and the sets of edge information in at least one nontransitory processor-readable storage;based on at least a portion of the first robot having a first set of physical dimensions at a first time, providing the sets of edge information for a first one of the planning graphs to at least one processor;and based on at least a portion of the first robot having a second set of physical dimensions at a second time, at least one dimension in the second set of physical dimensions different than a corresponding one of the dimensions of the first set, providing the sets of edge information for a second one of the planning graphs to the at least one processor.
  2. 7
    8. The method of any of claims 1 through 7 wherein providing the sets of edge information for a first one of the planning graphs to at least one processor includes applying the edge information for one of the edges to each of a plurality of circuits of the at least one processor to determine which edges collide with a unit volume occupied by an obstacle in the environment in which the robot operates.
  3. 8
    9. The method of any of claims 1 through 7 wherein providing the sets of edge information for a first one of the planning graphs to at least one processor includes applying the edge information for one of the edges to each of a plurality of circuits of the at least one processor in parallel.
  4. 9
    10. The method of any of claims 1 through 7 wherein generating a respective set of edge information that represents a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge includes generating a respective set of edge information that represents in terms of voxels a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge.
  5. 10
    11. The method of any of claims 1 through 7 wherein generating a respective set of edge information that represents a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge includes generating a respective set of edge information that represents in terms of units of volume, the units of volume that cover two or more voxels, a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge.
  6. 11
    12. The method of any of claims 1 through 7 wherein generating a respective set of edge information that represents a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge includes generating a respective set of edge information that represents in terms of rectangular prisms (parallelepiped) a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge.
  7. 12
    13. The method of claim 12 wherein generating a respective set of edge information that represents in terms of rectangular prisms (parallelepiped) a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge includes, for each of the rectangular prisms, storing a pair of three dimensional coordinates that completely define the volume of the respective rectangular prism
  8. 13
    14. The method of any of claims 1 through 7 wherein the determining a plurality of planning graphs and the generating a respective set of edge information is performed during a pre-run time period.
  9. 14
    15. The method of any of claims 1 through 7 wherein the providing the sets of edge information for a second one of the planning graphs to the at least one processor is performed during a run time period.
  10. 15
    16. A processor-based robot control system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: for a first robot that will operate in an environment, determine a plurality of planning graphs, each planning graph respectively comprising a plurality of nodes connected by a plurality of edges, each node which represents, implicitly or explicitly, variables that characterize a respective state of the first robot, and each edge which represents a transition between a respective pair of the states of the first robot, where the respective pair of states are represented by respective ones of a pair of nodes that are coupled by a respective edge in the respective planning graph;for at least two or more of the edges of each of the planning graphs, generate a respective set of edge information that represents a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge;store the plurality of planning graphs and the sets of edge information in at least one nontransitory processor-readable storage;based on at least a portion of the first robot having a first set of physical dimensions at a first time, provide the sets of edge information for a first one of the planning graphs to at least one processor;and based on at least a portion of the first robot having a second set of physical dimensions at a second time, at least one dimension in the second set of physical dimensions different than a corresponding one of the dimensions of the first set, provide the sets of edge information for a second one of the planning graphs to the at least one processor.
  11. 16
    17. The processor-based system of claim 16 wherein the at least one of processor-executable instructions or data, when executed by the at least one processor, further causes the at least one processor to perform any of the methods of claims 2 through 15.
  12. 17
    18. A method of operation in a robot control system, the method comprising:for a first discretized representation of an environment in which at least a first robot will operate, the environment occupied by one or more obstacles, supplying at least a portion of the first discretized representation of the environment to at least one processor;for each edge of a first planning graph of a plurality of planning graphs stored in memory relative to the at least one processor, wherein each planning graph of the plurality of planning graphs is associated with a different set of physical dimensions of the first robot, providing a respective set of edge information to the at least one processor, the respective set of edge information which represents a volume swept by at least a portion of the first robot in transitioning between a pair of states of the first robot, the pair of states of the first robot represented by respective ones of a pair of nodes of the first planning graph, the respective pair of nodes which are coupled by a respective edge of the first planning graph, the respective edge which represents a transition between the respective pair of states of the first robot;and identifying any of the edges of the first planning graph that the corresponding transition would result in a collision between at least a portion of the robot and at least a portion of at least one of the one or more obstacles in theenvironment.
  13. 18
    19. The method of claim 18 wherein providing a respective set of edge information to the at least one processor includes applying the edge information for one of the edges to each of a plurality of circuits of the at least one processor in parallel.
  14. 23
    24. The method of claim 23 wherein applying to the circuits arespective set of edge information that represents, in terms of rectangular prisms, a volume swept by at least a portion of the first robot in transitioning between the states represented by the respective nodes that are coupled by the respective edge includes, for each of the rectangular prisms, storing a pair of three dimensional coordinates that completely define the volume of the respective rectangular prism.
  15. 25
    26. The method of claim 25 wherein the first robot includes a first appendage that is selectively operable for movement with respect to the environment in which the first robot operates, and determining that the first robot will or has changed from a first arrangement to a second arrangement includes determining that a second end effector is attached or being attached to the first appendage in place of a first end effector.
  16. 27
    28. The method of claim 27 wherein determining that the first end effector attached to the first appendage is changing or has changed a grasparrangement includes determining that the first end effector is or has transitioned between an un-grasped arrangement and a grasped arrangement.
  17. 29
    30. The method of any of claims 18 through 29 wherein the providing a respective set of edge information for each edge of the first planning graph to the at least one processor includes retrieving the respective set of edge information from a nontransitory storage during a run time period, the respective set of edge information which was stored to the nontransitory storage during a pre-run time period.
  18. 30
    31. The method of claim 30 wherein the at least one processor is at least one of a field programmable gate array or application specific integrated circuit, and providing the respective set of edge information to at least one processor includes applying the edge information for one of the edges to each of a plurality of circuits of the at least one processor implemented in the at least one of a field programmable gate array or application specific integrated circuit.
  19. 32
    33 A processor-based robot control system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: for a first discretized representation of an environment in which at least a first robot will operate, the environment occupied by one or more obstacles, supply at least a portion of the first discretized representation of the environment to at least one processor;for each edge of a first planning graph of a plurality of planning graphs stored in memory relative to the at least one processor, wherein each planning graph of the plurality of planning graphs is associated with a different set of physical dimensions of the first robot, provide a respective set of edge information to the at least one processor, the respective set of edge information which represents a volume swept by at least a portion of the first robot in transitioning between a pair of states of the first robot, the pair of states of the first robot represented by respective ones of a pair of nodes of the first planning graph, the respective pair of nodes which are coupled by a respective edge of the first planning graph, the respective edge which represents a transition between the respective pair of states of the first robot;and identify any of the edges of the first planning graph that the corresponding transition would result in a collision between at least a portion of the robot and at least a portion of at least one of the one or more obstacles in the environment.
  20. 33
    34 The processor-based system of claim 33 wherein the at least one of processor-executable instructions or data, when executed by the at least one processor, further causes the at least one processor to perform any of the methods of claims 19 through 3235 A method of operation in a system to facilitate motion planning, the method comprising:for at least a first scenario that includes a set of a plurality of pairs of tasks and environments, for each of the pairs of tasks and environments of the at least the first scenario, for each of a plurality of iterations, generating a respective discretization of a representation of an environment in which a robot will operate by at least one processor, at least two of the respective discretizations comprising a respective set of voxels, where the voxels of the at least two of the respective discretizations are non- homogenous in at least one of size and shape within the respective discretization, and a respective distribution of the non-homogeneousness of the voxels of the at least two of the respective discretizations is different from one another;assessing an effectiveness of the generated respective discretizations of the representation of the environment in which the robot will operate;and storing to at least one nontransitory processor-readable media at least the generated respective discretizations of the representation of the environment in which the robot will operate that is assessed to be the most effective for at least the first scenario.
  21. 35
    37. The method of claim 35 wherein generating a respective discretization of a representation of an environment in which a robot will operate by at least one processor includes generating a first respective discretization in which each of a plurality of the voxels of a first region in a front of the robot has a first volume, a plurality of the voxels of a second region in a front of the robot has a second volume, the second volume different than the first volume.
  22. 50
    52. A processor-based system to facilitate motion planning, the system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: for at least a first scenario that includes a set of a plurality of pairs of tasks and environments, for each of the pairs of tasks and environments of the at least the first scenario. for each of a plurality of iterations, generate a respective discretization of a representation of an environment in which a robot will operate by at least one processor, at least two of the respective discretizations comprising a respective set of voxels, where the voxels of the at least two of the respective discretizations are non-homogenous in at least one of size and shape within the respective discretization, and a respective distribution of the non-homogeneousness of the voxels of the at least two of the respective discretizations is different from one another;assess an effectiveness of the generated respective discretizations of the representation of the environment in which the robot will operate;and store to at least one nontransitory processor-readable media at least the generated respective discretizations of the representation of the environment in which the robot will operate that is assessed to be the most effective for at least the first scenario.
  23. 52
    54 A method of operation in a system to facilitate motion planning, the method comprising:based at least in part on an identified scenario that classifies a pair of a task which a robot will perform and an environment in which the robot will operate, determining which of a number of discretizations to use to generate a number of swept volumes that represent respective regions through which at least a portion of the robot will pass when transitioning between one state of the robot and another state of the robot;for each of a plurality of edges in a planning graph, determining a respective swept volume of the edge using the determined discretization, the planning graph comprising a plurality of nodes and a plurality of edges, each node which represents a respective one of a plurality of states of the robot, each of the edges coupling a respective pair of the nodes and representing a respective transition by the robot between the states represented by the respective nodes coupled by the respective edge;and storing to at least one nontransitory processor-readable media at least one of the determined swept volume ’ s respective discretizations of the representation of the environment in which the robot will operate that is assessed to be the most effective for at least the identified scenario.
  24. 54
    56. The method of claim 54 wherein determining a respective swept volume of the edge using the determined discretization includes determining the respective swept volume of the edge using the determined discretization in which each of a plurality of the voxels of at least one region in a front of the robot has a relatively small volume as compared to a respective volume of each of a plurality of the voxels in at least one region behind the robot.
  25. 67
    69. The method of any of claims 54 through 68 wherein the at least one processor is at least one of a field programmable gate array or application specific integrated circuit, and further comprising:applying a respective set of edge information to each of a plurality of circuits of the at least one processor implemented in the at least one of a fieldprogrammable gate array or application specific integrated circuit, the respective set of edge information which represents the respective swept volume swept by at least a portion of the robot in transitioning between a pair of states of the robot.
  26. 68
    70 A processor-based system to facilitate motion planning, the system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: based at least in part on an identified scenario that classifies a pair of a task which a robot will perform and an environment in which the robot will operate, determine which of a number of discretizations to use to generate a number of swept volumes that represent respective regions through which at least a portion of the robot will pass when transitioning between one state of the robot and another state of the robot;for each of a plurality of edges in a planning graph, determine a respective swept volume of the edge using the determined discretization, the planning graph comprising a plurality of nodes and a plurality of edges, each node which represents a respective one of a plurality of states of the robot, each of the edges coupling a respective pair of the nodes and representing a respective transition by the robot between the states represented by the respective nodes coupled by the respective edge;and store to at least one nontransitory processor-readable media at least one of the determined swept volume’s respective discretizations of therepresentation of the environment in which the robot will operate that is assessed to be the most effective for at least the identified scenario.
  27. 70
    72. A method of operation in a system to facilitate motion planning, the method comprising:based at least in part on an identified scenario that classifies a pair of a task which a robot will perform and an environment in which the robot operates, determining which of a number of discretizations to use to generate a discretized representation of the environment, including obstacles, if any, in the environment;receiving sensor information produced by one or more sensors that sense the environment, the sensor information which represents the environment, including obstacles, if any, in the environment;and generating a discretized representation of the environment, including obstacles, if any, in the environment using the determined discretization, wherein a plurality of voxels of the determined discretization are non-homogenous in at least one of size and shape within the respective discretization, and a respective distribution of the non-homogeneousness of the voxels of the determined discretization is different from that of another one of the number of discretizations.
  28. 72
    74. The method of claim 72 wherein generating a discretized representation of the environment, including obstacles, if any, in the environment includes generating the discretized representation of the environment using a distribution of voxel size and shape that matches a distribution of voxel size and shape used to generate a discretized representation of a swept volume.
  29. 88
    90. The method of any of claims 72 through 89 wherein the at least one processor is at least one of a field programmable gate array or application specific integrated circuit, and further comprising:applying the discretized representation of the environment to each of a plurality of circuits implemented in the at least one of a field programmable gate array or application specific integrated circuit.
  30. 89
    91. A processor-based system to facilitate motion planning, the system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: based at least in part on an identified scenario that classifies a pair of a task which a robot will perform and an environment in which the robot operates, determine which of a number of discretizations to use to generate a discretized representation of the environment, including obstacles, if any, in the environment;receive sensor information produced by one or more sensors that sense the environment, the sensor information which represents the environment, including obstacles, if any, in the environment;and generate a discretized representation of the environment, including obstacles, if any, in the environment using the determined discretization, wherein a plurality of voxels of the determined discretization are non-homogenous in at least one of size and shape within the respective discretization, and a respective distribution of the non-homogeneousness of the voxels of the determined discretization is different from that of another one of the number of discretizations.
  31. 91
    93. A method of operation in a robot control system that employs a plurality of planning graphs, each planning graph respectively comprising a plurality of nodes connected by a plurality of edges, each node which represents, implicitly or explicitly, variables that characterize a respective state of the first robot, and each edge which represents a transition between a respective pair of the states of the first robot, where the respective pair of states is represented by a respective ones of a pair of nodes that are coupled by a respective edge in the respective planning graph, the method comprising:for a first planning graph of the plurality of planning graphs, for each of a plurality of edges of the first planning graph performing collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate;updating the first planning graph based on the collision checking;performing an optimization of the updated first planning graph to identify one or more optimized results, if any, from the updated first planning graph;determining whether the one or more optimized results, if any, from the updated first planning graph meets a satisfaction condition;in response to determining that the optimized result does not meet the satisfaction condition: for each of a plurality of edges of the second planning graph performing collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate, updating the second planning graph based on the collision checking;and performing an optimization of the updated second planning graph to identify one or more optimized results, if any, from the updated second planning graph.
  32. 94
    96. The method of claim 94 wherein, in response to determining that the one or more optimized results, if any, from the updated second planning graph does not meet the satisfaction condition:for each of a plurality of edges of a third planning graph performing collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate, updating the third planning graph based on the collision checking;and performing an optimization of the updated third planning graph to identify one or more optimized results, if any, from the updated third planning graph.
  33. 98
    100. The method of any of claims 93 through 99 wherein performing collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate includes, for each of the edges in the first planning graph, applying a set of edge information for the edges to each of a plurality of circuits in parallel, the circuits which each represent a respective unit volume occupied by an obstacle in the environment in which the robot operates.
  34. 100
    102. A processor-based robot control system that employs a plurality of planning graphs, each planning graph respectively comprising a plurality of nodes connected by a plurality of edges, each node which represents, implicitly or explicitly, variables that characterize a respective state of the first robot, and each edge which represents a transition between a respective pair of the states of the first robot, where the respective pair of states is represented by a respective ones of a pair of nodes that are coupled by a respective edge in the respective planning graph, the system comprising:at least one processor;and at least one nontransitory processor-readable medium that stores at least one of processor-executable instructions or data which, when executed by the at least one processor, causes the at least one processor to: for a first planning graph of the plurality of planning graphs, for each of a plurality of edges of the first planning graph perform collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate;update the first planning graph based on the collision checking;perform an optimization of the updated first planning graph to identify one or more optimized results, if any, from the updated first planning graph;determine whether the one or more optimized results, if any, from the updated first planning graph meets a satisfaction condition;in response to determining that the optimized result does not meet the satisfaction condition: for each of a plurality of edges of the second planning graph perform collision checking for collisions between a discretized representation of a swept volume associated with the edge and a discretized representation of any obstacles in an environment in which the robot will operate, update the second planning graph based on the collision checking;and perform an optimization of the updated second planning graph to identify one or more optimized results, if any, from the updated second planning graph.
Independent claims34