Processing apparatus and processing method for processing portion
11789437 · 2023-10-17
Assignee
Inventors
Cpc classification
G05B23/0283
PHYSICS
G06V10/762
PHYSICS
G05B19/05
PHYSICS
G05B19/42
PHYSICS
International classification
G06F17/00
PHYSICS
G05B19/05
PHYSICS
G05B19/42
PHYSICS
G06V10/762
PHYSICS
Abstract
A processing apparatus includes a processing portion. The processing portion obtains, in time series, a sensor value of a first sensor output from a predetermined apparatus including the first sensor in correspondence with an operation of the predetermined apparatus, sectionalizes the sensor value of the first sensor on a basis of a predetermined condition, and clusters the sectionalized sensor value of the first sensor.
Claims
1. A processing apparatus comprising: a processing portion, wherein the processing portion: obtains a first sensor value of a first sensor output from a predetermined apparatus comprising the first sensor in correspondence with an operation of the predetermined apparatus; obtains a change of the first sensor value on a basis of the first sensor value; sectionalizes the first sensor value on a basis of the change of the first sensor value; and sectionalizes the first sensor value into a first operation that causes the predetermined apparatus to repeatedly reproduce the operation, and a second operation that does not cause the predetermined apparatus to repeatedly reproduce the operation, on a basis of a degree of change in displacement of the predetermined apparatus.
2. The processing apparatus according to claim 1, wherein the processing portion sectionalizes the first sensor value by obtaining a degree of change by differentiating the first sensor value and extracting, from the first sensor value, a section where the degree of change deviates from a first threshold value.
3. The processing apparatus according to claim 2, wherein the processing portion determines that a section where the degree of change is within the first threshold is a section where the predetermined apparatus is stopped.
4. The processing apparatus according to claim 1, wherein the processing portion classifies the sectionalized first sensor value into a first group or a second group.
5. The processing apparatus according to claim 4, wherein the processing portion classifies the sectionalized first sensor value into the first group whose variance is equal to or smaller than a second threshold value or the second group whose variance is larger than the second threshold value.
6. The processing apparatus according to claim 5, wherein the processing portion further obtains the first sensor value of a predetermined section from the predetermined apparatus, and specifies which of the first group and the second group the first sensor value of the predetermined section belongs to.
7. The processing apparatus according to claim 6, wherein the predetermined apparatus comprises a second sensor different from the first sensor configured to output a second sensor value in correspondence with the operation of the predetermined apparatus, and wherein the processing portion: obtains the second sensor value in a same time series as the first sensor value; and outputs predetermined data in a case where a difference between a first reference value and the second sensor value corresponding to the first sensor value, that has been specified as belonging to the first group, of the predetermined section is larger than a first predetermined value.
8. The processing apparatus according to claim 6, wherein the processing portion specifies, in accordance with which of the first group and the second group the first sensor value of the predetermined section belongs to, a type of the operation performed by the predetermined apparatus.
9. The processing apparatus according to claim 7, wherein the processing portion outputs the predetermined data in a case where a difference between a second reference value and the second sensor value of corresponding to the first sensor value, that has been specified as belonging to the second group, of the predetermined section is larger than a second predetermined value.
10. The processing apparatus according to claim 7, wherein the second sensor is a current sensor configured to output a signal corresponding to a current supplied to a motor that drives the predetermined part, and wherein the second sensor value is a current value of the current sensor.
11. The processing apparatus according to claim 7, wherein the processing portion obtains the first reference value from the second sensor value corresponding to the sectionalized first sensor value belonging to the first group.
12. The processing apparatus according to claim 7, further comprising a device configured to issue warning in response to input of the predetermined data from the processing portion.
13. The processing apparatus according to claim 9, wherein the second reference value is set on a basis of at least one of a standard value and a simulation value in the operation of the predetermined apparatus.
14. The processing apparatus according to claim 1, wherein the processing portion performs clustering by compressing the sectionalized the first sensor value into point data.
15. The processing apparatus according to claim 1, wherein the first sensor is an encoder configured to output a signal corresponding to the displacement of a predetermined part, and wherein the first sensor value is an encoder value of the encoder.
16. The processing apparatus according to claim 15, wherein the encoder is a rotary encoder configured to output a signal corresponding to a rotation angle of a rotor of a motor that drives the predetermined part.
17. The processing apparatus according to claim 15, wherein the processing portion sectionalizes the encoder value by obtaining a displacement velocity of the predetermined part on a basis of the encoder value and extracting, from the encoder value, a section where a value of the displacement velocity deviates from a first threshold value.
18. A manufacturing system comprising: the processing apparatus according to claim 1; and the predetermined apparatus according to claim 1, wherein the predetermined apparatus is a manufacturing apparatus.
19. A manufacturing method of manufacturing a product by using the manufacturing system according to claim 18.
20. A robot apparatus comprising: the processing apparatus and the predetermined apparatus according to claim 1, wherein the predetermined apparatus is a robot arm.
21. The processing apparatus according to claim 1, wherein the degree of change is a temporal change in the operation.
22. The processing apparatus according to claim 1, wherein the processing portion obtains the first sensor value in time series, and sectionalizes the first sensor value in the time series.
23. The processing apparatus according to claim 1, wherein the predetermined apparatus includes a predetermined portion, and the operation is an operation to displace the predetermined portion by the predetermined apparatus.
24. The processing apparatus according to claim 1, wherein the second operation is an adaptive operation.
25. The processing apparatus according to claim 1, wherein the first operation is an operation that repeatedly reproduces an operation taught by a user.
26. The processing apparatus according to claim 1, wherein the second operation is a different operation each time.
27. The processing apparatus according to claim 11, wherein the processing portion obtains the first reference value on a basis of at least one of a representative value, a median, and an average value of the second sensor value corresponding to the sectionalized first sensor value belonging to the first group.
28. The processing apparatus according to claim 8, wherein the type is a first type as an operation that is repeated each time, or a second type as an operation that is performed randomly.
29. The processing apparatus according to claim 23, wherein the predetermined apparatus is a robot, and the predetermined portion is an end effector.
30. A processing method for a processing portion, the processing method comprising: obtaining a first sensor value of a first sensor output from a predetermined apparatus comprising the first sensor in correspondence with an operation of the predetermined apparatus; obtaining a change of the first sensor value on a basis of the first sensor value; sectionalizing the first sensor value on a basis of the change of the first sensor value; and sectionalizing the first sensor value into a first operation that causes the predetermined apparatus to repeatedly reproduce the operation and a second operation that does not cause the predetermined apparatus to repeatedly reproduce the operation on a basis of a degree of change in displacement of the predetermined apparatus.
31. The processing method according to claim 30, wherein the obtaining includes obtaining a degree of change by differentiating the first sensor value, and the sectionalizing includes extracting and sectionalizing a section where the degree of change deviates from a first threshold from the first sensor value.
32. A computer-readable non-transitory recording medium storing a program for causing a computer to perform the processing method according to claim 30.
33. The processing method according to claim 30, wherein the processing method further comprises classifying the sectionalized first sensor value into a first group or a second group.
34. A processing apparatus comprising: a processing portion, wherein the processing portion: obtains a first sensor value of a first sensor output from a predetermined apparatus comprising the first sensor in correspondence with an operation of the predetermined apparatus; obtains a degree of change in the operation on a basis of the first sensor value; sectionalizes the first sensor value on a basis of the degree of change; and clusters the sectionalized first sensor value, wherein the processing portion classifies, by clustering, the sectionalized first sensor value into a first cluster whose variance is equal to or smaller than a second threshold value or a second cluster whose variance is larger than the second threshold value, wherein the processing portion further obtains the first sensor value of a predetermined section from the predetermined apparatus, and specifies which of the first cluster and the second cluster the first sensor value of the predetermined section belongs to, wherein the predetermined apparatus comprises a second sensor different from the first sensor configured to output a second sensor value in correspondence with the operation of the predetermined apparatus, and wherein the processing portion: obtains the second sensor value in a same time series as the first sensor value; and outputs predetermined data in a case where a difference between a first reference value and the second sensor value corresponding to the first sensor value, that has been specified as belonging to the first cluster, of the predetermined section is larger than a first predetermined value, wherein the processing portion obtains the first reference value from the second sensor value corresponding to the sectionalized first sensor value belonging to the first cluster, and wherein the processing portion obtains the first reference value on a basis of at least one of a representative value, a median, and an average value of the second sensor value corresponding to the sectionalized first sensor value belonging to the first cluster.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DESCRIPTION OF THE EMBODIMENTS
(9) An exemplary embodiment of the present invention will be described in detail below with reference to drawings.
(10) The robot 250 includes an articulated robot arm 200 that is a manipulator, and a robot controller 300 that controls the robot arm 200. The robot arm 200 is an example of a predetermined apparatus, and an example of a manufacturing apparatus. The robot controller 300 causes the robot arm 200 to perform an operation of mounting a workpiece W1 serving as a first workpiece on a workpiece W2 serving as a second workpiece to manufacture a product W0. The robot arm 200 includes an arm body 201 and a hand 202 serving as an example of an end effector provided at a distal end of the arm body 201. The hand 202 is a distal end portion of the robot arm 200. The hand 202 is a holding portion capable of holding an object, for example, the workpiece W1, a part, a tool, a jig, or a camera. A force sensor 280 is provided between the arm body 201 and the hand 202.
(11) The robot controller 300, the robot arm 200, the teaching pendant 400, and the processing apparatus main part 500 are communicably interconnected. The processing apparatus main part 500 and the robot controller 300 are interconnected by, for example, a local area network: LAN in a factory. The robot arm 200 is fixed to a top surface 150 of a base. The teaching pendant 400 is operated by an operator, and is used for issuing commands to the robot arm 200 and the robot controller 300.
(12) The arm body 201 includes a plurality of links 210.sub.0 to 210.sub.6 joined by a plurality of joints J.sub.1 to J.sub.6. Although a case where the joints of the arm body 201 are rotary joints will be described, the joints may be linear joints. The joints J.sub.1 to J.sub.6 each serve as an example of a predetermined part.
(13) The arm body 201 includes a driving mechanism 230.sub.i that rotationally drives a joint J.sub.i. In this case, i is 1, 2, 3, 4, 5, or 6. To be noted, in
(14) The display apparatus 600 serving as an example of an apparatus that issues warning is a display such as a liquid crystal display or an organic electroluminescence display, and displays an image corresponding to image data serving as an example of predetermined data that has been input. The input device 700 is, for example, a keyboard 701 and a mouse 702. To be noted, the apparatus that issues warning is not limited to the display apparatus 600, and may be a loudspeaker, or a terminal capable of communicating with the processing apparatus main part 500.
(15) The joints J.sub.1 to J.sub.6 differ in size and shape, but have approximately the same configuration.
(16) The driving mechanism 230.sub.i includes an electric motor 231.sub.i serving as an example of a driving portion, and a reduction gear 233.sub.i that reduces and outputs the rotation speed of a rotation shaft 232.sub.i of the motor 231.sub.i. The rotation shaft 232.sub.i extending from a rotor of the motor 231.sub.i is fixed to the input shaft of the reduction gear 233.sub.i. The output shaft of the reduction gear 233.sub.i is fixed to a link 210.sub.i. The link 210.sub.i is relatively moved with respect to a link 210.sub.i-1 by the driving force of the motor 231.sub.i transmitted through the reduction gear 233.sub.i.
(17) The motor 231.sub.i is, for example, a brushless direct current servo motor: brushless DC servo motor or an alternate current servo motor: AC servo motor, and is under servo control of a motor control unit 350.sub.i. To be noted, although a case where the motor control unit 350.sub.i is disposed inside the robot arm 200 is illustrated in
(18) The reduction gear 233.sub.i is, for example, a strain wave gearing, and reduces the rotation speed of the motor 231.sub.i to move the joint J.sub.i. As a result of this, the link 210.sub.i relatively rotates about the joint J.sub.i with respect to the link 210.sub.i-1. The rotation angle of the output shaft of the reduction gear 233.sub.i serves as the rotation angle of the joint J.sub.i.
(19) The input shaft encoder 261.sub.i that is an encoder and the output shaft encoder 262.sub.i that is an encoder are rotary encoders, may be optical encoders or magnetic encoders, and may be absolute encoders or incremental encoders.
(20) The input shaft encoder 261.sub.i is provided on the input side of the reduction gear 233.sub.i, and the output shaft encoder 262.sub.i provided on the output side of the reduction gear 233.sub.i. The input shaft encoder 261.sub.i outputs a signal corresponding to displacement of the joint J.sub.i, specifically a signal corresponding to the rotation angle of the rotation shaft 232.sub.i of the motor 231.sub.i. The output shaft encoder 262.sub.i outputs a signal corresponding to displacement of the joint J.sub.i specifically a signal corresponding to the relative angle of the link 210.sub.i with respect to the link 210.sub.i-1, that is, a signal corresponding to the rotation angle of the joint J.sub.i.
(21) To be noted, the links 210.sub.i-1 and 210.sub.i are rotatably connected via a crossed roller bearing 23′7.sub.i.
(22)
(23) The processing apparatus main part 500 includes a central processing unit: CPU 501 serving as a processor that is an example of a processing portion. In addition, the processing apparatus main part 500 includes a read only memory: ROM 502, a random access memory: RAM 503, and a hard disk drive: HDD 504 serving as examples of a storage portion. In addition, the processing apparatus main part 500 includes a recording disk drive 505, and an I/O 511 that is an input/output interface.
(24) The CPU 501, the ROM 502, the RAM 503, the HDD 504, the recording disk drive 505, and the I/O 511 are communicably interconnected via a bus 510. The I/O 511 is connected to the robot controller 300, the display apparatus 600, and the input device 700.
(25) The robot controller 300 includes a CPU 301 serving as an example of a processor. In addition, the robot controller 300 includes a ROM 302, a RAM 303, and an HDD 304 serving as examples of a storage portion. In addition, the robot controller 300 includes an I/O 311 that is an input/output interface.
(26) The CPU 301, the ROM 302, the RAM 303, the HDD 304, and the I/O 311 are communicably interconnected via a bus 310. The I/O 311 is connected to the processing apparatus main part 500, the motor control unit 350.sub.i, the teaching pendant 400, the visual sensor 800, and the force sensor 280.
(27)
(28) The CPU 301 controls, via the motor control unit 350.sub.i, the motor 231.sub.i that drives the joint J.sub.i of the robot arm 200, and thus controls the operation of the robot arm 200. In addition, the CPU 301 receives a signal representing an instruction transmitted from the teaching pendant 400 by an operation of an operator.
(29) The HDD 304 stores a task program 321. The task program 321 describes a command for causing the robot arm 200 to perform a reproductive operation or an adaptive operation. The reproductive operation is a first operation of causing the robot arm 200 to repetitively perform the same operation such as placing a part held by the robot arm 200 in a predetermined position and moving back to an original position, which is performed by the robot arm 200 under teaching/playback control. The adaptive operation is a second operation of causing the robot arm 200 to perform a different operation each time, which is performed under, for example, random picking control using the visual sensor 800 or force control using the force sensor 280. The second operation is an operation different from the first operation. In the present exemplary embodiment, a case where the robot arm 200 is caused to perform two kinds of operations including the first operation and the second operation will be described.
(30) The CPU 301 reads the task program 321, and generates trajectory data of the joint J.sub.i of the robot arm 200. The trajectory data is a set of angle command values θ1.sub.i* of the motor 231.sub.i of the joint J.sub.i, which are each commanded every predetermined time period. The CPU 301 outputs an angle command value θ1.sub.i* for the motor 231.sub.i of the joint J.sub.i to the motor control unit 350.sub.i every predetermined time period. The motor control unit 350.sub.i controls the motor 231.sub.i such that an angle value θ1.sub.i detected by the input shaft encoder 261.sub.i becomes closer to the angle command value θ1.sub.i*.
(31)
(32) The motor control unit 350.sub.i includes a position control portion 351.sub.i, a proportional-integral-derivative calculation portions: PID calculation portions 352.sub.q, and 352d.sub.i, a voltage calculation portion 353.sub.i, a driver 354.sub.i, a bridge circuit 355.sub.i, an analog/digital conversion portion: A/D conversion portion 356.sub.i, a current calculation portion 357.sub.i, and conversion portions 358.sub.i and 359.sub.i.
(33) The current sensor 270.sub.i outputs a signal indicating the amounts of current flowing in respective phases of the motor 231.sub.i to the A/D conversion portion 356.sub.i. The A/D conversion portion 356.sub.i quantizes the signal indicating the amounts of current, converts the signal into numerical data, and outputs the numerical data to the current calculation portion 357.sub.i as current values of three phases.
(34) The input shaft encoder 261.sub.i outputs a pulse signal corresponding to the rotation angle of the rotor of the motor 231.sub.i, that is, the input shaft of the reduction gear 233.sub.i to the conversion portion 358.sub.i. The conversion portion 358.sub.i converts the pulse signal transmitted from the input shaft encoder 261.sub.i into a sensor value, which is numerical data representing an angle, and feeds back the encoder value θ1.sub.1, which is this sensor value, to the voltage calculation portion 353.sub.i, the current calculation portion 357.sub.i, and the position control portion 351.sub.i. Further, the conversion portion 358.sub.i outputs a data signal indicating the encoder value θ1.sub.i of the input shaft encoder 261.sub.i to an external device, which is the robot controller 300 in the present exemplary embodiment.
(35) The current calculation portion 357.sub.i obtains, on the basis of the three-phase current values that have been input and the encoder value θ1.sub.i, a torque current value Iq.sub.i, which is a q-axis current value, and an excitation current value Id.sub.i, which is a d-axis current value. The current calculation portion 357.sub.i feeds back the torque current value Iq.sub.i to the PID calculation portion 352q.sub.i, and feeds back the excitation current value Id.sub.i to the PID calculation portion 352d.sub.i. Further, the current calculation portion 357.sub.i outputs a data signal indicating the torque current value Iq.sub.i to the external device, which is the robot controller 300 in the present exemplary embodiment.
(36) The output shaft encoder 262.sub.i outputs a pulse signal corresponding to the angle of the joint, that is, the rotation angle of the output shaft of the reduction gear 233.sub.i to the conversion portion 359.sub.i. The conversion portion 359.sub.i converts the pulse signal transmitted from the output shaft encoder 262.sub.i into a sensor value, which is numerical data representing an angle, and feeds back the encoder value θ2.sub.1, which is this sensor value, to the external device, which is the robot controller 300 in the present exemplary embodiment.
(37) Meanwhile, the position control portion 351.sub.i obtains a torque current command value Iq.sub.i*, which is a q-axis current command value, and an excitation current command value Id.sub.i*, which is a d-axis current command value, such that difference between the angle command value θ1.sub.i* and the encoder value θ1.sub.i becomes smaller.
(38) The PID calculation portion 352.sub.i obtains a voltage value vq.sub.i by PID control based on the difference between the torque current command value Iq.sub.i* and the torque current value Iq.sub.i. The PID calculation portion 352d.sub.i obtains a voltage value vd.sub.i by PID control based on the difference between the excitation current command value Id.sub.i* and the excitation current value Id.sub.i.
(39) The voltage calculation portion 353.sub.i, converts the voltage values vd.sub.i and vq.sub.i into pulse width modulation signals: PWM signals U.sub.i, V.sub.i, and W.sub.i corresponding to voltages to be applied to respective phases of the motor 231.sub.i. The driver 354.sub.i drives control ports of respective semiconductor switching elements of the bridge circuit 355.sub.i in accordance with the PWM signals U.sub.i, V.sub.i, and W.sub.i by PWM driving. The control ports are each a gate or a base. According to this, the bridge circuit 355.sub.i controls torque current and excitation current by on/off control of voltage to be output to the motor 231.sub.i.
(40) The robot controller 300 receives data signals indicating the encoder values θ1.sub.i and θ2.sub.i and the torque current value Iq.sub.i corresponding to the joint J.sub.i, and performs various calculation. In addition, in the present exemplary embodiment, the robot controller 300 outputs a data signal indicating the encoder value θ1.sub.i and a data signal indicating the torque current value Iq.sub.i corresponding to the joint J.sub.i sequentially at a predetermined period to the processing apparatus main part 500. To be noted, the motor control unit 350.sub.i corresponding to the joint J.sub.i may sequentially output the data signal indicating the encoder value θ1.sub.i and the data signal indicating the torque current value Iq.sub.i directly to the processing apparatus main part 500 not through the robot controller 300.
(41) In a series of operations that the robot controller 300 causes the robot arm 200 to perform during automatic operation of the robot apparatus 100 in a manufacture line such as an assembly operation of a product, the first operation and the second operation are both included. The robot controller 300 causes the robot arm 200 to perform an assembly operation of the product W0 by switching between the first operation and the second operation during an automatic operation following the task program 321. The robot controller 300 is not configured to output to the external device information indicating which of the first operation and the second operation the robot arm 200 is performing. In addition, prediction of whether or not malfunction of the robot arm 200 will occur is performed on the basis of the difference between a measured value and a reference value, and the reference value to be compared with the measured value should be changed between the first operation and the second operation.
(42) In the present exemplary embodiment, the processing apparatus main part 500 obtains time-series data of the encoder value θ1.sub.i and the torque current value Iq.sub.i output from the robot 250 at a predetermined period, performs statistical processing, and predicts malfunction of the robot arm 200. The HDD 504 serving as an example of a storage portion stores a program 521 for causing the CPU 501 serving as an example of a processing portion to perform a processing method that will be described later.
(43) To be noted, although a case where the HDD 504 is a computer-readable non-transitory recording medium and the HDD 504 stores the program 521 will be described in the present exemplary embodiment, the configuration is not limited to this. The program 521 may be recorded in any recording medium as long as the recording medium is computer-readable and non-transitory. For example, as the recording medium for supplying the program 521, the ROM 502 illustrated in
(44) The CPU 501 illustrated in
(45) A case where the monitoring mode M2 has been selected will be described. The CPU 501 specifies which of the first operation and the second operation is being performed in the automatic operation of the robot arm 200 by using the index set in the learning mode M1, and predicts malfunction of the robot arm 200 by using a reference value corresponding to the operation. To be noted, although a case where the user selects the mode has been described, the configuration is not limited to this. The CPU 501 may automatically select the mode in accordance with a period that has been designated in advance.
(46) First, details of the case where the CPU 501 functions in the learning mode M1 will be described. In the case where the CPU 501 functions in the learning mode M1, the CPU 501 functions as the obtaining portion 551, the sectionalizing portion 552, and the classification model generation portion 554 in
(47) The obtaining portion 551 obtains respective data from the robot 250 in time series. Specifically, the obtaining portion 551 obtains the encoder value θ1.sub.i, which is a sensor value based on the signal output from the input shaft encoder 261.sub.i serving as a first sensor, in time series from the robot controller 300. The obtaining portion 551 obtains the torque current value Iq.sub.i, which is a sensor value based on the signal output from the current sensor 270.sub.i serving as a second sensor, in time series from the robot controller 300 of the robot 250. Respective time-series data, that is, the encoder value θ1.sub.i and the torque current value Iq.sub.i are associated with time when these values are obtained in the motor control unit 350.sub.i. Therefore, these pieces of time-series data are synchronized. To be noted, the time-series data of the encoder value θ1.sub.i obtained by the CPU 501 serving as the obtaining portion 551 is temporarily stored in the RAM 503.
(48)
(49) In the present exemplary embodiment, the sectionalizing portion 552 performs the sectionalization at portions where a value of displacement velocity of one of the joints J.sub.1 to J.sub.6 of the robot arm 200, preferably values of displacement velocities of all the joints J.sub.1 to J.sub.6 are lower than a velocity threshold value V1 serving as a predetermined first threshold value. In the examples of
(50) The time-series data sectionalized into the sections C.sub.1, C.sub.2, C.sub.3, . . . , C.sub.N is stored in the data storage portion 553. The data storage portion 553 stores the time-series data sectionalized into unit operations by the sectionalizing portion 552 in such a manner that past time-series data that is stored can be referred to by the classification model generation portion 554.
(51) The classification model generation portion 554 clusters, on the basis of the change in the orientation of the robot arm 200, the past time-series data of unit operations stored in the data storage portion 553, and thus generates a classification model. As a method for the clustering, existing methods such as the k-means method can be used. In the present exemplary embodiment, the number of kinds of operations of the robot arm 200, that is, the number of clusters is unknown. Therefore, the method for the clustering is preferably combined with a method for estimating the number of clusters such as the elbow method or the X-means method.
(52) An example of the clustering performed by the classification model generation portion 554 will be described below in detail.
(53)
(54) Unit operations corresponding to the pieces of point data belonging to the first clusters D11 and D12 are first operations, and unit operations corresponding to the pieces of point data belonging to the second cluster D21 are second operations. That is, in the first operation, since the robot arm 200 repeats the same operation, the variance of the point data is relatively small. In the second operation, since the robot arm 200 performs a different operation each time, the variance of the point data is relatively large. Therefore, the first clusters D11 and D12 corresponding to the first operations and the second cluster D21 corresponding to the second operation can be determined by whether the variance of the point data surpasses the threshold value TH or not.
(55) The classification model generation portion 554 stores a classification model for classifying the point data into the clusters D11, D12, and D21 in the classification model storage portion 555 after finishing classifying the time-series data of the encoder value θ1.sub.i of the sections C.sub.1 to C.sub.N into the clusters D11, D12, and D21. The classification model storage portion 555 stores the classification model generated by the classification model generation portion 554 in such a manner that the classification model can be referred to by the specification portion 556. In this manner, the classification model serving as an index for determining whether the operation is the first operation or the second operation to be used in the monitoring mode M2 to be performed later is set. In
(56) Next, the first reference value A1 illustrated in
(57) In the learning mode M1, the CPU 501 obtains in time series the torque current value Iq.sub.i together with the encoder value θ1.sub.i from the robot 250 and sectionalizes the torque current value Iq.sub.i in association with the encoder value θ1.sub.i. That is, the CPU 501 sectionalizes the torque current value Iq.sub.i into the sections C.sub.1, C.sub.2, C.sub.3, . . . , C.sub.N similarly to the encoder values θ1.sub.i as illustrated in
(58) Next, the second reference value A2 illustrated in
(59) Next, a case where the CPU 501 functions in the monitoring mode M2 will be described. In the case where the mode is switched by the user and the CPU 501 functions in the monitoring mode M2, the CPU 501 functions as the obtaining portion 551, the sectionalizing portion 552, the specification portion 556, the prediction portion 557, and the output portion 558 in
(60) The obtaining portion 551 obtains in time series the encoder value θ1.sub.i and the torque current value Iq.sub.i from the robot controller 300 during automatic operation of the robot arm 200. To be noted, the time-series data of each of the encoder value θ1.sub.i, and the torque current value Iq.sub.i, obtained by the obtaining portion 551 is temporarily stored in the RAM 503.
(61) Then, when obtaining the encoder value θ1.sub.i and the torque current value Iq.sub.i of a unit operation of one section determined by sectionalization as a predetermined section, the sectionalizing portion 552 outputs data of the unit operation to the specification portion 556. In the example of
(62) The specification portion 556 specifies, on the basis of the classification model stored in the classification model storage portion 555, which of the clusters D11, D12, and D21 the data of the section C.sub.N+1 that has been input belongs to. For example, the specification portion 556 specifies which of the regions R11, R12, and R21 illustrated in
(63) The specification portion 556 outputs the result of specification to the prediction portion 557 together with the time-series data of the torque current value Iq.sub.i of the section C.sub.N+1. The clusters D11, D12, and D21 each correspond to one of the first operation and the second operation. Therefore, the specification portion 556 specifies which of the first operation and the second operation the time-series data of the section C.sub.N+1 that is input corresponds to at the same time with the specification of the cluster.
(64) The prediction portion 557 selects an appropriate algorithm in accordance with the time-series data of the section C.sub.N+1 that is input and the classification of the cluster thereof, calculates the degree of abnormality by, for example, the T2 method of Hotelling, and outputs the result of whether or not malfunction is predicted to the output portion 558. That is, the prediction portion 557 compares the torque current value Iq.sub.i, which is a measured value, with the first reference value A1 to predict whether or not malfunction of the robot arm 200 will occur, in the case where the cluster is specified as corresponding to the first operation. The prediction portion 557 compares the torque current value Iq.sub.i, which is a measured value, with the second reference value A2 to predict whether or not malfunction of the robot arm 200 will occur, in the case where the cluster is specified as corresponding to the second operation.
(65) Specific examples will be described below. The prediction portion 557 obtains six-dimensional point data from the time-series data of the torque current value Iq.sub.i of the section C.sub.N+1 by a method similar to the predetermined method described above. In the case where the point data representing the time-series data of the encoder value θ1.sub.i of the section C.sub.N+1 is specified as belonging to the first cluster D11 or D12, the prediction portion 557 obtains the difference between the first reference value A1 and the point data representing the time-series data of the torque current value Iq.sub.i of the section C.sub.N-p.sub.i. This difference is a statistical distance. In the case where the obtained deviation is larger than a first predetermined value B1, the prediction portion 557 transmits a command for notifying abnormality to the output portion 558. To be noted, in the case where the obtained deviation is equal to or smaller than the first predetermined value B1, the prediction portion 557 finishes processing.
(66) In addition, in the case where the point data of the encoder value θ1.sub.i of the section C.sub.N+1 is specified as belonging to the second cluster D21, the prediction portion 557 obtains the difference between the second reference value A2 and the point data representing the torque current value Iq.sub.i of the section C.sub.N+1. This difference is a statistical distance. In the case where the obtained difference is larger than a second predetermined value B2, the prediction portion 557 transmits a command for notifying abnormality to the output portion 558. To be noted, in the case where the obtained difference is equal to or smaller than the second predetermined value B2, the prediction portion 557 finishes processing.
(67) The first predetermined value B1 and the second predetermined value B2 are values stored in the HDD 504 in advance, and values set before malfunction of the robot arm 200 occurs. When the difference surpasses the predetermined value B1 or B2, malfunction of the robot arm 200 is predicted in the CPU 501.
(68) In the case where malfunction is predicted in the prediction portion 557, that is, in the case of receiving the command notifying abnormality from the prediction portion 557, the output portion 558 outputs predetermined data, which is image data in the present exemplary embodiment, to the display apparatus 600. The display apparatus 600 displays an image based on the obtained image data. As a result of this, warning indicating that the robot arm 200 is likely to malfunction is notified to a user. To be noted, the malfunction of the robot arm 200 is yet to occur at the time when such warning is notified. In the case of receiving such notification, the user may carry out maintenance such as repairing of the robot arm 200 in the next planned regular checkup.
(69) The section C.sub.N+1 has been described above. The CPU 501 performs the processing of the monitoring mode M2 on a section C.sub.N+2 and subsequent sections. In addition, the timing of the processing of the learning mode M1 is not limited to the initial stage after booting up the apparatus, and may be an arbitrary timing such as after performing the regular checkup or after changing the task program 321.
(70) In the present exemplary embodiment, the CPU 501 obtains in time series the encoder value θ1.sub.i of the input shaft encoder 261.sub.i output in correspondence with the operation of the robot arm 200. Then, the CPU 501 sectionalizes the time-series data of the encoder value θ1.sub.i into the sections C.sub.1 to C.sub.N on the basis of a predetermined condition, and clusters the time-series data of the encoder value θ1.sub.i sectionalized into the sections C.sub.1 to C.sub.N. As a result of this, the time-series data of the encoder value θ1.sub.i of the sections C.sub.1 to C.sub.N is classified into the clusters D11, D12, and D21 in correspondence with the kind of operation of the robot arm 200. Therefore, the CPU 501 is capable of predicting malfunction of the robot arm 200 by using a reference value suitable for the operation without receiving information about the kind of operation indicating which of the first operation and the second operation the robot 250 performs. As a result of this, the CPU 501 can perform processing suitable for the operation of the robot arm 200.
(71) In addition, the CPU 501 sectionalizes the time-series data into the sections C.sub.1 to C.sub.N by extracting, from the time-series data of the encoder values θ1.sub.i, sections where the value obtained by differentiation of the encoder value θ1.sub.i, that is, the value of the displacement velocity of the joint J.sub.i is larger than the velocity threshold value V1 as the predetermined condition. As a result of this, the CPU 501 can sectionalize the time-series data of the encoder value θ1.sub.i for each unit operation of the robot arm 200, and thus perform processing suitable for the operation of the robot arm 200.
(72) In addition, in the present exemplary embodiment, the CPU 501 outputs image data to the display apparatus 600 as a result of predicting that malfunction of the robot arm 200 will occur. As a result of this, warning is notified to a user at an appropriate time, thus maintenance operation that is not planned, that is, maintenance operation performed by stopping the robot 250 at a time other than regular checkup is reduced, and the productivity of the product W0 is improved.
(73) To be noted, the present invention is not limited to the exemplary embodiment described above, and can be modified in various ways within the technical concept of the present invention. In addition, the effects described in the exemplary embodiment are just enumeration of the most preferable effects that can be achieved by the present invention, and the effects of the present invention are not limited to those described in the exemplary embodiment.
(74) Although a case where the robot arm 200 is a vertically articulated robot arm has been described in the exemplary embodiment described above, the configuration is not limited to this. For example, the robot arm may be various robot arms such as a selective compliance assembly robot arm, a parallel link robot arm, and an orthogonal robot.
(75) Although a case where the device that issues warning is the display apparatus 600 has been described in the exemplary embodiment described above, the configuration is not limited to this. In the case where the predetermined data output from the CPU 501 is sound data, the device that issues warning may be, for example, a loudspeaker. In addition, in the case where the predetermined data output from the CPU 501 is text data used for electronic mails or the like, the device that issues warning may be a terminal capable of communicating with the processing apparatus main part 500.
(76) Although a case where the first sensor is the input shaft encoder 261.sub.i, has been described in the exemplary embodiment described above, the configuration is not limited to this. For example, the first sensor may be the output shaft encoder 262.sub.i.
(77) In addition, although a case where the second sensor is the current sensor 270.sub.i has been described in the exemplary embodiment described above, the configuration is not limited to this. For example, the second sensor may be the output shaft encoder 262.sub.i, or an unillustrated temperature sensor provided in the motor 231.sub.i or in the vicinity of the motor 231.sub.i. In addition, the time-series information representing the sensor value of the second sensor may be, for example, digital I/O information communicated between the robot 250 and an unillustrated external device.
(78) In addition, although a case where the first sensor and the second sensor are different has been described in the exemplary embodiment described above, the configuration is not limited to this. That is, the first sensor and the second sensor may be the same sensor. For example, the output shaft encoder 262.sub.i may be used as this same sensor. That is, in the learning mode M1, the classification model and the first reference value A1 may be obtained from the encoder value θ2.sub.i of the output shaft encoder 262.sub.i. In the monitoring mode M2, the encoder value θ2.sub.i of one section may be used as the data used for determining whether the operation is the first operation and the data compared with the first reference value A1 or the second reference value A2.
(79) In addition, although a case where the motor control unit 350.sub.i obtains the torque current value Iq.sub.i from current values of three phases based on the signal of the current sensor 270.sub.i has been described in the exemplary embodiment described above, the CPU 501 may obtain the torque current value Iq.sub.i from the current values of three phases.
(80) In addition, although a case where the CPU 501 collectively monitors the entirety of the robot arm 200 has been described in the exemplary embodiment described above, the configuration is not limited to this. The CPU 501 may individually monitor each of the plurality of joints J.sub.1 to J.sub.6 of the robot arm 200. In this case, the reference values A1 and A2 are individually set for each of the joints J.sub.1 to J.sub.6.
(81) In addition, in the exemplary embodiment described above, a case where the time-series data of the encoder value is sectionalized by performing first-order differentiation of the encoder value by time and excluding sections where the temporal change of the encoder value can be regarded as 0 from the time-series data of the encoder value has been described. However, in the case where the number of operations of the robot arm 200 is small, information indicating the first operation or information indicating the second operation may be associated with the operation of the robot arm 200 at the time of teaching the operation of the robot arm 200.
(82) For example, information indicating the first operation is associated with an operation of “moving to above the tray from the original position” at the time of teaching, and information indicating the second operation is associated with an operation of “holding while adjusting the position of the hand” at the time of teaching. As a result of this, the encoder value obtained from the robot arm 200 when the robot arm 200 performs each operation can be sectionalized on the basis of the information indicating the first operation or the information indicating the second operation. Therefore, the processing of differentiating the encoder value can be omitted, and thus processing load on the CPU 501 can be reduced by the amount required for this processing.
(83) In addition, the time-series data of the torque current value obtained when performing each operation may be directly sectionalized on the basis of the information indicating the first operation or the information indicating the second operation associated with each operation. As a result of this, processing of the encoder value can be further omitted, and thus the processing load on the CPU 501 can be further reduced by the amount required for this processing.
(84) In addition, information indicating the kind of the operation may be associated with each operation at the time of teaching, and the encoder value and the torque current value obtained when performing each operation may be sectionalized on the basis of the information indicating the type of the operation.
(85) In addition, although a case where the predetermined apparatus is the robot arm 200 has been described as an example in the exemplary embodiment described above, the configuration is not limited to this. For example, the predetermined apparatus may be various manufacturing apparatuses such as a linear apparatus that conveys a workpiece, a probe apparatus that detects the surface roughness, and a vapor deposition apparatus that performs vapor deposition of a film on a lens. In this case, a sensor such as an encoder or a current sensor may be provided on a driving portion that drives a predetermined part, and the CPU 501 can perform a processing method similar to that of the exemplary embodiment described above by inputting a program similar to that of the exemplary embodiment described above to the CPU 501.
(86) In addition, the predetermined apparatus is not limited to a manufacturing apparatus, and may be an apparatus other than a manufacturing apparatus. For example, the predetermined apparatus may be a nursing robot, a robot for consumers, an office appliance, or an optical apparatus. Any apparatus that achieves an object of a user by moving a predetermined part can be used as the predetermined apparatus. Also in this case, a sensor such as an encoder or a current sensor may be provided on a driving portion of the predetermined part that moves, and the CPU 501 can perform a processing method similar to that of the exemplary embodiment described above by inputting a program similar to that of the exemplary embodiment described above to the CPU 501.
(87) In addition, the configuration of the driving portion that drives each joint of the robot arm 200 is not limited to the configuration of the exemplary embodiment described above. For example, the driving portion that drives each joint may be a device or the like such as artificial muscle. In this case, a sensor capable of detecting the displacement of the device may be appropriately provided instead of the encoder or the current sensor.
(88) In addition, it is preferable that the predetermined apparatus is a machine capable of automatically performing operations such as extension/contraction, bending, vertical movement, horizontal movement, pivoting, and combination of these on the basis of information stored in a storage device provided in a control apparatus.
Other Embodiments
(89) Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
(90) While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
(91) This application claims the benefit of Japanese Patent Application No. 2018-138894, filed Jul. 24, 2018, and Japanese Patent Application No. 2019-109202, filed Jun. 12, 2019, which are hereby incorporated by reference herein in their entirety.