robot systems
The robot system uses contact sensors and imaging devices to create a work coordinate system for accurate robot operations on objects with positional variations, enhancing precision and reducing calibration time.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TOYOTA JIDOSHA KK
- Filing Date
- 2024-12-18
- Publication Date
- 2026-06-30
AI Technical Summary
Existing robot systems face challenges in performing highly accurate operations on conveyed objects due to variations in their position and orientation, which affect the precision of operations.
The robot system employs an articulated robot with contact sensors and imaging devices to generate a work coordinate system by contacting and imaging calibration structures on transport objects, allowing for precise calibration and operation even with slight positional variations.
This approach enables high-precision work on transported objects by robots, minimizing calibration time and ensuring accurate operations despite slight variations in object positioning.
Smart Images

Figure 2026106678000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot system.
Background Art
[0002] Patent Document 1 discloses an articulated robot mounted on a carriage so as to be relatively movable with respect to a workbench. Specifically, the target position of the arm is described in the workbench coordinate system rather than the robot coordinate system, and the origin position and reference direction of the workbench coordinate system in the robot coordinate system are calibrated. At the time of calibration, a probe provided at the tip of the arm is fitted into a hole provided in the workbench, the position of the probe at the time of fitting is acquired, and based on the position, the origin position and reference direction of the workbench coordinate system in the robot coordinate system are calibrated.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, in order to improve productivity, it is conceivable that a robot performs operations on a plurality of conveyed objects that are sequentially conveyed. Since there are variations in the position and orientation of the conveyed objects, it is impossible to perform highly accurate operations on the conveyed objects.
[0005] An object of the present disclosure is to provide a technique for realizing highly accurate operations of a robot on a conveyed object.
Means for Solving the Problems
[0006] The robot system includes an articulated robot positioned on a transport path that sequentially transports multiple transport objects and sequentially performs operations on the multiple transport objects, and a controller that controls the articulated robot, wherein the arms of the articulated robot are equipped with contact sensors and imaging devices, and each transport object has a plurality of calibration structures that the contact sensors can contact and the imaging devices can image when the transport object is transported within the operating range of the arms of the articulated robot, and the plurality of transport objects include a first transport object and a second transport object, and the controller controls the plurality of calibration structures of the first transport object. A robot system is provided that performs the following steps: a generation step of generating a work coordinate system which is a coordinate system unique to the first transport object by making contact with the contact-type sensor; a first imaging step of acquiring a first image by imaging the plurality of calibration structures having the first transport object with the imaging device; a second imaging step of acquiring a second image by imaging the plurality of calibration structures having the second transport object with the imaging device; a calibration step of calibrating the work coordinate system based on the first and second image; and a work step of causing the articulated robot to perform work on the second transport object using the work coordinate system calibrated in the calibration step.
[0007] In the calibration step, the position coordinates of the plurality of calibration structures of the first transport object in the first image are detected based on the first image, and the position coordinates of the plurality of calibration structures of the second transport object in the second image are detected based on the second image, and the work coordinate system may be calibrated based on the position coordinates of the plurality of calibration structures of the first transport object in the first image and the position coordinates of the plurality of calibration structures of the second transport object in the second image.
[0008] The plurality of calibration structures include a first calibration structure and a second calibration structure, and in the calibration step, the horizontal translation component of the work coordinate system may be calibrated based on the position coordinates of the first calibration structure of the first transport object in the first captured image and the position coordinates of the first calibration structure of the second transport object in the second captured image and the rotation component of the work coordinate system may be calibrated based on the positional relationship between the first calibration structure and the second calibration structure of the first transport object in the first captured image and the positional relationship between the first calibration structure and the second calibration structure of the second transport object in the second captured image.
[0009] In the calibration step, the vertical translation component of the work coordinate system may be calibrated based on the positional relationship between the first calibration structure and the second calibration structure of the first transport object in the first captured image, and the positional relationship between the first calibration structure and the second calibration structure of the second transport object in the second captured image.
[0010] The imaging position of the imaging device in the robot coordinate system during the first imaging step and the imaging position of the imaging device in the robot coordinate system during the second imaging step may be equal to each other. [Effects of the Invention]
[0011] According to this disclosure, high-precision work on transported objects by robots is achieved. [Brief explanation of the drawing]
[0012] [Figure 1] This is a schematic diagram of the robot system. [Figure 2] This is a perspective view of the transport object. [Figure 3] This is the control flow for a robot system. [Figure 4] This diagram shows how to calculate the coordinates of the center of a cylinder. [Figure 5] This is a diagram showing an image of the transported object. [Figure 6] This is a diagram showing an image of the transported object. [Modes for carrying out the invention]
[0013] Figure 1 is a schematic diagram of a robot system 1 according to one embodiment of the present disclosure. The robot system 1 comprises an articulated robot 2 (hereinafter simply referred to as robot 2) having an articulated arm 21, and a controller 10 for controlling robot 2. Robot 2 is positioned on a transport path 4 that sequentially transports a plurality of transport objects 3. Each transport object 3 includes a workpiece 5 on which robot 2 will perform work, and a carrier 6 on which to carry the workpiece 5. The transport object 3 is transported by the transport path 4 into the operating range of robot 2's arm 21, comes to rest at a predetermined work position, performs work by robot 2, and is then transported by the transport path 4 out of the operating range of robot 2's arm 21. In this specification, relative positioning errors between workpiece 5 and carrier 6 are considered minimal and are therefore ignored. The transport path 4 is typically a belt conveyor consisting of an endless belt 4a and a power source that drives the endless belt. Each transport object 3 is transported while resting on the endless belt 4a of the transport path 4. When the transport object 3 is transported by the transport path 4 into the operating range of the robot 2's arm 21 and stationary at a predetermined work position, slight variations occur in the position and orientation of the transport object 3. These slight variations are considered to be too small to ignore for the accuracy of the work performed by the robot 2 on the workpiece 5. Therefore, in this embodiment, the goal is to ensure that the robot 2 can perform highly accurate work on the workpiece 5 even if slight variations occur in the position and orientation of the transport object 3 at the predetermined work position, while minimizing the calibration time required to achieve this.
[0014] First, to outline the configuration of robot 2, robot 2 is mounted on a robot mounting base 9 located at an arbitrary position near the transport path 4. The arm 21 of robot 2 has a plurality of rotatable joints 31-37 and a plurality of links 41-47 connected via the joints 31-37. Each joint 31-37 is rotatable in the direction indicated by the double arrow in Figure 1. The rotation axis of each joint 31-37 is arranged perpendicular to the rotation axis of the adjacent joint. In this embodiment, the arm 21 of robot 2 has seven joints 31-37, thus having seven degrees of freedom. That is, in addition to the six degrees of freedom (three translational degrees of freedom and three rotational degrees of freedom) necessary to change position and orientation, the arm 21 of robot 2 has one redundant degree of freedom. Note that the number of joints of the arm 21 may be six. Of the plurality of links 41-47, the link located closest to the tip of the arm will hereafter be referred to as the tip link 47. The tip link 47 is configured to rotate around its longitudinal direction, or in other words, the longitudinal direction of the arm 21, as the axis of rotation. The rotation angle of the tip link 47 is also called the orientation angle.
[0015] Robot 2 is equipped with multiple servo motors (not shown) that rotate each of the joints 31 to 37. The servo motors rotate the joints 31 to 37 in response to commands from the controller 10. The servo motors also include encoders that detect the rotation angle and output a detection signal corresponding to the rotation angle to the controller 10.
[0016] A ball probe 15 is positioned on the tip link 47 via a force sensor 7. The combination of the ball probe 15 and the force sensor 7 is a specific example of a contact-type sensor. The force sensor 7 detects the force acting on the ball probe 15 and outputs a detection signal corresponding to the force to the controller 10. The force sensor 7 is, for example, a 6-axis force sensor capable of detecting forces in three translational directions and three rotational directions. The ball probe 15 includes a rod 15a extending from the tip link 47 and a ball 15b provided at the tip of the rod 15a.
[0017] The imaging device 8 is further arranged on the tip link 47. The imaging device 8 captures an image according to a command from the controller 10 and outputs the captured image to the controller 10.
[0018] The controller 10 includes a processor 10a and a memory 10b that stores programs executed by the processor and data used for control. The program may be provided from a computer-readable information recording medium or via a communication line. The processor 10a reads the program from the memory 10b and executes it to perform various processes.
[0019] For example, the controller 10 executes a work process for performing a predetermined work such as attaching parts to the work 5. In the work process, the controller 10 drives the servo motor based on the data representing the work content, causing the arm 21 of the robot 2 to perform a predetermined work. In the data representing the work content, the target position of the arm 21 is described in the work coordinate system 800 rather than the robot coordinate system 200. The robot coordinate system 200 is a coordinate system defined based on the robot 2 itself. The work coordinate system 800 is a coordinate system unique to the transport object 3. The work coordinate system 800 can also be said to be a coordinate system unique to the work 5 and a coordinate system unique to the carrier 6. Therefore, the controller 10 uses the coordinate conversion information between the robot coordinate system 200 and the work coordinate system 800 to convert the target position of the arm 21 described in the work coordinate system 800 into the target position of the arm 21 in the robot coordinate system 200. The coordinate conversion information typically consists of three translational components and three rotational components. Hereinafter, simply generating this coordinate conversion information is also referred to as generating the work coordinate system 800. That is, generating the work coordinate system 800 is to generate the coordinate conversion information between the robot coordinate system 200 and the work coordinate system 800.
[0020] The multiple transport objects 3 include at least a first transport object 3a, a second transport object 3b, and a third transport object 3c. The first transport object 3a, the second transport object 3b, and the third transport object 3c are set in the order described above at a predetermined work position. In this embodiment, the controller 10, simply put, generates a work coordinate system 800 by contacting the first transport object 3a with the ball probe 15 and performs work on the first transport object 3a, calibrates the work coordinate system 800 by imaging the second transport object 3b with the imaging device 8 and performs work on the second transport object 3b, and calibrates the work coordinate system 800 by imaging the third transport object 3c with the imaging device 8 and performs work on the third transport object 3c. Subsequently, each time a transport object 3 is set in a predetermined work position within the operating range of the robot arm 21, the work coordinate system 800 is calibrated by imaging the transport object 3 with the imaging device 8 and work is performed on the transport object 3. This ensures that the robot 2 can perform highly accurate operations on the transport object 3 even if there are slight variations in the position and orientation of the transport object 3 at a predetermined work position. However, the first transport object 3a may be a dedicated master object for creating the work coordinate system 800 and may not include the work object 5 or the carrier 6.
[0021] Here, referring to FIG. 2, the conveyance object 3 will be described. FIG. 2 is a perspective view of the conveyance object 3. (a) of FIG. 2 shows a cylindrical conveyance object 3. (b) of FIG. 2 shows a hole-type conveyance object 3. As shown in (a) and (b) of FIG. 2, in the present embodiment, the workpiece 5 of the conveyance object 3 has a plurality of calibration structures 91 and 101. However, it is not limited thereto, and the carrier 6 of the conveyance object 3 may have a plurality of calibration structures 91 and 101, or the plurality of calibration structures 91 and 101 may be dispersed among the workpiece 5 and the carrier 6 of the conveyance object 3. In short, it is sufficient that the conveyance object 3 has a plurality of calibration structures 91 and 101. As described above, originally, the conveyance object 3 may not include the workpiece 5 or the carrier 6. As the conveyance object 3, a cylindrical conveyance object 3 may be adopted, or a hole-type conveyance object 3 may be adopted.
[0022] <The cylindrical conveyance object 3> As shown in Figure 2(a), in the cylindrical transport object 3, the workpiece 5 includes a base 90 and three cylindrical bodies 91. The three cylindrical bodies 91 are a specific example of a plurality of calibration structures. Typically, the three cylindrical bodies 91 extend vertically upward from the top surface of the base 90, parallel to each other. Each cylindrical body 91 has an outer surface 91a and an upper surface 91b. In this embodiment, the upper surfaces 91b of the three cylindrical bodies 91 are all located in the same plane. The three cylindrical bodies 91 include a first cylindrical body 91A, a second cylindrical body 91B, and a third cylindrical body 91C. In a plan view, the first cylinder 91A, the second cylinder 91B, and the third cylinder 91C are arranged such that the line segment connecting the central axis of the first cylinder 91A and the central axis of the second cylinder 91B is orthogonal to the line segment connecting the central axis of the first cylinder 91A and the central axis of the third cylinder 91C. The controller 10 generates the work coordinate system 800 by bringing the ball 15b of the ball probe 15 into contact with the outer surface 91a or top surface 91b of each cylinder 91. Specifically, the controller 10 calculates the center coordinate 91p of the top surface 91b of the first cylinder 91A, the center coordinate 91p of the top surface 91b of the second cylinder 91B, and the center coordinate 91p of the top surface 91b of the third cylinder 91C. The controller 10 then sets the center coordinate 91p of the upper surface 91b of the first cylinder 91A as the origin of the work coordinate system 800, and generates the work coordinate system 800 such that two orthogonal axes of the work coordinate system 800 pass through the center coordinate 91p of the upper surface 91b of the second cylinder 91B and the center coordinate 91p of the upper surface 91b of the third cylinder 91C, respectively.
[0023] <Perforated transport object 3> As shown in Figure 2(b), in the perforated transport object 3, the workpiece 5 includes a base 100 and three holes 101. The three holes 101 are a specific example of a plurality of calibration structures. Typically, the three holes 101 extend vertically downward from the top surface of the base 100, parallel to each other. Each hole 101 has an inner circumferential surface 101a and an inner bottom surface 101b. In this embodiment, the inner bottom surfaces 101b of the three holes 101 are all located in the same plane. The three holes 101 include a first hole 101A, a second hole 101B, and a third hole 101C. In a plan view, the first hole 101A, the second hole 101B, and the third hole 101C are positioned such that the line segment connecting the central axis of the first hole 101A and the central axis of the second hole 101B is perpendicular to the line segment connecting the central axis of the first hole 101A and the central axis of the third hole 101C. The controller 10 generates the work coordinate system 800 by bringing the ball 15b of the ball probe 15 into contact with the inner circumferential surface 101a or inner bottom surface 101b of each hole 101. Specifically, the controller 10 calculates the center coordinate 101p of the inner bottom surface 101b of the first hole 101A, the center coordinate 101p of the inner bottom surface 101b of the second hole 101B, and the center coordinate 101p of the inner bottom surface 101b of the third hole 101C. The controller 10 then sets the center coordinate 101p of the first hole 101A as the origin of the work coordinate system 800, and generates the work coordinate system 800 such that two orthogonal axes of the work coordinate system 800 pass through the center coordinate 101p of the second hole 101B and the center coordinate 101p of the third hole 101C, respectively. Furthermore, when a hole-shaped transport object 3 is used as the transport object 3, and each hole 101 is a through hole, the upper surface of the base 100 near the hole 101 can be used instead of the inner bottom surface 101b.
[0024] The control flow of the robot system 1 when a cylindrical transport object 3 is used as the transport object 3 will be explained below with reference to Figures 3 to 6. Figure 3 shows the control flow of the robot system 1. Figure 4 shows a plan view of the first cylindrical body 91A. Figures 5 and 6 show images captured by the imaging device 8.
[0025] As shown in Figure 3, the control flow of the robot system 1 is broadly divided into an initial setup step (S100) and a work execution step (S200). The initial setup step (S100) is a step to generate the work coordinate system 800, and is mainly executed in response to events that are thought to adversely affect work accuracy, such as when the robot 2 is subjected to impact or when components of the robot 2 are replaced, or when the manufacturing line including the transport path 4 starts up. In contrast, the work execution step (S200) is a step to perform work on the transport object 3, and is executed each time that multiple transport objects 3 are sequentially set to predetermined work positions within the operating range of the robot 2's arm 21. As will be described later, generating the work coordinate system 800 requires the ball probe 15 to contact the transport object 3 multiple times, so it takes a relatively long time. In contrast, calibrating the work coordinate system 800 only requires imaging the transport object 3 once with the imaging device 8, so it takes a relatively short time. Therefore, even if there is some variation in the position and orientation of the transport object 3 set at the predetermined work position, it is ensured that the robot 2 will perform work on the transport object 3 with high precision, and the calibration time required to ensure this can be shortened as much as possible. The initial setup step (S100) and the work execution step (S200) will be described below in this order.
[0026] <Initial setup steps (S100)> In the initial setup step (S100), it is assumed that the first transport object 3a is set at a predetermined work position within the operating range of the robot arm 21. As an example, the operator of the robot system 1 sets the first transport object 3a at the predetermined work position. However, the first transport object 3a may be set at the predetermined work position by transport via the transport path 4. As mentioned above, the transport object 3 may include the workpiece 5 that the robot 2 will actually work on, or it may be used only when generating the workpiece coordinate system 800. Furthermore, it is assumed that the controller 10 stores in memory 10b the design values of the XYZ coordinates of the center coordinates 91p of the three cylindrical bodies 91 described in the robot coordinate system 200 of the first transport object 3a set at the predetermined work position.
[0027] S110: First, the controller 10 sequentially brings the ball 15b of the ball probe 15 into contact with the upper surfaces 91b of the three cylindrical bodies 91, described in the robot coordinate system 200 of the first transport object 3a, based on the design values of the XYZ coordinates of the center coordinates 91p of the three cylindrical bodies 91. For example, the controller 10 lowers the ball probe 15 so that the ball 15b of the ball probe 15 comes into contact with the upper surface 91b of the first cylindrical body 91A, and obtains the XYZ coordinates of the ball 15b of the ball probe 15 based on the output value of the servo motor when the output value from the force sensor 7 changes. Similarly, the controller 10 obtains the XYZ coordinates of the ball 15b of the ball probe 15 at the time of contact for the second cylindrical body 91B and the third cylindrical body 91C. Here, the XYZ coordinates of the ball 15b of the ball probe 15 at the time of contact are the position information described in the robot coordinate system 200. The controller 10 then generates a temporary coordinate system based on the three XYZ coordinates, in which two orthogonal axes coincide with a single XY plane that encompasses the upper surfaces 91b of the three cylindrical bodies 91. In subsequent processing, the controller 10 moves the ball probe 15 according to the temporary coordinate system. For example, when the controller 10 moves the ball probe 15, it maintains the orientation of the ball probe 15 so that the rotation axis of the tip link 47 is orthogonal to the XY plane. In other words, when the controller 10 moves the ball probe 15, it maintains the orientation of the ball probe 15 so that the rotation axis of the tip link 47 coincides with the longitudinal direction of the multiple cylindrical bodies 91. Furthermore, when the controller 10 moves the ball probe 15 vertically, it moves the ball probe 15 along the Z axis of the temporary coordinate system, and when the controller 10 moves the ball probe 15 horizontally, it moves the ball probe 15 along the XY plane of the temporary coordinate system. This prevents the rod 15a of the ball probe 15 from coming into contact with the first transport object 3a before the ball 15b of the ball probe 15 comes into contact with the outer surface 91a of the cylindrical body 91 during subsequent processing. However, the generation of a temporary coordinate system may be omitted.
[0028] S120: Next, the controller 10 obtains the center coordinates 91p of the upper surface 91b of the first cylindrical body 91A. Specifically, it is as follows:
[0029] First, as shown in Figure 4(a), the controller 10 brings the ball 15b of the ball probe 15 into contact with the outer surface 91a of the first cylindrical body 91A in a cross shape. Specifically, the controller 10 moves the ball 15b of the ball probe 15 in the +X direction in the robot coordinate system 200 to bring it into contact with the outer surface 91a of the first cylindrical body 91A, and then moves the ball 15b of the ball probe 15 in the -X direction in the robot coordinate system 200 while maintaining the same Y coordinate in the robot coordinate system 200 to bring it into contact with the outer surface 91a of the first cylindrical body 91A. Similarly, the controller 10 moves the ball 15b of the ball probe 15 in the +Y direction in the robot coordinate system 200 to make contact with the outer surface 91a of the first cylindrical body 91A, while maintaining the same X coordinate in the robot coordinate system 200, and moves the ball 15b of the ball probe 15 in the -Y direction in the robot coordinate system 200 to make contact with the outer surface 91a of the first cylindrical body 91A.
[0030] Then, by arithmetic meaning the two positional information obtained when the ball 15b of the ball probe 15 is moved in the X direction in the robot coordinate system 200, the X coordinate of the center coordinate 91p of the upper surface 91b of the first cylindrical body 91A is calculated in the robot coordinate system 200. Similarly, by arithmetic meaning the two positional information obtained when the ball 15b of the ball probe 15 is moved in the Y direction in the robot coordinate system 200, the Y coordinate of the center coordinate 91p of the upper surface 91b of the first cylindrical body 91A is calculated in the robot coordinate system 200. Here, although it is assumed that the ball probe 15 is provided coaxially with respect to the rotation axis 47C of the tip link 47, in reality it is eccentric with respect to the rotation axis 47C of the tip link 47. Therefore, the X and Y coordinates of the center coordinate 91p in the robot coordinate system 200 calculated here will include an error due to the eccentricity of the ball probe 15.
[0031] To compensate for the eccentric error mentioned above, the controller 10 rotates the tip link 47 by 180 degrees.
[0032] Then, as shown in Figure 4(b), the controller 10 makes contact with the outer surface 91a of the first cylindrical body 91A again in a cross shape with the ball 15b of the ball probe 15, as described above. By doing so, the X coordinate of the center coordinate 91p of the upper surface 91b of the first cylindrical body 91A in the robot coordinate system 200 is calculated by taking the arithmetic mean of the two position pieces obtained when the ball 15b of the ball probe 15 is moved in the X direction. Similarly, the Y coordinate of the center coordinate 91p of the upper surface 91b of the first cylindrical body 91A in the robot coordinate system 200 is calculated by taking the arithmetic mean of the two position pieces obtained when the ball 15b of the ball probe 15 is moved in the Y direction.
[0033] Next, the controller 10 obtains the X coordinate of the center coordinate 91p in the robot coordinate system 200, with the aforementioned eccentricity error canceled out, by arithmetic meaning the X coordinate of the center coordinate 91p in the robot coordinate system 200 calculated from the contact of the tip link 47 before rotation and the X coordinate of the center coordinate 91p in the robot coordinate system 200 calculated from the contact of the tip link 47 after rotation. Similarly, the controller 10 obtains the Y coordinate of the center coordinate 91p in the robot coordinate system 200, with the aforementioned eccentricity error canceled out, by arithmetic meaning the Y coordinate of the center coordinate 91p in the robot coordinate system 200 calculated from the contact of the tip link 47 before rotation and the Y coordinate of the center coordinate 91p in the robot coordinate system 200 calculated from the contact of the tip link 47 after rotation.
[0034] Next, the controller 10 brings the ball 15b of the ball probe 15 into contact with the upper surface 91b of the first cylindrical body 91A from above. Specifically, the controller 10 moves the ball 15b of the ball probe 15 in the -Z direction of the temporary coordinate system 900 along the central axis of the first cylindrical body 91A, bringing the ball 15b of the ball probe 15 into contact with the upper surface 91b of the first cylindrical body 91A. As a result, the controller 10 obtains the Z coordinate of the central coordinate 91p of the upper surface 91b of the first cylindrical body 91A in the robot coordinate system 200.
[0035] In this way, the controller 10 obtains the XYZ coordinates of the center coordinate 91p of the upper surface 91b of the first cylindrical body 91A, described in the robot coordinate system 200, after the eccentricity error of the ball probe 15 has been canceled out. However, if the eccentricity error of the ball probe 15 is negligibly small, the rotation of the tip link 47 and subsequent calculations can be omitted.
[0036] S130: Next, the controller 10 similarly obtains the XYZ coordinates of the center coordinate 91p of the upper surface 91b of the second cylindrical body 91B, as described in the robot coordinate system 200.
[0037] S140: Next, the controller 10 similarly obtains the XYZ coordinates described in the robot coordinate system 200 of the center coordinate 91p of the upper surface 91b of the third cylindrical body 91C.
[0038] S150: Next, the controller 10 generates the work coordinate system 800 as described above, based on the center coordinate 91p of the upper surface 91b of the first cylinder 91A, the center coordinate 91p of the upper surface 91b of the second cylinder 91B, and the center coordinate 91p of the upper surface 91b of the third cylinder 91C.
[0039] If a hole-shaped first transport object 3a is adopted as the first transport object 3a, then in the above description, for example, the outer circumferential surface 91a and the top surface 91b of the first cylindrical body 91A should be read as the inner circumferential surface 101a and the inner bottom surface 101b of the first hole 101A. As mentioned above, if the first hole 101A is a through hole, the top surface of the base 100 near the first hole 101A can be used as a substitute for the inner bottom surface 101b.
[0040] S160: Next, the controller 10 moves the imaging device 8 to a predetermined first imaging position described in the robot coordinate system 200 by raising the imaging device 8, and transmits an imaging command to the imaging device 8. The imaging direction of the imaging device 8 is typically set to be as parallel as possible to the longitudinal direction of the first cylindrical body 91A. As a result, the imaging device 8 images the three cylindrical bodies 91 of the first transport object 3a while it is stationary at the predetermined work position described above, and outputs the image to the controller 10. Figure 5(a) shows the image 500a captured by the imaging device 8 at the first imaging position. As shown in Figure 5(a), the image 500a has its own image coordinate system 1000. As shown in Figure 5(a), the image 500a reflects the top surface 91b of the first cylindrical body 91A, the top surface 91b of the second cylindrical body 91B, and the top surface 91b of the third cylindrical body 91C. The controller 10 stores the captured image 500a in the memory 10b.
[0041] S170: Next, the controller 10 moves the imaging device 8 to a predetermined second imaging position described in the robot coordinate system by further raising the imaging device 8, and transmits an imaging command to the imaging device 8. The imaging direction of the imaging device 8 is typically set to be as parallel as possible to the longitudinal direction of the first cylindrical body 91A. As a result, the imaging device 8 images the three cylindrical bodies 91 of the first transport object 3a while it is stationary at the predetermined work position described above, and outputs the image to the controller 10. Figure 5(b) shows the image 500b captured by the imaging device 8 at the second imaging position. As shown in Figure 5(b), the image 500b has its own image coordinate system 1000. As shown in Figure 5(b), the image 500b reflects the top surface 91b of the first cylindrical body 91A, the top surface 91b of the second cylindrical body 91B, and the top surface 91b of the third cylindrical body 91C. The controller 10 stores the captured image 500b in the memory 10b.
[0042] The second imaging position is not necessarily higher than the first imaging position; it may also be lower. Furthermore, the imaging conditions when the imaging device 8 takes an image in step S160 and the imaging conditions when the imaging device 8 takes an image in step S170 are identical except for the imaging position. The imaging conditions typically include the focal length, the number of pixels in the captured image, and the aspect ratio of the captured image.
[0043] S180: Next, the controller 10 performs a predetermined operation on the workpiece 5 of the first transport object 3a using the generated work coordinate system 800. However, if the first transport object 3a used to generate the work coordinate system 800 is a dedicated first transport object 3a for generating the work coordinate system 800, step S180 is omitted.
[0044] <Work execution steps (S200)> In the work execution step (S200), the first transport object 3a used in the initial setup step (S100) is removed outside the operating range of the robot 2's arm 21, and the second transport object 3b is set to the predetermined work position by transport along the transport path 4. Here, the operator of the robot system 1 may remove the first transport object 3a outside the operating range of the robot 2's arm 21, or the first transport object 3a may be removed outside the operating range of the robot 2's arm 21 by transport along the transport path 4.
[0045] S210: First, the controller 10 moves the imaging device 8 to a predetermined first imaging position described in the robot coordinate system 200 and transmits an imaging command to the imaging device 8. The imaging direction of the imaging device 8 is typically set to be as parallel as possible to the longitudinal direction of the first cylindrical body 91A. As a result, the imaging device 8 images the three cylindrical bodies 91 of the second transport object 3b, which is stationary at the predetermined work position described above, and outputs the image to the controller 10. Figure 6 shows the image 500c captured by the imaging device 8 at the first imaging position. As shown in Figure 6, the image 500c has its own image coordinate system 1000. As shown in Figure 6, the image 500c reflects the top surface 91b of the first cylindrical body 91A, the top surface 91b of the second cylindrical body 91B, and the top surface 91b of the third cylindrical body 91C. The controller 10 stores the image 500c in the memory 10b.
[0046] S220: Next, the controller 10 calibrates the work coordinate system 800 based on the captured images 500a, 500b, and 500c. Here, since the captured image 500b is mainly used to detect the vertical positional displacement of the second transport object 3b, the captured image 500b can be omitted when the vertical positional displacement of the second transport object 3b can be ignored. The method of calibrating the work coordinate system 800 by the controller 10 will be described in detail below.
[0047] First, referring to Figure 5, the controller 10 performs image analysis on each of the captured images 500a, 500b, and 500c to obtain the XY coordinates in the image coordinate system 1000 of the center coordinates 91p of the upper surfaces 91b of the first cylindrical body 91A, the second cylindrical body 91B, and the third cylindrical body 91C in captured image 500a. Typically, the Hough transform is used for image analysis.
[0048] Next, the controller 10 calculates the scale ratio, which is the ratio of the actual dimensions in the real world to the image dimensions in the captured image 500a. The unit of the actual dimensions is typically millimeters, and the unit of the image dimensions is typically pixels. Specifically, referring to Figure 5(a), the controller 10 calculates the Euclidean distance between the center coordinates 91p of the top surface 91b of the first cylinder 91A and the center coordinates 91p of the top surface 91b of the second cylinder 91B as the image dimensions. In addition, the memory 10b of the controller 10 stores in advance the dimensions measured using a measuring device between the center coordinates 91p of the top surface 91b of the first cylinder 91A and the center coordinates 91p of the top surface 91b of the second cylinder 91B as the actual dimensions. In this way, the controller 10 calculates the scale ratio, which is the ratio of the actual dimensions to the image dimensions. By using the above scale ratio, it becomes possible to convert actual dimensions to image dimensions and vice versa.
[0049] Next, the controller 10 calculates the real-world calibration amount ΔX for the X coordinate (horizontal translation component) of the origin of the work coordinate system 800 and the real-world calibration amount ΔY for the Y coordinate (horizontal translation component) of the origin of the work coordinate system 800, based on the difference between the XY coordinates of the first cylindrical body 91A in the captured image 500a and the XY coordinates of the first cylindrical body 91A in the captured image 500c, by referring to the scale ratio described above. Then, the controller 10 calibrates the XY coordinates (horizontal translation component) of the origin of the work coordinate system 800 using the calibration amounts ΔX and ΔY.
[0050] Next, the controller 10 calculates the real-world rotation calibration amount Δθab around the Z-axis of the work coordinate system 800 based on the angle formed by the line segment Ha connecting the center coordinates 91p of the upper surface 91b of the first cylinder 91A and the center coordinates 91p of the upper surface 91b of the second cylinder 91B in the captured image 500a, and the line segment Hc connecting the center coordinates 91p of the upper surface 91b of the first cylinder 91A and the center coordinates 91p of the upper surface 91b of the second cylinder 91B in the captured image 500c. Similarly, the controller 10 calculates the real-world rotation calibration amount Δθac around the Z-axis of the work coordinate system 800 based on the angle formed by the line segment Va connecting the center coordinates 91p of the upper surface 91b of the first cylinder 91A and the center coordinates 91p of the upper surface 91b of the third cylinder 91C in the captured image 500a, and the line segment Vc connecting the center coordinates 91p of the upper surface 91b of the first cylinder 91A and the center coordinates 91p of the upper surface 91b of the third cylinder 91C in the captured image 500c. Then, the controller 10 calculates the real-world rotation calibration amount Δθ around the Z-axis of the work coordinate system 800 by taking the arithmetic mean of the rotation calibration amounts Δθab and Δθac. In this way, by taking the arithmetic mean of the rotation calibration amounts Δθab and Δθac, the rotation calibration amount Δθ can be calculated with high accuracy. However, the method is not limited to this; either the rotational calibration amount Δθab or the rotational calibration amount Δθac may be used as the rotational calibration amount Δθ. The controller 10 then uses the rotational calibration amount Δθ to calibrate the orientation (rotational component) of the work coordinate system 800 around the Z axis.
[0051] Next, the controller 10 calculates the telephoto ratio HV (ΔH:ΔV), which is the ratio of the difference ΔH (in pixels) between the length of line segment Ha in captured image 500a and the length of line segment Hb in captured image 500b, and the upward distance ΔV (in millimeters) when the imaging device 8 is raised in step S170. By using this telephoto ratio HV, the upward distance ΔV can be calculated if only the difference ΔH is determined. That is, the controller 10 calculates the difference ΔH between the length of line segment Ha in captured image 500a and the length of line segment Hc in captured image 500c, and based on this difference ΔH and the telephoto ratio HV, calculates the amount of displacement ΔZ between the vertical positional relationship between the imaging device 8 and the first transport object 3a when capturing image 500a, and between the vertical positional relationship between the imaging device 8 and the second transport object 3b when capturing image 500c. The controller 10 uses this deviation amount ΔZ as the real-world calibration amount ΔZ for the Z coordinate (vertical translation component) of the origin of the work coordinate system 800, and uses the calibration amount ΔZ to calibrate the Z coordinate of the origin of the work coordinate system 800.
[0052] S230: Next, the controller 10 performs a predetermined operation on the second transport object 3b using the calibrated work coordinate system 800, and returns the process to step S210. The controller 10 then similarly executes steps S210 through S230 for the third transport object 3c.
[0053] The embodiments of the present disclosure have been described above, and these embodiments have the following features.
[0054] The robot system 1 is positioned on a transport path 4 that sequentially transports a plurality of transport objects 3 and includes a robot 2 that sequentially performs operations on the plurality of transport objects 3, and a controller 10 that controls the robot 2. The arm 21 of the robot 2 is equipped with a contact-type sensor (force sensor 7 and ball probe 15) and an imaging device 8. Each transport object 3 has a plurality of cylindrical bodies 91 (calibration structures) that can be contacted by the contact-type sensor and imaged by the imaging device 8 when the transport object 3 is transported within the operating range of the arm 21 of the robot 2. The plurality of transport objects 3 include a first transport object 3a and a second transport object 3b. The controller 10 performs the following steps: a generation step (S150) to generate a work coordinate system 800, which is a coordinate system unique to the first transport object 3a, by making contact with a contact-type sensor to a plurality of cylindrical bodies 91 of the first transport object 3a; a first imaging step (S160) to acquire an image 500a (first image) by imaging the plurality of cylindrical bodies 91 of the first transport object 3a with the imaging device 8; a second imaging step (S210) to acquire an image 500c (second image) by imaging the plurality of cylindrical bodies 91 of the second transport object 3b with the imaging device 8; a calibration step (S220) to calibrate the work coordinate system 800 based on the image 500a and the image 500c; and a work step (S230) to cause the robot 2 to perform work on the second transport object 3b using the work coordinate system 800 calibrated in the calibration step (S220). With the above configuration, even if there is some variation in the position and orientation of the transport object 3 set at a predetermined work position, it is possible to ensure that the robot 2 can perform highly accurate work on the transport object 3, and the calibration time required to ensure this can be shortened as much as possible.
[0055] Furthermore, in the calibration step (S220), based on the captured image 500a, the position coordinates of the multiple cylindrical bodies 91 of the first transport object 3a in the image coordinate system are detected, and based on the captured image 500c, the position coordinates of the multiple cylindrical bodies 91 of the second transport object 3b in the image coordinate system are detected, and the work coordinate system 800 is calibrated based on the position coordinates of the multiple cylindrical bodies 91 of the first transport object 3a in the image coordinate system in the captured image 500a and the position coordinates of the multiple cylindrical bodies 91 of the second transport object 3b in the image coordinate system in the captured image 500c. With the above configuration, the work coordinate system 800 can be calibrated based on the captured image 500a and the captured image 500c.
[0056] Furthermore, the multiple cylindrical bodies 91 include a first cylindrical body 91A (first calibration structure) and a second cylindrical body 91B (second calibration structure). In the calibration step (S220), the XY coordinates (horizontal translation component) of the work coordinate system 800 are calibrated based on the position coordinates of the first cylindrical body 91A of the first transport object 3a in the image coordinate system 1000 in the captured image 500a, and the position coordinates of the first cylindrical body 91A of the second transport object 3b in the image coordinate system 1000 in the captured image 500c. Furthermore, in the calibration step (S220), the orientation (rotation component) of the work coordinate system 800 around the Z axis is calibrated based on the positional relationship (line segment Ha) of the first cylindrical body 91A and the second cylindrical body 91B of the first transport object 3a in the captured image 500a, and the positional relationship (line segment Hc) of the first cylindrical body 91A and the second cylindrical body 91B of the second transport object 3b in the captured image 500c. With the above configuration, the horizontal translation component and rotation component of the work coordinate system 800 can be calibrated based on the captured image 500a and the captured image 500c.
[0057] Furthermore, in the calibration step (S220), the vertical translation component of the work coordinate system 800 is calibrated based on the positional relationship (line segment Ha) between the first cylindrical body 91A and the second cylindrical body 91B of the first transport object 3a in the captured image 500a, and the positional relationship (line segment Hc) between the first cylindrical body 91A and the second cylindrical body 91B of the second transport object 3b in the captured image 500c. With the above configuration, the vertical translation component of the work coordinate system 800 can be calibrated based on the captured image 500a and the captured image 500c.
[0058] Furthermore, the imaging position of the imaging device 8 in the robot coordinate system 200 during the first imaging step (S160) and the imaging position of the imaging device 8 in the robot coordinate system 200 during the second imaging step (S210) are equal to each other. With this configuration, the imaging conditions of the imaging device 8 are consistent, so the work coordinate system 800 can be calibrated without any problems. [Explanation of symbols]
[0059] 1. Robot System 2 Robots 4. Conveyor path 5 Work 10 controllers 15 Ball probes 91 Cylinder 101 holes 200 Robot Coordinate System 800 Work Coordinate System 900 Provisional Coordinate System 1000 Image Coordinate System
Claims
1. A multi-joint robot is positioned on a transport path that sequentially transports multiple transport objects and sequentially performs operations on the multiple transport objects, A controller for controlling the aforementioned articulated robot, Includes, The arm of the aforementioned articulated robot is equipped with a contact sensor and an imaging device. Each transported object has a plurality of calibration structures that can be contacted by the contact-type sensor and captured by the imaging device when the transported object is transported within the operating range of the arm of the articulated robot. The plurality of transport objects include a first transport object and a second transport object, It is a robotic system, The aforementioned controller, A generation step of generating a work coordinate system which is a coordinate system unique to the first transport object by bringing the contact-type sensor into contact with the plurality of calibration structures having the first transport object, A first imaging step involves capturing the plurality of calibration structures of the first transport object with the imaging device to obtain a first image; A second imaging step involves capturing the plurality of calibration structures of the second transport object with the imaging device to obtain a second image, A calibration step of calibrating the work coordinate system based on the first captured image and the second captured image, A work step in which the articulated robot is made to perform an operation on the second transport object using the work coordinate system calibrated in the calibration step, Execute Robot system.
2. A robot system according to claim 1, In the calibration step, Based on the first captured image, the position coordinates of the plurality of calibration structures of the first transport object in the first captured image are detected in the image coordinate system. Based on the second captured image, the position coordinates of the plurality of calibration structures of the second transport object in the second captured image are detected in the image coordinate system. The position coordinates in the image coordinate system of the plurality of calibration structures of the first transport object in the first captured image, The position coordinates of the plurality of calibration structures of the second transport object in the second captured image in the image coordinate system, The work coordinate system is calibrated based on the following: Robot system.
3. A robot system according to claim 2, The plurality of calibration structures include a first calibration structure and a second calibration structure, In the calibration step, Based on the position coordinates of the first calibration structure of the first transport object in the first captured image and the position coordinates of the first calibration structure of the second transport object in the second captured image, the horizontal translation component of the work coordinate system is calibrated. The rotation component of the work coordinate system is calibrated based on the positional relationship between the first calibration structure and the second calibration structure of the first transport object in the first captured image, and the positional relationship between the first calibration structure and the second calibration structure of the second transport object in the second captured image. Robot system.
4. A robot system according to claim 3, In the calibration step, The vertical translation component of the work coordinate system is calibrated based on the positional relationship between the first calibration structure and the second calibration structure of the first transport object in the first captured image, and the positional relationship between the first calibration structure and the second calibration structure of the second transport object in the second captured image. Robot system.
5. A robot system according to any one of claims 1 to 4, The imaging position of the imaging device in the robot coordinate system in the first imaging step, The imaging position of the imaging device in the robot coordinate system in the second imaging step, They are equal to each other. Robot system.