Patent ID: 12226915

DESCRIPTION OF EXEMPLARY EMBODIMENTS

First Embodiment

In this embodiment, characteristic examples of a robot system, a calibration method for a belt conveyor, and a robot control method will be explained.

As shown inFIG.1, a robot system1includes a belt conveyor3on a base2. The belt conveyor3includes a first pulley4and a second pulley5. A belt6is looped around the first pulley4and the second pulley5. The belt conveyor3includes a first motor7. Torque of the first motor7is transmitted to the first pulley4by a transmission mechanism including a timing belt8and the like. When the shaft of the first motor7rotates, the first pulley4rotates and the belt6for transportation moves.

A direction from the first pulley4toward the second pulley5is referred to as “X positive direction”. Width directions of the belt conveyor3are referred to as “Y directions”. A direction from the base2toward the belt conveyor3is referred to as “Z positive direction”. The X directions, the Y directions, and the Z directions are orthogonal to one another.

When the belt conveyor3is placed on the base2, the belt6is adjusted not to meander. A direction in which the belt6moves is referred to as “first direction9”. With respect to the belt6, the first pulley4side is upstream and the second pulley5side is downstream. The first direction9is the X positive direction. A plate11is placed on the belt6. The plate11is transported by the belt conveyor3with the moving belt6. When a workpiece is placed on the belt6, the workpiece is transported by the belt conveyor3with the moving belt6. The movement direction of the belt6may meander due to changes over time. When the belt6meanders, the movement direction of the belt6differs from the first direction9.

A first encoder12is placed in the first pulley4. The first encoder12is a rotary encoder and detects a rotation angle of the first pulley4. The rotation angle of the first pulley4is directly proportional to a movement amount of the belt6. Therefore, a movement amount of the plate11moving in the first direction9is detected from output of the first encoder12.

A first camera13is placed in the Z positive direction of the belt6at the downstream of the first pulley4. The first camera13images the upstream of the belt6.

The plate11is placed in an imaging range of the first camera13. Therefore, after the plate11is placed on the belt6, the plate11is imaged by the first camera13.

A robot15is placed between the first camera13and the second pulley5. The robot15includes a robot main body15aand a control apparatus15bas a control section. The robot main body15ais placed on a placement platform16placed on the base2. The robot main body15aincludes a plurality of coupled arms15c. The arm15cincludes an actuator17as a hand at the distal end.

The robot main body15aincludes pluralities of second motors15dand second encoders15ethat rotate the respective arms15c. The control apparatus15bcontrols the position of the actuator17by driving the second motors15dand the second encoders15e.

The arm15cincludes an elevation device15fat the distal end. The elevation device15fmoves the actuator17upward and downward. The control apparatus15bcontrols the position of the actuator17in the Z directions by driving the elevation device15f.

The actuator17is e.g. a hand gripping the plate11, a motor driver, or the like. The control apparatus15bcontrols driving of the actuator17.

A second camera18is attached to the arm15cof the robot15or the actuator17. The second camera18images the plate11moving in the first direction9. The motion range of the robot15contains the belt6.

InFIG.2, the robot15is omitted. As shown inFIG.2, a direction orthogonal to the first direction9on an XY-plane is referred to as “second direction19”. The second direction19is the Y negative direction. InFIG.2, a first imaging area21as an imaging area as a range imaged by the first camera13is shown by dotted lines. A second imaging area22as a range imaged by the second camera18is shown by dotted lines. The first imaging area21and the second imaging area22have rectangular shapes. The position of the first imaging area21is fixed.

The first imaging area21is divided into 49 sections21rin seven rows and seven columns. From the side in the Y positive direction toward the side in the Y negative direction, a first row21a, a second row21b, a third row21c, a fourth row21d, a fifth row21e, a sixth row21f, and a seventh row21gare assigned. From the side in the X negative direction toward the side in the X positive direction, a first column21h, a second column21j, a third column21k, a fourth column21m, a fifth column21n, a sixth column21p, and a seventh column21qare assigned.

The section21rin the corner at the side in the X negative direction and the side in the Y positive direction is in the first row21aand the first column21h. The section21rin the corner at the side in the X positive direction and the side in the Y negative direction is in the seventh row21gand the seventh column21q.

The second imaging area22is the smaller range and has higher resolution than the first imaging area21. The second camera18and the second imaging area22are moved by the robot15.

As shown inFIG.3, markers23are formed on the plate11. The markers23have circular shapes and centers of gravity easily calculated.

The first camera13images the markers23on the belt6. When a workpiece is present on the belt6, the first camera13images the workpiece on the belt6.

The belt6of the belt conveyor3transports the markers23. The first camera13images the markers23. The control apparatus15bdetects the marker23passing through one section21rof the plurality of sections21rformed by division of the first imaging area21as the imaging area of the first camera13from the captured image of the first camera13.

As shown inFIG.4, the belt6of the belt conveyor3transports the markers23in the first direction9. The robot15moves the second camera18, and thereby, the second camera18tracks and images the detected marker23. The robot15moves the second camera18so that the position of the marker23estimated from the transportation amount of the belt6may be located at the center of the second imaging area22.

The control apparatus15bcalculates and stores a correction value as a difference between the position of the marker23estimated from the transportation amount of the belt6and a position of the marker23detected from an image of the marker23tracked and imaged.

As shown inFIG.5, the control apparatus15bincludes a CPU24(central processing unit) as a computer that performs various kinds of operation processing and a memory25as a memory unit that stores various kinds of information. A robot drive device26, the first camera13, the second camera18, the belt conveyor3, an input device28, and an output device29are coupled to the CPU24via an input/output interface31and a data bus32.

The robot drive device26is a device that drives the robot main body15a. The robot drive device26drives the second motors15d, the second encoders15e, and the elevation device15fof the robot main body15aand the actuator17.

Data of the images captured by the first camera13and the second camera18is transmitted to the CPU24via the input/output interface31and the data bus32.

The output of the first encoder12of the belt conveyor3is transmitted to the CPU24via the input/output interface31and the data bus32.

The input device28is a keyboard, a joy stick, or the like. A worker inputs various instructions by operating the input device28.

The output device29is a display device, an external output device, or the like. The worker views the display device and checks various kinds of information. The output device29includes an external interface that communicates with an external device.

The memory25includes a semiconductor memory such as a RAM (Random Access Memory) or a ROM (Read Only Memory). The memory25stores a program33in which a procedure of motion of the robot main body15ais described. Further, the memory25stores belt measurement data34. The belt measurement data34is data representing meandering and a position shift of the belt6. Furthermore, the memory25stores workpiece position data35. The workpiece position data35is data representing the position of the workpiece on the belt6. In addition, the memory25stores image data36. The image data36is data of the images captured by the first camera13and the second camera18. The memory25includes a memory area that functions as a work area for operation of the CPU24, a temporary file, or the like and other various memory areas.

The CPU24drives the robot system1according to the program33stored within the memory25. The CPU24operated by the program33has a robot control section37as an operation control unit as a specific function realization unit. In the control apparatus15b, the robot control section37controls the motion of the robot main body15a. When the robot15performs work on a workpiece on the belt6, the first camera13is controlled to image the workpiece.

Further, the CPU24has an imaging control section38. The imaging control section38controls times of imaging by the first camera13and the second camera18.

A first detection unit39as a first detection unit detects the marker23passing through one section21rof the plurality of sections21rformed by division of the first imaging area21of the first camera13.

A correction value calculation unit41as a correction value calculation unit calculates and stores a correction value as a difference between the position of the marker23estimated from the transportation amount of the belt6and the position of the marker23detected from the image of the marker23tracked and imaged as a part of the belt measurement data34in the memory25.

Specifically, when the second camera18images the marker23, the imaging control section38detects a shift amount between the center of the image captured by the second camera18and the center of the marker23. The shift amount contains a distance shifted in the first direction9and a distance shifted in the second direction19.

A second detection unit42as a second detection unit inputs an image containing the workpiece imaged by the first camera13and detects the section21rthrough which the workpiece passes of the plurality of sections21rwhen the robot15performs work on the workpiece on the belt6.

Further, the CPU24has a position correction calculation unit43as a correction unit. The position correction calculation unit43calculates the position of the workpiece changed due to a shift or meandering of the belt6. The position correction calculation unit43acquires the correction value corresponding to the workpiece passing through the section21rdetected in the first imaging area21from the memory25and the position correction calculation unit43corrects position information of the workpiece using the correction value.

The robot control section37controls the robot15to perform work on the workpiece using the corrected position information of the workpiece.

Further, the CPU24has a workpiece position calculation unit44. The workpiece position calculation unit44calculates the position of the workpiece when the belt6does not meander from the output of the first encoder12.

Furthermore, the CPU24has a belt control section45. The belt control section45controls a movement speed of the belt6. The belt control section45inputs the output of the first encoder12and recognizes the movement speed and the movement amount of the belt6.

Next, a procedure of a belt conveyor calibration method of the robot system1will be explained.

FIG.6shows a work procedure for performing a calibration of the belt conveyor3of the robot system1. InFIG.6, at step S1, the worker places the plate11on the belt6. First, the plate11is placed so that the plate may be imaged in the first column21h. Then, the procedure goes to step S2and step S3. Step S2and step S3are performed in parallel.

At step S2, the belt6moves the plate11. The belt6of the belt conveyor3transports the marker23. When the belt6meanders, the markers23also meander. Then, the procedure goes to step S6.

At step S3, the first camera13images the markers23. The first detection unit39detects the marker23passing through one section21rof the plurality of sections21rformed by division of the first imaging area21of the first camera13from the captured image of the first camera13. The first detection unit39first detects the marker23passing through the section21rin the first column21hand the first row21a.

At step S4, the second camera18tracks and measures one of the imaged markers23. The second camera18tracks the marker23passing through the section21rin the first column21hand the first row21adetected at step S3. The image of the marker23is stored as a part of the belt measurement data34in the memory25. In other words, the second camera18is moved by the robot15, and thereby, the second camera18tracks the detected marker23and images the marker23. Then, the procedure goes to step S5.

At step S5, the correction value calculation unit41calculates data of a position shift from the center of the second imaging area22as the imaging range. The position shift data is stored as a part of the belt measurement data34in the memory25. Then, the procedure goes to step S6.

At step S6, whether or not all of the markers23to be measured are measured is determined. When there is a marker23in a location not measured, then, the procedure goes to step S1.

In the first column21h, the markers23are sequentially measured from the first row21ato the seventh row21g. When all of the measurements of the markers23in the first column21hend, then, at step S1, the plate11is placed so that the markers23on the plate11may be imaged in the second column21j. Further, the plate11is placed in the third column21kto the seventh column21qso that the markers23on the plate11may be sequentially imaged.

At step S3, in one column, the row is sequentially changed. When the measurements of the markers23in the first row21aend, then, the markers23in the second row21bare imaged. Further, the markers23are imaged from the third row21cto the seventh row21g. At step S4, the markers23imaged at step S3are tracked. When a determination that the measurements of the markers23passing through all of the sections21rare finished is made at step S6, the procedure goes to step S7.

At step S7, the measured data is displayed on a screen of the output device29. Then, the procedure goes to step S8. At step S8, a calculation for shift amount correction is performed. An approximate expression for shift amount correction of the belt6is calculated from the trajectory of the marker23tracked and measured by the second camera18and stored as a part of the belt measurement data34in the memory25.

In other words, the correction value calculation unit41calculates and stores the correction value as a difference between the position of the marker23estimated from the transportation amount of the belt6and the position of the marker23detected from the image of the marker23tracked and imaged.

The second camera18tracks and images the markers23passing through the respective sections21rof all sections21rof the plurality of sections21r, and the correction value calculation unit41calculates the correction value.

According to the method, trajectories in which the markers23passing through the respective sections21rin the plurality of sections21rmove are detected. Then, the correction value is calculated. Therefore, a trajectory of the workpiece passing through some of the plurality of sections21rmay be accurately estimated.

According to the method, the number of the plurality of sections21rmay be changed by the worker. The larger the number of sections21r, the smaller the respective sections21r, and the position accuracy may be accurately detected. However, the number of measurements is larger, and the man-hour for the measurements increases. The worker sets the smaller number of sections21rof the numbers of sections21rthat satisfy the necessary position accuracy, and thereby, may calibrate the belt conveyor3with higher productivity.

FIG.7shows an example of a screen displayed at step S7. Within the left frame, an image of the markers23imaged by the first camera13is shown. Within the right frame, two graphs are shown. In the upper part of the right frame, the shift amount of the belt6in the first direction9is shown. The horizontal axis of the graph indicates the position of the marker23in the first direction9. The vertical axis indicates the shift amount of the belt6in the first direction9. In the lower part of the right frame, the shift amount of the belt6in the second direction19is shown. The horizontal axis of the graph indicates the position of the marker23in the first direction9. The vertical axis indicates the shift amount of the belt6in the second row21b. The graph is an example in which the belt6meanders.

At the center, measurement conditions are shown. The calibration section column number shows data representing the column of the first column21hto seventh column21qthrough which the marker23passes. The numeral “5” shows the fifth column21n.

The vision sequence is an identifier of the program33for the robot15to move the second camera18. The calibration mark number shows data representing the row of the first row21ato seventh row21gthrough which the marker23passes. The numeral “6” shows the sixth row21f.

The calibration number shows an identification number of the section21r. The object shows an identifier of a captured image. The shift amount shows a shift amount in a particular location. The maximum shift amount shows the maximum shift amount in a path in which the second camera18tracks.

FIG.8shows an example of a graph of a result of the calculation for the shift amount correction at step S8. The horizontal axis indicates the position of the belt6in the first direction9. The vertical axis shows the shift amount in the second direction19. Specifically, the shift amount of the center of gravity of the marker23with respect to the center of the second imaging area22is shown. A solid line forms a line graph passing through plots of measurement values. A dotted line shows an approximate expression calculated by the least-squares method using the plots of the measurement values. The approximate expression is a cubic equation. The approximate expression is calculated with respect to all of the 49 sections21rof the first imaging area21.

A row number in the section21rof the first imaging area21is referred to as “CamX” and a column number is referred to as “CamY”. The position of the second imaging area22in the first direction9is referred to as “CnvX”. With the approximate expression of the shift amount in the first direction9as a function FX, the correction value of the shift amount in the first direction9is shown by FX(CamX, CamY, CnvX). With the approximate expression of the shift amount in the second direction19as a function FY, the correction value of the shift amount in the second direction19is shown by FY(CamX, CamY, CnvX).

FX(CamX, CamY, CnvX) and FY(CamX, CamY, CnvX) are stored as a part of the belt measurement data34in the memory25. This is the end of the procedure of the belt conveyor calibration method.

Next, a procedure of a robot control method performed subsequent to the belt conveyor calibration method will be explained. The procedure of the robot control method is a procedure when the robot15performs work on a workpiece on the belt6. The correction value is already calculated and stored in the memory25using the above described belt conveyor calibration method.

FIG.9shows a work procedure for the robot15of the robot system1to perform work on a workpiece transported by the belt6.

InFIG.9, at step S11, the first camera13images a workpiece. Then, the procedure goes to step S12. At step S12, the second detection unit42detects the section21rthrough which the workpiece passes of the plurality of sections21r. Then, the procedure goes to step S13. At step S13, the position correction calculation unit43acquires the correction value corresponding to the section21rthrough which the workpiece passes from the memory25. The workpiece position calculation unit44calculates the position of the workpiece when the belt6does not meander from the output of the first encoder12. The position correction calculation unit43corrects coordinates at which the workpiece is located using the correction value.

The row number of the section21rthrough which the workpiece passes is referred to as “CamX”, the column number is referred to as “CamY”. The position of the workpiece in the first direction9obtained from the first encoder12is referred to as “CnvX”. The position of the workpiece before correction in the first direction9is referred to as “RbXb”, and the position of the workpiece after correction is referred to as “RbXa”. RbXa=RbXb+FX(CamX, CamY, CnvX). The position of the workpiece before correction in the second direction19is referred to as “RbYb”, and the position of the workpiece after correction is referred to as “RbYa”. RbYa=RbYb+FY(CamX, CamY, CnvX). Then, the procedure goes to step S14.

At step S14, the actuator17moves to the workpiece. The robot control section37moves the actuator17to the coordinates (RbXa, RbYa) after correction. Then, the procedure goes to step S15.

At step S15, the actuator17performs work. For example, the actuator17picks up the workpiece. As described above, the robot15corrects the position information of the workpiece using the correction value and performs work on the workpiece using the corrected position information of the workpiece.

FIG.10corresponds to step S12. As shown inFIG.10, the second detection unit42detects the section21rthrough which a workpiece46as an object passes. For example, the workpiece46passes through the section21rin the third row21cand the second column21j.

FIG.11corresponds to step S14. As shown inFIG.11, the workpiece46is transported by the belt6and moves in the first direction9. The actuator17moves toward the workpiece46.

The shift amount of the belt6is corrected in the position of the workpiece46as a goal of the movement of the actuator17, and thereby, the actuator17may reach the workpiece46with higher position accuracy.

According to the belt conveyor calibration method, the configuration of the robot system1, and the program33, the marker23transported by the belt6and passing through the predetermined section21ris detected. Then, the second camera18tracks the marker23. Therefore, the trajectory in which the marker23passing through the predetermined section21rmoves is measured. The belt6includes the first encoder12and the position of the marker23is estimated from the movement amount of the belt6. The estimated movement of the marker23advances along a straight line. On the other hand, the measured trajectory of the marker23includes influences by meandering of the belt6etc. A difference between the measured trajectory of the marker23and the estimated trajectory of the movement is stored as the correction value.

When the workpiece46passing through the predetermined section21ris transported by the belt6instead of the marker23, the robot15may accurately estimate the trajectory in which the workpiece46moves using the correction value. That is, the position of the workpiece46including the influence by the meandering of the belt6may be accurately known.

As the method of measuring the trajectory of the movement of the marker23, there is a method using the actuator17of the robot15. The belt6is intermittently actuated, the actuator17of the robot15contacts the marker23, and the robot15measures the position of the marker23. That is, the robot15measures the trajectory of the marker23using the robot15as a three-dimensional measuring instrument. Compared to the method, the method using the first camera13and the second camera18may measure the position of the marker23while continuously driving the belt6and calculate the correction value with higher productivity. Therefore, the method of efficiently measuring the meandering due to sagging of the belt6or the like may be provided.

According to the robot control method, the position of the workpiece46is corrected using the correction value, and thereby, the robot15accurately estimates the position of the workpiece46. Therefore, the robot15performs work on the workpiece46recognized with higher position accuracy, and may perform scheduled work with higher quality.

Second Embodiment

In the above described first embodiment, the approximate expression for correction is calculated from the row and the column of the section21rpassing through the first imaging area21and the position in the second direction19. The position in the first direction9may be divided into a plurality of sections and correction values in the respective sections may be calculated.

As shown inFIG.12, motion ranges49in which the robot15may move the actuator17in the first direction9are divided into seven sections. The respective motion ranges49include first section49ato seventh section49g. At step S5, the correction value calculation unit41calculates data of averages of the position shifts from the center of the second imaging area22as the imaging range in the respective sections. The data of averages of the position shifts is stored as a part of the belt measurement data34in the memory25.

In the belt measurement data34in the memory25, a table of the data of the averages of the first section49ato seventh section49gin the respective sections21rof the first imaging area21is stored. The data of the averages in the table is the correction value. In the table of the data of the averages, the correction values in the markers23passing through the respective 49 sections21rof the first imaging area21are set. The sections of the first section49ato seventh section49gare referred to as “CnvL”. Parameters of the correction value of the shift amount in the first direction9are CamX, CamY, CnvL. Parameters of the correction value of the shift amount in the second direction19are also CamX, CamY, CnvL.

As shown inFIG.13, the workpiece46is transported by the belt6. At step S12, the second detection unit42detects the section21rthrough which the workpiece46passes of the sections21rof the first imaging area21. At step S13, the position correction calculation unit43acquires the correction value corresponding to the section21rof the first imaging area21through which the workpiece46passes from the memory25. The table of data of the correction values is stored in the memory25.

The workpiece position calculation unit44calculates the position of the workpiece46when the belt6does not meander from the output of the first encoder12. The position correction calculation unit43corrects coordinates at which the workpiece46is located using the correction value corresponding to CnvL. For example, when the workpiece46is located within the section of the fourth section49d, the position correction calculation unit43refers to the correction value in the fourth section49dfrom the table. At step S14, the actuator17moves to the workpiece46. At step S15, the actuator17performs work. Therefore, the correction values are stored in the table, and thereby, the belt conveyor calibration method for efficiently measuring meandering due to sagging of the belt6or the like and the robot control method for the robot15to perform work using the correction values may be provided.