Robot joint space graph path planning and movement execution
By constructing a graph in the robot joint space and optimizing the path, the problem of time-consuming and difficult to automatically implement robot link path planning in the prior art is solved, and fast and safe path planning and execution are achieved.
Patent Information
- Application Number
- CN202410025639.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-23
- Filing Date
- 2021-09-22
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2041-09-22
AI Technical Summary
The prior art is difficult to automatically plan and execute the safe path of robot links in confined spaces, especially in the case of multi-step processing and environmental changes, making path planning time-consuming and difficult to implement.
By using processing devices in the robot joint space to determine the start and end points of the terminal reactor, and construct a graph of reachable locations and sub-paths, satisfying Cartesian limitations, the path is optimized to minimize movement time.
It realizes automatic planning of safe paths in robot joint space, reducing the time and complexity of manual planning, and quickly adapting to environmental changes.
Smart Images

Figure CN117841015B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application date of September 22, 2021, application number 202180052402.4, and invention name “Robot Joint Space Graph Path Planning and Mobile Execution”. Technical Field
[0002] Embodiments of the present disclosure relate to robotic joint space graph planning and execution. Background Art
[0003] Servo-controlled mechanisms are commonly used in the manufacturing industry, such as in robotic tools used for automated manufacturing. In some cases, this manufacturing is a multi-step process of semiconductor devices, where the robotic tool includes a motor attached to a robotic linkage that moves the semiconductor substrate between steps of the degassing (or cleaning), deposition, and etching processes. For example, the robotic linkage may be an arm and end effector of a robot used to transfer substrates between factory interfaces and transfer chambers, or the like. The robotic linkage may also include one or more pulley belts that facilitate the transmission of torque between the motor and the arm or other robotic linkages.
[0004] Many robotic tools in semiconductor wafer handling are restricted to work in very small operating spaces. If the motion is not carefully planned, one of the multiple joints of the robot link or the end effector (carrying the substrate or wafer) can run into the Cartesian limit of the robot. Cartesian limits are motion constraints defined by, for example, obstacles (such as walls and other objects in the robot's environment, including other robots or moving parts of other robots), which are to be avoided during the movement of the robot when transferring substrates from one location to another. Traditionally, the path of the robot link is manually planned in a way that avoids Cartesian limits. This is time consuming and increasingly difficult to operate manually in a limited space with multiple complex movements. In addition, manual path planning must be repeated every time the environment is updated (such as new obstacles), a processing chamber is added, or other chambers or intermediate stations that require additional movement of the robot in a limited space are added. Summary of the invention
[0005] Some embodiments described herein encompass a system including a robot, the robot including a robotic arm having a plurality of joints and one or more end effectors, the one or more end effectors being used to carry a substrate. A processing device is coupled to the robot. The processing device determines a start point and an end point of the one or more end effectors within a joint space of the robotic arm for a complete movement of the robotic arm to transfer a substrate. With respect to the joint space of the plurality of joints and the one or more end effectors, the processing device constructs a graph of reachable positions and subpaths between the reachable positions, wherein the reachable positions and the subpaths satisfy Cartesian constraints within the joint space, and the reachable positions are identified at a granularity that divides the complete movement into a plurality of sub-movements of the robotic arm. The processing device determines a plurality of paths having the shortest distance between a start point and an end point by executing a graph optimization algorithm on the graph, the plurality of paths each consisting of a set of subpaths. The processing device selects, through the graph, a path from the plurality of paths that minimizes the movement time of the one or more end effectors between the start point and the end point.
[0006] In related embodiments, a method for planning a path through a robot joint space is described herein. The method may include determining, by a processing device and within a joint space of a robot, a start point and an end point of one or more end effectors for a complete movement of the robot to transfer a substrate positioned on the one or more end effectors, the robot comprising a plurality of joints and the one or more end effectors. The method further includes identifying, by a processing device, a grid of joint positions within joint ranges of the plurality of joints, and using a first granularity, a plurality of reachable positions through the plurality of joints and the one or more end effectors, the grid being within the joint space and including the start point and the end point. The method further includes constructing, by the processing device, a graph including nodes for representing the plurality of reachable positions based on joint position combinations of corresponding reachable positions of the plurality of reachable positions, the plurality of reachable positions also satisfying Cartesian constraints of the robot within the joint space. The method further includes adding, by the processing device, edges to the graph, the edges being linearly interpolated between nearest neighbor nodes of the nodes, the nodes completing a plurality of paths between the start point and the end point, wherein the edges also satisfy Cartesian constraints. The method further includes calculating, by the processing device, distances of edges of the graph. The method further includes executing, by the processing device, a graph optimization algorithm on the graph to determine a plurality of shortest paths passing through nodes between a start point and an end point.
[0007] In another embodiment of a non-transitory computer-readable storage medium for storing instructions, the instructions, when executed by a processing device, cause the processing device to perform a plurality of operations. The plurality of operations include determining, within a joint space of a robot, a start point and an end point of one or more end effectors for a complete movement of the robot to transfer a substrate positioned on one or more end effectors, wherein the robot comprises a plurality of joints and one or more end effectors. The plurality of operations further include constructing a graph of reachable positions and subpaths between the reachable positions with respect to the joint space of the plurality of joints and the one or more end effectors, wherein the reachable positions and subpaths satisfy Cartesian constraints within the joint space, and the reachable positions are identified at a granularity that divides the complete movement into a plurality of sub-movements of the robot. The plurality of operations further include determining, by executing a graph optimization algorithm on the graph, a plurality of paths having a shortest distance between a start point and an end point, the plurality of paths each consisting of a set of subpaths. The plurality of operations further include selecting, via the graph, a path from among the plurality of paths that minimizes a movement time of one or more end effectors between a start point and an end point while satisfying torque constraints on the plurality of joints and acceleration constraints on the one or more end effectors.
[0008] Several other features are provided according to these and other embodiments of the present disclosure. Other features and embodiments of the present disclosure will be fully apparent from the following detailed description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate similar elements. It should be noted that in the present disclosure, different references to "an" or "one" embodiment are not necessarily to the same embodiment, and such references mean at least one embodiment.
[0010] Figure 1 is a block diagram of a control system including a motion controller coupled to a plurality of amplifiers for actuating corresponding motors and robotic links, according to various embodiments.
[0011] Figure 2 is a model of a robotic arm having multiple joints including end effectors, the model being programmed for movement that violates Cartesian constraints, according to an embodiment.
[0012] Figure 3 is a graph of possible paths through the joint space of three joints, one of which may be an end effector, while satisfying Cartesian constraints, according to an embodiment.
[0013] Figure 4is a model of a robotic arm with multiple joints and end effectors, the model being planned for movement that satisfies Cartesian constraints, according to an embodiment.
[0014] Figure 5A are example graphs of different trapezoidal velocity profiles for three joints of a robotic arm according to an embodiment.
[0015] Figure 5B is a trapezoidal velocity distribution corresponding to the three joints of the robot arm according to one embodiment ( Figure 5A ) Example curves for different acceleration distributions.
[0016] Figure 6 is a movement time optimized curve in which the movement time of the robot arm is minimized to less than 10 seconds after seven iterations according to an embodiment.
[0017] Fig. 7A is a flow chart of a method for determining a shortest path through a robot joint space, wherein a plurality of joints and one or more end effectors satisfy Cartesian constraints, according to various embodiments.
[0018] Figure 7B is used to determine which shortest path ( Fig. 7A ) is a flowchart of a method for minimizing movement time.
[0019] Figure 8 is a flow chart of a method of planning and executing movement of a robotic arm on a path through a robot joint space that satisfies Cartesian constraints and minimizes movement time, according to various embodiments. DETAILED DESCRIPTION
[0020] Embodiments described herein are designed to plan and execute systems and methods for movement of a robot link on a path through a robot joint space that satisfies Cartesian constraints and minimizes movement time. For example, a processing device (e.g., a computing system) that accesses the robot's joint space along with the Cartesian constraints within the joint space can plan a path of a robot link between a start point and an end point. The joint space is a coordinate frame that controls the robot link (including the joints) and does not extend beyond the joint constraints. Therefore, the joint space can extend into the motor space, with reference to the extension constraints of the motors that actuate the robot link (e.g., directly or via indirect mechanical transmission). In addition, although the joint space can be the primary degree of freedom space, linear (e.g., gearbox) and nonlinear (e.g., 4-bar, slider crank, and the like) transmission elements positioned between the motion joint space and the robot link actuator or motor are also contemplated. The Cartesian constraints are defined by, for example, obstacles (such as walls and other objects in the robot's environment) that are to be avoided during movement of the robot when transferring substrates from one location to another. To simplify the explanation, the robot link may include a plurality of joints and one or more end effectors for carrying a substrate (or wafer) positioned on the one or more end effectors.
[0021] In various embodiments, the robot joints may include prismatic joints and / or revolute joints. A prismatic joint is a connection between two objects that allows relative motion along a single axis and therefore enables linear motion. Motion perpendicular to this axis (or rotation about any axis) is prevented. A revolute joint (also called a pin joint of a hinge joint) is a one-degree-of-freedom kinematic pair. A revolute joint restricts the motion of two bodies to pure rotation along a common axis. When a robot link is interpolated between two points, the planned movement can be performed by either or a combination of prismatic and revolute joints to complete the path.
[0022] Pre-planning the path enables the robot to perform moves to consistently and safely transfer substrates multiple times over the same path without causing parts of the robot to run into walls or other obstacles that violate Cartesian constraints. If the path is planned by simply linearly interpolating between the start and end points, the path can easily end up moving into areas of the joint space that violate Cartesian constraints.
[0023] Thus, according to various embodiments, the present systems and methods plan a path that includes several sub-paths (or partitions of a complete path), each of which avoids Cartesian constraints and conforms to joint constraints. The planning process for a complete move can be performed in at least two stages. The first stage can include building a graph, where the nodes of the graph represent the reachable positions of multiple joints and end effectors. Although the present disclosure may refer to "an end effector" for simplicity of explanation, it should be understood that the robot can have more than one end effector and the planned path can integrate one or more end effectors, each end effector being represented as a node in the graph. The multiple end effectors can include a primary end effector and one or more passive end effectors, the primary end effector actively carrying the substrate and the planned path is focused on the primary end effector, and the passive end effector may or may not carry the substrate, but the specifically planned path is not focused on the passive end effector. Additionally, the ultimately determined optimized path may include satisfying workspace and / or acceleration constraints on the passive and primary end effectors while minimizing the movement time of the primary end effector of the plurality of end effectors attached to the robot arm.
[0024] In some embodiments, reachable positions are identified within a grid of the joint space between the start point and the end point, and the reachable positions are focused on the primary end effector. Verify that each reachable position satisfies both joint constraints and Cartesian constraints. The reachable position can be identified by dividing the complete path into a granularity of a group of sub-paths, for example, the granularity also divides the complete path into a plurality of sub-movements of the manipulator on the complete path. In various embodiments, joint constraints can include movement parameters such as torque, speed, acceleration, jerkiness, range of motion, and reaction forces and moment constraints on structural freedom limits. In addition, joint constraints and Cartesian constraints extend to and allow nonlinear shapes, curves, and objects. Therefore, although the examples of joint and Cartesian constraints herein may appear to be more rectangular or straight, nonlinear features are also envisioned and can be integrated into the optimization of path planning via parameters such as position, torque, speed, acceleration, jerkiness, range of motion, force interaction, and the like.
[0025] Still within the first stage, the systems and methods can further identify subpaths between nearest neighbor nodes that also satisfy Cartesian constraints and are part of one of many complete paths between the start point and the end point. These subpaths can be represented as edges within the graph. The processing device can measure the distances of these edges and then perform a graph optimization algorithm on the graph to determine multiple paths with the shortest distance between the start point and the end point, each of which is composed of a set of subpaths. In this way, the processing device can optimize the selection of the shortest path through the joint space, which also satisfies the joint constraints and Cartesian constraints over the entire path. In various embodiments, different cost functions can be applied to measure the shortest distance or lowest cost during graph optimization.
[0026] In various embodiments, the shortest path can be found by minimizing a cost function other than the Euclidian distance. Examples of cost functions may include weights that disadvantage slower paths, and thus estimate the minimum time path. For example, a cost function may penalize path curvature, thereby increasing the cost of the penalized path. By using different cost functions, the shortest path more closely approaches the shortest path with the shortest travel time. Using different cost functions for graph optimization can improve the computational efficiency of the second phase (discussed below) by reducing the number of multiple shortest paths to be considered. Some embodiments may skip the second phase and directly calculate the shortest travel time.
[0027] The term "satisfies" herein with respect to joint constraints indicates that a combination of movements of multiple joints is permissible in the sense that multiple joints are allowed to articulate in such a combination of movements. The term "satisfies" herein with respect to Cartesian constraints is used to indicate that the position or edge of a path within a graph does not overlap with an excluded three-dimensional space defined by obstacles (such as walls within the robot's operating environment). Each of the joint constraints and Cartesian constraints can be defined within a certain operating tolerance so that no portion of the robot arm (or other robot link) approaches a given limit. With respect to, for example, Cartesian constraints, for example, the tolerance can be, for example, within 1-2 cm or 10-20 mm.
[0028] According to the second stage, the present systems and methods may select, via a graph, a first (e.g., fastest) path of a plurality of (shortest) paths that minimizes the time of movement of a primary end effector between a start point and an end point while also satisfying torque constraints on a plurality of joints and acceleration constraints on one or more end effectors. To this end, the processing device may randomly vary the speed constraints and acceleration constraints (and other constraints and distributions) of a speed distribution of each movement of a joint of the plurality of joints between nearest neighbor reachable positions and across a plurality of paths. The processing device may further verify that torque constraints on one or more motors that move the robotic arm are satisfied in view of the varied speed constraints and acceleration constraints, and that a maximum acceleration constraint of the end effector is satisfied.
[0029] In this way, the present disclosure eliminates the need for manually planning a safe path through the joint space, and does so in a manner that can ensure that the selected path is not only one of the shortest paths, but also the path that minimizes the movement time, e.g., the optimal movement path, due to the computational processing of multiple reachable locations and intermediate sub-paths. For example, one of the given shortest paths may not be the shortest of the shortest paths, but still have the shortest movement time due to being able to have a higher average speed and / or a higher achievable acceleration.
[0030] Furthermore, the disclosed planning of complete movement paths saves a great deal of time because new paths can be quickly re-identified and used when design parameters such as, but not limited to, wafer station locations, number of robots in a link, number of robots in an end effector, robot link length, mass, inertia, center of gravity, and pulley ratio change within a processing environment. Additionally, by performing path planning as disclosed herein based on pre-computed known safe paths back to a home position, when the robot is awakened at a position other than the home position, the processing device can quickly select one of several known safe paths based on the current position of the joints and the current position of the primary end effectors to return the robot arm to the home position, such as at a starting point. For many robotic tools, performing this home position move required prior to commencing operation of the robotic tool is not a trivial problem.
[0031] Figure 1 1 is a block diagram of a control system 100 including a motion controller coupled to a plurality of amplifiers for actuating corresponding motors and robotic links, according to various embodiments. More specifically, the control system 100 may include a motion controller 102 (or other processing device or computing system), a set of amplifiers 150, and a motor stack and robotic links 160. The amplifiers 150 may be actuators to the motors, as controlled by the motion controller 102.
[0032] The motor stack and robot link 160 may include a plurality of motors and robot links, for example, a first motor 160A and a first robot link 164A, a second motor 160B and a second robot link 164B, and an Nth motor 160N and an Nth robot link 164N. In one embodiment, the robot links 164A, 164B ... 16N are interconnected, and thus the plurality of motors 160A, 160B ... 160N may work collaboratively to move the robot links as directed by the motion controller 102 and based on feedback from the motors and robot links. Thus, there may not be one robot link per motor, where some of the motors are commonly coupled to one or a combination of robot links and move one or a combination of robot links, which may be serial links and / or parallel links in different embodiments. In another embodiment, one or more of the motors 160A, 160B ... 160N independently controls at least some of the corresponding robot links, whether serial or parallel links.
[0033] In one embodiment, one of the robot links (e.g., such as robot link 164A) is a robot arm having a non-moving base position ("base"), a first joint (e.g., an elbow), a second joint (e.g., a wrist), a third joint (e.g., a primary end effector), and an optional fourth joint (e.g., a passive end effector). Although three or four joints (one or two of which are end effectors) may be mentioned herein, robot links having more or fewer joints are contemplated, and the principles taught herein encompass robot links having more or fewer joints. For example, the robot arm may include two passive end effectors in addition to the primary end effector. The robot arm is located within a processing chamber or other space of operation, wherein is a defined Cartesian limit 10. As discussed, the Cartesian limit 10 is defined by obstacles (such as walls and other objects in the robot's environment) that are to be avoided during movement of the robot when transferring substrates from one location to another. For example, failure to meet the Cartesian limit causes the robot arm to travel into a solid object, which may damage the robot arm.
[0034] The amplifiers 150 may include a first amplifier 150A, a second amplifier 150B, and an Nth amplifier 150N, each including a corresponding processor 154A, 154B ... 154N to execute commands (e.g., instructions) received from the motion controller 102. The control system 100 may include an amplifier for each motor so that independent control of each motor is possible, although in some embodiments the motors may operate cooperatively. Each amplifier 150A, 150B ... 150N may include firmware or other software code stored in a local memory sufficient to execute commands (or instructions) received from the motor controller 102. For example, the amplifiers 150A, 150B ... 150N may each be a proportional-integral-derivative (PID) controller, a PI controller, or a triple-loop controller.
[0035] The control system 100 may further include a communication network 110 that is sufficiently responsive and deterministic to enable real-time feedback control between the motion controller 102, the amplifier 150, and the motor stack and robotic linkage 160. For example, the communication network 110 may include a data update time of less than 1 millisecond and a communication jitter of less than 10 microseconds. Accordingly, the communication network 110 may be consistent with or similar to Ethernet for Control Automation Technology (EtherCAT).
[0036] The communication network 110 may further adopt the Controller Area Networkopen (CANopen) protocol or a similar master-slave communication model. A distributed motion network according to one or more embodiments may allow distributed motion planning while providing close coordination with instructions from the motion controller 102 (master device). The software program / firmware may be stored in the motion controller 102 (master device) and the actuator driver (referred to herein as the amplifier 150 (slave device)), respectively. This may allow motion planning to be distributed among the master and slave devices, and reduce the burden on the master and the communication network 110 by reducing the amount of data transfer that may occur on the communication network. In some embodiments, when referring to distributed planning, a processing device or system that performs one or more methods herein may be executed by a combination of one or more processors 154A, 154B...154N and the motion controller 102, respectively located in the amplifiers 150A, 150B...150N.
[0037] For example, motion instructions for gap calibration generated by motion controller 102 (master device) can initiate movement of motor 160A between a first position (e.g., a safe starting position) and a second position (e.g., a target position beyond the expected contact position) within predefined constraints on velocity and acceleration. The motion instructions can be received by a motion planner internal to the actuator driver (slave device), which generates a motion profile that accurately describes the motion of the first motor 160A on a moment-by-moment basis based on the motion instruction data to control velocity and acceleration changes, for example, to limit the first derivative of acceleration "jerk", which can produce undesirable wear or oscillations on the motor and attached components.
[0038] Accordingly, the motion data of the command does not need to be transmitted over the communication network 110, but only the higher-level motion command of the motion planner in the actuator driver needs to be initiated. The distributed nature of motion planning releases the communication network traffic for transmitting real-time process data including motion feedback data (the motion feedback data can be one sample per millisecond, one sample per 20 milliseconds, or between some other sampling rates) from the amplifier 150A, the motor 160A and / or the robot link 164A to the motion controller 102 without reducing the motion positioning performance. This distributed control also allows the motion controller 102 (master device) to control multiple motors simultaneously for gap calibration or other functions. Thus, according to one or more embodiments, the method disclosed herein can be performed in a motion control system with an actuator driver capable of motion planning.
[0039] In some embodiments, the motion controller 102 sends position commands and torque commands (e.g., feedforward torque commands) to the plurality of amplifiers 150 to control the motors and, therefore, the robotic links. To provide real-time control, the motion controller 102 may further receive feedback data signals from the amplifiers 150 at each of the plurality of time steps according to a sampling rate and over a period of time. Each feedback data signal may include an instantaneous torque value (of the motor) and an instantaneous velocity and acceleration value (of the robotic link), as well as other hardware parameter values, including force, strain, compression, friction, resonance, and / or position of at least one robotic link.
[0040] In various embodiments, the motion controller 102 includes, but is not limited to, a processor 104, the processor including hardware or executing instructions including firmware, the processor including a graph builder 106 for performing the first stage described herein and a move time minimizer 108 for performing the second stage herein with reference to the robot link path planning and execution. In some embodiments, the graph builder 106 and the move time minimizer 108 are located on a separate computing device, such as a networked server, the computing device performs the graph planning discussed herein based on the joint space, the joint space including the joint limits and Cartesian limit information associated with the robot tool, and then the computing device provides the completed path planning to the motion controller 102 for execution by sending commands to the motor stack and the robot link 160.
[0041] The motion controller 102 may further include a memory 130 (volatile, non-volatile, or a combination thereof), e.g., in which instructions being executed by the processor 104 are stored. The memory 130 may further buffer a collection of instantaneous torque values and instantaneous hardware parameter values received in the form of feedback data signals from the motor stack and the robotic link 160. The motion controller 102 may further include a display device 134 (such as a monitor, display screen, or the like), a user interface 136 (the user interface facilitates interaction between an operator within the display device 134), a communication interface 140, a plurality of input / output (I / O) devices 144, and a storage device 148 (e.g., one or more disk drives and / or solid-state drives as non-transitory computer-readable media storing instructions).
[0042] In an embodiment, the communication interface 140 facilitates communication with the amplifier 150A over the communication network 110, which has been discussed. The I / O devices 144 may include input devices such as a keyboard, mouse, touchpad, microphone, and the like, and output devices such as speakers, display device 134, printer, or the like. The storage device 148 may store software, for example, a non-transitory computer-readable storage medium storing instructions, and serve as a permanent storage for a set of instantaneous torque values and instantaneous hardware parameter values on which the graph builder 106 and the move time minimizer 108 are executed. The motion controller 102 may execute instructions to perform one or more of the methodologies and / or embodiments described herein. When reference is made to memory herein, it will be understood to mean either or both of the memory 130 (e.g., main memory) or a storage device (e.g., non-volatile long-term computer storage).
[0043] The motion controller 102 may be and / or include a computing device, such as a personal computer, a server computer (e.g., a motion control server), a programmable logic controller (PLC), a microcontroller, and the like. The motion controller 102 may include one or more processing devices, such as a microprocessor, a central processing unit, or the like. More specifically, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor that implements other instruction sets or a processor that implements a combination of instruction sets. The processing device may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like.
[0044] Figure 2 2 is a model 200 of a robotic arm having multiple joints including end effectors that are programmed for movement that violates Cartesian constraints according to an embodiment. The robotic arm may have an initial pose 202, which in some cases may be referred to as a starting position. The robotic arm may be programmed to move in a manner that violates Cartesian constraints 10( Figure 1) constraints, the Cartesian limits 10 are defined by static obstacles 10A and dynamic obstacles 10B surrounding the robot. For example, the static obstacles 10A may include walls of a transfer chamber, several other chambers or rooms (such as a load lock 0, a via 1, and a plurality of processing chambers 2-8 accessible by the robot arm), and passages connecting these chambers. The dynamic obstacles 10B may be moving parts of other machinery or robots, including robot links operating in parallel, which coexist with the robot arm that creates overlap in the workspace. In various embodiments, the environment that constitutes the space around the robot (the robot including the robot arm) may undergo on-the-fly reconfiguration, including the movement of other robots or components, which may require the Cartesian limits 10 to be redefined and therefore also update the safe path planned for the robot arm. In addition, although reference is made to a single end effector in some of the described figures, this is for clarity of illustration, but it should be understood that many embodiments will include one or more additional (or passive) end effectors.
[0045] refer to Figure 2 When commanded to move the initial pose 202 to the final pose, the robot arm may pass through several intermediate positions so that multiple joints and end effectors (see Figure 1 ) also moves through intermediate positions within the joint space of the robotic arm. If the motion controller 102 linearly interpolates the path directly between the starting point of the initial pose 202 and the ending point of the final pose, the path may violate the Cartesian constraints 10 if the path is not manually planned to avoid Cartesian constraints. For example, the first intermediate pose 204 in the first half of the complete move violates the Cartesian constraints and the second intermediate pose 208 in the second half of the complete move also violates the Cartesian constraints, for example, in this case the Cartesian constraints are the boundaries of the static obstacles 10A. Therefore, path planning can be performed at a larger granularity in the defined intermediate poses and therefore in the intermediate reachable positions in order to ensure that the Cartesian constraints are met.
[0046] Figure 3 is a graph 300 of possible paths through the joint space of three joints, one of which may be an end effector, while satisfying Cartesian constraints, according to one embodiment. Graph 300 is expressed in radians and illustrates joint 1 (e.g., elbow) along a first axis (e.g., Y axis), joint 2 (e.g., wrist) along a second axis (e.g., X axis), and joint 3 (e.g., end effector) along a third axis (e.g., Z axis). Graph 300 illustrates points within a grid that constitute Figure 1 to Figure 2 and Figure 4 The joint space of the robot arm shown in Figure .
[0047] The joint space differs from the traditional Cartesian coordinate space in that it includes not only the X, Y, and Z coordinates of the three-dimensional space, but also rZ (also called θ), which is the angle from the positive X axis that defines the direction of movement of the end effector. The joint space of Figure 300 defines exclusion areas of the robot, such as joint restriction areas (e.g., possible resection areas outside of the reachable position) and one or more areas of the Cartesian restriction 10, such as the first area 30A and the second area 30B of the Cartesian restriction 10.
[0048] In the illustrated embodiment, for example, the joint space includes a start point 301 and an end point 303, which may be generally defined as the start and end points of the primary end effectors. If a simple linear interpolation is performed between the start point 301 and the end point 303, the straight path 305 planned between the start point 301 and the end point 303 passes through the first region 30A and the second region 30B of the Cartesian constraints 10. This path planning is insufficient because the Cartesian constraints 10 of the robot are not satisfied.
[0049] In various embodiments, the motion controller 102 (e.g., the graph builder 106) identifies multiple reachable positions for joints and one or more end effectors, so some reachable positions may include one or more passive end effectors. The term "reachable" indicates that the position satisfies the joint constraints of the joints of the manipulator. The complete movement of the manipulator can be divided into a granularity of multiple sub-movements to identify multiple reachable positions. For example, within four to six arcs of the joint distance, the granularity of the reachable position can be between 7 and 15 reachable positions (with about 8 reachable positions shown in the figure). If too few reachable positions are identified for each path, there is a risk of missing an area where the planned path does not meet the Cartesian constraints. If too many reachable positions are identified for each path, the computational time to build the graph, perform graph optimization, and later perform path optimization (discussed below) is significantly increased.
[0050] The motion controller 102 (e.g., the graph builder 106) can construct a graph 313 including nodes (points on the graph excluding the start point 301) based on the joint combinations leading to the reachable positions to represent the reachable positions that also satisfy the Cartesian restrictions of the robotic arm in the joint space. The motion controller 102 can add edges to the graph that are linearly interpolated between the most tidy neighboring nodes of the nodes that complete multiple paths between the start point 301 and the end point 303 and also satisfy the Cartesian restriction areas 30A and 30B. As shown, Figure 3The graph 313 of contains a large number of these nodes and lines, representing the edges between each node and each corresponding node's multiple nearest neighbor nodes. In this way, the motion controller 102 can identify multiple paths through the nodes that implement the sub-movements of the joints and end effectors to complete the movement between the starting point 301 and the end point 303.
[0051] Also for the first stage of the disclosed embodiment, the motion controller 102 can calculate the distance of the edges of the graph, for example, using the Euclidean norm between the joint position values of the most tidy adjacent nodes. Subsequently, the motion controller 102 can perform a graph optimization algorithm (such as a Dijkstra graph algorithm, an A* search algorithm, or other graph optimization algorithms) on the graph 313 to determine multiple shortest paths through the nodes between the starting point 301 and the ending point 303.
[0052] In various embodiments, motion controller 102 may then select a path 315 of the multiple shortest paths through graph 313 that minimizes the time it takes for the primary end effector to move between start point 301 and end point 303 while satisfying torque constraints on multiple joints and acceleration constraints on one or more end effectors. Figure 3 This path 315 in the graph 313 of FIG. 314 is highlighted with a darker line to indicate the selected path. For example, one of the given shortest paths may not be the shortest of the shortest paths, but nevertheless still has the shortest move time due to being able to have a higher average velocity at the end effector, a higher joint torque value, and / or a higher achievable acceleration. Accordingly, integrating dynamic or motion constraints (such as velocity, acceleration, and torque) in the path optimization analysis enables identification of the best path among the shortest paths so as to avoid Cartesian constraints and still minimize move time.
[0053] In some embodiments, the time required to perform graph optimization (or first phase) to identify multiple shortest paths is on the order of seconds, while the time required to perform path optimization to select path 315 (in the second phase) is on the order of minutes. By reducing the paths to the shortest paths for analysis by the motion controller 102 when performing path optimization, the time required to perform path optimization can be significantly reduced. Graph and path optimization can be performed offline and before the robot is put into operation.
[0054] In additional embodiments, the memory controller 102 may also identify an additional path among a plurality of (shortest) paths that minimizes movement time to an additional end point. Subsequently, in response to the robot waking up outside of the robot's starting position, the motion controller 102 may determine a position in the joint space of the end effector and determine an end point among the additional end points that is closest to the position. The motion controller 102 may then select an additional path among the additional paths based on the position and direct the robotic arm to return to the starting position via the selected additional path. In this way, the motion controller 102 may employ a pre-planned safe and efficient path to return the robotic arm to the starting position, for example, at the starting point 301.
[0055] Figure 4 is a model 400 of a robotic arm having multiple joints and end effectors programmed for movement that satisfies Cartesian constraints, according to one embodiment. Figure 4 The Model 400 is similar to Figure 2 , and has an initial pose 402 that is the same as the initial pose 202. However, unlike Figure 2 Model 200, Figure 4 The model 400 of FIG. 4 shows two intermediate poses—a first intermediate pose 404 in the first half of the complete movement of the robot arm and a second intermediate pose 408 in the second half of the complete movement of the robot arm. The two intermediate poses each satisfy the Cartesian constraint 10 instead of violating the Cartesian constraint and are located along the Figure 3 313. In addition, all other intermediate poses along the path 315 (not shown for simplicity of illustration) also satisfy the Cartesian constraint 10.
[0056] Figure 5A500A is an example curve of different trapezoidal velocity profiles for three joints of a robotic arm according to one embodiment. Curve 500A depicts the velocity (y-axis) of multiple joints of the robotic arm relative to time (s-axis). For example, joint 1 may have a first trapezoidal velocity profile 503A, joint 2 may have a second trapezoidal velocity profile 505A, and joint 3 (end effector) may have a third trapezoidal velocity profile 507A, each varying to some extent according to the planned control of the three joints. If the edges of these trapezoidal velocity profiles (e.g., the beginning and end of joint movement) are not aligned, the robotic arm does not move in a straight line. Accordingly, due to such nonlinear movement, changes in velocity limits for different joints may cause an edge of FIG. 313 to move into a Cartesian limit (otherwise the edge may not move into the Cartesian limit), or cause an edge that may move into the Cartesian limit not to move into the Cartesian limit. Accordingly, path optimization performed by changes in dynamic criteria may also be performed in view of Cartesian limits. However, in some implementations, including tolerances within the Cartesian limit check may resolve this issue and separate further checks of the Cartesian limits may not be required.
[0057] Figure 5B is a trapezoidal velocity distribution corresponding to the three joints of the robot arm according to one embodiment ( Figure 5A ). Curve 500B depicts the acceleration (y-axis) of the end effector with respect to time (x-axis). Note that the initial acceleration causes the movement to be followed by a constant velocity and ends with a final deceleration to stop the robot arm. In reality, the step-based shape of the acceleration and deceleration may vary more and therefore have a more curved shape, but is illustrated in this manner for explanation purposes only.
[0058] Additional References Figure 5B , joint 1 may have a first acceleration profile 503B, joint 2 may have a second acceleration profile 505B, and joint 3 (end effector) may have a third acceleration profile 507B. Note that joints closer to the robot base have higher acceleration limits and lower velocity limits, while joints farther from the robot base have lower acceleration limits but higher velocity limits. Thus, joint 1 has a higher acceleration limit than joint 3 (end effector), and joint 3 has a higher velocity limit than joint 1. Acceleration limits on joint 3 or the end effector are particularly useful in preventing substrates from flying off the end effector during execution of robot moves.
[0059] In various embodiments, the motion controller 102 (e.g., the move time minimizer 108) randomly varies distributed movement parameters such as speed limits (e.g., maximum speed) and acceleration limits (maximum acceleration) of the speed distribution of each movement of a joint of the plurality of joints between the nearest neighbor reachable positions and across the plurality of (shortest) paths. In one embodiment, these speed distributions are trapezoidal speed distributions, but other speed distributions are also contemplated, such as reference Figure 7B While performing this random variation, the motion controller 102 can further verify that torque limits on one or more motors moving the robotic arm are met in view of the varying speed limits and acceleration limits. In this way, the motion controller 102 can seek to find the best combination where the movement is fast while not exceeding the torque on the motors or the acceleration of the end effectors. For example, such torque limits can be applied independently to each joint. In various embodiments, the motion controller 102 can verify that the maximum acceleration limits of the end effectors are also met.
[0060] In some embodiments, the motion controller 102 may iteratively perform random changes in the velocity limit and acceleration limit of each of the plurality of joints while tracking the shortest movement time until converging to the first path 315 ( Figure 3 )’s minimum moving time. Figure 6 600 is a graph of movement time optimization in which the movement time of the robot arm is minimized to less than 10 seconds after seven iterations according to one embodiment. The number of iterations and movement times illustrated in graph 600 are merely illustrative for purposes of explanation, and additional or fewer iterations are contemplated to achieve the same or different minimum movement times.
[0061] Fig. 7A is a flow chart of a method 700A for determining the shortest path through a robot joint space in which a plurality of joints and end effectors satisfy Cartesian constraints according to various embodiments. The method 700A may be performed by processing logic, which may include hardware (e.g., a processing device, a circuit system, a dedicated logic, a programmable logic, a microcode, hardware of a device, an integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination of the foregoing. In some embodiments, the method 700A is performed by the motion controller 102 ( Figure 1) or other computing systems with processing devices. Although shown in a particular sequence or order, the process order may be modified unless otherwise stated. Therefore, the illustrated embodiments should be understood as examples only, and the illustrated processes may be performed in different orders, and some processes may be performed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0062] At operation 710, processing logic determines a start point and an end point of one or more end effectors within a joint space of the robot for a complete movement of the robot to transfer a substrate positioned on the one or more end effectors.
[0063] At operation 715, processing logic identifies a plurality of reachable positions through the plurality of joints and one or more end effectors from a grid of joint positions within the joint ranges of the plurality of joints and using a first granularity. Figure 3 As discussed, the grid is in joint space and includes a start point and an end point. A first granularity may include between 7 and 15 reachable positions within four to six arcs of a distance of a joint in the plurality of joints.
[0064] At operation 720 , processing logic constructs a graph including nodes for representing the plurality of reachable positions based on the joint position combinations of the respective reachable positions of the plurality of reachable positions that also satisfy the Cartesian constraints of the robotic arm within the joint space.
[0065] At operation 725 , processing logic adds edges to the graph that interpolate between nearest neighbor nodes of nodes that complete multiple paths between the start point and the end point, where the edges also satisfy the Cartesian constraints.
[0066] At operation 730 , processing logic calculates, via the processing device, distances of edges of the graph, for example, using the Euclidean norm between joint position values of nearest neighbor nodes.
[0067] At operation 735, processing logic performs a graph optimization algorithm (such as a Dijkstra graph algorithm or an A* search algorithm) on the graph to determine one of multiple shortest paths or lowest cost paths that pass through the nodes between the start point and the end point. As discussed, the lowest cost path can further integrate a cost function (e.g., a path with weights) into the distance calculation, which rewards or penalizes different paths depending on the cost function and various criteria. For example, the cost function rewards particularly short and / or straight paths and penalizes particularly long and / or curvature paths, and depends on the curvature. In addition, the cost function can penalize paths that are expected to see lower speeds and reward paths that are expected to see higher speeds. By using different cost functions, the shortest path more closely approaches the shortest path associated with the shortest movement time. Using different cost functions for graph optimization can improve the second stage (reference) by reducing the number of multiple shortest paths considered. Figure 7B Some implementations may skip the second stage and directly calculate the shortest movement time.
[0068] Figure 7B is used to determine which shortest path ( Fig. 7A ) is a flowchart of a method 700B that can minimize the movement time on a motion controller 102. The method 700B can be performed by processing logic, and the processing logic can include hardware (e.g., a processing device, a circuit system, a dedicated logic, a programmable logic, a microcode, a hardware of a device, an integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination of the above items. In some embodiments, the method 700B is performed by the motion controller 102 ( Figure 1 ) or other computing systems with processing devices. Although shown in a particular sequence or order, the process order may be modified unless otherwise stated. Therefore, the illustrated embodiments should be understood as examples only, and the illustrated processes may be performed in different orders, and some processes may be performed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0069] At operation 755, processing logic selects a path between the start point and the end point (eg, an optimal movement path) from among the plurality of shortest paths that minimizes the movement time of the primary end effector between the start point and the end point. Processing logic may further direct the robot to transfer the substrate using a path through the joint space.
[0070] When performing operation 755, at operation 760, the processing logic may further randomly change the speed limit and acceleration limit of the speed distribution of each movement of a joint of the plurality of joints (the movement is between the nearest neighbor nodes and passes through a plurality of shortest paths). In one embodiment, the speed distribution is as shown in reference FIG. 5A to FIG. 5B In alternative embodiments, the velocity profile is an S-curve, a Jerk limited, a Quintic polynomial (Q-curve), for example, a 5th order polynomial, or a similar velocity profile.
[0071] At operation 765, processing logic verifies that torque limits on one or more motors that move the robotic arm are met in view of the varying speed limits and acceleration limits. For example, these torque limits may apply to multiple joints. At operation 770, processing logic verifies that maximum acceleration limits on one or more end effectors are met.
[0072] Figure 8 800 is a flow chart of a method 800 for planning and executing movement of a robot arm on a path through a robot joint space that satisfies Cartesian constraints and minimizes movement time according to various embodiments. The method 800 may be performed by processing logic, which may include hardware (e.g., a processing device, a circuit system, dedicated logic, programmable logic, microcode, hardware of a device, an integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination of the above. In some embodiments, the method 800 is performed by the motion controller 102 ( Figure 1 ) or other computing systems with processing devices. Although shown in a particular sequence or order, the process order may be modified unless otherwise stated. Therefore, the illustrated embodiments should be understood as examples only, and the illustrated processes may be performed in different orders, and some processes may be performed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0073] At operation 810, processing logic determines the start and end points of one or more end effectors within the joint space of the robot for a complete movement of the robot to transfer a substrate.
[0074] At operation 815, processing logic constructs a map of reachable positions and subpaths between reachable positions with respect to the joint space of the plurality of joints and one or more end effectors. The reachable positions and subpaths satisfy Cartesian constraints within the joint space, and the reachable positions are identified at a granularity that divides a complete movement into multiple sub-movements of the robot. For example, within four to six arcs of a distance of a joint of the plurality of joints, the granularity of the reachable positions is between 7 and 15 reachable positions.
[0075] At operation 820, by executing a graph optimization algorithm on the graph, processing logic determines multiple paths between the start point and the end point having one of the shortest distance or the lowest cost, the multiple paths each consisting of a set of subpaths. Determining the lowest cost path using different cost functions was previously discussed.
[0076] At operation 825, processing logic selects a path (e.g., an optimal movement path) from among the plurality of paths that minimizes the movement time of one or more end effectors between a start point and an end point while satisfying torque constraints on a plurality of joints and acceleration constraints on one or more end effectors via the graph. In one embodiment, the one or more end effectors include a primary end effector and a passive end effector. Additionally, to select the path, processing logic further ensures that the passive and primary end effectors satisfy acceleration constraints while minimizing the movement time of the primary end effector.
[0077] At operation 830 , processing logic optionally directs the robot to transfer the substrate using a path through the joint space.
[0078] The foregoing description has been described several specific details, such as examples of specific systems, parts, methods, etc., in order to provide a good understanding of several embodiments of the present disclosure. However, it will be clear to those skilled in the art that at least some embodiments of the present disclosure can be put into practice without these specific details. In other examples, well-known parts or methods are not described in detail or presented in simple block diagram form, in order to avoid making the present disclosure unnecessarily obscure. Therefore, the specific details of elaboration are only exemplary. Specific embodiments can be changed from these exemplary details and are still expected to be within the scope of the present disclosure.
[0079] Reference throughout this specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearance of the phrase "in one embodiment" or "in an embodiment" in various places throughout this specification is not necessarily all referring to the same embodiment. In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". When the term "about" or "approximately" is used herein, this is intended to mean that the nominal value presented is accurate within ±10%.
[0080] Although the operations of the methods herein are illustrated and described in a particular order, the order of operations of each method can be changed, so that some operations can be performed in a reverse order, so that some operations can be performed at least partially simultaneously with other operations. In another embodiment, the instructions or sub-operations of different operations can be intermittent and / or alternating.
[0081] It will be understood that the above description is intended to be illustrative rather than restrictive. After reading and understanding the above description, numerous other embodiments will be apparent to those skilled in the art. Thus, the scope of the present disclosure should be determined with reference to the appended claims, together with the full scope of equivalents given by these claims.
Claims
1. A system comprising: A robot comprising a robotic arm having a plurality of joints and one or more end effectors for carrying a substrate; and a processing device, the processing device being coupled to the robot, the processing device being configured to: constructing a map of reachable positions and subpaths between the reachable positions with respect to a joint space of the plurality of joints and the one or more end effectors, wherein the reachable positions and the subpaths satisfy Cartesian constraints within the joint space, wherein the Cartesian constraints are defined by obstacles; determining a plurality of paths by executing a graph optimization algorithm on the graph, the plurality of paths each consisting of a set of the sub-paths and having one of a shortest distance or a lowest cost between a start point and an end point of the one or more end effectors; and A path among the plurality of paths that minimizes a movement time of the one or more end effectors between the start point and the end point is selected via the graph.
2. The system of claim 1, wherein the handling device further directs the robot to transport the substrate on the path through the joint space.
3. The system of claim 1 , wherein the reachable locations are represented as nodes and the subpaths between the reachable locations are represented as edges in the graph, and to construct the graph, the processing means is further configured to: identifying a plurality of nodes, each node being reachable by one of the plurality of joints or the one or more end effectors and satisfying the Cartesian constraints of the robotic arm; adding edges that are linearly interpolated between nearest neighbors of the plurality of nodes, wherein each edge also satisfies the Cartesian restriction; and The distances of the edges are calculated to perform the graph optimization algorithm using the distances of the edges.
4. The system of claim 1, wherein in order to minimize the movement time of the one or more end effectors, the processing device is further configured to: Randomly varying a speed limit and an acceleration limit of a speed distribution of each movement of a joint of the plurality of joints between nearest neighbor reachable positions and across the plurality of paths; verifying that torque limits on one or more motors that move the robotic arm are met in view of the varying speed limits and acceleration limits; and Verifying that a maximum acceleration constraint of the one or more end effectors is met.
5. The system of claim 4, wherein the processing device further iteratively performs the random changes of the velocity limit and the acceleration limit of each joint of the plurality of joints while keeping track of the shortest movement time until converging to the minimum movement time of the path.
6. The system of claim 1, wherein the processing device is further configured to: identifying an additional path from the plurality of paths that minimizes travel time to the additional endpoint; and In response to the robot waking up: determining a position in the joint space of a primary end effector of the one or more end effectors; determining an endpoint among the additional endpoints that is closest to the location; selecting an additional path among the additional paths based on the position; and The robotic arm is guided back to a starting position at the starting point via the selected additional path.
7. The system of claim 1, wherein the graph optimization algorithm comprises one of a Dijkstra graph algorithm or an A* search algorithm.
8. The system of claim 1, wherein the granularity of the reachable positions is between 7 and 15 reachable positions within four to six arcs of a distance of a joint in the plurality of joints.
9. The system of claim 1 , wherein the one or more end effectors include a primary end effector and a passive end effector, and to select the path, the processing device further ensures that the passive end effectors and the primary end effectors meet acceleration constraints while minimizing the movement time of the primary end effector.
10. A method comprising the following steps: constructing a graph of reachable positions and subpaths between the reachable positions about a joint space of a plurality of joints and one or more end effectors of the robot arm, wherein the reachable positions and the subpaths satisfy Cartesian constraints within the joint space, wherein the Cartesian constraints are defined by obstacles; determining a plurality of paths through the graph by executing a graph optimization algorithm on the graph with a processing device, wherein each path in the plurality of paths includes a set of the sub-paths and has one of a shortest distance or a lowest cost between a start point and an end point of the one or more end effectors; and A path among the plurality of paths that minimizes a movement time of the one or more end effectors between the start point and the end point is selected via the graph.
11. The method of claim 10, further comprising the step of directing the robot to transfer a substrate on the one or more end effectors on the path through the joint space.
12. The method of claim 10, wherein the reachable locations are represented as nodes, and the subpaths between the reachable locations are represented as edges in the graph, and the step of constructing the graph further comprises: identifying a plurality of nodes, each node being reachable by one of the plurality of joints or the one or more end effectors and satisfying the Cartesian constraints of the robotic arm; adding edges that are linearly interpolated between nearest neighbors of the plurality of nodes, wherein each edge also satisfies the Cartesian restriction; and The distances of the edges are calculated to perform the graph optimization algorithm using the distances of the edges.
13. The method of claim 10, wherein in order to minimize the movement time of the one or more end effectors, the method further comprises: Randomly varying a speed limit and an acceleration limit of a speed distribution of each movement of a joint of the plurality of joints between nearest neighbor reachable positions and across the plurality of paths; verifying that torque limits on one or more motors that move the robotic arm are met in view of the varying speed limits and acceleration limits; and Verifying that a maximum acceleration constraint of the one or more end effectors is met.
14. The method of claim 13, further comprising iteratively performing the random variation of the velocity limit and the acceleration limit for each of the plurality of joints while keeping track of a shortest movement time until converging on a minimum movement time for the path.
15. The method of claim 10, further comprising: identifying an additional path in the plurality of paths that minimizes travel time to the additional endpoint; and In response to the robot arm waking up: determining a position in the joint space of a primary end effector of the one or more end effectors; determining an endpoint among the additional endpoints that is closest to the location; selecting an additional path among the additional paths based on the position; and The robotic arm is guided back to a starting position at the starting point via the selected additional path.
16. The method of claim 10, wherein the graph optimization algorithm comprises one of a Dijkstra graph algorithm or an A* search algorithm.
17. The method of claim 10, wherein the granularity of the reachable positions is between 7 and 15 reachable positions within four to six arcs of a distance of a joint in the plurality of joints.
18. The method of claim 10, wherein the one or more end effectors include a primary end effector and a passive end effector, and selecting the path further includes: ensuring that the passive end effectors and the primary end effector meet acceleration constraints while minimizing the movement time of the primary end effector.
19. A non-transitory computer readable medium storing instructions, wherein the instructions, when executed by a processing device, cause the processing device to perform a plurality of operations, the operations comprising: constructing a graph of reachable positions and subpaths between the reachable positions about a joint space of a plurality of joints and one or more end effectors of the robot arm, wherein the reachable positions and the subpaths satisfy Cartesian constraints within the joint space, wherein the Cartesian constraints are defined by obstacles; determining a plurality of paths through the graph by executing a graph optimization algorithm on the graph, wherein each path of the plurality of paths includes a set of the sub-paths and has one of a shortest distance or a lowest cost between a start point and an end point of the one or more end effectors; and A path among the plurality of paths that minimizes a movement time of the one or more end effectors between the start point and the end point is selected via the graph.
20. The non-transitory computer readable medium of claim 19, wherein the plurality of operations further comprises directing the robot to transfer a substrate on the one or more end effectors on the path through the joint space.
Citation Information
Patent Citations
Time-optimal trajectories for robotic transfer devices
CN103907068A
Specialized robot motion planning hardware and methods of making and using same
CN107206592A