Computer system and method for controlling a robot

The computer system enhances robot control by dynamically adding waypoints to the trajectory based on curvature, addressing the issue of coarse control granularity and achieving smooth and accurate robot movements.

JP7684190B2Active Publication Date: 2025-05-27HITACHI LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021176416
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-28
Publication Date
2025-05-27
Estimated Expiration
2041-10-28

AI Technical Summary

Technical Problem

Existing robot control technologies struggle with smooth control, especially on trajectories with large curvatures, due to coarse control granularity.

Method used

A computer system that dynamically adjusts the number of waypoints on a robot's trajectory based on the curvature of the path, allowing for more precise control by increasing the control granularity in curved sections.

Benefits of technology

The system achieves smooth robot control by refining the trajectory with additional waypoints in curved areas, thereby improving control accuracy and operational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007684190000007
    Figure 0007684190000007
  • Figure 0007684190000008
    Figure 0007684190000008
  • Figure 0007684190000009
    Figure 0007684190000009
Patent Text Reader

Abstract

To realize smooth robot control.SOLUTION: A computer system controlling a robot carrying out work including the gripping of an object and the movement of the object, holds track information for managing track data relating to a track when gripping and moving the object, in work of robot about each work. The track data includes position information on a plurality of through-points set at equal intervals on the track. The computer system, when controlling the robot executing first work, analyzes a shape of the track defined by track data of the first work, updates the track data by adding a predetermined number of through-points to a partial path which is a part of the track and where bending is large, and controls the robot executing the first work by using the updated track data.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a control technology for a robot that performs operations including gripping an object and moving the object.

Background Art

[0002] As the background art in this technical field, the technology described in Patent Document 1 is known. Patent Document 1 describes that "the machine learning device 100 provided in the control device 1 is a machine learning device 100 that learns to estimate command data to be commanded to the axes provided in the robot 2 with respect to the trajectory data of the robot 2, and includes an axis angle conversion unit 105 that calculates the amount of change in the axis angle of the axes provided in the robot 2 from the trajectory data, a state observation unit 106 that observes axis angle data related to the amount of change in the axis angle of the axes provided in the robot 2 as state variables representing the current state of the environment, a label data acquisition unit 108 that acquires axis angle command data related to the command data for the axes provided in the robot 2 as label data, and a learning unit 110 that learns by associating the amount of change in the axis angle of the axes provided in the robot 2 with the command data for the axes using the state variables and the label data."

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the prior art, in the control of a robot on a trajectory, the robot is controlled based on waypoints included in the trajectory. Usually, the waypoints included in the trajectory are arranged at equal intervals. Therefore, in the case of a trajectory including a path with a large curvature, there is a problem that it is difficult to achieve smooth control because the control granularity is coarse therefore difficult for smooth control. Even when using the method described in Patent Document 1, it is difficult to achieve smooth robot control.

[0005] The present invention aims to realize the control of a smooth robot.

Means for Solving the Problems

[0006] A typical example of the invention disclosed in the present application is as follows. That is, a computer system for controlling a robot that performs operations including gripping an object and moving the object, including a plurality of computers having an arithmetic unit, a storage device connected to the arithmetic unit, and an interface connected to the arithmetic unit, and for each operation, in the operation of the robot, holds trajectory information for managing trajectory data regarding the trajectory when gripping and moving the object, the trajectory data includes position information of a plurality of waypoints set at equal intervals on the trajectory, the computer system has an algorithm for calculating the number of additional waypoints to be added to the partial path from an index representing the degree of curvature of the partial path, which is a part of the trajectory, and a parameter, and the algorithm is an algorithm for calculating a larger number of the additional waypoints for the partial path with a larger degree of curvature, and at least one of the computers, when controlling the robot that executes the first operation, analyzes the shape of the trajectory defined by the trajectory data of the first operation, calculates the index of the partial path based on the result of the analysis, calculates the number of additional waypoints based on the index, updates the trajectory data by adding the number of waypoints to the partial path, and controls the robot that executes the first operation using the updated trajectory data and the trajectory data includes information on the posture of the robot at each of the plurality of waypoints. The trajectory defined by the trajectory data of the first operation includes a first waypoint. At least one of the computers determines the control content of the robot based on the current posture of the robot and the posture of the robot at one of the waypoints, and transmits control information including the control content to the robot. During the control of the robot using the updated trajectory data, when the robot reaches the first waypoint, based on the actual posture of the robot at the first waypoint and the posture of the robot at the first waypoint defined in the updated trajectory data, if an inertial force greater than expected is generated, the positions of the waypoints after the first waypoint are updated so that the change in the trajectory becomes smaller to do.

Advantages of the Invention

[0007] According to the present invention, by adding waypoints, it is possible to realize the control of a smooth robot. Problems, configurations, and effects other than those described above will be clarified by the description of the following embodiments.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10A

Figure 10B

Figure 10C

Figure 11

Figure 12

Figure 13

Figure 14

Embodiments for Carrying Out the Invention

[0009] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention is not construed as being limited to the description of the embodiments shown below. Those skilled in the art can easily understand that the specific configuration can be changed without departing from the spirit or gist of the present invention.

[0010] In the configuration of the invention described below, the same or similar configurations or functions are denoted by the same reference numerals, and redundant descriptions are omitted.

[0011] Expressions such as "first", "second", "third", etc. in this specification and the like are attached to identify components, and do not necessarily limit numbers or orders.

[0012] In the drawings and the like, the positions, sizes, shapes, and ranges of the respective configurations shown may not represent the actual positions, sizes, shapes, and ranges in order to facilitate understanding of the invention. Therefore, in the present invention, it is not limited to the positions, sizes, shapes, and ranges disclosed in the drawings and the like.

Embodiment

[0013] FIG. 1 is a diagram showing a configuration example of the system of Embodiment 1.

[0014] The system is composed of a robot 100 and a computer 101. The robot 100 and the computer 101 are connected directly or via a network.

[0015] The robot 100 performs operations including gripping an object (workpiece) and moving from a starting point to an ending point based on control information output from the computer 101. The robot 100 includes a working device group 110, a controller 111, and a measuring device 112.

[0016] The working device group 110 is a group of devices that realize gripping of an object and movement of the object, and includes, for example, tools, links, drive motors, and the like.

[0017] The controller 111 controls the working device group 110 based on the control information received from the computer 101. For example, the controller 111 moves the tool by driving a drive motor that functions as a joint and connects between links according to the control information. The controller 111 outputs operation state information including the angle, angular velocity, angular acceleration of the joint, and the torque and current value of the drive motor to the computer 101.

[0018] The measuring device 112 measures values for grasping the state of an object due to the operation of the robot 100. The values output from the measuring device 112 are also described as working state information. The measuring device 112 is, for example, an acceleration sensor, a force sensor, a camera, a contact sensor, a current sensor, etc. Note that the robot 100 may include a plurality of measuring devices 112 with different types for each measurement target. Note that the present invention is not limited to the installation position and the number of installed measuring devices 112.

[0019] Note that the robot 100 may transmit the operation state information and the working state information together as one piece of information.

[0020] The computer 101 generates information on the trajectory (trajectory information) that is the movement path of the tool of the robot 100, and also generates control information based on the trajectory information, the operation state information, and the working state information. The control information includes, for example, the following command values. (1) The next target angle of the controlled axis, angular velocity and the angular acceleration (2) The torque and drive current of the drive motor (3) The target coordinates, movement speed, and acceleration of the object

[0021] The computer 101 includes an arithmetic device 120, a storage device 121, a communication device 122, an input device 123, and an output device 124. Each hardware element is connected via an internal bus.

[0022] The storage device 121 is a device that stores programs and information executed by the arithmetic unit 120, and is, for example, a memory or the like. The storage device 121 stores facility configuration information 140, work information 141, trajectory information 142, trajectory analysis information 143, work history information 144, correlation analysis information 145, and maintenance instruction information 146. Also, the storage device 121 is used as a work area.

[0023] The facility configuration information 140 is information regarding the facilities where the robot 100 performs work and the configuration of the robot 100. For example, the shape and arrangement of the facilities, the shape of the robot, the movable range and limit speed of the joints, and the arrangement of the joints are stored in the facility configuration information 140. The data structure of the facility configuration information 140 will be described with reference to FIG. 2.

[0024] The work information 141 is information regarding work. The data structure of the work information 141 will be described with reference to FIG. 3.

[0025] The trajectory information 142 is information regarding the trajectory that is the movement path of the tool of the robot 100. The data structure of the trajectory information 142 will be described with reference to FIG. 4.

[0026] The trajectory analysis information 143 is information generated in the analysis process of the trajectory. The data structure of the trajectory analysis information 143 will be described with reference to FIG. 5.

[0027] The work history information 144 is information regarding the work that has been executed. The data structure of the work history information 144 will be described with reference to FIG. 6.

[0028] The correlation analysis information 145 is information generated in the correlation analysis process. The data structure of the correlation analysis information 145 will be described with reference to FIG. 7.

[0029] The maintenance instruction information 146 is information regarding the maintenance instructions presented to the user.

[0030] The arithmetic unit 120 is a device that controls the entire computer 101 and is, for example, a processor or the like. The arithmetic unit 120 executes a program stored in the storage device 121. By executing processing according to the program, the arithmetic unit 120 operates as a functional unit (module) that realizes a specific function. In the following description, when explaining the processing with the functional unit as the subject, it indicates that the arithmetic unit 120 is executing a program that realizes the functional unit. The arithmetic unit 120 of the present embodiment functions as an orbit information generation unit 130, a via point determination unit 131, a control information generation unit 132, an orbit update unit 133, a work history analysis unit 134, and a maintenance instruction information generation unit 135.

[0031] The orbit information generation unit 130 determines an orbit based on the work content and the equipment configuration information 140, and generates data of the determined orbit (orbit data). The orbit information generation unit 130 stores the generated orbit data in the orbit information 142.

[0032] The via point determination unit 131 analyzes the orbit of the tool of the robot 100 in the work, and determines a new via point to be added based on the analysis result. Further, the via point determination unit 131 adds the number of via points determined for the orbit and updates the orbit.

[0033] The control information generation unit 132 controls the robot 100 that performs the work by generating control information based on the orbit data, the operation state information, and the work state information.

[0034] The orbit update unit 133 updates the orbit based on the orbit data and the work state information.

[0035] The work history analysis unit 134 analyzes the work history to identify the joints of the robot 100 whose deviation amount from the target value increases over time. Further, the work history analysis unit 134 performs clustering of the work history based on the result of the processing.

[0036] Based on the clustering results by the operation history analysis unit 134, the maintenance instruction information generation unit 135 generates maintenance instruction information 146 indicating the content of the maintenance instruction to be presented to the user.

[0037] Regarding each functional unit of the computer 101, a plurality of functional units may be grouped into one functional unit, or one functional unit may be divided into a plurality of functional units according to each function.

[0038] The communication device 122 is a device for communicating with an external device, for example, a NIC (Network Interface Card).

[0039] The input device 123 is a device for inputting data, commands, etc. into the computer 101, for example, a keyboard, a mouse, a touch panel, etc.

[0040] The output device 124 is a device for outputting the calculation results, etc. of the computer 101, for example, a display, a projector, a printer, etc.

[0041] FIG. 2 is a diagram showing an example of the data structure of the facility configuration information 140 of the first embodiment.

[0042] The facility configuration information 140 stores entries including ID201, classification 202, item 203, and content 204.

[0043] ID201 is a field for storing the identification information of the entry. Classification 202 is a field for storing the classification of the elements constituting the facility. Item 203 is a field for storing the management items of the elements. Content 204 is a field for storing the content of the management items. Files, numerical values, character strings, etc. are stored in content 204.

[0044] Regarding the links, the shapes of the links are managed. Regarding the joints (Joint) that connect the links, the links to be connected, the types of joints, and the constraints on the movement of the joints are managed. Note that for joints, the items managed as constraints on the movement of the joints differ depending on the type of joint.

[0045] FIG. 3 is a diagram showing an example of the data structure of the work information 141 in the first embodiment.

[0046] The work information 141 stores entries including a work name 301, a starting point coordinate 302, an ending point coordinate 303, a tool 304, and a part 305.

[0047] The work name 301 is a field for storing the name of the work. The starting point coordinate 302 is a field for storing the coordinates indicating the position of the tool of the robot 100 at the start of the operation in the work. The ending point coordinate 303 is a field for storing the coordinates indicating the position of the tool of the robot 100 at the end of the operation in the work. The tool 304 is a field for storing the identification information of the tool used in the work. The part 305 is a field for storing the identification information of the part used in the work.

[0048] FIG. 4 is a diagram showing an example of the data structure of the trajectory information 142 in the first embodiment.

[0049] The trajectory information 142 stores a table 400 indicating the trajectory of the tool for each work. One table 400 corresponds to one trajectory data.

[0050] The table 400 stores entries including waypoints 401, positions 402, postures 403, postures 404, and Time 405.

[0051] The passing point 401 is a field that stores identification information of passing points on the trajectory. The position 402 is a group of fields that store the position of the passing point, that is, values indicating the coordinates of the tool. Each field of the position 402 stores values in the Cartesian coordinate system. The orientation 403 is a group of fields that store values (target values) indicating the orientation of the tool at the passing point. Each field of the orientation 403 stores values defined by quaternions. The orientation 404 is a group of fields that store values (target values) indicating the orientation of each joint at the passing point. Each field of the orientation 404 stores the angle of the joint. Time 405 is a field that stores the time when the tool that started moving from the starting point reaches the passing point.

[0052] FIG. 5 is a diagram showing an example of the data structure of the trajectory analysis information 143 of Example 1.

[0053] The trajectory analysis information 143 stores a table 500 showing the analysis results of the trajectory for each operation.

[0054] The table 500 stores entries including passing points 501, angles 502, and the number of additional passing points 503.

[0055] The passing point 501 is the same field as the passing point 401. The angle 502 is a field that stores the value of an index (path change index) indicating the degree of bending of the path connecting the passing point corresponding to the entry and the previous passing point. As the path change index, an angle, curvature, etc. can be considered. In this example, an angle is used as the path change index. The number of additional passing points 503 is a group of fields that store the number of passing points to be added before and after the passing point corresponding to the entry. In this example, there is a field for each value of the parameter α for adjusting the number of passing points.

[0056] FIG. 6 is a diagram showing an example of the data structure of the work history information 144 of Example 1.

[0057] The operation history information 144 stores an entry including the date and time 601, the operation name 602, and the deviation amount 603. There is one entry for each executed operation.

[0058] The date and time 601 is a field that stores the date and time when the operation was performed. The operation name 602 is the same field as the operation name 301. The deviation amount 603 is a field that stores the amount of change from the orbit corresponding to the orbit data in the operation, that is, the deviation amount from the target angle of each joint.

[0059] Figure 7 is a diagram showing an example of the data structure of the correlation analysis information 145 of Example 1.

[0060] The correlation analysis information 145 stores an entry including the operation name 701 and the correlation 702. There is one entry for each operation.

[0061] The operation name 701 is the same field as the operation name 301. The correlation 702 is a group of fields that store values indicating the presence or absence of a correlation between the passage of time and the deviation amount from the target angle of the joint. The correlation 702 includes as many fields as the number of joints. When there is a correlation between the passage of time and the deviation amount from the target angle of the joint, "1" is stored in the field, and when there is no correlation, "0" is stored in the field.

[0062] Next, the processing executed by the computer 101 will be described. In Example 1, the processing of updating the orbit by newly adding a waypoint to the orbit and the processing of updating the orbit during control will be described. The processing of generating the maintenance instruction information 146 based on the analysis of the operation history will be described in Example 2.

[0063] When the orbit information generation unit 130 receives information about an operation from the user, it generates orbit data based on the equipment configuration information 140 and the operation information 141, and stores the orbit data in the orbit information 142. The information to be received includes the name of the operation, the start point coordinates, the end point coordinates, the type of tool, the type of part, and the type of equipment to be used, etc.

[0064] For example, based on the starting point coordinates and the facility configuration information 140, the trajectory information generation unit 130 determines an initial posture at the start of the operation such that the robot 100 does not collide with an obstacle, and based on the ending point coordinates and the facility configuration information 140, determines a final posture at the end of the operation such that the robot 100 does not collide with an obstacle. The trajectory information generation unit 130 generates a trajectory during the operation such that the robot does not collide with an obstacle based on the initial posture, the final posture, and the facility configuration information 140. As a method for generating the trajectory, a known method such as RRT (Rapidly-exploring Random Tree) may be used.

[0065] FIG. 8 is a flowchart for explaining an example of the work control process executed by the computer 101 in the first embodiment. FIG. 9 is a diagram showing an example of the screen displayed by the computer 101 in the first embodiment. FIGS. 10A, 10B, and 10C are diagrams showing an example of the method for updating the trajectory by the computer 101 in the first embodiment.

[0066] The waypoint determination unit 131 of the computer 101 presents a screen 900 as shown in FIG. 9 and accepts user input (step S101).

[0067] The screen 900 includes a display column 901, input columns 902, 904, read buttons 903, 905, a pattern display column 906, an analysis button 907, and an execution button 908.

[0068] The display column 901 is a column for displaying the trajectory of the robot during the operation and the like. The input column 902 is a column for inputting the facilities used in the operation. When the read button 903 is operated, values related to the facilities input to the input column 902 are read from the facility configuration information 140. The input column 904 is a column for inputting the name of the operation. When the read button 905 is operated, the trajectory data corresponding to the operation is read.

[0069] The pattern display column 906 is a column that displays the orbit update pattern generated based on the analysis result of the orbit. The orbit update pattern is displayed as an entry including ID911, the number of waypoints to be added 912, and selection 913. ID911 is a field that stores the identification information of the orbit update pattern. The number of waypoints to be added 912 is a group of fields that store the number of waypoints to be added before and after the waypoint. Selection 913 is a field that stores a flag indicating whether to adopt the orbit update pattern. The user refers to the pattern display column 906 and operates the selection 913 of the entry of the orbit update pattern to be adopted.

[0070] The analysis button 907 is an operation button for instructing the analysis of the orbit. The user operates the input fields 902, 904 and the load buttons 903, 905, and then operates the analysis button 907. In the display column 901, the robot 100 and the orbit are displayed based on the information obtained from the equipment configuration information 140 and the orbit data. At this point, the pattern display column 906 is blank.

[0071] The execution button 908 is an operation button for instructing the start of work. The user selects one orbit update pattern from the orbit update patterns displayed in the pattern display column 906 and operates the execution button 908. In the display column 901, the orbit updated based on the orbit update pattern and the orbit updated during the work are displayed together with the execution state of the work.

[0072] When the analysis button 907 is operated, the waypoint determination unit 131 of the computer 101 acquires the equipment information and orbit data input via the screen 900 (step S102).

[0073] The waypoint determination unit 131 of the computer 101 calculates the route change index between waypoints based on the orbit data (step S103). Here, an example of the calculation method of the route change index will be described.

[0074] (S103-1) The via-point determination unit 131 generates an empty table 500. The via-point determination unit 131 associates the table 500 with the name of the operation and stores it in the work area.

[0075] (S103-2) The via-point determination unit 131 selects one target via-point from among the via-points included in the trajectory. Assume that the target via-point is selected according to the movement order. At this time, the via-point determination unit 131 adds one entry to the table 500, and sets the identification information of the target via-point in the via-point 501 of the added entry.

[0076] (S103-3) The via-point determination unit 131 calculates the vector quantity connecting the target via-point and the via-point one before the target via-point, and the vector quantity connecting the target via-point and the via-point one after the target via-point. For example, for a trajectory including five via-points A, B, C, D, and E, assume that the target via-point is B, and the coordinates of the via-points A, B, and C are (A X , A Y , A Z ), (B X , B Y , B Z ), (C X , C Y , C Z ). In this case, the vector quantities shown in formulas (1) and (2) are calculated.

[0077]

Equation

[0078]

Equation

[0079] (S103-4) The via-point determination unit 131 calculates, using the vector quantities calculated from each of formulas (1) and (2), the angle θ B formed by the partial path AB and the partial path BC as a path change index. Here, the angle θ B is calculated based on formula (3).

[0080]

Number

[0081] The waypoint determination unit 131 sets the calculated angle to the angle 502 of the entry added to the table 500.

[0082] (S103-5) If the processing has not been completed for all the waypoints included in the trajectory, the waypoint determination unit 131 returns to S103-2. If the processing has been completed for all the waypoints included in the trajectory, the waypoint determination unit 131 ends the processing of step S103. Note that when the start point and the end point of the trajectory are target waypoints, the calculation of the vector quantity and the angle is not performed.

[0083] Note that instead of the angle, the curvature of the path connecting the target waypoint, the waypoint immediately before the target waypoint, and the waypoint immediately after the target waypoint may be calculated. The above is the description of the processing of step S103.

[0084] The waypoint determination unit 131 of the computer 101 calculates the number of waypoints to be added for each waypoint (step S104). Specifically, the following processing is executed.

[0085] (S104-1) The waypoint determination unit 131 selects one target waypoint from the waypoints included in the trajectory. It is assumed that the target waypoint is selected in the order of movement.

[0086] (S104-2) The waypoint determination unit 131 sets the value of the parameter α. In this embodiment, it is assumed that the change pattern of the parameter is preset.

[0087] (S104-3) The waypoint determination unit 131 acquires the angle θ from an entry corresponding to the target waypoint in the table 500. The waypoint determination unit 131 substitutes the parameter α and the angle θ into the formula (4), and calculates, as the number of additional waypoints, the value obtained from the formula (4) with the decimal part truncated.

[0088] [Number]

[0089] The waypoint determination unit 131 sets the calculated value in the field corresponding to the parameter α of the number of additional waypoints 503 of the entry added to the table 500.

[0090] In the case of the trajectory shown in FIG. 10A, the angle θ of the waypoint C is 30 degrees, and the angle θ of the waypoint D is 100 degrees. When the parameter α is 30, the number of additional waypoints for the waypoint C is "1", and the number of additional waypoints for the waypoint D is "3".

[0091] (S104-4) The waypoint determination unit 131 determines whether the processing has been completed for all parameter patterns. If the processing has not been completed for all parameter patterns, the waypoint determination unit 131 returns to S104-2.

[0092] (S104-5) If the processing has been completed for all parameter patterns, the waypoint determination unit 131 determines whether the processing has been completed for all waypoints included in the trajectory. If the processing has not been completed for all waypoints included in the trajectory, the waypoint determination unit 131 returns to S104-1.

[0093] (S104-6) If the processing has been completed for all waypoints included in the trajectory, the waypoint determination unit 131 presents information in the pattern display column 906 based on the table 500. Then, the waypoint determination unit 131 ends the processing of step S104.

[0094] The user refers to the pattern display column 906 and selects the trajectory update pattern to be adopted. When the waypoint determination unit 131 receives the selection of the trajectory update pattern, it calls the trajectory update unit 133.

[0095] The trajectory update unit 133 of the computer 101 updates the trajectory data based on the trajectory update pattern (step S105). Specifically, the following processing is executed.

[0096] (S105-1) The trajectory update unit 133 selects one field (waypoint) from the number of waypoints to be added 912 of the trajectory update pattern.

[0097] (S105-2) The trajectory update unit 133 adds new waypoints before and after the waypoint corresponding to the selected field based on the value of the selected field. For example, the trajectory update unit 133 alternately adds new waypoints before and after the waypoint corresponding to the field. In this embodiment, new waypoints are added based on the following criteria. (Criterion 1) New waypoints are added in the order before the waypoint corresponding to the field and after the waypoint corresponding to the field. (Criterion 2) In the path between waypoints, new waypoints are added so that the distances between waypoints are equidistant.

[0098] When the waypoint corresponding to the field is C, C' is added before C. 1 When the waypoint corresponding to the field is D, D' is added before D. 1 D'' is added after D. 3 D' is added before D. 2 As a result, the trajectory shown in Fig. 10A is updated as shown in Fig. 10B.

[0099] (S105-3) The trajectory update unit 133 calculates the joint angle at the added waypoint from the coordinates of the waypoint corresponding to the field, the waypoints before and after the waypoint corresponding to the field, and the added waypoints, and the joint angles of the waypoints before and after the waypoint corresponding to the field. For example, C' 1The angle of the joint is the value obtained by adding the angles of the joints of C and D and dividing the sum by 2.

[0100] (S105-4) The orbit update unit 133 updates the orbit data based on the processing results of S105-2 and S105-3.

[0101] (S105-5) The orbit update unit 133 determines whether the processing has been completed for all fields of the number of waypoint additions 912 in the orbit update pattern. If the processing has not been completed for all fields of the number of waypoint additions 912 in the orbit update pattern, the orbit update unit 133 returns to S105-1. If the processing has been completed for all fields of the number of waypoint additions 912 in the orbit update pattern, the orbit update unit 133 notifies the waypoint determination unit 131 of the completion of the processing and ends the processing of step S105.

[0102] When the execution button 908 is operated, the control information generation unit 132 of the computer 101 starts the control process (step S106). The control process is repeatedly executed until a series of operations such as gripping an object and moving the object along an orbit are completed.

[0103] The control information generation unit 132 of the computer 101 acquires the operating state information and the working state information from the robot 100 (step S107). Note that step S107 may be omitted at the start point of the orbit.

[0104] The control information generation unit 132 of the computer 101 generates control information based on the orbit data, the operating state information, the working state information, etc., and outputs the control information to the robot 100 (step S108). The control information includes command values for realizing the posture of the robot 100 after the control period Δt. For example, if the current posture is S t , the posture after the control period Δt is S t+1 , and the number of control times is N c , the command value C can be calculated using Equation (5).

[0105]

Equation

[0106] N c is given by Equation (6). T is the current time, T n is the arrival time of the next waypoint, and Δt represents the control period.

[0107] [Number]

[0108] Based on the current position of the tool of the robot 100, the control information generation unit 132 of the computer 101 determines whether the tool has reached the waypoint (step S109).

[0109] If the tool has not reached the waypoint, the control information generation unit 132 of the computer 101 proceeds to step S111.

[0110] If the tool has reached the waypoint, the control information generation unit 132 of the computer 101 calls the trajectory update unit 133. The trajectory update unit 133 updates the trajectory data based on the trajectory data, the operating state information, the working state information, etc. (step S110).

[0111] Specifically, the trajectory update unit 133 changes the position of the waypoint included in the trajectory data, and also changes the target value of the joint angle along with the change in the position of the waypoint. At this time, the trajectory update unit 133 calculates the deviation amount of the joint angle at the changed waypoint. The trajectory update unit 133 notifies the control information generation unit 132 of the completion of the process together with the deviation amount of the joint angle. When the control information generation unit 132 receives the notification, it stores the deviation amount of the joint angle in the work area and proceeds to step S111.

[0112] As a method for updating the trajectory data, for example, the following two methods can be considered. (Method 1) The trajectory update unit 133 updates the trajectory data based on the information defining the value included in the operating state information and the amount of change in the trajectory. (Method 2) The trajectory update unit 133 updates the trajectory data using a trajectory change model generated by machine learning. The trajectory change model is, for example, a neural network that takes operating state information as input.

[0113] As a policy for updating the trajectory data, when the generation of inertial force exceeding the assumption is detected during the movement of the trajectory, it is conceivable to reduce the curvature.

[0114] Note that the number of waypoints to be changed at one time in the update of the trajectory data changes according to the deviation amount of the joint angle. At the waypoint C in FIG. 10C, when there is no need to change the waypoints after the waypoint D' 1 onward, the number of waypoints to be changed is 0. In this case, the robot 100 moves in accordance with the posture of the waypoint D' 1 At the waypoint D' in FIG. 10C 1 when there is a need to change the waypoint D', the waypoints are sequentially changed until there is no need to change at the next waypoint. By changing the waypoint D' 2 if the change in the path between the waypoint D' 2 and the waypoint D is large, the trajectory update unit 133 changes the waypoint D. Further, by changing the waypoint D, if the change in the path between the waypoint D and the waypoint D' 2 is large, the trajectory update unit 133 updates the waypoint D' 3 As a result, the number of waypoints to be updated simultaneously at the waypoint D' 3 is 3. 1 If the work is not completed, the control information generation unit 132 of the computer 101 returns to step S106 and executes the same processing.

[0115] If the work is completed, the control information generation unit 132 of the computer 101 ends the control process (step S111) and registers the work history in the work history information 144 (step S112). Thereafter, the control information generation unit 132 of the computer 101 ends the work control process.

[0116]

[0117] ​Specifically, the control information generation unit 132 adds an entry to the work history information 144, sets the start date and time of the work to the date and time 601 of the added entry, and sets the name of the work to the work name 602. The control information generation unit 132 integrates the deviation amounts of the joint angles stored in the work area, and sets the integration result to the deviation amount 603 of the added entry.

[0118] In addition, in the first embodiment, although one computer 101 executes the processing, a computer system including a plurality of computers 101 may perform the same processing. In this case, the functional units may be distributed and arranged among the plurality of computers 101.

[0119] The computer 101 of the first embodiment adds waypoints to a path with a large change in shape in the trajectory. By adjusting the control granularity for the change in the shape of the trajectory, the control accuracy can be improved. In addition, the position of the waypoint on the trajectory, that is, the number of times of changing the shape of the trajectory can be increased. In the case of the trajectory shown in FIG. 10A, the number of updates of the trajectory data between waypoint C and waypoint E was 1 time. On the other hand, in the case of the trajectory shown in FIG. 10B, the number of updates of the trajectory data between waypoint C and waypoint E is 4 times. Therefore, the computer 101 can flexibly change the trajectory and according to the state. By smoothly controlling the movement of the robot, the operation rate of the robot can be improved even in a production line with large changes in production conditions.

Embodiment

[0120] In the prior art, control information is generated according to the state of the robot 100. Therefore, even when there is an abnormality in equipment or the like, the work is performed normally and there is a problem that the abnormality is overlooked. In the second embodiment, the computer 101 analyzes the work history, identifies damaged parts due to aging deterioration, etc. based on the analysis result, and generates maintenance instruction information 146 to prompt maintenance.

[0121] FIG. 11 is a flowchart for explaining an example of maintenance instruction information generation processing executed by the computer 101 of Example 2. FIG. 12 is a diagram showing an example of a screen displayed by the computer 101 of Example 2. FIG. 13 is a diagram showing an example of a correlation between a date and time and a deviation amount of a joint angle. FIG. 14 is a diagram showing an example of a clustering result by the computer 101 of Example 2.

[0122] The work history analysis unit 134 of the computer 101 presents a screen 1200 as shown in FIG. 12 and accepts user input (step S201).

[0123] The screen 1200 includes input fields 1201, 1203, an analysis button 1202, a confirmation button 1204, and display fields 1205, 1206.

[0124] The input field 1201 is a field for inputting the time range of the work history to be acquired. Note that the number of work histories may be input. When the analysis button 1202 is operated, the process of shifting to step S202 is executed.

[0125] The input field 1203 is a field for inputting the name of the work for confirming the maintenance instruction information 146. When the confirmation button 1204 is operated, the maintenance instruction information generation unit 135 displays the processing result related to the work specified in the display field 1205 and displays the maintenance instruction information 146 related to the work specified in the display field 1205.

[0126] The work history analysis unit 134 of the computer 101 acquires the work history from the work history information 144 (step S202). Note that the type of work of the work history to be acquired is not limited.

[0127] The work history analysis unit 134 of the computer 101 analyzes the correlation between the deviation amount from the target value of the joint and the date using the work history of each work (step S203). Specifically, the following processing is executed.

[0128] (S203-1) The work history analysis unit 134 generates a list of works using the acquired work history.

[0129] (S203-2) The work history analysis unit 134 selects one work from the work list and acquires the work history of the selected work. At this time, the work history analysis unit 134 adds an entry to the correlation analysis information 145, and sets the name of the selected work to the work name 701 of the added entry.

[0130] (S203-3) The work history analysis unit 134 selects one joint from the joints. The work history analysis unit 134 reads out the deviation amount and date / time of the angle of the selected joint from the work history, and determines whether there is a correlation between the passage of time and the deviation amount of the joint angle. For example, as shown in FIG. 13, it can be seen that the deviation amount of the joint angle increases with the passage of time, and there is a correlation between the two.

[0131] (S203-4) The work history analysis unit 134 reflects the analysis result of the correlation in the correlation analysis information 145. Specifically, the work history analysis unit 134 sets "0" or "1" in the field corresponding to the joint of the correlation 702 of the added entry.

[0132] (S203-5) The work history analysis unit 134 determines whether the processing has been completed for all joints. If the processing has not been completed for all joints, the work history analysis unit 134 returns to S203-3.

[0133] (S203-6) If the processing has been completed for all joints, the work history analysis unit 134 determines whether the processing has been completed for all the works registered in the work list. If the processing has not been completed for all the works registered in the work list, the work history analysis unit 134 returns to S203-2. If the processing has been completed for all the works registered in the work list, the work history analysis unit 134 ends the processing of step S203.

[0134] The work history analysis unit 134 of the computer 101 executes clustering using the correlation analysis information 145 (step S204).

[0135] Specifically, the work history analysis unit 134 sets the correlation 702 of the entry of the correlation analysis information 145 as a feature amount, and performs clustering based on the position of the feature amount in the feature amount space. A known technique such as k-means may be used as the clustering method. As a result of the process in step S204, for example, clusters as shown in FIG. 14 are generated.

[0136] The work history analysis unit 134 of the computer 101 starts the common item analysis process (step S205). The work history analysis unit 134 selects one cluster from the clusters generated by clustering.

[0137] The work history analysis unit 134 of the computer 101 identifies the common items of the cluster (step S206).

[0138] Specifically, the work history analysis unit 134 identifies common items regarding joints, tools, parts, and equipment that are correlated with the passage of time of the work belonging to the cluster. For example, in the example shown in FIG. 14, it is shown that the suction hand A is identified as a common item from cluster A, parts G and joints J3 and J5 are identified from cluster B, joint J2 is identified from cluster C, and joint J1 and part A are identified from cluster D.

[0139] When the deviation amount of the joint angle increases with the passage of time, there is a high possibility that some trouble has occurred in the joint, tool, and equipment. The work history analysis unit 134 of the present embodiment identifies the common items in the clusters of work histories with similar correlation tendencies as the factors of trouble.

[0140] The work history analysis unit 134 of the computer 101 calls the maintenance instruction information generation unit 135. At this time, the work history analysis unit 134 outputs the information of the identified common items to the maintenance instruction information generation unit 135. The maintenance instruction information generation unit 135 generates maintenance instruction information 146 that prompts maintenance regarding the common items (step S207), and notifies the work history analysis unit 134 of the completion of the process.

[0141] If the processing for all clusters is not completed, the work history analysis unit 134 returns to step S205. If the processing for all clusters is completed, the work history analysis unit 134 ends the maintenance instruction information generation process.

[0142] Note that, by means other than the correlation analysis, the cause of the defect may be specified based on the deviation amount of the joint angle. For example, a determination rule based on the comparison between the deviation amount of the joint angle and a threshold value may be used, or a model generated by machine learning may be used. The model takes as input the change pattern of the deviation amount of the joint angle and outputs the presence or absence of an abnormality.

[0143] Note that, in the second embodiment, one computer 101 executed the processing, but a computer system including a plurality of computers 101 may perform the same processing. In this case, the functional units may be distributed and arranged among the plurality of computers 101.

[0144] The computer 101 of the second embodiment can specify the cause of the abnormality based on the variation tendency of the deviation amount of the joint angle and prompt maintenance regarding the cause. As a result, the occurrence of equipment abnormalities and the like can be suppressed, and the operation rate of the equipment can be improved.

[0145] Note that the present invention is not limited to the above-described embodiments, and includes various modifications. Also, for example, the above-described embodiments are those in which the configuration is described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Also, for a part of the configuration of each embodiment, it is possible to add to, delete from, or replace with other configurations.

[0146] In addition, some or all of the above-described configurations, functions, processing units, processing means, etc. may be realized in hardware by designing them, for example, in an integrated circuit. Further, the present invention can also be realized by a program code of software that realizes the functions of the embodiments. In this case, a storage medium storing the program code is provided to a computer, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the same constitute the present invention. As a storage medium for supplying such a program code, for example, a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an SSD (Solid State Drive), an optical disk, a magneto-optical disk, a CD-R, a magnetic tape, a non-volatile memory card, a ROM, etc. are used.

[0147] In addition, the program code for realizing the functions described in this embodiment can be implemented in a wide range of programs or script languages such as assembler, C / C++, perl, Shell, PHP, Python, Java (registered trademark), etc.

[0148] Furthermore, by distributing the program code of the software that realizes the functions of the embodiments via a network, it can be stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R, and a processor included in the computer reads and executes the program code stored in the storage means or the storage medium.

[0149] In the above-described embodiments, the control lines and information lines show those considered necessary for explanation, and not necessarily all the control lines and information lines on the product are shown. All the components may be interconnected.

Explanation of Reference Numerals

[0150] 100 Robot 101 Computer 110 Working device group 111 Controller 112 Measuring device 120 Arithmetic unit 121 Memory device 122 Communication device 123 Input device 124 Output device 130 Track information generation unit 131 Waypoint determination unit 132 Control information generation unit 133 Track update unit 134 Work history analysis unit 135 Maintenance instruction information generation unit 140 Equipment configuration information 141 Work information 142 Track information 143 Track analysis information 144 Work history information 145 Correlation analysis information 146 Maintenance instruction information 900 and 1200 screens

Claims

1. A computer system for controlling a robot that performs operations including grasping an object and moving the object, including a plurality of computers having an arithmetic unit, a storage device connected to the arithmetic unit, and an interface connected to the arithmetic unit, holding trajectory information for managing trajectory data regarding a trajectory when grasping and moving the object in the operation of the robot for each operation, the trajectory data including position information of a plurality of waypoints set at equal intervals on the trajectory, the computer system having an algorithm for calculating the number of additional waypoints to be added to the partial path from an index representing the degree of curvature of the partial path, which is a part of the trajectory, and a parameter, the algorithm being an algorithm for calculating a larger number of the additional waypoints for the partial path with a larger degree of curvature, at least one of the computers, when controlling the robot that executes the first operation, analyzes the shape of the trajectory defined by the trajectory data of the first operation, calculates the index of the partial path based on the result of the analysis, calculates the number of additional waypoints based on the index, updates the trajectory data by adding the number of waypoints to the partial path, controls the robot that executes the first operation using the updated trajectory data, the trajectory data including information on the posture of the robot at each of the plurality of waypoints, the trajectory defined by the trajectory data of the first operation includes a first waypoint, at least one of the computers, in controlling the robot that executes the first operation using the updated trajectory data, determines the control content of the robot based on the current posture of the robot and the posture of the robot at one of the waypoints, and transmits control information including the control content to the robot, when the robot reaches the first waypoint during the control of the robot using the updated trajectory data, based on the actual posture of the robot at the first waypoint and the posture of the robot at the first waypoint defined in the updated trajectory data, if inertial force greater than expected is generated, updates the positions of the waypoints after the first waypoint so that the change in the trajectory becomes smaller. A computer system characterized by this.

2. The computer system according to claim 1, wherein at least one of the computers, Generate the additional number of patterns using the parameter of any value, Present the additional number of patterns to the user, A computer system, characterized in that the trajectory data is updated using the additional number of patterns specified by the user. **Claim 3**: The computer system according to claim 1, wherein at least one of the computers, calculates the amount of deviation between the actual posture of the robot at the first waypoint and the posture of the robot at the first waypoint defined in the updated trajectory data, and determines the number of waypoints after the first waypoint for updating the position based on the amount of deviation. A computer system characterized by this. **Claim 4**: The computer system according to claim 1, wherein the robot includes a plurality of joints, the information on the posture of the robot is the target values of the plurality of joints, holds work history information for managing the execution history of the work, the execution history of the work includes the amount of deviation from the target values of the plurality of joints defined in the trajectory data, wherein at least one of the computers, acquires the execution histories of the plurality of works, analyzes, for the plurality of joints, the presence or absence of a correlation between the passage of time and the amount of deviation using the execution histories of the plurality of works, generates a feature amount composed of values indicating the presence or absence of correlation for each of the plurality of joints based on the result of the correlation analysis, performs clustering using the feature amount, identifies items common to the clusters generated by the clustering, and generates an instruction for maintenance work on the robot from the common items and presents it to the user. A computer system characterized by this. **Claim 5**: The computer system according to claim 4, wherein at least one of the computers identifies the common items by analyzing the content of the work history corresponding to the feature amount included in the cluster and the feature amount. A computer system characterized by this. **Claim 6**: A control method for a robot that performs operations including grasping and moving an object, which is executed by a computer system, wherein the computer system, includes a plurality of computers having an arithmetic unit, a storage device connected to the arithmetic unit, and an interface connected to the arithmetic unit, and holds trajectory information for managing trajectory data regarding the trajectory when the object is grasped and moved in the work of the robot for each work. The track data includes position information of a plurality of waypoints set at equal intervals on the track. The computer system has an algorithm for calculating the number of waypoints to be added to the partial path from an index representing the degree of curvature of a partial path that is part of the track and a parameter. The algorithm is an algorithm that calculates a larger number of the additions for the partial path with a greater degree of curvature. The method for controlling the robot is as follows. When at least one of the computers controls the robot performing the first operation, a first step of analyzing the shape of the track defined by the track data of the first operation; A second step in which at least one of the computers updates the track data by adding a predetermined number of waypoints to the partial path based on the result of the analysis; A third step in which at least one of the computers controls the robot performing the first operation using the updated track data, including: The second step includes: A step in which at least one of the computers calculates the index of the partial path; A step in which at least one of the computers calculates the number of additions based on the index; A step in which at least one of the computers adds the number of waypoints to the partial path, including: The track data includes information on the posture of the robot at each of the plurality of waypoints. The track defined by the track data of the first operation includes a first waypoint. The third step includes: A fourth step in which at least one of the computers determines the control content of the robot based on the current posture of the robot and the posture of the robot at one of the waypoints, and transmits control information including the control content to the robot; A fifth step in which when the robot reaches the first waypoint during the control of the robot using the updated track data, at least one of the computers updates the position of the waypoint after the first waypoint so that the change in the track is reduced if inertial force greater than expected is generated based on the actual posture of the robot at the first waypoint and the posture of the robot at the first waypoint defined in the updated track data. A method for controlling a robot, characterized by including: **Claim 7**: The method for controlling a robot according to claim 6, wherein The second step is at least one of the computers generating the additional number of patterns using the parameter of any value; at least one of the computers presenting the plurality of the additional number of patterns to the user; at least one of the computers updating the trajectory data using the additional number of patterns specified by the user, wherein the method for controlling a robot is characterized by including these steps.

8. The method for controlling a robot according to claim 6, wherein the fifth step is at least one of the computers calculating a deviation amount between the actual posture of the robot at the first waypoint and the posture of the robot at the first waypoint defined in the updated trajectory data; at least one of the computers determining the number of waypoints after the first waypoint for updating the position based on the deviation amount, wherein the method for controlling a robot is characterized by including these steps.

9. The method for controlling a robot according to claim 6, wherein the robot includes a plurality of joints; the information on the posture of the robot is the target values of the plurality of joints; the robot holds work history information for managing the execution history of the work; the execution history of the work includes a deviation amount from the target values of the plurality of joints defined in the trajectory data; the method for controlling the robot is a sixth step in which at least one of the computers acquires the execution histories of the plurality of works; a seventh step in which at least one of the computers analyzes the presence or absence of a correlation between the passage of time and the deviation amount for the plurality of joints using the execution histories of the plurality of works; an eighth step in which at least one of the computers generates a feature amount composed of values indicating the presence or absence of correlation for each of the plurality of joints based on the result of the correlation analysis; a ninth step in which at least one of the computers performs clustering using the feature amount; a tenth step in which at least one of the computers identifies items common to the clusters generated by the clustering; an eleventh step in which at least one of the computers generates an instruction for maintenance work on the robot from the common items and presents it to the user, wherein the method for controlling a robot is characterized by including these steps.

10. The method for controlling a robot according to claim 9, wherein The tenth step includes a step in which at least one of the computers identifies the common items by analyzing the content of the work history corresponding to the feature amount included in the cluster and the feature amount, and is characterized by a method for controlling a robot.

Citation Information

Patent Citations

  • Control device and machine learning device

    JP2019166626A

  • Trajectory planning device and trajectory planning method and program

    JP2020179466A