System and method for constraint management of one or more robots
Through graphical user interface and symmetry optimization, the system reduces initial constraints, explores additional degrees of freedom, and realizes natural task allocation, solving the problem of over-constraints in robot tasks allocation in the prior art, and improving the efficiency and feasibility of task execution.
Patent Information
- Application Number
- CN202080024147.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-08
- Filing Date
- 2020-04-07
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-04-07
AI Technical Summary
The prior art has overconstraints in robot task allocation, resulting in increased difficulty in task allocation and lacks natural and underconstrained allocation methods.
Provides a system and method to allow user interaction through a graphical user interface to determine the allowable pose range associated with a robot task, leverages symmetry and the characteristics of workpiece or end effectors, reduces initial constraints, optimizes robot performance, and explores additional Degrees of freedom to achieve natural task allocation.
It realizes a more natural and efficient robot task allocation, reduces the amount of exercise, improves the feasibility and optimization of task execution, and simplifies user operations.
Smart Images

Figure CN113677486B_ABST
Abstract
Description
[0001] Cross-references to related patent applications
[0002] This application claims the benefit of U.S. Non-Provisional Application Serial No. 16 / 378,343, filed on April 8, 2019. The entire contents of which are incorporated herein by reference. Technical Field
[0003] The present invention relates generally to robots, and more particularly to systems and methods for under-constraining a robot or robotic system. Background Art
[0004] Assigning tasks to robots is difficult, and this difficulty is exacerbated by assigning tasks to robots in an unnatural, over-constrained way. Natural task assignment is a comprehensive approach to easily specify robot tasks without over-constraining or under-constraining.
[0005] For example, rather than modeling the exact position where the hand is placed on the bar, the gymnast models the bar as having one degree of freedom when it is placed. Similarly, tasks like welding and painting have additional degrees of freedom in how the electrode or nozzle rotates around its axis, and the operator who assigns the task to the robot benefits by working with these natural constraints. Similarly, a workpiece to be gripped by an industrial robot may have symmetries that allow it to be gripped in a variety of ways. Natural task assignment specifies the constraints on the robot in their smallest and least restrictive way. Summary of the invention
[0006] In one or more embodiments of the present disclosure, a system is provided. The system may include a robot configured to receive an initial constraint method for performing a robot task. The system may also include a graphical user interface that communicates with the robot. The graphical user interface may be configured to allow a user to interact with the robot to determine an allowable range of a robot posture associated with the robot task. The allowable range of the robot posture may include fewer constraints than the initial constraint method. The allowable range of the posture may be based at least in part on one or more symmetries, which are associated with a workpiece associated with the robot task or an end effector associated with the robot. The system may also include a processor configured to transmit the allowable range of the robot posture to the robot.
[0007] One or more of the following features may be included. An initial constraint method for performing a robotic task may be received from at least one of a user input, a program, a simulation, or a user demonstration. One or more symmetries may include a symmetry of a pick-up feature of a workpiece associated with the robotic task. The symmetry of the pick-up feature of the workpiece may be continuous, discrete, or asymmetric.
[0008] The one or more degrees of symmetry may include a degree of symmetry of the robot end effector. The degree of symmetry of the robot end effector may be continuous, discrete, or asymmetric. The one or more degrees of symmetry may include a degree of symmetry of a placement target associated with the robot task. The degree of symmetry of the placement target may be continuous, discrete, or asymmetric. The processor may also be configured to determine a first valid pose related to the workpiece and the robot end effector associated with the robot. The processor may also be configured to identify an axis of a coordinate system associated with the workpiece that coincides with an axis of a coordinate system of the robot end effector when the workpiece is in the first valid pose. The processor may also be configured to determine a range of valid robot end effector poses by allowing the robot end effector to rotate based at least in part on a degree of symmetry determined for the workpiece around an axis of the coordinate system of the workpiece or the robot end effector around an axis of the coordinate system of the robot end effector. The graphical user interface is configured to display a robot end effector, a workpiece, and at least one of an axis of a coordinate system associated with the robot end effector or an axis of a coordinate system associated with the workpiece, and wherein the graphical user interface is configured to allow a user to specify whether the robot end effector has substantially equivalent performance for picking up the workpiece when the robot end effector is rotated about one of the axis of the coordinate system associated with the robot end effector or the axis of the coordinate system associated with the workpiece. The processor may also be configured to determine placement of the workpiece with respect to a placement target associated with the robot system. The processor may also be configured to determine a range of valid robot end effector poses by allowing rotations of the robot end effector based at least in part on a degree of symmetry determined for the workpiece about the axis of the coordinate system of the workpiece or the placement target. The graphical user interface may be configured to display the robot end effector, the workpiece, and at least one of an axis of a coordinate system associated with the robot end effector or an axis of a coordinate system associated with the workpiece, and wherein the graphical user interface is configured to allow a user to specify whether the robot end effector has substantially equivalent performance for placing the workpiece at the placement target when the robot end effector is rotated about the axis of the coordinate system associated with the robot end effector or the axis of the coordinate system associated with the workpiece. The processor may also be configured to determine a minimum number of degrees of freedom (DOF) required for the robot to perform a task associated with the pose range. The processor may also be configured to determine an additional number of degrees of freedom required to satisfy one or more additional constraints.
[0009] The processor may be further configured to combine the minimum number of degrees of freedom with the additional number of degrees of freedom to determine a total number of degrees of freedom, wherein the processor may be further configured to compare the total number of degrees of freedom to a maximum number of degrees of freedom allowed associated with the robot. The processor may be further configured to determine a difference between the maximum number of degrees of freedom allowed and the total number of degrees of freedom, and optimize the performance of the robot based at least in part on a range of postures associated with the difference. The allowable range of postures may be based at least in part on one or more degrees of symmetry associated with a placement goal associated with the robot task.
[0010] In another embodiment of the present disclosure, a method is provided. The method may include providing a robot configured to receive an initial constraint method for performing a robot task. The method may also include allowing a user to interact with the robot using a graphical user interface that communicates with the robot. The graphical user interface may be configured to allow a user to interact with the robot to determine an allowable range of robot postures associated with the robot task. The allowable range of robot postures may include fewer constraints than the initial constraint method, and the allowable range of postures may be based at least in part on one or more symmetries, the one or more symmetries being associated with at least one of a workpiece associated with the robot task or an end effector associated with the robot. The method may also include transmitting the allowable range of robot postures to the robot via a processor. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] In order to better understand the nature and purpose of the present disclosure, reference is made to the following detailed description in conjunction with the following drawings, in which:
[0012] Figure 1 is a block diagram of a natural task allocation robotic system according to an embodiment of the present disclosure;
[0013] Figure 2 is a graphical user interface illustrating multiple degrees of freedom of a natural task allocation robotic system according to an embodiment of the present disclosure;
[0014] Figure 3 is a block diagram of a natural task allocation robotic system according to an embodiment of the present disclosure;
[0015] Figure 4 is a block diagram of a speed control method for a natural task allocation robot system according to an embodiment of the present disclosure;
[0016] Figure 5 is a flow chart of a natural task assignment robotic method according to an embodiment of the present disclosure;
[0017] Figure 6is a system diagram of a natural task allocation robotic system according to an embodiment of the present disclosure;
[0018] Figure 7 shows examples of robot poses that may be used to pick up one or more workpieces according to embodiments of the present disclosure;
[0019] Figure 8 An example of a workpiece placement target according to an embodiment of the present disclosure is shown;
[0020] Fig. 9 An example of a workpiece placement target with obstacles positioned around the target is shown in accordance with an embodiment of the present disclosure;
[0021] Fig.10 An example of a rectangular workpiece and a rectangular workpiece placement target according to an embodiment of the present disclosure is shown;
[0022] Fig.11 An example depicting how a workpiece may be clamped in multiple positions is shown according to an embodiment of the present disclosure;
[0023] Fig.12 An example of a rectangular workpiece and a rectangular workpiece placement target according to an embodiment of the present disclosure is shown;
[0024] Fig.13 An example of a rectangular workpiece and a rectangular workpiece placement target according to an embodiment of the present disclosure is shown;
[0025] Fig.14 An example of a generally cylindrical workpiece according to an embodiment of the present disclosure is shown;
[0026] Fig.15 shows an example of a workpiece having continuous symmetry about all three axes according to an embodiment of the present disclosure;
[0027] Fig.16 An example of a workpiece having continuous symmetry about a z-axis according to an embodiment of the present disclosure is shown;
[0028] Fig.17 shows an example of an asymmetric workpiece having a symmetric pickup feature according to an embodiment of the present disclosure;
[0029] Fig.18 shows an example of an asymmetric workpiece having symmetrically placed features according to an embodiment of the present disclosure;
[0030] Fig.19 shows an example of a placement target with symmetrical placement features according to an embodiment of the present disclosure;
[0031] Fig. 20An example of an asymmetric placement target according to an embodiment of the present disclosure is shown;
[0032] Fig.21 An example of an asymmetric end effector according to an embodiment of the present disclosure is shown;
[0033] Fig. 22 shows an example of an asymmetric workpiece having an asymmetric pickup feature according to an embodiment of the present disclosure;
[0034] Fig.23 An example of a workpiece having no pick or place features that are symmetric about an x-axis, y-axis, or z-axis is shown according to an embodiment of the present disclosure;
[0035] Fig.24 An example of an asymmetric workpiece according to an embodiment of the present disclosure is shown;
[0036] Fig.25 An example of an end effector according to an embodiment of the present disclosure is shown;
[0037] Fig.26 An example of a workpiece according to an embodiment of the present disclosure is shown;
[0038] Fig. 27 An example of an end effector according to an embodiment of the present disclosure is shown;
[0039] Fig.28 An example of an end effector according to an embodiment of the present disclosure is shown;
[0040] Fig.29 An example of a placement target according to an embodiment of the present disclosure is shown;
[0041] Fig.30 An example of a placement target according to an embodiment of the present disclosure is shown;
[0042] Fig.31 An example of a workpiece according to an embodiment of the present disclosure is shown;
[0043] Fig.32 An example of a workpiece according to an embodiment of the present disclosure is shown;
[0044] Fig.33 shows a table depicting an example of motion constraints according to an embodiment of the present disclosure;
[0045] Fig.34 shows a table depicting an example of motion constraints according to an embodiment of the present disclosure;
[0046] Fig.35 An example of a workpiece placed at a placement target according to an embodiment of the present disclosure is shown;
[0047] Fig.36 An example of a workpiece placed at a placement target according to an embodiment of the present disclosure is shown;
[0048] Fig.37 An example of a workpiece placed at a placement target according to an embodiment of the present disclosure is shown;
[0049] Fig.38 An example of a workpiece placed at a placement target according to an embodiment of the present disclosure is shown;
[0050] Fig.39 is a graphical user interface of a robotic system according to an embodiment of the present disclosure;
[0051] Fig.40 is a graphical user interface of a robotic system according to an embodiment of the present disclosure;
[0052] Fig.41 is a graphical user interface of a robotic system according to an embodiment of the present disclosure;
[0053] Fig.42 is a graphical user interface of a robotic system according to an embodiment of the present disclosure; and
[0054] Fig.43 is a graphical user interface of a robotic system according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0055] Implementations of the subject application may include concepts from U.S. Pat. No. 6,757,587, U.S. Pat. No. 7,680,300, U.S. Pat. No. 8,301,421, U.S. Pat. No. 8,408,918, U.S. Pat. No. 8,428,781, U.S. Pat. No. 9,357,708, U.S. Publication No. 2015 / 0199458, U.S. Publication No. 2016 / 0321381, and U.S. Publication No. 2018 / 0060459, the entire contents of each of which are incorporated herein by reference in their entirety.
[0056] See now Figure 1 , an embodiment of a robotic system 100 is provided. The system 100 may include multiple components, some of which may be designed for specific applications and / or tasks. The first component of the system may include a software system 102 for adding new processes to a database 104. Once constructed, the database 104 may be reused by an operator on-site or remotely. The operator may use a graphical user interface 106 to select elements from the database 104 for execution by the control software 108, such as Figure 1As shown. Procedures for specific applications and / or tasks (e.g., welding, robotic assembly, etc.) can be added to the database 104 by an expert offline. The database 104 can be used online with a graphical user interface 106 and task assignment software to develop each process for each task. The software modules may include, but are not limited to, training, task assignment, and executing specific tasks. All of these can be used to control the operation of the robotic hardware 110. The robotic hardware 110 can respond to controls received from the control software 108, however, it should be noted that the robotic hardware itself may be limited by its own maximum number of degrees of freedom, as discussed in further detail below.
[0057] In robotic systems, the phrase "degrees of freedom" can refer to specific, defined patterns in which a mechanical device or system can move. The number of degrees of freedom can be equal to the total number of independent displacements or aspects of motion. For example, a six-degree-of-freedom ("6DOF") scenario can refer to the freedom of a rigid body to move in three-dimensional space. Specifically, the body can freely change position, such as translating forward / reverse (forward), up / down (vertical), and left / right (lateral) in three perpendicular axes, while changing orientation by rotating about three perpendicular axes, commonly referred to as yaw (normal axis), pitch (lateral axis), and roll (longitudinal axis). In contrast, placing points in space can correspond to three degrees of freedom, specifying the distance between two points on different links is one degree of freedom, and so on.
[0058] In some embodiments, as used herein, the phrase "robotic system" may include a system of one, two, and / or any number of robots. Thus, the total robotic system DOF may refer to the sum of the DOF on each of the individual robots. This may include one DOF for each single-axis joint and six DOF for the freely moving base. For example, for a robotic system including two robots, one with 6 DOF and the other with 5 DOF, the available total robotic system degrees of freedom may be 11 DOF.
[0059] Embodiments included herein may be configured to explore additional numbers of degrees of freedom of one or more robots to naturally perform robotic tasks. In this example, the entire robotic system may include a maximum number of degrees of freedom DOF ("N") associated therewith, and may also include a minimum number of DOF ("M") subtracted therefrom.
[0060] For example, now see Figure 2, provides a 3D rendering from a graphical user interface 200 that depicts a welding tool with five degrees of freedom compared to a welding tool with six degrees of freedom in full 3D rotation and orientation. The difference between the two is that the five degrees of freedom can be obtained by relaxing the rotation about one axis. This particular model is adjusted to optimize the scanning and welding process. This involves configuring a bounding volume around the scanner tool, and aligning the system with the base principal coordinate system so that the tool path and point cloud appear in the correct location. The tool offset is also configured based on how the tool path is created from the point cloud. The path was created along the bottom of the seam, so the offset from the top is configured so that there is no collision. As shown in FIG. Figure 2 As shown, two different constraint settings can be used to constrain the arm, each using a different tool offset, one for scanning the workpiece and one for welding. As used herein, the term "workpiece" can refer to an object to be moved by the robot. The degrees of freedom setting for scanning uses a six-degree-of-freedom coordinate system, and the welding setting uses a five-degree-of-freedom coordinate system that allows the tip of the spray gun to rotate freely around the tip. This allows the workpiece to be scanned first, and then the degrees of freedom of the welding path are relaxed, which is more difficult for the robot to achieve given its workspace envelope.
[0061] In some embodiments, see now Figure 3 , an embodiment of a flowchart depicting a plurality of operations is provided, which are consistent with a natural task allocation robot process. The natural task allocation process 300 may include defining 302 a robot, an end effector, a workpiece, and a robot environment. The process 300 may also include defining 304 one or more constraints based on tasks, end effector geometry, workpiece geometry, etc. The process 300 may also include using the constraints to define 306 one or more task motions. The process 300 may be configured to define a minimum number of constraints naturally by analyzing geometry (e.g., end effector geometry), such as by finding an axis of symmetry related to the task. In this way, the naturalness of the constraints and the ability to explore additional degrees of freedom in the robot motion allow the robot to be naturally controlled. Natural control may be based at least in part on both natural constraints and natural optimization of these constraints, as will be discussed in further detail below. In operation, once naturally optimized, the Jacobian-based velocity control method described below may be used to perform 308 the task.
[0062] In some embodiments, see now Figure 4 , provides a block diagram 400 consistent with an embodiment of a robotic system of the present disclosure. Control of the end effector of a robotic arm in the system may use multiple components (e.g., using Energid's The control system 400 is implemented by the end effector (software). These components may include, but are not limited to, an external position controller 402 and an internal velocity controller 404. This combined control system 400 allows the program to "fly" the end effector throughout the task space by specifying the desired placement, and the joint velocities and positions can be automatically calculated. This allows the operator to focus on the task without being constrained, rather than focusing on the low-level control of the robot.
[0063] In some embodiments, the core velocity architecture may be based on the manipulator Jacobian equation:
[0064]
[0065] Here, V is an m-length vector representation of the motion of the end effector (usually some combination of linear and angular velocity referenced to a point rigidly attached to a part of the manipulator); q is an n-length vector of joint positions (where is its time derivative); and J is the Jacobian of the m×n manipulators, a function of q. (For a space arm with a single end effector, V is typically a coordinate system velocity with three linear components and three angular components. As used herein, it assumes a larger meaning, including a cascade of other motions of a point, a coordinate system, or multiple end effectors. The Jacobian J(q) is such that () for is a matrix for which all possible values of are true. Note that V can represent the concatenation of values from multiple end effectors, thereby achieving coordinated motion of multiple points on the manipulator.
[0066] The velocity control problem is as follows: given a desired end-effector motion V, what joint velocity is best to achieve that motion? To answer this, the architecture is based in part on the following approach, which uses the scalar α, the matrix function W(q), and the scalar function f(q) to solve for a given V using the following formula
[0067]
[0068] in is the gradient of f, and N J is the set of n×(n×m) vectors spanning the null space of J. That is, JN J =0, and N J Has rank (n×m). Both α and NJ are generally functions of q. By varying the values of α, W, and f, many new and most deterministic speed control techniques can be implemented.
[0069] However, embodiments of the present disclosure go beyond the above formula to form a more general framework. Instead of sticking with the gradient of a function, a general column vector F(q) is used. Not all vector functions are gradients. This minor but important modification yields the following:
[0070]
[0071] This achieves the desired V while minimizing:
[0072]
[0073] The parameters α, W and F can be defined using XML to give many different types of speed control.
[0074] In some embodiments, the position control system 402 can be built on the velocity control system 404 to provide robust position control to the end effector. A position control module can be provided as an interface to the position control system 402 to enable the addition of new position control algorithms. The position control system 402 can provide basic position control for the end effector by building on the velocity control system 404. Taking into account the joint velocities from the velocity control system 404, the position control system 402 can use Euler integration to calculate the joint positions. Once the joint positions are calculated, the end effector position is known. The control system can check for joint limit exceeds and collisions as it iterates forward in time. If a singularity is detected, it can also zero the joint velocity commands.
[0075] In some embodiments, the control methods described above may be used, at least in part, to allow a controller to associate the overall robotic system DOF (e.g., the available DOF of the system, "N") with the minimum number of degrees of freedom ("M") required that is identified based solely on the workpiece constraints. In other words, the robotic systems and methods described herein may only require workpiece data in order to perform natural robotic tasks. In some cases, the DOF may also be based on other factors, including but not limited to other factors or constraints, however this information may not be necessary. The embodiments of the robotic systems and methods provided herein may be used to provide better control and / or improved performance of robotic systems, more feasible and / or optimized solutions to robotic tasks, etc.
[0076] The phrase "maximum number of degrees of freedom" may refer to a specific, defined pattern in which a mechanical device, robot, and / or system can move a maximum number of specific, defined patterns. The phrase "minimum number of degrees of freedom" may refer to a specific, defined pattern in which a mechanical device, robot, and / or system moves a minimum number of specific, defined patterns in which a mechanical device, robot, and / or system moves to naturally perform a task. The phrase "natural robotic task" may refer to a task that can be performed using a reduced and / or simplified amount of motion. In some cases, specifying a natural robotic task may be contrasted with a mathematically intensive way of specifying a task that may require a user to specify in the coordinates / coordinate system of a robotic system. A natural robotic task may be specified / presented to a robotic system using one or more robots or end effectors, and a minimum number of degrees of freedom may be determined based at least in part on the natural robotic task. The minimum number of degrees of freedom may be determined by analyzing the end effector, robot, and / or workpiece geometry. It may be specified using demonstrations, teaching learning robotics, using a GUI, and the like.
[0077] In some embodiments, the naturalness of a task can refer to the degree of agreement between 1) the commanded robot task and 2) the actual desired thing to be accomplished. Some examples are provided below:
[0078] Desired Task (1): Place the cup on the table.
[0079] Unnatural: The cup is placed at x=30 cm, y=50 cm from the corner, with the handle pointing to the right.
[0080] Natural: Place the cup anywhere within the boundaries of the table with the handle pointing in any direction.
[0081] Desired task (2): Make the camera on the robot point to the 3D point x=1, y=2, z=2 in space.
[0082] Unnatural: Place the camera at x=0, y=0.2, z=0.3, and point it at x=1, y=2, z=2.
[0083] Unnatural: Let the camera point from any position to {1, 2, 2}, where upward in the image is consistent with upward in the real world.
[0084] Natural: With no constraints on the camera position, point the camera to {1, 2, 2} in any orientation.
[0085] Desired Task (3): Spray the workpiece using a nozzle at a distance of 1 m and with the nozzle pointed directly at the center of the workpiece.
[0086] Unnatural: Spraying from 1m away with the nozzle pointed towards the workpiece and specifically oriented around the axis of the workpiece.
[0087] Natural: spraying from 1m away, no special orientation of the nozzle is required except pointing it towards the workpiece.
[0088] It should be noted that while these unnatural constraints may appear strange in how they overly restrict the robot's motion, they are in fact how these types of tasks are typically performed. Embodiments of the robotic system included herein allow for the use and solving of natural representations.
[0089] In some embodiments, the phrase "natural workpiece constraints" may refer to geometric features and / or any other aspects associated with a particular workpiece. The phrase "natural environment constraints" may refer to geometric features, obstacles, and / or any other aspects associated with the environment that may be associated with a natural robotic task.
[0090] In some embodiments, workpiece constraints, environmental constraints, and manipulator constraints may form a closed set in the method, and multiple natural constraints may be combined to define comprehensive task allocation motion. Some of these restrictions may include, but are not limited to, direction constraints, orientation constraints, allocation to curves or surfaces, distance constraints, joint positions, linear and nonlinear function combinations of joint positions, center of mass, and linear and angular momentum. These constraints may vary depending on the robot configuration. End effector offsets, static workpieces or obstacles, and dynamic workpieces or obstacles may be used to define and configure the constraints. In some embodiments, the identification of the minimum number of degrees of freedom may be based on the workpiece constraint geometry and / or its features, some of which may include, but are not limited to, holes, shapes, sizes, etc.
[0091] In some embodiments, one or more constraints may be combined and / or specified by the user using a visual editor to create a complex combination of time-varying constraints to optimally implement real-world tasks. It should be noted that some or all of these constraints may change during the execution of the robot task or operation, even in time steps, and may be combined with optimizations such as collision avoidance and joint-limit avoidance. In this way, the number and type of constraints may be dynamically updated in real time. For example, in some embodiments, some or all constraints may be automatically determined and / or identified using a scanner that may be configured to scan the robot environment to identify, allow necessary processing and subsequent determination. Various sensors and devices may be used to obtain this data, some of which may include, but are not limited to, data from laser radars, stereo cameras, color cameras, multispectral cameras, etc. In addition and / or alternatively, some or all constraints may be remotely updated via a communication channel (e.g., radio, laser, or network communication, etc.). Constraints are set using a 2D graphical user interface or a 3D interface (e.g., augmented reality, etc.). The constraint may be of the "less than or equal to" variety, not just "equal to". Thus, for example, the robotic systems included herein may allow a user to constrain points to be above the ground rather than just on the ground.
[0092] Thus, embodiments of the robotic systems described herein may include one or more robots with a maximum number of degrees of freedom "N". In some embodiments, the system may allow a user to naturally specify a task (e.g., by way of example, to teach a robotic system, to perform robot "seeing" and learning using one or more sensors, to perform a demonstration using a GUI such as a teach pendant, etc.) by indicating only what needs to be done, such as inserting a peg into a hole (using five degrees of freedom under constraints), following a line with the tip of a welding tool (using three degrees of freedom under constraints), or pointing a camera at a location in space (using two degrees of freedom under constraints), etc. Naturally specifying a task may include specifying a task using a demonstration, e.g., to teach a robot or to have a robot learn how to perform a task. Additionally and / or alternatively, a user may not specify how a robotic system may perform a task, and the system may determine how to perform the task automatically or with minimal input.
[0093] In some embodiments, the robotic system described herein may be configured to determine the minimum number of degrees of freedom "M" that may be required to perform a natural robotic task, where M<=N. The robotic system may be configured to determine the most natural or efficient way to perform a task by exploring additional (NM) degrees of freedom. This may involve optimizing auxiliary criteria for using the additional degrees of freedom. For example, a controller (e.g., Actin) may help enable exploration of additional degrees of freedom (NM) as described above. The additional number of degrees of freedom can be used to determine a more convenient, faster, energy-efficient, and / or feasible "method" to perform a task. The method or manner of execution may be based at least in part on the determination of a collision-free path, coordination of robots (if more than one), etc. In some embodiments, various software methods (e.g., using Energid's Software) to at least partially apply to perform or fulfill a natural robotic task. The method or manner of naturally determining to perform a task may also include using one or more simulators that can be configured to perform simulations. The results of such simulations can be used to determine how to perform the task.
[0094] In some embodiments, exploring additional degrees of freedom (NM) may include completely relaxing some DOFs (e.g., the "Z" dimension). In addition and / or alternatively, embodiments included herein may be configured to partially relax DOFs, for example, allowing Z to rotate freely within +-15 degrees. As used herein, the phrase "free rotation" may refer to allowing unconstrained robotic motion on at least one axis (e.g., an end effector axis, etc.). When specifying a natural task, the same concept can be applied to any DOF to provide flexibility. Therefore, this can allow the robotic system to find a solution in a more efficient manner.
[0095] In some embodiments, the robotic system described herein can be configured to specify one or more robot postures. Typically, the robot can be programmed to a series of postures, i.e., specific orientations of the robot joints and rigid elements. The robot can then repeatedly cycle through these postures under the command of the robot controller to complete some tasks. For example, using an end effector to pick up a workpiece and transfer the workpiece to a new location, moving a paint sprayer through a series of locations, etc.
[0096] In some cases, the sensory input to the robot may be limited to error signals, pause signals, or speed signals. These signals only stop, pause, or slow down the robot's movement through its series of postures, but do not affect the postures themselves. In more advanced cases, the sensory input to the robot can be used to affect the postures themselves. For example, a 2D camera can be used to identify the position of a workpiece in a known position on a flat surface. From this, the robot posture for picking up the workpiece can be calculated. Generally speaking, only a single robot posture can be calculated for any given sensory input. This minimizes the calculation time, but does not consider the most efficient path for the robot to achieve this posture, whether the posture of the robot at the time of workpiece pickup also produces the correct path for the robot to put the workpiece down again, or the most efficient path between these points.
[0097] Allowing robot pose calculation and motion control based on multiple possible robot poses is desirable for more efficient motion and finding more achievable pose combinations. Unfortunately, specifying possible robot poses requires understanding robot kinematics and applying them to each specific case in a robotic pick and place task. To date, it has been impractical or impossible for a non-technical person to specify these variables. Therefore, the embodiments included below can be used to specify these variables indirectly by only describing some characteristics of the workpiece, end effector, and workpiece placement target.
[0098] In some embodiments, see now Figure 5 , an embodiment depicting a flowchart having a plurality of operations consistent with a robot process 500 is provided. The process 500 may include providing (502) a robot configured to receive an initial constraint method for performing a robot task. The method may also include allowing (504) a user to interact with the robot using a graphical user interface in communication with the robot, the graphical user interface configured to allow the user to interact with the robot to determine an allowable range of robot poses associated with the robot task, wherein the allowable range of robot poses includes fewer constraints than the initial constraint method, and wherein the allowable range of poses is based at least in part on one or more symmetries associated with at least one of a workpiece associated with the robot task or an end effector associated with the robot. The method may also include transmitting (506) the allowable range of robot poses to the robot via a processor.
[0099] See now Figure 6, an embodiment of a robotic system 600 is provided. In this example, a camera 602 (e.g., 2D, 3D, etc.) can be used to identify the position of a workpiece at a known position on a flat surface. In some embodiments, vision software 604 can be used to calculate the coordinates of the workpiece in 3D space and pass the coordinates to a robotic controller 606. The controller 606 can then calculate a pose of a robot 608 assuming that the end effector 610 of the robot is able to pick up the workpiece. As discussed in further detail below, a teach pendant 612 with an associated graphical user interface can provide a user with the ability to control the robotic system 600.
[0100] In operation, a user may demonstrate to the robotic system how to perform a particular task. The demonstration may be received using any suitable method, including but not limited to via a graphical user interface, a user physically directing the robot, using simulations, using pre-generated programs, using programs generated in real time, etc. The demonstration may provide an initial constraint method that shows the robotic system exactly how to perform a particular task. In previous systems, once the initial constraint method was learned / input, the system could perform the task using the same pick poses, place poses, paths, etc.
[0101] In some embodiments, the robotic processes described herein can allow for the relaxation of an initial constraint approach by determining an allowable range of poses that can reduce the number of constraints from the initial constraint approach. Thus, embodiments of the robotic process can identify and subsequently allow a range of poses for picking up and / or placing a workpiece, any one of which is acceptable for completing the task. In some embodiments, a minimum constraint option can be provided and / or selected (e.g., automatically).
[0102] In some embodiments, the allowable range of poses may be based at least in part on workpiece geometry, end effector geometry, a combination of both geometries, a portion of either geometry, a portion of both geometries, etc. It should be noted that these geometries may be received using any suitable method, including but not limited to scanning, user input via a graphical user interface, accessing one or more pre-determined or real-time generated programs, etc.
[0103] In some embodiments, one or more degrees of freedom associated with the robot may be partially or completely relaxed. The process may then determine and / or plan an appropriate path and / or posture for the robot to achieve the task. This may include, but is not limited to, determining redundant degrees of freedom, accounting for environmental obstacles, system performance optimization (e.g., energy efficiency), optimization of specific metrics, etc.
[0104] See now Figure 7, an embodiment of a robot system 700 is provided. In this example, it can be seen that there are many possible robot poses that the robot can assume to pick up a workpiece. Since the workpiece can be relative to an axis Z perpendicular to a flat surface O Rotational symmetry, so the robot's end effector is positioned so that its Z E Z axis and workpiece O Any robot pose with the axes aligned may enable the robot to pick up a workpiece using the end effector 710. In this example, the robot may pick up a workpiece by positioning the fingers of its end effector 710 within a loop of the workpiece and spreading the fingers to form an internal grip of the workpiece, but many other options are available.
[0105] See now Figure 8 , an embodiment of a robotic system 800 is provided. In this example, the robotic end effector 810 has a bend of approximately 45°. The Z of the end effector E The axis has been redefined to align with the end of the finger so that it Figure 7 The workpiece on the flat surface is rotated 45° about the end effector. In addition, the workpiece on the flat surface is relative to the axis Z perpendicular to the flat surface. O The workpiece does, however, have Figure 7 The same size circular cutout inside the workpiece is suitable for Figure 7 It should be noted that the end effector 810 of the robot is positioned so that its Z E Z axis and workpiece O Any robot pose with the axes aligned may enable the robot to pick up a workpiece with its end effector 810 . Figure 8 Also shown is a workpiece placement target 814. The workpiece placement target 814 requires a specific pose of the workpiece when it is placed. If the robot has sufficient reach and the environment around the workpiece placement target 814 is unconstrained, the robot will be able to place the workpiece in the target regardless of the pose the robot assumes to pick up the workpiece. Figures 7 and 8 The example shown provides many options for planning the robot path to the workpiece and from the workpiece to the workpiece placement target. Increasing the number of options allows the most efficient path to be calculated, or the most likely degree of success for the pick.
[0106] See now Fig. 9 , provides an embodiment of a robot system 900. This embodiment shows Figure 8, but with obstacles around the workpiece placement target. In this example, only robot poses that position the end effector 910 within a 180° arc would allow the workpiece to be placed in the target. In order for the robot to always place the workpiece in the target, the robot poses when picking up the workpiece should be limited to the same 180° arc. There are still multiple options for calculating robot poses and paths between them, but the number of options is more limited.
[0107] See now Fig.10 , an embodiment of a robot system 1000 is provided. The example shows a rectangular workpiece and a rectangular workpiece placement target 1014. In this example, the robot can pick up the workpiece by grasping the workpiece from the outside, where the end effector 1010 is as shown in FIG. Fig.10 or as shown on the left side of Fig.10 The right part is shown positioned about its Z E The axis rotates 180°. In addition, Fig.11 As shown, the workpiece can be clamped at multiple positions along the long axis of the workpiece. All of these clamping positions allow placement in the workpiece placement target 1014. Due to the limitations of static friction between the end effector fingers and the workpiece, and due to the location of the center of mass of the workpiece, only a subset of all possible clamping positions along the long axis will have acceptable performance.
[0108] See now Fig.12 , an embodiment of a robotic system 1200 is provided. This example shows a rectangular workpiece, a rectangular workpiece placement target, and a vacuum suction cup end effector 1210. Any contact of the suction cup within the area A shown on the workpiece will result in a successful pick-up of the workpiece. Fig.13 As shown, the end effector 1310 may have a E any rotation of which the suction cup is positioned anywhere in area A. Furthermore, if the suction cup is in contact with respect to the workpiece axis Z O Any position within 10° of the normal to the suction cup, the flexible nature of the suction cup provides acceptable performance.
[0109] See now Fig.14 , an embodiment of a robotic system 1400 is provided. The example shows a generally cylindrical workpiece having a hexagonal cross section at one end and a circular cross section at the other end. The workpiece placement target is a 3-jaw mechanical chuck. In this example, the end effector 1410 is a mechanical gripper designed to grip the workpiece from the outside. In order to properly place the workpiece in the chuck, the flat side of the hexagonal half of the workpiece must be aligned with one of the jaws of the chuck. Since the mechanical gripper contacts the rounded side of the workpiece and the gripping feature of the workpiece is relative to the axis Z O Rotational symmetry, so the robot's end effector is positioned so that its ZE Z axis and workpiece O Any robot pose with the axes aligned will enable the robot to pick up the workpiece with its end effector. However, no matter how the workpiece is picked up, in this particular example, there are only six workpiece poses that will allow the workpiece to be properly placed in the machine chuck, with the workpiece moving around its Z axis. O Axis rotation of 60° is one workpiece posture.
[0110] The above embodiments show that pick and place performance can be enhanced by allowing more options for positioning the robot end effector with respect to the workpiece and the workpiece placement target, but at the expense of a more difficult process of understanding and specifying the constraints within these options. Unlike the examples, this complexity increases if the workpiece picking is three-dimensional, such as when the workpieces are randomly distributed in a material grid.
[0111] Embodiments described herein include methods for synthesizing motion constraints based on a set of properties of system components.As discussed in further detail below, the properties may be specified in a graphical user interface used as part of programming a robot or application.
[0112] As used herein, the phrase "pick feature" may refer to a section of a workpiece that can be used as a contact point or mating contact point for a robot end effector. A "placement feature" may refer to a section of a workpiece or a placement target that can be used as a contact point or mating contact point between a workpiece and a placement target for the workpiece. The phrase "workpiece feature" may refer to a pick feature or a placement feature or both. As used herein, the phrase "coordinate system" generally refers to three orthogonal axes that can correspond to each robot, workpiece feature, robot end effector, and workpiece placement target. As used herein, the terms "symmetry" of a workpiece feature, a robot end effector, and a workpiece placement target can be described based on the feature, the robot end effector, or the workpiece placement target having the same performance for its intended pick or place operation when rotated about one or more of the three axes of its coordinate system. A workpiece feature, a robotic end effector, or a workpiece placement target has "continuous symmetry" about one of its axes when it can be rotated by any angle about that axis with the same or substantially the same pick or place performance. A workpiece feature, a robotic end effector, or a workpiece placement target has "discrete symmetry" about one of its axes when it can be rotated by any integer increment, but more than one and less than an infinite increment, with the same performance for pick or place at each increment. A workpiece feature, a robotic end effector, or a workpiece placement target has "asymmetry" about one of its axes when it can only have the same pick or place performance after a full rotation (i.e., a recognition operation) about that axis.
[0113] Thus, unconstraining the robot axes and exploiting symmetries in the workpiece, end effector, and / or placement target may result in smoother paths, more likely picks, and better bin emptying (eg, where workpieces may be randomly placed in the bin).
[0114] Embodiments included herein may establish default constrained motions. If a user demonstrates or programs a pick or place, the system may replicate, with the workpiece, end effector, and placement target precisely aligned for each pick or place. All unconstrained motions may be displayed using a graphical user interface (e.g., in an advanced tab), such as those described below. This may therefore simplify the creation of a user's first program and thus match his / her intuitive understanding of how most systems work, which is suitable for debugging programs using manually placed workpieces.
[0115] In some embodiments, unconstrained motion can be performed incrementally. For example, unconstraining the rotation of the end effector during picking has an incremental benefit. In addition, unconstraining the workpiece posture during placement has an independent but additional benefit.
[0116] In some embodiments, the unconstrained robot axes may not be specified directly, as this may generally require further understanding of kinematics and robotics. Instead, embodiments included herein may provide a wizard or device for inputting characteristics that may ask the user for the characteristics of the workpiece, end effector, and / or placement target. The system may use this information to calculate and apply motion constraints. This may simplify user training and relieve the user from having to consider, for example, the combination of end effector and workpiece characteristics that affect the unconstrained robot. The highlighted workpiece, end effector, and placement target characteristics are symmetrical.
[0117] As described above, embodiments of the present disclosure may allow for various types of symmetries to be analyzed before, during, and / or after various aspects of a process. In some embodiments, the only symmetry information that may be needed for unconstrained robot axes is that of a pick-up feature on a workpiece, a placement feature on a workpiece, an end effector, and / or a placement target. In some embodiments, the system may only need to know rotational symmetry. Rotational symmetry is always associated with some axis of rotation. In some embodiments, all rotational symmetries may be around one of the three axes of an associated coordinate system, such as the x-axis, y-axis, or z-axis.
[0118] See now Figure 15 to Figure 16 , provides an example embodiment of depicting the symmetry of a workpiece. In some embodiments, with respect to a workpiece, a symmetric rotation can be related to a coordinate system associated with the workpiece (eg, embedded in a CAD file, a mesh file, etc.). Fig.15 A workpiece, in this example a sphere, is shown having continuous symmetry about all three axes. Fig.16 A workpiece having continuous symmetry about the z-axis is shown.
[0119] In some embodiments, in order not to constrain the robot axes for pick and place, the symmetries of the pick and place features may be considered separate from each other and from the overall symmetry of the workpiece.
[0120] See now Fig.17 , provides an embodiment depicting an asymmetric workpiece having a symmetric pick-up feature. It should be noted that the pick-up or placement feature of the workpiece may have its own individual symmetry, which is independent of the workpiece itself. For example, Fig.17The workpiece shown is asymmetric, i.e., it does not have rotational symmetry about any axis. Furthermore, for this particular workpiece, there is no axis in any coordinate system about which the workpiece would be rotationally symmetric. In this example, the workpiece has one possible pick-up feature, which is shown as the inner grip on the left. Although the workpiece is asymmetric, the pick-up feature has rotational symmetry about the (z) axis.
[0121] See now Fig.18 , embodiments are provided depicting an asymmetric workpiece having symmetrically placed features. Fig.18 The workpiece in is asymmetric, i.e., the workpiece does not have rotational symmetry about any possible axis. In this example, the workpiece has one asymmetric pickup feature, i.e., the outer grip along the tapered side of the shank. However, it should be noted that this example does include a symmetric placement feature in the chuck, i.e., placement of the cylindrical mandrel. The placement feature has rotational symmetry about the (z) axis.
[0122] See now Fig.19 , embodiments are provided that depict a placement target having symmetrical placement features. The placement target may have its own symmetry. For example, a chuck may have rotational symmetry around its axis of rotation. Or a fixture may have symmetry around an axis perpendicular to its surface. In order to exploit this symmetry, the embodiments included herein may be configured to establish a coordinate system with the placement target. Some options may include, but are not limited to, giving the placement target its own coordinate system (e.g., defining features of the placement target, treating the placement target like an end effector having its own CAD-based coordinate system, etc.), using a coordinate system of the workpiece posture when teaching placement, and the like. For example, assuming that the user correctly aligns the workpiece and the target when teaching the placement, the two coordinate systems may each be the same at the placement point. In some embodiments, it should be noted that there may be more than one placement target associated with a particular robot task or a series of tasks.
[0123] See now Figure 20 to Figure 22 , embodiments depicting examples of asymmetry are provided. In some embodiments, asymmetry can be a programmed default. When asymmetry is present, no two pick-up or place features are the same, and no two end effector positions (positions when holding a workpiece) are the same. Fig. 20 shows an asymmetric placement target, Fig.21 An asymmetric end effector is shown, and Fig. 22 An asymmetric workpiece having an asymmetric workpiece feature is shown. It should be noted that Fig. 22Workpieces in do have some possible symmetrical pick and place features, for example, circular screw holes and cylindrical bolts that exhibit symmetry. If none of these are used as pick or place features, the workpiece pick and place can be considered asymmetric. Symmetric workpieces can also be considered asymmetric. In some embodiments, this can be a programmed default. In this case, the system can select one of the infinite poses that the symmetrical workpiece can have, and the control software can attempt to determine the path to the pick feature that allows this pose, even if other identical pick features are available. This can limit the picking and path planning performance. In some embodiments, workpieces with symmetry around an axis other than the x-axis, y-axis, or z-axis of the associated coordinate system can be considered asymmetric. This can indicate that the coordinate system needs to be appropriately assigned to achieve symmetry. Fig.23 An example of a workpiece that does not have a pick-up or place feature that is symmetrical about the x-axis, y-axis, or z-axis and is therefore asymmetrical is shown. For clarity, it should be noted that Fig.23 None of the axes shown pass through the center of any cross-section of the workpiece along its longest dimension.
[0124] See now Figure 24 to Figure 25 , provides an embodiment depicting an example of continuous symmetry. As described above, continuous symmetry may indicate that a pick-up or place feature may be rotated any increment around its x, y, or z axis within a range of 360° without its appearance changing. It should be noted that this may be the case for the pick-up or place feature rather than the workpiece or fixture as a whole. Fig.24 An asymmetric workpiece is shown with two possible pick-up features at each end, each of which may be continuously symmetrical about an (x) axis passing through the center of each pick-up feature. For an end effector, this may indicate that the end effector may be rotated in any increment within 360° about the axis without changing its ability to pick up or place a workpiece. In some embodiments, it is conventional to designate this as the z-axis of the end effector, although the x-axis or y-axis may also be used. Fig.25 An end effector is shown having continuous symmetry about an axis perpendicular to the center of the contact point.
[0125] See now Figure 26 to Figure 29 , provides an embodiment depicting an example of discrete symmetry. Discrete symmetry indicates that a pick or place feature or end effector can be rotated 360° about its x-axis, y-axis, or z-axis in at least two discrete increments without changing the functionality of the feature for the purpose of picking or placing a workpiece. It should be noted that this example shows a pick or place feature, not an entire workpiece or fixture. Fig.26For example, a pick-up portion taught as an outer grip portion may have discrete symmetry, while a pick-up portion taught as an inner grip portion may have continuous symmetry. In some embodiments, increments may be specified as the number of increments, angles, or using any suitable method. For example, a pick-up feature having three discrete symmetry increments may also be described as having 360° / 3=120° discrete symmetry. Fig. 27 An exemplary end effector having 180° discrete symmetry is shown. Fig.28 An exemplary end effector having 120° discrete symmetry is shown. Fig.29 A placement target (CNC chuck) with 120° discrete symmetry is shown. Fig.30 A placement target (CNC vise) with 180° discrete symmetry is shown.
[0126] See now Fig.31 , provides an embodiment for depicting the symmetry of a workpiece around the x-axis, y-axis, and z-axis. In order to align an end effector, a workpiece, and a placement target having discrete symmetry, it may be necessary to determine the starting point or zero angle of the discrete symmetry. For example, if the coordinate system of the placement target can be inferred from the taught workpiece posture, the zero angle can be inferred from the relative positions of the workpiece and the placement target. Alternatively, if the coordinate system is to be explicitly assigned to the placement target, the user may need to specify one of the other two axes as the zero angle. In some embodiments, the system may allow symmetry definitions around more than one axis. Fig.31 A workpiece is shown with six possible pick-up features. Namely, two internal grips with continuous symmetry about the z-axis, two internal grips with continuous symmetry about the y-axis, and two external suction pick-ups with 90° discrete symmetry about the x-axis (on either side of the workpiece). In terms of discrete symmetry about the x-axis, the system may need to specify which axis sets the zero angle for the pick-up symmetry about the x-axis. In this particular example, that axis could be the y-axis or the z-axis.
[0127] See now Fig.32 , provides embodiments showing examples with non-orthogonal axes. Some workpieces have pick-and-place features that may be symmetrical about multiple axes, however, these axes are not orthogonal to each other. For example, Fig.32The workpiece in comprises a first internal clamping portion, a pick-up feature portion that is continuously symmetrical on the top, and a second internal clamping portion, a placement feature portion that is continuously symmetrical on the bottom (not visible). It also has a third pick-up feature portion related to a third axis and a fourth pick-up feature portion related to a fourth axis. Since the system typically only allows symmetry specifications around the x, y or z axis in the workpiece coordinate system, the third pick-up feature portion and the fourth pick-up feature portion can be considered asymmetric. The system may still allow the user to specify the pick-up features at this time, but due to the lack of symmetry around one of the x-axis, y-axis or z-axis, they may only have one possible end effector position. Because it is quite rare, not allowing non-orthogonal symmetry axes actually creates very few problems. If the end effector has symmetry, this is sufficient to allow unconstrained picking without the need for workpiece pick-up feature symmetry (see Fig.33 ). It is unlikely to make the workpiece pick-up features symmetrical with an asymmetrical end effector, but even if such symmetry occurs, a contingency approach to programming multiple picks for misaligned axes is still possible.
[0128] In some embodiments, the system can be configured to calculate motion constraints from symmetry information. Unconstrained motion can be easily calculated by examining the following combinations: workpiece pickup features and end effector and workpiece placement features and placement target placement features. This assumes an unconstrained environment because there may be additional rules when the environment is constrained. The preferred rule is to operate according to the lowest constraint. For example, if the end effector has continuous symmetry around its z-axis and the pickup features are asymmetric, the system can take advantage of the less constrained features, the continuous symmetry of the end effector around its z-axis, and allow any valid end effector posture that changes only around the rotation of the end effector z-axis to pick up parts. Allowing this degree of freedom of the end effector posture basically allows unconstrained robot motion in one of the end effector axes (here located in the end effector z). Alternatively, if the end effector has a discrete symmetry of 180° about its z-axis, and the pick feature has a continuous symmetry about the workpiece x-axis, the system can take advantage of the less constrained feature, the continuous symmetry of the pick feature about the workpiece x-axis, and allow the part to be picked up using any valid end effector pose that varies only in end effector rotation about the workpiece x-axis. This degree of freedom in allowing end effector pose may be referred to as free rotation in workpiece x. If the workpiece placement feature has a discrete symmetry of 120° about the associated workpiece axis, and the placement target placement feature has a discrete symmetry of 60° about the associated placement target axis, the system can take advantage of the less constrained feature, the 60° discrete placement target symmetry (the smaller of the two angles), and allow the part to be placed using any valid end effector pose in 60° rotational increments about the placement target reference axis x. This degree of freedom in allowing end effector pose may be referred to as discrete rotation about the placement target reference axis x. In this example, the workpiece coordinate system and the placement target coordinate system may need to be aligned to the same zero angle. In Figure 33 to Figure 34 Some examples of possible rules are provided in .
[0129] See now Figures 35 to 40 , an exemplary embodiment of the present disclosure providing a workpiece is provided. Fig.35 An exemplary workpiece made of hexagonal stock placed in a chuck is shown with z alignment. For picking up the workpiece, the free rotation in z of the workpiece is used because the workpiece pick-up features are less constrained than the end effector. For placing the workpiece, the smaller of the two discrete symmetries is 60° for the workpiece, allowing the placement to be at any 60° increment. Note that the workpiece and placement target zero reference axes are aligned. Fig.36The same workpiece is shown, but the end effector axis and the workpiece z axis are not aligned. This is similar to the above example, however, the pick position can be taught in a different way, with a clamp on the side. For picking up the workpiece, since the workpiece pick feature is less constrained than the end effector, the free rotation in the workpiece z is used. For placing the workpiece, the smaller of the two discrete symmetries is 60° for the workpiece, so that the placement can be in any 60° increment. It should be noted that the workpiece and the placement target zero reference axis are aligned. In this example, the z axis of the end effector and the z axis of the workpiece are no longer aligned. Therefore, the system can always explicitly specify the free spin around the workpiece z, and does not assume alignment with the end effector center point (TCP) z. The workpiece and the end effector z can be artificially aligned, but this may then limit the pick to one TCP. Alternatively, the user can specify and select from multiple TCPs. The embodiments included below provide multiple GUIs and displays that can be configured to relieve the user of this burden (and create more complex UIs), which can allow the calculation of its own temporary TCP based on the taught pick.
[0130] See now Fig.37 , an embodiment showing a point-to-point clamping end effector is provided. To pick up the workpiece, rather than reorienting the workpiece coordinate system, the user has selected the y axis rather than the x axis as the zero angle reference. Therefore, the y axis is aligned with a point rather than a plane of the hexagonal stock. The smaller of the two discrete symmetries of the workpiece is 60°, so the pick can be freely rotated in any 60° increment. In this example, the zero angle reference X axis of the end effector can be rotated in relation to the zero angle reference Y of the workpiece pick feature by minus two (or plus four) 60° increments. For placing the workpiece, since the workpiece placement feature is less constrained than the placement target, the placement can use the free rotation in the workpiece z. Fig.38 An example of a workpiece with external asymmetry that must be placed in a specific asymmetric position is shown. For picking up a workpiece, this is similar to the above example, except that the workpiece pick feature has a discrete symmetry about the y-axis and the zero angle can be set by the z-axis. In this example, the gripper can be plane-to-plane. The smaller of the two discrete symmetries of the workpiece is 60°, so the pick can be freely rotated in any 60° increment. For placing a workpiece, since both the placement feature and the placement target on the workpiece (which includes the handle) are asymmetric, there is only one valid position pose for the workpiece.
[0131] In some embodiments, all pick planning and motion constraints can be programmed into a dialog on a graphical user interface (e.g., Advanced tab) for pick, place, and end effector. In some embodiments, the user can choose to specify anywhere from zero to all four symmetries. Each additional piece of information can improve performance even when other information is left at the default (e.g., asymmetric). In fact, when one of the two halves of a pick and place pair (pick feature and end effector, respectively, or place feature and place target, place feature) has a continuous symmetry, the other half of the pair's symmetry is irrelevant.
[0132] See now Fig.39 , an embodiment showing an exemplary graphical user interface 3900 consistent with the present disclosure is provided. The GUI 3900 may allow for the generation and display of placement rules. In operation, when a user selects a teaching content tab in the GUI 3900, a placement guide may be generated.
[0133] See now Fig.40 , an embodiment showing an exemplary graphical user interface 4000 consistent with the present disclosure is provided. The GUI 4000 may allow for displaying a mounting tab for a workpiece. Defining workpiece pick and / or placement symmetries allows for fewer pick rules and free rotation of the workpiece Z into position. For example, a user may specify the type of symmetry that exists for each workpiece axis (e.g., none, continuous, or N-side, etc.).
[0134] See now Fig.41 , an embodiment showing an exemplary graphical user interface 4100 consistent with the present disclosure is provided. The GUI 4100 may display a pick rule rotation tab that may be configured to allow a user to visualize the pick optimization derived from the end effector and workpiece symmetry by combining the end effector and workpiece in the same view. Fig.41 As shown, any symmetry defined in the installation tab may be displayed, and if no symmetry is defined, it may be de-emphasized (eg, grayed out, etc.). In some embodiments, a user may override the use of any symmetry for a particular placement rule.
[0135] See now Fig.42, an embodiment of an exemplary graphical user interface 4200 consistent with the present disclosure is provided. The GUI 4200 can be configured to display a setup tab to change the end effector. In operation, the play option can be configured to display the selected rotation in the viewer by animating the rotation of the end effector or workpiece. Selecting any field (except the viewer itself) or exiting the page can cause the viewer to exit the play mode. In some embodiments, a drop-down menu can allow the user to select the type of end effector symmetry (e.g., each position is unique, all positions are equivalent, there are 2 / 3 / 4 equivalent positions, etc.). In Fig.42 The "play" option displayed in the and other embodiments can, when selected, show the selected rotation in the viewer by animating the rotation of the end effector or workpiece. Selecting any field (except the viewer itself) or exiting the page can cause the viewer to exit the play mode. Fig.42 Only an illustration of the end effector symmetry is shown. It should be understood that a similar set of controls can be used to specify symmetry about other axes.
[0136] See now Fig.43 , an embodiment illustrating an exemplary graphical user interface 4300 consistent with the present disclosure is provided. The GUI 4300 can display a placement rule rotation tab that can be configured to allow a user to visualize one or more placement optimizations derived from workpiece symmetry in one of the workpiece axes.
[0137] In some embodiments, the graphical user interface of the present disclosure may allow for the definition of workpiece and end effector symmetries using various user editable options such as the above-described installation tab. Thus, there is no need to edit the symmetries in the pick / place rule page. Ease of use may be achieved by visualizing the symmetries in the viewer and, in some embodiments, visualizing the symmetry of the end effector rotations in the viewer. In some embodiments, because the zero reference may be implicitly defined by the pick and place rules, it may not be necessary to explicitly define a zero reference axis for rotational symmetry.
[0138] In some embodiments, and as described above, the present disclosure may provide a method for specifying an allowable range of postures of a robot and / or a robot end effector for the purpose of picking up a workpiece. The method may include graphically displaying the axes of the robot and / or robot end effector, the workpiece, and / or the workpiece coordinate system. The method may also include asking a user whether the end effector has substantially equivalent performance for picking up a workpiece when the end effector is rotated about one or more axes of its coordinate system.
[0139] In some embodiments, when the end effector is rotated about one or more axes of its coordinate system, it can be determined that the end effector has substantially equivalent performance for picking up a workpiece. In this case, the user may be allowed to specify each rotation as continuous, or in multiple discrete steps. In some cases, the specified rotations may be displayed as a series of images. For example, at a graphical display, such as those described above (e.g., on a robotic teach pendant or any other suitable device).
[0140] In some embodiments, the present disclosure may provide a method for specifying an allowable range of poses of a workpiece feature for the purpose of contact by a robot and / or a robot end effector. The method may include graphically displaying a workpiece, axes of its coordinate system, and / or a robot or robot end effector, wherein the robot and / or robot end effector may be displayed in a pose contacting the workpiece. The method may also include asking a user whether the end effector has substantially equivalent performance for contacting the workpiece when the workpiece is rotated about one or more axes in its coordinate system.
[0141] In some embodiments, the robot and / or robot end effector may have substantially equivalent performance for contacting the workpiece as the workpiece rotates about one or more axes of its coordinate system. Thus, the user may specify each rotation as continuous, or in multiple discrete steps.
[0142] In some embodiments, the present disclosure may provide a method for specifying an allowable range of postures of a workpiece for the purpose of placing the workpiece at a workpiece placement target. The method may include graphically displaying the workpiece, the axes of its coordinate system, and / or the workpiece placement target. In some embodiments, the workpiece may be displayed in a posture for placing the workpiece at the workpiece placement target. The method may include asking a user whether the workpiece can be correctly placed when the workpiece is rotated about one or more axes in its coordinate system.
[0143] In some embodiments, the present disclosure may provide a method for specifying an allowable range of postures of a robot and / or robot end effector for the purpose of placing a workpiece at a workpiece placement target, wherein the allowable range of postures is related to the workpiece placement target. The method may include graphically displaying the robot and / or robot end effector, the workpiece, the axes of the workpiece coordinate system, and / or the workpiece placement target. In some embodiments, the robot and / or robot end effector may be displayed in a posture for placing the workpiece at the workpiece placement target. The method may include asking a user whether the workpiece can be correctly placed at the workpiece placement target when the workpiece is rotated about one or more axes in its coordinate system.
[0144] In some embodiments, when the workpiece is rotated about one or more axes in its coordinate system, the workpiece can have at least one correct placement at the placement target. In this case, the user can specify each rotation as continuous, or in multiple discrete steps. If the workpiece is rotated about one or more axes in its coordinate system, and the workpiece has at least one correct placement at the placement target, the user can specify each rotation as a smaller angle than a full rotation. In some cases, the range of possible rotations can be displayed as a series of images (e.g., displayed at a graphical display associated with a robot teaching pendant).
[0145] In some embodiments, the present disclosure may provide a method for calculating a maximum range of possible postures of a workpiece feature and a robot and / or robot end effector that are related to each other to make the workpiece feature contact the robot end effector. The method may include determining a first set of allowable ranges of postures for the workpiece feature, wherein each of the allowable postures produces substantially equivalent performance for making the workpiece feature contact the robot and / or robot end effector. The method may include determining a second set of allowable ranges of postures for the robot and / or robot end effector, wherein each of the allowable postures produces substantially equivalent performance for making the workpiece feature contact the robot and / or robot end effector. The method may also include selecting the first set or the second set. This may be determined based on which set allows a maximum range of postures with substantially equivalent performance for making the workpiece feature contact the robot and / or robot end effector.
[0146] In some embodiments, the present disclosure may provide a method for calculating a maximum range of mutually related postures of a workpiece and a workpiece placement target for placing the workpiece at the workpiece placement target. The method may include determining a first set of allowable ranges of postures for the workpiece, wherein each of the allowable postures can produce substantially equivalent performance for placing the workpiece at the workpiece placement target. The method may also include determining a second set of allowable ranges of postures for the workpiece placement target, wherein each of the allowable postures can produce substantially equivalent performance for placing the workpiece at the workpiece placement target. The method may also include selecting the first set or the second set, thereby determining which set can allow a maximum range of postures with substantially equivalent performance for placing the workpiece at the workpiece placement target.
[0147] In some embodiments, the present disclosure may provide a method for specifying an allowable range of postures of a robot end effector with respect to a workpiece for the purpose of contacting the workpiece to transfer the workpiece using the robot end effector. The method may include graphically displaying the workpiece, the robot and / or the robot end effector, and / or the axes of the workpiece coordinate system, wherein the robot end effector may be displayed in a posture of contacting the workpiece. A user may be allowed to specify a magnitude of translation of the end effector along each axis of the workpiece coordinate system for which the contact between the robot end effector and the workpiece has acceptable performance for the purpose of contacting the workpiece to transfer the workpiece using the robot end effector. In some cases, the specified translation along each axis may be displayed as a series of images (e.g., displayed at a graphical display associated with a robot teach pendant).
[0148] In some embodiments, the present disclosure may provide a method for specifying an allowable range of postures of a robot end effector with respect to a workpiece for the purpose of contacting the workpiece to transfer the workpiece using a robot end effector. The method may include graphically displaying the workpiece, the robot end effector, and the axes of the robot end effector coordinate system, wherein the robot and / or the robot end effector may be displayed in a posture of contacting the workpiece. In some cases, a user may be allowed to specify a magnitude of rotation of the end effector about the origin of the robot end effector coordinate system and about one or more axes of the robot end effector coordinate system, for which the contact between the robot end effector and the workpiece has acceptable performance for the purpose of contacting the workpiece to transfer the workpiece using the robot end effector. In some cases, one of the axes in the robot end effector coordinate system may be perpendicular to the contact point at the surface of the workpiece. In some cases, the specified rotations with respect to each axis may be displayed as a series of images (e.g., displayed at a graphical display associated with a robot teach pendant).
[0149] In some embodiments, the present disclosure may provide a method for specifying an allowable range of postures of a robot end effector for the purpose of picking up a workpiece. The method may include determining a degree of symmetry of a pick-up feature on a workpiece. The degree of symmetry may be continuous, discrete, and / or asymmetric for each rotation of the workpiece around an axis of a coordinate system of the workpiece. If the determined symmetry is discrete, the method may include determining increments of discrete rotations around the corresponding axis. The method may also include determining a degree of symmetry of the robot end effector, wherein the degree of symmetry may be continuous, discrete, and / or asymmetric for each rotation of the robot end effector around an axis of a coordinate system of the robot end effector. If the determined symmetry is discrete, the method may include determining increments of discrete rotations around the corresponding axis. The method may also include determining a first valid posture of the workpiece relative to the robot end effector for the purpose of picking up the workpiece. For axes of the workpiece's coordinate system that coincide with axes of the robot end effector's coordinate system when the workpiece is in a first valid pose, the method may include determining a range of valid robot end effector poses by allowing the end effector to rotate according to a degree of symmetry determined for the workpiece around the axes of the workpiece's coordinate system or for the robot end effector around the axes of the robot end effector's coordinate system.
[0150] In some embodiments, the present disclosure may provide a method for specifying an allowable range of poses of a workpiece for the purpose of placing the workpiece at a placement target. The method may include determining a degree of symmetry of a placement feature on the workpiece, wherein the degree of symmetry may be continuous, discrete, or asymmetric for rotations of the workpiece around each of the axes in the coordinate system of the workpiece, and wherein, if the determined degree of symmetry is discrete, then determining increments of discrete rotations around the corresponding axis. The method may also include determining a degree of symmetry of the placement target, wherein the degree of symmetry may be continuous, discrete, or asymmetric for rotations of the placement target around each of the axes in the coordinate system of the placement target, and wherein, if the determined degree of symmetry is discrete, then determining increments of discrete rotations around the corresponding axis. The method may also include determining a first valid pose of the workpiece relative to the placement target for the purpose of placing the workpiece. For an axis of the workpiece's coordinate system that can coincide with an axis of the placement target's coordinate system when the workpiece is in a first valid posture, the method may include determining a range of valid workpiece postures by allowing the workpiece to rotate according to a degree of symmetry determined for the workpiece around the axis of the workpiece's coordinate system or for the placement target around the axis of the placement target's coordinate system.
[0151] In some embodiments, the present disclosure may provide a system for picking up and placing workpieces. The system may include one or more of a robot, a robot end effector, a sensor, a robot controller, and / or a robot teaching pendant communicating with the robot controller. In some embodiments, the sensor may be configured to detect a posture of one or more workpieces in relation to the robot, and the robot controller may be configured to select a workpiece detected by the sensor. The robot controller may also be configured to select from a range of possible end effector pick-up postures for the purpose of picking up the workpiece. The robot controller may also be configured to select from a range of possible end effector placement postures for the purpose of placing the workpiece at the workpiece placement target. The robot controller may also be configured to prompt the user with information about the symmetry of the end effector so as to generate a range of possible end effector pick-up postures. A graphical user interface (e.g., a graphical user interface on a robot teaching pendant) may be used to prompt the user with information about the symmetry of the end effector. The robot controller may also be configured to prompt the user with information about the symmetry of the workpiece pick-up feature so as to generate a range of possible end effector pick-up postures. The user may be prompted with information about the symmetry of the end effector on the robot teaching pendant. The robotic controller may also be configured to select from a range of possible end effector placement poses for the purpose of placing a workpiece at a workpiece placement target.
[0152] In some embodiments, the robotic controller may also be configured to prompt the user for information about the symmetry of the workpiece placement feature in order to generate a range of possible end effector placement poses. The user may be prompted on the robotic teach pendant for information about the symmetry of the end effector. The robotic controller may also be configured to prompt the user for information about the symmetry of the workpiece placement target in order to generate a range of possible end effector placement poses. The user may be prompted on the robotic teach pendant for information about the symmetry of the end effector. The robotic controller may also be configured to calculate a path from a selected end effector pick-up pose to a selected end effector placement pose. The path between a selected end effector pick-up pose and a selected end effector placement pose may be optimized to obtain the highest probability of successful workpiece pickup and successful workpiece placement.
[0153] As will be appreciated by those skilled in the art, aspects of the present disclosure may be embodied as systems, methods, or computer program products. Therefore, aspects of the present disclosure may take the form of a complete hardware implementation, a complete software implementation (including firmware, resident software, microcode, etc.), or a combination of software and hardware aspects, which may be collectively referred to herein as circuit "modules" or "systems." In addition, aspects of the present disclosure may take the form of a computer program product implemented in one or more computer-readable media having a computer-readable program code implemented thereon.
[0154] Any combination of one or more computer-readable media can be utilized. The computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example (incomplete list) of a computer-readable storage medium will include the following: an electrical connector with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store a program for use by an instruction execution system, a device or an equipment or for combining with the instruction execution system, a device or an equipment.
[0155] A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave.
[0156] Such propagated signals may take any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in conjunction with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0157] The computer program code for performing the operation of various aspects of the present disclosure can be written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional process programming languages such as "C" programming language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., by using the Internet of an Internet service provider).
[0158] Various aspects of the present disclosure are described below with reference to flowcharts and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present disclosure. It should be understood that each frame of the flowchart and / or block diagram and the combination of frames in the flowchart and / or block diagram can be implemented by computer program instructions.
[0159] These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0160] These computer program instructions may also be stored in a computer-readable medium, which may instruct a computer, other programmable data processing apparatus, or other device to operate in a specific manner so that the instructions stored in the computer-readable medium produce an article of manufacture including instructions for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0161] The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable apparatus provide a process for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0162] The flowcharts and block diagrams in the accompanying drawings illustrate the possible specific implementation architecture, functions and operations of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram may, but not always, represent a module, section or part of a code including one or more executable instructions for implementing a specified logical function. It should also be noted that in some optional specific implementations, the functions indicated in the box may not occur in the order described in the accompanying drawings. For example, depending on the functions involved, the two boxes shown in succession may actually be executed substantially simultaneously, or these boxes may sometimes be executed in the opposite order. It should also be noted that each box in the block diagram and / or flowchart illustration, as well as the combination of boxes in the block diagram and / or flowchart illustration, can be implemented by a system based on dedicated hardware that performs a specified function or action, or a combination of dedicated hardware and computer instructions.
[0163] The terms used herein are only used to describe the purpose of specific implementations and are not intended to limit the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular forms "a", "a kind of" and "the" are intended to also include plural forms. It should also be understood that when used in this specification, the terms "include" and / or "comprise" specify the features, integers, steps (not necessarily in a specific order), operations, elements, and / or parts, but do not exclude the presence or addition of one or more other features, integers, steps (not necessarily in a specific order), operations, elements, parts and / or groups thereof.
[0164] All means or steps that may be present in the claims below plus the corresponding structures, materials, actions and equivalent forms of the functional elements are intended to include any structure, material or action for performing a function in combination with other claimed elements as specifically claimed. The specification of the present disclosure has been presented for the purpose of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the disclosed form. Without departing from the scope and essence of the present disclosure, many modifications, variations, substitutions and any combination thereof will be apparent to those of ordinary skill in the art. One or more specific implementations are selected and described in order to best explain the principles and practical applications of the present disclosure, and to enable other persons of ordinary skill in the art to understand the present disclosure for any combination of one or more various specific implementations and / or one or more specific implementations suitable for the envisioned specific purpose.
[0165] A number of specific implementations of the present invention have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of the invention.
[0166] For example, in some implementations, a robot can be any mechanical system configured to pick up at least one object and move it from one place to another.
[0167] In some implementations, the graphical user interface may be implemented in places other than the robot teach pendant, including but not limited to a computer display, a mobile device, or a tablet computer. In addition, while a "processor" may be used in some implementations, it should be noted that this may include but is not limited to a processor associated with or separate from the robot controller, for example, a single processor separate from or included in the controller, multiple processors separate from or included in the controller, etc. In some cases, one processor located in one device may perform certain operations, and another processor located in a physically separate area may perform other operations. Additionally and / or alternatively, some or all operations may be performed by a processor or group of processors located in a single device, such as those associated with the robot system included herein.
[0168] Thus, having described the disclosure of the present application in detail and with reference to one or more specific implementations of the present application, it will be apparent that modification, variation and any combination (including any modification, variation, substitution and combination thereof) of one or more specific implementations are possible without departing from the scope of the present disclosure as defined in the appended claims.
Claims
1. A robot system, comprising: a robot configured to receive an initial constraint method for performing a robot task; a graphical user interface in communication with the robot, the graphical user interface configured to allow a user to interact with the robot to determine an allowable range of robot poses associated with the robotic task, wherein the allowable range of poses includes fewer constraints than the initial constraint method, and wherein the allowable range of robot poses is based at least in part on one or more degrees of symmetry associated with at least one of a workpiece associated with the robotic task or a robotic end effector associated with the robot; and a processor configured to transmit an allowable range of the robot posture to the robot, wherein the initial constraint method includes a demonstration from the user showing the robot how to perform the robot task, and The allowable range of robot postures includes a range of postures for the robot to pick up and / or place the workpiece based at least in part on the geometry of the workpiece, the geometry of the robot end effector, a combination of both geometries, a portion of either geometry, or a portion of both geometries.
2. The system of claim 1, wherein the initial constraint method for performing the robotic task is received from at least one of user input, a program, a simulation, or a user demonstration. 3 . The system of claim 1 , wherein the one or more degrees of symmetry include a degree of symmetry of a pick-up feature of a workpiece associated with the robotic task. 4 . The system of claim 3 , wherein the symmetry of the pick-up features of the workpiece is continuous, discrete, or asymmetric.
5. The system of claim 1, wherein the one or more degrees of symmetry include a degree of symmetry of the robotic end effector.
6. The system of claim 5, wherein the degree of symmetry of the robotic end effector is continuous, discrete, or asymmetric.
7. The system of claim 1, wherein the one or more degrees of symmetry include a degree of symmetry of a placement target associated with the robotic task.
8. The system of claim 7, wherein the degree of symmetry of the placement target is continuous, discrete, or asymmetric.
9. The system of claim 1, wherein the processor is further configured to determine a first valid pose associated with a workpiece and the robot end effector associated with the robot.
10. The system of claim 9, wherein the processor is further configured to identify axes of a coordinate system associated with the workpiece that coincide with axes of a coordinate system of the robot end effector when the workpiece is in the first valid pose.
11. The system of claim 9, wherein the processor is further configured to determine a range of valid robot end effector postures by allowing rotations of the robot end effector based at least in part on a degree of symmetry determined for the workpiece around an axis of a coordinate system of the workpiece or the robot end effector around an axis of a coordinate system of the robot end effector.
12. The system of claim 11, wherein the graphical user interface is configured to display the robot end effector, the workpiece, and at least one of an axis of a coordinate system associated with the robot end effector or an axis of a coordinate system associated with the workpiece, and wherein the graphical user interface is configured to allow a user to specify whether the robot end effector has equivalent performance for picking up the workpiece when the robot end effector is rotated about an axis of a coordinate system associated with the robot end effector or an axis of a coordinate system associated with the workpiece.
13. The system of claim 1, wherein the processor is further configured to determine placement of a workpiece relative to a placement target associated with the robotic system.
14. The system of claim 13, wherein the processor is further configured to determine a range of valid robot end effector poses by allowing rotations of the robot end effector based at least in part on a degree of symmetry determined for the workpiece about an axis of a coordinate system of the workpiece or the placement target.
15. The system of claim 14, wherein the graphical user interface is configured to display the robot end effector, the workpiece, and at least one of an axis of a coordinate system associated with the robot end effector or an axis of a coordinate system associated with the workpiece, and wherein the graphical user interface is configured to allow a user to specify whether the robot end effector has equivalent performance for placing the workpiece at the placement target when the robot end effector is rotated about an axis of the coordinate system associated with the robot end effector or an axis of the coordinate system associated with the workpiece.
16. The system of claim 1, wherein the processor is further configured to determine a minimum number of degrees of freedom (DOF) required for the robot to perform the task associated with the range of robot postures, the processor being further configured to determine an additional number of DOFs required to satisfy one or more additional constraints.
17. The system of claim 16, wherein the processor is further configured to combine the minimum number of degrees of freedom with the additional number of degrees of freedom to determine a total number of degrees of freedom, wherein the processor is further configured to compare the total number of degrees of freedom with a maximum number of degrees of freedom allowed associated with the robot.
18. The system of claim 17, wherein the processor is further configured to determine a difference between the maximum number of degrees of freedom allowed and the total number of degrees of freedom, and to optimize performance of the robot based at least in part on a posture range associated with the difference.
19. The system of claim 1, wherein the allowable range of robot poses is based at least in part on one or more degrees of symmetry associated with a placement target associated with the robot task.
20. A robotic method, the robotic method comprising: providing a robot configured to receive an initial constraint method for performing a robot task; allowing a user to interact with the robot using a graphical user interface in communication with the robot, the graphical user interface being configured to allow the user to interact with the robot to determine an allowable range of robot poses associated with the robot task, wherein the allowable range of robot poses includes fewer constraints than the initial constraint method, and wherein the allowable range of robot poses is based at least in part on one or more degrees of symmetry associated with at least one of a workpiece associated with the robot task, a placement target associated with the robot task, or a robot end effector associated with the robot; as well as transmitting the permissible range of the robot posture to the robot via a processor, wherein the initial constraint method includes a demonstration from the user showing the robot how to perform the robot task, and The allowable range of robot postures includes a range of postures for the robot to pick up and / or place the workpiece based at least in part on the geometry of the workpiece, the geometry of the robot end effector, a combination of both geometries, a portion of either geometry, or a portion of both geometries.
Citation Information
Patent Citations
Digital proxy simulation of robotic hardware
US20150199458A1
System and method for evaluation of object autonomy
US20160321381A1
System and method for game theory-based design of robotic systems
US20180060459A1
Method and apparatus for dynamically reprogramming remote autonomous agents
US6757587B1
Visual object recognition and tracking
US7680300B2