Teaching data editing device, robot teaching system. and teaching data editing method
Patent Information
- Application Number
- JP2023131744
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-14
- Publication Date
- 2025-02-27
Smart Images

Figure 2025027170000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a teaching data editing device, a robot teaching system, and a teaching data editing method. [Background technology]
[0002] In order to simplify the teaching work of a robot, a method is known in which a user operates a robot using an operating device, samples multiple state quantities of the robot at regular time intervals, and uses the samples as teaching data. Compared to the general teaching playback method, this teaching method allows intuitive teaching without considering interference between teaching points or the robot posture, but has the problem that unnecessary movements or slow movements during operation are also reproduced as they are.
[0003] As a technique for solving such a problem, 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 for displaying a graph showing a teaching operation created by the control unit 10 and an editing screen thereof." Then, paragraph 0032 of the document describes "on the left side of the screen of the display unit 21 (left side of the paper in FIG. 2), the teaching operation trajectory of the parallel link robot 100 is graphed in time series for each axis. In each of these graphs, the horizontal axis is the time axis, and the vertical axis is the coordinate value of each axis. The current position and posture of the movable plate 3 are indicated by the current position pointer 31.... The current position is expressed by the virtual point coordinates (X-axis, Y-axis, Z-axis) of the current center of the movable plate 3, and the rotation amount (θx-axis, θy-axis, θz-axis) of the surface of the movable plate 3 including this virtual point around each of the X-axis, Y-axis, and Z-axis." 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." [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2013-059852 A Summary of the Invention [Problem to be solved by the invention]
[0005] However, in the technology described in Patent Document 1, all of the robot's state quantities are displayed on the display unit. Because a large amount of information is displayed, it is difficult for users, particularly those who are not familiar with robot operation instruction, to understand the robot's operations and to grasp 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. [Means for solving the problem]
[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 an index value that changes in conjunction with changes in any of the components of a state quantity vector having the state quantities as components for each time, 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 at a time or section specified by the time series data of the index values displayed on the display device.
[0008] Moreover, 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 operation, the robot teaching device including: an operation receiving unit that receives an operation command to be taught to the robot by a user; a robot control unit that controls the robot based on the operation command; a state acquisition unit that acquires, at regular time intervals, a state quantity vector having a plurality of state quantities as components representing the operation of the robot; 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 section 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 having the state quantity as 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 an editing operation on the state quantity vector at a time or section specified by the time series data of the index value displayed on the display device. Effect of the Invention
[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 teaching operations to a robot. Other objects and novel features will become apparent from the description of this specification and the accompanying drawings. [Brief description of the drawings]
[0011] [Figure 1A] FIG. 2 is a diagram illustrating a robot operation in the first embodiment. [Figure 1B] FIG. 2 is a diagram showing an example of teaching data for the robot of FIG. [Figure 1C] FIG. 2 is a diagram illustrating an example of a hardware configuration of a robot control PC. [Diagram 2] 1 is a diagram showing an overall configuration of a robot teaching system in a first embodiment. [Figure 3A] FIG. 4 is a diagram illustrating an example of a teaching data editing GUI in the first embodiment. [Figure 3B] FIG. 11 is a diagram showing an example of a state display of the robot by the simulator display unit. [Figure 3C] FIG. 13 is a diagram illustrating an example of a data point correction GUI in the first embodiment. [Figure 4] FIG. 11 is a diagram showing an example of a flow relating to a determination of the validity of an editing operation. [Diagram 5] FIG. 11 is a diagram for explaining calculations including a normalization process in the first embodiment. [Figure 6A] FIG. 1 is a diagram showing an example of a robot whose movements are expressed by a plurality of state quantities of different types. [Figure 6B] FIG. 6B is a diagram showing an example of teaching data for the robot of FIG. 6A. [Figure 7A] FIG. 11 is a diagram illustrating a configuration of a robot teaching device in a second embodiment. [Figure 7B] FIG. 13 is a diagram showing an example in which time-series data of index values is displayed as a plurality of motion sections. [Figure 8A] 13A to 13C are diagrams showing the state of operating a robot having a plurality of operating devices and teaching data in the third embodiment. [Figure 8B] FIG. 11 is a diagram showing an example of teaching data including information on an operating device. [Figure 9A] FIG. 11 is a diagram illustrating a robot teaching system according to a third embodiment. [Figure 9B] FIG. 9B is a diagram showing an example of teaching data for the robot teaching system of FIG. 9A. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[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 used to interpret the present disclosure in a limited manner. The description in this specification is merely a typical example and does not limit the scope or application of the present disclosure in any sense.
[0013] In the present embodiment, the description is given in sufficient detail for a person skilled in the art to implement the present disclosure, but it should be understood that other implementations and forms are possible, and that changes in configuration and structure and replacement of various elements are possible 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. EXAMPLES
[0014] FIG. 1A is a diagram for explaining the robot operation in the first embodiment. 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 the robot 1 by operating at least one operating device 20a, thereby teaching the robot 1 an operation. 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 making the robot reproduce a desired movement. In this embodiment, the teaching data 240a is recorded by acquiring the rotation angle of the actuator 10a (Actuator A) and the rotation angle of 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 angle of the actuator 10a and the rotation angle of the actuator 10b are observable physical quantities that represent the operation of the robot 1. A physical quantity that changes according to the operation of the robot, such as these physical quantities, is called a state quantity. In addition to the rotation angle, examples of the state quantity include speed, acceleration, current, force, and torque. The state quantity is not limited to those related to the movement of the actuator. For example, it may be something like the position of the tip of the robot acquired by a TOF sensor or the like. In the following, a vector having state quantities as components 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 it is not limited to this and may be 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 transmits a teaching start signal to the robot control PC 11, and operates the operating device 20a so that the robot 1 performs the desired work. During this time, the robot control PC 11 continues to acquire the rotation angle information of the actuators 10a and 10b at regular time intervals. After the robot 1 performs the desired work, the user 4 transmits a teaching end signal to the robot control PC 11 using the operating device 20a or the like, and 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 showing 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 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 main components as shown in FIG. 1C. The processor 41 functions as a functional unit that provides a predetermined function by executing processing according to a program loaded in the memory 42. The storage device 43 stores data and programs used in 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 by a 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., which will be described later.
[0019] 2 is a diagram (functional block diagram) showing the overall configuration of a robot teaching system 6 in the first embodiment. 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 embodiment, 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 a plurality of devices.
[0020] The operation reception unit 20 receives an operation command to be taught 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 command received by the operation reception unit 20. The robot control unit 21 also controls the robot 1 based on teaching data from a user and teaching 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 teaching data generation unit 23 organizes the state quantity vectors of a specified section as time-series data and stores them in the teaching 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 data, and also accepts editing operations on the teaching data and performs editing operations on the teaching data. The editing unit 3 has, 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 sampling teaching will be described. An example of a teaching data editing GUI 3a in the first embodiment is shown in FIG.
[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 by operating these.
[0024] Specifically, the user 4 inputs the data name of the teaching data to be edited in 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 the 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 inform the user 4 that the teaching data 240a was not found.
[0025] The index value calculation unit 31 acquires the instruction 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 the formula (1).
[0027]
number
[0028] Here, t is 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 actuator 10b. Index value calculator 31 calculates index value p(t) by using, for example, equation (2).
[0029]
number
[0030] where sqrt() is the square root, x' 1 (t) is x 1 This represents the time derivative (rate of change over time) of (t). This time derivative is calculated using the central difference in formula (3).
[0031]
number
[0032] where Δt is the time interval for obtaining the state vector, and x 1 (t+Δt) is x 1 represents the state quantity obtained 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 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 shown 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 components of the state quantity vector from canceling each other out due to their positive and negative values in the calculation of the index value.
[0034] The index value p(t) is expressed by 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 grasp whether the robot 1 is moving or not. In other words, if the index value p(t) is 0, it is understood that the robot 1 is not moving at all at that time, and if the index value p(t) is not 0, it is understood that the robot 1 is moving at that time. Furthermore, the index value p(t) can roughly tell whether the robot 1 is moving slowly or quickly depending on the magnitude of the value. Therefore, when the user 4 edits the teaching data, by displaying the index value p(t), it becomes easier to find out the time when the robot 1 is stopped moving, which is a dead time, or the time when the robot 1 is moving slowly.
[0035] The index value calculated as described above can be expressed as a one-dimensional value regardless of the degree of the state vector. Therefore, by displaying the index value instead of displaying each component of the state vector, the amount of information that the user 4 must view during editing can be reduced, and the time required for editing operations can be expected to be reduced. Also, as in formula (2), by calculating the index value using each component of the state vector at least once, the index value changes in conjunction with changes in any of the components of the state vector. As a result, changes in each component of the state vector are reflected in the index value without omission, and changes in any of the components of the state vector can be grasped as changes in the index value.
[0036] In this embodiment, the rotation angle is used as the state quantity, but even if the state quantity is other than the rotation angle, the state quantity will change over time when the actuator moves, so the rate of change of the state quantity over time is a physical quantity that represents the motion of the actuator. Therefore, by calculating an index value using the rate of change of each component of the state quantity vector over time, it is possible to grasp at least the presence or absence of motion of the robot from the index value.
[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 other than addition or existing functions such as trigonometric functions may be used. In addition to using a change amount using the state amount before and after time t, such as the time change rate of the state amount shown in formula (2) or formula (3), the state amount itself may be used in the calculation, such as the sum of squares of the state amount. For example, the state amount may be a state amount that indicates a time change such as speed.
[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 is time and whose vertical axis is index values. Each plot is data for each time in the time series data of the index values, and each plot will be referred to as a data point 320a hereinafter.
[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 value. 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 other data points. The designated data point is 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 only one but multiple designated data points 331. When the selection button 350 is pressed, the designated data point 331 at the time the selection button 350 was pressed is stored as the selection start point. When the seek bar 330 is operated in a state where the selection start point is recorded, the colors of the selection start point, the designated data point 331 currently being indicated by the seek bar 330, and all data points 320 between them change, and all these data points 320 are treated as designated data points 331. The user 4 performs 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 again becomes 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 the 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 the states of the robot model 1' and the actuator models 10a' and 10b' indicated by the state quantity vector at the specified time in the teaching data on the display device, as in the display 34a. When operating the seek bar 330, the user 4 can grasp what state the robot 1 was in at what time by looking at the display device. As described above, when the selection button 350 is pressed and there are multiple specified data points 331, the simulator display unit 34 may continuously display the states of the robot 1 at each of the multiple specified data points 331.
[0043] Next, a specific editing operation for the teaching data will be described. The editing operation unit 35 accepts an editing operation for the teaching data, and performs an editing operation on the state quantity vector at the designated time of the teaching data, with the time of the designated data point 331a as 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, and accepts an editing operation of delete, modify, reverse, or speed change by pressing these buttons. In the following, the time of the data point 320a one point before the designated data point 331a is called the previous time, and the time of the data point 320a one point after the designated data point 331a is called the later time. Also, 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 called the selection time.
[0044] When the delete button 352 is pressed, the editing operation unit 35 accepts the delete 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 becomes 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 is rearranged, the index value calculation unit 31 regenerates the time series data of the index values based on the rearranged teaching data. Then, the index value display unit 32 displays the regenerated time series data of the 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 the data point correction GUI 3530. When the correction button 353 is pressed, the data point correction GUI 3530 is displayed as a pop-up window. In the data point correction GUI 3530, the time (specified interval) of the specified data point 331 and each state quantity in the specified interval of the teaching data are displayed in the numerical input boxes 3531a and 3531b, respectively. The user 4 directly inputs values into the numerical input boxes 3531a and 3531b, or corrects the corresponding state quantity to a desired value using, for example, the numerical increase buttons 3532a and 3532b and the numerical decrease buttons 3533a and 3533b. After the correction, the user 4 presses the correction confirmation button 3534 to complete the correction operation. Also, when the user 4 presses the correction cancel button 3535, the correction content is canceled and the display returns to the teaching data editing GUI 3a. The index value calculation unit 31 regenerates the time series data of the index value based on the corrected teaching data. Then, the index value display unit 32 displays the regenerated time series data of the index values on the display device.
[0047] As described above, when a plurality of data points 320 are selected as the designated data points 331, if 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 the teaching data in reverse order. The index value calculation unit 31 regenerates the time series data of the index values based on the teaching data rearranged in reverse order. Then, the index value display unit 32 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 the designated data points 331, when 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 designated value. The index value calculation unit 31 regenerates the time series data of the index value based on the teaching data with the corrected time interval. Then, the index value display unit 32 displays the regenerated time series data of the index value 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] Also, 320b of the graph 32b corresponds to the designated data point 331a of the graph 32a. That is, when the designated data point 331a is selected by the seek bar 330, if a corresponding data point 320b exists, the color of the data point 320b changes to the designated data point 331b, and if the corresponding data point 320b does not exist due to deletion, the color of none of the data points 320b changes. The graph 32b displays the latest data every time an editing operation is performed. By displaying the graph 32b, it becomes easier for the user 4 to visually understand how the teaching data 240a changes due to the editing operation.
[0051] Finally, enter the data name of the teaching data you want to save in the saved 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 storage unit 24 with the data name entered in the saved 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 may 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. FIG. 4 shows an example of a flow F related to the determination of the appropriateness of the editing operations.
[0053] First, after an editing operation is performed by the user 4 (step S10), the judgment unit 39 performs step S11 to check whether each component of the state quantity vector on which the editing operation has been performed is within a first predetermined range previously 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 on which the editing operation has been performed are within the first predetermined range, the process proceeds to the next step S12, and if they are outside the first predetermined range, the process performs step S19 to reject the editing operation and end the flow.
[0054] In step S19, the determination unit 39 rejects the editing operation.
[0055] In step S12, the judgment unit 39 calculates a front time change rate vector representing a time change rate from a state quantity vector at a previous time to a state quantity vector at a specified time for the teaching data, and proceeds to step S13. The front time change rate vector is obtained by calculating a difference between a state quantity vector at a specified time and a state quantity vector at a 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 the actuator 10a (first component of the state quantity vector) and the rotation angle of the actuator 10b (second component of the state quantity vector).
[0056] In step S13, the judgment 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 the actuator 10a is ±90° / sec, the second predetermined range for the angular velocity of the 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, and 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 judgment 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. In order to specifically explain the correction in step S14, consider a case in which the time interval between the previous time and the specified time is 0.1 seconds, the rotation angle of the actuator 10a at the specified time is 18°, the rotation angle of the actuator 10a at the previous time is 0°, and the second predetermined range for the actuator 10a is set to -90≦(angular velocity)≦90. In this case, the angular velocity of the 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 rotational angle of actuator 10a at the specified time to 9°, or corrects the rotational angle of actuator 10a at the previous time to 9° so that the angular velocity of actuator 10a falls within a second predetermined range.
[0058] In step S15, a rear time rate of change vector that indicates the time rate of change 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 is set in advance 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, and 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 judgment 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. With the above judgment, 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, in flow F, between steps S17 and S18, a step of determining whether 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 or not may be added.
[0062] In order to make it easier to estimate the dead time of the robot 1 from the index value, it is necessary to take into consideration the difference in the range of change of each state quantity that is a component of the state quantity vector. For example, when the movable range of the actuator 10a in the robot 1 is ±500° and the movable range of the actuator 10b is ±5°, the sensitivity of each actuator that can be expressed by the index value 310 calculated by the formula (2) is 1 / 100 of the sensitivity of the actuator 10a. In other words, since the index value 310 treats a situation in which the actuator 10b operates in the maximum range and a situation in which the actuator 10a operates in 1 / 100 of the maximum range as the same value, there is a possibility that even a situation in which the actuator 10b operates in the maximum range may be treated as dead time. To address such a problem, it is effective to normalize each state quantity.
[0063] 5 is a diagram for explaining calculations including the normalization process in the embodiment 1. The robot teaching device 2 in this embodiment 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, for a certain state quantity x as shown in equation (4).
[0065]
number
[0066] where x maxis 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 min The method of setting is not limited to this. For example, the maximum value of the range of the state quantity that the actuator can take, such as the movable range of the actuator 10a described above, can be set as x max Let the minimum value be x min It is also 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 to be substituted for x' in the formula (2) may be {(x') - (x' min )} / {(x´ max )―(x´ min )} and substitute it. Here, x' 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. x´ 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 based on the specifications of the actuator, etc. may be used.
[0068] Fig. 6A is a diagram showing an example of a robot whose motion is expressed by a plurality of different types of state quantities. 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 can move in a translation 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 in order 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 moving 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 behavior is expressed by a number of different state quantities, each state quantity after normalization is unified without units, so the index value calculation as in formula (2) can be applied. 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 based on the index value.
[0072] Moreover, the index value calculation unit 31 may calculate a plurality of index values. Specifically, when m is a natural number and i is a variable that takes each natural number from 1 to m, the index value calculation unit 31 calculates an i-th index value that changes in conjunction with a change in any component of the i-th partial state quantity vector from the i-th partial state quantity vector obtained by extracting a plurality of components from the state quantity vector at each time for each i from 1 to m, thereby generating time series data of the i-th index value (i=1 to m). Moreover, 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. For example, when calculating index values corresponding to the arms and end effectors that constitute the robot 1, m=2 is used. This allows the calculation of an index value for each part that constitutes the robot, making it easier to grasp changes in the operation of each part.
[0073] In addition, m is set to be smaller than the degree of the state quantity vector. This is expected to reduce the amount of information that the user 4 must view when editing by displaying the index values for each partial state quantity vector, compared to displaying each component (state quantity) of the state quantity vector, and thus reduce the time required for editing operations.
[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 see when editing can be reduced, and it is expected that the time required for editing operations can be reduced.
[0075] Furthermore, according to the present 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. EXAMPLES
[0076] 7A is a diagram for explaining the configuration of a robot teaching device 2 in Example 2. Configurations not shown in this example are similar to those in Example 1. The robot teaching device 2 in this example includes a conversion unit that converts and expresses time-series data of index values into one or more movement segments based on the index values at each time. Then, the index value display unit 32 displays the time-series data of the index values as one or more movement segments on a display device.
[0077] FIG. 7B is a diagram showing an example in which the time series data of index values is displayed as a plurality of motion sections. In this embodiment, instead of the teaching data editing GUI 3a of FIG. 3A in the first embodiment, a teaching data editing GUI 3b of FIG. 7B is displayed on the display device. In the teaching data editing GUI 3b, two bar graphs along the horizontal axis representing time are displayed one above the other. The upper bar graph is displayed by converting the time series data of index values based on teaching data that has not been edited into motion section 370a. On the other hand, the lower bar graph is displayed by converting the time series data of index values based on teaching data that has been edited into motion section 370b.
[0078] In Fig. 7B, five types of movement sections are displayed: Event1 to Event4 and Idle. Event1 to Event4 each indicate a different movement, and Idle indicates a state in which the robot 1 is not moving. Note that, although Event1 to Event4 are displayed in Fig. 7B, this is merely an example, and it is desirable to display names that represent the movements of each movement section so that the user can easily understand the movement content.
[0079] The classification method of the movement sections based on the index value may be performed by setting one or more thresholds corresponding to the movement sections in advance for the index value and checking the magnitude relationship between the threshold and the index value, or by using a discrimination algorithm such as a pre-trained support vector machine. Also, the classification may be performed based on the time transition of the index value.
[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. Also, 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 motion section 332. For example, when the delete button 352 is pressed, the state quantity vector for the specified motion time in the teaching data is deleted. When the modify button 353 is pressed, each component of the state quantity vector for the specified motion time in the teaching data is displayed and modifications are accepted. The reverse button 354 and the speed change button 355 are the same as those in the first embodiment. Furthermore, the time series of the motion section can be changed by dragging and dropping the specified motion section 332 in the lower bar graph.
[0082] When an editing operation is performed on the specified motion 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 motion section based on the latest teaching data every 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 a 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 manipulation device 20b, which is a small leader robot, has a miniaturized configuration while maintaining the dimensional ratio of the robot 1, and has an angle sensor at a location corresponding to the actuator 10 of the robot 1. When the user 4 directly touches the manipulation device 20b to change the posture of the manipulation device 20b, the robot 1 is manipulated by leader-follower type control such that the robot 1 is controlled to imitate that posture.
[0085] As described above, by preparing a plurality of operation devices and using different operation devices depending on the type of work to be performed by the robot 1, it becomes easier to teach the robot 1. Specifically, the operation device 20b is suitable for rough operations that do not require precision over a wide range, such as polishing work, and the operation device 20a, which is a teaching pendant, is suitable for fine operations that require precision over a narrow range, such as peg-in-holes.
[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 only 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 the teaching data 240c including information on the operating device. As shown in FIG. 8B, in addition to each component of the state quantity vector at each time, information on the operating device, such as the name of the operating device used for teaching, is recorded as teaching data. In this way, by including the information on the operating device in the teaching data, the conversion unit 37 can also use the information on the operating device when converting the time-series data of the index value into the operation section. In addition, when operating the robot 1 with a plurality of operating devices, the robot teaching device 2 may include a conversion unit 37 for each operating device. Then, the robot teaching device 2 uses the conversion unit 37 differently based on the information on the operating device 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. EXAMPLES
[0089] In this embodiment, teaching data for a robot system having multiple robots will be described. Configurations not shown in this embodiment are the same as those in the first embodiment.
[0090] 9A is a diagram for explaining a robot system 5 in Example 3. 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. Note that the robot teaching system 6 of this example is configured to include a robot system 5 and a robot teaching device 2, unlike Example 1.
[0091] Fig. 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 moving 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 an index value using all state quantities within a robot system 5 including multiple robots, the operation of the robot system 5 can also be expressed as an index value, which makes it easy to determine the dead time and perform editing operations, just like in the case of a single robot 1.
[0093] Furthermore, the index value calculation unit 31 may decompose the state quantity vector into 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 the change in the operation of each robot. [Explanation of symbols]
[0094] 1...robot, 1'...robot model, 10...actuator, 10'...actuator model, 11...robot control PC, 12...end effector, 13...one-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...modification button, 3530...data point modification GUI, 3531...numeric input box, 3532...numeric increase button, 3533...numeric decrease button, 3534...modification confirmation button, 3535...modification cancellation button, 354...reverse button, 355...speed change button, 356...save button, 3560...save 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 that edits teaching data for causing a robot having an actuator to reproduce a desired motion, comprising: The teaching data is data of a plurality of state quantities representing a motion of the robot operated by a user, the state quantities being acquired at regular time intervals, an index value calculation unit that calculates an index value that changes in conjunction with a change in any component of a state quantity vector, from the state quantity vector having the state quantity as components for each time, to generate time-series data of the index value; an index value display unit that displays the time series data of the index value on a display device; an editing operation unit that performs an editing operation on the state quantity vector at a time or in a section designated by the time series data of the index value displayed on the display device; A teaching data editing device comprising:
2. 2. The teaching data editing device according to claim 1, 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. A teaching data editing device comprising:
3. 2. The teaching data editing device according to claim 1, the index value calculation unit calculates, for each i from 1 to m, an i-th index value that changes in conjunction with a change in any component of the i-th partial state quantity vector, the i-th index value being obtained by extracting a plurality of components from the state quantity vector at 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); 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. A teaching data editing device comprising:
4. 2. The teaching data editing device according to claim 1, a data point designation unit that accepts designation of one or more data points in the displayed time series data of the index value, 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 a time of the designated data point being set as a designated time; the index value calculation unit regenerates time-series data of the index value based on the teaching data that has been edited; The index value display unit displays the regenerated time series data of the index values on the display device. A teaching data editing device comprising:
5. 5. The teaching data editing device according to claim 4, a determination unit for determining the validity of the editing operation, when the editing operation unit receives a correction to the teaching data as the editing operation, the editing operation unit corrects the state quantity vector of the teaching data at the specified time; The determination unit rejects the editing operation when a value of each component of the corrected state quantity vector is outside a first predetermined range. A teaching data editing device comprising:
6. The teaching data editing device according to claim 5, The determination unit is When each component of a front time change rate vector representing a time change rate from the state quantity vector at a time prior to the designated time to the state quantity vector at the designated time is outside a second predetermined range with respect to the teaching data, correcting the state quantity vector at the previous time, correcting the state quantity vector at the designated time, or correcting a 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; When each component of a posterior time change rate vector representing a time change rate from the state quantity vector at the specified time to the state quantity vector at a time after the specified time is outside a third predetermined range with respect to the teaching data, the state quantity vector at the specified time, the state quantity vector at the later time, or the time interval between the specified time and the later time is corrected so that each component of the posterior time change rate vector is within the third predetermined range. A teaching data editing device comprising:
7. 2. The teaching data editing device according to claim 1, a normalization processing unit that normalizes each component of the state quantity vector, The teaching data editing device, 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. 2. The teaching data editing device according to claim 1, A conversion unit converts the time series data of the index value into one or a plurality of motion categories and expresses the time series data, the index value display unit displays time-series data of the index value as the motion category; The editing operation unit performs the editing operation on the action section displayed on the display device. A teaching data editing device comprising:
9. 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 motion, The robot teaching device includes: an operation receiving unit that receives an operation command that a user teaches to the robot; A robot control unit that controls the robot based on the operation command; a state acquisition unit that acquires a state quantity vector having a plurality of state quantities representing a motion of the robot at regular time intervals; a teaching data generating unit that organizes the state quantity vector as time-series data; an index value calculation unit that calculates an index value that changes in conjunction with a change in any component of the state quantity vector from the state quantity vector for each time, thereby generating time-series data of the index value; an index value display unit that displays the time series data of the index values on a display device; an editing operation unit that performs an editing operation on the state quantity vector at a time or in a section designated by the time series data of the index value displayed on the display device; A robot teaching system comprising:
10. The robot teaching system according to claim 9, The robot control unit controls the robot based on the teaching data on which the editing operation has been performed. A robot teaching system comprising:
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, comprising: The teaching data editing device includes an index value calculation unit, an index value display unit, and an editing operation unit, the index value calculation unit calculates, for each time instant, an index value that changes in conjunction with a change in any component of a state quantity vector, the state quantity vector having a plurality of state quantities representing an operation of the robot as components, 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; The editing operation unit performs an editing operation on the state quantity vector at a time or in a section designated by the time series data of the index value displayed on the display device. A teaching data editing method comprising:
Citation Information
Patent Citations
Parallel link robot and operation teaching method therefor
JP2013059852A