Robotic work cell design technique
Patent Information
- Application Number
- CN202211558455.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-12-10
- Filing Date
- 2022-12-06
- Publication Date
- 2026-10-23
- Estimated Expiration
- 2042-12-06
AI Technical Summary
由于基于数学的优化方法不容易扩展到此类问题,因此用户通常无法使用针对给定机器人安装实例的特定目标优化解决方案的优化过程
[0008]所公开的技术相对于现有技术的至少一个技术优势在于,利用所公开的技术,用户可以基于一个或多个用户定义的性能度量来评估针对机器人工作单元内的各种机器人或工件位置的机器人性能。例如,基于用户定义的性能度量的加权分数使用户能够客观地比较针对工作单元内每个有效机器人或工件位置的机器人性能。另一个优势在于所公开的技术可用于快速生成针对整个工作单元中的位置的解决方案。因此,用户可以迭代测试不同性能度量和/或性能度量的加权组合的显著性,并修改用于选择机器人或工件位置的性能度量。这些技术优势提供优于现有技术方法的一个或多个技术进步。
Smart Images

Figure CN116257946B_ABST
Abstract
Description
Technical Field
[0001] The various implementation schemes generally involve computer science and robotics, and more specifically, robotic work cell design techniques. Background Technology
[0002] Robots are typically used for tasks requiring high repetition, tasks that pose or may pose a danger to humans, and / or tasks that require high precision. For example, robots are frequently used in manufacturing applications and in environments harmful to humans. Generally, a robot is an automated or semi-automated, programmable machine capable of complex planar or three-dimensional motion. In manufacturing applications, robots are typically stationary and positioned to perform a specified task within a robotic work cell.
[0003] Properly placing the manufacturing robot within the robotic work cell is crucial for preventing accessibility problems, avoiding singularities at one or more joints, and improving the robot's overall performance during operation. Therefore, positioning the robot's base within the robotic work cell is a key aspect of its design. The problem of determining the ideal base position of the robot within the robotic work cell to perform defined tasks has been extensively studied, and various optimization procedures have been developed to address this issue. However, these optimization procedures have certain drawbacks.
[0004] One drawback is that conventional optimization processes can be computationally complex, making them time-consuming to set up and run. Therefore, such processes are generally unsuitable for iterative design processes. Many situations in manufacturing applications can generate this computational complexity, such as when the area to be covered is larger than the robot arm's reach distance, when the number of targets on the robot arm is large, when the robot arm's toolpath is fixed, and when the task involves complex motions on the robot's end effector. In each of these instances, conventional optimization processes are not helpful to users finding the optimal robot position for a specific task because the workload associated with programming and running such optimization processes is enormous. Instead, users typically rely on prior experience, trial and error, and / or tribal knowledge to select the robot's base position, and cannot quantify and compare the robot's performance in different environments.
[0005] Another drawback is that conventional optimization processes are limited to generating solutions involving a single optimization objective or a small set of optimization objectives. However, the optimization objectives for locating manufacturing robots can vary considerably, depending on the nature of the task and the user's specific goals. Examples of such diverse and sometimes conflicting optimization objectives include, but are not limited to, the accessibility of all objectives, the smoothness of motion, and energy efficiency. Therefore, to assist users in locating robots, conventional optimization processes must be designed to address the different cost functions or combined cost functions of each optimization objective or set of objectives that the user might be interested in when locating the robot. Because mathematically based optimization methods are not easily extended to such problems, users typically cannot use optimization processes that optimize solutions for specific objectives of a given robot installation instance. Therefore, unless the optimization process happens to be designed according to the objectives of a specific robot installation instance, users must rely on personal experience and / or trial and error to select the robot position.
[0006] As explained above, there is a need in the art for more effective techniques for determining the placement of robots within robotic work cells. Summary of the Invention
[0007] A computer-implemented method for generating and evaluating robot work cell solutions includes: determining a plurality of locations within a work cell volume, wherein each location corresponds to a possible work cell solution; for each location included in the plurality of locations, determining a value of a first robot motion attribute of the first robot based on location information associated with that location and a trajectory associated with a component of the first robot; and for each location included in the plurality of locations, calculating a first value of a first performance metric based on the value of the first robot motion attribute.
[0008] At least one technical advantage of the disclosed technology over existing technologies lies in that, using the disclosed technology, users can evaluate robot performance for various robot or workpiece positions within a robot cell based on one or more user-defined performance metrics. For example, weighted scores based on user-defined performance metrics enable users to objectively compare robot performance for each effective robot or workpiece position within the work cell. Another advantage is that the disclosed technology can be used to rapidly generate solutions for positions throughout the entire work cell. Therefore, users can iteratively test the significance of different performance metrics and / or weighted combinations of performance metrics, and modify the performance metrics used to select robot or workpiece positions. These technical advantages provide one or more technological advancements superior to existing methods. Attached Figure Description
[0009] By referring to various embodiments, the above-described features of the various embodiments can be understood in a more detailed description of the inventive concept briefly described above, some of which are shown in the accompanying drawings. However, it should be noted that the drawings only illustrate typical embodiments of the inventive concept and should therefore not be considered as limiting the scope, and other equally effective embodiments exist.
[0010] Figure 1 A robot setup evaluation system is shown, configured to implement one or more aspects of various implementation schemes.
[0011] Figure 2 This is a conceptual diagram of a robot work cell based on various implementation schemes.
[0012] Figure 3 It is a schematic diagram of a graphical user interface for displaying information associated with multiple design locations within a robot work cell, according to various implementation schemes.
[0013] Figure 4 It is a schematic diagram of a graphical user interface for displaying information associated with multiple design locations within a robot work cell, according to various other implementation schemes.
[0014] Figure 5A It is a schematic diagram of a graphical user interface for displaying the effective design positions within a robot work cell, according to various implementation schemes.
[0015] Figure 5B This is based on various implementation schemes after the user has selected a specific effective design location. Figure 5A A schematic diagram of the graphical user interface.
[0016] Figure 6 A flowchart illustrating the methodological steps for generating and evaluating the performance of robotic work cell solutions according to various implementation schemes is provided.
[0017] Figure 7 It is a block diagram of a computing device configured to implement one or more aspects of various implementation schemes.
[0018] For clarity, the same reference numerals have been used where applicable to designate the same elements common in the figures. It is conceivable that features of one embodiment can be incorporated into other embodiments without further description. Detailed Implementation
[0019] Numerous specific details are set forth in the following description to provide a more thorough understanding of various embodiments. However, it will be apparent to those skilled in the art that the inventive concept can be practiced without one or more of these specific details.
[0020] Robot motion properties and performance metrics used for designing positions Figure 1 A robot setup evaluation system 100 is illustrated, configured to implement one or more aspects of various implementation schemes. The robot setup evaluation system 100 is a computer-implemented system configured to determine effective setup solutions for a specific robot work cell and quantify the performance of each effective setup solution based on one or more user-defined performance metrics. The robot setup evaluation system 100 is also configured to facilitate user evaluation of the performance of effective setup solutions and user modification of the performance metrics used to quantify the performance of effective setup solutions. Figure 1 In the illustrated implementation, the robot setup evaluation system 100 includes a setup module 110, a calculation engine 120, and a user interface (UI) and result search module 130.
[0021] The setup module 110 is configured to enable a user (not shown) to provide design input 101 to define a specific robot setup problem. One example of such a robot setup problem is determining the robot base position within a robot work cell, which enables the specified robot to achieve high, peak, or ideal performance relative to one or more user-defined performance metrics. Another such example is determining the workpiece position within a robot work cell, which enables the specified robot to achieve high, peak, or ideal performance relative to one or more user-defined performance metrics. According to various embodiments described in more detail below, user-defined performance metrics can quantify the performance of the specified robot with respect to specific factors, not just collision avoidance, singularity avoidance, and accessibility.
[0022] In some implementations, the setup module 110 receives design input 101 via a UI generated by the UI and results search module 130. User input 101 may include various inputs defining the design problem to be solved, such as a specific robot setup problem within a robot work cell. The following is in conjunction with... Figure 2 An implementation scheme for a robotic work cell is described.
[0023] Figure 2This is a conceptual diagram of a robotic work cell 200 according to various embodiments. The robotic work cell 200 is the operating environment of a robot 210 configured to perform specific tasks. In some embodiments, the task includes performing one or more operations on a workpiece 220 arranged within the robotic work cell 200, such as manufacturing-related operations, construction-related operations, and entertainment-related operations. Examples of manufacturing-related operations that can be performed by the robot 210 on the workpiece 220 include welding, adhesive application, painting, coating, decoating, abrasion, subtractive manufacturing processes, additive manufacturing processes, etc. Examples of construction-related operations that can be performed by the robot 210 on the workpiece 220 include large-scale assembly processes, material cutting (such as drywall, wood, etc.), coating, spraying, rendering, etc. Examples of entertainment-related operations that can be performed by the robot 210 on the workpiece 220 include filming, controlled motion for visual effects production, programmed motion for live entertainment, controlled motion for passenger seating, etc.
[0024] The robot work cell 200 includes a legal volume 230 in which potential robot base positions or workpiece positions (referred to herein as "design positions") can be located. Figure 2 In the illustrated embodiment, the legal volume 230 indicates the area within the robot work cell 200 where the workpiece 220 can be positioned. Therefore, Figure 2 The valid volume 230 is configured for robot setup problems, wherein the determined workpiece position achieves high, peak, or ideal performance of robot 210 during the performance of a specified task associated with workpiece 220. In other embodiments, the valid volume 230 may be configured for robot setup problems, wherein the determined robot base position achieves high, peak, or ideal performance of robot 210 during the performance of a specified task associated with workpiece 220.
[0025] Robot 210 can be any technically feasible robot including the fixed base 213, such as a Cartesian robot, a selectively compliant articulated robotic arm (SCARA) robot, an articulated robot, a triangular robot, or a cylindrical robot, etc. Figure 2 In the illustrated embodiment, the mounting base 213 is disposed on an upward-facing horizontal surface, such as floor 202. In other embodiments, the mounting base 213 is disposed in connection with and / or associated with the robot work cell 200. Figure 2 On another surface at different heights. Furthermore, in some embodiments, a particular robot setup problem associated with the robot work cell 200 includes determining the optimal or high-performance position of the robot 210 on the floor 202 or on another surface associated with the robot work cell 200.
[0026] Typically, robot 210 includes two or more joints 211, each joint 211 capable of movement, which includes one or more degrees of freedom, such as rotation about an axis, extension along an axis, and / or similar. Figure 2 In the illustrated embodiment, robot 210 also includes an end effector 212 configured to perform one or more specific operations in robot work cell 200. For example, in some embodiments, end effector 212 includes welding attachments, workpiece manipulators, paint spray nozzles, liquid applicators, etc.
[0027] Workpiece 220 can be any object on which robot 210 can perform one or more operations. In some embodiments, workpiece 220 is positioned at a predetermined location 215 within robot work cell 200, in which case the specific robot setup problem associated with robot work cell 200 includes determining the optimal or high-performance location of robot 210. That is, in such embodiments, the predetermined location 215 is included in the definition of the robot setup problem. In other embodiments, the specific robot setup problem associated with robot work cell 200 includes determining the optimal or high-performance location of workpiece 220. Therefore, in such embodiments, workpiece 220 does not have a predetermined location, and the predetermined location of robot 210 is included in the definition of the robot setup problem.
[0028] In some embodiments, trajectory 240 is positioned within robot work cell 200 and associated with robot 210. For example, in one embodiment, trajectory 240 is associated with end effector 212 of robot 210. In some embodiments, trajectory 240 includes a path 241 (dashed line) in three-dimensional space that defines the movement of components of robot 210 (such as end effector 212) within the robot work cell. In some embodiments, trajectory 240 also includes a velocity distribution map (not shown) that defines the velocities of components of robot 210 at different points along path 241. Thus, trajectory 240 defines the movement of a particular component of robot 210 as it performs one or more operations on workpiece 220. For example, in some embodiments, trajectory 240 defines the path and velocity of end effector 212 for painting, welding, grinding, coating, or other operations performed when workpiece 220 is positioned at predetermined location 215. Alternatively, in some implementations, when the workpiece 220 is repositioned from its initial position 216 in the robot work cell 200 to a predetermined position 215, the trajectory 240 defines the path and speed of the end effector 212.
[0029] exist Figure 2In the illustrated embodiment, a single trajectory 240 is associated with robot 210. In other embodiments, multiple trajectories (not shown) are arranged within robot work cell 200 and associated with robot 210. For example, in one such embodiment, robot 210 performs multiple operations on workpiece 220, and for each operation, a different trajectory 240 is associated with end effector 212 of robot 210. Alternatively or additionally, in one such embodiment, different trajectories 240 are associated with one or more of joints 211 of robot 210.
[0030] return Figure 1 As described above, the setup module 110 receives design input 101 via a UI, wherein the design input 101 defines a specific robot setup problem to be solved for the robot work cell 200. In some embodiments, the design input 101 includes definitions Figure 2 The input for the dimensions of the legal volume 230 defines the external physical boundaries of the design problem. In such embodiments, the input defining the dimensions of the legal volume 230 may be based on one or more geometric primitives (e.g., cubes, pyramids, etc.) and / or specific dimension values. In some embodiments, design input 101 includes the location of the collider or other prohibited areas within the legal volume. In some embodiments, design input 101 includes information on one or more trajectories 240. In some embodiments, design input 101 includes one or more constraints or thresholds, such as those for robot motion attributes and / or user-defined performance parameters. In some embodiments, design input 101 includes one or more weighting factors for generating a quality score based on multiple user-defined performance parameters.
[0031] In some embodiments, design input 101 includes one or more simulation parameters. In such embodiments, simulation parameters may include discrete values for defining design locations within a legal volume. In such embodiments, a more highly discrete legal volume corresponds to more closely spaced design locations evaluated by the robot setup evaluation system 100 in a particular study. In some embodiments, simulation parameters include discrete values for defining the granularity of the simulated end effector trajectory. In such embodiments, discrete values may indicate multiple discrete points along trajectory 240 used to simulate the end effector trajectory. It is worth noting that higher discrete values result in performing more computations to generate robot motion properties for each design location (described below), while lower discrete values increase the likelihood of failing to detect singularities, collisions, and / or optimal design locations.
[0032] In some implementations, the simulation parameters include one or more parameters for the inverse kinematics solver 121 included in the computation engine 120. In such implementations, the parameters may include specific joint constraints to be implemented by the inverse kinematics solver 121, specific joint configurations to be used for one or more specified poses of the end effector 212, etc.
[0033] In some implementations, user input 101 includes one or more user-defined performance metrics for quantifiable evaluation of performance at each design location. In such implementations, each user-defined performance metric is based on one or more robot motion attributes calculated for each design location within the legal volume 230. Such calculations can be performed by computation engine 120, as described below.
[0034] Each robot motion attribute is a concern that can be calculated for each design location within the legal volume 230. In some implementations, robot motion attributes are based on the robot's end effector (or other component) following a specified trajectory (e.g., Figure 2 When the robot (e.g., in trajectory 240) performs the specified operation, it is in motion. Figure 2A robot motion attribute is a quantity of kinematic and / or dynamic motion of one or more parts of robot 210. That is, in some embodiments, each robot motion attribute may be one of the kinematic conditions or dynamic conditions of motion of a particular part of robot 210. Therefore, in some embodiments, the robot motion attributes determined for each design location in the legal volume 230 include one or more of position or displacement, velocity, acceleration, and jerk. For example, in embodiments where the robot setup problem includes determining the position of the robot base within the robot work cell, the robot motion attributes determined for each design location include the maximum velocity, maximum acceleration, and maximum jerk of the robot end effector that occurs when the end effector follows a specified trajectory. Additionally or alternatively, in such embodiments, similar robot motion attributes may be determined for one or more other parts of the robot, such as one or more joints of the robot. Additionally or alternatively, in such embodiments, multiple values for each robot motion attribute may be determined for each design location. For example, in some embodiments, for a particular part (or multiple parts) of the robot, displacement, velocity, acceleration, and jerk may be determined for multiple points along a specified trajectory. Therefore, in such an implementation, for one, some, or all of the robot's movable parts, one or more robot motion attributes can be tracked along all or part of a specified trajectory. In such an implementation, for each design location, multiple values of a particular robot motion attribute can be tracked along the specified trajectory, for example, by plotting such values along the specified trajectory. In such an implementation, another dimension of granularity is provided to the user when evaluating robot motion attributes. For example, in this implementation, a particular performance metric could be the average value of a robot motion attribute (e.g., jerk associated with a particular axis of rotation). In this implementation, tracking the values of a robot motion attribute along a specified trajectory allows the user to distinguish the performance of two design locations that have the same average value for that particular performance metric: one design location might have a relatively low value for the robot motion attribute across the entire trajectory, except for a large spike, while another design location with the same average value for the robot motion attribute might consistently have a high value across the entire trajectory, but without such a detrimental value spike.
[0035] According to various implementations, user-defined performance metrics are also determined for each design location within the legal volume, and these user-defined performance metrics are based on the values of one or more robot motion attributes at the design location. Typically, user-defined performance metrics are selected to allow the user to objectively compare the performance of each valid design location within the work cell relative to one or more application-specific factors of interest to the user. For example, in one instance, a user setting up a robot in a factory that will perform the same operation for ten years might be interested in minimizing the robot's energy consumption and / or factors affecting the robot's lifespan. Therefore, in such an instance, various implementations enable the user to generate one or more performance metrics that quantify such factors, such as torque applied to one or more joints of the robot, maximum force applied to one or more joints of the robot, etc. In another instance, a user setting up a robot to perform a specific operation in a single operation might be interested in minimizing vibration at the end effector to achieve a specified accuracy. In such an instance, various implementations enable the user to generate one or more performance metrics that quantify jerk or similar factors at some or all joints of the robot.
[0036] In some implementations, users can generate one or more performance metrics that quantify more complex aspects of a particular work cell setup, such as robot setup costs, lifetime operating costs, and the smoothness of end effector motion. In such implementations, performance metrics can be based on additional information beyond the robot motion attributes calculated for each design location. For example, in some implementations, a robot setup cost metric may include information associated with: the specific model of the robot to be positioned in the work cell; the specific configuration of the robot to be positioned in the work cell (e.g., configurations including custom base heights versus configurations with standard base heights); the robot's mounting orientation (e.g., floor-mounted versus wall-mounted versus ceiling-mounted); different installation and / or operating costs that may vary based on design location, robot configuration, robot mounting orientation, robot model; and / or similar. In another example, in some implementations, a lifetime operating cost metric may include information associated with: the different replacement costs of individual robot joints, the different wear rates of individual robot joints, the speed at which one or more specific operations can be performed for each design location, and / or similar. According to various implementations, the setup module 110 enables such performance metrics to be implemented by the user, for example via a UI generated by the UI and results search module 130. Therefore, in some implementations, one or more user-defined performance metrics are defined via design input 101.
[0037] Computational engine 120 is configured to perform calculations to generate robot motion attributes for each design location within a valid volume (e.g., valid volume 230) and one or more user-defined performance metrics for each design location. Typically, the robot motion attributes and user-defined performance metrics are based on design input 101, such as simulation parameters, parameters of the inverse kinematics solver 121, one or more trajectories (for robot parts and / or for workpieces), and / or other information. For example, in some embodiments, a particular robot setup problem associated with a robot work cell includes determining the optimal or high-performance position of the robot. In such embodiments, computational engine 120 simulates the motion of robot parts and / or workpieces via a specified trajectory or at a specified point along that trajectory for each design location within the robot work cell. In such embodiments, the robot's motion can be simulated using the inverse kinematics solver 121. In another example, in some embodiments, a particular robot setup problem includes determining the optimal or high-performance position of a workpiece relative to a fixed robot position. In such embodiments, computational engine 120 simulates the motion of robot parts via a specified trajectory or at a specified point along that trajectory for each design location within the robot work cell. In such an implementation, the robot's motion can be simulated by the inverse kinematics solver 121.
[0038] In some embodiments, the computation engine 120 is also configured to determine quality scores for some or all of the design locations within the robot work cell. In such embodiments, the computation engine 120 determines the quality scores based on multiple user-defined performance metrics. In some embodiments, the quality scores are based on a weighted combination of multiple user-defined performance metrics. Furthermore, in some embodiments, the value of each of the multiple user-defined performance metrics is normalized, for example, to a value between 0 and 1. In such embodiments, the value of a particular user-defined performance metric is normalized between a “best” value determined from all design locations and a “worst” value determined from all design locations. For example, when normalizing in this way, the best value can be set to 1, the worst value to 0, and the intermediate value to an appropriate value between 0 and 1. Therefore, in such embodiments, although each user-defined performance metric can typically have significantly different value ranges, the normalized values of the various user-defined performance metrics allow for fair comparison and / or weighting of heterogeneous user-defined performance metrics.
[0039] In some embodiments, the computation engine 120 is also configured to determine valid and invalid design locations. In some embodiments, design locations that do not meet accessibility requirements and / or are associated with one or more singularities are determined to be invalid design locations and are therefore generally not considered qualified locations for resolving robot display problems being analyzed by the robot setup evaluation system 100. Additionally or alternatively, in some embodiments, design locations exceeding one or more limits are determined to be invalid design locations. In some embodiments, such limits are associated with one or more robot motion attributes, such as a maximum acceleration limit for a robot component, a maximum jerk limit for a robot component, and / or similar. Additionally or alternatively, in some embodiments, limits are associated with one or more user-defined performance metrics, such as a maximum energy consumption value, a minimum motion smoothness value for a robot-specific component, a maximum debugging cost value, and / or similar. In some embodiments, such limits may be defined by the user in the design input 101.
[0040] UI and Results Search The UI and results search module 130 is configured to generate a UI that allows the user to input design input 101. For example, in some embodiments, the UI and results search module 130 is configured with dialog windows, plug-ins, drop-down menus, and / or allows the user to input the dimensions of a valid volume, discrete values and / or other simulation parameters, parameters of the inverse kinematics solver 121, user-defined performance metrics and / or other similar features.
[0041] The UI and results search module 130 is also configured to generate a UI that allows users to evaluate the performance of each design location within the robot's work cell. For example, in some implementations, the UI and results search module 130 is configured to display robot motion attributes, user-defined performance metrics, and / or the mass score for each design location within a valid volume. The following is in conjunction with... Figure 3 An implementation of such a UI is described.
[0042] Figure 3 This is a schematic diagram of a graphical user interface (GUI) 300, according to various implementation schemes, for displaying information associated with multiple design locations within a robotic work cell. The GUI 300 displays calculated values 302 of user-defined performance metrics for each valid design location 301 within the robotic work cell. Figure 3 In the illustrated implementation, the calculated value 302 is not displayed for invalid design location 303. The GUI 300 allows the user to easily evaluate the performance of all valid design locations of the robot work cell relative to a specific user-generated performance metric.
[0043] In some implementations, the UI and results search module 130 is also configured to generate a UI that allows users to evaluate the performance of each design location in the robot work cell relative to multiple user-generated performance metrics. (The following is in conjunction with...) Figure 4 An implementation of such a UI is described.
[0044] Figure 4 This is a schematic diagram of a graphical user interface (GUI) 400 for displaying information associated with multiple design locations within a robotic work cell, according to various other embodiments. The GUI 400 displays calculated values 302 of a first user-defined performance metric and 402 of a second user-defined performance metric for each valid design location 301 in the robotic work cell. Therefore, in Figure 4 In the illustrated implementation, values determined for multiple different performance metrics can be displayed for each valid design location 301, such as setup cost versus motion smoothness, or robot operating cost versus robot lifespan. Similarly, in some implementations, the GUI 400 can also be configured to display information associated with multiple robot motion attributes for each valid design location 301 in the robot cell. For example, in Figure 4 In the illustrated implementation, GUI 400 includes a quality score value 403 for each valid design location 301, wherein the quality score value 403 is based on a combination of a calculated value 302 and a calculated value 402 for each valid design location 301.
[0045] return Figure 1 In some implementations, the UI and results search module 130 is configured to enable users to refine the results of a specific study performed by the robot setup evaluation system 100. In such implementations, the GUI generated by the UI and results search module 130 displays valid design locations within the robot's work cell. Furthermore, when a user selects a specific valid design location 102 in the GUI, the calculation engine 120 discretizes the region encompassing and / or surrounding the selected design location into additional, higher-granularity design locations and determines values associated with each additional design location for robot motion attributes and user-defined performance metrics. The following is combined with... Figure 5A and Figure 5B An implementation of such a UI is described.
[0046] Figure 5A This is a schematic diagram of a GUI500 used to display the effective designed positions within a robot working cell, according to various implementation schemes. Figure 5AIn the illustrated embodiment, GUI 500 displays a plan view of robot work cell 550, valid region 530, and workpiece position 515. Within valid region 530, GUI 500 also displays valid design position 501 of robot base (not shown), invalid design position 502 of robot base, and design position 503 of robot base associated with a singular point of at least one joint of the robot. In some embodiments, design position 503 is a subset of invalid design position 502. Figure 5A In the illustrated embodiment, the valid region 530 is depicted as a two-dimensional region of the floor or other supporting surface. In other embodiments, the valid region 530 includes a three-dimensional region, and the GUI 500 can display the valid design location 501, the invalid design location 502, and the design location 503 in a three-dimensional format.
[0047] Figure 5B This is a schematic diagram of the GUI 500 after the user has selected a specific valid design location, according to various implementation schemes. As shown, in response to the user-selected specific design location 521, the calculation engine 120 generates multiple higher-granularity design locations 522 within the valid region 530. Furthermore, the calculation engine 120 performs calculations to determine the values of robot motion attributes and one or more user-defined performance metrics for each higher-granularity design location 522. Figure 5B In the illustrated implementation, a specific design location 521 is replaced by a higher-granularity design location 522. Additionally or alternatively, in some implementations, the computation engine 120 generates higher-granularity design locations 522 within valid design locations 501 adjacent to the specific design location 521. In either case, adding higher-granularity design locations 522 to the valid region 530 provides more detailed information about the values of robot motion attributes and user-defined performance metrics in selected portions of the valid region 530. Therefore, in such implementations, even if the valid region 530 may initially be a coarsely discrete solution space, the user can evaluate certain portions of the valid region 530 via more closely spaced design locations. In such implementations, by using higher-granularity design locations 522 to evaluate certain portions of the valid region 530, the user can reduce the likelihood of missing singularities, invalid locations, and higher-performance design locations that might not be detected via the more coarsely spaced valid design locations 501.
[0048] Exemplary Implementation Figure 6A flowchart illustrating the method steps for generating and evaluating the performance of a robotic cell solution according to various embodiments is provided. For example, in some embodiments, the robotic cell solution includes a specific base position of the robot, or a combination of a specific base position of the robot with a specific robot model or design. In other embodiments, the robotic cell solution includes a specific position of the workpiece.
[0049] Despite the combination Figures 1 to 5B The system describes the method steps, but those skilled in the art will understand that any system configured to perform the method steps in any order is within the scope of the implementation.
[0050] As shown in the figure, the computer implementation method 600 begins at step 601, where the robot setup evaluation system 100 receives information defining a robot cell setup problem, such as design input 101. Typically, the robot cell problem involves determining the location of a robot base or workpiece within the robot cell. In step 602, the computation engine 120 discretizes the valid volumes (e.g., valid volume 230) of the robot cell setup problem based on the information included in the design input 101. In step 603, the computation engine 120 selects a specific design location from the discrete valid volumes.
[0051] In step 604, computational engine 120 determines whether there is an accessibility problem associated with the selected design location, for example, using inverse kinematics solver 121. For example, when the design location represents a potential location for workpiece 220, computational engine 120 determines whether robot 210 can reach the potential location. In another example, when the design location represents a potential robot base location for robot 210, computational engine 120 determines whether robot 210 can reach workpiece 220 when robot 210 is positioned at the potential location. When computational engine 120 determines that there is an accessibility problem associated with the selected design location, method 600 proceeds to step 610. When computational engine 120 determines that there is no accessibility problem associated with the selected design location, method 600 proceeds to step 605.
[0052] In step 605, the computation engine 120 determines the values of robot motion attributes at the selected design location, such as position information, velocity information, acceleration information, and / or jerk information associated with one or more parts of robot 210. Such information can be generated by the inverse kinematics solver 121. In step 606, the computation engine 120 determines whether any robot motion attribute limits are exceeded at the selected design location. For example, in some embodiments, a maximum permissible acceleration or jerk value may be associated with one or more parts of robot 210. When the computation engine 120 determines that one or more robot motion attribute limits are exceeded, method 600 proceeds to step 610. When the computation engine 120 determines that no robot motion attribute limits are exceeded at the selected design location, method 600 proceeds to step 607.
[0053] In step 607, the computation engine 120 determines the value of one or more user-defined performance metrics for the selected design location, such as setup cost, motion accuracy, operating cost, etc. In step 609, the computation engine 120 determines whether any performance metric limit is exceeded at the selected design location. For example, in some embodiments, a maximum permissible setup cost or a minimum permissible motion accuracy may be associated with one or more parts of robot 210. When the computation engine 120 determines that one or more such performance metric limits are exceeded, method 600 proceeds to step 610. When the computation engine 120 determines that no performance metric limit is exceeded at the selected design location, method 600 proceeds to step 609. In step 609, the computation engine 120 determines a quality score for the selected design location. In some embodiments, the quality score is based on two or more user-defined performance metrics.
[0054] In step 610, the calculation engine 120 invalidates the selected design location, for example, due to accessibility issues associated with the selected design location, exceeding robot motion attribute limits at the selected design location, or exceeding performance metric limits at the selected design location.
[0055] In step 620, the calculation engine 120 determines whether there are any remaining design locations to evaluate. If yes, method 600 returns to step 603; otherwise, method 600 proceeds to step 630 and terminates.
[0056] After completing method 600, the user can view, search, and otherwise access the values of robot constraint attributes, user-defined performance metrics, and quality scores for each design location included in the legal volume 230 for a specific study. Method 600 can then be repeated for additional studies, such as by quantifying the performance of different robots or robot configurations within the same robot work cell. Therefore, the user can use a wide variety of user-defined performance metrics to quantify and evaluate the performance of different robots at multiple design locations. Furthermore, as described above... Figure 5A and Figure 5B Furthermore, users can refine the granularity of a specific study by selecting a specific design location to increase discretization.
[0057] Exemplary computing device Figure 7 This is a block diagram of a computing device 700 configured to implement one or more aspects of various implementation schemes. The computing device 700 may be a desktop computer, laptop computer, tablet computer, or any other type of computing device configured to receive input, process data, generate control signals, and display images. The computing device 700 is configured to run a robot setup evaluation system 100, a setup module 110, a computing engine 120, a UI and result search module 130, a computer implementation method 600, and / or other suitable software applications that may reside in memory 710. It should be noted that the computing device described herein is illustrative, and any other technically feasible configuration falls within the scope of this disclosure.
[0058] As shown in the figure, the computing device 700 includes, but is not limited to, an interconnect (bus) 740 connecting the processing unit 750, an input / output (I / O) device interface 760 coupled to the input / output (I / O) device 780, a memory 710, a storage device 730, and a network interface 770. The processing unit 750 can be implemented as any suitable processor: a central processing unit (CPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), any other type of processing unit, or a combination of different processing units, such as a CPU configured to combine GPU operation. Generally, the processing unit 750 can be any technically feasible hardware unit capable of processing data and / or executing software applications (including running the robot setup evaluation system 100, setup module 110, computing engine 120, UI and result search module 130, and / or computer implementation method 600). Furthermore, in the context of this disclosure, the computing elements shown in the computing device 700 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executed within a computing cloud.
[0059] I / O device 780 may include devices capable of providing input, such as a keyboard, mouse, touchscreen, etc., and devices capable of providing output, such as display device 781. Furthermore, I / O device 780 may include devices capable of both receiving input and providing output, such as a touchscreen, universal serial bus (USB) port, etc. I / O device 780 may be configured to receive various types of input from end users of computing device 700 and also to provide various types of output to end users of computing device 700, such as one or more graphical user interfaces (GUIs), displayed digital images and / or digital video. In some embodiments, one or more of I / O devices 780 are configured to couple computing device 700 to network 705.
[0060] The memory 710 may include a random access memory (RAM) module, a flash memory cell, or any other type of memory cell or a combination thereof. The processing unit 750, I / O device interface 760, and network interface 770 are configured to read data from and write data to the memory 710. The memory 710 includes various software programs executable by the processing unit 750 and application data associated with said software programs, including running the robot setup evaluation system 100, setup module 110, computing engine 120, UI and result search module 130, and / or computer implementation method 600.
[0061] In summary, the various implementation schemes described herein provide techniques for quantifying and evaluating the performance of effective robot setup solutions for robotic work cells. The performance of each robot setup solution is quantified using one or more user-defined performance metrics based on robot motion attributes. The values of the robot motion attributes are determined by simulating a specified trajectory within the robotic work cell for each effective robot setup solution.
[0062] At least one technical advantage of the disclosed technology over existing technologies lies in that, using the disclosed technology, users can evaluate robot performance for various robot or workpiece positions within a robot cell based on one or more user-defined performance metrics. For example, weighted scores based on user-defined performance metrics enable users to objectively compare robot performance for each effective robot or workpiece position within the work cell. Another advantage is that the disclosed technology can be used to rapidly generate solutions for positions throughout the entire work cell. Therefore, users can iteratively test the significance of different performance metrics and / or weighted combinations of performance metrics, and modify the performance metrics used to select robot or workpiece positions. These technical advantages provide one or more technological advancements superior to existing methods.
[0063] 1. In some embodiments, a computer-implemented method for generating and evaluating robot work cell solutions includes: determining a plurality of locations within a work cell volume, wherein each location corresponds to a possible work cell solution; for each location included in the plurality of locations, determining a value of a first robot motion attribute of the first robot based on location information associated with the location and a trajectory associated with a component of the first robot; and for each location included in the plurality of locations, calculating a first value of a first performance metric based on the value of the first robot motion attribute.
[0064] 2. The computer implementation method according to Clause 1, further comprising, for each of the plurality of locations, determining a value of a second robot motion attribute based on the location information associated with the location and the trajectory associated with the component of the first robot.
[0065] 3. The computer implementation method according to Clause 1 or 2, wherein the first robot motion attribute includes one of the following: torque associated with the component of the first robot, position associated with the component of the first robot, velocity associated with the component of the first robot, acceleration associated with the component of the first robot, jerk associated with the component of the first robot, collision indicator associated with the first robot, arrival indicator associated with the first robot, singularity indicator associated with the first robot, or energy consumption associated with the first robot.
[0066] 4. The computer-implemented method according to any one of Clauses 1-3, wherein the first robot motion attribute includes kinematic conditions associated with the motion of the component of the first robot or dynamic conditions associated with the motion of the component of the first robot.
[0067] 5. A computer-implemented method according to any one of Clauses 1-4, wherein the first performance metric is based on the first robot motion attribute and the second robot motion attribute.
[0068] 6. A computer-implemented method according to any one of Clauses 1-5, wherein the first performance metric is based on a combination of the first robot motion attribute and the second robot motion attribute, wherein the second robot motion attribute is defined via user input.
[0069] 7. The computer-implemented method according to any one of the clauses 1-6, further comprising determining a second value of a second performance metric for each of the plurality of locations.
[0070] 8. The computer-implemented method according to any one of claims 1-7, further comprising, for each of the plurality of locations, determining a quality score based on a weighted combination of the first value of the first performance metric and the second value of the second performance metric.
[0071] 9. The computer-implemented method according to any one of claims 1-8, further comprising: for each of the plurality of locations, determining a value of a first robot motion attribute of the second robot based on location information of the location and a trajectory associated with a component of the second robot; and for each of the plurality of locations, determining a second value of the first performance metric based at least on the value of the first robot motion attribute of the second robot.
[0072] 10. The computer-implemented method according to any one of claims 1-9, further comprising: for each of the plurality of locations, determining a first quality score based on the first value of the first performance metric; and for each of the plurality of locations, determining a second quality score based on the second value of the second performance metric.
[0073] 11. In some embodiments, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to perform the following steps: determining a plurality of locations within a work cell volume, wherein each location corresponds to a possible work cell solution; for each location included in the plurality of locations, determining a value of a first robot motion attribute of the first robot based on location information associated with the location and a trajectory associated with a component of the first robot; and for each location included in the plurality of locations, calculating a first value of a first performance metric based on the value of the first robot motion attribute.
[0074] 12. The non-transitory computer-readable medium as described in Clause 11, the step further comprising, for each of the plurality of locations, determining a value of a second robot motion attribute based on the location information associated with the location and the trajectory associated with the component of the first robot.
[0075] 13. The non-transitory computer-readable medium according to Clause 11 or 12, wherein the first robot motion attribute includes one of the following: torque associated with the component of the first robot, position associated with the component of the first robot, velocity associated with the component of the first robot, acceleration associated with the component of the first robot, jerk associated with the component of the first robot, collision indicator associated with the first robot, arrival indicator associated with the first robot, singularity indicator associated with the first robot, or energy consumption associated with the first robot.
[0076] 14. A non-transitory computer-readable medium according to any one of clauses 11-13, wherein the trajectory associated with the component of the first robot at a first location within the working cell volume is the same as the trajectory associated with the component of the first robot at a second location within the working cell volume.
[0077] 15. A non-transitory computer-readable medium according to any one of clauses 11-14, wherein the trajectory associated with the component of the first robot at a first location within the working cell volume is different from the trajectory associated with the component of the first robot at a second location within the working cell volume.
[0078] 16. The non-transitory computer-readable medium according to any one of clauses 11-15, the step further comprising generating the trajectory associated with the component of the first robot at the first position and the trajectory associated with the component of the first robot at the second position before determining the value of the first robot motion attribute.
[0079] 17. A non-transitory computer-readable medium according to any one of clauses 11-16, wherein determining the plurality of locations within the working cell volume comprises discretizing the working cell volume based on one or more user input values.
[0080] 18. A non-transitory computer-readable medium according to any one of clauses 11-17, wherein the location information associated with the location includes information indicating the position of the base of the first robot relative to the trajectory or information indicating the position of the workpiece relative to the base of the first robot.
[0081] 19. A non-transitory computer-readable medium according to any one of Clauses 11-18, wherein the first robot motion attribute includes kinematic conditions associated with the motion of the components of the first robot or dynamic conditions associated with the motion of the components of the first robot.
[0082] 20. In some embodiments, a system includes: a memory storing instructions; and a processor communicatively coupled to the memory and configured to perform the following steps when executing the instructions: determining a plurality of locations within a work cell volume, wherein each location corresponds to a possible work cell solution; for each location included in the plurality of locations, determining a value of a first robot motion attribute of the first robot based on location information associated with the location and a trajectory associated with a component of the first robot; and for each location included in the plurality of locations, calculating a first value of a first performance metric based on the value of the first robot motion attribute.
[0083] Any and all combinations of any claim element set forth in any claim and / or any element described in this application, in any manner, fall within the scope of the invention and protection.
[0084] Various embodiments have been described for illustrative purposes; however, these descriptions are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.
[0085] Aspects of embodiments of this invention may be embodied as systems, methods, or computer program products. Therefore, aspects of this disclosure may take the form of an all-hardware implementation, an all-software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software and hardware aspects, which are generally referred to herein as “modules,” “systems,” or “computers.” Furthermore, any hardware and / or software technology, process, function, component, engine, module, or system described in this disclosure may be implemented as a circuit or a set of circuits. Additionally, aspects of this disclosure may take the form of computer program products embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0086] Any combination of one or more computer-readable media may be used. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or apparatuses, or any suitable combination of the foregoing. More specific examples (not an exhaustive list) of computer-readable storage media will include: an electrical connection having one or more wires, a portable computer floppy disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing media. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store programs for use with or in connection with an instruction execution system, device, or apparatus.
[0087] The foregoing description of aspects of this disclosure includes flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks of the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus. When executed via a processor of a computer or other programmable data processing apparatus, the instructions cause the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams to be implemented. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, an application-specific processor, or a field-programmable gate array (FPGA).
[0088] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this respect, each block in a flowchart or block diagram may represent a module, segment, or portion of code comprising one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative embodiments, the functions mentioned in the blocks may not appear in the order shown in the drawings. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a system based on dedicated hardware or a combination of dedicated hardware and computer instructions that performs the specified functions or operations.
[0089] While the foregoing relates to embodiments of this disclosure, other and additional embodiments of this disclosure may be conceived without departing from the essential scope of this disclosure, the scope of which is defined by the appended claims.
Claims
1. A computer-implemented method for generating and evaluating robotic work cell solutions, the method comprising: Determine multiple locations within the working cell volume, where each location corresponds to a possible working cell solution, the multiple locations relating to the robot base location or the workpiece location of the workpiece operated by the robot; For each of the plurality of locations, based on location information associated with the location, values of a first robot motion attribute and a second robot motion attribute of the first robot are determined, the values being determined along at least a portion of a trajectory associated with a component of the first robot; For each of the plurality of locations, a first average value of a first performance metric is calculated based on the value of the first robot motion attribute, and a second average value of a second performance metric is calculated based on the value of the second robot motion attribute. as well as A plan view of the robot work cell, valid area, and workpiece position is displayed in the graphical user interface (GUI). Within the valid area, the valid design position, invalid design position, and design position of the robot base associated with a singular point of at least one joint of the robot are displayed.
2. The computer implementation method of claim 1, wherein the first robot motion attribute includes one of the following: torque associated with the component of the first robot, position associated with the component of the first robot, velocity associated with the component of the first robot, acceleration associated with the component of the first robot, jerk associated with the component of the first robot, collision indicator associated with the first robot, arrival indicator associated with the first robot, singularity indicator associated with the first robot, or energy consumption associated with the first robot.
3. The computer implementation method according to claim 1, wherein the first robot motion attribute includes kinematic conditions associated with the motion of the component of the first robot or dynamic conditions associated with the motion of the component of the first robot.
4. The computer implementation method of claim 1, wherein the first performance metric is based on a combination of the first robot motion attribute and the second robot motion attribute, wherein the second robot motion attribute is defined via user input.
5. The computer implementation method of claim 1, further comprising determining a second average value of the second performance metric for each of the plurality of locations.
6. The computer implementation method of claim 5, further comprising, for each of the plurality of locations, determining a quality score based on a weighted combination of a first average of the first performance metric and a second average of the second performance metric.
7. The computer implementation method according to claim 1, further comprising: For each of the plurality of locations, based on the location information of the location and the trajectory associated with the component of the second robot, the value of the first robot motion attribute of the second robot is determined; and For each of the plurality of locations, a second average value of the first performance metric is determined based at least on the value of the first robot motion attribute of the second robot.
8. The computer implementation method according to claim 5, further comprising: For each of the plurality of locations, a first quality score is determined based on a first average value of the first performance metric; and For each of the plurality of locations, a second quality score is determined based on the second average value of the second performance metric.
9. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform the following steps: Determine multiple locations within the working cell volume, where each location corresponds to a possible working cell solution, the multiple locations relating to the robot base location or the workpiece location of the workpiece operated by the robot; For each of the plurality of locations, based on location information associated with the location, values of a first robot motion attribute and a second robot motion attribute of the first robot are determined, the values being determined along at least a portion of a trajectory associated with a component of the first robot; For each of the plurality of locations, a first average value of a first performance metric is calculated based on the value of the first robot motion attribute, and a second average value of a second performance metric is calculated based on the value of the second robot motion attribute; and A plan view of the robot's working cell, legal area, and workpiece position is displayed in the graphical user interface (GUI). Within the legal area, the valid design positions, invalid design positions, and design positions of the robot base associated with singular points of at least one joint of the robot are displayed.
10. The non-transitory computer-readable medium of claim 9, wherein the first robot motion attribute includes one of the following: torque associated with the component of the first robot, position associated with the component of the first robot, velocity associated with the component of the first robot, acceleration associated with the component of the first robot, jerk associated with the component of the first robot, collision indicator associated with the first robot, arrival indicator associated with the first robot, singularity indicator associated with the first robot, or energy consumption associated with the first robot.
11. The non-transitory computer-readable medium of claim 9, wherein the trajectory associated with the component of the first robot at a first location within the working cell volume is the same as the trajectory associated with the component of the first robot at a second location within the working cell volume.
12. The non-transitory computer-readable medium of claim 9, wherein the trajectory associated with the component of the first robot at a first location within the working cell volume is different from the trajectory associated with the component of the first robot at a second location within the working cell volume.
13. The non-transitory computer-readable medium of claim 12, the step further comprising, before determining the value of the first robot motion attribute, generating the trajectory associated with the component of the first robot at the first position, and generating the trajectory associated with the component of the first robot at the second position.
14. The non-transitory computer-readable medium of claim 9, wherein determining the plurality of locations within the working cell volume comprises discretizing the working cell volume based on one or more user input values.
15. The non-transitory computer-readable medium of claim 9, wherein the position information associated with the position includes information indicating the position of the base of the first robot relative to the trajectory or information indicating the position of the workpiece relative to the base of the first robot.
16. The non-transitory computer-readable medium of claim 9, wherein the first robot motion attribute includes kinematic conditions associated with the motion of the component of the first robot or dynamic conditions associated with the motion of the component of the first robot.
17. A system comprising: A memory that stores instructions; and A processor, communicatively coupled to the memory, and configured to perform the following steps when executing the instructions: Determine multiple locations within the working cell volume, where each location corresponds to a possible working cell solution, the multiple locations relating to the robot base location or the workpiece location of the workpiece operated by the robot; For each of the plurality of locations, based on location information associated with that location, values of a first robot motion attribute and a second robot motion attribute of the first robot are determined, the values being determined along at least a portion of a trajectory associated with a component of the first robot; and For each of the plurality of locations, a first average value of a first performance metric is calculated based on the value of the first robot motion attribute, and a second average value of a second performance metric is calculated based on the value of the second robot motion attribute; and A plan view of the robot work cell, valid area, and workpiece position is displayed in the graphical user interface (GUI). Within the valid area, the valid design position, invalid design position, and design position of the robot base associated with a singular point of at least one joint of the robot are displayed.
Citation Information
Patent Citations
Method and system for optimizing the layout of a robot work cell
US20100241248A1
Energy and cycle time efficiency based method for robot positioning
US20150278406A1