Trajectory plan system
The trajectory generation system addresses the manual burden in arm robot trajectory planning by calculating interference regions and planning trajectories that avoid non-movable regions, thereby reducing arm operation time and enhancing automation.
Patent Information
- Application Number
- JP2023183792
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-26
- Publication Date
- 2025-05-13
AI Technical Summary
Existing trajectory planning systems for arm robots require manual input of position and orientation information for each point along the robot's path, leading to increased user burden and a need for automated trajectory generation without user instruction.
A trajectory generation system that includes an interference region calculator to determine if the non-movable regions and the path between start and end points interfere, and a trajectory planning section that generates a trajectory avoiding these non-movable regions based on start and end points information and interference region data.
This approach prevents the generation of trajectories that result in longer arm operation times for arm robots, reducing user burden and increasing efficiency by automating the trajectory planning process.
Smart Images

Figure 2025073217000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a trajectory planning system. [Background technology]
[0002] Conventionally, a trajectory planning device that plans the trajectory of an arm of an arm robot used in a manufacturing plant is known. For example, Patent Document 1 discloses a trajectory plan generating device that generates a trajectory plan that enables stabilization of an object held at the tip of a robot arm. In addition, for example, Patent Document 2 discloses a robot simulation device that can automatically generate a realistic interference avoidance path for a robot regardless of the skill level of an operator. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2021-79482 [Patent Document 2] JP 2015-160277 A Summary of the Invention [Problem to be solved by the invention]
[0004] Incidentally, in a workpiece transport operation using a robot, a user must manually teach a robot control device multiple pieces of robot position and orientation information for each shape of the transported object and each time the arm position, such as the transport start position or end position, changes. At this time, the user teaches multiple pieces of robot position and orientation information for the path between the start and end points, in addition to the robot position and orientation information for each of the start and end points. The multiple pieces of robot position and orientation information for the path between the start and end points need to be positions and orientations that prevent the robot arm from coming into contact with obstacles such as processing machines and work shelves. Therefore, since the burden on the user who teaches the robot position and orientation information is large, there has been a demand for a technology that can automatically generate a robot trajectory without the need for user teaching at each point between the start and end points.
[0005] In Patent Document 1, a search point that has not been searched and has the smallest cost is called a trajectory point P current The current tip orbit point P current The next trajectory point candidate P next Calculate multiple search points such that the trajectory point candidates P next The method for determining whether or not a robot arm having a joint angle in the above-mentioned manner will interfere with an obstacle is described in the patent document 1. In addition, if interference occurs, the method for determining whether or not a trajectory point candidate P next It is described that the above is erased from the hand search data.
[0006] Patent Document 2 describes that a motion path generating unit of a robot simulation device detects whether or not interference occurs between the robot and a surrounding object when a motion path generated based on a simulation is moved to the robot. Patent Document 2 also describes that when interference is detected, a new motion path that does not cause interference is generated based on information on teaching points before and after the occurrence of the interference.
[0007] However, in both Patent Document 1 and Patent Document 2, the presence or absence of interference between the robot and surrounding objects is determined during the generation of the path (trajectory).Then, the search for the next waypoint is performed only around the current position, so the search is local.Therefore, depending on the balance between the direction in which the trajectory is searched and the positions of surrounding objects, etc., there is a possibility that a path (trajectory) that makes the operation time of the arm of the arm robot longer than necessary may be generated.
[0008] The present invention has been made in consideration of the above-mentioned circumstances, and aims to prevent the generation of a trajectory that makes the operation time of the arm of an arm robot longer than necessary. [Means for solving the problem]
[0009] A trajectory generation system according to one aspect of the present invention is a trajectory planning system that plans a trajectory for moving a tip end of an arm robot from a start point to an end point. The trajectory generation system according to one aspect of the present invention includes an interference area calculation unit that determines whether or not a non-movable area, which is an area in which the tip end cannot be positioned or cannot assume a predetermined posture, interferes with an area connecting the start point and the end point prior to planning the trajectory, and calculates an interference area in which interference will occur if it is determined that there is interference, and a trajectory planning unit that plans a trajectory that does not pass through the non-movable area based on facility configuration information indicating configuration information of the arm robot and the facility in which the arm robot operates, information on the start point and the end point, and information on the interference area. Effect of the Invention
[0010] According to at least one aspect of the present invention, it is possible to prevent the generation of a trajectory that causes the operation time of the arm of an arm robot to be longer than necessary. Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]
[0011] [Figure 1] 1 is a schematic diagram of a handling system according to an embodiment of the present invention; [Diagram 2] FIG. 2 is a top view showing a movable area and a non-movable area of the arm robot according to one embodiment of the present invention. [Diagram 3] FIG. 2 is a top view showing a non-movable area of the arm robot according to one embodiment of the present invention. [Figure 4] 2 is a block diagram showing an example of an internal configuration of a control device according to an embodiment of the present invention; FIG. [Diagram 5] FIG. 2 is a diagram showing an example of a data configuration of facility configuration information according to an embodiment of the present invention. [Figure 6] 13 is a diagram showing an example of a data configuration of starting joint angle information according to an embodiment of the present invention; FIG. [Figure 7] 5 is a diagram showing an example of a data configuration of target position and orientation information according to an embodiment of the present invention; FIG. [Figure 8] 11 is a diagram showing an example of a data configuration of relay point position and orientation information according to an embodiment of the present invention; FIG. [Figure 9] 5 is a diagram showing an example of a data configuration of route search condition information according to an embodiment of the present invention; FIG. [Figure 10] 11 is a diagram showing an example of a data configuration of relay point generation condition information according to an embodiment of the present invention; FIG. [Figure 11] 13 is a diagram showing an example of the data configuration of non-movable area information according to an embodiment of the present invention; FIG. [Figure 12] 10 is a diagram showing an example of a data configuration of interference region information according to an embodiment of the present invention; FIG. [Figure 13] FIG. 4 is a diagram showing an example of a data configuration of trajectory information according to an embodiment of the present invention. [Figure 14] 10 is a flowchart showing an example of a procedure of a trajectory generation process by a calculation unit according to an embodiment of the present invention. [Figure 15] 11 is a flowchart illustrating an example of a procedure for a trajectory planning success determination process according to an embodiment of the present invention. [Figure 16] 11 is a diagram showing the correspondence between a current search position to which the path search process is moved in the trajectory planning success determination process and a non-movable area in one embodiment of the present invention. FIG. [Figure 17] 10 is a flowchart illustrating an example of a procedure for a relay point generation process according to an embodiment of the present invention. [Figure 18] FIG. 13 is a diagram showing an example of a trajectory information display screen after execution of a trajectory planning success determination process according to an embodiment of the present invention. [Figure 19] FIG. 13 is a diagram showing an example of a trajectory information display screen after execution of a relay point generation process according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Hereinafter, examples of modes for carrying out the present invention (hereinafter referred to as "embodiments") will be described with reference to the accompanying drawings. The present invention is not limited to the embodiments, and various numerical values in the embodiments are merely examples. In addition, in this specification and drawings, the same components or components having substantially the same functions are given the same reference numerals, and duplicated explanations will be omitted.
[0013] In this embodiment, an example is given in which the trajectory planning system of the present invention is applied to a control device that generates an arm trajectory of an arm robot that performs a handling operation of gripping an unmachined workpiece and setting it in a chuck of a processing machine. Note that the arm robot for which the trajectory planning system of the present invention generates a trajectory is not limited to an arm robot that performs a handling operation. It may be another arm robot, such as a picking robot that moves a workpiece.
[0014] <Handling system overview> First, an overview of a handling system 1 in which an arm robot 20 according to this embodiment operates will be described with reference to Fig. 1. Fig. 1 is a schematic diagram of the handling system 1 in this embodiment. As shown in Fig. 1, the handling system 1 includes a processing machine 10 having a chuck 11 and processing a workpiece W attached to the chuck 11, and a vertical articulated arm robot 20 that grips the workpiece W and transports it to the chuck 11.
[0015] The arm robot 20 includes an arm 21 having six degrees of freedom in total, two for each of the three axes X, Y, and Z, and a hand unit 22 provided at the tip of the arm 21 and capable of gripping a workpiece W. The arm robot 20 grips the workpiece W placed on a table 30 with the hand unit 22, moves it to the chuck 11, and sets it in the chuck 11. After the processing by the processing machine 10 is completed, the machined workpiece W is removed from the chuck 11 and placed on a table 31 shown on the left side of the figure.
[0016] A control device 100 (an example of a trajectory generation system, see FIG. 4) described below is connected to the arm robot 20, and the control device 100 plans a trajectory of the arm 21 of the arm robot 20 and operates the arm robot 20 based on the trajectory plan.
[0017] The trajectory planning of the arm 21 is performed every time the start point or end point is changed, or every time the type of workpiece held by the hand unit 22 is changed, etc. In addition, when the target of the trajectory planning is an AGV (Automated Guided Vehicle) with a robot arm, the stopping position after movement is different each time, so the trajectory plan needs to be generated for each stop.
[0018] <Outline of trajectory planning processing by the control device> Next, an overview of a trajectory planning process by the control device 100 according to this embodiment will be described with reference to Fig. 2 and Fig. 3. Fig. 2 and Fig. 3 are top views showing the non-movable area of the arm robot 20.
[0019] 2 and 3, the hand unit 22 of the arm robot 20 faces the left direction in the figure at the position of the starting point Ps, and faces the downward direction in the figure at the position of the end point Pg. The starting point Ps in FIG. 2 and FIG. 3 is the position of the hand unit 22 when gripping the machined workpiece W attached to the chuck 11 (see FIG. 1), and the end point Pg is the position of the hand unit 22 when the workpiece W is placed on the table 31. In addition, in FIG. 2 and FIG. 3, the range from the upper limit to the lower limit of the joint angle of the joint axis around the Z axis of the robot 20 is the range Ra indicated by the broken line with double arrows. The non-movable area Am1 around the Z axis of the arm robot 20 is indicated by a circle, and the non-movable area Am2 at the rear of the arm robot 20 is indicated by a triangle. The non-movable area Am1 and the non-movable area Am2 are areas where the arm 21 (hand unit 22) of the arm robot 20 cannot be structurally positioned at that position or cannot take a predetermined posture.
[0020] Before starting a search for waypoints that constitute a trajectory, the control device 100 according to this embodiment first determines whether or not the non-movable area Am1 and the non-movable area Am2 exist on the straight line connecting the start point Ps and the end point Pg. In other words, it determines whether or not the non-movable area Am1 and the non-movable area Am2 interfere with the straight line connecting the start point Ps and the end point Pg. In the example shown in FIG. 2, the non-movable area Am1 and the non-movable area Am2 exist on the straight line connecting the start point Ps and the end point Pg. In this case, the control device 100 extracts a linear area where the straight line connecting the start point Ps and the end point Pg overlaps with the non-movable area Am1 and the non-movable area Am2 as an interference area Ari.
[0021] After extracting the interference area Ari, the control device 100 draws a straight line L1 in the direction away from the non-movable area Am1 and the non-movable area Am2 with respect to the interference area Ari, as shown in FIG. 3. The straight line L1 is a perpendicular line to the interference area Ari. Then, the control device 100 sets a relay point Pr at a position on the straight line L1 that is a search radial distance D1 away from the outer periphery of the non-movable area Am1 of the arm robot 20. The search radial distance D1 is a parameter that specifies the resolution of the search range of the via point, and the search range when searching for the next via point at the search position is determined based on the search radial distance D1. An appropriate value is set for the search radial distance D1 based on information such as the size of the arm robot 20 and the width of the narrow space when the arm 21 enters the narrow space.
[0022] According to this embodiment, before starting a search for waypoints that constitute the trajectory, a relay point Pr is set at a globally optimal position based on information on the start point Ps and the end point Pg and information on the non-movable areas Am1 and Am2 of the arm robot 20. Then, the trajectory of the arm 21 is generated using the information on the relay point Pr.
[0023] In the conventional technology, a search position (way point) for generating a trajectory that bypasses the non-movable area Am1, the non-movable area Am2, or an area where interference with an obstacle occurs is searched for, with a priority being given to the direction of the vector V0 from the search position toward the end point Pg. Therefore, in each search radial distance D1 in each search step, a way point is set at a position closest to the end point Pg. That is, the way point is set based on a local search. However, a trajectory generated using such a way point may result in a trajectory that unnecessarily lengthens the operating time of the arm 21.
[0024] On the other hand, in this embodiment, the relay point Pr is set before starting the search for the waypoints that configure the trajectory. In other words, since a local search is not performed during the search for the waypoints, this embodiment can prevent the generation of a trajectory in which the operation time of the arm 21 is unnecessarily long.
[0025] In addition, in the conventional technology, relay points may be set using random numbers in order to generate a route that does not come into contact with obstacles. Patent Document 2 discloses a method of generating a third teaching point as a relay point at a position away from each teaching point before and after the point where interference occurs by a search distance determined by a random number in a search direction determined by a random number.
[0026] However, when random numbers are used, a different route is generated each time a route search is performed, which causes a problem of large fluctuations in the robot operation time. In contrast, in this embodiment, the relay point Pr is set without using random numbers, which prevents large fluctuations in the robot operation time.
[0027] <Internal configuration of the control device> Next, the internal configuration of the control device 100 will be described with reference to Fig. 4. Fig. 4 is a block diagram showing an example of the internal configuration of the control device 100.
[0028] 4, the control device 100 includes an input unit 110, an output unit 120, a storage unit 130, and a calculation unit 140. These units constituting the control device 100 are connected to each other via an internal bus B so as to be able to communicate with each other.
[0029] The input unit 110 is a device for inputting data, commands, etc. to the control device 100, and is composed of, for example, a keyboard, a mouse, and the like. The output unit 120 is a device that outputs orbit information and the like generated by the calculation unit 140, and is composed of, for example, a display that displays an orbit information display screen Sc1 (FIG. 18) or an orbit information display screen Sc2 (FIG. 19) described below, a printer, a smartphone, a tablet PC (Personal Computer), or the like.
[0030] The storage unit 130 is a device that records data input from the input unit 110 and calculation results by the calculation unit 140, and is configured, for example, with an HDD (Hard Disk Drive) or SSD (Solid State Drive). The storage unit 130 stores data necessary for the calculation unit 140 to execute various processes, programs for executing the trajectory generation process of the present invention, and the like. The programs may be stored in a ROM in the calculation unit 140. In other words, the storage unit 130 and the ROM are used as an example of a computer-readable non-transitory recording medium that stores a program executed by a computer.
[0031] The memory unit 130 also has an equipment configuration memory unit 131, a starting joint angle memory unit 132, a target position / posture memory unit 133, a relay point position / posture memory unit 134, a path search condition memory unit 135, a relay point generation condition memory unit 136, a non-movable area memory unit 137, an interference area memory unit 138, and a trajectory memory unit 139.
[0032] The equipment configuration storage unit 131 stores equipment configuration information 200 (see FIG. 5). The equipment configuration information 200 stores configuration information of devices used in the equipment, such as the processing machine 10 and the arm robot 20. The data structure of the equipment configuration information 200 will be described in detail with reference to FIG. 5 described later.
[0033] The start joint angle storage unit 132 stores start joint angle information 300 (see FIG. 6). The start joint angle information 300 is information on the angles of the joints of the arm robot 20 at the time when trajectory planning is started. The data structure of the start joint angle information 300 will be described in detail with reference to FIG. 6 described later.
[0034] The target position / posture information 400 (see FIG. 7) is stored in the target position / posture storage unit 133. The target position / posture information 400 is information indicating a target position / posture of the tip of the arm 21 of the arm robot 20 at the time when trajectory planning is started. The data structure of the target position / posture information 400 will be described in detail with reference to FIG. 7 described later.
[0035] The relay point position and orientation storage unit 134 stores relay point position and orientation information 500 (see FIG. 8). The relay point position and orientation information 500 is information on relay points generated by the relay point generation unit 146 of the calculation unit 140. The data structure of the relay point position and orientation information 500 will be described in detail with reference to FIG. 6 described later.
[0036] The path search condition storage unit 135 stores path search condition information 600. The path search condition information 600 is information indicating path search conditions for the robot that are required when the trajectory planning unit 147 of the calculation unit 140 carries out trajectory planning. The data structure of the path search condition information 600 will be described in detail with reference to FIG. 9 described later.
[0037] The relay point generation condition storage unit 136 stores relay point generation condition information 700 (see FIG. 10). The relay point generation condition information 700 is information indicating relay point generation conditions required for the relay point generation unit 146 to generate a relay point. The data structure of the relay point generation condition information 700 will be described in detail with reference to FIG. 10 described later.
[0038] The immovable area storage unit 137 stores immovable area information 800 (see FIG. 11). The immovable area information 800 is information indicating the immovable areas (immovable area Am1 and immovable area Am2) of the arm robot 20 generated by the immovable area calculation unit 142 of the calculation unit 140. The data structure of the immovable area information 800 will be described in detail with reference to FIG. 11 described later.
[0039] The interference region storage unit 138 stores interference region information 900 (see FIG. 12) generated by the interference region calculation unit 143 of the calculation unit 140. The data structure of the interference region information 900 will be described in detail later with reference to FIG.
[0040] The trajectory memory unit 139 stores trajectory information 1000 (see FIG. 13) of the arm robot 20 generated by the trajectory planning unit 147 of the calculation unit 140. The data structure of the trajectory information 1000 will be described in detail with reference to FIG. 13 described later.
[0041] The calculation unit 140 is configured with elements such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), etc., and controls the operation of each part constituting the control device 100. The calculation unit 140 has a robot position and orientation calculation unit 141, a non-movable area calculation unit 142, an interference area calculation unit 143, an interference determination unit 144, a trajectory planning success determination unit 145, a relay point generation unit 146, and a trajectory planning unit 147.
[0042] The robot position and orientation calculation unit 141 calculates orientation information of the arm robot 20 within the facility based on the facility configuration information 200 and the target position and orientation information 400, using angle information of each joint axis of the arm robot 20.
[0043] The non-movable area calculation unit 142 calculates, based on the facility configuration information 200, information on postures that the arm robot 20 cannot take within the facility as non-movable area information 800.
[0044] The interference area calculation unit 143 calculates non-movable area information 800 existing on a straight line connecting the start and end points of the trajectory of the arm 21 based on the equipment configuration information 200, the starting joint angle information 300, and the target position and posture information 400, and outputs it as interference area information 900.
[0045] The interference determination unit 144 determines whether or not interference occurs between the arm 21 and an obstacle or the like in the position and posture taken by the arm robot 20, based on the facility configuration information 200, the starting joint angle information 300, the target position and posture information 400, the relay point position and posture information 500, the path search condition information 600, the relay point generation condition information 700, etc.
[0046] The trajectory planning success determination unit 145 determines whether the trajectory planning is successful based on the information on the presence or absence of interference region information 900 generated by the interference region calculation unit 143. More specifically, the trajectory planning success determination unit 145 determines that the trajectory planning will fail if the interference region information 900 exists, and determines that the trajectory planning will be successful if the interference region information 900 does not exist.
[0047] When the trajectory planning success determination unit 145 determines that the trajectory planning will fail, the relay point generation unit 146 sets a relay point based on the facility configuration information 200 and the relay point generation condition information 700, and outputs information on the position and attitude of the relay point as relay point position and attitude information 500.
[0048] The trajectory planning unit 147 searches for each way point constituting the trajectory based on the facility configuration information 200, the starting joint angle information 300, the target position and posture information 400, and the relay point position and posture information 500. In this embodiment, the trajectory planning unit 147 searches for the way points in the direction from the start point to the relay point and in the direction from the relay point to the end point. Then, the trajectory planning unit 147 plans (generates) a trajectory based on the information of the way points obtained by the search, and outputs it as trajectory information 1000 of the robot.
[0049] <Data structure of facility configuration information> Next, the data structure of the equipment configuration information 200 will be described with reference to Fig. 5. Fig. 5 is a diagram showing an example of the data structure of the equipment configuration information 200.
[0050] As shown in FIG. 5, the equipment configuration information 200 has the following fields: "#", "equipment name", "classification", "item", and "content".
[0051] The "#" item stores an identification number assigned to each piece of equipment. The "equipment name" field stores information on the name of the equipment, such as "machine A equipment." In the "Classification" item, information on the classification names of auxiliary devices used in equipment such as objects and arm robots, and each part constituting the arm robot 20 such as links and joints is stored. In the example shown in Fig. 5, information on each auxiliary equipment such as a processing machine A, a work set stand A, a hand B, and a work B is stored as objects. Also, information on a robot B is stored as a robot.
[0052] The "item" field stores information on the names of items such as the names of each auxiliary facility and each part stored in the "classification" field, the position and orientation, and the shape file. The "content" field stores the content corresponding to the item specified in the "item" field.
[0053] Specifically, as information related to the "Classification" of "Object" and "Robot," the "Item" and "Content" items store information on the name of the object or robot (arm robot 20), the attachment target, the relative position, the relative posture, and the shape file.
[0054] The "Contents" of the "Item" "Attachment Target" stores information on the object or the target to which the arm robot 20 is attached. For example, it is shown that the attachment target of the object "Processing Machine A" is "Root" (the starting point of the attachment target). The "contents" of the "relative position" of an "item" stores information about the relative position (x, y, z) with respect to the attachment target. The "contents" of the "relative orientation" of the "item" stores information on the relative orientation (x, y, z) with respect to the attachment target. The "contents" of the "shape file" in the "item" section stores information about the shape file, such as an STL file format in which shape information is written. A trajectory planning unit 147 (see FIG. 4) of the calculation unit 140 plans a trajectory of the arm 21 between the start point and the relay points, and between the relay points and the end point, based on the information on the shape of the auxiliary facilities and the like described in the shape file.
[0055] As information related to "Link0" of "Classification", information on shape files such as STL file format in which shape information is written is stored in the items of "Item" and "Content". As information related to "Joint0" in "Classification", information on the parent link, child link, joint type, lower limit joint angle, upper limit joint angle, and upper limit joint velocity is stored in the items "Item" and "Content".
[0056] The "parent link" item stores information about the link to which the joint is connected, and the "child link" item stores information about the link to which the joint is connected. In the "joint type" item, information on the joint type, such as "Revolute (multi-joint)", is stored.
[0057] The "joint angle lower limit" item stores information on the lower limit of the joint angle (°) for either the x-axis, y-axis, or z-axis. The "joint angle upper limit" item stores information about the upper limit of the joint angle (°) for either the x-axis, y-axis, or z-axis. The "joint speed upper limit" item stores information about the upper limit of the movement speed (m / sec) of a joint.
[0058] The non-movable area calculation unit 142 of the calculation unit 140 (see FIG. 4) calculates the non-movable area Am1 and the non-movable area Am2 based on the information on the joint angle lower limit and the joint angle upper limit stored in the equipment configuration information 200. In addition, the trajectory planning unit 147 of the calculation unit 140 adds time information to the generated path based on the information on the upper joint velocity limit stored in the equipment configuration information 200, and outputs the path with the time information added as a trajectory.
[0059] <Data structure of starting joint angle information> Next, the data structure of the start joint angle information 300 will be described with reference to Fig. 6. Fig. 6 is a diagram showing an example of the data structure of the start joint angle information 300. As shown in Fig. 6, the start joint angle information 300 has the items "#", "parameter name", and "joint angle".
[0060] The "#" item stores an identification number assigned to the management unit of the start joint angle. The start joint angle indicates the posture (joint angle) of the arm robot 20 at the start point when planning the trajectory. In the "parameter name" item, information on the name of each joint included in the arm robot 20 is stored. In the "joint angle" field, information on the joint angle of each joint whose name is stored in the "parameter name" field is stored.
[0061] The robot position and posture calculation unit 141 (see FIG. 4) of the calculation unit 140 calculates the position and posture information of the tip of the arm robot 20 (hereinafter also referred to as the "arm tip") at the starting point by forward kinematics, based on the equipment configuration information 200 (see FIG. 5) and the starting joint angle information 300.
[0062] In the present embodiment, an example has been given in which the initial posture information in the starting joint angle information 300 is represented by angle information of each axis (link) constituting the arm robot 20, but the present invention is not limited to this. Position and posture information of the arm robot 20 may be set as the initial posture information, and angle information of the joints may be calculated using inverse kinematics or the like based on the position and posture information.
[0063] <Data structure of target position and orientation information> Next, the data configuration of the target position / orientation information 400 will be described with reference to Fig. 7. Fig. 7 is a diagram showing an example of the data configuration of the target position / orientation information 400. As shown in Fig. 7, the target position / orientation information 400 has the items "#", "parameter name", and "value".
[0064] The "#" item stores an identification number that is assigned to the management unit of the target position and orientation information of the arm tip at the time when trajectory planning is started. The "parameter name" item stores the names of each quaternion-format parameter that defines the target position and orientation of the arm tip, such as "Pos(Position)_X" and "Ori(Orientation)_X." The "value" item stores the parameter (value) corresponding to the parameter name stored in the "parameter name" item.
[0065] In this embodiment, the position and orientation information is represented in the quaternion format, but the present invention is not limited to this. The position and orientation information may be represented in the RPY (Roll Pitch Yaw) format. In addition, joint angle information may be used instead of the position and orientation information.
[0066] The robot position / posture calculation unit 141 (see FIG. 4) of the calculation unit 140 calculates each joint axis angle of the arm robot 20 at the end point by inverse kinematics based on the facility configuration information 200 and the target position / posture information 400.
[0067] <Data structure of intermediate point position and orientation information> Next, the data configuration of the relay point position and orientation information 500 will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of the data configuration of the relay point position and orientation information 500. As shown in Fig. 8, the relay point position and orientation information 500 has the items "#", "parameter name", and "value".
[0068] The "#" item stores an identification number assigned to the management unit of the position and orientation information of the arm tip at the relay point. The "parameter name" item stores the names of the parameters that define the position and orientation of the arm tip at the relay point, such as "Pos_X" and "Ori_X." The "value" item stores the parameter (value) corresponding to the parameter name stored in the "parameter name" item.
[0069] The posture of the arm tip at the intermediate point is set to an intermediate posture between the posture of the arm tip at the start point and the posture of the arm tip at the end point.
[0070] <Data structure of route search condition information> Next, the data structure of the route search condition information 600 will be described with reference to Fig. 9. Fig. 9 is a diagram showing an example of the data structure of the route search condition information 600. As shown in Fig. 9, the route search condition information 600 has the items "#", "parameter name", and "value".
[0071] The "#" item stores an identification number that is assigned to each management unit of route search conditions. The "parameter name" item stores information about the name of each parameter that constitutes the route search conditions. The "value" field stores the parameter (value) corresponding to each parameter name stored in the "parameter name" field.
[0072] In the example shown in FIG. 9, the names of the parameters, namely, the search interval distance, the end condition distance, the allowable angle change amount, and the allowable interference region distance, are stored in the "parameter name" item. The search interval distance is a parameter that determines the resolution of the search range when the trajectory planning unit 147 (see FIG. 4) performs a route search. The end condition is a value that specifies the end condition of the route search by the trajectory planning unit 147. The trajectory planning unit 147 ends the route search when the distance between the current search position and the end point becomes smaller than the value specified in the "end condition distance".
[0073] The allowable angle change is a parameter that defines the allowable change in the posture of the arm tip when the current search position is moved by the distance defined by the search interval distance. For example, when the allowable change in the posture of the arm tip is set small, the shaking of the workpiece held by the hand unit 22 at the arm tip is reduced. Therefore, when transporting a workpiece that cannot be damaged or a fragile workpiece, it is possible to prevent the workpiece from being damaged or broken by setting the allowable angle change small.
[0074] The allowable interference region distance is a parameter used when the trajectory planning unit 147 determines via point candidates for a route during route search and determines the allowable distance between a via point and an obstacle.
[0075] <Data structure of relay point generation condition information> Next, the data structure of the relay point generation condition information 700 will be described with reference to Fig. 10. Fig. 10 is a diagram showing an example of the data structure of the relay point generation condition information 700. As shown in Fig. 10, the relay point generation condition information 700 has the items "#", "parameter name", and "value".
[0076] The "#" item stores an identification number that is assigned to each management unit of relay point generation condition information. The "parameter name" item stores the parameter name of each parameter used when the relay point generating unit 146 generates the relay point position and orientation information 500 related to the relay point. The "value" field stores the parameter (value) corresponding to each parameter name stored in the "parameter name" field.
[0077] In the example shown in FIG. 10, the names of the parameters, namely, the number of relay points, the angle, the distance, and the allowable interference region distance, are stored in the "parameter name" item.
[0078] The number of relay points is a parameter that defines the number of relay points that the relay point generation unit 146 generates. The angle is a parameter that defines the angle of the relay point generated by the relay point generation unit 146 from the search position. The distance is a parameter that defines the distance of the relay point generated by the relay point generating unit 146 from the immovable area. The permissible interference region distance is the same as the permissible interference region distance used in the route search condition information 600 (see FIG. 9).
[0079] <Data structure of non-movable area information> Next, the data structure of the non-movable area information 800 will be described with reference to Fig. 11. Fig. 11 is a diagram showing an example of the data structure of the non-movable area information 800. As shown in Fig. 11, the non-movable area information 800 has the items "#", "X", "Y", "Z", and "non-movable area".
[0080] The "#" item stores an identification number given to each area unit for which it has been determined whether it is a non-movable area or not. Non-movable area information 800 is information that associates each area unit of a grid map showing the three-dimensional space in which the equipment is placed with information on whether the area is a non-movable area or not. The grid map is a map that is generated by dividing the space in which the equipment is placed, for example, in units of 5 cm from the origin.
[0081] The "X", "Y", and "Z" fields store the coordinates of each area in the grid map. The "Non-movable area" item stores information indicating whether or not each area managed by "#" is a non-movable area. If it is a non-movable area, "True" is stored, and if it is not a non-movable area, "False" is stored. The non-movable area calculation unit 142 determines whether or not each area in the three-dimensional space in which the equipment is placed is a non-movable area. If it is possible for the arm tip to assume a position and posture in that area, the non-movable area calculation unit 142 determines that the area is not a non-movable area, and if it is impossible for the arm tip to assume a position or posture, the non-movable area calculation unit 142 determines that the area is a non-movable area.
[0082] <Data structure of interference area information> Next, the data structure of the interference area information 900 will be described with reference to Fig. 12. Fig. 12 is a diagram showing an example of the data structure of the interference area information 900. As shown in Fig. 12, the interference area information 900 has the items "#", "X", "Y", "Z", and "interference area".
[0083] The "#" item stores an identification number given to each area for which it has been determined whether it is an interference area or not. The interference area information 900 is an area where a straight line connecting the start and end points of the movement of the arm robot 20 intersects with the non-movable area Am1 and the non-movable area Am2.
[0084] The "X", "Y", and "Z" fields store the coordinates of each area in the grid map. The "interference area" item stores information indicating whether or not each area managed by "#" is an interference area. If it is an interference area, "True" is stored, and if it is not an interference area, "False" is stored. The determination of whether or not each area in the three-dimensional space in which the equipment is arranged is an interference area is performed by the interference area calculation unit 143.
[0085] <Data structure of orbit information> Next, the data structure of the orbit information 1000 will be described with reference to Fig. 13. Fig. 13 is a diagram showing an example of the data structure of the orbit information 1000. As shown in Fig. 13, the orbit information 1000 has items of "#", "Time", and "Joint1" to "JointN".
[0086] The "#" item stores an identification number assigned to each management unit of orbit information. In the "Time" item, time information assigned to the route by the trajectory planning unit 147 is stored. The items "Joint 1" to "Joint N" store angle information of each joint of the arm robot 20 at each time stored in the "Time" item.
[0087] <Trajectory generation process> Next, a trajectory generation process by the calculation unit 140 (see FIG. 4) will be described with reference to Fig. 14. Fig. 14 is a flowchart showing an example of the procedure of the trajectory generation process by the calculation unit 140.
[0088] First, the robot position and posture calculation unit 141 of the calculation unit 140 reads input information required for generating a trajectory (step S1). The input information includes facility configuration information 200 stored in the facility configuration storage unit 131, starting joint angle information 300 stored in the starting joint angle storage unit 132, and target position and posture information 400 stored in the target position and posture storage unit 133. The input information also includes route search condition information 600 stored in the route search condition storage unit 135, and relay point generation condition information 700 stored in the relay point generation condition storage unit 136. Note that these pieces of input information may be input by a user via the input unit 110 (see FIG. 4).
[0089] Next, the robot position and posture calculation unit 141 calculates the posture of the arm 21 of the arm robot 20 in the target position and posture based on the equipment configuration information 200 and the target position and posture information 400 read in step S1 (step S2). The robot position and posture calculation unit 141 calculates the angle of each joint axis of the arm 21 as the posture of the arm 21 of the arm robot 20.
[0090] Next, the interference determination unit 144 determines whether or not the arm robot 20 can actually take the posture of the arm 21 calculated in step S2 at the target position (step S3). Specifically, the interference determination unit 144 determines whether or not the angle of each joint of the arm 21 in the target position and posture satisfies the joint angle lower limit and the joint angle upper limit (see FIG. 5) defined in the facility configuration information 200. Furthermore, the interference determination unit 144 determines whether or not the links and the hand unit 22 constituting the arm 21 collide with objects or facilities other than the arm robot 20. Then, when the interference determination unit 144 determines that the angle of each joint of the arm 21 does not satisfy the joint angle lower limit and the joint angle upper limit, or when it determines that interference with surrounding objects or the like occurs, it determines that the arm 21 cannot take the target position and posture.
[0091] If it is determined in step S3 that it is impossible to attain the target position and attitude (if step S3 is determined as NO), the interference determination unit 144 outputs the determination result (step S4). That is, the interference determination unit 144 notifies the user, via the output unit 120, etc., that the trajectory plan will fail under the conditions indicated in the input information.
[0092] On the other hand, when it is determined in step S3 that the arm robot 20 can assume the target position and posture (YES in step S3), the trajectory planning success determination unit 145 performs a trajectory planning success determination process (step S5). The trajectory planning success determination process will be described in detail with reference to the following FIG. 15.
[0093] Next, the trajectory planning success determination unit 145 determines whether the determination result of the trajectory planning success determination process in step S5 is successful (step S6). If it is determined to be successful in step S6 (YES in step S6), the trajectory planning unit 147 executes trajectory planning based on the input information, that is, generates a trajectory (step S7).
[0094] Specifically, the trajectory planning unit 147 generates a trajectory by searching for a route connecting start and end points that avoids obstacles, based on the facility configuration information 200, starting joint angle information 300, and target position and posture information read in S1.
[0095] On the other hand, if it is determined in step S6 that the process has failed (if step S6 is determined as NO), the relay point generating unit 146 executes relay point generating processing (step S8). The relay point generating processing will be described in detail with reference to FIG. 16 described later. Next, the trajectory planning unit 147 executes trajectory planning based on the input information read in step S1 and the relay point information generated in the relay point generating processing in step S8 (step S9). In step S9, the trajectory planning unit 147 searches for a route that connects the start and end points via the relay points and avoids obstacles, based on the facility configuration information 200, the start joint angle information 300, and the target position and attitude information 400 read in S1, and the relay points generated in S8, to generate a trajectory.
[0096] After executing step S3, step S7, or step S9, the trajectory planning unit 147 performs the process of step S4, that is, outputs the process result to the output unit 120, etc. After the process of step S4, the trajectory generation process by the calculation unit 140 ends.
[0097] <Trajectory planning success determination process> Next, the trajectory planning success determination process performed in step S5 of Fig. 14 will be described with reference to Fig. 15 and Fig. 16. Fig. 15 is a flowchart showing an example of the procedure of the trajectory planning success determination process, and Fig. 16 is a diagram showing the correspondence between the current search position moved by the route search process in the trajectory planning success determination process and the non-movable area.
[0098] First, the non-movable area calculation unit 142 calculates the non-movable area of the arm robot 20 (step S11). In step S11, the non-movable area calculation unit 142 determines whether the arm robot 20 can assume a posture in the area based on the three-dimensional coordinates of the tip of the robot arm, based on the shape information of the link of the arm robot 20 stored in the equipment configuration information 200 and the upper limit angle and the lower limit angle of each joint axis of the arm 21. The non-movable area calculation unit 142 performs the determination in step S11 for each area of the grid map indicating the three-dimensional space in which the equipment is arranged, and outputs the result of the determination as non-movable area information 800. In FIG. 16, the non-movable area Am2 defined by the non-movable area information 800 is shown by a hatched triangle. For the sake of simplicity, the non-movable area Am1 is omitted from FIG. 16.
[0099] In addition, in this embodiment, the non-movable area of the arm robot 20 is represented by information on position coordinates in a three-dimensional space, but the present invention is not limited to this. For example, the non-movable area may be represented by information on posture in addition to position coordinates.
[0100] Next, the interference region calculation unit 143 performs the process of step S12. In this process, the interference region calculation unit 143 calculates three-dimensional position information of the arm tip of the arm robot 20 using a known method such as forward kinematics based on the facility configuration information 200 and the starting joint angle information 300. Then, the interference region calculation unit 143 holds the three-dimensional position information of the arm tip as initial current search position information. The position where the leftmost pentagon in Fig. 16 is placed is the initial current search position (start point) Ps in the path search space of the arm robot 20.
[0101] The subsequent steps S13, S14, S15, and S16 are loop processes that are repeatedly executed until a termination condition is satisfied. The termination condition is satisfied when the distance between the current search position and the target position becomes smaller than the termination condition distance defined in the route search condition information 600 (see FIG. 9).
[0102] In the loop process, first, the interference region calculation unit 143 moves the current search position toward the target position by the search interval distance based on the current search position information held in S12, the target position and orientation information 400 (see FIG. 7), and the route search condition information 600 (see FIG. 9) (step S13). The search interval distance is information stored in the route search condition information 600.
[0103] The position where the rightmost pentagon in Fig. 16 is placed is the end point Pg in the path search space of the arm robot 20, and the orientation of the pentagon indicates the target position and posture at the end point Pg. The direction indicated by the dashed straight line connecting the start point Ps and the end point Pg indicates the target position direction Dt. The dashed circle shown in Fig. 16 indicates the search interval distance Ds.
[0104] In step S13, the interference region calculation unit 143 determines, as the next search position, a position where a straight line indicating the target position direction Dt intersects with a circle indicated by the search interval distance Ds in the target position direction Dt.
[0105] Returning to FIG. 15, the description will be continued. After the process of step S13, the interference determination unit 144 calculates the distance between the current search position and the non-movable area Am1 or the non-movable area Am2 calculated in S11, and determines whether the distance is smaller than the search interval distance (step S14). If it is determined in step S14 that the distance is smaller than the search interval distance (if YES is determined in step S14), the interference region calculation unit 143 sets "True" to the corresponding area in the interference region information 900 (step S15). On the other hand, if it is determined in step S14 that the distance to the non-movable area Am1 or the non-movable area Am2 is equal to or greater than the search interval distance (if NO is determined in step S14), the interference region calculation unit 143 sets "False" to the corresponding area in the interference region information 900 (step S16).
[0106] For example, when the current search position is the current search position P1 shown in Fig. 16, the non-movable area Am1 or the non-movable area Am2 does not exist within the range of the search interval distance centered on the current search position P1, so it is determined that the distance between the non-movable area Am1 or the non-movable area Am2 is greater than the search interval distance. That is, step S14 is determined as NO. On the other hand, when the current search position is the current search position P3 shown in Fig. 16, the non-movable area Am1 exists within the range of the search interval distance centered on the current search position P3, so it is determined that the distance between the non-movable area Am1 or the non-movable area Am2 is smaller than the search interval distance. That is, step S14 is determined as YES.
[0107] After step S15 or step S16 is completed, the interference region calculation unit 143 determines whether the end condition is satisfied. That is, the interference region calculation unit 143 determines whether the distance between the current search position and the target position (end point Pg) has become smaller than the end condition distance. In the current search position P6 shown second from the right in Fig. 16, the distance to the end point Pg is assumed to be smaller than the end condition distance (5 cm: see Fig. 9). In this case, the interference region calculation unit 143 determines that the end condition of the loop process is satisfied, and ends the loop process.
[0108] After the loop process is completed, the trajectory planning success determination unit 145 analyzes the interference region information 900 in which "True" or "False" is set in step S15 or step S16, and determines whether "True" is included (step S17). If it is determined in step S17 that "True" is included (if step S17 is determined as YES), the trajectory planning success determination unit 145 determines that the trajectory planning is unsuccessful (step S18). If it is determined that the trajectory planning is unsuccessful, the relay point generation unit 146 performs relay point generation processing. The relay point generation processing will be described in detail with reference to FIG. 17 described later.
[0109] On the other hand, if it is determined in step S17 that "True" is not included (if step S17 is determined as NO), the trajectory planning success determination unit 145 determines that the trajectory planning is successful (step S19). After the process of step S18 or step S19, the trajectory planning success determination process ends.
[0110] In this embodiment, a trajectory planning success determination process is performed before the trajectory planning unit 147 generates a trajectory (executes a trajectory plan). Therefore, according to this embodiment, it is possible to prevent a trajectory plan that will fail from being executed, and therefore it is possible to avoid the need to spend time calculating a trajectory plan that will fail.
[0111] <Relay point generation process> Next, the relay point generating process executed in step S8 of Fig. 14 will be described with reference to Fig. 17. Fig. 17 is a flowchart showing an example of the procedure of the relay point generating process.
[0112] First, the relay point generating unit 146 generates a straight line connecting the approximate center of the interference area and the approximate center of the base (body) of the arm robot 20 based on the interference area information 900 generated by the interference area calculating unit 143 and the facility configuration information 200 (step S21). This straight line is the straight line L1 shown by the dashed line in Fig. 3, and this straight line L1 is perpendicular to the linear interference area Ari.
[0113] In this embodiment, the straight line used to set the relay point is the straight line connecting the approximate center of the interference area and the approximate center of the base of the arm robot 20, but the present invention is not limited to this. It may be a straight line starting from the approximate center of the interference area Ari and passing through any position (point) on the outer periphery of the base.
[0114] Next, the relay point generation unit 146 generates a relay point on the straight line generated in S21 in a direction away from the immovable area based on the relay point generation condition information 700 (see FIG. 10) (step S22). In the relay point generation condition information 700, the number of relay points is set to "1", the angle is set to "0", and the distance is set to "50". Therefore, the relay point generation unit 146 sets the relay point Pr at a position "50 mm" away from the interference area in the direction of "0°" on the straight line L1.
[0115] When the number of relay points is set to 2 or more in the relay point generation condition information 700, the relay point generation unit 146 generates multiple relay points. The number of relay points stored in the relay point generation condition information 700 can be set to any value by the user.
[0116] Next, the interference determination unit 144 determines whether the relay point generated in S22 interferes with a non-movable area or an obstacle based on the facility configuration information 200 and the relay point generation condition information 700 (step S23). If it is determined in step S23 that there is no interference (YES in step S23), a message notifying that the relay point has been successfully generated is displayed on the trajectory information display screen Sc1 (see FIG. 18) of the output unit 120 (step S24).
[0117] On the other hand, if it is determined in step S23 that the relay point will interfere with a non-movable area or an obstacle (if step S23 is determined to be NO), the interference determination unit 144 displays a message notifying that generation of the relay point has failed and a message requesting readjustment of the parameters of the relay point generation condition information 700 on the trajectory information display screen Sc1 of the output unit 120 (step S25). After the processing of step S24 or step S25, the relay point generation processing ends.
[0118] In this embodiment, when an immovable area exists between a straight line connecting the start point and the end point, the relay point generating unit 146 sets a relay point on a straight line connecting the arm robot 20 and an interference area, which is an immovable area existing on the straight line, in a direction away from the immovable area. Then, the trajectory planning unit 147 performs a route search in a direction from the start point to the relay point and in a direction from the relay point to the end point. Therefore, since the conventional method of determining a route that avoids interference with an immovable area or an obstacle during the route search and within a local range such as a search distance is not used, it is possible to prevent the generation of a route (trajectory) that makes the operation time of the arm 21 longer than necessary.
[0119] Furthermore, in this embodiment, since random numbers are not used to generate the trajectory of the arm 21, it is possible to prevent a different trajectory from being generated each time a search is performed, that is, it is possible to prevent large fluctuations in the operating time of the arm robot 20.
[0120] <Trajectory information display screen> Next, the configuration of the orbit information display screen will be described with reference to Fig. 18 and Fig. 19. Fig. 18 is a diagram showing an example of the orbit information display screen Sc1 after the execution of the orbit planning success determination process, and Fig. 19 is a diagram showing an example of the orbit information display screen Sc2 after the execution of the relay point generation process.
[0121] 18 includes a work information display section Ar1, a work information load button Bn1, a relay point position and attitude information display section Ar2, and a relay point generation setting button Bn2. The trajectory information display screen Sc1 also includes a trajectory information display section Ar3, a result display section Ar4, a trajectory generation start button Bn3, a robot state display section Ar5, and a trajectory search state display section Ar6.
[0122] The work information display section Ar1 displays each piece of information, such as equipment name, starting joint angle information, and target position and posture information. The equipment name field displays the equipment name stored in the "equipment name" item of equipment configuration information 200 (see FIG. 5). The starting joint angle information field displays the starting joint angle information stored in starting joint angle information 300 (see FIG. 6). The target position and posture information field displays the target position and posture information stored in target position and posture information 400 (see FIG. 7).
[0123] The work information read button Bn1 is a button that, when pressed by a user, executes the process of step S1 in Fig. 14. That is, when the user presses the work information read button Bn1, the equipment configuration information 200, the starting joint angle information 300, the target position and posture information 400, and the like are read from the storage unit 130.
[0124] The relay point position and orientation information display section Ar2 displays the facility name and each piece of relay point position and orientation information. The relay point position and orientation information is the position and orientation information of the relay point generated by the relay point generation process executed in step S8 of FIG.
[0125] The relay point generation setting button Bn2 is a button that, when pressed, reads the input information (relay point generation condition information 700) in step S1 of FIG. 14 and enables the generation or modification of a relay point.
[0126] The trajectory information display section Ar3 displays the trajectory information 1000 (see FIG. 13) generated by the trajectory planning executed in step S7 or step S9 in FIG.
[0127] The result display section Ar4 displays the judgment result or processing result output in step S4 in Fig. 14, messages displayed in step S24 or step S25 in Fig. 17, and the like. Fig. 18 shows an example in which a message "Execution log: One waypoint added, trajectory generation completed" is displayed. If trajectory generation fails, a message such as "Execution log: Warning, trajectory generation failed because start and end points come into contact with the non-movable area" is displayed. Such a display allows the user to understand whether the trajectory planning is successful or unsuccessful.
[0128] The trajectory generation start button Bn3 is a button that, when pressed, causes the processes of steps S2 to S9 in FIG. 14 to be executed.
[0129] The robot state display section Ar5 displays the input information read by pressing the work information read button Bn1 in the form of a three-dimensional drawing. For example, the start joint angle display section Ar51 visualizes and displays the position and posture of the arm robot 20 reflecting the joint angle at the start of the operation of the arm robot 20 indicated in the start joint angle information 300 using a three-dimensional drawing. Also, the target position and posture display section Ar52 visualizes and displays the position and posture of the hand unit 22 of the arm robot 20 when the arm robot 20 assumes the target position and posture defined in the target position and posture information 400 using a three-dimensional drawing.
[0130] The configuration may be such that the user can set the target position and posture by moving the position of the hand unit 22 displayed in the target position and posture display area Ar52 of the robot state display area Ar5.
[0131] The trajectory searching state display section Ar6 displays relay point position and attitude information 500 (see FIG. 8) and trajectory information 1000 (see FIG. 13) generated by executing the processes from step S2 to step S9 in FIG. 14 in the form of a two-dimensional plan view. In the trajectory searching state display section Ar6, the start point and the end point are shown as black pentagons, and the relay points are shown as hatched pentagons. Waypoints other than the start point, relay point, and end point are shown as open pentagons. Furthermore, in the trajectory searching state display section Ar6, the non-movable area Am1 and the non-movable area Am2 are shown as hatched patterns, and the interference area Ari is shown as a black rectangular area.
[0132] By checking the display contents of the trajectory searching state display section Ar6, the user can check whether the position and posture of the generated relay point is normal, whether the trajectory of the arm robot 20 has been generated, etc. In addition, since the non-movable area Am1 and the non-movable area Am2 are also shown in the trajectory searching state display section Ar6, the user can set the relay point in an area other than the non-movable area Am1 and the non-movable area Am2 even when fine-tuning the relay point, etc.
[0133] The information on the relay point adjustment is output to the relay point generation unit 146, which generates relay points at positions as specified by the user. Then, the trajectory plan is regenerated by the trajectory planning unit 147 based on the information on the relay points after the adjustment. Therefore, according to this embodiment, the user can have the trajectory planning unit 147 generate a better route by changing the content displayed on the trajectory information display screen Sc1.
[0134] Fig. 19 shows the orbit information display screen Sc2 after execution of the relay point generation process. In the orbit information display screen Sc2 shown in Fig. 19 and the orbit information display screen Sc2 shown in Fig. 18, the same components are denoted by the same reference numerals, and the overlapping explanations are omitted.
[0135] In the orbit information display screen Sc2 shown in Fig. 19, a relay point position / attitude additional setting information display section Ar7 is provided in the display area of the orbit information display section Ar3 shown in Fig. 18. The relay point position / attitude additional setting information display section Ar7 displays information on the number of points, the angle, and the distance.
[0136] The point column displays information on the "number of relay points" defined in relay point generation condition information 700 (see FIG. 10), and the angle column displays information on the "angle" defined in relay point generation condition information 700. Also, the distance column displays information on the "distance" defined in relay point generation condition information 700.
[0137] The result display section Ar8 displays messages such as those displayed in step S24 or step S25 in Fig. 17. Fig. 19 shows an example in which the message "Execution log: Two via points specified" is displayed.
[0138] In addition, in the trajectory information display screen Sc2 shown in Fig. 19, a relay point generation state display section Ar9 is provided in the display area of the trajectory searching state display section Ar6 shown in Fig. 18. The relay point generation state display section Ar9 shows a state in which two relay points, indicated by hatched pentagons, have been set. The relay point generation state display section Ar9 also shows the distance between the arm robot 20 and the relay point at the bottom of the figure ("50 cm" in the figure). Furthermore, the relay point generation state display section Ar9 shows the angle ("45°" in the figure) formed by the straight line connecting the interference area indicated by a thick line and the arm robot 20, and the straight line connecting the interference area and the relay point at the bottom of the figure.
[0139] By displaying the relay point information in the relay point generation state display unit Ar9, the user can visually grasp the position and attitude in which the relay point is set. In addition, the relay point generation state display unit Ar9 may be configured so that the user can change the position of the relay point by moving the position of the relay point displayed in the relay point generation state display unit Ar9.
[0140] The setting end button Bn4 is a button that ends the relay point setting process when pressed.
[0141] In the above-described embodiment, before the trajectory planning unit 147 starts searching for waypoints that constitute the trajectory, the interference area calculation unit 143 determines whether or not the non-movable area of the arm robot 20 interferes with the area (straight line) connecting the start point and the end point, and calculates the interference area where the interference occurs if it is determined that there is interference. Then, the trajectory planning unit 147 plans a trajectory that does not pass through the non-movable area based on the facility configuration information 200, the information on the start point and the end point, and the information on the interference area. Therefore, it is not necessary to discover that the trajectory planning has failed in the middle of generating the path, and it is not necessary to incur calculation time for a failed trajectory plan.
[0142] In the above-described embodiment, the relay point generating unit 146 sets the relay point Pr at a globally optimal position based on information on the start point Ps and the end point Pg and information on the non-movable area Am1 and the non-movable area Am2 of the arm robot 20. Then, the trajectory planning unit 147 plans the trajectory of the arm 21 using the information on the relay point Pr. Therefore, in this embodiment, since a local search is not performed during the search for the via point, this embodiment can prevent the generation of a trajectory in which the operation time of the arm 21 is unnecessarily long.
[0143] In the above-described embodiment, the relay point generation unit 146 sets the relay points Pr without using random numbers, and the trajectory is planned based on the relay points Pr. Therefore, according to the present embodiment, it is possible to prevent a trajectory that causes large fluctuations in the robot operation time from being planned.
[0144] In addition, the above-described embodiment describes in detail and specifically the configuration of the system (trajectory planning system) in order to explain the present invention in an easily understandable manner, and is not necessarily limited to a system having all of the described configurations.
[0145] In addition, the control lines or information lines shown in solid lines in Figure 4 are those considered necessary for explanation, and do not necessarily show all control lines or information lines in the product. In reality, it can be considered that almost all components are connected to each other.
[0146] In addition, in this specification, the processing steps describing chronological processing include not only processing that is performed chronologically in the order described, but also processing that is not necessarily performed chronologically but is performed in parallel or individually (for example, parallel processing or processing by objects).
[0147] Furthermore, each component of the trajectory planning system according to the embodiment of the present invention described above may be implemented in any hardware as long as each hardware can transmit and receive information to and from each other via a network. Also, the processing performed by a certain processing unit may be realized by a single piece of hardware, or may be realized by distributed processing by multiple pieces of hardware. [Explanation of symbols]
[0148] 1... handling system, 10... processing machine, 20... arm robot, 21... arm, 22... hand unit, 100... control device, 120... output unit, 140... calculation unit, 141... robot position and orientation calculation unit, 142... non-movable area calculation unit, 143... interference area calculation unit, 144... interference determination unit, 145... trajectory planning success determination unit, 146... relay point generation unit, 147... trajectory planning unit, 200... facility configuration information, 300... starting joint angle information, 400... target position and orientation information, 500... relay point position and orientation information, 600... path search condition information, 700... relay point generation condition information, 800... non-movable area information, 900... interference area information, 1000... trajectory information
Claims
1. A trajectory planning system for planning a trajectory for moving a tip portion of an arm robot from a start point to an end point, an interference region calculation unit that determines, prior to planning the trajectory, whether or not a non-movable region, which is a region in which the tip end portion cannot be positioned or cannot assume a predetermined attitude, interferes with a region connecting the start point and the end point, and calculates an interference region in which interference will occur when it is determined that interference occurs; and a trajectory planning unit that plans the trajectory that does not pass through the non-movable area, based on facility configuration information indicating configuration information of the arm robot and a facility in which the arm robot operates, information on the start point and the end point, and information on the interference area. Trajectory planning system.
2. a relay point generating unit that generates at least one relay point between the start point and the end point when the interference area is calculated by the interference area calculating unit, The trajectory planning unit searches for each way point constituting the trajectory in a direction from the start point to the relay point and in a direction from the relay point to the end point. The trajectory planning system of claim 1 .
3. the interference region calculation unit calculates, as the interference region, a linear region where the non-movable region intersects with a straight line connecting the start point and the end point; The relay point generating unit generates the relay point on a straight line connecting an approximate center of the interference area and any point on a body part of the arm robot. The trajectory planning system of claim 2 .
4. The relay point generating unit generates the relay point on the straight line in a direction away from the interference area. The trajectory planning system of claim 3 .
5. The relay point generating unit sets the relay point at a position on the straight line that is a predetermined threshold distance or more away from the immovable area in a direction away from the interference area. The trajectory planning system of claim 4.
6. The threshold distance is a search interval distance when the trajectory planning unit searches for each way point that constitutes the trajectory. The trajectory planning system of claim 5.
7. The trajectory planning unit displays, on a display device, a trajectory information display screen on which the start point, the end point, the non-movable area, and the relay points are indicated. A trajectory planning system according to any one of claims 1 to 6.
8. When an instruction to adjust the position and / or the attitude of the relay point is given via a relay information display screen, the trajectory planning unit changes the position and / or the attitude of the relay point based on the instruction. The trajectory planning system of claim 7.
Citation Information
Patent Citations
Robot simulation device for creating motion path of robot
JP2015160277A
Trajectory plan generation device, trajectory plan generation method, and trajectory plan generation program
JP2021079482A