US20230109223A1 - Intelligent clear path - Google Patents
Intelligent clear path Download PDFInfo
- Publication number
- US20230109223A1 US20230109223A1 US17/493,087 US202117493087A US2023109223A1 US 20230109223 A1 US20230109223 A1 US 20230109223A1 US 202117493087 A US202117493087 A US 202117493087A US 2023109223 A1 US2023109223 A1 US 2023109223A1
- Authority
- US
- United States
- Prior art keywords
- robot
- recovery
- recovery path
- affected
- workcell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011084 recovery Methods 0.000 claims abstract description 150
- 238000000034 method Methods 0.000 claims abstract description 80
- 230000033001 locomotion Effects 0.000 claims description 49
- 238000004088 simulation Methods 0.000 claims description 38
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000013459 approach Methods 0.000 claims description 6
- 210000000707 wrist Anatomy 0.000 claims description 6
- 239000007787 solid Substances 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 4
- 238000011960 computer-aided design Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000010422 painting Methods 0.000 description 8
- 229910003460 diamond Inorganic materials 0.000 description 6
- 239000010432 diamond Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 239000003973 paint Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000003466 welding Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000010420 art technique Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000007592 spray painting technique Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007591 painting process Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 210000003857 wrist joint Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- G06N5/003—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40311—Real time simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40476—Collision, planning for collision free path
Definitions
- the present disclosure relates to the field of industrial robot motion planning and, more particularly, to a technique for automatically finding a collision-free return-to-home path for a robot, including virtually emulating the physical robot and workcell in real time, calculating a return-to-home path program which moves the robot from a current position to its home position while avoiding collisions with any object in the workcell, and executing the solution program by the physical robot.
- a large workpiece such as a vehicle body on a conveyor which is being operated on by the robot may itself be an obstacle, as the robot must maneuver in or around the workpiece while performing an operation such as welding or painting. Collisions between the robot and any obstacle must absolutely be avoided.
- Robots occasionally get “stuck” where the executing programs are aborted and they must be moved from a current position back to their home position in order to recover and resume automatic execution on the next part.
- Executing programs may be aborted for various reasons such as a robot mechanical, electrical or position error as well as process equipment failures. Because each such recovery situation is different, a unique robot motion (path plan) must be calculated which moves the robot from the current position to the home or recovery position while avoiding collisions between any part of the robot and any other robot, workpiece or obstacle in the workspace.
- One existing technique is for an operator to use a teach pendant to manually “jog” or move the robot to extricate it from the problematic situation and eventually return it to a home or recovery position.
- manually jogging the robot without accidentally causing a collision requires great operator skill, and might be nearly impossible even for an expert operator.
- Another existing technique is to define recovery path programs in advance which can be used as needed to get a robot home from a stuck position.
- it is very difficult to create recovery path programs which anticipate every possible situation that the robot could find itself in.
- a technique for automatically finding a collision-free return-to-home path for a robot includes running a simulated virtual 3D environment which emulates the physical robot and workcell in real time, including the positions and poses of all robots, workpieces and obstacles in the workcell.
- a return-to-home path search is executed based on the virtual 3D environment, where the path search calculates a solution which moves the robot from a current position to its home or recovery position while avoiding collisions with other robots, workpieces or objects in the workcell.
- the path search considers other constraints such as prohibited zones within the workspace and robot joint positions.
- the solution program is sent back to the physical environment for execution by the physical robot.
- FIG. 1 is an illustration of a painting robot workcell including two painting robots (one of which is shown in two different positions) and a conveyor moving vehicle bodies to be painted, depicting an environment where a clear recovery path program calculation may occasionally be needed;
- FIG. 2 is a simplified block data flow diagram illustrating how data is received in a virtual simulation environment and used to compute a clear recovery path which is then transferred back to a physical robot for execution, according to an embodiment of the present disclosure
- FIG. 3 is a block diagram illustrating the elements of a physical robot workcell and the corresponding virtual simulation environment for computing a clear recovery path when needed, according to an embodiment of the present disclosure
- FIG. 4 is a two-dimensional illustration of a Rapidly-Exploring Random Tree (RRT) search algorithm attempting to find a clear recovery path from a current robot position to a home or recovery position, including building a partial home tree, according to an embodiment of the present disclosure
- RRT Rapidly-Exploring Random Tree
- FIG. 5 is a two-dimensional illustration of a move feasibility check technique employed to evaluate each proposed new node in the tree built by the RRT algorithm, including dividing each proposed node step into discrete increments and evaluating multiple criteria at each increment, according to an embodiment of the present disclosure
- FIG. 6 is a flowchart diagram of a method for executing a clear recovery path search using the specialized RRT algorithm depicted in FIG. 4 and the move feasibility check technique of FIG. 5 , according to an embodiment of the present disclosure.
- FIG. 7 is a flowchart diagram of a method for robot clear recovery path computation using a virtual simulation environment mirroring a physical robot workcell environment, according to an embodiment of the present disclosure.
- obstacles are present and may be in the path of the robot's motion—that is, the obstacles may be located between where a robot is currently positioned and the robot's destination position.
- the obstacles may be permanent structures such as machines and fixtures, or the obstacles may be temporary or mobile.
- a large workpiece which is being operated on by the robot may itself be an obstacle, as the robot must maneuver in or around the workpiece while performing an operation such as welding or painting.
- Techniques have been developed in the art for computing robot motions such that the tool follows a path which avoids collision of the robot with any defined obstacles.
- robots occasionally get “stuck” where the executing programs are aborted and they must be moved from a current position back to their home position in order to recover and resume automatic execution on the next part. Because each such recovery situation is different, a unique robot motion (path plan) must be calculated which moves the robot from the current position to the home or recovery position while avoiding collisions between any part of the robot and any other robot, workpiece or obstacle in the workspace.
- FIG. 1 is an illustration of a painting robot workcell 100 including two painting robots ( 110 , 120 ) and a conveyor 130 moving a vehicle body 140 to be painted.
- the workcell 100 depicts an environment where a clear recovery path program calculation for one or more robots may occasionally be needed. For example, if the conveyor 130 stops while the robot 110 is in a position 110 A where it has reached inside a window or door of the vehicle body 140 to paint an interior surface, movement of the robot 110 back to its home or recovery position 1108 will need to be performed very carefully to ensure that there is no contact between any part of the robot 110 and any part of the vehicle body 140 or any other object in the workcell 100 .
- FIG. 1 illustrates just one example of an environment where a clear recovery path may need to be computed. Other examples include robots used for machine tending, pick-and-place robots, welding and material dispensing robots, and virtually any robot that operates in a workcell with other robots or fixed or moving obstacles and/or workpieces.
- One existing technique is for an operator to use a teach pendant to manually “jog” or move the robot to extricate it from the problematic situation and eventually return it to a home or recovery position.
- manually jogging the robot without accidentally causing a collision requires great operator skill, and might be problematic even for an expert operator.
- Another existing technique is to define recovery path programs in advance which can be used as needed to get a robot home from a stuck position.
- it is very difficult to create recovery path programs which anticipate every possible situation that the robot could find itself in.
- the present disclosure describes a technique for computing a clear recovery path for one or more robots in a workcell which provides advantages over existing techniques.
- the presently disclosed method and system operate automatically to compute the clear recovery path when needed, and transfer the computed recovery path program to the physical robot(s) for execution.
- the disclosed technique performs collision avoidance checks based on actual geometries, and evaluates other important criteria when computing recovery path points, thus ensuring that the computed solution is robust and feasible.
- FIG. 2 is a simplified block data flow diagram 200 illustrating how data is received in a virtual simulation environment and used to compute a clear recovery path which is then transferred back to a physical robot for execution, according to an embodiment of the present disclosure.
- a physical environment 210 is an actual physical workcell such as the one depicted in FIG. 1 —including one or more robot, each with its corresponding controller.
- each robot is programmed to perform a different task—such as painting a different part of a vehicle body.
- a master workcell controller runs software which communicates and coordinates actions with all of the individual robot controllers.
- the master workcell controller may be a programmable logic controller (PLC), for example.
- PLC programmable logic controller
- An operator has a user interface to software which communicates with the PLC.
- a virtual environment 220 includes a simulation system 230 which is software which emulates the physical environment 210 in real time during robot operations.
- the simulation system 230 receives job queue data from the physical environment 210 as indicated by arrow 240 .
- the job queue data includes information such as the type, sequence and timing of workpieces being processed in the workcell, which data is available from the PLC.
- the simulation system 230 also receives conveyor position data, if present, from the physical environment 210 as indicated by arrow 250 .
- the conveyor position data is also available from the PLC and, together with the job queue data, enables determination of the identity and location of each workpiece in the workcell.
- the workpieces are obstacles which the robots must avoid at all times—including during normal operations, and during a return-to-home recovery action.
- the simulation system 230 receives robot position data from the physical environment 210 as indicated by arrow 260 .
- the robot position data includes joint positions for all robots in the workcell, which data is available from the robot controllers.
- the simulation system 230 computes the clear recovery path and transfers the clear path motion program back to the physical environment 210 as indicated by arrow 270 .
- the system of FIG. 2 described above is one example of a clear recovery path implementation which has been developed for a multi-robot spray painting line. It is to be understood that many other types of robotic systems—such as laser welders, machine tending systems, etc.—can benefit from the clear recovery path computation techniques of the present disclosure. As long as the clear recovery path computation routine is able to receive data defining the current positions, orientations and shapes of the robot(s) and all obstacles, the clear recovery path can be computed.
- FIG. 3 is a block diagram illustrating the elements of a physical robot workcell and the corresponding virtual simulation environment for computing a clear recovery path when needed, according to an embodiment of the present disclosure. Where FIG. 2 provided a high level depiction of data flow for the clear recovery path computation technique, FIG. 3 illustrates the individual hardware and software elements in block diagram form.
- a physical environment 310 represents a workcell which, continuing with the example described above, is a painting process line with multiple spray painting robots.
- a virtual environment 360 includes software which mirrors the physical environment 310 and computes the clear recovery path when needed.
- the physical environment 310 includes a robot 320 with its corresponding controller 330 .
- a multi-robot workcell such as the one shown in FIG. 1
- each robot may be programmed to perform a different task—such as painting a different part of a vehicle body.
- a master workcell controller 340 running software which communicates and coordinates actions with all of the individual robot controllers.
- the master workcell controller 340 may be a programmable logic controller (PLC), and will often be referred to as such.
- PLC 340 communicates with a computer 350 which runs operator workcell control software 352 including a graphical user interface (GUI) which enables an operator 354 to monitor and control the physical environment 310 via a display device.
- GUI graphical user interface
- the virtual environment 360 includes a simulation system 370 which is software which emulates the physical environment 310 in real time during robot operations.
- the simulation system 370 corresponds with the simulation system 230 of FIG. 2 .
- a robot server system 380 serves as data collector for all robots in the physical environment 310 and the virtual environment 360 .
- the simulation system 370 and the robot server system 380 may run on the same computer 350 as the operator workcell control software 352 , or the simulation system 370 and the robot server system 380 may run on a separate computer 362 .
- data interfaces exist between the robot controller 330 (and all robot controllers) and the robot server system 380 (arrow 382 ) and between the operator workcell control software 352 and the robot server system 380 (arrow 384 ), as well as directly between the operator workcell control software 352 and the simulation system 370 (arrow 386 ).
- data interfaces exist between the robot controller 330 and the PLC 340 , and the PLC 340 and the operator workcell control software 352 (arrows 392 and 394 ).
- Another data interface exists between the simulation system 370 and the robot server system 380 (arrow 396 ).
- the simulation system 370 knows the model type and base location of every robot in the workcell, and has solid model data representing each arm of each robot, thus enabling computation of robot 3D geometry at all times based on robot joint position data.
- Robot position data includes the position along a rail for rail-mounted robots as shown in FIG. 1 .
- the simulation system 370 also has solid models defining each type of workpiece which may be processed in the workcell.
- the simulation system 370 includes solid models defining the size, shape and location of all fixed obstacles in the workcell. Using all of the data discussed above, the simulation system 370 emulates or mirrors the operation of the physical environment 310 in real time.
- the operator 354 may request a clear recovery path to be computed by the simulation system 370 .
- the simulation system 370 knows the exact location of all workpieces and the exact pose of all robots in the physical environment 310 , and also knows the home or recovery position of the robot which needs the clear recovery path.
- the simulation system 370 computes the clear recovery path and transfers the clear path motion program back to the physical environment 310 .
- the operator 354 can then interact with the GUI of the operator workcell control software 352 to instruct the affected robot to return to its home or recovery position using the clear path motion program.
- Rapidly-Exploring Random Tree is a known algorithm for finding a path through a geometric space while avoiding obstacles.
- RRT is designed to efficiently search nonconvex, high-dimensional spaces by randomly building a space-filling tree. The tree is constructed incrementally from samples drawn randomly from the search space and is inherently biased to grow towards large unsearched areas of the problem.
- RRT provides a good framework for the clear recovery path computation
- Many robots include a redundant kinematic axis which improves reachability and allows the robot to satisfy a tool center point motion in more than one joint configuration.
- Advanced robot motion planning also requires consideration of robot “posture” (e.g., “arm 2 up” vs. “arm 2 down”), and turn number counting for joints which can rotate more than one full turn during robot motion.
- Robot wrist joint orientation must also be considered.
- work envelopes may be quite large, especially when considering all robotic degrees of freedom, and collision avoidance checking of all parts of the robot with respect to all potential obstacles. Each of the factors mentioned above leads to increased calculation time, and/or an inability to return a successful solution.
- the present disclosure provides techniques for computing a collision-free clear recovery path for a robot in a complex geometric environment using a specialized RRT algorithm.
- the clear recovery path computation method of the present disclosure overcomes the limitations described above, and efficiently provides a collision-free, feasible recovery path for the robot whenever possible.
- FIG. 4 is a two-dimensional (2D) illustration of a Rapidly-Exploring Random Tree (RRT) search algorithm attempting to find a clear recovery path from a robot current or start position to a home or recovery position, including building a partial home tree, according to an embodiment of the present disclosure.
- a start position 410 is the position where the robot faulted or “got stuck”.
- a recovery position 420 is the robot home position or some other safe position where the robot is extricated from the obstacle field.
- Obstacles 430 and 432 are moving obstacles such as parts of a workpiece moving on a conveyor, or hinged parts (e.g., vehicle doors, hoods) which may be moved to different positions relative to the body of the workpiece.
- Obstacles 440 - 448 are fixed obstacles in the robotic workcell—such as walls, robot longitudinal mounting rails, paint applicator cleaning stations, and other structures.
- FIG. 4 is illustrated in 2D for clarity, it is to be understood that the actual specialized RRT algorithm of the present disclosure computes robot configurations and interference checks in three dimensions (3D) using actual solid model geometry of all robot parts and all obstacles.
- the simulation system 370 knows the configuration of the robot and therefore the 3D geometry of all robot arms, knows the position of the workpieces and therefore the 3D geometry of the obstacles 430 and 432 , and of course knows the 3D geometry of the fixed obstacles 440 - 448 . All of this 3D geometry is known in a workcell coordinate frame.
- the start position 410 in FIG. 4 represents the robot position 110 A of FIG. 1 .
- the recovery position 420 in FIG. 4 represents the robot position 1106 of FIG. 1 .
- the objective of the clear recovery path computation is to determine a sequence of robot moves which “back the robot out” of the obstacle field and return it to its recovery position—while avoiding any collisions and satisfying all robot configuration constraints along the way.
- the specialized RRT algorithm of the present disclosure creates a random position (node) within the robot work envelope.
- the start position 410 is the only possible parent node in the tree.
- the disclosed method determines whether the robot can move from the parent node to the new proposed node while satisfying all collision avoidance constraints and robot configuration constraints. This determination is made using a move feasibility check technique, discussed below with respect to FIG. 5 . If the robot can move successfully from the parent node to the new proposed node, then the new proposed node is added as a child node and a tree branch is created or extended.
- the process then returns to creating a new proposed node, and finds the nearest neighbor of the new proposed node—where the nearest neighbor could be the start position 410 , or a previously added node in the tree.
- the nearest neighbor is identified as the parent of the new proposed node.
- the disclosed method determines whether the robot can move from the parent node to the new proposed node while satisfying all collision avoidance constraints and robot configuration constraints, using the move feasibility check technique mentioned above.
- the technique of the present disclosure adds two steps which enable a solution to be found much more quickly and efficiently, while evaluating all of the collision avoidance and robot kinematics criteria involved in the clear recovery path search.
- a home tree can be defined in advance by a user, and branches of the home tree may be used during clear recovery path computation to reduce the amount of random searching by the RRT algorithm.
- the home tree includes branches leading from the recovery position 420 to a home tree node 422 and a home tree node 424 .
- the home tree nodes 422 and 424 are robot positions from which the robot can be moved to the home or recovery position 420 through a short sequence of straightforward motions.
- the home tree node 422 may represent a robot configuration where the paint applicator is located just outside a window of a vehicle body.
- the home tree node 424 which might be located just outside of a vehicle hood opening.
- each home tree motion program defines a short sequence of robot motions leading from the recovery position 420 to a helpful position, typically clear of most obstacles, such as the home tree nodes 422 and 424 discussed above.
- each home tree motion program is simulated to determine if it is free of collisions and if the posture of the robot after the home tree motion program matches the posture of the robot at the start position 410 . If so, then that home tree motion is added as a home tree branch.
- Several home tree motion programs may be defined for a physical workcell. In FIG.
- the branches that lead to the home tree nodes 422 and 424 are assumed to have met the criteria mentioned above. Any home tree branches, which meet the criteria and are added to the configuration space, provide more goal or target points for the RRT algorithm to reach as a final destination.
- a second technique which is employed in the method of the present disclosure is to occasionally (randomly) try to move directly from a feasible branch node to the recovery position 420 , or to one of the home tree nodes 422 / 424 (if used). This includes checking the feasibility of moving directly from the start position 410 to the recovery position 420 , as such a direct move may be possible in some circumstances. Proposed moves directly to the recovery position 420 are evaluated using the move feasibility check technique mentioned above. If a proposed move from a branch node to one of the nodes 420 / 422 / 424 is found to be feasible, then the random exploration of the configuration space can be stopped, as a complete feasible recovery path will have been defined from the start position 410 to the recovery position 420 . This technique of evaluating a direct move to the recovery position 420 or to one of the home tree nodes 422 / 424 can be attempted at any suitable regular interval (such as after every fifth branch node) or randomly.
- the complete recovery path (bold lines) consists of a start tree branch 450 (constructed by organic RRT growth from the start position 410 to the home tree node 424 ) and a home tree branch 452 (user defined from the recovery position 420 to the home tree node 424 ).
- the complete recovery path motion program is then transferred back to the physical environment where the recovery path motion program is used by the robot controller 330 to move the robot 320 back to its recovery position.
- a clear recovery path is needed for more than one robot in the physical environment 310 , in which cases the clear recovery path is computed for each robot in the manner described above.
- FIG. 5 is a two-dimensional illustration of a move feasibility check technique employed to evaluate each proposed new node in the tree built by the RRT algorithm, including dividing each proposed node step into discrete increments and evaluating multiple criteria at each increment, according to an embodiment of the present disclosure.
- a node 510 is a start node in the robot configuration space
- a node 520 is a goal node.
- the node 510 is typically a feasible branch node that has previously been identified, or may also be the start position 410 .
- the node 520 may be a new proposed node being evaluated by the RRT algorithm, or may be one of the home tree nodes 422 or 424 .
- collision avoidance is a key criteria, including avoiding contact between any part of any of the robot arms and any of the obstacles or other robots.
- a tolerance layer may be defined to also prevent near-misses within a certain distance (such as 5 mm) of part-to-part contact.
- safety zones may be defined in the robot workcell which must also be avoided. These safety zones may define a space that an operator may occupy, for example.
- robot kinematics must be evaluated for each proposed move. First, it must be determined whether the proposed node positions is reachable by the robot. Additionally, several different kinematics and joint configuration criteria are preferably evaluated—including optimally configuring any redundant kinematic axis, evaluating wrist orientation, determining whether robot posture changes are involved in a proposed move, evaluating joint turns and “unwinding” any joints which have rotated more than a full turn, etc.
- the objective of these advanced robot kinematics considerations and criteria is to find a robot clear recovery path which is smooth and well behaved—that is, does not pass through joint singularity points, does not approach joint motion limits, and does not involve “wrist flips” or sudden posture changes by the robot as the clear recovery path motion is executed.
- One approach for evaluating a proposed move from the node 510 to the node 520 would be to run a tool center point move calculation program and check for any errors along the way.
- this approach can have difficulty evaluating all of the aforementioned collision avoidance and robot kinematics considerations throughout the continuous motion, and as a result the move calculation program may take a long time to run.
- An alternate approach used in the presently disclosed method is to divide the proposed move into a sequence of discrete increments, and evaluate the robot criteria at each of the increments rather than in a continuous path along the way.
- a proposed home move or a new proposed branch node may be divided into discrete increments using either joint space interpolation or linear interpolation.
- FIG. 5 illustrates the proposed move divided into increments using joint space interpolation—where the joint motions required to move from the node 510 to the node 520 are equally divided into five increments, and the resulting tool center point motion follows a curved path in space rather than a straight line in space.
- a linear interpolation could be used—where tool center point motion follows a straight line in space through all five increments.
- the number of increments used in evaluating each proposed move, and whether joint space interpolation or linear interpolation is used, are matters of design choice.
- the proposed move from the node 510 to the node 520 is divided into five increments, with incremental positions 530 , 532 , 534 and 536 .
- an obstacle 540 is the only obstacle between the node 510 and the node 520 .
- a 2D illustration is used to improve clarity, but it is to be understood that all joint calculations and interference checks are performed using full 3D geometry of the robot and the obstacles.
- the incremental position 530 is first evaluated. This is done by “snapping” the robot to the position 530 (moving the robot to the position in the simulation system) and evaluating all of the collision avoidance and robot kinematics considerations at this discrete position. If no interferences are identified at the position 530 , and if all robot kinematics are well behaved (no singularities reached, same robot posture and no joint flips between the node 510 and the position 530 , etc.), then the position 530 is determined to be feasible. The process is then repeated for the positions 532 and 534 , which are both found to be feasible in this example.
- the position 536 When the position 536 is evaluated, it is determined to be infeasible due to a collision with the obstacle 540 . This could be a collision of the robot end-of-arm tool with the obstacle 540 , or a collision of some part of one of the robot arms as the robot flexes. Because the position 536 is infeasible, the proposed move from the node 510 to the node 520 is infeasible. However, rather than discard the proposed move from the node 510 to the node 520 entirely, in one embodiment of the disclosed method, the feasible incremental position closest to the goal node 520 is identified as a new feasible branch node. In the example of FIG. 5 , the new feasible branch node is the position 534 . If all of the positions 530 - 536 had been found to be feasible, along with the goal node 520 itself, then the goal node 520 would be identified as a new feasible branch node.
- the move feasibility check technique described above improves the robustness of the clear recovery path computation by enabling many collision avoidance and robot kinematics considerations to be evaluated, while performing the calculations in a manner which is efficient enough to be performed thousands of times as needed when embedded in the RRT algorithm.
- FIG. 6 is a flowchart diagram 600 of a method for executing a clear recovery path search using the specialized RRT algorithm depicted in FIG. 4 and the move feasibility check technique of FIG. 5 , according to an embodiment of the present disclosure.
- the method determines whether a straight line move from the start position 410 (qStart) to the recovery position 420 (qHome) is possible without collision. If yes, then at box 604 the clear recovery path has been identified and the process is completed.
- “q” is used to designate a robot configuration including tool center point Cartesian coordinates and a set of robot posture designators (wrist flipped or not-flipped; elbow up or elbow down; wrist turn number; etc.).
- the process moves from the decision diamond 602 to box 606 , where home tree branches are constructed, if possible, from the user-defined home tree motion programs described earlier.
- decision diamond 608 if none of the user-defined home tree motion programs can be run successfully, then at box 610 the method continues with the recovery position 420 defined as qHome but no home tree branches. Again, in order for a home tree branch to be added, the home tree motion program is simulated and must be determined to be free of collisions and the posture of the robot after the home tree motion program must match the posture of the robot at the start position 410 .
- a proposed new node qRand is defined by the algorithm.
- the proposed new node qRand may be a randomly located node according to the RRT algorithm, or may be qHome or a node on a home tree branch. Connecting directly to qHome or a node on a home tree branch may be tried occasionally, at random, in the method.
- the move feasibility check technique of FIG. 5 is executed, to determine if the node qRand can be added as a new branch from its parent (previously identified feasible node).
- FIG. 7 is a flowchart diagram 700 of a method for robot clear recovery path computation using a virtual simulation environment mirroring a physical robot workcell environment, according to an embodiment of the present disclosure.
- a physical workcell including one or more industrial robots each with a controller, a plurality of fixed or moving workpieces and fixed obstacles.
- a three-dimensional (3D) simulation model which emulates the physical workcell in real time is run, on a computer having a processor and memory.
- the simulation model includes kinematics and 3D link geometry for the one or more robots, 3D geometry and position of the workpieces and 3D geometry of the obstacles.
- a clear recovery path computation is requested from the simulation model when an affected robot in the physical workcell encounters a problem.
- data is transferred from the physical workcell to the simulation model, including transferring position and status data about the one or more robots and the workpieces.
- the data transferred from the physical workcell provides the simulation model with a complete picture of the 3D positions of the robot(s) and the workpieces, which is needed in order to commence the search for a clear recovery path.
- a clear recovery path search is executed by the computer running the simulation model, where the path search generates a clear recovery path motion program between a current position of the affected robot and a recovery position of the affected robot. Details of the clear recovery path search method were shown on FIG. 6 and discussed above. When the clear recovery path is identified, a clear recovery path motion program is created which defines the robot joint motions needed to cause the robot to follow the computed clear recovery path.
- the clear recovery path motion program is transferred to the controller of the affected robot in the physical workcell, and at box 712 the clear recovery path motion program is executed by the affected robot in the physical workcell, which extricates the robot from the situation in which it was “stuck” and returns the robot to its home or recovery position.
- appropriate actions can be taken to return the workcell to production operations—where these actions may include restarting the workcell controller, troubleshooting individual robots or the conveyor, replacing components, etc.
- the disclosed techniques for computing a clear recovery path for a robot provide a robust and efficient means of extricating a robot from an arbitrary condition where it is stranded in a workcell.
- the disclosed techniques avoid the need for up-front modeling of recovery paths for every possible scenario of robot and workpiece positions, and provide many improvements and enhancements over known RRT path finding methods.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
Description
- The present disclosure relates to the field of industrial robot motion planning and, more particularly, to a technique for automatically finding a collision-free return-to-home path for a robot, including virtually emulating the physical robot and workcell in real time, calculating a return-to-home path program which moves the robot from a current position to its home position while avoiding collisions with any object in the workcell, and executing the solution program by the physical robot.
- The use of industrial robots to perform a wide range of manufacturing, assembly and material movement operations is well known. In many robot workspace environments, obstacles are present and may be in the path of the robot's motion. The obstacles may be permanent structures such as machines and fixtures, or the obstacles may be temporary or mobile. A large workpiece such as a vehicle body on a conveyor which is being operated on by the robot may itself be an obstacle, as the robot must maneuver in or around the workpiece while performing an operation such as welding or painting. Collisions between the robot and any obstacle must absolutely be avoided.
- Due to the complex nature of robotic workspaces—including fixed and moving obstacles, moving workpieces, and often multiple robots with interrelated motion plans—robots occasionally get “stuck” where the executing programs are aborted and they must be moved from a current position back to their home position in order to recover and resume automatic execution on the next part. Executing programs may be aborted for various reasons such as a robot mechanical, electrical or position error as well as process equipment failures. Because each such recovery situation is different, a unique robot motion (path plan) must be calculated which moves the robot from the current position to the home or recovery position while avoiding collisions between any part of the robot and any other robot, workpiece or obstacle in the workspace.
- Prior art techniques exist for returning a robot to its recovery position from a position where it is “stuck”. One existing technique is for an operator to use a teach pendant to manually “jog” or move the robot to extricate it from the problematic situation and eventually return it to a home or recovery position. However, when the robot is stuck in tight quarters, such as where the robot has reached inside a vehicle body to paint, manually jogging the robot without accidentally causing a collision requires great operator skill, and might be nearly impossible even for an expert operator. Another existing technique is to define recovery path programs in advance which can be used as needed to get a robot home from a stuck position. However, in complex environments with many moving objects, it is very difficult to create recovery path programs which anticipate every possible situation that the robot could find itself in.
- In light of the circumstances described above, there is a need for an improved technique for computing a clear recovery path for robots which can be employed as needed and under any circumstances.
- In accordance with the teachings of the present disclosure, a technique for automatically finding a collision-free return-to-home path for a robot is disclosed. The technique includes running a simulated virtual 3D environment which emulates the physical robot and workcell in real time, including the positions and poses of all robots, workpieces and obstacles in the workcell. Upon request by an operator, a return-to-home path search is executed based on the virtual 3D environment, where the path search calculates a solution which moves the robot from a current position to its home or recovery position while avoiding collisions with other robots, workpieces or objects in the workcell. In addition to collision avoidance, the path search considers other constraints such as prohibited zones within the workspace and robot joint positions. When the recovery path is computed, the solution program is sent back to the physical environment for execution by the physical robot.
- Additional features of the presently disclosed devices and methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings.
-
FIG. 1 is an illustration of a painting robot workcell including two painting robots (one of which is shown in two different positions) and a conveyor moving vehicle bodies to be painted, depicting an environment where a clear recovery path program calculation may occasionally be needed; -
FIG. 2 is a simplified block data flow diagram illustrating how data is received in a virtual simulation environment and used to compute a clear recovery path which is then transferred back to a physical robot for execution, according to an embodiment of the present disclosure; -
FIG. 3 is a block diagram illustrating the elements of a physical robot workcell and the corresponding virtual simulation environment for computing a clear recovery path when needed, according to an embodiment of the present disclosure; -
FIG. 4 is a two-dimensional illustration of a Rapidly-Exploring Random Tree (RRT) search algorithm attempting to find a clear recovery path from a current robot position to a home or recovery position, including building a partial home tree, according to an embodiment of the present disclosure; -
FIG. 5 is a two-dimensional illustration of a move feasibility check technique employed to evaluate each proposed new node in the tree built by the RRT algorithm, including dividing each proposed node step into discrete increments and evaluating multiple criteria at each increment, according to an embodiment of the present disclosure; -
FIG. 6 is a flowchart diagram of a method for executing a clear recovery path search using the specialized RRT algorithm depicted in FIG. 4 and the move feasibility check technique ofFIG. 5 , according to an embodiment of the present disclosure; and -
FIG. 7 is a flowchart diagram of a method for robot clear recovery path computation using a virtual simulation environment mirroring a physical robot workcell environment, according to an embodiment of the present disclosure. - The following discussion of the embodiments of the disclosure directed to a technique for automatically finding a collision-free feasible return-to-home path for a robot is merely exemplary in nature, and is in no way intended to limit the disclosed devices and techniques or their applications or uses.
- It is well known to use industrial robots for a variety of manufacturing, assembly and material movement operations. In many robot workspace environments, obstacles are present and may be in the path of the robot's motion—that is, the obstacles may be located between where a robot is currently positioned and the robot's destination position. The obstacles may be permanent structures such as machines and fixtures, or the obstacles may be temporary or mobile. A large workpiece which is being operated on by the robot may itself be an obstacle, as the robot must maneuver in or around the workpiece while performing an operation such as welding or painting. Techniques have been developed in the art for computing robot motions such that the tool follows a path which avoids collision of the robot with any defined obstacles.
- Due to the complex nature of some robotic workspaces—including fixed and moving obstacles, fixed and moving workpieces, and often multiple robots with interrelated motion plans—robots occasionally get “stuck” where the executing programs are aborted and they must be moved from a current position back to their home position in order to recover and resume automatic execution on the next part. Because each such recovery situation is different, a unique robot motion (path plan) must be calculated which moves the robot from the current position to the home or recovery position while avoiding collisions between any part of the robot and any other robot, workpiece or obstacle in the workspace.
-
FIG. 1 is an illustration of apainting robot workcell 100 including two painting robots (110, 120) and aconveyor 130 moving avehicle body 140 to be painted. Theworkcell 100 depicts an environment where a clear recovery path program calculation for one or more robots may occasionally be needed. For example, if theconveyor 130 stops while the robot 110 is in aposition 110A where it has reached inside a window or door of thevehicle body 140 to paint an interior surface, movement of the robot 110 back to its home or recovery position 1108 will need to be performed very carefully to ensure that there is no contact between any part of the robot 110 and any part of thevehicle body 140 or any other object in theworkcell 100.FIG. 1 illustrates just one example of an environment where a clear recovery path may need to be computed. Other examples include robots used for machine tending, pick-and-place robots, welding and material dispensing robots, and virtually any robot that operates in a workcell with other robots or fixed or moving obstacles and/or workpieces. - Prior art techniques exist for returning a robot to its recovery position from a position where it is “stuck”. One existing technique is for an operator to use a teach pendant to manually “jog” or move the robot to extricate it from the problematic situation and eventually return it to a home or recovery position. However, when the robot is stuck in tight quarters, manually jogging the robot without accidentally causing a collision requires great operator skill, and might be problematic even for an expert operator. Another existing technique is to define recovery path programs in advance which can be used as needed to get a robot home from a stuck position. However, in complex environments with many objects, it is very difficult to create recovery path programs which anticipate every possible situation that the robot could find itself in.
- The present disclosure describes a technique for computing a clear recovery path for one or more robots in a workcell which provides advantages over existing techniques. The presently disclosed method and system operate automatically to compute the clear recovery path when needed, and transfer the computed recovery path program to the physical robot(s) for execution. The disclosed technique performs collision avoidance checks based on actual geometries, and evaluates other important criteria when computing recovery path points, thus ensuring that the computed solution is robust and feasible.
-
FIG. 2 is a simplified block data flow diagram 200 illustrating how data is received in a virtual simulation environment and used to compute a clear recovery path which is then transferred back to a physical robot for execution, according to an embodiment of the present disclosure. Aphysical environment 210 is an actual physical workcell such as the one depicted inFIG. 1 —including one or more robot, each with its corresponding controller. In a multi-robot workcell such as the one shown inFIG. 1 , each robot is programmed to perform a different task—such as painting a different part of a vehicle body. In such a multi-robot workcell, a master workcell controller runs software which communicates and coordinates actions with all of the individual robot controllers. The master workcell controller may be a programmable logic controller (PLC), for example. An operator has a user interface to software which communicates with the PLC. - A
virtual environment 220 includes asimulation system 230 which is software which emulates thephysical environment 210 in real time during robot operations. Thesimulation system 230 receives job queue data from thephysical environment 210 as indicated byarrow 240. The job queue data includes information such as the type, sequence and timing of workpieces being processed in the workcell, which data is available from the PLC. Thesimulation system 230 also receives conveyor position data, if present, from thephysical environment 210 as indicated byarrow 250. The conveyor position data is also available from the PLC and, together with the job queue data, enables determination of the identity and location of each workpiece in the workcell. The workpieces are obstacles which the robots must avoid at all times—including during normal operations, and during a return-to-home recovery action. In addition, thesimulation system 230 receives robot position data from thephysical environment 210 as indicated byarrow 260. The robot position data includes joint positions for all robots in the workcell, which data is available from the robot controllers. Upon operator request, using the techniques of the present disclosure (discussed below), thesimulation system 230 computes the clear recovery path and transfers the clear path motion program back to thephysical environment 210 as indicated byarrow 270. - The system of
FIG. 2 described above is one example of a clear recovery path implementation which has been developed for a multi-robot spray painting line. It is to be understood that many other types of robotic systems—such as laser welders, machine tending systems, etc.—can benefit from the clear recovery path computation techniques of the present disclosure. As long as the clear recovery path computation routine is able to receive data defining the current positions, orientations and shapes of the robot(s) and all obstacles, the clear recovery path can be computed. -
FIG. 3 is a block diagram illustrating the elements of a physical robot workcell and the corresponding virtual simulation environment for computing a clear recovery path when needed, according to an embodiment of the present disclosure. WhereFIG. 2 provided a high level depiction of data flow for the clear recovery path computation technique,FIG. 3 illustrates the individual hardware and software elements in block diagram form. - A
physical environment 310 represents a workcell which, continuing with the example described above, is a painting process line with multiple spray painting robots. Avirtual environment 360 includes software which mirrors thephysical environment 310 and computes the clear recovery path when needed. - The
physical environment 310 includes arobot 320 with itscorresponding controller 330. In a multi-robot workcell such as the one shown inFIG. 1 , there would be additional robots besides therobot 320, and each robot may be programmed to perform a different task—such as painting a different part of a vehicle body. In such a multi-robot workcell, there would also be amaster workcell controller 340 running software which communicates and coordinates actions with all of the individual robot controllers. Themaster workcell controller 340 may be a programmable logic controller (PLC), and will often be referred to as such. ThePLC 340 communicates with acomputer 350 which runs operator workcellcontrol software 352 including a graphical user interface (GUI) which enables anoperator 354 to monitor and control thephysical environment 310 via a display device. - The
virtual environment 360 includes asimulation system 370 which is software which emulates thephysical environment 310 in real time during robot operations. Thesimulation system 370 corresponds with thesimulation system 230 ofFIG. 2 . Arobot server system 380 serves as data collector for all robots in thephysical environment 310 and thevirtual environment 360. Thesimulation system 370 and therobot server system 380 may run on thesame computer 350 as the operatorworkcell control software 352, or thesimulation system 370 and therobot server system 380 may run on aseparate computer 362. - In one embodiment, data interfaces exist between the robot controller 330 (and all robot controllers) and the robot server system 380 (arrow 382) and between the operator
workcell control software 352 and the robot server system 380 (arrow 384), as well as directly between the operatorworkcell control software 352 and the simulation system 370 (arrow 386). In addition, data interfaces exist between therobot controller 330 and thePLC 340, and thePLC 340 and the operator workcell control software 352 (arrows 392 and 394). Another data interface exists between thesimulation system 370 and the robot server system 380 (arrow 396). - The systems and interfaces described above depict a real system which has been developed and demonstrated to perform the clear recovery path computation techniques of the present disclosure. However, as would be understood by one skilled in the art, any suitable architecture of systems and interfaces may be used as long as the fundamental requirement is met—which is the ability to deliver data defining the status of the
physical environment 310 to thesimulation system 370 from wherever the data exists (such as robot position data from therobot controller 330, job queue data from thePLC 340, etc.). - The
simulation system 370 knows the model type and base location of every robot in the workcell, and has solid model data representing each arm of each robot, thus enabling computation ofrobot 3D geometry at all times based on robot joint position data. Robot position data includes the position along a rail for rail-mounted robots as shown inFIG. 1 . Thesimulation system 370 also has solid models defining each type of workpiece which may be processed in the workcell. In addition, thesimulation system 370 includes solid models defining the size, shape and location of all fixed obstacles in the workcell. Using all of the data discussed above, thesimulation system 370 emulates or mirrors the operation of thephysical environment 310 in real time. When thephysical environment 310 encounters a problem and the executing program has or must be aborted, theoperator 354 may request a clear recovery path to be computed by thesimulation system 370. At this point, using the transferred data described above, thesimulation system 370 knows the exact location of all workpieces and the exact pose of all robots in thephysical environment 310, and also knows the home or recovery position of the robot which needs the clear recovery path. Using the techniques of the present disclosure, thesimulation system 370 computes the clear recovery path and transfers the clear path motion program back to thephysical environment 310. Theoperator 354 can then interact with the GUI of the operatorworkcell control software 352 to instruct the affected robot to return to its home or recovery position using the clear path motion program. - Because the geometry of the robot, the workpiece and the other obstacles may be complex, and because interference checking must be performed between all parts of the robot and all potential obstacles, a closed-form solution for the recovery path is not possible. Instead, a search routine must be used which attempts to find the clear recovery path from the current position of the robot (where the robot is “stuck” or stranded, such as the
robot position 110A shown inFIG. 1 ) to the home or recovery position, using trial and error. - Rapidly-Exploring Random Tree (RRT) is a known algorithm for finding a path through a geometric space while avoiding obstacles. RRT is designed to efficiently search nonconvex, high-dimensional spaces by randomly building a space-filling tree. The tree is constructed incrementally from samples drawn randomly from the search space and is inherently biased to grow towards large unsearched areas of the problem.
- Although RRT provides a good framework for the clear recovery path computation, there are several limitations of a basic RRT algorithm in robotic collision avoidance path planning. Many robots include a redundant kinematic axis which improves reachability and allows the robot to satisfy a tool center point motion in more than one joint configuration. Advanced robot motion planning also requires consideration of robot “posture” (e.g., “
arm 2 up” vs. “arm 2 down”), and turn number counting for joints which can rotate more than one full turn during robot motion. Robot wrist joint orientation must also be considered. In addition, work envelopes may be quite large, especially when considering all robotic degrees of freedom, and collision avoidance checking of all parts of the robot with respect to all potential obstacles. Each of the factors mentioned above leads to increased calculation time, and/or an inability to return a successful solution. - The present disclosure provides techniques for computing a collision-free clear recovery path for a robot in a complex geometric environment using a specialized RRT algorithm. The clear recovery path computation method of the present disclosure overcomes the limitations described above, and efficiently provides a collision-free, feasible recovery path for the robot whenever possible.
-
FIG. 4 is a two-dimensional (2D) illustration of a Rapidly-Exploring Random Tree (RRT) search algorithm attempting to find a clear recovery path from a robot current or start position to a home or recovery position, including building a partial home tree, according to an embodiment of the present disclosure. Astart position 410 is the position where the robot faulted or “got stuck”. Arecovery position 420 is the robot home position or some other safe position where the robot is extricated from the obstacle field.Obstacles - Although
FIG. 4 is illustrated in 2D for clarity, it is to be understood that the actual specialized RRT algorithm of the present disclosure computes robot configurations and interference checks in three dimensions (3D) using actual solid model geometry of all robot parts and all obstacles. - When a problem is encountered in the robot workcell and the operator requests computation of a clear recovery path, all of the positional status data for the robot and the workpieces is transferred to the
simulation system 370, as discussed above. Thus, thesimulation system 370 knows the configuration of the robot and therefore the 3D geometry of all robot arms, knows the position of the workpieces and therefore the 3D geometry of theobstacles - The
start position 410 inFIG. 4 represents therobot position 110A ofFIG. 1 . Therecovery position 420 inFIG. 4 represents the robot position 1106 ofFIG. 1 . The objective of the clear recovery path computation is to determine a sequence of robot moves which “back the robot out” of the obstacle field and return it to its recovery position—while avoiding any collisions and satisfying all robot configuration constraints along the way. - From the
start position 410, the specialized RRT algorithm of the present disclosure creates a random position (node) within the robot work envelope. For the first new proposed node, thestart position 410 is the only possible parent node in the tree. The disclosed method then determines whether the robot can move from the parent node to the new proposed node while satisfying all collision avoidance constraints and robot configuration constraints. This determination is made using a move feasibility check technique, discussed below with respect toFIG. 5 . If the robot can move successfully from the parent node to the new proposed node, then the new proposed node is added as a child node and a tree branch is created or extended. - The process then returns to creating a new proposed node, and finds the nearest neighbor of the new proposed node—where the nearest neighbor could be the
start position 410, or a previously added node in the tree. The nearest neighbor is identified as the parent of the new proposed node. The disclosed method then determines whether the robot can move from the parent node to the new proposed node while satisfying all collision avoidance constraints and robot configuration constraints, using the move feasibility check technique mentioned above. - This process then repeats rapidly from all viable branches of the tree, exploring the configuration space (robot work envelope) to find feasible robot motions. Many of the branches will reach dead ends, where they are blocked by obstacles, or reach the edge of the configuration space, or have looped back inside existing branches. However, some branches will inevitably lead closer to the
recovery position 420. While some branches terminate at dead ends, many other branches will continue to be extended. - In a traditional RRT method, the random exploration of the configuration space would continue until a branch reaches the recovery position. However, the technique of the present disclosure adds two steps which enable a solution to be found much more quickly and efficiently, while evaluating all of the collision avoidance and robot kinematics criteria involved in the clear recovery path search.
- First, a home tree can be defined in advance by a user, and branches of the home tree may be used during clear recovery path computation to reduce the amount of random searching by the RRT algorithm. In
FIG. 4 , the home tree includes branches leading from therecovery position 420 to ahome tree node 422 and ahome tree node 424. Thehome tree nodes recovery position 420 through a short sequence of straightforward motions. For example, thehome tree node 422 may represent a robot configuration where the paint applicator is located just outside a window of a vehicle body. Similarly for thehome tree node 424, which might be located just outside of a vehicle hood opening. - For a particular workcell (physical environment), a user defines home tree motion programs in advance, before a clear recovery path search is needed. Each home tree motion program defines a short sequence of robot motions leading from the
recovery position 420 to a helpful position, typically clear of most obstacles, such as thehome tree nodes start position 410. If so, then that home tree motion is added as a home tree branch. Several home tree motion programs may be defined for a physical workcell. InFIG. 4 , the branches that lead to thehome tree nodes - A second technique which is employed in the method of the present disclosure is to occasionally (randomly) try to move directly from a feasible branch node to the
recovery position 420, or to one of thehome tree nodes 422/424 (if used). This includes checking the feasibility of moving directly from thestart position 410 to therecovery position 420, as such a direct move may be possible in some circumstances. Proposed moves directly to therecovery position 420 are evaluated using the move feasibility check technique mentioned above. If a proposed move from a branch node to one of thenodes 420/422/424 is found to be feasible, then the random exploration of the configuration space can be stopped, as a complete feasible recovery path will have been defined from thestart position 410 to therecovery position 420. This technique of evaluating a direct move to therecovery position 420 or to one of thehome tree nodes 422/424 can be attempted at any suitable regular interval (such as after every fifth branch node) or randomly. - In
FIG. 4 , the complete recovery path (bold lines) consists of a start tree branch 450 (constructed by organic RRT growth from thestart position 410 to the home tree node 424) and a home tree branch 452 (user defined from therecovery position 420 to the home tree node 424). As mentioned earlier, the complete recovery path motion program is then transferred back to the physical environment where the recovery path motion program is used by therobot controller 330 to move therobot 320 back to its recovery position. In some cases, a clear recovery path is needed for more than one robot in thephysical environment 310, in which cases the clear recovery path is computed for each robot in the manner described above. -
FIG. 5 is a two-dimensional illustration of a move feasibility check technique employed to evaluate each proposed new node in the tree built by the RRT algorithm, including dividing each proposed node step into discrete increments and evaluating multiple criteria at each increment, according to an embodiment of the present disclosure. InFIG. 5 , anode 510 is a start node in the robot configuration space, and anode 520 is a goal node. Thenode 510 is typically a feasible branch node that has previously been identified, or may also be thestart position 410. Thenode 520 may be a new proposed node being evaluated by the RRT algorithm, or may be one of thehome tree nodes - When a proposed home move or a new proposed branch node is to be evaluated, many criteria must be checked to determine the feasibility of the move to the new node. As discussed above, collision avoidance is a key criteria, including avoiding contact between any part of any of the robot arms and any of the obstacles or other robots. A tolerance layer may be defined to also prevent near-misses within a certain distance (such as 5 mm) of part-to-part contact. In addition to collision avoidance, safety zones may be defined in the robot workcell which must also be avoided. These safety zones may define a space that an operator may occupy, for example.
- Furthermore, many aspects of robot kinematics must be evaluated for each proposed move. First, it must be determined whether the proposed node positions is reachable by the robot. Additionally, several different kinematics and joint configuration criteria are preferably evaluated—including optimally configuring any redundant kinematic axis, evaluating wrist orientation, determining whether robot posture changes are involved in a proposed move, evaluating joint turns and “unwinding” any joints which have rotated more than a full turn, etc. The objective of these advanced robot kinematics considerations and criteria is to find a robot clear recovery path which is smooth and well behaved—that is, does not pass through joint singularity points, does not approach joint motion limits, and does not involve “wrist flips” or sudden posture changes by the robot as the clear recovery path motion is executed.
- One approach for evaluating a proposed move from the
node 510 to thenode 520 would be to run a tool center point move calculation program and check for any errors along the way. However, this approach can have difficulty evaluating all of the aforementioned collision avoidance and robot kinematics considerations throughout the continuous motion, and as a result the move calculation program may take a long time to run. An alternate approach used in the presently disclosed method is to divide the proposed move into a sequence of discrete increments, and evaluate the robot criteria at each of the increments rather than in a continuous path along the way. - A proposed home move or a new proposed branch node may be divided into discrete increments using either joint space interpolation or linear interpolation.
FIG. 5 illustrates the proposed move divided into increments using joint space interpolation—where the joint motions required to move from thenode 510 to thenode 520 are equally divided into five increments, and the resulting tool center point motion follows a curved path in space rather than a straight line in space. Alternately, a linear interpolation could be used—where tool center point motion follows a straight line in space through all five increments. The number of increments used in evaluating each proposed move, and whether joint space interpolation or linear interpolation is used, are matters of design choice. - In the example of
FIG. 5 , the proposed move from thenode 510 to thenode 520 is divided into five increments, withincremental positions obstacle 540 is the only obstacle between thenode 510 and thenode 520. Again inFIG. 5 , a 2D illustration is used to improve clarity, but it is to be understood that all joint calculations and interference checks are performed using full 3D geometry of the robot and the obstacles. - To evaluate the feasibility of the proposed move from the
node 510 to thenode 520, theincremental position 530 is first evaluated. This is done by “snapping” the robot to the position 530 (moving the robot to the position in the simulation system) and evaluating all of the collision avoidance and robot kinematics considerations at this discrete position. If no interferences are identified at theposition 530, and if all robot kinematics are well behaved (no singularities reached, same robot posture and no joint flips between thenode 510 and theposition 530, etc.), then theposition 530 is determined to be feasible. The process is then repeated for thepositions - When the
position 536 is evaluated, it is determined to be infeasible due to a collision with theobstacle 540. This could be a collision of the robot end-of-arm tool with theobstacle 540, or a collision of some part of one of the robot arms as the robot flexes. Because theposition 536 is infeasible, the proposed move from thenode 510 to thenode 520 is infeasible. However, rather than discard the proposed move from thenode 510 to thenode 520 entirely, in one embodiment of the disclosed method, the feasible incremental position closest to thegoal node 520 is identified as a new feasible branch node. In the example ofFIG. 5 , the new feasible branch node is theposition 534. If all of the positions 530-536 had been found to be feasible, along with thegoal node 520 itself, then thegoal node 520 would be identified as a new feasible branch node. - The move feasibility check technique described above improves the robustness of the clear recovery path computation by enabling many collision avoidance and robot kinematics considerations to be evaluated, while performing the calculations in a manner which is efficient enough to be performed thousands of times as needed when embedded in the RRT algorithm.
-
FIG. 6 is a flowchart diagram 600 of a method for executing a clear recovery path search using the specialized RRT algorithm depicted inFIG. 4 and the move feasibility check technique ofFIG. 5 , according to an embodiment of the present disclosure. After starting, atdecision diamond 602, the method determines whether a straight line move from the start position 410 (qStart) to the recovery position 420 (qHome) is possible without collision. If yes, then atbox 604 the clear recovery path has been identified and the process is completed. Throughout this discussion, “q” is used to designate a robot configuration including tool center point Cartesian coordinates and a set of robot posture designators (wrist flipped or not-flipped; elbow up or elbow down; wrist turn number; etc.). A complete robot pose—including the positions of all joints, and therefore the 3D positions and geometry of all robot arms—can be computed from “q” using inverse kinematics, as would be understood by one skilled in the art. - If the straight line move from the
start position 410 to therecovery position 420 is not possible without collision, then the process moves from thedecision diamond 602 tobox 606, where home tree branches are constructed, if possible, from the user-defined home tree motion programs described earlier. Atdecision diamond 608, if none of the user-defined home tree motion programs can be run successfully, then atbox 610 the method continues with therecovery position 420 defined as qHome but no home tree branches. Again, in order for a home tree branch to be added, the home tree motion program is simulated and must be determined to be free of collisions and the posture of the robot after the home tree motion program must match the posture of the robot at thestart position 410. - At
box 612, whether home tree branches have been added or not, a proposed new node qRand is defined by the algorithm. The proposed new node qRand may be a randomly located node according to the RRT algorithm, or may be qHome or a node on a home tree branch. Connecting directly to qHome or a node on a home tree branch may be tried occasionally, at random, in the method. Atbox 614, the move feasibility check technique ofFIG. 5 is executed, to determine if the node qRand can be added as a new branch from its parent (previously identified feasible node). Atdecision diamond 616, if the move to qRand is feasible, or if a partial move toward qRand is feasible as discussed above, then atbox 618 the qRand node and branch are added to the parent in the start tree (the part of the tree that is growing). If no part of the move to qRand is feasible, then from thedecision diamond 616 the process loops back to thebox 612 to create another proposed new node qRand. - From the
box 618, after the qRand node and branch are added to the parent in the start tree, it is determined atdecision diamond 620 whether the home tree is connected to the start tree. If so, then atbox 622 the clear recovery path has been fully defined and the process is completed. If not, then the process loops back to thebox 612 to create another proposed new node qRand. This process continues, growing the start tree until it is connected to the home tree or the qHome node. -
FIG. 7 is a flowchart diagram 700 of a method for robot clear recovery path computation using a virtual simulation environment mirroring a physical robot workcell environment, according to an embodiment of the present disclosure. Atbox 702, a physical workcell is provided, including one or more industrial robots each with a controller, a plurality of fixed or moving workpieces and fixed obstacles. Atbox 704, a three-dimensional (3D) simulation model which emulates the physical workcell in real time is run, on a computer having a processor and memory. The simulation model includes kinematics and 3D link geometry for the one or more robots, 3D geometry and position of the workpieces and 3D geometry of the obstacles. - At
box 706, a clear recovery path computation is requested from the simulation model when an affected robot in the physical workcell encounters a problem. At the time of the request, which is typically made by an operator of the physical workcell, data is transferred from the physical workcell to the simulation model, including transferring position and status data about the one or more robots and the workpieces. The data transferred from the physical workcell provides the simulation model with a complete picture of the 3D positions of the robot(s) and the workpieces, which is needed in order to commence the search for a clear recovery path. - At
box 708, a clear recovery path search is executed by the computer running the simulation model, where the path search generates a clear recovery path motion program between a current position of the affected robot and a recovery position of the affected robot. Details of the clear recovery path search method were shown onFIG. 6 and discussed above. When the clear recovery path is identified, a clear recovery path motion program is created which defines the robot joint motions needed to cause the robot to follow the computed clear recovery path. - At box 710, the clear recovery path motion program is transferred to the controller of the affected robot in the physical workcell, and at
box 712 the clear recovery path motion program is executed by the affected robot in the physical workcell, which extricates the robot from the situation in which it was “stuck” and returns the robot to its home or recovery position. At that point, appropriate actions can be taken to return the workcell to production operations—where these actions may include restarting the workcell controller, troubleshooting individual robots or the conveyor, replacing components, etc. - Throughout the preceding discussion, various computers and controllers are described and implied. It is to be understood that the software applications and modules of these computer and controllers are executed on one or more computing devices having a processor and a memory module. In particular, this includes a processor in each of the
robot controller 330, thePLC 340 and thecomputers FIG. 3 discussed above. Specifically, the processor in thecomputers 350 and/or 362 is configured to compute the robot clear recovery path in the manner described throughout the foregoing disclosure. - As outlined above, the disclosed techniques for computing a clear recovery path for a robot provide a robust and efficient means of extricating a robot from an arbitrary condition where it is stranded in a workcell. The disclosed techniques avoid the need for up-front modeling of recovery paths for every possible scenario of robot and workpiece positions, and provide many improvements and enhancements over known RRT path finding methods.
- While a number of exemplary aspects and embodiments of the technique for automatically finding a collision-free feasible return-to-home path for a robot have been discussed above, those of skill in the art will recognize modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following appended claims and claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations as are within their true spirit and scope.
Claims (21)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/493,087 US20230109223A1 (en) | 2021-10-04 | 2021-10-04 | Intelligent clear path |
JP2022160048A JP2023054791A (en) | 2021-10-04 | 2022-10-04 | intelligent clear path |
DE102022125458.5A DE102022125458A1 (en) | 2021-10-04 | 2022-10-04 | INTELLIGENT CLEAR PATH |
CN202211221863.2A CN115922691A (en) | 2021-10-04 | 2022-10-08 | Intelligent unblocked path |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/493,087 US20230109223A1 (en) | 2021-10-04 | 2021-10-04 | Intelligent clear path |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230109223A1 true US20230109223A1 (en) | 2023-04-06 |
Family
ID=85570975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/493,087 Pending US20230109223A1 (en) | 2021-10-04 | 2021-10-04 | Intelligent clear path |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230109223A1 (en) |
JP (1) | JP2023054791A (en) |
CN (1) | CN115922691A (en) |
DE (1) | DE102022125458A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150266182A1 (en) * | 2012-10-11 | 2015-09-24 | Abb Technology Ltd | Method And An Apparatus For Automatically Generating A Collision Free Return Program For Returning A Robot From A Stop Position To A Predefined Restart Position |
US20210001483A1 (en) * | 2019-07-01 | 2021-01-07 | Wisconsin Alumni Research Foundation | Path-Modifying Control System Managing Robot Singularities |
US20210252707A1 (en) * | 2020-02-19 | 2021-08-19 | Fanuc Corporation | Collision avoidance motion planning method for industrial robot |
US20220032459A1 (en) * | 2019-03-15 | 2022-02-03 | Omron Corporation | Robot Control Device, Method and Program |
US11318616B2 (en) * | 2019-11-11 | 2022-05-03 | Rockwell Automation Technologies, Inc. | Robotic digital twin control with industrial context simulation |
-
2021
- 2021-10-04 US US17/493,087 patent/US20230109223A1/en active Pending
-
2022
- 2022-10-04 DE DE102022125458.5A patent/DE102022125458A1/en active Pending
- 2022-10-04 JP JP2022160048A patent/JP2023054791A/en active Pending
- 2022-10-08 CN CN202211221863.2A patent/CN115922691A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150266182A1 (en) * | 2012-10-11 | 2015-09-24 | Abb Technology Ltd | Method And An Apparatus For Automatically Generating A Collision Free Return Program For Returning A Robot From A Stop Position To A Predefined Restart Position |
US20220032459A1 (en) * | 2019-03-15 | 2022-02-03 | Omron Corporation | Robot Control Device, Method and Program |
US20210001483A1 (en) * | 2019-07-01 | 2021-01-07 | Wisconsin Alumni Research Foundation | Path-Modifying Control System Managing Robot Singularities |
US11318616B2 (en) * | 2019-11-11 | 2022-05-03 | Rockwell Automation Technologies, Inc. | Robotic digital twin control with industrial context simulation |
US20210252707A1 (en) * | 2020-02-19 | 2021-08-19 | Fanuc Corporation | Collision avoidance motion planning method for industrial robot |
Non-Patent Citations (1)
Title |
---|
Nasir, Jauwairia; Malik, Usman; Islam, Fahad; Hasan, Osman; "RRT* - Smart: A rapid convergence implementation of RRT*", 01/2013International Journal of Advanced Robotic Systems. (Year: 2013) * |
Also Published As
Publication number | Publication date |
---|---|
CN115922691A (en) | 2023-04-07 |
JP2023054791A (en) | 2023-04-14 |
DE102022125458A1 (en) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11813753B2 (en) | Collision avoidance motion planning method for industrial robot | |
Al-Sharo et al. | Generalized Procedure for Determining the Collision-Free Trajectory for a Robotic Arm | |
US8914152B2 (en) | Method for collision-free path planning of an industrial robot | |
US20210308866A1 (en) | Adaptive grasp planning for bin picking | |
CN110914020B (en) | Handling device with robot, method and computer program | |
CN113276109B (en) | Dual-mechanical-arm decoupling motion planning method and system based on RRT algorithm | |
CN110682292A (en) | Robot stacking track generation method based on RT Toolbox | |
US11813756B2 (en) | Disassembly based assembly planning | |
Kim et al. | A RRT-based motion planning of dual-arm robot for (Dis) assembly tasks | |
JP2023135648A (en) | Swept volume deformation | |
JP2020049554A (en) | Track formation method, track formation device, and robot system | |
Mu et al. | Cartesian space robot manipulator clamping movement in ROS simulation and experiment | |
CN114055467A (en) | Space pose online simulation system based on five-degree-of-freedom robot | |
US20230109223A1 (en) | Intelligent clear path | |
Ata et al. | COLLISION-FREE TRAJECTORY PLANNING FOR MANIPULATORS USING GENERALIZED PATTERN SEARCH. | |
Ikeda et al. | On-line optimization of avoidance ability for redundant manipulator | |
CN111699079B (en) | Coordination system, operation device and method | |
Yang et al. | Collision avoidance trajectory planning for a dual-robot system: using a modified APF method | |
Solana et al. | A case study of automated dual-arm manipulation in industrial applications | |
Veryha et al. | Application of joint error mutual compensation for robot end-effector pose accuracy improvement | |
Baizid et al. | Industrial robotics platform for simulation design, planning and optimization based on off-line CAD programming | |
US12145277B2 (en) | Framework of robotic online motion planning | |
Kuppan Chetty et al. | A heuristic approach towards path planning and obstacle avoidance control of planar manipulator | |
US20240190002A1 (en) | Object interference check method | |
US20220063099A1 (en) | Framework of robotic online motion planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FANUC AMERICA CORPORATION, MICHIGAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WONG, HO CHEUNG;BOREK, BRAD;SIGNING DATES FROM 20210930 TO 20211001;REEL/FRAME:057690/0288 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |