WO2024047808A1 - ロボット座標系に搬送装置座標系を設定する装置、及び方法 - Google Patents

ロボット座標系に搬送装置座標系を設定する装置、及び方法 Download PDF

Info

Publication number
WO2024047808A1
WO2024047808A1 PCT/JP2022/032823 JP2022032823W WO2024047808A1 WO 2024047808 A1 WO2024047808 A1 WO 2024047808A1 JP 2022032823 W JP2022032823 W JP 2022032823W WO 2024047808 A1 WO2024047808 A1 WO 2024047808A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate system
index
camera
image data
robot
Prior art date
Application number
PCT/JP2022/032823
Other languages
English (en)
French (fr)
Inventor
太樹 片桐
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/032823 priority Critical patent/WO2024047808A1/ja
Priority to TW112128575A priority patent/TW202411032A/zh
Publication of WO2024047808A1 publication Critical patent/WO2024047808A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/04Viewing devices

Definitions

  • the present disclosure relates to an apparatus and method for setting a transport device coordinate system in a robot coordinate system.
  • a device that sets a transport device coordinate system to a robot coordinate system by touching up a hand of a robot to a transport device (for example, Patent Document 1). Furthermore, there is also known a device that calibrates the robot coordinate system with respect to a peripheral device by performing a visual touch-up in which multiple marks provided on the peripheral device of the robot are imaged with a camera (for example, Patent Document 2 ).
  • a device that sets a transport device coordinate system that defines a transport direction of a transport device that transports a workpiece in a robot coordinate system that is set for a robot that performs work on a workpiece includes a first index.
  • a first index representing a coordinate system and installed on the transport device so as to be transported by the transport device; first image data obtained by capturing the first index; and a camera that captures second image data obtained by capturing the first index transported by the transport device after capturing the first image data.
  • this device includes first position data indicating a three-dimensional position relative to the camera in a first index coordinate system represented by the first index reflected in the first image data, and a position data acquisition unit that acquires second position data indicating a three-dimensional position relative to the camera of the first index coordinate system represented by; and a conveyance direction acquisition unit that determines the conveyance direction based on the first position data and the second position data. and a coordinate system setting unit that sets a transport device coordinate system in the robot coordinate system based on the transport direction determined by the transport direction acquisition unit.
  • a method for setting a transport device coordinate system that defines a transport direction of a transport device that transports a workpiece in a robot coordinate system that is set for a robot that performs work on a workpiece is a first method.
  • a first index representing the index coordinate system is installed on the conveyance device so as to be conveyed by the conveyance device, and first image data is acquired by capturing an image of the first index with a camera. After capturing the image data, the first index transported by the transport device is imaged by a camera to obtain second image data.
  • this method includes first position data indicating the three-dimensional position relative to the camera of the first index coordinate system represented by the first index reflected in the first image data, and and second position data indicating the three-dimensional position relative to the camera of the first index coordinate system represented by , and determine the conveyance direction based on the first position data and the second position data, and the conveyance direction obtained by the conveyance direction acquisition unit. Based on the direction, the transport device coordinate system is set in the robot coordinate system.
  • FIG. 1 is a schematic perspective view of a robot system according to an embodiment.
  • 2 is a block diagram of the robot system shown in FIG. 1.
  • FIG. 2 is a flowchart showing an example of a method for setting a transport device coordinate system in a robot coordinate system in the robot system shown in FIG. 1.
  • FIG. An example of image data captured in step S1 in FIG. 3 is shown.
  • a state in which the first index is conveyed in step S3 in FIG. 3 is shown.
  • An example of image data captured in step S4 in FIG. 3 is shown.
  • a transport device coordinate system set to the robot coordinate system is shown in the robot system shown in FIG. 1 a transport device coordinate system set to the robot coordinate system is shown.
  • FIG. 3 is a schematic perspective view of a robot system according to another embodiment. 9 is a block diagram of the robot system shown in FIG. 8.
  • FIG. 8 is a block diagram of the robot system shown in FIG. 8.
  • FIG. 9 is a flowchart showing an example of a method for setting a transport device coordinate system in a robot coordinate system in the robot system shown in FIG. 8.
  • An example of image data captured in step S11 in FIG. 11 is shown.
  • a state in which the first index is conveyed in step S13 in FIG. 11 is shown.
  • An example of image data captured in step S14 in FIG. 11 is shown.
  • FIG. 7 is a schematic perspective view of a robot system according to yet another embodiment. 17 is a block diagram of the robot system shown in FIG. 16.
  • FIG. 17 is a flowchart showing an example of a method for setting a transport device coordinate system in a robot coordinate system in the robot system shown in FIG. 16.
  • An example of image data captured in step S22 in FIG. 18 is shown.
  • a state in which the first index is conveyed in step S24 in FIG. 18 is shown.
  • An example of image data captured in step S25 in FIG. 18 is shown.
  • An example of image data captured in step S27 in FIG. 18 is shown.
  • a transport device coordinate system set to the robot coordinate system is shown.
  • 2 is a flowchart showing another example of a method for setting a transport device coordinate system in a robot coordinate system in the robot system shown in FIG. 1.
  • the robot system 10 includes a robot 12, a camera 14, a transport device 16, a first index 18, and a control device 20.
  • the robot 12 is a vertical articulated robot that performs predetermined operations (for example, work handling, welding, cutting, laser processing, etc.) on a work (not shown).
  • the robot 12 includes a robot base 22, a rotating trunk 24, a lower arm 26, an upper arm 28, and a wrist 30.
  • the robot base 22 is fixed on the floor of the work cell or on top of an automatic guided vehicle (AGV).
  • the rotating trunk 24 is provided on the robot base 22 so as to be able to turn around a vertical axis.
  • the lower arm part 26 is provided on the rotating trunk 24 so that its base end can rotate around a horizontal axis, and the upper arm part 28 has its base end rotatable around the distal end of the lower arm part 26. It is set in.
  • the wrist part 30 includes a wrist base 30a provided at the distal end of the upper arm part 28 so as to be rotatable around two axes perpendicular to each other, and a wrist base 30a provided at the distal end of the upper arm part 28 so as to be rotatable around two axes perpendicular to each other. It has a wrist flange 30b provided on the base 30a. An end effector (robot hand, welding torch, cutting tool, laser processing head, etc.) that performs work on the workpiece is removably attached to the wrist flange 30b.
  • robot hand robot hand, welding torch, cutting tool, laser processing head, etc.
  • a plurality of servo motors 32 are provided on the robot base 22, the rotating trunk 24, the lower arm 26, the upper arm 28, and the wrist 30, respectively. These servo motors 32 rotate each movable component of the robot 12 (i.e., the rotating trunk 24, the lower arm 26, the upper arm 28, the wrist 30, and the wrist flange 30b) in accordance with commands from the control device 20. , thereby moving the end effector (not shown) attached to the wrist flange 30b to an arbitrary position.
  • the camera 14 is removably attached to the wrist flange 30b instead of the end effector.
  • the camera 14 is a two-dimensional camera having an image sensor (CMOS, CCD, etc.) and an optical lens (collimating lens, focus lens, etc.) that guides a subject image to the image sensor.
  • the object is imaged according to the image.
  • the camera 14 captures a subject image along the optical axis A2 and focuses the subject image on an image sensor using an optical lens, thereby acquiring image data ID of the subject image.
  • the camera 14 is moved to an arbitrary position by the robot 12.
  • the transport device 16 is arranged around the robot 12 and transports the workpiece in the transport direction D1.
  • the conveyance device 16 is a belt conveyor or the like, and includes a conveyance surface 34 on which a work is placed, and a drive mechanism 36 that moves the conveyance surface 34 in the conveyance direction D1.
  • the transport surface 34 may be defined by the outer surface of the timing belt.
  • the drive mechanism 36 may include a servo motor (not shown) that drives the timing belt (that is, the conveyance surface 34) in accordance with commands from the control device 20.
  • the transport device 16 is arranged such that at least a portion of its transport surface 34 is within the operating range of the robot 12 (ie, within the range in which the end effector can be positioned).
  • the control device 20 controls the robot 12, camera 14, and transport device 16.
  • the control device 20 is a computer having a processor 40, a memory 42, and an I/O interface 44.
  • the processor 40 has a CPU, a GPU, etc., is communicably connected to a memory 42 and an I/O interface 44 via a bus 46, and has a function of setting a transport device coordinate system, which will be described later, while communicating with these components. Perform calculation processing to achieve this.
  • the memory 42 has RAM, ROM, etc., and stores various data temporarily or permanently.
  • Memory 42 may be comprised of computer readable storage media, such as volatile memory, non-volatile memory, magnetic storage media, or optical storage media.
  • the I/O interface 44 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and allows data to be exchanged with an external device under instructions from the processor 40. Communicate by wire or wirelessly.
  • each servo motor 32, camera 14, and transport device 16 (specifically, drive mechanism 36) of the robot 12 are communicably connected to the I/O interface 44.
  • control device 20 is provided with a display device 48 and an input device 50.
  • Display device 48 and input device 50 are communicatively connected to I/O interface 44 .
  • the display device 48 has a liquid crystal display, an organic EL display, or the like, and visibly displays various data under instructions from the processor 40.
  • the input device 50 includes a push button, switch, keyboard, mouse, touch panel, etc., and receives data input from an operator.
  • the display device 48 and the input device 50 may be integrated into the casing of the control device 20, or may be installed as one computer (such as a PC) separate from the casing of the control device 20. It may be attached externally to the housing.
  • a robot coordinate system C1 is set for the robot 12.
  • the robot coordinate system C1 is a coordinate system for automatically controlling the operation of each movable element of the robot 12.
  • the robot coordinate system C1 is arranged such that its origin is located at the center of the robot base 22, and its z-axis is parallel to (specifically, coincides with) the rotation axis of the rotation trunk 24. It is fixed to the robot base 22.
  • a camera coordinate system C2 is set for the camera 14.
  • the camera coordinate system C2 is arranged such that its origin is located at the center of the image sensor of the camera 14, and its z-axis is parallel to (specifically, coincides with) the optical axis A2. It is set for the camera 14.
  • the camera 14 may be attached to the wrist flange 30b so that its optical axis A2 is parallel to (or coincides with) the wrist axis A1.
  • the camera coordinate system C2 defines the coordinates of each pixel of the image data ID (or image sensor) captured by the camera 14.
  • the position of the camera 14 in other words, the position of the wrist flange 30b
  • the positional relationship R 1_2_n between the robot coordinate system C1 and the camera coordinate system C2 of the camera 14 placed at an arbitrary position PSn of the robot coordinate system C1 is known.
  • the coordinates Q (X, Y, Z, W, P, R) of the camera coordinate system C2 in the robot coordinate system C1 are known, and the coordinates of the robot coordinate system C1 and the coordinates of the camera coordinate system C2 are as follows. They can be mutually transformed via a known transformation matrix M 1_2_n (simultaneous transformation matrix, Jacobian matrix, etc.).
  • the control device 20 has each parameter of the transformation matrix M 1_2_n and the coordinates of the camera coordinate system C2 in the robot coordinate system C1 as data indicating the positional relationship R 1_2_n , and stores them in the memory 42 .
  • the transport device coordinate system is set for the transport device 16 and defines the position of the transport surface 34 and the transport direction D1.
  • the first index 18 is used to set the transport device coordinate system in the robot coordinate system C1 (in other words, to make the positional relationship between the robot coordinate system C1 and the transport device coordinate system known).
  • the first indicator 18 is made of a flat paper material, a board material, or the like, and a pattern 18a is visibly displayed on its surface.
  • the pattern 18a includes, for example, a figure consisting of a plurality of lines or curves, or a dot pattern.
  • the first index 18 is configured to represent the first index coordinate system C3 by its pattern 18a, and is installed on the conveyance surface 34 of the conveyance device 16 so as to be conveyed by the conveyance device 16. .
  • the first indicator 18 may be fixed to the conveyance surface 34 using a fastener (such as a bolt) or a jig so as to be immovable with respect to the conveyance surface 34 .
  • the pattern 18a of the first indicator 18 may be formed directly on the conveying surface 34 by printing, engraving, or the like.
  • the operator places the first indicator 18 on the conveying surface 34 of the conveying device 16, as shown in FIG. At this time, the operator may place the first indicator 18 within the operating range of the robot 12.
  • the operator operates the input device 50 to give a coordinate system setting command to the processor 40.
  • the processor 40 receives the coordinate system setting command, it starts the flow shown in FIG. 3 .
  • step S1 the processor 40 images the first index 18 with the camera 14. Specifically, the processor 40 operates the robot 12 to move the camera 14 to an imaging position PS1 where the first index 18 can be placed within the field of view of the camera 14. The processor 40 then operates the camera 14 to capture an image of the first index 18.
  • FIG. 4 shows an example of the image data ID1 captured by the camera 14 in step S1.
  • Each pixel of the image data ID1 is expressed as a coordinate of the camera coordinate system C2, and the first index 18 is reflected in the image data ID1.
  • the camera 14 acquires image data ID1 (first image data) obtained by imaging the first index 18 in this way, and supplies it to the processor 40.
  • step S2 the processor 40 acquires position data PD1 (first position data) indicating the three-dimensional position of the first index coordinate system C3 represented by the first index 18 captured in the image data ID1 with respect to the camera 14.
  • position data PD1 first position data
  • the pattern 18a of the first index 18 reflected in the image data ID1 is the three-dimensional position of the first index coordinate system C3 in the camera coordinate system C2 set in the camera 14 at the time of capturing the image data ID1. It is configured to represent.
  • the processor 40 executes an image analysis program PG1 (or an image analysis application) for reading the first index coordinate system C3 from the pattern 18a, and analyzes the pattern 18a of the first index 18 reflected in the image data ID1. , a first index coordinate system C3 represented by the first index 18 is specified within the image data ID1. Then, the processor 40 obtains the coordinates Q1 (X1, Y1, Z1, W1, P1, R1) of the identified first index coordinate system C3 in the camera coordinate system C2.
  • an image analysis program PG1 or an image analysis application
  • the coordinates (X1, Y1, Z1) indicate the origin position of the first index coordinate system C3 in the camera coordinate system C2 of FIG. It shows the attitude (that is, the direction of each axis) of the first index coordinate system C3 with respect to the camera coordinate system C2 (so-called yaw, pitch, and roll).
  • the coordinate Q1 is the three-dimensional position of the first index coordinate system C3 in the camera coordinate system C2 of FIG. shows the three-dimensional position of That is, in this paper, "position” may refer to position and orientation.
  • the processor 40 obtains the coordinates Q1 as the position data PD1. Therefore, the processor 40 functions as the position data acquisition unit 52 (FIG. 2) that acquires the position data PD1 (specifically, the coordinates Q1).
  • step S3 the processor 40 transports the first indicator 18 using the transport device 16. Specifically, the processor 40 operates the drive mechanism 36 of the transport device 16 to transport the transport surface 34 by a predetermined distance ⁇ in the transport direction D1. As a result, as shown in FIG. 5, the first index 18 is transported by a distance ⁇ in the transport direction D1 from the position at the time of imaging the image data ID1. Note that in FIG. 5, for ease of understanding, the position of the first index 18 at the time of imaging the image data ID1 is indicated by a dotted line B, and the first index coordinates represented by the first index 18 are indicated by a dotted line B. System C3 is also shown.
  • step S4 the processor 40 images the first index 18 with the camera 14.
  • the processor 40 images the first index 18 with the camera 14, with the camera 14 placed at the same imaging position PS1 as in step S1 described above. That is, the imaging position PS1 is determined in the robot coordinate system C1 so that the first index 18 before and after the transport in step S3 can be placed within the field of view of the camera 14.
  • FIG. 6 shows an example of the image data ID2 captured by the camera 14 in step S4.
  • This image data ID2 shows the first index 18 after being transported in step S3.
  • the camera 14 acquires image data ID2 (second image data) obtained by capturing the first index 18 after being transported, and supplies it to the processor 40.
  • step S5 the processor 40 functions as the position data acquisition unit 52, and uses position data PD2 indicating the three-dimensional position of the first index coordinate system C3 represented by the first index 18 captured in the image data ID2 with respect to the camera 14. (second position data). Specifically, similarly to step S2 described above, the processor 40 executes the image analysis program PG1, and the camera of the first index coordinate system C3 represented by the first index 18 reflected in the image data ID2. Coordinates Q2 (X2, Y2, Z2, W2, P2, R2) in the coordinate system C2 are acquired. This coordinate Q2 indicates the three-dimensional position of the first index coordinate system C3 with respect to the camera 14 at the time of capturing the image data ID2. In this way, the processor 40 obtains the coordinate Q2 as the position data PD2 in this step S5.
  • position data PD2 indicating the three-dimensional position of the first index coordinate system C3 represented by the first index 18 captured in the image data ID2 with respect to the camera 14.
  • step S6 the processor 40 determines the transport direction D1 based on the position data PD1 and PD2. Specifically, the processor 40 uses the known positional relationship R 1_2_1 (specifically, the transformation matrix M 1_2_1 ) between the robot coordinate system C1 and the camera coordinate system C2 arranged at the imaging position PS1 to perform the above-described process.
  • the coordinates Q1 (X1, Y1, Z1, W1, P1, R1) of the camera coordinate system C2 acquired as the position data PD1 in step S2 are converted into the coordinates Q3 (X3, Y3, Z3, W3, P3, R3).
  • This coordinate Q3 is the three-dimensional position (specifically, , three-dimensional position and orientation).
  • the processor 40 uses the positional relationship R1_2_1 to convert the coordinates Q2 (X2, Y2, Z2, W2, P2, R2) of the camera coordinate system C2 acquired as the position data PD2 in step S5 to the robot coordinates. Convert to coordinates Q4 (X4, Y4, Z4, W4, P4, R4) of system C1.
  • This coordinate Q4 indicates the three-dimensional position in the robot coordinate system C1 of the first index coordinate system C3 represented by the first index C1 when the image data ID2 is captured (that is, when step S4 is executed).
  • the processor 40 calculates a vector VT 3_4 from the coordinates (X3, Y3, Z3) of the coordinates Q3 to the coordinates (X4, Y4, Z4) of the coordinates Q4.
  • This vector VT3_4 coincides with the axis A3 connecting the coordinates (X3, Y3, Z3) and the coordinates (X4, Y4, Z4), and indicates the position of the vector in the transport direction D1 in the robot coordinate system C1.
  • This vector VT 3_4 (or axis A3) indicates the locus in the robot coordinate system C1 of the origin of the first index coordinate system C3 that has been moved in the transport direction D1 in step S3, and is on the transport surface 34 (or It can be assumed that the transport surface 34 is located at a position above the transport surface 34 by a known distance. That is, the vector VT 3_4 (or axis A3) indicates the transport direction D1 in the robot coordinate system C1, and becomes data indicating the position of the transport surface 34 in the robot coordinate system C1.
  • the processor 40 obtains the vector VT 3_4 (or axis A3) as the transport direction D1 in the robot coordinate system C1 based on the position data PD1 and PD2. Therefore, in this embodiment, the processor 40 functions as the transport direction acquisition unit 54 (FIG. 2) that obtains the transport direction D1 based on the position data PD1 and PD2.
  • step S7 the processor 40 sets the transport device coordinate system C4 (FIG. 7) in the robot coordinate system C1 based on the transport direction D1 determined in step S6. Specifically, the processor 40 determines the transport direction D1 (specifically, the vector VT 3_4 ) obtained in step S6 as the y-axis plus direction of the transport apparatus coordinate system C4.
  • the processor 40 sets the z-axis direction of the transport device coordinate system C4 to be parallel to the yz plane of the robot coordinate system C1 and orthogonal to the y-axis of the transport device coordinate system C4 determined as described above. Defined as a direction. Then, the processor 40 determines the x-axis direction of the transport device coordinate system C4 as a direction perpendicular to the y-axis and the z-axis of the transport device coordinate system C4.
  • the processor 40 may randomly determine the positive z-axis direction and the positive x-axis direction of the transport device coordinate system C4.
  • the operator operates the input device 50 to previously input setting information for the z-axis plus direction or the x-axis plus direction, and the processor 40 inputs the z-axis plus direction of the conveyor coordinate system C4 according to the setting information.
  • a plus direction or an x-axis plus direction may be determined.
  • This setting information is information that defines the positive z-axis direction of the transport device coordinate system C4 as a direction close to the positive z-axis direction (i.e., vertically upward) of the robot coordinate system C1 (i.e., the direction in which the inner product of both is larger). May include.
  • the setting information may include information that defines the x-axis plus direction of the transport device coordinate system C4 as a direction opposite to the robot coordinate system C1.
  • the processor 40 determines the origin of the transport device coordinate system C4 in the robot coordinate system C1.
  • the processor 40 determines the above-mentioned coordinates Q3 (X1, Y1, Z1) or coordinates Q4 (X4, Y4, Z4) as the origin of the conveyor coordinate system C4.
  • the processor 40 sets the origin of the conveyor coordinate system C4 to a predetermined position on the axis A3 (for example, the upstream end or downstream end of the conveyance surface 34). , or the center, upstream end, or downstream end of the motion range of the robot 12).
  • the above-mentioned coordinates Q3 indicate the position and orientation (direction of each axis) of the first index coordinate system C3 in the robot coordinate system C1 before the transport in step S3.
  • the processor 40 sets the coordinates (W3, P3, R3) indicating the posture among the coordinates Q3 so that the y-axis plus direction of the first index coordinate system C3 before transport is the transport direction D1 (vector VT 3_4 ), the new posture coordinates (W3c, P3c, R3c) may be obtained.
  • the processor 40 may determine the coordinates (W3c, P3c, R3c) of the new posture as the directions of each axis of the transport device coordinate system C4.
  • the processor 40 corrects the coordinates (W4, P4, R4) indicating the posture among the coordinates Q4 indicating the position and posture of the first index coordinate system C3 in the robot coordinate system C1 after the transport in step S3. By doing so, the coordinates (W4c, P4c, R4c) of a new posture may be obtained. The processor 40 may then determine the coordinates (W4c, P4c, R4c) of the new posture as the directions of each axis of the transport device coordinate system C4.
  • the transport device coordinate system C4 is set in the robot coordinate system C1.
  • the transport device coordinate system C4 is fixed with respect to the robot coordinate system C1, and its y-axis plus direction indicates the transport direction D1 in the robot coordinate system C1 with high precision.
  • the xy plane (or origin) of the transport device coordinate system C4 indicates the position of the transport surface 34 in the robot coordinate system C1.
  • the processor 40 functions as the coordinate system setting unit 56 (FIG. 2) that sets the transport device coordinate system C4 in the robot coordinate system C1 based on the transport direction D1.
  • the processor 40 functions as the position data acquisition section 52, the conveyance direction acquisition section 54, and the coordinate system setting section 56, and based on the image data ID1 and ID2 captured by the camera 14 of the first index 18, , the transport device coordinate system C4 is set in the robot coordinate system C1. Therefore, the camera 14, the first index 18, the position data acquisition unit 52, the transport direction acquisition unit 54, and the coordinate system setting unit 56 are a device 60 (FIG. 2) that sets the transport device coordinate system C4 to the robot coordinate system C1. Configure.
  • the first index 18 representing the first index coordinate system C3 is installed on the conveyance device 16 (specifically, on the conveyance surface 34) so as to be conveyed by the conveyance device 16. . Further, the camera captures the first image data ID1 (FIG. 4) obtained by capturing the first index 18, and the first index transported by the transport device 16 in step S3 after capturing the first image data ID1. 18 (FIG. 6) is obtained (steps S1, S4).
  • the position data acquisition unit 52 also determines the three-dimensional position of the first index coordinate system C4 represented by the first index 18 captured in the first image data ID1 with respect to the camera 14 (specifically, the camera coordinate system C2). First position data PD1 (specifically, coordinates Q1) indicating the coordinates Q1 is acquired (step S2). Next, the position data acquisition unit 52 obtains a second position indicating the three-dimensional position of the first index coordinate system C3 represented by the first index 18 reflected in the second image data ID2 with respect to the camera 14 (camera coordinate system C2). Data PD2 (specifically, coordinates Q2) is acquired (step S5).
  • the transport direction acquisition unit 54 obtains the transport direction D1 (specifically, the vector VT 3_4 or the axis A3) in the robot coordinate system C1 based on the first position data PD1 and the second position data PD2 (step S6).
  • the coordinate system setting unit 56 sets the transport device coordinate system C4 in the robot coordinate system C1 based on the transport direction D1 determined by the transport direction acquisition unit 54 (step S7).
  • touch-up of the hand (wrist flange 30b or end effector) of the robot 12 to the conveyance device 16 or visual touch-up of capturing images of a plurality of marks provided on the conveyance device 16 with the camera 14 can be performed.
  • the transport device coordinate system C4 can be set in the robot coordinate system C1 without causing any problems. This makes it easier to set (that is, calibrate) the transport device coordinate system C4 with respect to the robot coordinate system C1.
  • the first index 18 includes a pattern 18a that represents the three-dimensional position of the first index coordinate system C3 in the camera coordinate system C2 set in the camera 14 that captured the image data ID.
  • the first index coordinate system C3 can be more effectively represented in the camera coordinate system C2 by the pattern 18a of the first index 18 reflected in the image data ID.
  • step S4 the processor 40 moves the camera 14 from the imaging position PS1 to the imaging position PS2, and acquires image data ID2' of the first index 18 at the imaging position PS2. Good too.
  • the processor 40 functions as the position data acquisition unit 52 in step S5, and calculates the coordinates Q2'(X2',Y2',Z2') in the camera coordinate system C2 of the first index coordinate system C3 specified in the image data ID2'. ', W2', P2', R2'). Then, in step S7, the processor 40 calculates the known positional relationship R 1_2_2 (specifically, the transformation matrix M 1_2_2 ) between the robot coordinate system C1 and the camera coordinate system C2 of the camera 14 arranged at the imaging position PS2. to convert the coordinate Q2' into the coordinate Q4 (X4, Y4, Z4, W4, P4, R4) of the robot coordinate system C1.
  • the robot system 70 differs from the robot system 10 described above in that it further includes a terminal device 72 and a second indicator 74.
  • the terminal device 72 is, for example, a smartphone, a tablet terminal device, or a portable computer such as a notebook PC, and can be carried by the operator.
  • the terminal device 72 includes a processor 80, a memory 82, an I/O interface 84, a display device 86, an input device 88, and a camera 14.
  • the display device 86 and the input device 88 are integrally provided on the front surface of the terminal device 72, as shown in FIG. 8, while the camera 14 is integrally provided on the back surface of the terminal device 72, as shown in FIG. It is being A camera coordinate system C2 is set for the camera 14, as in the above-described embodiment.
  • the processor 80 is communicably connected to a memory 82, an I/O interface 84, a display device 86, an input device 88, and a camera 14 via a bus 90. Performs arithmetic processing to realize the function that sets the .
  • the I/O interface 84 is communicably connected to the I/O interface 44 of the control device 20 by wire or wirelessly.
  • processor 80 memory 82, I/O interface 84, display device 86, and input device 88 are the same as the processor 40, memory 42, I/O interface 44, display device 48, and input device 50 described above, respectively. Since it is the same as that, duplicate explanation will be omitted.
  • the second index 74 is used together with the first index 18 to set the transport device coordinate system C4 in the robot coordinate system C1.
  • the second indicator 74 is made of a flat paper material, board material, etc., like the first indicator 18 described above, and has a pattern 74a visible on its surface. Displayed.
  • the pattern 74a includes, for example, a figure consisting of a plurality of lines or curves, or a dot pattern.
  • the second indicator 74 is fixed to the robot 12 (for example, the robot base 22), and is configured to represent the second indicator coordinate system C5 by its pattern 74a.
  • the second index 74 is positioned with respect to the robot 12 so that the positional relationship R 1_5 between the second index coordinate system C5 represented by the pattern 74a and the robot coordinate system C1 is known.
  • the coordinates of the robot coordinate system C1 and the coordinates of the second index coordinate system C5 can be mutually transformed via a known transformation matrix M 1_5 (simultaneous transformation matrix, Jacobian matrix, etc.).
  • the control device 20 retains each parameter of the transformation matrix M 1_5 and the coordinates of the second index coordinate system C5 in the robot coordinate system C1 as data indicating the positional relationship R 1_5 , and stores the data in the memory 42. I remember it.
  • the robot coordinate system C1 is shown as a dotted line for ease of understanding.
  • step S11 the processor 80 of the terminal device 72 images the first index 18 and the second index 74 using the camera 14. Specifically, the operator places the terminal device 72 at an imaging position PS3 where the first index and the second index 74 can be placed within the field of view of the camera 14 of the terminal device 72. At this time, the processor 80 may display the image data ID continuously captured by the camera 14 on the display device 86 of the terminal device 72 in real time (so-called live view display).
  • FIG. 12 shows an example of the image data ID3 captured by the camera 14 in step S11.
  • the camera 14 acquires the image data ID3 (first image data) obtained by imaging the first index 18 and the second index in this way, and supplies it to the processor 80.
  • the operator may hold the terminal device 72 by hand or fix the terminal device 72 at a fixed point using a fixture (tripod, stand, etc.). good.
  • step S12 the processor 80 functions as the position data acquisition unit 52 (FIG. 9) and indicates the three-dimensional position of the first index coordinate system C3 represented by the first index 18 reflected in the image data ID3 with respect to the camera 14.
  • Acquire position data PD3 first position data
  • the processor 80 executes the image analysis program PG1 described above to analyze the pattern 18a of the first index 18 reflected in the image data ID3, and to analyze the pattern 18a of the first index 18 represented by the first index 18.
  • the index coordinate system C3 is specified within the image data ID3.
  • Image analysis program PG1 may be stored in memory 82 in advance.
  • the processor 80 obtains the coordinates Q5 (X5, Y5, Z5, W5, P5, R5) of the identified first index coordinate system C3 in the camera coordinate system C2.
  • This coordinate Q5 indicates the three-dimensional position of the first index coordinate system C3 with respect to the camera 14 at the time of capturing the image data ID3.
  • the processor 80 obtains the coordinate Q5 as the position data PD3.
  • the processor 80 functions as the position data acquisition unit 52, and the position data PD4 (third location data). Specifically, the processor 80 executes the image analysis program PG1, analyzes the pattern 74a of the second index 74 shown in the image data ID3, and calculates the second index coordinates represented by the second index 74.
  • System C5 is specified within image data ID3.
  • the processor 80 obtains the coordinates Q6 (X6, Y6, Z6, W6, P6, R6) of the specified second index coordinate system C5 in the camera coordinate system C2.
  • This coordinate Q6 indicates the three-dimensional position of the second index coordinate system C5 with respect to the camera 14 at the time of capturing the image data ID3.
  • the processor 80 obtains the coordinate Q6 as the position data PD4.
  • the processor 80 acquires the position data PD3 of the first index coordinate system C3 as well as the position data PD4 of the second index coordinate system C5.
  • step S12 the processor 80 transmits a completion signal SG1 to the control device 20.
  • the processor 40 of the control device 20 executes step S13 in response to the completion signal SG1. Specifically, in step S13, the processor 40 operates the transport device 16 to transport the first indicator 18 by a distance ⁇ in the transport direction D1, similarly to step S3 described above.
  • FIG. 13 shows the state after step S13 is completed.
  • the position of the first index 18 at the time of imaging the image data ID3 is indicated by a dotted line B, and the first index coordinates represented by the first index 18 are indicated by a dotted line B.
  • System C3 is also shown.
  • the processor 40 transmits a completion signal SG2 to the terminal device 72.
  • the processor 80 of the terminal device 72 executes step S14.
  • the processor 80 generates a notification signal NS2 to notify that the camera 14 should image the first index 18 and the second index 74 again, and It may also be output to a speaker).
  • step S14 the processor 80 of the terminal device 72 images the first index 18 and the second index 74 using the camera 14. Specifically, when the operator recognizes the notification signal NS2 output to the display device 86 (or the speaker of the terminal device 72), the operator places the first index and the second index 74 within the field of view of the camera 14.
  • the terminal device 72 is placed at an imaging position PS4 where the terminal device 72 can be captured. This imaging position PS4 may be different from or the same as the imaging position PS3 in step S11 described above.
  • the processor 80 may execute the above-described live view display at this time.
  • FIG. 14 shows an example of image data ID4 captured by the camera 14 in step S14.
  • This image data ID4 shows the second indicator 74 together with the first indicator 18 after being transported in step S13.
  • the camera 14 acquires image data ID4 (second image data) obtained by imaging the transported first index 18 and second index 74, and supplies it to the processor 80.
  • the processor 80 automatically executes step S14 when receiving the above-mentioned completion signal SG2,
  • the image data ID4 may be automatically captured by the camera 14.
  • step S15 the processor 80 functions as the position data acquisition unit 52 (FIG. 9), and similarly to step S12 described above, the processor 80, in the first index coordinate system C3 represented by the first index 18 reflected in the image data ID4, Position data PD5 (second position data) indicating the three-dimensional position with respect to the camera 14 is acquired.
  • the processor 80 executes the image analysis program PG1 to calculate the coordinate Q7 (X7 , Y7, Z7, W7, P7, R7).
  • This coordinate Q7 indicates the three-dimensional position of the first index coordinate system C3 with respect to the camera 14 at the time of capturing the image data ID4. In this way, the processor 80 obtains the coordinates Q7 as the position data PD5.
  • the processor 80 functions as the position data acquisition unit 52, and the processor 80 functions as the position data acquisition unit 52, and the position data PD6 (fourth location data). Specifically, the processor 80 executes the image analysis program PG1 to calculate the coordinate Q8 (X8 , Y8, Z8, W8, P8, R8).
  • This coordinate Q8 indicates the three-dimensional position of the second index coordinate system C5 with respect to the camera 14 at the time of capturing the image data ID4.
  • Processor 80 obtains coordinates Q8 as position data PD6.
  • the processor 80 acquires the position data PD5 of the first index coordinate system C3 as well as the position data PD6 of the second index coordinate system C5.
  • the processor 80 functions as the conveyance direction acquisition unit 54 (FIG. 9) and determines the conveyance direction D1 based on the position data PD3, PD4, PD5, and PD6. Specifically, the processor 80 uses the position data PD3 of the first index coordinate system C3 (that is, the coordinates Q5 of the camera coordinate system C2) acquired in step S12 described above, and the position data of the second index coordinate system C5. PD4 (that is, the coordinate Q6 of the camera coordinate system C2), the positions of the first index coordinate system C3 and the second index coordinate system C5 expressed in the camera coordinate system C2 of the image data ID3 (FIG. 12) Find the relationship R3_5_1 (first positional relationship).
  • the positional relationship R3_5_1 between the first index coordinate system C3 and the second index coordinate system C5 in the three-dimensional space defined by the camera coordinate system C2 of the image data ID3 is the position data PD3 and PD4. It is known from From the position data PD3 and PD4 , the processor 80 calculates the coordinates Q9 (X9, Y9, Z9, W9, P9, R9).
  • the processor 80 uses the position data PD5 of the first index coordinate system C3 (that is, the coordinates Q7 of the camera coordinate system C2) acquired in step S15 described above, and the position data PD6 (of the second index coordinate system C5). That is, based on the coordinate Q8) of the camera coordinate system C2, the positional relationship R between the first index coordinate system C3 and the second index coordinate system C5 expressed in the camera coordinate system C2 of the image data ID4 (FIG. 14) 3_5_2 (second positional relationship) is determined. Specifically, from the position data PD5 and PD6 , the processor 80 calculates the coordinates Q10 (X10, Y10) of the first index coordinate system C3 in the second index coordinate system C5 shown in FIG. , Z10, W10, P10, R10).
  • the processor 80 calculates a vector VT 9_10 from the coordinates (X9, Y9, Z9) of the coordinates Q9 to the coordinates (X10, Y10, Z10) of the coordinates Q10.
  • This vector VT 9_10 coincides with the axis A3 connecting the coordinates (X9, Y9, Z9) and the coordinates (X10, Y10, Z10), and is a vector in the transport direction D1 in the second index coordinate system C5 (in other words, The position of axis A3) is shown.
  • This vector VT 9_10 (or axis A3) is expressed as a coordinate (or function) of the second index coordinate system C5, and is located at the origin of the first index coordinate system C3 that has been moved in the transport direction D1 in step S13. 2 in the index coordinate system C5, and can be considered to be placed on the conveyance surface 34.
  • the processor 80 obtains the vector VT 9_10 (or axis A3) in the second index coordinate system C5 as the conveyance direction D1.
  • step S16 the processor 80 controls the data of the transport direction D1 acquired in step S15 (specifically, the data of the coordinates or functions of the vector VT 9_10 or the axis A3 in the second index coordinate system C5). Supply to the device 20.
  • the processor 40 of the control device 20 receives the data on the transport direction D1, it executes step S17.
  • step S17 the processor 40 functions as the coordinate system setting unit 56 (FIG. 9), and sets the transport device coordinate system C4 (FIG. 15) to the robot coordinate system C1 based on the transport direction D1 determined in step S16. .
  • the processor 40 uses the known positional relationship R 1_5 (specifically, the transformation matrix M 1_5 ) between the second index coordinate system C5 and the robot coordinate system C1 to convert the second index coordinate system C5 to the robot coordinate system C1 in step S16.
  • the transport direction D1 (for example, vector VT 9_10 ) obtained as a coordinate (or function) of the index coordinate system C5 is converted to the robot coordinate system C1.
  • the processor 40 determines the transport direction D1 (vector VT 9_10 ) converted into the robot coordinate system C1 as the y-axis plus direction of the transport device coordinate system C4. Thereafter, the processor 40 determines the x-axis plus direction and the z-axis plus direction of the transport device coordinate system C4, respectively, similarly to step S7 described above.
  • the processor 40 determines the origin of the transport device coordinate system C4 in the robot coordinate system C1.
  • the processor 40 converts the above-mentioned coordinates Q9 (X9, Y9, Z9) into coordinates C9' (X9', Y9', Z9') of the robot coordinate system C1, and converts the coordinates C9' into transport device coordinates. It is determined as the origin of system C4.
  • the processor 40 converts the above-mentioned coordinates Q10 (X10, Y10, Z10) into coordinates C10' (X10', Y10', Z10') of the robot coordinate system C1, and transports the coordinates C10'. It may be determined as the origin of the device coordinate system C4.
  • the processor 40 converts the axis A3 obtained as the coordinates (or function) of the second index coordinate system C5 in step S16 described above to the robot coordinate system C1, and converts the origin of the transport device coordinate system C4 into the robot coordinate system C1. , may be determined as a predetermined position on the axis A3 in the robot coordinate system C1. In this way, as shown in FIG. 15, the transport device coordinate system C4 is set in the robot coordinate system C1.
  • the processor 80 of the terminal device 72 functions as the position data acquisition section 52 and the conveyance direction acquisition section 54, while the processor 40 of the control device 20 functions as the coordinate system setting section 56. are doing.
  • the processors 40 and 80 cooperate with each other to convert the robot coordinate system C1 to the transport device coordinate system C4 based on the image data ID3 and ID4 captured by the camera 14 of the first index 18 and the second index 74. is set. Therefore, the camera 14, the first index 18, the position data acquisition unit 52, the transport direction acquisition unit 54, the coordinate system setting unit 56, and the second index 74 set the transport device coordinate system C4 to the robot coordinate system C1.
  • a device 100 (FIG. 9) is configured.
  • the second index 74 representing the second index coordinate system C5 is installed at a known position in the robot coordinate system C1, and the camera 14 can detect the first index 18 and the second index 74.
  • the first image data ID3 obtained by capturing an image of the first index 18 and the second image data ID4 obtained by capturing an image of the first index 18 and the second index 74 transported in step S13 are acquired (steps S11, S14).
  • the position data acquisition unit 52 (processor 80) also obtains the three-dimensional position of the second index coordinate system C5 represented by the second index 74 reflected in the first image data ID3 with respect to the camera 14 (camera coordinate system C2).
  • the third position data PD4 (specifically, the coordinates Q6) shown in FIG.
  • the position data acquisition unit 52 acquires fourth position data PD6 (specifically, obtains the coordinate Q8).
  • the conveyance direction acquisition unit obtains the first position data PD3 (coordinates Q5), the second position data PD5 (coordinates Q7), the third position data PD4 (coordinates Q6), and the fourth position data PD6 (coordinates Q8), the transport direction D1 in the robot coordinate system C1 is determined (step S16).
  • the transport device coordinate system C4 can be set in the robot coordinate system C1 simply by imaging the first index 18 and the second index 74 with the camera 14. Therefore, it is possible to easily set (that is, calibrate) the transport device coordinate system C4 with respect to the robot coordinate system C1.
  • the conveyance direction acquisition unit 54 determines the first index coordinate system C3 and the second index coordinate system in the first image data ID3 (FIG. 12) based on the first position data PD3 and the third position data PD4.
  • the first positional relationship R3_5_1 (specifically, the coordinate Q9) with the index coordinate system C5 is determined (step S16).
  • the conveyance direction acquisition unit 54 determines the first index coordinate system C3 and the second index coordinate system C5 in the second image data ID4 (FIG. 14) based on the second position data PD5 and the fourth position data PD6.
  • a second positional relationship R3_5_2 (specifically, coordinate Q10) with respect to the second position R3_5_2 is determined (step S16).
  • the conveyance direction acquisition unit 54 obtains the conveyance direction D1 based on the first positional relationship R 3_5_1 and the second positional relationship R 3_5_2 (step S16).
  • the transport direction D1 can be determined quickly and with high precision using an existing algorithm (specifically, an image analysis program PG1, etc.).
  • the second index 74 has a pattern 74a representing the three-dimensional position of the second index coordinate system C5 in the camera coordinate system C2 set in the camera 14 that captured the image data ID3 and ID4. include.
  • the second index coordinate system C5 can be more effectively represented in the camera coordinate system C2 by the pattern 74a of the second index 74 reflected in the image data ID3 and ID4.
  • Robot system 110 differs from robot system 70 described above in that it further includes a sensor 112. Sensor 112 detects displacement ⁇ of camera 14.
  • the senor 112 includes at least one of a gyro sensor and an acceleration sensor, and is provided on the terminal device 72 so as to be fixed with respect to the camera 14.
  • the sensor 112 is communicably connected to the I/O interface 84 of the terminal device 72, and the sensor 112 is configured to detect the displacement ⁇ (more specifically, the position) of the camera 14 (in other words, the terminal device 72). and the amount of displacement and direction of posture) are detected and supplied to the processor 80.
  • step S21 the processor 80 of the terminal device 72 starts detection of the displacement ⁇ of the camera 14 by the sensor 112. Specifically, the processor 80 operates the sensor 112 to continuously (for example, periodically) detect the displacement ⁇ of the position of the camera 14 (or the terminal device 72). The processor 80 sequentially acquires detection data of displacement ⁇ from the sensor 112 and stores it in the memory 42 .
  • step S22 the processor 80 images the first index 18 with the camera 14. Specifically, the operator places the terminal device 72 at an imaging position PS5 where the first index 18 can be placed within the field of view of the camera 14 of the terminal device 72. At this time, the processor 80 may perform the above-described live view display.
  • FIG. 19 shows an example of image data ID5 captured by the camera 14 in step S22.
  • the camera 14 acquires image data ID5 (first image data) obtained by imaging the first index 18 in this way, and supplies it to the processor 80.
  • step S23 the processor 80 functions as the position data acquisition unit 52 (FIG. 17) and indicates the three-dimensional position of the first index coordinate system C3 represented by the first index 18 reflected in the image data ID5 with respect to the camera 14.
  • Acquire position data PD7 first position data
  • the processor 80 executes the image analysis program PG1 to obtain the coordinates Q11 of the first index coordinate system C3 in the camera coordinate system C2 of FIG. 19 as the position data PD7. (X11, Y11, Z11, W11, P11, R11) is obtained.
  • the processor 80 transmits a completion signal SG1 to the control device 20.
  • the processor 40 of the control device 20 executes step S24 in response to the completion signal SG1. Specifically, in step S24, the processor 40 operates the transport device 16 to transport the first indicator 18 by a distance ⁇ in the transport direction D1, similarly to step S13 described above.
  • FIG. 20 shows the state after step S24 is completed.
  • the position of the first index 18 at the time of imaging the image data ID5 is indicated by a dotted line B
  • the first index coordinates represented by the first index 18 are indicated by a dotted line B.
  • System C3 is also shown.
  • the processor 40 transmits a completion signal SG2 to the terminal device 72.
  • the processor 80 of the terminal device 72 executes step S25.
  • the processor 80 may output a notification signal NS3 notifying that the first index 18 should be imaged again by the camera 14, as in the above-described embodiment.
  • step S25 the processor 80 of the terminal device 72 images the first index 18 with the camera 14. Specifically, when the operator recognizes the notification signal NS3 output to the display device 86 (or the speaker of the terminal device 72), the operator moves to the imaging position PS6 where the first index 18 can be placed within the field of view of the camera 14. A terminal device 72 is arranged. This imaging position PS6 may be different from or the same as the imaging position PS5 in step S22 described above. Furthermore, the processor 80 may execute the above-described live view display at this time.
  • FIG. 21 shows an example of image data ID6 captured by the camera 14 in step S25.
  • the camera 14 acquires image data ID6 (second image data) obtained by capturing an image of the transported first index 18, and supplies it to the processor 80.
  • step S26 the processor 80 functions as the position data acquisition unit 52 (FIG. 17) and indicates the three-dimensional position of the first index coordinate system C3 represented by the first index 18 captured in the image data ID6 with respect to the camera 14.
  • Position data PD8 (second position data) is acquired.
  • the processor 80 executes the image analysis program PG1 to obtain the coordinates Q12 of the first index coordinate system C3 in the camera coordinate system C2 of FIG. 21 as the position data PD8. (X12, Y12, Z12, W12, P12, R12) is obtained.
  • step S27 the processor 80 images the second index 74 with the camera 14. Specifically, the operator places the terminal device 72 at an imaging position PS7 where the second indicator 74 can be placed within the field of view of the camera 14 of the terminal device 72. This imaging position PS7 is different from the above-mentioned imaging positions PS5 and PS6. At this time, the processor 80 may perform the above-described live view display.
  • FIG. 22 shows an example of image data ID7 captured by the camera 14 in step S27.
  • the camera 14 acquires image data ID7 (third image data) obtained by capturing the second index 74, and supplies it to the processor 80.
  • the operator images the first index 18 and the second index 74 separately in steps S22 and S25 and step S27.
  • step S28 the processor 80 functions as the position data acquisition unit 52 (FIG. 17) and indicates the three-dimensional position of the second index coordinate system C5 represented by the second index 74 shown in the image data ID7 with respect to the camera 14.
  • Position data PD9 (third position data) is acquired.
  • the processor 80 executes the image analysis program PG1 to obtain the coordinates Q13 of the second index coordinate system C5 in the camera coordinate system C2 of FIG. 22 as the position data PD9. Obtain (X13, Y13, Z13, W13, P13, R13).
  • step S29 the processor 80 determines the transport direction D1 based on the position data PD7, PD8, and PD9 and the displacement ⁇ detected by the sensor 112.
  • the sensor 112 captures the image data ID5 in step S22, the image data ID6 in step S25, and the image data ID7 in step S27. continues to be detected.
  • the processor 80 calculates the displacement ⁇ 5_6 from the imaging position PS5 where the image data ID5 was taken in step S22 to the imaging position PS6 where the image data ID6 was taken in step S25, and the imaging position PS6. From this, the displacement ⁇ 6_7 to the imaging position PS7 where the image data ID7 was captured in step S27 can be determined.
  • the processor 80 calculates the first value before transport in step S24.
  • the positional relationship R3_5_3 between the index coordinate system C3 and the second index coordinate system C5 can be determined.
  • the processor 80 uses the coordinates Q14 (X14, Y14, Z14, W14, P14 , R14) is obtained.
  • the processor 80 calculates the first index after transportation in step S24 from the displacement ⁇ 6_7 , the position data PD8 (coordinates Q12) acquired in step S26, and the position data PD9 (coordinates Q13) acquired in step S27.
  • the positional relationship R3_5_4 between the coordinate system C3 and the second index coordinate system C5 can be determined.
  • the processor 80 calculates the coordinate Q15 (X15, Y15, Z15, W15, P15 , R15) is obtained.
  • the processor 80 calculates a vector VT 14_15 from the coordinates (X14, Y14, Z14) of the coordinates Q14 to the coordinates (X15, Y15, Z15) of the coordinates Q15.
  • This vector VT 14_15 coincides with the axis A3 connecting the coordinates (X14, Y14, Z14) and the coordinates (X15, Y15, Z15), and is a vector in the transport direction D1 in the second index coordinate system C5 (in other words, The position of axis A3) is shown.
  • This vector VT 14_15 (or axis A3) is expressed as a coordinate (or function) of the second index coordinate system C5, and is located at the origin of the first index coordinate system C3 that has been moved in the transport direction D1 in step S24. 2 in the index coordinate system C5, and can be considered to be placed on the conveyance surface 34.
  • the processor 80 acquires the vector VT 14_15 (or axis A3) in the second index coordinate system C5 as the conveyance direction D1.
  • step S29 the processor 80, similarly to the above-described embodiment, processes the data of the conveying direction D1 acquired in step S29 (specifically, the coordinates of the vector VT14_15 or the axis A3 in the second index coordinate system C5). or function data) is supplied to the control device 20.
  • the processor 40 of the control device 20 receives the data on the transport direction D1, it executes step S30.
  • step S30 the processor 40 functions as the coordinate system setting unit 56 (FIG. 17), and sets the transport device coordinate system C4 (FIG. 23) to the robot coordinate system C1 based on the transport direction D1 determined in step S29. .
  • the processor 40 uses the known positional relationship R1_5 between the second index coordinate system C5 and the robot coordinate system C1 to set the second index coordinate system in step S29.
  • the transport direction D1 (for example, vector VT 14_15 ) obtained as the coordinate (or function) of C5 is converted to the robot coordinate system C1.
  • the processor 40 determines the transport direction D1 (vector VT 14_15 ) converted to the robot coordinate system C1 as the y-axis plus direction of the transport device coordinate system C4, and also The x-axis plus direction and z-axis plus direction are determined respectively.
  • the processor 40 determines the origin of the transport device coordinate system C4 in the robot coordinate system C1.
  • the processor 40 converts the above-mentioned coordinates Q14 (X14, Y14, Z14) into coordinates C14' (X14', Y14', Z14') of the robot coordinate system C1, and converts the coordinates C14' into transport device coordinates. It is determined as the origin of system C4.
  • the processor 40 converts the above-mentioned coordinates Q15 (X15, Y15, Z15) into coordinates C15' (X15', Y15', Z15') of the robot coordinate system C1, and transports the coordinates C15'. It may be determined as the origin of the device coordinate system C4.
  • the processor 40 converts the axis A3 obtained as the coordinates (or function) of the second index coordinate system C5 in step S29 described above to the robot coordinate system C1, and converts the origin of the transport device coordinate system C4 into the robot coordinate system C1. , may be determined as a predetermined position on the axis A3 in the robot coordinate system C1. In this way, as shown in FIG. 23, the transport device coordinate system C4 is set in the robot coordinate system C1.
  • the processors 40 and 80 cooperate with each other to function as the position data acquisition section 52, the transport direction acquisition section 54, and the coordinate system setting section 56, and the camera 14
  • a transport device coordinate system C4 is set in the robot coordinate system C1. Therefore, the camera 14, the first index 18, the position data acquisition unit 52, the transport direction acquisition unit 54, the coordinate system setting unit 56, the second index 74, and the sensor 112 are arranged in the robot coordinate system C1 and the transport device coordinate system C4.
  • a device 120 (FIG. 17) for setting is configured.
  • the camera 14 has first image data ID5 (step S22) and second image data ID6 (step S25) that have captured the first index 18, as well as second image data ID5 that has captured the second index 74.
  • 3 image data ID3 is acquired (step S27).
  • the position data acquisition unit 52 (processor 80) obtains the three-dimensional position of the second index coordinate system C5 represented by the second index 74 reflected in the third image data ID3 with respect to the camera 14 (camera coordinate system C2).
  • the third position data PD9 shown is acquired (step S28).
  • the sensor 112 also detects the displacements ⁇ 5_6 and ⁇ 6_7 of the camera 14 while capturing the first image data ID5, the second image data ID6, and the third image data ID7. Then, the conveyance direction acquisition unit 54 obtains the conveyance direction D1 based on the first position data PD7, the second position data PD8, the third position data PD9, and the displacements ⁇ 5_6 and ⁇ 6_7 (step S29).
  • the conveyance direction D1 can be determined. Therefore, even if there is not enough space in the work cell, the transport device coordinate system C4 can be effectively set in the robot coordinate system C1.
  • the processor 40 or 80 transports the first index 18 by the transport device 16 multiple times, images the first index 18 with the camera 14 before and after the transport, and determines the transport direction. D1 may be determined multiple times.
  • FIG. 24 shows the flow of another method for setting the transport device coordinate system C4 in the robot coordinate system C1 in the robot system 10 described above.
  • step S33 similarly to step S2 or S5 described above, the processor 40 functions as the position data acquisition unit 52 (FIG. 2), and acquires the first index coordinate system represented by the first index 18 captured in the image data IDn.
  • Position data PDn (specifically, coordinates Qn of the camera coordinate system C2) indicating the three-dimensional position of C3 with respect to the camera 14 is acquired.
  • step S33 the processor 40 determines the three-dimensional position of the first index coordinate system C3 represented by the image data ID1 with respect to the camera 14.
  • the position data PD1 (specifically, the coordinates Q1 of the camera coordinate system C2) indicating the camera coordinate system C2 is obtained.
  • step S36 the processor 40 functions as the conveyance direction acquisition unit 54 (FIG. 2), as in step S6 described above, and uses the position data PDn (specifically, the coordinates Qn) acquired in the most recently executed step S33. and the position data PDn-1 (specifically, the coordinates Qn-1) acquired in step S33 executed before acquiring the position data PDn, the conveyance direction D1_n is determined.
  • the processor 40 repeatedly executes the loop of steps S32 to S38 until it determines YES in step S37, which will be described later. Therefore, the processor 40 repeatedly transports the first index 18 by the transport device 16 in step S38, which will be described later, and uses the image data IDn-1 (first image data) captured in step S32 before the transport from the In step S33 executed previously, position data PDn-1 (first position data) is acquired. On the other hand, the processor 40 acquires position data PDn (second position data) in step S33 executed after the conveyance from the image data IDn (second image data) captured in step S32 after the conveyance. Become.
  • the processor 40 uses the position data PDn (second position data) acquired in the most recent step S33 and the step S33 executed before acquiring the position data PDn, using the same method as in step S6 described above. Based on the acquired position data PDn-1 (first position data), the transport direction D1 _n (for example, a vector VT _n similar to the above-mentioned vector VT 3_4 ) is determined.
  • step S38 the processor 40 transports the first indicator 18 using the transport device 16, similar to step S3 described above. Note that in the n-th step S38, the processor 40 transports the first indicator 18 in the transport direction D1, and in the n+1-th step S38 executed thereafter, the processor 40 transports the first indicator 18 in the transport direction D1.
  • the device 16 may also transport in a direction D2 opposite to the transport direction D1.
  • step S36 which is executed after conveying in the opposite direction D2 in this manner, the processor 40 calculates the vector VT_n ' in the opposite direction D2 from the position data PDn-1 and PDn. In this case, the processor 40 may obtain a vector VT_n in the opposite direction to the vector VT_n ' as the transport direction D1_n . In this way, the processor 40 repeatedly executes the loop of steps S32 to S38 until it determines YES in step S37, and obtains the transport direction D1_n each time it executes step S36.
  • step S39 the processor 40 functions as the conveyance direction acquisition unit 54 and obtains the final conveyance direction D1_F . Specifically, the processor 40 calculates a composite vector VT _F (or average vector) of the plurality of vectors VT _1 , VT _2 , . The vector VT _F is obtained as the final transport direction D1 _F .
  • step S40 the processor 40 functions as the coordinate system setting unit 56 (FIG. 2), and similarly to step S6 described above, based on the transport direction D1_F acquired in step S39, the processor 40 sets the transport device coordinates to the robot coordinate system C1.
  • Set system C4 Specifically, the processor 40 determines the vector VT_F obtained in step S39 as the y-axis plus direction of the transport device coordinate system C4.
  • the processor 40 calculates the transport direction D1 _n each time the first index 18 is transported by the transport device 16 multiple times, and calculates the transport direction D1 _n based on the calculated transport directions D1 _n . Then, the final transport direction D1_F is obtained. According to this configuration, the transport direction D1 of the transport device 16 can be determined with higher accuracy.
  • the concept of the flow in FIG. 24 (that is, the conveyance direction D1_n is determined each time the first index 18 is conveyed by the conveyance device 16 multiple times, and the final conveyance is determined based on the plurality of conveyance directions D1_n ) .
  • obtaining the direction D1_F can be applied to the flow of FIG. 11 or FIG. 18.
  • the processors 40 and 80 cooperate with each other to repeatedly execute the loop of steps S11 to S16, and based on the plurality of transport directions D1_n obtained each time step S16 is executed, , the final transport direction D1_F may be determined.
  • the processor 80 of the terminal device 72 executes steps S27 and S28 after step S21. Thereafter, the processors 40 and 80 cooperate with each other to repeatedly execute the loop of steps S22 to S26 and S29, and based on the plurality of transport directions D1_n obtained each time step S29 is executed, the final The transport direction D1_F may also be determined.
  • the second indicator 74 may be configured from the shape 74b of the robot 12.
  • this shape 74b may be comprised of a plurality of faces, edges, depressions, and protrusions formed on a component of robot 12 (eg, robot base 22).
  • the shape 74b is the shape of the entire robot 12 (that is, the robot base 22, the rotating trunk 24, the lower arm 26, the upper arm 28, the wrist 30, and the wrist flange 30b) that is stationary at a predetermined position. It may be composed of.
  • the shape 74b reflected in the captured image data ID is determined by the camera coordinates of the camera 14. It represents the three-dimensional position (that is, the coordinate Q) of the second index coordinate system C5 in the system C2.
  • step S12, S15 or 28 described above the processor 40 or 80 functions as the position data acquisition unit 52 and is an image analysis program PG2 (image analysis application) for reading the second index coordinate system C4 from the shape 74b. is executed to identify the second index coordinate system C4 represented by the shape 74b within the image data ID.
  • image analysis program PG2 image analysis application
  • the processor 40 or 80 acquires the coordinate Q in the camera coordinate system C2 of the specified second index coordinate system C4 as the position data PD.
  • the first indicator 18 is not limited to the pattern 18a, but may also include, for example, a shape 18b (surface, edge, recess, convex part) formed on the conveyance surface 34.
  • the processor 80 of the terminal device 72 functions as the position data acquisition section 52 and the conveyance direction acquisition section 54 has been described.
  • the processor 40 of the control device 20 may function as the position data acquisition section 52, the transport direction acquisition section 54, and the coordinate system setting section 56.
  • the processor 80 of the terminal device 72 supplies the image data ID3, ID4, ID5, ID6, and ID7 captured by the camera 14 to the control device 20.
  • the terminal device 72 may be omitted and the camera 14 may be configured from, for example, a digital camera. Then, the operator may transmit the image data ID3, ID4, ID5, ID6, and ID7 captured by the camera 14 to the I/O interface 44 of the control device 20 by wire or wirelessly.
  • the processor 40 changes the transport direction D1 from the coordinate Q3 (X3, Y3, Z3) to the coordinate Q4 (X4, Y4, Z4), which indicates the locus of the origin of the first index coordinate system C3. ) to the vector VT3_4 .
  • the present invention is not limited to this, and the processor 40 may be configured based on the amount of change between the coordinates (W3, P3, Q3) indicating the posture among the coordinates Q3 and the coordinates (W4, P4, R4) indicating the posture among the coordinates Q4. , it is also possible to determine the transport direction D1.
  • step S16, S29 or S36 described above the processor 80 changes the conveyance direction D1, the amount of change in the coordinates Q9 (W9, P9, R9) and the coordinates Q10 (W10, P10, R10) indicating the posture, and the posture. Even if the conveying direction D1 is determined based on the amount of change in the coordinates Q14 (W14, P14, R14) and the coordinates Q15 (W15, P15, R15), or the amount of change in the coordinates Qn-1 and Qn that indicate the posture, good.
  • the processor 40 or 80 may execute the flow shown in FIG. 3, FIG. 11, FIG. 18, or FIG. 24 according to the computer program PG3 stored in the memory 42 or 82 in advance. Further, the functions of the position data acquisition section 52, the conveyance direction acquisition section 54, and the coordinate system setting section 56 executed by the processor 40 or 80 may be functional modules realized by the computer program PG3.
  • control device 20 may include a first control device 20A that controls the robot 12 and a second control device 20B that controls the transport device 16.
  • the robot 12 is not limited to a vertically articulated robot, but may be any type of robot such as a horizontally articulated robot or a parallel link robot.
  • the conveyance device 16 is not limited to a belt conveyor, and may be any device capable of conveying a workpiece.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

より簡単にロボット座標系に搬送装置座標系を設定する(すなわち、ロボット座標系と搬送装置座標系とのキャリブレーション)ことを可能とする技術が求められている。 装置60は、第1の指標18と、第1の指標18を撮像した第1の画像データと、該撮像後に搬送装置16によって搬送された第1の指標18を撮像した第2の画像データとを取得するカメラ14と、第1の画像データに写る第1の指標18が表す第1の指標座標系のカメラに対する3次元位置を示す第1位置データと、第2の画像データに写る第1の指標が表す第1の指標座標系のカメラに対する3次元位置を示す第2位置データとを取得する位置データ取得部52と、搬送方向を求める搬送方向取得部54と、搬送方向に基づいてロボット座標系に搬送装置座標系を設定する座標系設定部56とを備える。

Description

ロボット座標系に搬送装置座標系を設定する装置、及び方法
 本開示は、ロボット座標系に搬送装置座標系を設定する装置、及び方法に関する。
 ロボットの手先を搬送装置にタッチアップさせることで、ロボット座標系に搬送装置座標系を設定する装置が知られている(例えば、特許文献1)。また、ロボットの周辺装置に設けた複数のマークをカメラで撮像するビジュアルタッチアップを行うことで、該周辺装置に対してロボット座標系をキャリブレーションする装置も知られている(例えば、特許文献2)。
特開2015-174171号公報 特開2005-149299号公報
 より簡単にロボット座標系に搬送装置座標系を設定する(すなわち、ロボット座標系と搬送装置座標系とのキャリブレーションを行う)ことを可能とする技術が求められている。
 本開示の一態様において、ワークに対して作業を行うロボットに設定されるロボット座標系に、ワークを搬送する搬送装置の搬送方向を規定する搬送装置座標系を設定する装置は、第1の指標座標系を表す第1の指標であって、搬送装置によって搬送されるように該搬送装置に設置される、第1の指標と、第1の指標を撮像した第1の画像データと、該第1の画像データの撮像後に搬送装置によって搬送された該第1の指標を撮像した第2の画像データとを取得するカメラとを備える。
 また、この装置は、第1の画像データに写る第1の指標が表す第1の指標座標系のカメラに対する3次元位置を示す第1位置データと、第2の画像データに写る第1の指標が表す第1の指標座標系のカメラに対する3次元位置を示す第2位置データとを取得する位置データ取得部と、第1位置データ及び第2位置データに基づいて、搬送方向を求める搬送方向取得部と、搬送方向取得部が求めた搬送方向に基づいて、ロボット座標系に搬送装置座標系を設定する座標系設定部とを備える。
 本開示の他の態様において、ワークに対して作業を行うロボットに設定されるロボット座標系に、ワークを搬送する搬送装置の搬送方向を規定する搬送装置座標系を設定する方法は、第1の指標座標系を表す第1の指標を、搬送装置によって搬送されるように該搬送装置に設置し、カメラによって第1の指標を撮像することで第1の画像データを取得し、該第1の画像データの撮像後に搬送装置によって搬送された該第1の指標をカメラによって撮像することで第2の画像データを取得する。
 また、この方法は、第1の画像データに写る第1の指標が表す第1の指標座標系のカメラに対する3次元位置を示す第1位置データと、第2の画像データに写る第1の指標が表す第1の指標座標系のカメラに対する3次元位置を示す第2位置データとを取得し、第1位置データ及び第2位置データに基づいて搬送方向を求め、搬送方向取得部が求めた搬送方向に基づいて、ロボット座標系に搬送装置座標系を設定する。
一実施形態に係るロボットシステムの概略斜視図である。 図1に示すロボットシステムのブロック図である。 図1に示すロボットシステムにおいて、ロボット座標系に搬送装置座標系を設定する方法の一例を示すフローチャートである。 図3中のステップS1で撮像される画像データの一例を示す。 図3中のステップS3で第1の指標が搬送された状態を示す。 図3中のステップS4で撮像される画像データの一例を示す。 図1に示すロボットシステムにおいて、ロボット座標系に設定された搬送装置座標系を示す。 他の実施形態に係るロボットシステムの概略斜視図である。 図8に示すロボットシステムのブロック図である。 図8に示す端末装置の裏面側を示す。 図8に示すロボットシステムにおいて、ロボット座標系に搬送装置座標系を設定する方法の一例を示すフローチャートである。 図11中のステップS11で撮像される画像データの一例を示す。 図11中のステップS13で第1の指標が搬送された状態を示す。 図11中のステップS14で撮像される画像データの一例を示す。 図8に示すロボットシステムにおいて、ロボット座標系に設定された搬送装置座標系を示す。 さらに他の実施形態に係るロボットシステムの概略斜視図である。 図16に示すロボットシステムのブロック図である。 図16に示すロボットシステムにおいて、ロボット座標系に搬送装置座標系を設定する方法の一例を示すフローチャートである。 図18中のステップS22で撮像される画像データの一例を示す。 図18中のステップS24で第1の指標が搬送された状態を示す。 図18中のステップS25で撮像される画像データの一例を示す。 図18中のステップS27で撮像される画像データの一例を示す。 図16に示すロボットシステムにおいて、ロボット座標系に設定された搬送装置座標系を示す。 図1に示すロボットシステムにおいて、ロボット座標系に搬送装置座標系を設定する方法の他の例を示すフローチャートである。
 以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、カメラ14、搬送装置16、第1の指標18、及び制御装置20を備える。
 本実施形態においては、ロボット12は、垂直多関節ロボットであって、ワーク(図示せず)に対して所定の作業(例えば、ワークハンドリング、溶接、切削加工、レーザ加工等)を行う。具体的には、ロボット12は、ロボットベース22、旋回胴24、下腕部26、上腕部28、及び手首部30を有する。
 ロボットベース22は、作業セルの床、又は無人搬送車(AGV)の上に固定される。旋回胴24は、鉛直軸周りに旋回可能となるようにロボットベース22に設けられている。下腕部26は、その基端部が水平軸周りに回動可能となるように旋回胴24に設けられ、上腕部28は、その基端部が下腕部26の先端部に回動可能に設けられている。
 手首部30は、互いに直交する2つの軸の周りに回動可能となるように上腕部28の先端部に設けられた手首ベース30aと、手首軸A1の周りに回動可能となるように手首ベース30aに設けられた手首フランジ30bとを有する。手首フランジ30bには、ワークに対して作業を行うエンドエフェクタ(ロボットハンド、溶接トーチ、切削工具、レーザ加工ヘッド等)が着脱可能に取り付けられる。
 ロボットベース22、旋回胴24、下腕部26、上腕部28、及び手首部30には、複数のサーボモータ32(図2)がそれぞれ設けられている。これらサーボモータ32は、制御装置20からの指令に応じて、ロボット12の各可動コンポーネント(すなわち、旋回胴24、下腕部26、上腕部28、手首部30、手首フランジ30b)を回動させ、これにより、手首フランジ30bに取り付けられたエンドエフェクタ(図示せず)を任意の位置へ移動させる。
 本実施形態においては、カメラ14は、エンドエフェクタの代わりに、手首フランジ30bに着脱可能に取り付けられている。カメラ14は、撮像センサ(CMOS、CCD等)、及び、該撮像センサへ被写体像を導光する光学レンズ(コリメートレンズ、フォーカスレンズ等)を有する2次元カメラであって、制御装置20からの指令に応じて、被写体を撮像する。カメラ14は、光軸A2に沿って被写体像を取り込み、該被写体像を光学レンズによって撮像センサに結像させることで、該被写体像の画像データIDを取得する。本実施形態においては、カメラ14は、ロボット12によって任意の位置へ移動される。
 搬送装置16は、ロボット12の周囲に配置され、ワークを搬送方向D1へ搬送する。例えば、搬送装置16は、ベルトコンベア等であって、ワークが載置される搬送面34と、該搬送面34を搬送方向D1へ移動させる駆動機構36とを有する。搬送面34は、タイミングベルトの外面によって画定されてもよい。
 また、駆動機構36は、制御装置20からの指令に応じて該タイミングベルト(つまり、搬送面34)を駆動するサーボモータ(図示せず)を有してもよい。搬送装置16は、その搬送面34の少なくとも一部がロボット12の動作範囲内(すなわち、エンドエフェクタを位置決め可能な範囲内)に在るように、配置される。
 制御装置20は、ロボット12、カメラ14、及び搬送装置16を制御する。具体的には、図2に示すように、制御装置20は、プロセッサ40、メモリ42、及びI/Oインターフェース44を有するコンピュータである。プロセッサ40は、CPU又はGPU等を有し、メモリ42及びI/Oインターフェース44とバス46を介して通信可能に接続され、これらコンポーネントと通信しつつ、後述する搬送装置座標系を設定する機能を実現するための演算処理を行う。
 メモリ42は、RAM又はROM等を有し、各種データを一時的又は恒久的に記憶する。メモリ42は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、又は光記憶媒体等、コンピュータが読み取り可能な記憶媒体から構成することができる。I/Oインターフェース44は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHDMI(登録商標)端子を有し、プロセッサ40からの指令の下、外部機器との間でデータを有線又は無線で通信する。本実施形態においては、ロボット12の各サーボモータ32、カメラ14、及び搬送装置16(具体的には、駆動機構36)は、I/Oインターフェース44に通信可能に接続されている。
 また、制御装置20には、表示装置48及び入力装置50が設けられている。表示装置48及び入力装置50は、I/Oインターフェース44に通信可能に接続されている。表示装置48は、液晶ディスプレイ又は有機ELディスプレイ等を有し、プロセッサ40からの指令の下、各種データを視認可能に表示する。
 入力装置50は、押しボタン、スイッチ、キーボード、マウス、又はタッチパネル等を有し、オペレータからデータの入力を受け付ける。なお、表示装置48及び入力装置50は、制御装置20の筐体に一体に組み込まれてもよいし、又は、制御装置20の筐体とは別体の1つのコンピュータ(PC等)として、該筐体に外付けされてもよい。
 図1に示すように、ロボット12には、ロボット座標系C1が設定される。ロボット座標系C1は、ロボット12の各可動要素の動作を自動制御するための座標系である。本実施形態においては、ロボット座標系C1は、その原点がロボットベース22の中心に配置され、そのz軸が旋回胴24の旋回軸と平行となる(具体的には、一致する)ように、ロボットベース22に対して固定されている。
 一方、カメラ14には、カメラ座標系C2が設定される。本実施形態においては、カメラ座標系C2は、その原点が、カメラ14の撮像センサの中心に配置され、そのz軸が光軸A2と平行となる(具体的には、一致する)ように、カメラ14に対して設定されている。なお、カメラ14は、その光軸A2が手首軸A1と平行となる(又は、一致する)ように、手首フランジ30bに取り付けられてもよい。
 カメラ座標系C2は、カメラ14が撮像した画像データID(又は、撮像センサ)の各画素の座標を規定する。ここで、本実施形態においては、ロボット座標系C1におけるカメラ14の位置(換言すれば、手首フランジ30bの位置)は既知である。よって、ロボット座標系C1と、該ロボット座標系C1の任意の位置PSnに配置したカメラ14のカメラ座標系C2との位置関係R1_2_nは、既知となっている。
 したがって、ロボット座標系C1におけるカメラ座標系C2の座標Q(X,Y,Z,W,P,R)は既知であって、ロボット座標系C1の座標と、カメラ座標系C2の座標とは、既知の変換行列M1_2_n(同時変換行列、又はヤコビ行列等)を介して、相互に変換可能となっている。制御装置20は、位置関係R1_2_nを示すデータとして、変換行列M1_2_nの各パラメータ、及びロボット座標系C1におけるカメラ座標系C2の座標等を保有し、メモリ42に記憶している。
 ここで、ロボット12と搬送装置16とを協働させてワークに対する作業を行う場合、ロボット座標系C1に、搬送装置座標系を設定する必要がある。搬送装置座標系は、搬送装置16に対して設定され、搬送面34の位置、及び搬送方向D1を規定する。第1の指標18は、ロボット座標系C1に搬送装置座標系を設定する(換言すれば、ロボット座標系C1と搬送装置座標系との位置関係を既知とする)ために用いられる。
 具体的には、第1の指標18は、平坦な紙材又は板材等から構成され、その表面に模様18aが視認可能に表示されている。模様18aは、例えば、複数の線若しくは曲線からなる図形、又はドットパターンを含む。第1の指標18は、その模様18aによって、第1の指標座標系C3を表すように構成され、搬送装置16によって搬送されるように、該搬送装置16の搬送面34の上に設置される。なお、第1の指標18は、搬送面34に対して移動不能となるように、締結具(ボルト等)又は治具を用いて該搬送面34に固定されてもよい。代替的には、第1の指標18の模様18aは、印刷又は彫刻等によって、搬送面34に直接形成されてもよい。
 次に、図3を参照して、ロボットシステム10においてロボット座標系C1に搬送装置座標系を設定する方法について説明する。図3のフローを開始する前に、オペレータは、第1の指標18を、図1に示すように搬送装置16の搬送面34の上に設置する。このとき、オペレータは、第1の指標18を、ロボット12の動作範囲内に配置してもよい。オペレータは、第1の指標18の設置後、入力装置50を操作して、プロセッサ40に座標系設定指令を与える。プロセッサ40は、座標系設定指令を受け付けたときに、図3に示すフローを開始する。
 ステップS1において、プロセッサ40は、カメラ14によって第1の指標18を撮像する。具体的には、プロセッサ40は、ロボット12を動作させて、カメラ14の視野内に第1の指標18を収めることができる撮像位置PS1に、該カメラ14を移動させる。そして、プロセッサ40は、カメラ14を動作させて、第1の指標18を撮像させる。
 このステップS1でカメラ14が撮像した画像データID1の一例を、図4に示す。画像データID1の各画素は、カメラ座標系C2の座標として表され、該画像データID1には、第1の指標18が写っている。カメラ14は、このように第1の指標18を撮像した画像データID1(第1の画像データ)を取得し、プロセッサ40に供給する。
 ステップS2において、プロセッサ40は、画像データID1に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD1(第1位置データ)を取得する。ここで、画像データID1に写る第1の指標18の模様18aは、該画像データID1の撮像時のカメラ14に設定されているカメラ座標系C2における、第1の指標座標系C3の3次元位置を表すように、構成されている。
 プロセッサ40は、模様18aから第1の指標座標系C3を読み取るための画像解析プログラムPG1(又は、画像解析アプリケーション)を実行して、画像データID1に写る第1の指標18の模様18aを解析し、該第1の指標18によって表される第1の指標座標系C3を、画像データID1内で特定する。そして、プロセッサ40は、特定した第1の指標座標系C3の、カメラ座標系C2における座標Q1(X1,Y1,Z1,W1,P1,R1)を取得する。
 この座標Q1のうち、座標(X1,Y1,Z1)は、図4のカメラ座標系C2における第1の指標座標系C3の原点位置を示し、座標(W1,P1,R1)は、図4のカメラ座標系C2に対する、第1の指標座標系C3の姿勢(つまり、各軸の方向)を示している(いわゆる、ヨー、ピッチ、ロール)。
 このように、座標Q1は、図4のカメラ座標系C2における第1の指標座標系C3の3次元位置、換言すれば、画像データID1の撮像時のカメラ14に対する、第1の指標座標系C3の3次元位置を示す。つまり、本稿において、「位置」とは、位置及び姿勢を表す場合がある。プロセッサ40は、このステップS2において、位置データPD1として、座標Q1を取得する。したがって、プロセッサ40は、位置データPD1(具体的には、座標Q1)を取得する位置データ取得部52(図2)として機能する。
 ステップS3において、プロセッサ40は、搬送装置16によって第1の指標18を搬送する。具体的には、プロセッサ40は、搬送装置16の駆動機構36を動作させて、搬送面34を所定の距離δだけ搬送方向D1へ搬送させる。これにより、図5に示すように、第1の指標18は、画像データID1の撮像時の位置から、搬送方向D1へ距離δだけ搬送される。なお、図5では、理解の容易のために、画像データID1の撮像時の第1の指標18の位置を点線Bにて示すとともに、該第1の指標18によって表される第1の指標座標系C3を併記している。
 ステップS4において、プロセッサ40は、カメラ14によって第1の指標18を撮像する。ここで、本実施形態においては、プロセッサ40は、このステップS4において、上述のステップS1と同じ撮像位置PS1にカメラ14を配置した状態で、該カメラ14によって第1の指標18を撮像する。すなわち、撮像位置PS1は、ステップS3の搬送前後の第1の指標18をカメラ14の視野内に収めることができるように、ロボット座標系C1に定められる。
 このステップS4でカメラ14が撮像した画像データID2の一例を、図6に示す。この画像データID2には、ステップS3の搬送後の第1の指標18が写っている。カメラ14は、搬送後の第1の指標18を撮像した画像データID2(第2の画像データ)を取得し、プロセッサ40に供給する。
 ステップS5において、プロセッサ40は、位置データ取得部52として機能して、画像データID2に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD2(第2位置データ)を取得する。具体的には、プロセッサ40は、上述のステップS2と同様に、画像解析プログラムPG1を実行して、画像データID2に写る第1の指標18によって表される第1の指標座標系C3の、カメラ座標系C2における座標Q2(X2,Y2,Z2,W2,P2,R2)を取得する。この座標Q2は、画像データID2の撮像時のカメラ14に対する、第1の指標座標系C3の3次元位置を示す。こうして、プロセッサ40は、このステップS5において、位置データPD2として座標Q2を取得する。
 ステップS6において、プロセッサ40は、位置データPD1及びPD2に基づいて、搬送方向D1を求める。具体的には、プロセッサ40は、ロボット座標系C1と、撮像位置PS1に配置されたカメラ座標系C2との既知の位置関係R1_2_1(具体的には、変換行列M1_2_1)を用いて、上述のステップS2で位置データPD1として取得したカメラ座標系C2の座標Q1(X1,Y1,Z1,W1,P1,R1)を、ロボット座標系C1の座標Q3(X3,Y3,Z3,W3,P3,R3)に変換する。この座標Q3は、画像データID1の撮像時(つまり、ステップS1の実行時)に第1の指標C1が表す第1の指標座標系C3の、ロボット座標系C1における3次元位置(具体的には、3次元の位置及び姿勢)を示している。
 同様に、プロセッサ40は、位置関係R1_2_1を用いて、上述のステップS5で位置データPD2として取得したカメラ座標系C2の座標Q2(X2,Y2,Z2,W2,P2,R2)を、ロボット座標系C1の座標Q4(X4,Y4,Z4,W4,P4,R4)に変換する。この座標Q4は、画像データID2の撮像時(つまり、ステップS4の実行時)に第1の指標C1が表す第1の指標座標系C3の、ロボット座標系C1における3次元位置を示している。
 そして、プロセッサ40は、座標Q3のうちの座標(X3,Y3,Z3)から、座標Q4のうちの座標(X4,Y4,Z4)へのベクトルVT3_4を演算により求める。このベクトルVT3_4は、座標(X3,Y3,Z3)と座標(X4,Y4,Z4)とを結ぶ軸線A3と一致し、ロボット座標系C1における搬送方向D1のベクトルの位置を示している。
 このベクトルVT3_4(又は、軸線A3)は、ステップS3によって搬送方向D1へ移動した第1の指標座標系C3の原点の、ロボット座標系C1における軌跡を示しており、搬送面34上(又は、該搬送面34から既知の距離だけ上側の位置)に配置されていると見做すことができる。つまり、ベクトルVT3_4(又は、軸線A3)は、ロボット座標系C1における搬送方向D1を示すとともに、ロボット座標系C1における搬送面34の位置を示すデータとなる。
 こうして、プロセッサ40は、位置データPD1及びPD2に基づいて、ロボット座標系C1における搬送方向D1として、ベクトルVT3_4(又は、軸線A3)を取得する。したがって、本実施形態においては、プロセッサ40は、位置データPD1及びPD2に基づいて搬送方向D1を求める搬送方向取得部54(図2)として機能する。
 ステップS7において、プロセッサ40は、ステップS6で求めた搬送方向D1に基づいて、ロボット座標系C1に搬送装置座標系C4(図7)を設定する。具体的には、プロセッサ40は、ステップS6で求めた搬送方向D1(具体的には、ベクトルVT3_4)を、搬送装置座標系C4のy軸プラス方向として定める。
 また、プロセッサ40は、搬送装置座標系C4のz軸方向を、ロボット座標系C1のy-z平面と平行であり、且つ、上述のように定めた搬送装置座標系C4のy軸と直交する方向として定める。そして、プロセッサ40は、搬送装置座標系C4のx軸方向を、搬送装置座標系C4のy軸及びz軸と直交する方向として定める。
 このとき、プロセッサ40は、搬送装置座標系C4のz軸プラス方向及びx軸プラス方向を、ランダムに定めてもよい。代替的には、オペレータは、入力装置50を操作して、z軸プラス方向又はx軸プラス方向の設定情報を予め入力し、プロセッサ40は、該設定情報に従って、搬送装置座標系C4のz軸プラス方向又はx軸プラス方向を定めてもよい。
 この設定情報は、搬送装置座標系C4のz軸プラス方向を、ロボット座標系C1のz軸プラス方向(すなわち、鉛直上方)に近い方向(つまり、両者の内積がより大きくなる方向)として定める情報を含んでもよい。又は、設定情報は、搬送装置座標系C4のx軸プラス方向を、ロボット座標系C1とは反対の方向として定める情報を含んでもよい。
 また、プロセッサ40は、ロボット座標系C1に、搬送装置座標系C4の原点を定める。一例として、プロセッサ40は、上述の座標Q3(X1,Y1,Z1)、又は座標Q4(X4,Y4,Z4)を、搬送装置座標系C4の原点として定める。他の例として、プロセッサ40は、上述のステップS6で軸線A3を取得した場合において、搬送装置座標系C4の原点を、軸線A3上の所定の位置(例えば、搬送面34の上流端若しくは下流端、又は、ロボット12の動作範囲の中心、上流端若しくは下流端)として定めてもよい。
 なお、上述の座標Q3は、ステップS3の搬送前の、ロボット座標系C1における第1の指標座標系C3の位置及び姿勢(各軸の方向)を示している。プロセッサ40は、このステップS7において、座標Q3のうち、姿勢を示す座標(W3,P3,R3)を、搬送前の第1の指標座標系C3のy軸プラス方向が搬送方向D1(ベクトルVT3_4)に一致するように補正することで、新たな姿勢の座標(W3c,P3c,R3c)を求めてもよい。そして、プロセッサ40は、該新たな姿勢の座標(W3c,P3c,R3c)を、搬送装置座標系C4の各軸の方向として定めてもよい。
 同様に、プロセッサ40は、ステップS3の搬送後の、ロボット座標系C1における第1の指標座標系C3の位置及び姿勢を示す座標Q4のうち、姿勢を示す座標(W4,P4,R4)を補正することで、新たな姿勢の座標(W4c,P4c,R4c)を求めてもよい。そして、プロセッサ40は、新たな姿勢の座標(W4c,P4c,R4c)を、搬送装置座標系C4の各軸の方向として定めてもよい。
 こうして、図7に示すように、ロボット座標系C1に搬送装置座標系C4が設定されることになる。搬送装置座標系C4は、ロボット座標系C1に対して固定され、そのy軸プラス方向は、ロボット座標系C1における搬送方向D1を高精度に示すものとなる。そして、搬送装置座標系C4のx-y平面(又は、原点)は、ロボット座標系C1における搬送面34の位置を示す。このように、本実施形態においては、プロセッサ40は、搬送方向D1に基づいて、ロボット座標系C1に搬送装置座標系C4を設定する座標系設定部56(図2)として機能する。
 以上のように、プロセッサ40は、位置データ取得部52、搬送方向取得部54、及び座標系設定部56として機能し、カメラ14が第1の指標18を撮像した画像データID1及びID2に基づいて、ロボット座標系C1に搬送装置座標系C4を設定している。したがって、カメラ14、第1の指標18、位置データ取得部52、搬送方向取得部54、及び座標系設定部56は、ロボット座標系C1に搬送装置座標系C4を設定する装置60(図2)を構成する。
 この装置60においては、第1の指標座標系C3を表す第1の指標18は、搬送装置16によって搬送されるように、該搬送装置16(具体的には、搬送面34)に設置される。また、カメラは、第1の指標18を撮像した第1の画像データID1(図4)と、該第1の画像データID1の撮像後に、ステップS3で搬送装置16によって搬送された第1の指標18を撮像した第2の画像データID2(図6)とを取得する(ステップS1、S4)。
 また、位置データ取得部52は、第1の画像データID1に写る第1の指標18が表す第1の指標座標系C4の、カメラ14(具体的には、カメラ座標系C2)に対する3次元位置を示す第1位置データPD1(具体的には、座標Q1)を取得する(ステップS2)。次いで、位置データ取得部52は、第2の画像データID2に写る第1の指標18が表す第1の指標座標系C3の、カメラ14(カメラ座標系C2)に対する3次元位置を示す第2位置データPD2(具体的には、座標Q2)を取得する(ステップS5)。
 そして、搬送方向取得部54は、第1位置データPD1及び第2位置データPD2に基づいて、ロボット座標系C1における搬送方向D1(具体的には、ベクトルVT3_4、又は軸線A3)を求める(ステップS6)。座標系設定部56は、搬送方向取得部54が求めた搬送方向D1に基づいて、ロボット座標系C1に搬送装置座標系C4を設定する(ステップS7)。
 この構成によれば、ロボット12の手先(手首フランジ30b又はエンドエフェクタ)を搬送装置16にタッチアップしたり、又は、搬送装置16に設けた複数のマークをカメラ14で撮像するビジュアルタッチアップを行ったりすることなく、搬送装置16によって搬送される第1の指標18をカメラ14で撮像することで、ロボット座標系C1に搬送装置座標系C4を設定できる。これにより、ロボット座標系C1に対する搬送装置座標系C4の設定(つまり、キャリブレーション)を、より容易に行うことができる。
 また、装置60においては、第1の指標18は、画像データIDを撮像したカメラ14に設定されるカメラ座標系C2における、第1の指標座標系C3の3次元位置を表す模様18aを含む。この構成によれば、画像データIDに写る第1の指標18の模様18aによって、第1の指標座標系C3をカメラ座標系C2に、より効果的に表すことができる。
 なお、本実施形態においては、ステップS4において、ステップS1と同じ撮像位置PS1にカメラ14を配置した状態で第1の指標18を撮像する場合について述べた。しかしながら、これに限らず、ステップS4において、プロセッサ40は、カメラ14を撮像位置PS1から撮像位置PS2へ移動させ、該撮像位置PS2で第1の指標18を撮像した画像データID2’を取得してもよい。
 この場合、プロセッサ40は、ステップS5で位置データ取得部52として機能し、画像データID2’において特定した第1の指標座標系C3のカメラ座標系C2における座標Q2’(X2’,Y2’,Z2’,W2’,P2’,R2’)を取得する。そして、プロセッサ40は、ステップS7において、ロボット座標系C1と、撮像位置PS2に配置されたカメラ14のカメラ座標系C2との既知の位置関係R1_2_2(具体的には、変換行列M1_2_2)を用いて、座標Q2’を、ロボット座標系C1の座標Q4(X4,Y4,Z4,W4,P4,R4)に変換する。
 次に、図8及び図9を参照して、他の実施形態に係るロボットシステム70について説明する。ロボットシステム70は、上述のロボットシステム10と、端末装置72、及び第2の指標74をさらに備える点で相違する。端末装置72は、例えば、スマートフォン、タブレット型端末装置、又はノートPC等の携帯型コンピュータであって、オペレータが手で持ち運び可能である。
 具体的には、図9に示すように、端末装置72は、プロセッサ80、メモリ82、I/Oインターフェース84、表示装置86、入力装置88、及びカメラ14を有する。表示装置86及び入力装置88は、図8に示すように、端末装置72の表面に一体に設けられている一方、カメラ14は、図10に示すように、端末装置72の裏面に一体に設けられている。カメラ14には、上述の実施形態と同様に、カメラ座標系C2が設定される。
 プロセッサ80は、メモリ82、I/Oインターフェース84、表示装置86、入力装置88、及びカメラ14と、バス90を介して通信可能に接続され、これらコンポーネントと通信しつつ、後述する搬送装置座標系を設定する機能を実現するための演算処理を行う。I/Oインターフェース84は、制御装置20のI/Oインターフェース44と、有線又は無線で通信可能に接続されている。
 なお、プロセッサ80、メモリ82、I/Oインターフェース84、表示装置86、及び入力装置88の構成は、それぞれ、上述のプロセッサ40、メモリ42、I/Oインターフェース44、表示装置48、及び入力装置50と同様であるので、重複する説明を省略する。
 第2の指標74は、第1の指標18とともに、ロボット座標系C1に搬送装置座標系C4を設定するために用いられる。具体的には、第2の指標74は、図8に示すように、上述の第1の指標18と同様に、平坦な紙材又は板材等から構成され、その表面に模様74aが視認可能に表示されている。
 模様74aは、例えば、複数の線若しくは曲線からなる図形、又はドットパターンを含む。第2の指標74は、ロボット12(例えば、ロボットベース22)に対して固定され、その模様74aによって、第2の指標座標系C5を表すように構成されている。ここで、第2の指標74は、その模様74aが表す第2の指標座標系C5とロボット座標系C1との位置関係R1_5が既知となるように、ロボット12に対して位置決めされる。
 したがって、ロボット座標系C1の座標と、第2の指標座標系C5の座標とは、既知の変換行列M1_5(同時変換行列、又はヤコビ行列等)を介して、相互に変換可能となっている。本実施形態においては、制御装置20は、位置関係R1_5を示すデータとして、変換行列M1_5の各パラメータ、及びロボット座標系C1における第2の指標座標系C5の座標等を保有し、メモリ42に記憶している。なお、図8では、理解の容易のために、ロボット座標系C1を点線表示している。
 次に、図11を参照して、ロボットシステム70においてロボット座標系C1に搬送装置座標系C4を設定する方法について説明する。上述の実施形態と同様に、オペレータは、図11のフローを開始する前に、第1の指標18を搬送装置16の搬送面34の上に設置する。
 ステップS11において、端末装置72のプロセッサ80は、カメラ14によって第1の指標18及び第2の指標74を撮像する。具体的には、オペレータは、端末装置72のカメラ14の視野内に第1の指標と第2の指標74とを収めることができる撮像位置PS3に該端末装置72を配置する。このとき、プロセッサ80は、カメラ14が連続的に撮像した画像データIDを端末装置72の表示装置86にリアルタイムで表示(いわゆる、ライブビュー表示)してもよい。
 そして、オペレータは、撮像位置PS3に配置した端末装置72の入力装置88を操作して、プロセッサ80に撮像指令を与える。該撮像指令に応じて、プロセッサ80は、カメラ14を動作させて、第1の指標と第2の指標74とを撮像する。このステップS11でカメラ14が撮像した画像データID3の一例を、図12に示す。
 カメラ14は、このように第1の指標18と第2の指標とを撮像した画像データID3(第1の画像データ)を取得し、プロセッサ80に供給する。なお、画像データID3を撮像するとき、オペレータは、手で端末装置72を保持してもよいし、又は、端末装置72を、固定具(三脚、スタンド等)を用いて定点に固定してもよい。
 ステップS12において、プロセッサ80は、位置データ取得部52(図9)として機能し、画像データID3に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD3(第1位置データ)を取得する。具体的には、プロセッサ80は、上述の画像解析プログラムPG1を実行して、画像データID3に写る第1の指標18の模様18aを解析し、該第1の指標18によって表される第1の指標座標系C3を、画像データID3内で特定する。画像解析プログラムPG1は、メモリ82に予め格納されてもよい。
 そして、プロセッサ80は、特定した第1の指標座標系C3の、カメラ座標系C2における座標Q5(X5,Y5,Z5,W5,P5,R5)を取得する。この座標Q5は、画像データID3の撮像時のカメラ14に対する、第1の指標座標系C3の3次元位置を示す。プロセッサ80は、このステップS12において、位置データPD3として、座標Q5を取得する。
 また、プロセッサ80は、位置データ取得部52として機能し、画像データID3に写る第2の指標74が表す第2の指標座標系C5の、カメラ14に対する3次元位置を示す位置データPD4(第3位置データ)を取得する。具体的には、プロセッサ80は、画像解析プログラムPG1を実行して、画像データID3に写る第2の指標74の模様74aを解析し、該第2の指標74によって表される第2の指標座標系C5を、画像データID3内で特定する。
 そして、プロセッサ80は、特定した第2の指標座標系C5の、カメラ座標系C2における座標Q6(X6,Y6,Z6,W6,P6,R6)を取得する。この座標Q6は、画像データID3の撮像時のカメラ14に対する、第2の指標座標系C5の3次元位置を示す。プロセッサ80は、このステップS12において、位置データPD4として、座標Q6を取得する。こうして、プロセッサ80は、このステップS12において、第1の指標座標系C3の位置データPD3とともに、第2の指標座標系C5の位置データPD4を取得する。
 ステップS12を完了したとき、プロセッサ80は、完了信号SG1を制御装置20へ送信する。制御装置20のプロセッサ40は、完了信号SG1に応じて、ステップS13を実行する。具体的には、ステップS13において、プロセッサ40は、上述のステップS3と同様に、搬送装置16を動作させて、第1の指標18を搬送方向D1へ距離δだけ搬送する。
 なお、プロセッサ40は、完了信号SG1を受け付けたときに、搬送装置16によって第1の指標18を搬送すべき旨を報知する報知信号NS1を生成し、表示装置48(又は、制御装置20に設けられたスピーカ)に出力してもよい。そして、オペレータは、該報知信号NS1を認識したときに、ステップS13を実行し、搬送装置16を手動で動作させて、第1の指標18を搬送してもよい。このステップS13を完了した状態を、図13に示す。なお、図13では、理解の容易のために、画像データID3の撮像時の第1の指標18の位置を点線Bにて示すとともに、該第1の指標18によって表される第1の指標座標系C3を併記している。
 ステップS13の完了後、プロセッサ40は、完了信号SG2を端末装置72へ送信する。該完了信号SG2を受け付けると、端末装置72のプロセッサ80は、ステップS14を実行する。このとき、プロセッサ80は、カメラ14によって第1の指標18及び第2の指標74を再度撮像すべき旨を報知する報知信号NS2を生成し、表示装置86(又は、端末装置72に設けられたスピーカ)に出力してもよい。
 ステップS14において、端末装置72のプロセッサ80は、カメラ14によって第1の指標18及び第2の指標74を撮像する。具体的には、オペレータは、表示装置86(又は端末装置72のスピーカ)に出力された報知信号NS2を認識すると、カメラ14の視野内に第1の指標と第2の指標74とを収めることができる撮像位置PS4に、端末装置72を配置する。この撮像位置PS4は、上述のステップS11の撮像位置PS3とは異なってもよいし、又は同じでもよい。また、プロセッサ80は、このときに、上述のライブビュー表示を実行してもよい。
 そして、オペレータは、端末装置72の入力装置88を操作してカメラ14を動作させ、第1の指標と第2の指標74とを撮像する。このステップS14でカメラ14が撮像した画像データID4の一例を、図14に示す。この画像データID4には、ステップS13の搬送後の第1の指標18とともに、第2の指標74が写っている。カメラ14は、搬送された第1の指標18と、第2の指標74とを撮像した画像データID4(第2の画像データ)を取得し、プロセッサ80に供給する。
 なお、ステップS11及びS14で端末装置72を固定具によって同じ撮像位置PS3=PS4に定点固定している場合、プロセッサ80は、上述の完了信号SG2を受け付けたときにステップS14を自動で実行し、カメラ14によって画像データID4を自動撮像してもよい。
 ステップS15において、プロセッサ80は、位置データ取得部52(図9)として機能し、上述のステップS12と同様に、画像データID4に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD5(第2位置データ)を取得する。
 具体的には、プロセッサ80は、画像解析プログラムPG1を実行して、画像データID4に写る第1の指標18によって表される第1の指標座標系C3の、カメラ座標系C2における座標Q7(X7,Y7,Z7,W7,P7,R7)を取得する。この座標Q7は、画像データID4の撮像時のカメラ14に対する、第1の指標座標系C3の3次元位置を示す。こうして、プロセッサ80は、位置データPD5として、座標Q7を取得する。
 また、プロセッサ80は、位置データ取得部52として機能し、画像データID4に写る第2の指標74が表す第2の指標座標系C5の、カメラ14に対する3次元位置を示す位置データPD6(第4位置データ)を取得する。具体的には、プロセッサ80は、画像解析プログラムPG1を実行して、画像データID4に写る第2の指標74によって表される第2の指標座標系C5の、カメラ座標系C2における座標Q8(X8,Y8,Z8,W8,P8,R8)を取得する。
 この座標Q8は、画像データID4の撮像時のカメラ14に対する、第2の指標座標系C5の3次元位置を示す。プロセッサ80は、位置データPD6として、座標Q8を取得する。こうして、プロセッサ80は、このステップS15において、第1の指標座標系C3の位置データPD5とともに、第2の指標座標系C5の位置データPD6を取得する。
 ステップS16において、プロセッサ80は、搬送方向取得部54(図9)として機能し、位置データPD3、PD4、PD5及びPD6に基づいて、搬送方向D1を求める。具体的には、プロセッサ80は、上述のステップS12で取得した第1の指標座標系C3の位置データPD3(つまり、カメラ座標系C2の座標Q5)と、第2の指標座標系C5の位置データPD4(つまり、カメラ座標系C2の座標Q6)とに基づいて、画像データID3(図12)のカメラ座標系C2に表される第1の指標座標系C3及び第2の指標座標系C5の位置関係R3_5_1(第1位置関係)を求める。
 ここで、画像データID3のカメラ座標系C2によって規定される3次元空間内での、第1の指標座標系C3と第2の指標座標系C5との位置関係R3_5_1は、位置データPD3及びPD4から既知である。プロセッサ80は、位置データPD3及びPD4から、位置関係R3_5_1のデータとして、図12に示す第2の指標座標系C5における第1の指標座標系C3の座標Q9(X9,Y9,Z9,W9,P9,R9)を取得する。
 同様に、プロセッサ80は、上述のステップS15で取得した第1の指標座標系C3の位置データPD5(つまり、カメラ座標系C2の座標Q7)と、第2の指標座標系C5の位置データPD6(つまり、カメラ座標系C2の座標Q8)とに基づいて、画像データID4(図14)のカメラ座標系C2に表される第1の指標座標系C3及び第2の指標座標系C5の位置関係R3_5_2(第2位置関係)を求める。具体的には、プロセッサ80は、位置データPD5及びPD6から、位置関係R3_5_2のデータとして、図14に示す第2の指標座標系C5における第1の指標座標系C3の座標Q10(X10,Y10,Z10,W10,P10,R10)を取得する。
 そして、プロセッサ80は、座標Q9のうちの座標(X9,Y9,Z9)から、座標Q10のうちの座標(X10,Y10,Z10)へのベクトルVT9_10を、演算により求める。このベクトルVT9_10は、座標(X9,Y9,Z9)と座標(X10,Y10,Z10)とを結ぶ軸線A3と一致し、第2の指標座標系C5における搬送方向D1のベクトル(換言すれば、軸線A3)の位置を示している。
 このベクトルVT9_10(又は、軸線A3)は、第2の指標座標系C5の座標(又は関数)として表され、ステップS13によって搬送方向D1へ移動した第1の指標座標系C3の原点の、第2の指標座標系C5における軌跡を示し、搬送面34上に配置されていると見做すことができる。こうして、プロセッサ80は、搬送方向D1として、第2の指標座標系C5におけるベクトルVT9_10(又は、軸線A3)を取得する。
 ステップS16の完了後、プロセッサ80は、ステップS15で取得した搬送方向D1のデータ(具体的には、第2の指標座標系C5におけるベクトルVT9_10又は軸線A3の座標又は関数のデータ)を、制御装置20へ供給する。制御装置20のプロセッサ40は、搬送方向D1のデータを受け付けると、ステップS17を実行する。
 ステップS17において、プロセッサ40は、座標系設定部56(図9)として機能し、ステップS16で求めた搬送方向D1に基づいて、ロボット座標系C1に搬送装置座標系C4(図15)を設定する。具体的には、プロセッサ40は、第2の指標座標系C5とロボット座標系C1との既知の位置関係R1_5(具体的には、変換行列M1_5)を用いて、ステップS16で第2の指標座標系C5の座標(又は関数)として求めた搬送方向D1(例えば、ベクトルVT9_10)を、ロボット座標系C1に変換する。
 そして、プロセッサ40は、上述のステップS7と同様に、ロボット座標系C1に変換した搬送方向D1(ベクトルVT9_10)を、搬送装置座標系C4のy軸プラス方向として定める。その後、プロセッサ40は、上述のステップS7と同様に、搬送装置座標系C4のx軸プラス方向及びz軸プラス方向をそれぞれ定める。
 また、プロセッサ40は、ロボット座標系C1に、搬送装置座標系C4の原点を定める。一例として、プロセッサ40は、上述の座標Q9(X9,Y9,Z9)を、ロボット座標系C1の座標C9’(X9’,Y9’,Z9’)に変換し、該座標C9’を搬送装置座標系C4の原点として定める。他の例として、プロセッサ40は、上述の座標Q10(X10,Y10,Z10)を、ロボット座標系C1の座標C10’(X10’,Y10’,Z10’)に変換し、該座標C10’を搬送装置座標系C4の原点として定めてもよい。
 さらに他の例として、プロセッサ40は、上述のステップS16で第2の指標座標系C5の座標(又は関数)として求めた軸線A3をロボット座標系C1に変換し、搬送装置座標系C4の原点を、ロボット座標系C1における軸線A3上の所定の位置として定めてもよい。こうして、図15に示すように、ロボット座標系C1に搬送装置座標系C4が設定されることになる。
 以上のように、本実施形態においては、端末装置72のプロセッサ80は、位置データ取得部52、及び搬送方向取得部54として機能する一方、制御装置20のプロセッサ40は座標系設定部56として機能している。そして、プロセッサ40及び80は、互いに協働して、カメラ14が第1の指標18及び第2の指標74を撮像した画像データID3及びID4に基づいて、ロボット座標系C1に搬送装置座標系C4を設定している。したがって、カメラ14、第1の指標18、位置データ取得部52、搬送方向取得部54、座標系設定部56、及び第2の指標74は、ロボット座標系C1に搬送装置座標系C4を設定する装置100(図9)を構成する。
 この装置100においては、第2の指標座標系C5を表す第2の指標74は、ロボット座標系C1の既知の位置に設置され、カメラ14は、第1の指標18と第2の指標74とを撮像した第1の画像データID3と、ステップS13で搬送された第1の指標18と第2の指標74とを撮像した第2の画像データID4とを取得する(ステップS11、S14)。
 また、位置データ取得部52(プロセッサ80)は、第1の画像データID3に写る第2の指標74が表す第2の指標座標系C5の、カメラ14(カメラ座標系C2)に対する3次元位置を示す第3位置データPD4(具体的には、座標Q6)を取得する(ステップS12)。次いで、位置データ取得部52は、第2の画像データID4に写る第2の指標74が表す第2の指標座標系C5の、カメラ14に対する3次元位置を示す第4位置データPD6(具体的には、座標Q8)を取得する。
 そして、搬送方向取得部(プロセッサ80)は、第1位置データPD3(座標Q5)、第2位置データPD5(座標Q7)、第3位置データPD4(座標Q6)、及び第4位置データPD6(座標Q8)に基づいて、ロボット座標系C1における搬送方向D1を求めている(ステップS16)。
 この構成によれば、カメラ14によって第1の指標18と第2の指標74とを撮像するだけで、ロボット座標系C1に搬送装置座標系C4を設定できる。したがって、ロボット座標系C1に対する搬送装置座標系C4の設定(つまり、キャリブレーション)を、容易に行うことができる。
 また、装置100においては、搬送方向取得部54は、第1位置データPD3及び第3位置データPD4に基づいて、第1の画像データID3(図12)における第1の指標座標系C3と第2の指標座標系C5との第1位置関係R3_5_1(具体的には、座標Q9)を求めている(ステップS16)。
 また、搬送方向取得部54は、第2位置データPD5及び第4位置データPD6に基づいて、第2の画像データID4(図14)における第1の指標座標系C3と第2の指標座標系C5との第2位置関係R3_5_2(具体的には、座標Q10)を求めている(ステップS16)。
 そして、搬送方向取得部54は、第1位置関係R3_5_1及び第2位置関係R3_5_2に基づいて、搬送方向D1を求めている(ステップS16)。この構成によれば、搬送方向D1を、既存のアルゴリズム(具体的には、画像解析プログラムPG1等)を用いて、迅速且つ高精度に求めることが可能となる。
 また、装置100においては、第2の指標74は、画像データID3、ID4を撮像したカメラ14に設定されるカメラ座標系C2における、第2の指標座標系C5の3次元位置を表す模様74aを含む。この構成によれば、画像データID3、ID4に写る第2の指標74の模様74aによって、第2の指標座標系C5をカメラ座標系C2に、より効果的に表すことができる。
 次に、図16及び図17を参照して、さらに他の実施形態に係るロボットシステム110について説明する。ロボットシステム110は、上述のロボットシステム70と、センサ112をさらに備える点で相違する。センサ112は、カメラ14の変位Δを検出する。
 より具体的には、センサ112は、ジャイロセンサ、及び加速度センサの少なくとも1つを有し、カメラ14に対して固定されるように、端末装置72に設けられる。本実施形態においては、センサ112は、端末装置72のI/Oインターフェース84に通信可能に接続され、カメラ14(換言すれば、端末装置72)の位置の変位Δ(より具体的には、位置及び姿勢の変位量及び変位方向)を検出し、プロセッサ80に供給する。
 次に、図18を参照して、ロボットシステム110においてロボット座標系C1に搬送装置座標系C4を設定する方法について説明する。上述の実施形態と同様に、オペレータは、図18のフローを開始する前に、第1の指標18を搬送装置16の搬送面34の上に設置する。
 ステップS21において、端末装置72のプロセッサ80は、センサ112によるカメラ14の変位Δの検出を開始する。具体的には、プロセッサ80は、センサ112を動作させて、カメラ14(又は、端末装置72)の位置の変位Δを連続的(例えば、周期的)に検出させる。プロセッサ80は、センサ112から変位Δの検出データを順次取得し、メモリ42に記憶する。
 ステップS22において、プロセッサ80は、カメラ14によって第1の指標18を撮像する。具体的には、オペレータは、端末装置72のカメラ14の視野内に第1の指標18を収めることができる撮像位置PS5に、該端末装置72を配置する。このとき、プロセッサ80は、上述のライブビュー表示を実行してもよい。
 そして、オペレータは、端末装置72の入力装置88を操作してカメラ14を動作させ、第1の指標18を撮像する。このステップS22でカメラ14が撮像した画像データID5の一例を、図19に示す。カメラ14は、このように第1の指標18を撮像した画像データID5(第1の画像データ)を取得し、プロセッサ80に供給する。
 ステップS23において、プロセッサ80は、位置データ取得部52(図17)として機能し、画像データID5に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD7(第1位置データ)を取得する。具体的には、プロセッサ80は、上述の実施形態と同様に、画像解析プログラムPG1を実行することで、位置データPD7として、図19のカメラ座標系C2における第1の指標座標系C3の座標Q11(X11,Y11,Z11,W11,P11,R11)を取得する。ステップS23を完了したとき、プロセッサ80は、完了信号SG1を制御装置20へ送信する。
 制御装置20のプロセッサ40は、完了信号SG1に応じて、ステップS24を実行する。具体的には、ステップS24において、プロセッサ40は、上述のステップS13と同様に、搬送装置16を動作させて、第1の指標18を搬送方向D1へ距離δだけ搬送する。このステップS24を完了した状態を、図20に示す。なお、図20では、理解の容易のために、画像データID5の撮像時の第1の指標18の位置を点線Bにて示すとともに、該第1の指標18によって表される第1の指標座標系C3を併記している。
 ステップS24の完了後、プロセッサ40は、完了信号SG2を端末装置72へ送信する。該完了信号SG2を受け付けると、端末装置72のプロセッサ80は、ステップS25を実行する。このとき、プロセッサ80は、上述の実施形態と同様に、カメラ14によって第1の指標18を再度撮像すべき旨を報知する報知信号NS3を出力してもよい。
 ステップS25において、端末装置72のプロセッサ80は、カメラ14によって第1の指標18を撮像する。具体的には、オペレータは、表示装置86(又は端末装置72のスピーカ)に出力された報知信号NS3を認識すると、カメラ14の視野内に第1の指標18を収めることができる撮像位置PS6に端末装置72を配置する。この撮像位置PS6は、上述のステップS22の撮像位置PS5と異なってもよいし、又は同じでもよい。また、プロセッサ80は、このときに、上述のライブビュー表示を実行してもよい。
 そして、オペレータは、端末装置72の入力装置88を操作してカメラ14を動作させ、第1の指標18を撮像する。このステップS25でカメラ14が撮像した画像データID6の一例を、図21に示す。カメラ14は、搬送された第1の指標18を撮像した画像データID6(第2の画像データ)を取得し、プロセッサ80に供給する。
 ステップS26において、プロセッサ80は、位置データ取得部52(図17)として機能し、画像データID6に写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD8(第2位置データ)を取得する。具体的には、プロセッサ80は、上述のステップS23と同様に、画像解析プログラムPG1を実行することで、位置データPD8として、図21のカメラ座標系C2における第1の指標座標系C3の座標Q12(X12,Y12,Z12,W12,P12,R12)を取得する。
 ステップS27において、プロセッサ80は、カメラ14によって第2の指標74を撮像する。具体的には、オペレータは、端末装置72のカメラ14の視野内に第2の指標74を収めることができる撮像位置PS7に、該端末装置72を配置する。この撮像位置PS7は、上述の撮像位置PS5及びPS6とは異なる。このとき、プロセッサ80は、上述のライブビュー表示を実行してもよい。
 そして、オペレータは、端末装置72の入力装置88を操作してカメラ14を動作させ、第2の指標74を撮像する。このステップS27でカメラ14が撮像した画像データID7の一例を、図22に示す。カメラ14は、第2の指標74を撮像した画像データID7(第3の画像データ)を取得し、プロセッサ80に供給する。このように、本実施形態においては、オペレータは、ステップS22及びS25と、ステップS27とにおいて、第1の指標18と第2の指標74とを、別々に撮像する。
 ステップS28において、プロセッサ80は、位置データ取得部52(図17)として機能し、画像データID7に写る第2の指標74が表す第2の指標座標系C5の、カメラ14に対する3次元位置を示す位置データPD9(第3位置データ)を取得する。具体的には、プロセッサ80は、上述の実施形態と同様に、画像解析プログラムPG1を実行することで、位置データPD9として、図22のカメラ座標系C2における第2の指標座標系C5の座標Q13(X13,Y13,Z13,W13,P13,R13)を取得する。
 ステップS29において、プロセッサ80は、位置データPD7、PD8及びPD9と、センサ112が検出した変位Δとに基づいて、搬送方向D1を求める。ここで、センサ112は、ステップS21の開始後、ステップS22の画像データID5、ステップS25の画像データID6、及び、ステップS27の画像データID7を撮像する間、カメラ14(端末装置72)の変位Δを継続して検出している。
 したがって、プロセッサ80は、センサ112の検出データから、ステップS22で画像データID5を撮像した撮像位置PS5から、ステップS25で画像データID6を撮像した撮像位置PS6までの変位Δ5_6と、該撮像位置PS6から、ステップS27で画像データID7を撮像した撮像位置PS7までの変位Δ6_7とを求めることができる。
 プロセッサ80は、変位Δ5_6及びΔ6_7と、ステップS23で取得した位置データPD7(座標Q11)と、ステップS27で取得した位置データPD9(座標Q13)とから、ステップS24の搬送前の第1の指標座標系C3と第2の指標座標系C5との位置関係R3_5_3を求めることができる。具体的には、プロセッサ80は、位置関係R3_5_3のデータとして、搬送前の第1の指標座標系C3の、第2の指標座標系C5における座標Q14(X14,Y14,Z14,W14,P14,R14)を取得する。
 また、プロセッサ80は、変位Δ6_7と、ステップS26で取得した位置データPD8(座標Q12)と、ステップS27で取得した位置データPD9(座標Q13)とから、ステップS24の搬送後の第1の指標座標系C3と第2の指標座標系C5との位置関係R3_5_4を求めることができる。具体的には、プロセッサ80は、位置関係R3_5_4のデータとして、搬送後の第1の指標座標系C3の、第2の指標座標系C5における座標Q15(X15,Y15,Z15,W15,P15,R15)を取得する。
 そして、プロセッサ80は、座標Q14のうちの座標(X14,Y14,Z14)から、座標Q15のうちの座標(X15,Y15,Z15)へのベクトルVT14_15を、演算により求める。このベクトルVT14_15は、座標(X14,Y14,Z14)と座標(X15,Y15,Z15)とを結ぶ軸線A3と一致し、第2の指標座標系C5における搬送方向D1のベクトル(換言すれば、軸線A3)の位置を示している。
 このベクトルVT14_15(又は、軸線A3)は、第2の指標座標系C5の座標(又は関数)として表され、ステップS24によって搬送方向D1へ移動した第1の指標座標系C3の原点の、第2の指標座標系C5における軌跡を示し、搬送面34上に配置されていると見做すことができる。こうして、プロセッサ80は、搬送方向D1として、第2の指標座標系C5におけるベクトルVT14_15(又は、軸線A3)を取得する。
 ステップS29の完了後、プロセッサ80は、上述の実施形態と同様に、ステップS29で取得した搬送方向D1のデータ(具体的には、第2の指標座標系C5におけるベクトルVT14_15又は軸線A3の座標又は関数のデータ)を、制御装置20へ供給する。制御装置20のプロセッサ40は、搬送方向D1のデータを受け付けると、ステップS30を実行する。
 ステップS30において、プロセッサ40は、座標系設定部56(図17)として機能し、ステップS29で求めた搬送方向D1に基づいて、ロボット座標系C1に搬送装置座標系C4(図23)を設定する。具体的には、プロセッサ40は、上述のステップS17と同様に、第2の指標座標系C5とロボット座標系C1との既知の位置関係R1_5を用いて、ステップS29で第2の指標座標系C5の座標(又は関数)として求めた搬送方向D1(例えば、ベクトルVT14_15)を、ロボット座標系C1に変換する。
 そして、プロセッサ40は、上述の実施形態と同様に、ロボット座標系C1に変換した搬送方向D1(ベクトルVT14_15)を、搬送装置座標系C4のy軸プラス方向として定めるとともに、搬送装置座標系C4のx軸プラス方向及びz軸プラス方向をそれぞれ定める。
 また、プロセッサ40は、ロボット座標系C1に、搬送装置座標系C4の原点を定める。一例として、プロセッサ40は、上述の座標Q14(X14,Y14,Z14)を、ロボット座標系C1の座標C14’(X14’,Y14’,Z14’)に変換し、該座標C14’を搬送装置座標系C4の原点として定める。他の例として、プロセッサ40は、上述の座標Q15(X15,Y15,Z15)を、ロボット座標系C1の座標C15’(X15’,Y15’,Z15’)に変換し、該座標C15’を搬送装置座標系C4の原点として定めてもよい。
 さらに他の例として、プロセッサ40は、上述のステップS29で第2の指標座標系C5の座標(又は関数)として求めた軸線A3をロボット座標系C1に変換し、搬送装置座標系C4の原点を、ロボット座標系C1における軸線A3上の所定の位置として定めてもよい。こうして、図23に示すように、ロボット座標系C1に搬送装置座標系C4が設定されることになる。
 以上のように、本実施形態においては、プロセッサ40及び80は、互いに協働して、位置データ取得部52、搬送方向取得部54、座標系設定部56として機能し、カメラ14が第1の指標18及び第2の指標74を撮像した画像データID5、ID6及びID7と、センサ112が検出した変位Δとに基づいて、ロボット座標系C1に搬送装置座標系C4を設定している。したがって、カメラ14、第1の指標18、位置データ取得部52、搬送方向取得部54、座標系設定部56、第2の指標74、及びセンサ112は、ロボット座標系C1に搬送装置座標系C4を設定する装置120(図17)を構成する。
 この装置120においては、カメラ14は、第1の指標18を撮像した第1の画像データID5(ステップS22)及び第2の画像データID6(ステップS25)とともに、第2の指標74を撮像した第3の画像データID3を取得する(ステップS27)。また、位置データ取得部52(プロセッサ80)は、第3の画像データID3に写る第2の指標74が表す第2の指標座標系C5の、カメラ14(カメラ座標系C2)に対する3次元位置を示す第3位置データPD9を取得する(ステップS28)。
 また、センサ112は、第1の画像データID5、第2の画像データID6、及び第3の画像データID7を撮像する間のカメラ14の変位Δ5_6及びΔ6_7を検出する。そして、搬送方向取得部54は、第1位置データPD7、第2位置データPD8、第3位置データPD9、及び変位Δ5_6及びΔ6_7に基づいて、搬送方向D1を求める(ステップS29)。
 ここで、作業セルのスペースの制約上、図12及び図14に示すように、カメラ14によって第1の指標と第2の指標74とを同時に撮像できない場合がある。本実施形態によれば、図19、図21及び図22に示すように、第1の指標と第2の指標74とを別々に撮像したとしても、搬送方向D1を求めることができる。したがって、作業セルのスペースに余裕がない場合でも、ロボット座標系C1に搬送装置座標系C4を効果的に設定できる。
 なお、上述した図3、図11又は図18に示すフローにおいては、プロセッサ40又は80が、搬送装置16によって第1の指標18を1回だけ搬送する前後にカメラ14によって第1の指標18を撮像し、搬送方向D1を求める場合について述べた。しかしながら、これに限らず、プロセッサ40又は80は、搬送装置16によって第1の指標18を複数回に亘って搬送し、その搬送前後にカメラ14によって第1の指標18を撮像して、搬送方向D1を複数回に亘って求めてもよい。
 以下、図24を参照して、このような形態について説明する。図24のフローは、上述のロボットシステム10においてロボット座標系C1に搬送装置座標系C4を設定する他の方法のフローを示す。ステップS31において、プロセッサ40は、後述するステップS32で第1の指標18を撮像する回数を示す数「n」を「1」にセットする(n=1)。
 ステップS32において、プロセッサ40は、カメラ14によって第1の指標18を撮像する。具体的には、プロセッサ40は、ロボット12を動作させて、カメラ14の視野内に第1の指標18を収めることができる撮像位置PSnに、該カメラ14を配置する。そして、プロセッサ40は、カメラ14を動作させて第1の指標18を撮像させ、これにより、例えば図4又は図6に示すような画像データIDnを取得する。仮に、このステップS32の開始時点で数「n」がn=1にセットされている場合、プロセッサ40は、撮像位置PS1に配置したカメラ14によって、画像データID1を撮像する。
 ステップS33において、プロセッサ40は、上述のステップS2又はS5と同様に、位置データ取得部52(図2)として機能して、画像データIDnに写る第1の指標18が表す第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPDn(具体的には、カメラ座標系C2の座標Qn)を取得する。
 仮に、このステップS33の開始時点で数「n」がn=1にセットされている場合、プロセッサ40は、画像データID1に表される第1の指標座標系C3の、カメラ14に対する3次元位置を示す位置データPD1(具体的には、カメラ座標系C2の座標Q1)を取得する。ステップS34において、プロセッサ40は、数「n」を「1」だけインクリメントする(n=n+1)。
 ステップS35において、プロセッサ40は、数「n」が、n>2であるか否かを判定する。プロセッサ40は、YESと判定した場合はステップS36へ進む一方、NOと判定した場合はステップS38へ進む。仮に、第1回目の(つまり、n=1にセットされている状態で)ステップS32を実行した後に、このステップS35へ進んだ場合、この時点での数「n」は、ステップS34でn=2にインクリメントされている。よって、この場合(つまり、第1の指標18を1回だけ撮像した場合)、プロセッサ40は、このステップS35でNOと判定し、ステップS38へ進むことになる。
 ステップS36において、プロセッサ40は、上述のステップS6と同様に、搬送方向取得部54(図2)として機能し、直近に実行したステップS33で取得した位置データPDn(具体的には、座標Qn)と、該位置データPDnの取得前に実行したステップS33で取得した位置データPDn-1(具体的には、座標Qn-1)とに基づいて、搬送方向D1_nを求める。
 ここで、図24に示すフローでは、プロセッサ40は、後述のステップS37でYESと判定するまで、ステップS32~S38のループを繰り返し実行する。したがって、プロセッサ40は、後述のステップS38で搬送装置16によって第1の指標18を繰り返し搬送し、該搬送前のステップS32で撮像した画像データIDn-1(第1の画像データ)から、該搬送前に実行したステップS33で、位置データPDn-1(第1位置データ)を取得することになる。一方、プロセッサ40は、該搬送後のステップS32で撮像した画像データIDn(第2の画像データ)から、該搬送後に実行したステップS33で、位置データPDn(第2位置データ)を取得することになる。
 プロセッサ40は、このステップS36において、上述のステップS6と同様の方法により、直近のステップS33で取得した位置データPDn(第2位置データ)と、該位置データPDnの取得前に実行したステップS33で取得した位置データPDn-1(第1位置データ)とに基づいて、搬送方向D1_n(例えば、上述のベクトルVT3_4と同様のベクトルVT_n)を求める。
 ステップS37において、プロセッサ40は、数「n」がn=nMAXになったか否かを判定する。この数nMAXは、ステップS32で第1の指標18を撮像する最大回数(例えば、nMAX=10)を示し、オペレータによって予め定められる。プロセッサ40は、YESと判定した場合はステップS39へ進む一方、NOと判定した場合はステップS38へ進む。
 ステップS38において、プロセッサ40は、上述のステップS3と同様に、搬送装置16によって第1の指標18を搬送する。なお、プロセッサ40は、第n回目のステップS38においては、第1の指標18を搬送方向D1へ搬送する一方、その後に実行する第n+1回目のステップS38においては、第1の指標18を、搬送装置16によって、搬送方向D1とは反対の方向D2に搬送してもよい。
 このように反対の方向D2に搬送した後に実行するステップS36では、プロセッサ40は、位置データPDn-1及びPDnから、該反対の方向D2のベクトルVT_n’を演算により求めることになる。この場合、プロセッサ40は、該ベクトルVT_n’とは反対の方向のベクトルVT_nを、搬送方向D1_nとして求めてもよい。こうして、プロセッサ40は、ステップS37でYESと判定するまで、ステップS32~S38のループを繰り返し実行し、ステップS36を実行する毎に、搬送方向D1_nを求める。
 ステップS39において、プロセッサ40は、搬送方向取得部54として機能して、最終的な搬送方向D1_Fを求める。具体的には、プロセッサ40は、ステップS36を実行する毎に搬送方向D1_nとして取得した複数のベクトルVT_1、VT_2、・・・VT_nの合成ベクトルVT_F(又は、平均ベクトル)求め、該ベクトルVT_Fを、最終的な搬送方向D1_Fとして取得する。
 ステップS40において、プロセッサ40は、座標系設定部56(図2)として機能し、上述のステップS6と同様に、ステップS39で取得した搬送方向D1_Fに基づいて、ロボット座標系C1に搬送装置座標系C4を設定する。具体的には、プロセッサ40は、ステップS39で求めたベクトルVT_Fを、搬送装置座標系C4のy軸プラス方向として定める。
 このように、本実施形態においては、プロセッサ40は、搬送装置16によって第1の指標18を複数回に亘って搬送する毎に搬送方向D1_nを求め、求めた複数の搬送方向D1_nに基づいて、最終的な搬送方向D1_Fを取得している。この構成によれば、搬送装置16の搬送方向D1を、より高精度に求めることができる。
 なお、図24のフローの概念(つまり、搬送装置16によって第1の指標18を複数回に亘って搬送する毎に搬送方向D1_nを求め、複数の搬送方向D1_nに基づいて最終的な搬送方向D1_Fを取得すること)は、図11又は図18のフローに適用できることを理解されたい。例えば、図11のフローの場合、プロセッサ40及び80は、互いに協働して、ステップS11~S16のループを繰り返し実行し、ステップS16を実行する毎に求めた複数の搬送方向D1_nに基づいて、最終的な搬送方向D1_Fを求めてもよい。
 また、図18のフローの場合、端末装置72のプロセッサ80は、ステップS21の後に、ステップS27及びS28を実行する。その後、プロセッサ40及び80は、互いに協働して、ステップS22~S26、及びS29のループを繰り返し実行し、ステップS29を実行する毎に求めた複数の搬送方向D1_nに基づいて、最終的な搬送方向D1_Fを求めてもよい。
 なお、上述の実施形態においては、第2の指標74が、カメラ座標系C2に第2の指標座標系C5を表す模様74aを含む場合について述べた。しかしながら、これに限らず、第2の指標74は、ロボット12の形状74bから構成されてもよい。一例として、この形状74bは、ロボット12のコンポーネント(例えば、ロボットベース22)に形成された複数の面、エッジ、凹部及び凸部から構成され得る。他の例として、形状74bは、所定の位置に静止したロボット12の全体(つまり、ロボットベース22、旋回胴24、下腕部26、上腕部28、手首部30、及び手首フランジ30b)の形状から構成されてもよい。
 本実施形態において、上述のステップS11、S14又はS27でカメラ14が第2の指標74としての形状74bを撮像した場合、撮像された画像データIDに写る該形状74bは、該カメラ14のカメラ座標系C2における第2の指標座標系C5の3次元位置(つまり、座標Q)を表す。
 そして、プロセッサ40又は80は、上述のステップS12、S15又は28において、位置データ取得部52として機能し、形状74bから第2の指標座標系C4を読み取るための画像解析プログラムPG2(画像解析アプリケーション)を実行して、形状74bによって表される第2の指標座標系C4を、画像データID内で特定する。
 そして、プロセッサ40又は80は、位置データPDとして、特定した第2の指標座標系C4のカメラ座標系C2における座標Qを取得する。なお、第1の指標18についても、模様18aに限らず、例えば、搬送面34に形成された形状18b(面、エッジ、凹部、凸部)を含んでもよい。
 なお、上述のロボットシステム70(図9)及び110(図17)においては、端末装置72のプロセッサ80が、位置データ取得部52及び搬送方向取得部54として機能する場合について述べた。しかしながら、ロボットシステム70又は110において、制御装置20のプロセッサ40が、位置データ取得部52、搬送方向取得部54、及び座標系設定部56として機能してもよい。この場合、端末装置72のプロセッサ80は、カメラ14が撮像した画像データID3、ID4、ID5、ID6、ID7を、制御装置20に供給する。
 又は、端末装置72を省略し、カメラ14を、例えばデジタルカメラから構成することもできる。そして、オペレータは、カメラ14で撮像した画像データID3、ID4、ID5、ID6、ID7を、有線又は無線で、制御装置20のI/Oインターフェース44に送信してもよい。
 なお、上述のステップS6においては、プロセッサ40は、搬送方向D1を、第1の指標座標系C3の原点の軌跡を示す、座標Q3(X3,Y3,Z3)から座標Q4(X4,Y4,Z4)へのベクトルVT3_4として求める場合について述べた。しかしながら、これに限らず、プロセッサ40は、座標Q3のうち姿勢を示す座標(W3,P3,Q3)と、座標Q4のうち姿勢を示す座標(W4,P4,R4)との変化量に基づいて、搬送方向D1を求めることも可能である。
 同様に、プロセッサ80は、上述のステップS16、S29又はS36において、搬送方向D1を、姿勢を示す座標Q9(W9,P9,R9)及び座標Q10(W10,P10,R10)の変化量、姿勢を示す座標Q14(W14,P14,R14)及び座標Q15(W15,P15,R15)の変化量、又は、姿勢を示す座標Qn-1及び座標Qnの変化量に基づいて、搬送方向D1を求めてもよい。
 なお、プロセッサ40又は80は、図3、図11、図18又は図24に示すフローを、メモリ42又は82に予め記憶されたコンピュータプログラムPG3に従って実行してもよい。また、プロセッサ40又は80が実行する位置データ取得部52、搬送方向取得部54、及び座標系設定部56の機能は、コンピュータプログラムPG3により実現される機能モジュールであってもよい。
 また、制御装置20は、ロボット12を制御する第1の制御装置20Aと、搬送装置16を制御する第2の制御装置20Bとを有してもよい。また、ロボット12は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。また、搬送装置16は、ベルトコンベアに限らず、ワークを搬送可能な如何なる装置であってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
 10,70,110  ロボットシステム
 12  ロボット
 14 カメラ
 16  搬送装置
 18  第1の指標
 20  制御装置
 40,80  プロセッサ
 52  位置データ取得部
 54  搬送方向取得部
 56  座標系設定部
 60,100,120  装置
 74  第2の指標
 112  センサ

Claims (7)

  1.  ワークに対して作業を行うロボットに設定されるロボット座標系に、前記ワークを搬送する搬送装置の搬送方向を規定する搬送装置座標系を設定する装置であって、
     第1の指標座標系を表す第1の指標であって、前記搬送装置によって搬送されるように該搬送装置に設置される、第1の指標と、
     前記第1の指標を撮像した第1の画像データと、該第1の画像データの撮像後に前記搬送装置によって搬送された該第1の指標を撮像した第2の画像データと、を取得するカメラと、
     前記第1の画像データに写る前記第1の指標が表す前記第1の指標座標系の前記カメラに対する3次元位置を示す第1位置データと、前記第2の画像データに写る前記第1の指標が表す前記第1の指標座標系の前記カメラに対する3次元位置を示す第2位置データと、を取得する位置データ取得部と、
     前記第1位置データ及び前記第2位置データに基づいて、前記搬送方向を求める搬送方向取得部と、
     前記搬送方向取得部が求めた前記搬送方向に基づいて、前記ロボット座標系に前記搬送装置座標系を設定する座標系設定部と、を備える、装置。
  2.  前記ロボット座標系の既知の位置に設置され、第2の指標座標系を表す第2の指標をさらに備え、
     前記カメラは、前記第1の指標と前記第2の指標とを撮像した前記第1の画像データと、前記搬送された第1の指標と前記第2の指標とを撮像した前記第2の画像データと、を取得し、
     前記位置データ取得部は、前記第1の画像データに写る前記第2の指標が表す前記第2の指標座標系の前記カメラに対する3次元位置を示す第3位置データと、前記第2の画像データに写る前記第2の指標が表す前記第2の指標座標系の前記カメラに対する3次元位置を示す第4位置データと、をさらに取得し、
     前記搬送方向取得部は、前記第3位置データ及び前記第4位置データにさらに基づいて、前記搬送方向を求める、請求項1に記載の装置。
  3.  前記搬送方向取得部は、
      前記第1位置データ及び前記第3位置データに基づいて、前記第1の画像データにおける前記第1の指標座標系と前記第2の指標座標系との第1位置関係を求め、
      前記第2位置データ及び前記第4位置データに基づいて、前記第2の画像データにおける前記第1の指標座標系と前記第2の指標座標系との第2位置関係を求め、
      前記第1位置関係及び前記第2位置関係に基づいて、前記搬送方向を求める、請求項2に記載の装置。
  4.  前記ロボット座標系の既知の位置に設置され、第2の指標座標系を表す第2の指標と、
     前記カメラの変位を検出するセンサと、を備え、
     前記カメラは、前記第2の指標を撮像した第3の画像データをさらに取得し、
     前記位置データ取得部は、前記第3の画像データに写る前記第2の指標が表す前記第2の指標座標系の前記カメラに対する3次元位置を示す第3位置データをさらに取得し、
     前記センサは、前記第1の画像データ、前記第2の画像データ、及び前記第3の画像データを撮像する間の前記カメラの前記変位を検出し、
     前記搬送方向取得部は、前記第3位置データ、及び前記センサが検出した前記変位にさらに基づいて、前記搬送方向を求める、請求項1に記載の装置。
  5.  前記第2の指標は、前記画像データを撮像した前記カメラに設定されるカメラ座標系における前記第2の指標座標系の3次元位置を表す模様又は前記ロボットの形状を含む、請求項2~4のいずれか1項に記載の装置。
  6.  前記第1の指標は、前記画像データを撮像した前記カメラに設定されるカメラ座標系における前記第1の指標座標系の3次元位置を表す模様を含む、請求項1~5のいずれか1項に記載の装置。
  7.  ワークに対して作業を行うロボットに設定されるロボット座標系に、前記ワークを搬送する搬送装置の搬送方向を規定する搬送装置座標系を設定する方法であって、
     第1の指標座標系を表す第1の指標を、前記搬送装置によって搬送されるように該搬送装置に設置し、
     カメラによって前記第1の指標を撮像することで第1の画像データを取得し、該第1の画像データの撮像後に前記搬送装置によって搬送された該第1の指標を前記カメラによって撮像することで第2の画像データを取得し、
     前記第1の画像データに写る前記第1の指標が表す前記第1の指標座標系の前記カメラに対する3次元位置を示す第1位置データと、前記第2の画像データに写る前記第1の指標が表す前記第1の指標座標系の前記カメラに対する3次元位置を示す第2位置データと、を取得し、
     前記第1位置データ及び前記第2位置データに基づいて、前記搬送方向を求め、
     求めた前記搬送方向に基づいて、前記ロボット座標系に前記搬送装置座標系を設定する、方法。
PCT/JP2022/032823 2022-08-31 2022-08-31 ロボット座標系に搬送装置座標系を設定する装置、及び方法 WO2024047808A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2022/032823 WO2024047808A1 (ja) 2022-08-31 2022-08-31 ロボット座標系に搬送装置座標系を設定する装置、及び方法
TW112128575A TW202411032A (zh) 2022-08-31 2023-07-31 在機器人座標系統設定搬送裝置座標系統之裝置、及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/032823 WO2024047808A1 (ja) 2022-08-31 2022-08-31 ロボット座標系に搬送装置座標系を設定する装置、及び方法

Publications (1)

Publication Number Publication Date
WO2024047808A1 true WO2024047808A1 (ja) 2024-03-07

Family

ID=90098969

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/032823 WO2024047808A1 (ja) 2022-08-31 2022-08-31 ロボット座標系に搬送装置座標系を設定する装置、及び方法

Country Status (2)

Country Link
TW (1) TW202411032A (ja)
WO (1) WO2024047808A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015174171A (ja) * 2014-03-14 2015-10-05 オムロン株式会社 ロボット制御装置
JP2018069357A (ja) * 2016-10-26 2018-05-10 ファナック株式会社 ロボットの動作をシミュレーションするシミュレーション装置、およびシミュレーション方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015174171A (ja) * 2014-03-14 2015-10-05 オムロン株式会社 ロボット制御装置
JP2018069357A (ja) * 2016-10-26 2018-05-10 ファナック株式会社 ロボットの動作をシミュレーションするシミュレーション装置、およびシミュレーション方法

Also Published As

Publication number Publication date
TW202411032A (zh) 2024-03-16

Similar Documents

Publication Publication Date Title
JP7490349B2 (ja) 入力装置、入力装置の制御方法、ロボットシステム、ロボットシステムを用いた物品の製造方法、制御プログラム及び記録媒体
US11565427B2 (en) Robot system
US11197730B2 (en) Manipulator system
US10052765B2 (en) Robot system having augmented reality-compatible display
JP4844453B2 (ja) ロボットの教示装置及び教示方法
JP5670416B2 (ja) ロボットシステム表示装置
CN103770112A (zh) 机器人系统及加工件的制造方法
JP2005201824A (ja) 計測装置
KR20230065881A (ko) 로봇 교시 시스템
CN114055460B (zh) 示教方法及机器人系统
JP6905651B1 (ja) ロボットシステム及びワークの3次元モデルの形成方法
WO2024047808A1 (ja) ロボット座標系に搬送装置座標系を設定する装置、及び方法
TWI806761B (zh) 標誌檢測裝置以及機器人示教系統
CN115213894A (zh) 机器人图像的显示方法、显示系统以及记录介质
JP2000094370A (ja) ロボットの作業表面の傾き測定方法およびその測定装置
JPH07129231A (ja) 非接触点教示装置
US20230098696A1 (en) Work Program Production System and Work Program Production Method
US20240066701A1 (en) Simulation device using three-dimensional position information obtained from output from vision sensor
WO2023209827A1 (ja) ロボット、ロボットの制御装置、および作業ロボットシステム
TWI806762B (zh) 標誌檢測裝置以及機器人示教系統
JP7340069B1 (ja) マーカ位置登録プログラム、マーカ位置登録装置、マーカ位置登録方法及びその方法に用いるマーカ
WO2022249410A1 (ja) 視覚センサにて撮像された画像に基づいて3次元の位置を算出する撮像装置
JP2009257774A (ja) ビジョンセンサー用マーカ及びアクチュエータへの作業空間認識方法
JP2012022600A (ja) マスク画像作成システム
JP2024025076A (ja) マーカ位置登録装置、マーカ位置登録プログラム及びマーカ位置登録方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22957405

Country of ref document: EP

Kind code of ref document: A1