Robot posture determination device, method, and program
By acquiring and generating robot operation information, generating charts, and searching for the combination sequence with the shortest action time, the problem of difficulty in considering the workpiece holding state in existing technologies is solved, achieving efficient robot posture determination and system simplification.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- OMRON CORP
- Filing Date
- 2022-01-19
- Publication Date
- 2026-05-19
AI Technical Summary
Existing technologies struggle to effectively consider the various gripping states of workpieces when determining robot postures, resulting in excessively long posture determination times and low efficiency.
The acquisition unit obtains job information, gripping information, workpiece posture information, and robot specification information, generates charts, and uses the search unit to search for the combination sequence with the shortest motion time. It considers the combination of workpiece posture, gripper posture, and robot posture, avoids interference with the surrounding environment, and calculates the robot motion time.
Efficiently determine the optimal robot posture, reduce reliance on skilled technicians, simplify robot system construction and modification, improve productivity, and avoid interference with the surrounding environment.
Smart Images

Figure CN116963878B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a robot posture determination device, a robot posture determination method, and a robot posture determination procedure. Background Technology
[0002] Currently, the teaching of robot postures for performing prescribed tasks is done by skilled operators relying on intuition, know-how, and experience to minimize robot movement time. However, due to the increasing number and complexity of tasks performed by robots, determining the robot posture with the shortest movement time has become more difficult, leading to the technical problem of longer trial-and-error time spent on robot posture determination. Therefore, a technique to assist in determining robot posture has been proposed.
[0003] For example, a teaching aid device has been proposed that can calculate the optimal combination of angle positions of each joint at each movement point in a short time (see Patent Document 1: Japanese Patent Application Publication No. 2007-203380). The device described in Patent Document 1 calculates the movement time between all movement points for each combination of candidate solutions, and extracts the combination of candidate solutions from the upstream side with the shortest movement time relative to the downstream candidate solutions. Furthermore, based on the extraction results, the device searches for the combination of candidate solutions that minimizes the overall movement time of the fingertip from the starting point to the ending point. Summary of the Invention
[0004] The technical problem that the invention aims to solve
[0005] For example, consider a scenario where a robot performs a task by grasping and moving a workpiece using a robotic arm. In this case, the robotic arm's grasping posture of the workpiece can vary in several ways.
[0006] However, the technology described in Patent Document 1 is based on an initial solution for the position and posture of each moving point of the robot's moving object part (fingertip). That is, the technology described in Patent Document 1 requires pre-determining the gripping state as described above, without considering the possibility of various variations in that gripping state.
[0007] This disclosure was made in view of the foregoing, and its purpose is to efficiently determine the optimal robot posture by including the gripping state of the workpiece.
[0008] Technical solutions for solving technical problems
[0009] To achieve the above objectives, the robot posture determination device disclosed herein is configured to include an acquisition unit and a search unit. The acquisition unit acquires job information related to a task performed by a robot having a gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and a workpiece held by the gripper, multiple candidate workpiece posture information showing the postures that the workpiece can take, and specification information including the robot's kinematic information. The search unit assigns each combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the posture of the robot corresponding to the posture of the gripper to an object point among multiple object points on the path of the robot performing the job. Based on an index associated with the robot's motion time between the robot's postures, the search unit searches for a sequence of combinations with the shortest robot motion time from a sequence of combinations that can migrate between the object points. The gripper posture is obtained based on the job information, the gripping information, and the workpiece posture information, and the robot posture is obtained based on the gripper posture and the kinematic information.
[0010] Furthermore, if the gripping posture determined based on the workpiece posture information and the gripper posture of the combination are different, the search unit may determine that the combination cannot be migrated between the object points.
[0011] Additionally, if the robot's movement between the robot's poses in the combination is a linear movement and the poses of the robots in the combination are different, the search unit determines that the combination cannot migrate between the object points.
[0012] In addition, the search unit can calculate an index of the difference between the robot's postures based on the combination as an index associated with the action time.
[0013] In addition, the search unit can calculate the maximum value of the difference obtained by dividing the rotation angle of each joint of the robot by the maximum value of the rotation speed of each joint as an index of the difference based on the robot's posture.
[0014] Additionally, the search unit can generate a graph including nodes and edges, with the edges assigned metrics associated with the action time, and use the graph to search for a sequence of combinations with the shortest action time for the robot, where each node corresponds to a combination, and the edges are connected to nodes corresponding to combinations that can migrate between object points.
[0015] Additionally, the acquisition unit can acquire surrounding information and specification information. The surrounding information shows the environment around which the robot performs its work, and the specification information also includes the robot's dynamic information and shape information. The search unit determines nodes that, based on the surrounding information, the specification information, and the robot's posture, are inferred to be unavoidably interfering with the surrounding environment in the path between the robot's postures corresponding to the nodes, as nodes corresponding to the combination that cannot migrate between the object points.
[0016] Additionally, the search unit may not generate nodes at the object point corresponding to the combination of the robot's postures that interfere with the surrounding environment.
[0017] In addition, the search unit calculates the actual motion time of the robot between the robot's poses corresponding to the nodes connected by the edges contained in the route of the graph corresponding to the sequence searched, updates the weight of the edges between the nodes with the calculated actual motion time, and repeatedly searches for the sequence with the shortest motion time until a sequence identical to the previously searched sequence is found.
[0018] The search unit can calculate the actual action time as the robot's action time when it moves at a set speed or acceleration / deceleration between the robot's postures corresponding to the nodes, avoiding interference between the robot and the surrounding environment.
[0019] Additionally, the target point may include the work point where the gripper grasps or releases the workpiece and the action change point where the robot's direction of motion changes.
[0020] Furthermore, the robot posture determination method disclosed herein is as follows: an acquisition unit acquires job information related to a task performed by a robot having a gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and a workpiece held by the gripper, multiple candidate workpiece posture information showing postures that the workpiece can take, and specification information including the robot's kinematic information; a search unit assigns each combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the posture of the robot corresponding to the posture of the gripper to an object point among multiple object points on the path of the robot performing the job, and searches for a sequence of combinations with the shortest robot movement time from a sequence of combinations that can migrate between the object points based on an index associated with the robot's movement time between the robot's postures, wherein the gripper posture is obtained based on the job information, the gripping information, and the workpiece posture information, and the robot posture is obtained based on the gripper posture and the kinematic information.
[0021] Furthermore, the robot posture determination program disclosed herein is a program for enabling a computer to function as an acquisition unit and a search unit. The acquisition unit acquires job information related to a task performed by a robot with a gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and a workpiece held by the gripper, multiple candidate workpiece posture information showing the postures that the workpiece can take, and specification information including the robot's kinematic information. The search unit assigns each combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the posture of the robot corresponding to the gripper posture to an object point among multiple object points on the path of the robot performing the job, and searches for a sequence of combinations with the shortest robot movement time from a sequence of combinations that can migrate between the object points based on an index associated with the robot's motion time between the robot postures. The gripper posture is obtained based on the job information, the gripping information, and the workpiece posture information, and the robot posture is obtained based on the gripper posture and the kinematic information.
[0022] Invention Effects
[0023] According to the robot posture determination apparatus, method and procedure disclosed herein, the optimal robot posture can be efficiently determined by including the gripping state of the workpiece. Attached Figure Description
[0024] Figure 1 This is a diagram used to illustrate the general outline of each implementation method.
[0025] Figure 2 This is a block diagram showing the hardware configuration of a robot posture determination device.
[0026] Figure 3 This is a block diagram illustrating an example of the functional configuration of a robot posture determination device.
[0027] Figure 4 It is a diagram used to illustrate control information.
[0028] Figure 5 It is a diagram used to illustrate the workpiece's posture information.
[0029] Figure 6 This is an example diagram showing a view of robot poses determined relative to a certain gripper posture.
[0030] Figure 7 It is a graph used to illustrate the generation of charts and the search for the shortest path.
[0031] Figure 8 It is a diagram used to illustrate the combination of candidate workpiece poses, candidate gripper poses, and candidate robot poses corresponding to a node.
[0032] Figure 9 This is a flowchart illustrating the robot pose determination process in the first embodiment.
[0033] Figure 10 This is a diagram used to illustrate the search for the shortest path in the second embodiment.
[0034] Figure 11 This is a flowchart illustrating the robot pose determination process in the second embodiment. Detailed Implementation
[0035] Hereinafter, an example of an embodiment of the present disclosure will be described with reference to the accompanying drawings. It should be noted that in the various drawings, the same or equivalent components and parts are labeled with the same reference numerals. Furthermore, for ease of explanation, the dimensions and scale of the drawings are enlarged and may sometimes differ from the actual scale.
[0036] <Summary of each implementation>
[0037] First, a summary of each of the embodiments detailed below will be provided.
[0038] like Figure 1 As shown, the robot posture determination devices according to various embodiments determine the robot's posture at each object point when a robot with a robotic arm is performing a workpiece handling operation. It should be noted that the robotic arm is an example of a gripper portion of the disclosed technology. Figure 1The example illustrates a pick-and-place operation where a robotic arm holds (picks up) a workpiece placed on worktable A and places it on worktable B. More specifically, it is an operation where, after holding the workpiece on worktable A, the robotic arm rises by linear movement, moves towards worktable B, and then descends by linear movement to place the workpiece on worktable B.
[0039] Object points include the work points where the robot arm performs the operation of grasping or releasing the workpiece. Figure 1 The white rhombus in the image) and the motion change point where the robot's motion direction changes ( Figure 1 The object point is determined by its coordinates (x, y, z) in the world coordinate system. It should be noted that, along the path illustrating the robot's movements, interference avoidance points are also set to prevent interference with obstacles. Figure 1 (The black rhombus in the image). However, in the following embodiments, the robot's posture at the interference point is determined by path planning that automatically determines the path between object points, so that the interference point is not included in the object point.
[0040] The robot pose determination devices described in the following embodiments determine the robot pose at each object point in a manner that minimizes the action time when the robot moves along a path via the object points as described above.
[0041] In the following embodiments, the case of a vertically articulated robot with six degrees of freedom required for movement in three-dimensional space will be described. More specifically, the robot is constructed by connecting multiple links, and a manipulator is mounted on the robot's fingertip. The connection between the links is called a joint. Furthermore, the reference position of the robot's fingertip (the side with the manipulator) is called the TCP (Tool Center Point).
[0042] Additionally, the robot's pose is defined by a sequence (θ) of the values (rotation angles) of each joint from the first joint (joint J1) to the Nth joint (joint JN, where N is the number of joints in the robot) when the TCP is assumed to be in a specified position (x, y, z) and pose (roll, pitch, yaw). J1 θ J2 , …, θ JN () indicates. It should be noted that in the following embodiments, the numbers from the robot's base side toward the fingertip are J1, J2, ... Furthermore, the path is obtained by arranging the robot's posture at each moment in a time sequence when the TCP moves from any starting point to the ending point. Adding information about the speed and acceleration / deceleration that cause the posture change to this path yields motion information. The following describes each embodiment in detail.
[0043] <First Implementation>
[0044] Figure 2 This is a block diagram illustrating the hardware configuration of the robot posture determination device 10 according to the first embodiment. Figure 2 As shown, the robot posture determination device 10 includes a CPU (Central Processing Unit) 12, a memory 14, a storage device 16, an input device 18, an output device 20, a storage medium reading device 22, and a communication I / F (Interface) 24. All components are connected to each other via a bus 26 in a manner enabling communication.
[0045] The storage device 16 stores a robot pose determination program for performing the robot pose determination processing described later. The CPU 12 is a central processing unit that executes various programs or controls various components. That is, the CPU 12 reads the program from the storage device 16 and uses the memory 14 as its working area to execute the program. The CPU 12 performs control and various arithmetic processes on the aforementioned components according to the program stored in the storage device 16.
[0046] The memory 14 consists of RAM (Random Access Memory) and serves as temporary storage for programs and data in the working area. The storage device 16 consists of ROM (Read Only Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), etc., and stores various programs and data, including the operating system.
[0047] Input device 18 is, for example, a keyboard, mouse, or other device used for various inputs. Output device 20 is, for example, a monitor, printer, or other device used for outputting various information. Alternatively, a touch panel display can be used as an input device 18 while also functioning as an output device 20.
[0048] The storage medium reading device 22 performs tasks such as reading data from various storage media, including CD (Compact Disc)-ROM, DVD (Digital Versatile Disc)-ROM, Blu-ray disc, and USB (Universal Serial Bus) memory, and writing data to the storage media. The communication I / F24 is an interface for communicating with other devices, using standards such as Ethernet, FDDI, and Wi-Fi.
[0049] Next, the functional configuration of the robot posture determination device 10 according to the first embodiment will be described. Figure 3 This is a block diagram illustrating an example of the functional configuration of the robot posture determination device 10. (Example) Figure 3 As shown, the robot posture determination device 10 includes an acquisition unit 32, a generation unit 34, and a search unit 36 as functional components. The generation unit 34 and the search unit 36 are examples of the "search unit" of this disclosure. Each functional component is implemented by the CPU 12 reading the robot posture determination program stored in the storage device 16 and executing it in the memory 14. In addition, the graph 38 generated by the generation unit 34 is stored in a designated storage area of the robot posture determination device 10.
[0050] The acquisition unit 32 acquires operation information, handling information, workpiece posture information, robot specification information, and surrounding information.
[0051] The job information includes the type of job, the order of the job, the workpiece used in the job, and information such as which part of the robot arm is holding which part of the workpiece and the holding status.
[0052] Holding information comprises multiple candidate pieces of information indicating the relative positional relationship between the robot and the workpiece held by the robot. Specifically, for example... Figure 4 As shown, the gripping information is the relative coordinates (x, y, z) and relative posture (roll, pitch, yaw) of the TCP relative to the workpiece when the robot grips it (hereinafter referred to as "gripping posture"). The gripping information acquired by the acquisition unit 32 is a list of gripping information regarding multiple gripping postures. Figure 4 The example shows three grip postures (grip posture 1, 2, 3), but the list contains grip information for many more grip postures (e.g., dozens of modes).
[0053] Workpiece posture information refers to the stable posture that a workpiece can adopt when it is placed arbitrarily on a workbench or other similar surface. Figure 5 An example of a workpiece posture (workpiece posture 1, 2, 3) is shown. Workpiece posture information is represented, for example, by the degrees of freedom of posture (roll, pitch, yaw). For example, in... Figure 5 In the case of workpiece posture 1 shown, roll and pitch are fixed at 0°, and yaw is represented by the workpiece posture information of free rotation. Alternatively, workpiece posture information can be determined for each posture obtained by changing a specified angle each time the rotation angle of the axis that allows free rotation is changed.
[0054] Robot specifications include kinematic information showing the connections between links, the rotation axes of the links, and other structural details; dynamic information such as the weight of each link to determine its speed during movement; and shape information for each link. It should be noted that shape information can be, for example, 3D data such as CAD (Computer-Aided Design) data.
[0055] Surrounding information refers to information about the robot's surrounding environment during operation, including the configuration and shape of obstacles, etc. Surrounding information can be, for example, CAD data or 3D data measured by a 3D data measurement device.
[0056] The operation information, gripping information, workpiece posture information, robot specification information, and peripheral information are input to the robot posture determination device 10 via the input device 18, the storage medium reading device 22, or the communication I / F 24. The acquisition unit 32 provides the acquired operation information, gripping information, workpiece posture information, robot specification information, and peripheral information to the generation unit 34 and the search unit 36 respectively.
[0057] The generation unit 34 generates a graph of the robot's pose at each object point to search for the shortest action time. The graph consists of multiple nodes corresponding to each object point, multiple edges connecting the nodes corresponding to the object points, and weights assigned to the edges.
[0058] Specifically, the generation unit 34 determines multiple candidates for the workpiece pose for each object point. The candidates for the workpiece pose are as follows: Figure 5 The workpiece posture information shown refers to any one of the workpiece postures shown.
[0059] In addition, the generation unit 34 determines multiple candidate gripper postures for each object point. The candidate gripper postures are candidate postures of the robot arm that holds the workpiece. Relative to a certain workpiece posture, the robot arm's holding posture is as follows: Figure 4 As shown, there are multiple TCPs. More specifically, the generation unit 34 determines the relative posture of the TCP with respect to the workpiece based on the operation information and gripping information for each object point and for each workpiece posture. Then, the generation unit 34 sets the position of the TCP to the position of the object point and sets the posture of the TCP to the posture after converting the determined relative posture of the TCP to the world coordinate system to determine the gripper posture.
[0060] Furthermore, the generation unit 34 determines multiple candidate robot poses. A robot pose is a pose corresponding to the gripper pose that holds the workpiece, obtained based on the gripper pose and kinematic information. Specifically, the generation unit 34 determines the robot pose, i.e., the values of each joint, based on the TCP position and pose using inverse kinematics. Multiple robot poses exist relative to a single gripper pose. Figure 6The image shows an example of a robot's posture determined relative to a particular gripper posture. Figure 6 In the example shown, the values of joints J1 to J3 have four variations, and the combinations of J4 to J6 have six variations, resulting in a total of 24 possible robot pose patterns. Regarding the six variations of the J4 to J6 combinations, the robot poses appear identical within the same group (A or B), but the values of J4 to J6 differ. Figure 6 In the example, between group A and group B, the protruding part of the robot ( Figure 6 The position of the dotted line in the text is different.
[0061] like Figure 7 As shown in the upper section of the figure, the generation unit 34 generates nodes corresponding to combinations of candidate workpiece poses, candidate gripper poses, and candidate robot poses determined for each object point. Figure 7 In the example, the circle acts as a node. Additionally, for example, as... Figure 8 As shown by the dashed lines, a combination is formed by selecting one candidate from the candidates for workpiece posture, gripper posture, and robot posture, corresponding to a node. Additionally, in... Figure 7 In the example, it will be with an object point ( Figure 7 The node groups corresponding to the white or shaded rhombuses in the diagram are indicated by dashed circles.
[0062] Furthermore, the generation unit 34 determines whether the robot interferes with the surrounding environment (hereinafter also referred to as "obstacles") based on the robot's pose, surrounding information, and the robot's shape information contained in the robot's specifications. If interference is determined to have occurred, the generation unit 34 does not generate a node corresponding to the combination including the robot's pose. For example, when in... Figure 7 In the case where the robot is in a pose and the robot is interfering with surrounding obstacles, the generation unit 34 deletes the node corresponding to the node shown by the dashed line in the upper part of the figure.
[0063] like Figure 7 As shown in the middle section of the diagram, the generation unit 34 generates edges that connect nodes corresponding to combinations capable of migrating between object points. It should be noted that the generation unit 34 generates edges (in the direction from the start point of the robot's movement towards the end point) Figure 7 The solid arrows in the diagram connect the two nodes. That is, the node corresponding to the object point on the starting point side (hereinafter referred to as the "From node") becomes the starting point of the edge, and the node corresponding to the object point on the ending point side (hereinafter referred to as the "To node") becomes the ending point of the edge.
[0064] As a criterion for determining whether a combination can migrate between object points, the generation unit 34 determines whether the gripping postures are the same. The gripping posture is determined based on the workpiece posture and gripper posture included in the combination. If the gripping postures are different, the generation unit 34 determines that the combination cannot migrate and does not generate edges between the nodes corresponding to that combination. This is because, since a workpiece once gripped by the robot arm will not be re-gripped during the robot's movement, the same gripping posture, i.e., the way the robot arm grasps the workpiece, is used as a restriction for edge connections.
[0065] Furthermore, as a criterion for determining whether a combination can migrate between object points, the generation unit 34 determines whether the robot's posture is identical when the robot's movement between the corresponding robot postures, i.e., the migration of the TCP position, is a linear movement. For example, the generation unit 34 can determine whether two robot postures are identical by considering the joint value and the relative relationship between the link postures. This is because, in multi-joint robots, the linear movement of the TCP has the characteristic that the robot posture must be within the same shape.
[0066] Furthermore, as a determination of whether a combination is capable of migration between object points, the generation unit 34 determines, based on surrounding information and the robot's shape information, whether unavoidable interference with the surrounding environment is possible during the robot's movements between postures. For example, if a part of the robot in the robot posture corresponding to the From node is close to an obstacle, the generation unit 34 can determine that unavoidable interference with the surrounding environment is possible. In this case, since it is difficult to change the robot posture from the robot posture corresponding to the From node, it is determined that unavoidable interference may occur when moving to the robot posture corresponding to the To node. Whether it is a close state can be set as if the shortest distance between the robot and the obstacle is less than a predetermined value. In addition, a part of the robot can be the part of the robot close to the base. This is because the closer the part close to the base is to the obstacle, the more difficult it is to change the robot posture from that state. This determination is limited by excluding unnecessary edges in the graph used to search for the path with the shortest final movement time. It should be noted that, here, it is possible to determine whether unavoidable interference has occurred without calculating the actual path between object points through route planning or the like. As a result, the graph generation time is shortened, and the search time for the path with the shortest movement time is also shortened.
[0067] It should be pointed out that, in Figure 7 In the middle section of the diagram, dashed arrows indicate the situation where no edges are generated between nodes due to the aforementioned restrictions.
[0068] Furthermore, the generation unit 34 assigns an index to each edge that relates to the robot's motion time between the robot postures corresponding to the nodes connected by the edges. As an index related to motion time, the generation unit 34 does not calculate the actual motion time through route planning or similar methods, but instead calculates an estimated motion time that can be obtained using simple methods. For example, the generation unit 34 calculates an index based on the difference between the robot postures corresponding to the nodes as the estimated motion time. More specifically, the generation unit 34 calculates the maximum value obtained by dividing the difference in the rotation angles of each joint of the robot by the maximum value of the rotational speed of each joint as the estimated motion time.
[0069] For example, the generation unit 34 may disregard avoiding interference actions and instead assume that it always moves at maximum speed from the robot pose corresponding to the From node to the robot pose corresponding to the To node through joint interpolation, and calculate the estimated motion time as shown below.
[0070] Nf: Robot pose of the From node
[0071] Nf={J f1 J f2 J f3 J f4 J f5 J f6}
[0072] Nt: Robot pose of the To node
[0073] Nt={J t1 J t2 J t3 J t4 J t5 J t6}
[0074] Vmax j The maximum speed of the robot's j-th joint
[0075] t e Estimate action time
[0076] t e (Nf, Nt)
[0077] =max((J fj -J tj ) / Vmax j |j=1,…,6)
[0078] It should be noted that the acceleration and deceleration time of the robot when performing the action is not considered in the above estimated motion time. However, the acceleration time up to the maximum speed and the deceleration time up to the stopping speed can be easily calculated and included in the calculation of the estimated motion time.
[0079] The generation unit 34 assigns the estimated action time calculated as described above as a weight to each edge. Furthermore, the generation unit 34 generates a virtual start node before the object point corresponding to the start point of the action, and generates edges connecting the start node to each node corresponding to the object point corresponding to the start point of the action. Similarly, the generation unit 34 generates a virtual target node after the object point corresponding to the end point of the action, and generates edges connecting each node corresponding to the object point corresponding to the end point of the action and the target node. The generation unit 34 assigns the same weight to each edge connected to the start node and the target node. This weight can be set to a very small value to prevent it from affecting the action time of each path. For example, it can be set to 1 / 10 of the minimum estimated action time assigned to the edge in the graph. The generation unit 34 stores the generated graph 38 in a specified storage area.
[0080] The search unit 36 uses graph 38 to search for the sequence of robot poses with the shortest motion time among the sequences of robot poses at each object point. For example, the search unit 36 searches for the path (hereinafter referred to as the "shortest path") containing the path from the starting node to the target node in graph 38 that has the shortest sum of estimated motion times assigned to the edges of the path. In such a shortest path search, for example, Dijkstra's algorithm can be applied. Figure 7 In the lower part of the diagram, the shortest path found is shown in thick lines. The search unit 36 outputs the sequence of robot poses corresponding to each node contained in the shortest path as the sequence of robot poses with the shortest motion time.
[0081] Next, the function of the robot posture determination device 10 according to the first embodiment will be explained. Figure 9 This is a flowchart illustrating the robot pose determination process executed by the CPU 12 of the robot pose determination device 10. The CPU 12 reads the robot pose determination program from the storage device 16, expands it into the memory 14, and executes it. Thus, the CPU 12 functions as a component of the robot pose determination device 10, performing its respective functions. Figure 9 The robot's posture shown determines the processing.
[0082] In step S10, the acquisition unit 32 acquires the operation information, gripping information, workpiece posture information, robot specification information, and surrounding information, and provides them to the generation unit 34.
[0083] Next, in step S12, the generation unit 34 determines multiple candidates for workpiece posture, multiple candidates for gripper posture, and multiple candidates for robot posture for each object point. Then, the generation unit 34 generates nodes corresponding to combinations of the candidates for workpiece posture, gripper posture, and robot posture determined for each object point. It should be noted that if the generation unit 34 determines, based on the robot posture, surrounding information, and robot shape information, that the robot is interfering with surrounding obstacles, it deletes the node corresponding to that robot posture.
[0084] Next, in step S14, the generation unit 34 generates edges that connect nodes corresponding to combinations that can migrate between object points, under the constraints of the same holding posture, the same shape of robot posture when moving in a straight line, and no unavoidable interference with the surrounding environment.
[0085] Next, in step S16, the generation unit 34 estimates the motion time by calculating, for example, the maximum value obtained by dividing the difference in the rotation angle of each joint of the robot by the maximum value of the rotation speed of each joint between the robot poses corresponding to the nodes connected by the edge. Then, the generation unit 34 assigns the calculated estimated motion time as the weight of the edge connecting the nodes.
[0086] Next, in step S18, generator 34 generates a start node and a target node. Additionally, generation unit 34 generates edges connecting the start node and each node corresponding to the object point corresponding to the start point of the action, and edges connecting each node corresponding to the object point corresponding to the end point of the action and the target node. Then, generation unit 34 assigns the same and minimal weight to each edge connected to the start node and the target node. Thus, graph 38 is generated.
[0087] Next, in step S20, the search unit 36 searches for the shortest path, i.e., the path with the shortest sum of estimated motion times assigned to the edges of the path from the starting node to the target node, in the graph 38, for example, using Dijkstra's algorithm. Then, in step S22, the search unit 36 outputs the sequence of robot poses corresponding to each node in the searched shortest path as the sequence of robot poses with the shortest motion time, and ends the robot pose determination process.
[0088] As explained above, the robot pose determination device according to the first embodiment acquires job information, gripping information, workpiece pose information, and robot specification information. Then, the robot pose determination device generates a graph including nodes corresponding to combinations of candidate workpiece poses, candidate gripper poses, and candidate robot poses, and edges connecting nodes corresponding to combinations capable of migrating between object points. Furthermore, the robot pose determination device assigns weights to the edges based on the estimated motion time of the robot between robot poses corresponding to the nodes connected by the edges. Then, the robot pose determination device uses the graph to search for and output the sequence of robot poses at each of the multiple object points that has the shortest estimated motion time. In this way, by establishing a correspondence between combinations of workpiece poses, gripper poses, and robot poses and nodes in the graph used for searching the shortest path, the gripping state of the workpiece can also be considered. Furthermore, by considering the limitation of the similarity in the form of gripping poses and robot poses when connecting nodes with edges, the generation of unnecessary edges can be suppressed, thus simplifying the generated graph. Furthermore, instead of assigning actual motion times between robot poses corresponding to nodes connected by edges, the estimated motion times using the differences between robot poses are assigned as edge weights, thereby reducing the computation time from generating the graph to finding the shortest path. Therefore, the robot pose determination apparatus according to the first embodiment can efficiently determine the optimal robot pose, including the workpiece gripping state.
[0089] Furthermore, regardless of user experience, intuition, or skill level, the user can determine the sequence of robot postures with the shortest possible action time. Therefore, in the construction of robot systems, startup time can be reduced and reliance on skilled technicians decreased. Consequently, the creation or modification of robot systems becomes easier, increasing productivity.
[0090] Furthermore, the robot pose determination device according to the first embodiment acquires peripheral information showing the surrounding environment in which the robot performs its work, and does not generate corresponding nodes and edges in the graph when the robot interferes with surrounding obstacles or the like. This simplifies the generated graph by suppressing the generation of unnecessary nodes and edges, and enables efficient shortest path searching.
[0091] <Second Implementation>
[0092] Next, the second embodiment will be described. It should be noted that in the robot posture determination device according to the second embodiment, the same reference numerals are used for the same components as in the robot posture determination device 10 according to the first embodiment, and detailed descriptions are omitted. Furthermore, in the common functional configurations at the last two digits of the reference numerals between the first and second embodiments, detailed descriptions of common functions are omitted. Furthermore, the hardware configuration of the robot posture determination device according to the second embodiment is similar to... Figure 2 The hardware configuration of the robot posture determination device 10 involved in the first embodiment shown is the same, so the description is omitted.
[0093] In the robot pose determination device 10 according to the first embodiment, the case where estimated motion times are used as the weights of edges in the graph is described. In the second embodiment, a method for searching the shortest path with higher accuracy while updating the edge weights to more accurate motion times is described.
[0094] The functional configuration of the robot posture determination device 210 according to the second embodiment will be described. For example... Figure 3 As shown, the robot pose determination device 210 includes an acquisition unit 32, a generation unit 34, and a search unit 236 as its functional components. Each functional component is implemented by the CPU 12 reading the robot pose determination program stored in the storage device 16 and executing it in the memory 14. In addition, the graph 38 generated by the generation unit 34 is stored in a designated storage area of the robot pose determination device 210.
[0095] First, such as Figure 10 As shown in the upper part of the figure, the search unit 236 searches for the shortest path from the graph generated by the generation unit 34, similarly to the search unit 36 in the first embodiment. Then, the search unit 236 calculates the actual robot motion time (hereinafter referred to as "actual motion time") between the robot postures corresponding to the nodes included in the searched shortest path, as shown in the figure above. Figure 10 As shown in the middle section of the diagram, the weights of the edges between nodes are updated using the calculated actual action times. Figure 10 In the diagram, the double-lined arrows indicate edges where the weights have been updated from the estimated action time to the actual action time.
[0096] As for the actual motion time, the search unit 236, while avoiding interference between the robot and its surrounding environment, determines the speed and acceleration / deceleration during the motion through joint interpolation between the robot poses corresponding to the nodes, and calculates the motion time when the robot performs the motion at the determined speed and acceleration / deceleration. For example, the search unit 236 plans the path between the robot poses corresponding to the nodes using RRT (Rapidly-Exploring Random Tree) or PRM (Probabilistic Roadmap Method). Then, the search unit 236 can calculate the motion time based on the planned path. If no path that avoids interference with the surrounding environment is found as the path between the robot poses corresponding to the nodes during the calculation of the actual motion time, the search unit 236 deletes the edge between that node. Figure 10 In the middle section of the diagram shown, the dashed ellipse indicates that the edge has been deleted.
[0097] In addition, such as Figure 10 As shown in the diagram below, the search unit 236 searches for the shortest path using a graph updated with edge weights. The search unit 236 repeatedly updates the edge weights and searches for the shortest path using actual motion times until it finds the same shortest path as the previously found one. The estimated motion time does not consider actions to avoid interference, as well as accurate speed and acceleration / deceleration; the actual motion time takes these into account. Therefore, the actual motion time must be greater than or equal to the estimated motion time. Thus, if a shortest path is found that is the same as the previously found one while repeatedly searching for the shortest path and updating the edge weights from the estimated motion time to the actual motion time, it indicates that there is no shorter shortest path with a shorter motion time. Therefore, the shortest path search ends at this stage. The search unit 236 outputs a sequence of robot poses corresponding to each node in the shortest path at the time the shortest path search ends, as the sequence of robot poses with the shortest motion time.
[0098] Next, the operation of the robot posture determination device 210 according to the second embodiment will be explained. Figure 11 This is a flowchart illustrating the robot pose determination process executed by the CPU 12 of the robot pose determination device 210. The CPU 12 reads the robot pose determination program from the storage device 16, expands it into the memory 14, and executes it. Thus, the CPU 12 performs its functions as a component of the robot pose determination device 210, executing... Figure 11 The robot's posture shown determines the processing.
[0099] In step S200, a graph generation process is performed. This graph generation process is related to the robot pose determination process in the first embodiment. Figure 9 Steps S10 to S18 are the same. Next, in step S202, the search unit 236 searches for the shortest path P1 from the graph 38 generated in step S200 above.
[0100] Next, in step S204, the search unit 236 calculates the actual robot motion time between the robot poses corresponding to the nodes included in the shortest path P1, and updates the weights of the edges between the nodes from the estimated motion time to the calculated actual motion time. Next, in step S206, the search unit 236 searches for the shortest path P2 from the updated graph 38 with the edge weights.
[0101] Next, in step S208, the search unit 236 determines whether the shortest path P1 and the shortest path P2 are the same. If P1 ≠ P2, the process proceeds to step S210, where the search unit 236 sets the shortest path P2 found in step S206 as the shortest path P1 and returns to step S204. On the other hand, if P1 = P2, the process proceeds to step S212.
[0102] In step S212, the search unit 236 outputs the sequence of robot poses corresponding to each node contained in the shortest path P1 as the sequence of robot poses with the shortest action time, and ends the robot pose determination process.
[0103] As explained above, the robot pose determination device according to the second embodiment repeatedly searches for the shortest path while updating the weights of the edges contained in the shortest path from the estimated motion time to the actual motion time. Therefore, compared to the case where all edge weights are set to the actual motion time, the computation time from generating the graph to finding the shortest path can be shortened. Furthermore, compared to the case where all edge weights are set to the estimated motion time, the sequence of robot poses with the shortest motion time can be determined with higher accuracy.
[0104] It should be noted that in the above embodiments, the case where the output is a sequence of robot poses corresponding to the nodes contained in the shortest path found has been described. However, it is also possible to output the workpiece pose information corresponding to that node as well. Thus, the workpiece pose, for example, when the workpiece is placed on the worktable, can be determined together with the sequence of robot poses with the shortest motion time.
[0105] In addition, the publicly available technology can be applied to offline teaching tools for robots, simulation tools such as CPS (Cyber-Physical System), and CAD.
[0106] Alternatively, the robot posture determination processing described in the above embodiments, which involves the CPU reading and executing software (programs), can also be performed by various processors other than the CPU. Examples of such processors include FPGAs (Field-Programmable Gate Arrays), which allow for post-manufacturing changes to the circuitry of PLDs (Programmable Logic Devices), and ASICs (Application Specific Integrated Circuits), which are processors with circuitry designed specifically for performing particular processing. Furthermore, the robot posture determination processing can be performed by one of these various processors, or by a combination of two or more processors of the same or different types (e.g., multiple FPGAs, or a combination of a CPU and an FPGA). More specifically, the hardware structure of these various processors is a circuit composed of circuit elements such as semiconductor components.
[0107] Furthermore, while the above embodiments describe the method of pre-storing (installing) the robot posture determination program in a storage device, this is not a limitation. The program may also be provided in the form of storage media such as CD-ROM, DVD-ROM, Blu-ray disc, or USB memory. Alternatively, the program may be downloaded from an external device via a network.
[0108] All documents, patent applications and technical standards described in this specification are referenced in this specification to the same extent as those specifically and individually described and cited by reference.
[0109] Explanation of reference numerals in the attached figures
[0110] 10, 210: Robot posture determination device; 12: CPU; 14: Memory; 16: Storage device; 18: Input device; 20: Output device; 22: Storage medium reading device; 24: Communication I / F; 26: Bus; 32: Acquisition unit; 34: Generation unit; 36, 236: Search unit; 38: Chart.
Claims
1. A robot posture determination device, comprising: The acquisition unit acquires job information related to the job performed by the robot with the gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and the workpiece held by the gripper, multiple candidate workpiece posture information showing the postures that the workpiece can take, and specification information including the kinematic information of the robot. as well as The search unit correlates the combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the robot posture corresponding to the gripper posture with each of a plurality of object points on the path of the robot performing the task. Based on an index associated with the robot's motion time between the robot postures, the search unit searches for a sequence of combinations with the shortest robot motion time from the sequence of combinations that can migrate between the object points. The gripper posture is obtained based on the task information, the gripping information, and the workpiece posture information. The robot posture is obtained based on the gripper posture and the kinematic information. The target points include the work points where the gripper grasps or releases the workpiece and the action change points where the robot's direction of motion changes.
2. The robot posture determination device according to claim 1, wherein, If the gripping posture determined based on the workpiece posture information and the gripper posture of the combination are different, the search unit determines that the combination cannot be migrated between the object points.
3. The robot posture determination device according to claim 1 or 2, wherein, If the robot's movement between the robot's poses in the combination is a linear movement and the poses of the robots in the combination are different, the search unit determines that the combination cannot migrate between the object points.
4. The robot posture determination device according to claim 1, wherein, The search unit calculates an index of the difference between the robot's poses based on the combination as an index associated with the action time.
5. The robot posture determination device according to claim 4, wherein, The search unit calculates the maximum value obtained by dividing the difference in the rotation angle of each joint of the robot by the maximum value of the rotation speed of each joint, and uses this maximum value as an index of the difference based on the robot's posture.
6. The robot posture determination device according to claim 1, wherein, The search unit generates a graph that includes nodes and edges, and assigns an index to the edges that is associated with the action time. The graph is used to search for a sequence of combinations that have the shortest action time for the robot. Each node corresponds to a combination, and each edge is connected to a node corresponding to a combination that can migrate between object points.
7. The robot posture determination device according to claim 6, wherein, The acquisition unit acquires surrounding information and specification information. The surrounding information indicates the environment in which the robot operates, and the specification information also includes the robot's dynamic information and shape information. The search unit determines nodes that, based on the surrounding information, the specification information, and the robot's posture, are inferred to be nodes in the path between the robot's postures corresponding to the nodes, where unavoidable interference occurs with the surrounding environment. These nodes are identified as nodes corresponding to the combination that cannot migrate between the object points.
8. The robot posture determination device according to claim 7, wherein, The search unit does not generate nodes at the target point corresponding to the combination of the robot's postures that interfere with the surrounding environment.
9. The robot posture determination device according to claim 7 or 8, wherein, The search unit calculates the actual motion time of the robot between the robot's poses corresponding to the nodes connected by the edges contained in the route of the graph corresponding to the sequence searched. It updates the weights of the edges between the nodes with the calculated actual motion time and repeatedly searches for the sequence with the shortest motion time until it finds a sequence that is the same as the sequence searched last time.
10. The robot posture determination device according to claim 9, wherein, The search unit calculates the actual action time as the time taken when the robot moves at a set speed or acceleration / deceleration between the robot's postures corresponding to the nodes, avoiding interference between the robot and the surrounding environment.
11. A robot pose determination method, wherein in the robot pose determination method, The acquisition unit acquires job information related to the job performed by the robot with the gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and the workpiece held by the gripper, multiple candidate workpiece posture information showing the postures that the workpiece can take, and specification information including the kinematic information of the robot. The search unit correlates the combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the robot posture corresponding to the gripper posture with each of a plurality of object points on the path of the robot performing the task. Based on an index associated with the robot's motion time between the robot postures, the search unit searches for a sequence of combinations with the shortest robot motion time from the sequence of combinations that can migrate between the object points. The gripper posture is obtained based on the task information, the gripping information, and the workpiece posture information. The robot posture is obtained based on the gripper posture and the kinematic information. The target points include the work points where the gripper grasps or releases the workpiece and the action change points where the robot's direction of motion changes.
12. A computer program product comprising a robot pose determination program, said robot pose determination program being used to enable a computer to function as an acquisition unit and a search unit. The acquisition unit acquires job information related to the job performed by the robot with the gripper, multiple candidate gripping information showing the relative positional relationship between the gripper and the workpiece held by the gripper, multiple candidate workpiece posture information showing the postures that the workpiece can take, and specification information including the kinematic information of the robot. The search unit correlates each combination of the workpiece posture information, the posture of the gripper holding the workpiece, and the robot posture corresponding to the gripper posture with each of a plurality of object points on the path of the robot performing the task. Based on an index associated with the robot's motion time between the robot postures, the search unit searches for a sequence of combinations with the shortest robot motion time from the sequence of combinations that can migrate between the object points. The gripper posture is obtained based on the task information, the gripping information, and the workpiece posture information. The robot posture is obtained based on the gripper posture and the kinematic information. The target points include the work points where the gripper grasps or releases the workpiece and the action change points where the robot's direction of motion changes.