Teaching data editor, robot teaching system, and teaching data editing method

WO2025037478A1PCT designated stage expired Publication Date: 2025-02-20HITACHI HIGH TECH CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/022349
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-14
Filing Date
2024-06-20
Publication Date
2025-02-20

Smart Images

  • Figure JP2024022349_20022025_PF_FP_ABST
    Figure JP2024022349_20022025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a teaching data editor for editing teaching data for causing a robot having an actuator to reproduce a desired operation. The teaching data of the present invention is obtained by acquiring a plurality of state quantities, which express the operation of a robot which is caused to operate via a user operation, at a fixed time interval. This teaching data editor according to the present invention comprises: an indicator value calculation unit that generates time-series data of an indicator value by calculating an indicator value that changes in conjunction with a change in any component of the state quantity vector from a state quantity vector having, as a component thereof, the state quantity at each timing; an indicator value display unit that displays the time-series data of the indicator value on a display device; and an editing operation unit that performs an editing operation on the state-quantity vector at the timing or interval which is designated by the time-series data of the indicator value displayed on the display device.
Need to check novelty before this filing date? Find Prior Art

Description

Teaching data editing device, robot teaching system, and teaching data editing method

[0001] The present invention relates to a teaching data editing device, a robot teaching system, and a teaching data editing method.

[0002] To simplify the teaching process for robots, a method is known in which a user operates a robot using an operating device, samples multiple robot state variables at regular intervals, and uses the samples as teaching data.Compared to the general teaching playback method, this teaching method allows for intuitive teaching without considering interference between teaching points or the robot posture, but it has the drawback of reproducing wasteful time, such as unnecessary or slow movements, during operation.

[0003] As a technique for solving such problems, Patent Document 1, which enables editing of teaching data, is known. Specifically, paragraph 0018 of the document describes "an input unit 20 that accepts input from a user, and a display unit 21 that displays a graph showing the teaching operation created by the control unit 10 and an editing screen for the graph." Paragraph 0032 of the document also describes: "On the left side of the screen of the display unit 21 (the left side of the page in FIG. 2 ), the teaching operation trajectory of the parallel link robot 100 is graphed in chronological order for each axis. In each of these graphs, the horizontal axis represents time and the vertical axis represents the coordinate value of each axis. The current position and orientation of the movable plate 3 are indicated by a current position pointer 31. ... The current position is expressed by the coordinates (X-axis, Y-axis, Z-axis) of the virtual point at the current center of the movable plate 3 and the rotation amounts (θx-axis, θy-axis, θz-axis) around the X-axis, Y-axis, and Z-axis of the surface of the movable plate 3 that includes this virtual point." Furthermore, paragraph 0015 of the same document states that "the editing unit 15 edits the graph by changing the points on the graph (hereinafter referred to as "editing points") that indicate the position and posture of the movable plate 3 at the time specified by the user in response to operations from the user."

[0004] JP 2013-059852 A

[0005] However, in the technology described in Patent Document 1, all of the robot's state quantities are displayed on the display unit, and because a large amount of information is displayed, it is difficult for users, especially those who are not familiar with robot work instruction, to understand the robot's operations and to understand wasted time caused by unnecessary movements or slow movements during operation.

[0006] In view of the above-mentioned problems, the present invention aims to provide a teaching data editing device, a robot teaching system, and a teaching data editing method that allow a user to easily grasp the wasted time in teaching operations to a robot.

[0007] The teaching data editing device of the present invention is, for example, a teaching data editing device that edits teaching data for causing a robot having an actuator to reproduce a desired movement, the teaching data being data obtained at regular time intervals for a plurality of state quantities that represent the movement of the robot operated by a user, and the device is equipped with: an index value calculation unit that generates time series data of the index values ​​by calculating, from a state quantity vector having the state quantities as components for each time, an index value that changes in conjunction with changes in any component of the state quantity vector; an index value display unit that displays the time series data of the index values ​​on a display device; and an editing operation unit that performs editing operations on the state quantity vector for a time or interval specified by the time series data of the index values ​​displayed on the display device.

[0008] Furthermore, a robot teaching system of the present invention is, for example, a robot teaching system including a robot having an actuator, and a robot teaching device that generates teaching data for causing the robot to reproduce a desired movement, wherein the robot teaching device includes: an operation receiving unit that receives movement commands that a user teaches to the robot; a robot control unit that controls the robot based on the movement commands; a state acquisition unit that acquires, at regular time intervals, a state quantity vector having a plurality of state quantities that represent the movement of the robot as components; a teaching data generation unit that organizes the state quantity vector as time-series data; an index value calculation unit that calculates, from the state quantity vector for each time, an index value that changes in conjunction with changes in any of the components of the state quantity vector, thereby generating time-series data of the index values; an index value display unit that displays the time-series data of the index values ​​on a display device; and an editing operation unit that performs editing operations on the state quantity vector for a time or interval specified by the time-series data of the index values ​​displayed on the display device.

[0009] Furthermore, the teaching data editing method of the present invention is, for example, a teaching data editing method using a teaching data editing device that edits teaching data for causing a robot having an actuator to reproduce a desired motion, the teaching data editing device comprising an index value calculation unit, an index value display unit, and an editing operation unit, the index value calculation unit calculates an index value that changes in conjunction with changes in any component of a state quantity vector, from a state quantity vector having the state quantity as its components for each time, to generate time series data of the index value, the index value display unit displays the time series data of the index value on a display device, and the editing operation unit performs editing operations on the state quantity vector for a time or interval specified by the time series data of the index value displayed on the display device.

[0010] According to the present invention, it is possible to provide a teaching data editing device, a robot teaching system, and a teaching data editing method that allow a user to easily grasp the dead time in the teaching operation of a robot. Other objects and novel features will become apparent from the description of this specification and the accompanying drawings.

[0011] 6A is a diagram illustrating robot operation in Example 1. FIG. 6B is a diagram illustrating an example of teaching data for the robot of FIG. 1. FIG. 6C is a diagram illustrating an example of the hardware configuration of a robot control PC. FIG. 6D is a diagram illustrating the overall configuration of a robot teaching system in Example 1. FIG. 6E is a diagram illustrating an example of a teaching data editing GUI in Example 1. FIG. 6F is a diagram illustrating an example of a robot state display by a simulator display unit. FIG. 6G is a diagram illustrating an example of a data point correction GUI in Example 1. FIG. 6H is a diagram illustrating an example of a flow related to determining the validity of an editing operation. FIG. 6H is a diagram illustrating calculations including a normalization process in Example 1. FIG. 6I is a diagram illustrating an example of a robot whose operation is expressed by a plurality of different types of state quantities. FIG. 6I is a diagram illustrating an example of teaching data for the robot of FIG. 6A. FIG. 6I is a diagram illustrating the configuration of a robot teaching device in Example 2. FIG. 6J is a diagram illustrating an example in which time-series data of index values ​​is displayed as a plurality of movement sections. FIG. 6J is a diagram illustrating the state of robot operation having a plurality of operating devices and teaching data in Example 3. FIG. 6J is a diagram illustrating an example of teaching data including information on the operating devices. FIG. 6J is a diagram illustrating a robot teaching system in Example 3. FIG. 6J is a diagram illustrating an example of teaching data for the robot teaching system of FIG. 6A.

[0012] Hereinafter, the present embodiment will be described with reference to the drawings. Note that the drawings show embodiments and implementation examples according to the principles of the present disclosure, but these are for understanding the present disclosure and are not to be used to interpret the present disclosure in a limiting manner. The descriptions in this specification are merely typical examples and are not intended to limit the scope or application of the present disclosure in any way.

[0013] Although the present embodiment has been described in sufficient detail to enable those skilled in the art to implement the present disclosure, it should be understood that other implementations and forms are possible, and that configurations and structures can be changed and various elements can be substituted without departing from the scope of the technical idea of ​​the present disclosure. Therefore, the following description should not be interpreted as being limited thereto.

[0014] FIG. 1A is a diagram illustrating robot operation in Example 1. The robot 1 has at least two actuators 10a and 10b. The actuators 10a and 10b are rotary actuators. The robot 1 is connected to a robot control PC 11, and a user 4 operates at least one operating device 20a to move the robot 1 and teach it how to move. The operating device 20a may be a teaching pendant or the like.

[0015] 1B is a diagram showing an example of teaching data 240a for the robot 1. The teaching data 240a is data for causing the robot to reproduce a desired movement. In this embodiment, the teaching data 240a is recorded by acquiring the rotation angles of the actuator 10a (Actuator A) and the actuator 10b (Actuator B) at regular time intervals (e.g., 0.1 second intervals) using an angle sensor (not shown) when the user 4 operates the robot 1 using the operation device 20a.

[0016] The rotation angles of the actuators 10a and 10b are observable physical quantities that represent the motion of the robot 1. Physical quantities that change according to the motion of the robot, such as these physical quantities, are called state quantities. In addition to the rotation angles, examples of state quantities include velocity, acceleration, current, force, and torque. Furthermore, the state quantities are not limited to those related to the motion of the actuators. For example, they may be something like the position of the tip of the robot acquired by a TOF sensor or the like. Note that, hereinafter, a vector whose components are state quantities is called a state quantity vector. In this embodiment, a vector consisting of two components, the rotation angle of the actuator 10a and the rotation angle of the actuator 10b, will be described as an example of the state quantity vector, but the state quantity vector is not limited to this and may have three or more components.

[0017] The robot teaching method of this embodiment will be described. After setting the name of the teaching data to be created using the operating device 20a or the like, the user 4 sends a teaching start signal to the robot control PC 11 and operates the operating device 20a so that the robot 1 performs the desired task. During this time, the robot control PC 11 continues to acquire rotation angle information of the actuators 10a and 10b at regular time intervals. After the desired task is performed by the robot 1, the user 4 sends a teaching end signal to the robot control PC 11 using the operating device 20a or the like. The robot control PC 11 generates time-series data summarizing the state quantity vectors and time information acquired between the teaching start signal and the teaching end signal, and saves the generated time-series data of the state quantity vectors as teaching data 240a with the set teaching data name. For convenience, the above teaching method will be referred to as sampling teaching.

[0018] FIG. 1C is a diagram illustrating an example of the hardware configuration of the robot control PC 11. The robot control PC 11 is realized by an information processing device 40 including, as shown in FIG. 1C, a processor (CPU) 41, a memory 42, a storage device 43, an input device 44, an output device 45, a communication device 46, and a bus 47 as its main components. The processor 41 functions as a functional unit that provides a predetermined function by executing processing in accordance with a program loaded in the memory 42. The storage device 43 stores data and programs used by the functional unit. The input device 44 is a keyboard, a pointing device, etc., and the output device 45 is a display, etc. The communication device 46 enables communication with other information processing devices via a network. These are connected to each other so as to be able to communicate with each other via the bus 47. In this embodiment, the output device 45 of the robot control PC 11 will be described as a display device that displays a GUI, etc., as described below.

[0019] 2 is a diagram (functional block diagram) showing the overall configuration of a robot teaching system 6 in Example 1. The robot teaching system 6 includes a robot 1 and a robot teaching device 2. The robot teaching device 2 includes an operation reception unit 20, a robot control unit 21, a state acquisition unit 22, a teaching data generation unit 23, a teaching data storage unit 24, and an editing unit 3. In this example, the robot teaching device 2 is described as being realized by a robot control PC 11, but is not limited to such a configuration. For example, the robot teaching device 2 may be realized by multiple devices.

[0020] The operation reception unit 20 receives operation commands to be instructed to the robot 1 from the operation device 20a in Fig. 1. The robot control unit 21 controls the robot 1 based on the operation commands received by the operation reception unit 20. The robot control unit 21 also controls the robot 1 based on instruction data from the user and instruction data that has been edited as described below. The state acquisition unit 22 acquires state quantity vectors of the robot 1 at regular time intervals. The instruction data generation unit 23 organizes the state quantity vectors of a specified section as time-series data and stores them in the instruction data storage unit 24.

[0021] The teaching data is edited by the editing unit 3. The editing unit 3 converts the teaching data 240a into time-series data of index values ​​(described later) and displays the converted data, and also accepts and performs editing operations on the teaching data. The editing unit 3 includes, for example, a teaching data selection unit 30, an index value calculation unit 31, an index value display unit 32, a data point designation unit 33, a simulator display unit 34, an editing operation unit 35, and a determination unit 39.

[0022] Next, a method for displaying and editing the teaching data 240a obtained by the sampling teaching will be described. Fig. 3A shows an example of a teaching data editing GUI 3a in the first embodiment.

[0023] For example, as shown in FIG. 3A, the teaching data selection unit 30 displays a selected data name input box 300 and a data selection button 301 on the display device, and accepts the data name of the teaching data when these are operated.

[0024] Specifically, the user 4 inputs the data name of the teaching data to be edited into the selected data name input box 300 and presses the data selection button 301. When the data selection button 301 is pressed, the teaching data selection unit 30 searches the teaching data storage unit 24 for teaching data 240a with the input data name. If the teaching data is found by the search, the index value calculation unit 31 calculates an index value for the found teaching data. If the teaching data is not found, a pop-up window or the like is displayed to notify the user 4 that the teaching data 240a was not found.

[0025] The index value calculation unit 31 acquires the teaching data 240a of the data name input in the input box 300, and calculates an index value from the state quantity vector for each time, thereby generating time-series data of the index value.

[0026] The state quantity vector and the index value will be specifically described. For example, a state quantity vector having m state quantities as components is expressed by equation (1).

[0027]

[0028] Here, t is the time, and m is a natural number equal to or greater than 2. In this embodiment, m=2, and x 1 (t) represents the rotation angle of the actuator 10a, and x 2 (t) represents the rotation angle of the actuator 10b. The index value calculation unit 31 calculates the index value p(t) using, for example, equation (2).

[0029]

[0030] where sqrt() is the square root, x' 1 (t) is x 1 This represents the time derivative (time rate of change) of (t). This time derivative is calculated using the central difference according to equation (3).

[0031]

[0032] where Δt is the time interval for acquiring the state vector, and x 1 (t+Δt) is x 1 represents the state quantity acquired after (t), and x 1(t-Δt) is x 1 In this embodiment, x' represents the state quantity acquired before (t). 1 (t) represents the angular velocity of the actuator 10a, and x' 2 (t) represents the angular velocity of the actuator 10b.

[0033] The index value calculation unit 31 calculates the index value by using each component of the state quantity vector at least once, as in equation (2). Note that in equation (2), the square root of the sum of squares is calculated, but x' 1 Absolute value of (t) and x' 2 The sum of the absolute values ​​of (t) may be calculated. By using the sum of squares or the sum of absolute values, it is possible to prevent the positive and negative components of the state quantity vector from canceling each other out in the calculation of the index value.

[0034] The index value p(t) is expressed using the time rate of change (angular velocity) of each state quantity (rotation angle) of the actuators 10a and 10b, as shown in Equation (2). Therefore, the index value p(t) can be used to determine whether the robot 1 is moving. That is, if the index value p(t) is 0, it means that the robot 1 is not moving at that time. If the index value p(t) is not 0, it means that the robot 1 is moving at that time. Furthermore, the index value p(t) can roughly indicate whether the robot 1 is moving slowly or quickly, depending on the magnitude of the value. Therefore, by displaying the index value p(t) when the user 4 edits the teaching data, it becomes easier to identify dead time, such as periods of inactivity or periods of slow movement.

[0035] The index value calculated as described above can be expressed as a one-dimensional value regardless of the order of the state quantity vector. Therefore, by displaying the index value instead of displaying each component of the state quantity vector, the amount of information the user 4 must view during editing can be reduced, and the time required for editing operations can be expected to be reduced. Furthermore, by calculating the index value using each component of the state quantity vector at least once, as in equation (2), the index value changes in conjunction with changes in any component of the state quantity vector. As a result, changes in each component of the state quantity vector are reflected in the index value without omission, and changes in any component of the state quantity vector can be understood as changes in the index value.

[0036] Furthermore, although the present embodiment uses the rotation angle as the state quantity, even if the state quantity is other than the rotation angle, the state quantity will change over time when the actuator moves, and therefore the time rate of change of the state quantity is a physical quantity that represents the operation of the actuator. Therefore, by calculating an index value using the time rate of change of each component of the state quantity vector, it is possible to at least grasp from the index value whether or not the robot is moving.

[0037] The calculation of the index value is not limited to addition such as the sum of squares or the sum of absolute values ​​described above, and other arithmetic operations or existing functions such as trigonometric functions may be used. Furthermore, in addition to using a change amount using the state quantity before and after time t, such as the time rate of change of the state quantity shown in Equation (2) or (3), the state quantity itself may be used in the calculation, such as the sum of squares of the state quantity. For example, the state quantity may be a state quantity that indicates a change over time, such as velocity.

[0038] The index value display unit 32 displays the time-series data of the index values ​​on a display device. For example, as shown in Fig. 3A, the index value display unit 32 displays the time-series data of the index values ​​as plots on a graph 32a whose horizontal axis represents time and whose vertical axis represents the index values. Each plot represents data for each time in the time-series data of the index values, and hereinafter each plot will be referred to as a data point 320a.

[0039] The data point designation unit 33 accepts the designation of one or more data points in the time-series data of the displayed index values. For example, as shown in FIG. 3A , the data point designation unit 33 displays a seek bar 330, and accepts the designation of a data point by operating the seek bar 330. When the user 4 operates the seek bar 330, the data point at the time currently indicated by the seek bar 330 is displayed in a color different from the other data points. The designated data point will be referred to as a designated data point 331. The user 4 will perform an editing operation on this designated data point 331.

[0040] It is possible to select not just one but multiple designated data points 331. When the select button 350 is pressed, the designated data point 331 at the time the select button 350 was pressed is stored as the selection start point. When the seek bar 330 is operated with the selection start point recorded, the colors of the selection start point, the designated data point 331 currently indicated by the seek bar 330, and all data points 320 between them change, and all of these data points 320 are treated as designated data points 331. User 4 will perform editing operations on all of these designated data points 331.

[0041] When the cancel selection button 351 is pressed, the record of the selection start point is deleted, and the designated data point 331 is again reduced to only one point.

[0042] FIG. 3B is a diagram showing an example of the state display of the robot 1 by the simulator display unit 34. The simulator display unit 34 displays the state of the robot 1 at the time of a specified data point 331 on the display device. Specifically, the simulator display unit 34 acquires the time currently indicated by the seek bar 330 as the specified time and displays on the display device the states of the robot model 1′ and actuator models 10a′ and 10b′ indicated by the state quantity vectors at the specified time in the teaching data, as shown in display 34a. When operating the seek bar 330, the user 4 can understand what state the robot 1 was in at what time by looking at the display device. Note that, as described above, if the selection button 350 is pressed to specify multiple specified data points 331, the simulator display unit 34 may successively display the states of the robot 1 at each of the multiple specified data points 331.

[0043] Next, specific editing operations for the teaching data will be described. The editing operation unit 35 accepts editing operations for the teaching data and performs editing operations on the state quantity vectors of the teaching data at the designated time, with the time of the designated data point 331a being the designated time. In this embodiment, the editing operation unit 35 displays a delete button 352, a modify button 353, a reverse button 354, and a speed change button 355 on the display device, for example, as shown in FIG. 3A . When these buttons are pressed, the editing operation unit 35 accepts editing operations such as delete, modify, reverse, or speed change. Note that, hereinafter, the time of the data point 320a immediately before the designated data point 331a is referred to as the previous time, and the time of the data point 320a immediately after the designated data point 331a is referred to as the later time. Furthermore, as described above, when multiple data points 320 are selected as the designated data points 331, the time from the time of the oldest designated data point 331 to the time of the newest designated data point 331 is referred to as the selection time.

[0044] When the delete button 352 is pressed, the editing operation unit 35 accepts the deletion as an editing operation and deletes the state quantity vector at the specified time in the teaching data. Then, the teaching data is rearranged so that the time interval between the previous time and the next time after the deletion of the state quantity vector at the specified time in the teaching data is equal to the time interval between the previous time and the specified time before the deletion of the state quantity vector at the specified time. When the teaching data has been rearranged, the index value calculation unit 31 regenerates time series data of index values ​​based on the rearranged teaching data. Then, the index value display unit 32 displays the regenerated time series data of index values ​​on the display device.

[0045] When the Modify button 353 is pressed, the editing operation unit 35 displays a data point modification GUI. Then, when the modification content is input to the data point modification GUI, the editing operation unit 35 accepts the modification as an editing operation and modifies the state quantity vector at the specified time in the teaching data.

[0046] FIG. 3C shows an example of a data point correction GUI 3530. Pressing the correction button 353 displays the data point correction GUI 3530 as a pop-up window. The data point correction GUI 3530 displays the time (specified interval) of the specified data point 331 and each state quantity in the specified interval of the teaching data in numerical input boxes 3531a and 3531b, respectively. The user 4 can directly input values ​​into the numerical input boxes 3531a and 3531b, or can use, for example, the numerical value increase buttons 3532a and 3532b and the numerical value decrease buttons 3533a and 3533b to correct the corresponding state quantity to the desired value. After the correction, the user 4 presses the correction confirmation button 3534 to complete the correction operation. Alternatively, the user 4 can press the correction cancel button 3535 to cancel the correction and return to the teaching data editing GUI 3a. The index value calculation unit 31 regenerates time-series data of the index value based on the corrected teaching data. The index value display unit 32 then displays the time-series data of the regenerated index values ​​on a display device.

[0047] As described above, when a plurality of data points 320 are selected as the designated data points 331 and the reverse button 354 is pressed, the editing operation unit 35 accepts the reverse as an editing operation and rearranges the time-series data of the state quantity vectors within the selected time in reverse order in the teaching data. The index value calculation unit 31 regenerates the time-series data of the index values ​​based on the teaching data rearranged in reverse order. The index value display unit 32 then displays the regenerated time-series data of the index values ​​on the display device.

[0048] As described above, when a plurality of data points 320 are selected as designated data points 331 and the speed change button 355 shown in FIG. 3A is pressed, the editing operation unit 35 accepts the speed change as an editing operation and corrects the time interval of the state quantity vector within the selected time in the teaching data to the specified value. The index value calculation unit 31 regenerates time series data of index values ​​based on the teaching data with the corrected time interval. The index value display unit 32 then displays the regenerated time series data of index values ​​on the display device.

[0049] In this embodiment, the index value display unit 32 displays the time-series data of the index values ​​regenerated based on the teaching data that has been edited as data points 320b in the graph 32b on the right side of Fig. 3A. Specifically, the graph 32b shows the time-series data of the index values ​​based on the teaching data that has been edited by deleting some of the data points 320a using the delete button 352.

[0050] Furthermore, 320b of graph 32b corresponds to designated data point 331a of graph 32a. That is, when a designated data point 331a is selected using seek bar 330, if a corresponding data point 320b exists, that data point 320b changes color as designated data point 331b. If a corresponding data point 320b does not exist due to deletion, none of the data points 320b change color. Graph 32b displays the latest data each time an editing operation is performed. Displaying graph 32b makes it easier for user 4 to visually understand how the teaching data 240a changes due to editing operations.

[0051] Finally, enter the data name of the teaching data you want to save in the save data name input box 3560 and press the save button 356.The teaching data generation unit 23 will save the edited data as new teaching data 240a in the teaching data saving unit 24 with the data name entered in the save data name input box 3560.

[0052] However, if editing operations are performed carelessly, there is a possibility that teaching data 240 that cannot be realized by the robot 1 will be generated, so it is necessary to determine whether the editing operations are appropriate. Therefore, the teaching data editing device of this embodiment further includes a determination unit 39 (see FIG. 2) that determines the appropriateness of the editing operations. Figure 4 shows an example of a flow F related to determining the appropriateness of the editing operations.

[0053] First, after the user 4 performs an editing operation (step S10), the determination unit 39 performs step S11 to check whether each component of the state quantity vector for which the editing operation has been performed is within a first predetermined range that has been set for each component. For example, when the movable range of the actuator 10a in this embodiment is ±180°, the first predetermined range for the rotation angle of the actuator 10a is set to −180≦(state quantity)≦180. If all components of the state quantity vector for which the editing operation has been performed are within the first predetermined range, the process proceeds to the next step S12. If all components of the state quantity vector for which the editing operation has been performed are outside the first predetermined range, the process proceeds to step S19, in which the editing operation is rejected and the flow is terminated.

[0054] In step S19, the determination unit 39 rejects the editing operation.

[0055] In step S12, the determination unit 39 calculates a front time change rate vector representing the time change rate from the state quantity vector at the previous time to the state quantity vector at the specified time for the teaching data, and then proceeds to step S13. The front time change rate vector is obtained by calculating the difference between the state quantity vector at the specified time and the state quantity vector at the previous time, and dividing each component of the calculated difference by the time from the previous time to the specified time. In this embodiment, the front time change rate vector is a vector whose components are the time change rates (angular velocities) of the rotation angle of actuator 10a (first component of the state quantity vector) and the rotation angle of actuator 10b (second component of the state quantity vector).

[0056] In step S13, the determination unit 39 checks whether each component of the front-side time change rate vector is within a second predetermined range that is set in advance for each component. For example, when the maximum angular velocity setting value of actuator 10a is ±90° / sec, the second predetermined range for the angular velocity of actuator 10a is set to -90≦(angular velocity)≦90. If each component of the front-side time change rate vector is within the second predetermined range, the process proceeds to step S15. If each component of the front-side time change rate vector is outside the second predetermined range, the process proceeds to step S15 via step S14.

[0057] In step S14, the determination unit 39 corrects the state quantity vector at the previous time, corrects the state quantity vector at the specified time, or corrects the time interval between the previous time and the specified time so that each component of the front time change rate vector falls within the second predetermined range. To specifically explain the correction in step S14, consider a case where the time interval between the previous time and the specified time is 0.1 seconds, the rotation angle of actuator 10a at the specified time is 18°, the rotation angle of actuator 10a at the previous time is 0°, and the second predetermined range for actuator 10a is set to -90≦(angular velocity)≦90. In this case, the angular velocity of actuator 10a, which is a component of the front time change rate vector, is calculated to be 180° / second, which falls outside the second predetermined range. Therefore, the judgment unit 39 either corrects the time interval between the previous time and the specified time to 0.2 seconds, corrects the rotation angle of the actuator 10a at the specified time to 9°, or corrects the rotation angle of the actuator 10a at the previous time to 9° so that the angular velocity of the actuator 10a falls within the second predetermined range.

[0058] In step S15, a rear time rate of change vector representing the rate of change over time from the state quantity vector at the specified time to the state quantity vector at a time after the specified time is calculated in the same manner as the front time rate of change vector.

[0059] In step S16, it is confirmed whether each component of the rear-side time change rate vector is within a third predetermined range that has been set for each component. The third predetermined range is set in the same manner as the second predetermined range. If each component of the rear-side time change rate vector is within the third predetermined range, the process proceeds to step S18. If each component of the rear-side time change rate vector is outside the third predetermined range, the process proceeds to step S18 via step S17.

[0060] In step S17, the determination unit 39 corrects the state quantity vector at the specified time, corrects the state quantity vector at the later time, or corrects the time interval between the specified time and the later time, so that each component of the later time change rate vector falls within a third predetermined range. Based on the above determination, the editing operation is reflected (S18), and the flow ends.

[0061] As a result, editing work can be performed while ensuring that the robot 1 can realize the edited teaching data 240. In addition, flow F may further include, between steps S17 and S18, a step of determining whether or not a physical quantity obtained by further differentiating the time rate of change of the state quantity (angular acceleration when the state quantity is a rotation angle) is within a predetermined range.

[0062] To make it easier to estimate the dead time of the robot 1 from the index value, it is necessary to consider the difference in the range of change of each state quantity that constitutes the components of the state quantity vector. For example, if the movable range of actuator 10a in the robot 1 is ±500° and the movable range of actuator 10b is ±5°, the sensitivity of each actuator that can be expressed by the index value 310 calculated using equation (2) is 1 / 100 of that of actuator 10a. In other words, the index value 310 treats a situation in which actuator 10b operates at its maximum range and a situation in which actuator 10a operates at 1 / 100 of its maximum range as the same value, so there is a possibility that even a situation in which actuator 10b operates at its maximum range will be treated as dead time. To address this issue, normalizing each state quantity is effective.

[0063] 5 is a diagram illustrating calculations including normalization processing in Example 1. The robot teaching device 2 of this example includes a normalization processing unit 36 ​​that normalizes each component of the state quantity vector 2400 stored in the teaching data storage unit 24 using a predetermined range for each component. The index value calculation unit 31 converts the state quantity vector 3600, in which each component has been normalized, into an index value 310.

[0064] The normalization operation is performed, for example, on a certain state quantity x as shown in equation (4).

[0065]

[0066] Here, x max is the maximum value of the state quantity x in the teaching data, and x min is the minimum value of the state quantity x in the teaching data. max and X minThe method of setting is not limited to this. For example, like the movable range of the actuator 10a described above, the maximum value of the range of the state quantity that the actuator can take can be set as x max Let the minimum value be x min It may also be possible to use the following.

[0067] The normalization process may be performed on the time rate of change of the state quantity after calculating the time rate of change of the state quantity. For example, the value substituted for x' in equation (2) may be {(x') - (x' min ) / {(x' max )―(x´ min ))) and substitute. max is the maximum value of the time rate of change of the state quantity x in the teaching data, and x' min is the minimum value of the time rate of change of the state quantity x in the teaching data. max and x' min The method of setting is not limited to this, and the maximum and minimum values ​​that the time rate of change of the state quantity can take based on the specifications of the actuator, etc. may be used.

[0068] 6A is a diagram showing an example of a robot whose motion is expressed by a plurality of state quantities of different types. In the example configuration shown in Fig. 6A, the robot 1 has rotary actuators 10a and 10b, an end effector 12 that grips an object with a command gripping force, and a one-axis stage 13 that is movable in a translational direction 130. Note that the end effector 12 and the one-axis stage 13 are also examples of actuators, but are referred to as the end effector 12 and the one-axis stage 13 here to avoid confusion with the rotary actuator.

[0069] Fig. 6B is a diagram showing an example of teaching data 240b for the robot 1 of Fig. 6A. The state quantities representing the operations of the actuator 10a (Actuator A) and the actuator 10b (Actuator B) are acquired as angles [rad], the state quantity representing the operation of the end effector 12 (End effector A) is acquired as a gripping force [N], and the state quantity representing the operation of the one-axis stage 13 (Stage A) is acquired as a movement distance [m].

[0070] According to the normalization processing unit 36, the normalized state quantity is not a specific physical quantity, but a unitless value that extracts only the characteristics of the state change in the range of [0, 1]. Therefore, the index value calculated based on the normalized state quantity is also a value that expresses the characteristics of the state change of the robot 1, which is not a specific physical quantity.

[0071] In other words, even for robot 1 whose motion is expressed by a plurality of different state quantities, each state quantity after normalization is unified without units, and therefore it is possible to apply the calculation of the index value as in equation (2). Furthermore, by performing normalization processing, it is possible to calculate an index value that takes into account the difference in the range of change of each state quantity, and as a result, it becomes easier to estimate the dead time of robot 1 from the index value.

[0072] The index value calculation unit 31 may also calculate multiple index values. Specifically, where m is a natural number and i is a variable that takes any of the natural numbers from 1 to m, the index value calculation unit 31 calculates, for each i from 1 to m, an i-th index value that changes in conjunction with changes in any component of the i-th partial state quantity vector, from the i-th partial state quantity vector obtained by extracting multiple components from the state quantity vector at each time, thereby generating time-series data of the i-th index value (i = 1 to m). Furthermore, each component of the state quantity vector is extracted as at least one component of the first partial state quantity vector to the m-th partial state quantity vector. For example, when calculating index values ​​corresponding to the arms and end effectors that constitute the robot 1, m = 2. This allows calculation of index values ​​for each component that constitutes the robot, making it easier to grasp changes in the operation of each component.

[0073] Furthermore, m is set to be smaller than the degree of the state quantity vector. As a result, displaying the index values ​​for each partial state quantity vector individually reduces the amount of information that the user 4 must view during editing, compared to displaying each component (state quantity) of the state quantity vector individually, and it is expected that the time required for editing operations will be reduced.

[0074] According to the configuration of Example 1, in the editing work of the teaching data obtained by sampling teaching, an index value is calculated that is less than the number of state quantities of the original teaching data and does not impair the amount of information of the original state quantities. As a result, the amount of information that the user 4 needs to view during editing can be reduced, and it is expected that the time required for editing operations will be reduced.

[0075] Furthermore, according to this embodiment, it is possible to provide a teaching data editing device, a robot teaching system, and a teaching data editing method that allow a user to easily grasp the dead time in the teaching operation of a robot.

[0076] 7A is a diagram illustrating the configuration of a robot teaching device 2 in Example 2. Configurations not shown in this example are the same as those in Example 1. The robot teaching device 2 of this example includes a conversion unit that converts time-series data of index values ​​into one or more movement segments based on the index values ​​at each time and expresses the converted data. An index value display unit 32 then displays the time-series data of index values ​​as one or more movement segments on a display device.

[0077] 7B is a diagram showing an example in which time-series data of index values ​​is displayed as a plurality of motion segments. In this embodiment, instead of the teaching data editing GUI 3a of FIG. 3A in Example 1, a teaching data editing GUI 3b of FIG. 7B is displayed on the display device. The teaching data editing GUI 3b displays two bar graphs, one above the other, along the horizontal axis representing time. The upper bar graph is displayed by converting time-series data of index values ​​based on teaching data that has not been edited into motion segments 370a. On the other hand, the lower bar graph is displayed by converting time-series data of index values ​​based on teaching data that has been edited into motion segments 370b.

[0078] In Figure 7B, five types of movement sections are displayed: Event 1 to Event 4 and Idle. Event 1 to Event 4 each indicate a different movement, and Idle indicates a state in which the robot 1 is not moving. Note that although Event 1 to Event 4 are displayed in Figure 7B, this is merely an example, and it is desirable to display names that represent the movement of each movement section so that the user can easily understand the movement content.

[0079] The classification of movement sections based on index values ​​may be performed by setting one or more thresholds corresponding to the movement sections in advance and examining the magnitude relationship between the index values ​​and the thresholds, or by using a classification algorithm such as a pre-trained support vector machine. Alternatively, the classification may be performed based on the transition of index values ​​over time.

[0080] In the teaching data editing GUI 3b, the seek bar 330 of the first embodiment is not displayed, and each movement section can be directly selected with the mouse cursor 38. The movement section selected with the mouse cursor 38 is outlined. Hereinafter, the selected movement section will be referred to as a designated movement section 332. The time of the designated movement section 332 will be referred to as a designated movement time. The simulator display unit 34 displays the movement of the robot 1 in the designated movement section 332 on the display device.

[0081] The user can perform editing operations on the specified action section 332. For example, when the delete button 352 is pressed, the state quantity vector for the specified action time in the teaching data is deleted. When the modify button 353 is pressed, each component of the state quantity vector for the specified action time in the teaching data is displayed and modifications are accepted. The reverse button 354 and speed change button 355 are the same as in the first embodiment. Furthermore, the time series of the action section can be changed by dragging and dropping the specified action section 332 in the lower bar graph.

[0082] When an editing operation is performed on the specified movement section 332, the result is displayed as a bar graph at the bottom of Fig. 7B. The bar graph at the bottom of Fig. 7B displays the movement section based on the latest teaching data each time an editing operation is performed. This makes it easier for the user 4 to visually understand how the teaching data 240 changes due to the editing operation.

[0083] Fig. 8A is a diagram showing the state of robot operation in Example 2. In the example of Fig. 8A, an operation is taught to the robot 1 using an operation device 20a which is a teaching pendant and an operation device 20b which is a small leader robot simulating the configuration of the robot 1. The small leader robot is a type of operation device.

[0084] The operating device 20b, which is a small leader robot, has a smaller configuration while maintaining the dimensional ratio of the robot 1, and has an angle sensor in a location corresponding to the actuator 10 of the robot 1. When the user 4 directly touches the operating device 20b to change the posture of the operating device 20b, the robot 1 is operated by leader-follower control, in which the robot 1 is controlled to imitate that posture.

[0085] As described above, by preparing a plurality of operating devices and using different operating devices depending on the type of work to be performed by the robot 1, it becomes easier to teach the robot 1. Specifically, the operating device 20b is suitable for rough operations that do not require precision over a wide range, such as polishing work, and the operating device 20a, which is a teaching pendant, is suitable for fine operations that require precision over a narrow range, such as peg-in-hole work.

[0086] When teaching various actions to the robot 1 using a plurality of operating devices as in this embodiment, it may be difficult for the conversion unit 37 to convert the time-series data of the index values ​​into action categories based solely on the index values. Therefore, when converting the time-series data of the index values ​​into action categories, the conversion unit 37 may use information on the operating devices used for teaching in addition to the time-series data of the index values.

[0087] FIG. 8B is a diagram showing an example of teaching data 240c including information about the operating device. As shown in FIG. 8B, in addition to each component of the state quantity vector at each time, information about the operating device, such as the name of the operating device used for teaching, is recorded as teaching data. By including the operating device information in the teaching data in this way, the conversion unit 37 can also use the operating device information when converting the time-series data of the index values ​​into action categories. Furthermore, when the robot 1 is operated using multiple operating devices, the robot teaching device 2 may be provided with a conversion unit 37 for each operating device. Then, the robot teaching device 2 uses different conversion units 37 based on the operating device information included in the teaching data.

[0088] According to this embodiment, the teaching data can be more easily understood, and more intuitive editing work can be performed.

[0089] In this embodiment, teaching data for a robot system having a plurality of robots will be described. Configurations not shown in this embodiment are the same as those in the first embodiment.

[0090] 9A is a diagram illustrating a robot system 5 according to a third embodiment. The robot system 5 includes a robot 1a having rotary actuators 10a and 10b, a robot 1b having rotary actuators 10c and 10d, and a one-axis stage 13. The robots 1a, 1b, and the one-axis stage 13 can be simultaneously operated by at least one operating device 20a. Unlike the first embodiment, the robot teaching system 6 according to the third embodiment includes a robot system 5 and a robot teaching device 2.

[0091] 9B is a diagram showing an example of teaching data 240d for the robot system 5 of FIG. 9A. As the teaching data 240d, state quantities representing the operations of the actuator 10a (Actuator A), the actuator 10b (Actuator B), the actuator 10c (Actuator C), and the actuator 10d (Actuator D) are acquired as angles [rad], and a state quantity representing the operation of the one-axis stage 13 (Stage A) is acquired as a travel distance [m]. The normalization processing unit 36 ​​normalizes these state quantities, and the index value calculation unit 31 converts a state quantity vector having the normalized state quantities as components into an index value.

[0092] According to this embodiment, by calculating index values ​​using all state quantities within a robot system 5 including multiple robots, the operation of the robot system 5 can also be expressed as index values, making it easier to determine dead time and perform editing operations, just as in the case of a single robot 1.

[0093] Furthermore, the index value calculation unit 31 may decompose the state quantity vector into the partial state quantity vectors of the first embodiment so as to correspond to each robot in the robot system 5. This makes it possible to display the index value for each robot, making it easier to grasp changes in the operation of each robot.

[0094] 1...robot, 1'...robot model, 10...actuator, 10'...actuator model, 11...robot control PC, 12...end effector, 13...single-axis stage, 2...robot teaching device, 20...operation reception unit, 21...robot control unit, 22...state acquisition unit, 23...teaching data generation unit, 24...teaching data storage unit, 240...teaching data, 2400...state quantity vector, 3...editing unit, 3a, 3b...teaching data editing GUI, 30...teaching data selection unit, 300...selected data name input box, 301...data selection button, 31...index value calculation unit, 310...index value, 32...index value display unit, 320...data point, 33...data point designation unit, 330...seek bar, 331...designated data point, 33 2...Specified operation category, 34...Simulator display section, 35...Editing operation section, 350...Selection button, 351...Deselection button, 352...Delete button, 353...Modify button, 3530...Data point modification GUI, 3531...Numeric value input box, 3532...Numeric value increase button, 3533...Numeric value decrease button, 3534...Modification confirmation button, 3535...Modification cancel button, 354...Reverse button, 355...Speed ​​change button, 356...Save button, 3560...Saved data name input box, 36...Normalization processing section, 360...Normalized teaching data, 3600...Normalized state quantity vector, 37...Conversion section, 370...Abstract event, 38...Mouse cursor, 39...Judgment section, 4...User, 5...Robot system.

Claims

1. A teaching data editing device which edits teaching data for causing a robot having an actuator to reproduce a desired movement, wherein the teaching data is data obtained at regular time intervals from a plurality of state quantities which represent the movement of the robot operated by a user, the teaching data editing device comprising: an index value calculation unit which calculates an index value which changes in conjunction with changes in any component of a state quantity vector from a state quantity vector whose components are the state quantities for each time, thereby generating time series data of the index value; an index value display unit which displays the time series data of the index value on a display device; and an editing operation unit which performs editing operations on the state quantity vector for a time or interval specified by the time series data of the index value displayed on the display device.

2. A teaching data editing device according to claim 1, characterized in that the index value is based on the sum of squares or absolute value of the time rate of change of each component of the state quantity vector.

3. A teaching data editing device as described in claim 1, wherein said index value calculation unit calculates, for each i from 1 to m, an i-th index value which changes in conjunction with changes in any component of the i-th partial state quantity vector from the i-th partial state quantity vector obtained by extracting multiple components from the state quantity vector for each time, where m is a natural number and i is a variable that takes on each natural number from 1 to m, thereby generating time-series data of the i-th index value (i=1 to m), and each component of the state quantity vector is extracted as at least any component of the first partial state quantity vector to the m-th partial state quantity vector.

4. A teaching data editing device as described in claim 1, further comprising a data point designation unit which accepts designation of one or more data points in the time series data of the displayed index value, wherein the editing operation unit accepts the editing operation on the teaching data and performs the editing operation on the state quantity vector of the teaching data at the designated time, with the time of the designated data point being set as the designated time, wherein the index value calculation unit regenerates the time series data of the index value based on the teaching data on which the editing operation has been performed, and wherein the index value display unit displays the regenerated time series data of the index value on the display device.

5. A teaching data editing device as described in claim 4, further comprising a judgment unit that judges the validity of the editing operation, wherein when the editing operation unit receives a modification of the teaching data as the editing operation, it modifies the state quantity vector of the teaching data at the specified time, and when the value of each component of the modified state quantity vector is outside a first predetermined range, the judgment unit rejects the editing operation.

6. A teaching data editing device as defined in claim 5, wherein the judgment unit, if each component of a front time change rate vector representing the time rate of change from the state quantity vector at a time prior to the designated time to the state quantity vector at the designated time, with respect to the teaching data, is outside a second predetermined range, corrects the state quantity vector at the previous time, corrects the state quantity vector at the designated time, or corrects the time interval between the previous time and the designated time, so that each component of the front time change rate vector is within the second predetermined range; and if each component of a rear time change rate vector representing the time rate of change from the state quantity vector at the designated time to the state quantity vector at a time after the designated time, with respect to the teaching data, is outside a third predetermined range, corrects the state quantity vector at the designated time, corrects the state quantity vector at the later time, or corrects the time interval between the designated time and the later time, so that each component of the rear time change rate vector is within the third predetermined range.

7. A teaching data editing device as described in claim 1, further comprising a normalization processing unit which normalizes each component of the state quantity vector, and wherein the index value calculation unit calculates the index value for each of the times based on each component of the normalized state quantity vector.

8. A teaching data editing device as described in claim 1, further comprising a conversion unit which converts the time series data of the index value into one or more action segments and expresses it, the index value display unit displays the time series data of the index value as the action segment, and the editing operation unit performs the editing operation on the action segment displayed on the display device.

9. A robot teaching system comprising: a robot having an actuator; and a robot teaching device which generates teaching data for causing the robot to reproduce a desired movement, wherein the robot teaching device comprises: an operation receiving unit which receives a movement command which a user teaches to the robot; a robot control unit which controls the robot based on the movement command; a state acquisition unit which acquires, at regular time intervals, a state quantity vector having a plurality of state quantities as components which represent the movement of the robot; a teaching data generation unit which organizes the state quantity vector as time series data; an index value calculation unit which calculates, from the state quantity vector for each time, an index value which changes in conjunction with changes in any component of the state quantity vector, thereby generating time series data of the index values; an index value display unit which displays the time series data of the index values ​​on a display device; and an editing operation unit which performs editing operations on the state quantity vector for a time or section specified by the time series data of the index values ​​displayed on the display device.

10. A robot teaching system as described in claim 9, characterized in that the robot control unit controls the robot based on the teaching data on which the editing operation has been performed.

11. A teaching data editing method using a teaching data editing device that edits teaching data for causing a robot having an actuator to reproduce a desired movement, the teaching data editing device comprising an index value calculation unit, an index value display unit, and an editing operation unit, the index value calculation unit calculates, for each time point, an index value that changes in conjunction with changes in any component of a state quantity vector, from a state quantity vector having a plurality of state quantities representing the movement of the robot, thereby generating time series data of the index value, the index value display unit displays the time series data of the index value on a display device, and the editing operation unit performs editing operations on the state quantity vector for a time or interval specified by the time series data of the index value displayed on the display device.

Citation Information

Patent Citations

  • Parallel link robot and operation teaching method therefor

    JP2013059852A

  • Robot system and robot control method

    JP2020062721A

  • Programming support device, robot system, and programming support method

    JP2020168666A

  • Closed-Loop Control System for Robotic Operation

    US20160136815A1

  • Robot simulator

    WO2020059342A1