WO2024023975A1 - アライメントシステム、アライメント方法及びプログラム - Google Patents
アライメントシステム、アライメント方法及びプログラム Download PDFInfo
- Publication number
- WO2024023975A1 WO2024023975A1 PCT/JP2022/028957 JP2022028957W WO2024023975A1 WO 2024023975 A1 WO2024023975 A1 WO 2024023975A1 JP 2022028957 W JP2022028957 W JP 2022028957W WO 2024023975 A1 WO2024023975 A1 WO 2024023975A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- identification target
- range
- coordinates
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 74
- 238000012545 processing Methods 0.000 claims abstract description 141
- 238000003384 imaging method Methods 0.000 description 91
- 238000012546 transfer Methods 0.000 description 84
- 230000008569 process Effects 0.000 description 50
- 238000012986 modification Methods 0.000 description 46
- 230000004048 modification Effects 0.000 description 46
- 230000033001 locomotion Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 30
- 230000007246 mechanism Effects 0.000 description 21
- 238000001514 detection method Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000000691 measurement method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D3/00—Control of position or direction
- G05D3/12—Control of position or direction using feedback
Definitions
- the present disclosure relates to an alignment system, an alignment method, and a program.
- alignment technology is used to align the position of a workpiece, which is a controlled object, with a reference position.
- a control system in which a workpiece has an alignment mark, the mark is detected from a workpiece image captured by an imaging device, and alignment is performed by aligning the position of the mark with a reference position (for example, patented Reference 1).
- the control system described in Patent Document 1 calculates the speed based on the past drive amount in each direction acquired from the moving mechanism, predicts the movement amount of the workpiece between the first and second imaging times, and Although the search range is limited from the second captured image, the prediction accuracy of the search range may deteriorate due to the predictive calculation of the amount of movement.
- the present disclosure has been made in view of the above circumstances, and aims to provide an alignment system, an alignment method, and a program that can perform positioning at high speed and with high precision.
- the alignment system of the present disclosure includes an image processing unit that detects an identification target from a captured image of a workpiece having an identification target, and an image processing unit that detects an identification target based on the actual coordinates of the identification target detected by the image processing unit.
- An operation control unit that controls a drive device that moves the workpiece.
- the image processing unit determines a search range having a predetermined size that is part of the captured image based on position information generated from the position sensor output of the driving device, and detects an identification target from the image of the search range. It is characterized by
- the search range is determined based on the position information generated from the position sensor output of the drive device, it is possible to perform high-speed and highly accurate positioning.
- FIG. 1 A block diagram showing an example of the overall configuration of an alignment system according to Embodiment 1.
- Block diagram showing a configuration example of the operation control unit Block diagram showing a configuration example of an image processing unit Diagram explaining alignment control method Diagram explaining alignment control method
- FIG. 1 is a block diagram showing an example of the overall configuration of an alignment system 1 according to the first embodiment.
- the alignment system 1 includes an alignment mechanism 100 that moves a workpiece 10 to be controlled, an operation control unit 200 that controls the alignment mechanism 100, an imaging device 300 that images the workpiece 10, and processes images captured by the imaging device 300.
- the image processing unit 400 includes an image processing unit 400 that performs processing, and a setting terminal 500 that performs various settings used for processing in the image processing unit 400.
- Drive devices 111, 112, and 113 that apply driving force in each direction to move the workpiece 10 are connected to the alignment mechanism 100. Further, drive control devices 121, 122, 123 are connected to the drive devices 111, 112, 113, respectively, and the drive control devices 121, 122, 123 are respectively driven based on control signals from the operation control unit 200. The devices 111, 112, and 113 are driven.
- the drive control devices 121, 122, 123, the operation control unit 200, the image processing unit 400, and the imaging device 300 are communicatively connected to each other.
- the communication means may be any conventional communication means such as Ethernet (registered trademark), CameraLink, CoaxPress (registered trademark), USB (Universal Serial Bus, registered trademark), etc., but in order to ensure synchronization, CC-Link IE Industrial networks based on Ethernet, such as /field (registered trademark) and CC-Link IE/TSN (registered trademark), are suitable.
- the alignment mechanism 100 includes a mounting table 101 on which the workpiece 10 is placed, and a mechanism for moving the mounting table 101.
- the mounting table can be translated in the X direction and the Y direction, which are perpendicular to each other in the horizontal direction, and can be rotated in the ⁇ direction, which is the rotational direction on the horizontal plane.
- the drive device 111 coupled to the alignment mechanism 100 causes translational movement in the X direction
- the drive device 112 causes translational movement in the Y direction
- the drive device 113 causes rotational movement in the ⁇ direction.
- the driving devices 111, 112, and 113 are any driving devices (actuators) that can precisely drive the alignment mechanism 100, and are, for example, servo motors.
- the drive control devices 121, 122, and 123 are control devices that control the drive of the drive devices 111, 112, and 113, respectively, based on control signals from the operation control unit 200, and are, for example, servo amplifiers.
- the drive devices 111, 112, 113 have arbitrary position sensors inside or outside, which detect and output the positions actually changed by the drive of the drive devices 111, 112, 113.
- the position sensor is, for example, an encoder attached to an actuator.
- the encoder output signal is input to the operation control unit 200 via the drive control devices 121, 122, 123.
- the drive devices 111, 112, 113 are servo motors
- the drive control devices 121, 122, 123 are servo amplifiers
- the position sensor is an encoder.
- the operation control unit 200 is a motion controller that issues commands to the drive control devices 121, 122, 123 regarding the operations of the drive devices 111, 112, 113, and includes, for example, a PLC (Programmable Logic Controller).
- the operation control unit 200 generates a control signal indicating a command based on the information acquired from the drive control devices 121 , 122 , 123 and the image processing unit 400 and outputs it to the drive control devices 121 , 122 , 123 .
- the operation control unit 200 includes a processor 210, a volatile memory 220, a nonvolatile memory 230, a clock 240, and a communication interface 250.
- processor 210, volatile memory 220, non-volatile memory 230, clock 240, and communication interface 250 are communicatively connected to each other via bus B1.
- the processor 210 is, for example, a CPU (Central Processing Unit), and reads and executes a control program 231 stored in a non-volatile memory 230 to generate commands from the position information generation unit 211, movement amount calculation unit 212, and commands. 213.
- a CPU Central Processing Unit
- the position information generation unit 211 of the processor 210 generates position information corresponding to the position of the mounting table 101 on which the workpiece 10 is placed, based on the output signals of the position sensors of the drive devices 111, 112, and 113.
- the movement amount calculation unit 212 calculates the movement amount of the workpiece 10 in the X direction, Y direction, and ⁇ direction based on the position of the identification target detected from the captured image by the image processing unit 400.
- the command unit 213 outputs a control signal based on the movement amount calculated by the movement amount calculation unit 212 to the drive control devices 121, 122, and 123.
- the volatile memory 220 is a work memory in which data can be read and written at high speed during arithmetic processing executed by the processor 210, and is, for example, a RAM (Random Access Memory).
- the nonvolatile memory 230 stores a control program 231 for realizing various functions of the operation control unit 200, and control data 232 including parameters, past detection data, and command data used when executing the control program 231. do.
- the nonvolatile memory 230 is, for example, an EEPROM (Electrically Erasable Programmable Read-Only Memory), a nonvolatile semiconductor memory such as a flash memory, a magnetic disk, or an optical disk.
- the clock 240 measures local time by counting clock signals from a clock element included in the operation control unit 200, and further synchronizes with the drive control devices 121, 122, 123, the imaging device 300, and the image processing unit 400. .
- the operation control unit 200 has time information synchronized with the drive control devices 121, 122, 123, the imaging device 300, and the image processing unit 400.
- the communication interface 250 is an interface for the operation control unit 200 to communicate with the drive control devices 121, 122, 123, the imaging device 300, and the image processing unit 400, and for example, CC-Link IE/field, CC-Link IE/ This is an interface that complies with communication standards such as TSN.
- the imaging device 300 is an imaging device that images the workpiece 10 from above the alignment mechanism 100 at regular time intervals, and is, for example, a camera having sufficient resolution to realize the alignment accuracy of the alignment system 1.
- the number of imaging devices 300 is arbitrary, the number of imaging devices 300 is determined according to the number and position of identification targets used for alignment.
- FIG. 1 shows a case where two imaging devices 300 are provided.
- the identification target may be any object indicating the position of the workpiece 10, such as an alignment mark placed on the workpiece 10, a corner end of the workpiece 10, or a corner end of the mounting table 101.
- the imaging device 300 also uses time information synchronized with the drive control devices 121, 122, 123, the motion control unit 200, and the image processing unit 400, and the time information synchronized with the drive control devices 121, 122, 123, the motion control unit 200, and the image processing unit 400.
- a communication interface for communication for communication.
- the image processing unit 400 performs a process of detecting an identification target on the captured image obtained from the imaging device 300 by performing coarse search and detailed search using different search methods.
- the coarse search is performed in the entire range of the captured image acquired from the imaging device 300, and the detailed search is performed in a search range narrower than the rough search range.
- the image processing unit 400 outputs the actual coordinates of the identification target to the operation control unit 200.
- the actual coordinates are coordinates in the reference coordinates that are consistent with the movement amount calculating section 212 of the motion control unit 200.
- the image processing unit 400 includes a processor 410, volatile memory 420, nonvolatile memory 430, clock 440, and communication interface 450.
- processor 410, volatile memory 420, nonvolatile memory 430, clock 440, and communication interface 450 are communicatively connected to each other via bus B2.
- the processor 410 is, for example, a CPU (Central Processing Unit), and reads and executes a control program 431 stored in a nonvolatile memory 430 to control the image acquisition unit 411, range determination unit 412, and search unit 413. functions as
- the image acquisition unit 411 of the processor 410 acquires an image captured by the imaging device 300.
- the range determining unit 412 determines a range in which to search for an identification target among the captured images acquired by the image acquiring unit 411, based on information including position information generated by the position information generating unit 211 of the operation control unit 200.
- the search unit 413 performs a detailed search for an identification target in the image within the search range determined by the range determining unit 412, and when the identification target is detected, outputs the actual coordinates of the identification target to the operation control unit 200. do.
- the volatile memory 420 is a work memory in which data can be read and written at high speed during arithmetic processing executed by the processor 410, and is, for example, a RAM (Random Access Memory).
- the nonvolatile memory 430 stores a control program 431 for realizing various functions of the image processing unit 400, and control data 432 including parameters used when executing the control program 431 and past detection data.
- the nonvolatile memory 430 is, for example, an EEPROM (Electrically Erasable Programmable Read-Only Memory), a nonvolatile semiconductor memory such as a flash memory, a magnetic disk, or an optical disk.
- the clock 440 measures local time by counting clock signals from a clock element included in the image processing unit 400, and further synchronizes with the drive control devices 121, 122, 123, the operation control unit 200, and the imaging device 300. .
- the image processing unit 400 has time information synchronized with the drive control devices 121, 122, 123, the operation control unit 200, and the imaging device 300.
- the communication interface 450 is an interface for the image processing unit 400 to communicate with the drive control devices 121, 122, 123, the operation control unit 200, and the imaging device 300, and for example, CC-Link IE/field, CC-Link IE/ This is an interface that complies with communication standards such as TSN.
- the setting terminal 500 is a terminal on which an application program corresponding to the control program 431 of the image processing unit 400 is installed, and is, for example, a personal computer.
- the setting terminal 500 has management functions for the image processing unit 400, including inputting or changing parameters stored in the nonvolatile memory 430 of the image processing unit 400.
- the communication interface through which the setting terminal 500 communicates with the image processing unit 400 is any interface that corresponds to the interface that the image processing unit 400 has, and is, for example, a USB interface or an RS232C interface.
- the motion control unit 200 calculates the amount of movement based on the difference between the actual coordinates of the identification target detected by the image processing unit 400 and the target coordinates of the alignment destination, and sends a control signal based on the amount of movement to the drive control devices 121, 122, Output to 123.
- FIGS. 4 and 5 are diagrams illustrating an alignment method when the objects to be identified are alignment marks 1001 and 1002 attached to the end of the workpiece 10.
- the shape of the alignment marks 1001 and 1002 is arbitrary, but it is preferable to have a shape that allows the position and rotation angle of the reference point to be clearly distinguished, and for example, the cross marks shown in FIGS. 4 and 5 are suitable. Further, the number of alignment marks is arbitrary, and may be one as shown in FIG. 4, or two alignment marks 1001 and 1002 are attached to diagonal ends of the workpiece 10 as shown in FIG. Good too.
- one imaging device 300 When using one alignment mark 1001, one imaging device 300 acquires an image of the imaging range 1300. When two alignment marks 1001 and 1002 are used, and if the two alignment marks 1001 and 1002 cannot be imaged in one imaging range 1300, images of imaging ranges 1300 that are shifted from each other are acquired using two imaging devices 300. do.
- the operation control unit 200 determines the virtual coordinates of the reference point of the virtual mark 1201 after rotating the workpiece 10 by an angle ⁇ about the ⁇ -axis rotation center 1200 of the alignment mechanism 100. Thereafter, the amount of movement ⁇ X in the X-axis direction and the amount ⁇ Y of movement in the Y-axis direction are calculated based on the difference between the virtual coordinates and the target coordinates of the alignment destination mark 1101.
- the command unit 213 of the operation control unit 200 issues commands by transmitting control signals for realizing the movements of ⁇ , ⁇ X, and ⁇ Y obtained in this way to the drive control devices 121, 122, and 123.
- the method of using one alignment mark 1001 can be used when the rotation of alignment mark 1001 can be clearly distinguished, such as a cross mark.
- the rotation of alignment mark 1001 can be clearly distinguished, such as a cross mark.
- FIG. 5 when two alignment marks 1001 and 1002 are used, there is no need to detect the rotation of the alignment marks themselves, so for example, even if the alignment mark is a circle, the rotation of the workpiece can be detected. can. Furthermore, since the angular difference ⁇ in the ⁇ direction is calculated by detecting two points sufficiently apart, highly accurate control is possible.
- the operation control unit 200 calculates ⁇ , ⁇ X, and ⁇ Y based on the coordinates and angular difference of the reference points of the alignment marks 1001 and 1002 to be identified, and uses these values to control the drive control device 121. , 122, 123 control the drive devices 111, 112, 113 to move the work 10. However, since the difference from the target coordinates often does not fall within the permissible range at once, detection of the identification target and control of the drive devices 111, 112, and 113 are performed repeatedly.
- the alignment system 1 reduces the processing load by limiting the range in which the search is executed.
- FIG. 6 is a block diagram showing an example of the functional configuration of the alignment system 1 according to the present embodiment
- FIG. 7 is a flowchart of alignment control processing executed by the motion control unit 200
- FIG. 8 is a block diagram showing an example of the functional configuration of the alignment system 1 according to this embodiment.
- 4 is a flowchart of search processing executed by 400;
- the operation control unit 200 issues a command to move the workpiece 10 to a preset approximate target position (FIG. 7, step S101). Specifically, the operation control unit 200 outputs control signals to the drive control devices 121, 122, and 123 to realize movement in each direction. Then, the drive devices 111, 112, 113 are driven by the control of the drive control devices 121, 122, 123 based on the control signals, and the mounting table 101 on which the workpiece 10 is placed moves.
- the operation control unit 200 instructs the image processing unit 400 to acquire and search for captured images (step S102), and also acquires position information based on the outputs of the position sensors of the drive devices 111, 112, and 113. is generated and output (step S103). After that, the operation control unit 200 waits until the image processing unit 400 completes the search (step S104).
- the image processing unit 400 which has been instructed by the operation control unit 200 to search for an identification target in step S102, executes the process shown in FIG. 8. Since this is the first time the image is captured (step S201: Yes), the image acquisition unit 411 of the image processing unit 400 acquires the captured image captured by the imaging device 300 (step S202). After that, the search unit 413 performs a rough search for the identification target (step S203).
- the rough search is performed, for example, by pattern matching processing using a pattern model of the alignment mark 1001 registered in advance.
- the search unit 413 detects the alignment mark 1001 when the match rate of pattern matching is equal to or higher than a predetermined threshold, and determines the search range for detailed search based on the position or rotation angle of the reference point of the alignment mark 1001. (Step S204).
- the shape or size of the search range at this time is set in advance according to the shape or size of the alignment mark 1001, and may be settable by user input to the setting terminal 500.
- the position of the center, which is a reference point, and the rotation angle of the cross are specified by pattern matching, and a predetermined margin is set for the size of the alignment mark 1001.
- a search range 1301 of the size added is determined.
- a search range (search angle range) related to the angle shown in FIG. 9B is also determined.
- the search unit 413 performs a detailed search (fine search) on the images within the search range determined in step S204 (step S205).
- a detailed search for example, by performing edge detection and detecting accurate straight lines or curved lines, more accurate actual coordinates of the identification target can be obtained.
- the actual coordinates of the identification target include the position (XY coordinate) and rotation angle ( ⁇ coordinate) of the reference point of the identification target.
- step S212: No If the search unit 413 is unable to detect the identification target in the detailed search in step S205 (step S212: No), the process returns to step S201 and repeats the processes in steps S202 to S205. On the other hand, if the identification target is successfully detected in the detailed search in step S205 (step S212: Yes), the actual coordinates of the identification target acquired in step S205 are output to the operation control unit 200 (step S213).
- the motion control unit 200 acquires the actual coordinates from the image processing unit 400 (step S105), and sets them as the target coordinates. Calculate the difference between If the difference between the actual coordinates and the target coordinates is less than or equal to the threshold (step S106: Yes), the alignment control process ends.
- the target coordinates are the coordinates of the alignment destination, and include a center position (XY coordinates) and a rotation angle ( ⁇ coordinates).
- step S106 If the difference between the actual coordinates and the target coordinates exceeds the threshold (step S106: No), the command unit 213 executes a command to correct the position of the alignment mechanism 100 (step S107; command step). Specifically, a control signal that causes the actual coordinates to match the target coordinates is output to the drive control devices 121, 122, and 123.
- step S102 After the drive devices 111, 112, and 113 have finished driving, the process returns to step S102.
- the operation control unit 200 again instructs imaging and searching (step S102), and outputs position information (step S103).
- the image processing unit 400 acquires position information (step S206).
- the range determination unit 412 of the image processing unit 400 calculates the predicted coordinates of the identification target at that time (step S207).
- the range determination unit 412 identifies the correspondence between the position information acquired from the motion control unit 200 during the initial alignment control and the actual coordinates detected during the initial detailed search. For example, when the XY coordinates of the initial position information are represented by (x 1 , y 1 ) and the XY coordinates of the actual coordinates are represented by (X 1 , Y 1 ), these relationships are expressed by the following equation (1). ) is represented by a constant matrix A.
- the XY coordinates of the position information acquired from the motion control unit 200 during the second alignment control are (x 2 , y 2 )
- the XY coordinates (X 2 , Y 2 ) of the predicted coordinates used in the second search are calculated using the formula Using the constant matrix A represented by (1), it can be expressed by the following equation (2). Further, the nth time including the third time and subsequent times can be similarly expressed by equation (3).
- the constant matrix A representing the correspondence between position information and actual coordinates may be updated each time based on the position information and actual coordinates obtained during repeated alignment control, or may be updated using the average of multiple times. good.
- the correspondence between position information and actual coordinates may be established in advance through prior calibration. For example, in the case of alignment control using a corner end of the mounting table 101 as an identification target, such preliminary calibration is effective because the error for each execution is small.
- the correspondence between the XY coordinates of the reference point of the identification target detected from the captured image and the position information is specified in advance, and this correspondence is used to predict the XY coordinates from the newly acquired position information (step S207).
- a search range of a predetermined size is determined with the predicted XY coordinates as the center (step S208).
- the ⁇ coordinate the correspondence between the actual coordinates detected in the detailed search and the position information is specified in advance, and then the ⁇ coordinate indicating the rotation angle of the identification target is determined based on the newly acquired position information.
- a prediction is made (step S207), and a search angle range of a predetermined angular width is determined with the predicted ⁇ coordinate as the center (step S208).
- the search range does not have to be centered around the predicted coordinates, and depending on the alignment conditions or the form of the identification target, the search range may be a range that includes the predicted coordinates.
- the size of the search range may be set by user input to the setting terminal 500, or may be set automatically.
- the size of the search range may be a size obtained by adding an allowance automatically or manually set based on the moving speed of the drive devices 111, 112, 113 to the shape or size of the identification target. good.
- the size of the search range may be determined statistically based on past alignment control results; for example, the size of the search range may be calculated from position information at corresponding times in the past with respect to the shape and size of the identification target. The average value of the difference between the predicted coordinates and the actual coordinates detected from the captured image may be added as a margin.
- the range determining unit 412 does not perform the rough search in step S203, and instead performs the predicted coordinates calculated from the position information based on the position sensor output in step S207. Determine the search range centered on .
- the processing amount of the search range determination process based on this position information is significantly smaller than the search range determination process based on the rough search performed in step S203. Therefore, compared to conventional alignment control that performs a rough search each time, high-speed control is possible.
- the image acquisition unit 411 acquires an image (step S209; image acquisition step), and performs simple processing on the image in the search range determined in step S208 among the acquired images (step S210).
- the simple process is an arbitrary process before performing a detailed search.
- the search unit 413 performs a rough search in a range that is wider than the search range determined in step S208 but is more limited than the entire range, and then re-searches the search range. You may decide. Alternatively, if the predicted coordinates of the XY coordinates have been calculated in step S207 and the search range in the Good too. Note that the simple processing may be omitted.
- step S211 search step
- the detailed search method is the same as step S205.
- step S212: No the process returns to step S201, and since the previous detection failed (step S201: Yes), the processes of steps S202 to 205 are performed. Execute.
- the reason why the rough search of the entire range is restarted is to avoid a loss of control due to repeated detection failures in the detailed search.
- step S212 Yes
- the actual coordinates of the identification target acquired in step S211 are output to the operation control unit 200.
- the motion control unit 200 acquires the actual coordinates from the image processing unit 400 (step S105), and calculates the difference from the target coordinates. If the difference between the actual coordinates and the target coordinates is less than or equal to the threshold (step S106: Yes), the alignment process ends.
- step S106 If the difference between the actual coordinates and the target coordinates exceeds the threshold (step S106: No), the command unit 213 executes a command to correct the position of the alignment mechanism 100 (step S107). Specifically, a control signal for matching the actual coordinates with the target coordinates is output to the drive control devices 121, 122, and 123. After that, the process returns to step S102 and continues the process.
- the alignment system 1 includes an image processing unit 400 that detects an identification target from an image of the workpiece 10 having the identification target, and the actual coordinates of the identification target detected by the image processing unit 400. and an operation control unit that controls drive devices 111, 112, and 113 that move the workpiece 10 based on the following.
- the image processing unit 400 specifies in advance the correspondence between the position information based on the position sensor output of the drive devices 111, 112, 113 and the actual coordinates of the identification target detected from the captured image, and uses this correspondence to next.
- the predicted coordinates of the object to be identified are calculated from the acquired position information, a search range that includes these predicted coordinates is determined, and the object to be identified is detected from an image of the search range. As a result, rough search processing for the entire range can be omitted and positioning can be performed at high speed and with high accuracy.
- the image acquisition unit 411 of the image processing unit 400 acquires a captured image from the imaging device 300 by issuing a transfer instruction specifying a transfer range, and acquires the captured image within the transfer range.
- This embodiment differs from the first embodiment in that the search unit 413 performs a search process for .
- the drive control devices 121, 122, 123, the operation control unit 200, the image processing unit 400, and the imaging device 300 are communicatively connected to each other.
- an industrial network such as CC-Link IE/field or CC-Link IE/TSN.
- H/W equipment In industrial networks such as CC-Link IE/field and CC-Link IE/TSN, in order to ensure synchronization, H/W equipment achieves punctuality above a certain level while statistically reducing transmission path delay. It has a mechanism to perform measurements and synchronize timing between devices with microsecond accuracy.
- the synchronization method using transmission path delay measurement is a method that uses the measured transmission path delay value from the master station to the device station to achieve more accurate synchronization.
- FIG. 10 shows a synchronization method using transmission path delay measurement.
- synchronization is performed at synchronization points.
- the transmission control (MyStatus) frame transmitted from the master station 40 is delayed as the distance increases.
- the master station 40 calculates the transmission path delay time in each device station 50, 60, 70 from the master station time when the response signal is received from each device station 50, 60, 70, and transmits it to each device station 50, 60, 70. do.
- the synchronization point is the time after a certain period of time (Tsync) has passed since the master station 40 transmitted the transmission control (MyStatus) frame.
- Tsync transmission control
- Each device station 50, 60, and 70 performs synchronization after receiving the transmission control (MyStatus) frame and after Tps time (Tsync-delay time), which is the time obtained by subtracting the transmission path delay time.
- the operation control unit 200 is used as the master station 40, and the timing of the drive control devices 121, 122, 123, the operation control unit 200, the imaging device 300, and the image processing unit 400 is Control takes place.
- the drive control devices 121, 122, 123, the operation control unit 200, the imaging device 300, and the image processing unit 400 are communicatively connected to each other via an industrial network (communication line) where the transmission path delay time is measured, and are synchronized. It will have the time information.
- the operation control unit 200 which is the master station 40, sets a specific time after the longest transmission line delay time has elapsed from the instruction transmission time as a synchronization point. Then, the image processing unit 400 determines a range including the predicted coordinates at a specific time in the future as the transfer range, and causes the imaging device 300 to perform imaging at the specific time and transfer images within the transfer range among the captured images. and instructs.
- FIG. 11 is a diagram illustrating shutter timing control of the imaging device 300.
- the imaging device 300 uses the synchronized time information from which the synchronization point is calculated, the imaging device 300 automatically determines the imaging timing according to information obtained from the image processing unit 400 or in advance. At this time, in order to capture an image at a specific time in the future, the image processing unit 400 can issue an advance imaging instruction within a grace period as necessary. It is also useful to align the timing of reserved imaging with the center of the exposure time range.
- FIG. 12 is a block diagram showing an example of the functional configuration of the alignment system 2 according to the present embodiment
- FIG. 13 is a flowchart of alignment control processing executed by the motion control unit 200
- FIG. 4 is a flowchart of search processing executed by 400; The operation of the alignment system 2 will be explained along the flowcharts of FIGS. 13 and 14.
- the operation control unit 200 issues a command to move the workpiece 10 to a preset approximate target position (FIG. 13, step S101). Specifically, the operation control unit 200 outputs control signals to the drive control devices 121, 122, and 123 to realize movement in each direction. Then, under the control of the drive control devices 121, 122, 123 based on the control signals, the drive devices 111, 112, 113 are driven, and the mounting table 101 on which the work 10 is mounted moves.
- the image processing unit 400 that has acquired the position information from the operation control unit 200 executes the processing shown in FIG. 14.
- the imaging is the first time (step S201: Yes)
- the search unit 413 of the image processing unit 400 performs a rough search for an identification target for the entire range of captured images (step S203).
- the rough search is performed, for example, by pattern matching processing using a pattern model of the alignment mark 1001 registered in advance.
- the search unit 413 detects the alignment mark 1001 as an identification target when the match rate of pattern matching is equal to or higher than a predetermined threshold, and performs a detailed search based on the position or rotation angle of the reference point of the alignment mark 1001.
- a range is determined (step S204).
- the shape or size of the search range at this time is determined in advance based on the shape or size of the alignment mark 1001, and may be settable by user input to the setting terminal 500.
- a detailed search (fine search) is performed on the images within the search range determined in step S204 (step S205).
- the detailed search for example, by performing edge detection and detecting accurate straight lines or curves, more accurate actual coordinates of the identification target can be obtained.
- the actual coordinates of the identification target include the position (XY coordinate) and rotation angle ( ⁇ coordinate) of the reference point of the identification target.
- step S212 If the identification target cannot be detected in the detailed search in step S205 (step S212: No), the process returns to step S201 and the processes of steps S221, S222, and S203 to S205 are repeated. On the other hand, if the identification target is successfully detected in the detailed search in step S205 (step S212: Yes), the actual coordinates of the identification target acquired in step S205 are output to the operation control unit 200 (step S213).
- the motion control unit 200 acquires the actual coordinates from the image processing unit 400 (step S105), and calculates the difference from the target coordinates. Calculate. If the difference between the actual coordinates and the target coordinates is less than or equal to the threshold (step S106: Yes), the alignment control process ends.
- the target coordinates are the coordinates of the alignment destination, and include a center position (XY coordinates) and a rotation angle ( ⁇ coordinates).
- step S106 If the difference between the actual coordinates and the target coordinates exceeds the threshold (step S106: No), the command unit 213 executes a command to correct the position of the alignment mechanism 100 (step S107; command step). Specifically, a control signal for matching the actual coordinates with the target coordinates is output to the drive control devices 121, 122, and 123.
- step S104 waits until the search process of the processing unit 400 is completed (step S104).
- the image processing unit 400 also acquires position information from the operation control unit 200 (step S206).
- the range determination unit 412 of the image processing unit 400 predicts the coordinates of the identification target at that time (step S207).
- the method for predicting coordinates is the same as in Embodiment 1, and the correspondence between the position information acquired from the motion control unit 200 during the initial alignment control and the actual coordinates detected during the initial detailed search is specified.
- the range determining unit 412 uses the identified correspondence to predict the XY coordinates of the reference point to be identified from the position information acquired in step S206 (step S207). Thereafter, the range determining unit 412 determines a transfer range of a predetermined size centered on the XY coordinates predicted in step S207, and instructs the imaging device 300 to transfer the captured image with the designated transfer range. . (Step S226). Note that the transfer range does not have to be centered around the predicted XY coordinates, and depending on the alignment conditions or the form of the identification target, the transfer range may be a range including the predicted XY coordinates.
- the size of the transfer range may be set by the user's input to the setting terminal 500. For example, since there is a trade-off between robustness and processing speed, the transfer range may be set small if throughput is prioritized by maximizing the average processing speed while allowing processing fluctuations. On the other hand, if it is desired to keep the processing time constant by prioritizing jitter characteristics over processing speed, the transfer range may be set larger.
- the size of the transfer range may be a size obtained by adding an allowance automatically or manually set based on the moving speed of the drive devices 111, 112, 113 to the shape or size of the object to be identified. good.
- the range determining unit 412 may statistically determine the size of the transfer range based on past alignment control results. The size of the transfer range may be determined by adding the average value of the difference between the actual coordinates of the identification target detected from the image and the actual coordinates of the identification target detected from the image as a margin.
- the imaging device 300 performs the prediction based on the position information of the position sensor obtained in step S226 without transmitting the entire range of images. Transfer only images within the transfer range centered on the coordinates.
- the data amount of the image transferred here is significantly smaller than the data amount of the entire range of images transferred in step S221. Therefore, compared to the case where images of the entire range are transferred each time, the data transfer capacity and transfer time are reduced, and high-speed control is possible because a rough search of the entire range is not performed.
- the image acquisition unit 411 acquires the images in the transfer range that have been transferred by the transfer instruction in step S226 (step S209; image acquisition step), and the search unit 413 performs simple processing on the images within the transfer range ( Step S210).
- the simple process is an arbitrary process before performing a detailed search, and for example, a rough search may be performed on the images within the transfer range acquired in step S209 to determine the search range.
- the search angle range may be determined by performing a rough search for the ⁇ coordinate as a simple process. Note that the simple processing may be omitted.
- step S211 search step
- the detailed search method is the same as step S205.
- step S212: No the process returns to step S201, and since the previous detection failed (step S201: Yes), steps S221, S222, S203 to The process of 205 is executed.
- step S212: No the identification target cannot be detected
- step S201: Yes the process returns to step S201, and since the previous detection failed
- steps S221, S222, S203 to The process of 205 is executed.
- the reason why the rough search of the entire image range is restarted is to avoid a loss of control due to repeated detection failures in the detailed search.
- step S212 If the identification target is successfully detected in the detailed search in step S211 (step S212: Yes), the actual coordinates of the identification target obtained in step S211 are output to the operation control unit 200 (step S213).
- the operation control unit 200 acquires the actual coordinates from the image processing unit 400 (step S105), and calculates the difference from the target coordinates. If the difference between the actual coordinates and the target coordinates is less than or equal to the threshold (step S106: Yes), the alignment process ends.
- step S106 If the difference between the actual coordinates and the target coordinates exceeds the threshold (step S106: No), the command unit 213 executes a command to correct the position of the alignment mechanism 100 (step S107). Specifically, a control signal for matching the actual coordinates with the target coordinates is output to the drive control devices 121, 122, and 123. After that, the process returns to step S122 and continues the process.
- the range determination unit 412 of the image processing unit 400 determines the image transfer range based on the position information, and the search unit 413 performs a detailed search for the image transferred from the imaging device 300. Thereby, transfer time and search time can be significantly shortened.
- the transfer range from the image processing unit 400 to the imaging device 300 can be specified by specifying imaging parameters including the transfer range together with the imaging instruction, or by specifying the transfer range to the imaging device 300 in advance and then performing the imaging.
- the trigger may be output to the imaging device 300.
- the above-described synchronization method for measuring transmission path delay is used to synchronize the timing of imaging by the imaging device 300 and the acquisition of position information, thereby reducing waiting time and Search within an appropriate transfer range becomes possible.
- the transfer range is specified in advance, by outputting only the imaging trigger through a dedicated line, it is possible to match the imaging timing with high precision.
- the image may be reduced and transferred by the imaging device 300.
- the reduction method may be any conventional method, for example subsampling or binning may be used.
- binning is relatively light processing and has the effect of improving the S/N ratio (Signal to Noise Ratio) of pixel signals, and can suppress the decline in position recognition accuracy even though the resolution decreases due to reduction. suitable.
- the transfer range When limiting (trimming) the transfer range according to the transfer instruction in step S226, if the actual coordinates and target coordinates are far apart at an early stage of alignment control, the transfer range is limited and reduced, and the actual coordinates and target coordinates are Control may be performed such that the reduction is not performed after the distance from the object is within a certain range and the object is approaching.
- a model matching the reduced data is prepared in advance as a search pattern model, and the search unit 413 performs coarse search or detailed search using this model. You may do so.
- step S211 in parallel with the detailed search (step S211) after acquiring the captured images of the transfer range according to the transfer instruction in step S226, captured images of the entire range may be acquired.
- step S212: No it is possible to reduce the time required to acquire captured images of the entire range.
- the transfer of the captured images in the entire range may be stopped or the transferred images may be deleted.
- the image processing unit 400 determines in advance the correspondence between the position information possessed by the drive devices 111, 112, and 113 and the actual coordinates of the identification target detected from the captured image. Using this correspondence, calculate the predicted coordinates of the identification target from the next acquired position information, determine the transfer range of the image including the predicted coordinates, and use this correspondence to determine the transfer range of the image that includes the predicted coordinates.
- the range determination unit 412 of the image processing unit 400 determines a range including predicted coordinates calculated from position information based on position sensor outputs of the drive devices 111, 112, and 113 as a search range or a transfer range. And then.
- the search range or transfer range may be determined in other ways.
- This modification 1 describes another method of determining the search range or transfer range.
- command information related to driving the drive devices 111, 112, and 113 is used to calculate predicted coordinates for determining the search range or transfer range.
- the range determination unit 412 of the image processing unit calculates predicted coordinates based on the command information, and determines a search range or transfer range that includes the predicted coordinates.
- FIG. 15 is a block diagram showing an example of the functional configuration of the alignment system 3 according to this modification
- FIG. 16 is a flowchart of alignment control processing executed by the motion control unit 200 according to this modification
- FIG. 5 is a flowchart of search processing executed by the processing unit 400.
- FIGS. 15 to 17 are a modification of the second embodiment, and represent a mode in which the image transfer range is determined based on command information.
- a form in which the search range of the image is determined by using the search range can be similarly realized.
- the operation of the alignment system 3 according to this modification will be explained along the flowcharts of FIGS. 16 and 17, but the explanation of the same processes as in the second embodiment will be omitted.
- the operation control unit 200 issues a command to move the workpiece 10 to a preset approximate target position (FIG. 16, step S101).
- the command information at this time is passed to the image processing unit 400 for use in determining the transfer range.
- the drive devices 111, 112, 113 start driving based on the control signal related to the command information, and the mounting table 101 on which the workpiece 10 is placed moves.
- step S104 when the search process of the image processing unit 400 is completed (step S104: Yes), the movement amount calculation unit 212 of the motion control unit 200 acquires the actual coordinates from the image processing unit 400 (step S105). ), the position information generation unit 211 generates and records position information based on the position sensor output at time Tn (step S124). The movement amount calculation unit 212 calculates the difference between the actual coordinates and the target coordinates, and if the difference between the actual coordinates and the target coordinates is less than or equal to the threshold value (step S106: Yes), the alignment control process ends.
- step S106 If the difference between the actual coordinates and the target coordinates exceeds the threshold (step S106: No), the command unit 213 executes a command to correct the position of the alignment mechanism 100, but at this time, the specific time recorded in step S124 Referring to the position information at Tn , a command is executed that also compensates for the deviation between the position indicated by the command and the actual position indicated by the position information (step S125).
- the image processing unit 400 also acquires command information at time Tn from the operation control unit 200 (step S224).
- the range determination unit 412 of the image processing unit 400 calculates the predicted coordinates of the identification target at that time (step S225).
- the method of calculating the predicted coordinates by the range determining unit 412 is to first identify the correspondence between the command information at the time of initial alignment control instead of the position information in the second embodiment and the actual coordinates detected in the initial detailed search. .
- the range determining unit 412 uses the identified correspondence to calculate the predicted coordinates (XY coordinates) of the reference point to be identified from the command information related to the scheduled position at the specific time Tn acquired in step S224 (step S225). ).
- the prediction method using the correspondence relationship is the same as in the second embodiment.
- the range determination unit 412 determines a transfer range of a predetermined size centered on the XY coordinates predicted in step S225, and instructs the imaging device 300 to transfer images within the determined transfer range. . (Step S226). Note that the transfer range does not have to be centered around the predicted XY coordinates, and depending on the alignment conditions or the form of the identification target, the transfer range may be a range including the predicted XY coordinates.
- the image acquisition unit 411 acquires the image in the transfer range that was transferred by instructing the transfer in step S226 (step S209), and performs simple processing (step S210).
- the search unit 413 performs a detailed search for the images within the transfer range acquired in step S209 or the images subjected to the simple processing in step S210 (step S211).
- the process returns to step S201, and since the previous detection failed (step S201: Yes), steps S221, S222, S203- The process of 205 is executed.
- step S212 If the identification target is successfully detected in the detailed search in step S211 (step S212: Yes), the actual coordinates of the identification target obtained in step S211 are output to the operation control unit 200 (step S213).
- the subsequent processing by the operation control unit 200 is similar to that in the second embodiment.
- the range determination unit 412 of the image processing unit 400 determines the image transfer range based on the command information of the operation control unit 200, and the search unit 413 performs a detailed search for the image transferred from the imaging device 300. And so.
- the search range or transfer range is determined based on the command information related to the future scheduled position, so more efficient timing control and faster alignment control are possible.
- This modification 2 describes yet another method for determining the search range or transfer range.
- the range determination unit 412 determines the search range or transfer range centered on the predicted coordinates calculated based on the position information, but in this modification, the range determination unit 412 determines the search range or transfer range centered on the previously detected actual coordinates. Determine the search range or transfer range.
- the range determination unit 412 detects the identification target previously detected by the detailed search by the search unit 413 of the image processing unit 400 and stored in the nonvolatile memory 230 without acquiring position information or command information.
- the range centered on the reference point is determined as the transfer range.
- the range determining unit 412 determines a range centered on the stored reference point of the identification target or an angular range centered on the rotation angle of the identification target as the search range.
- the transfer range or search range does not have to be centered around the previously detected actual coordinates; depending on the alignment conditions or the form of the identification target, the range that includes the previously detected actual coordinates may be used as the transfer range or search range. good.
- the size of the search range or transfer range may be determined based on the moving speed of the actual coordinates of the identification target detected in the past. Alternatively, it may be determined based on the moving speed of each driving device based on the alignment control setting parameters. For example, the size may be determined by multiplying the maximum moving speed by the imaging interval of the imaging device 300. If the moving distance between imaging intervals is short due to the imaging interval being set short, the search range or transfer range can be sufficiently limited by using the previous detection result, so Embodiments 1 and 2 And compared to Modification 1, it is possible to simplify the process.
- This third modification describes still another method for determining the search range or transfer range.
- the range determining unit 412 determines the search range or transfer range based on the trajectory of the actual coordinates detected in the past by the detailed search by the searching unit 413.
- the identification target has been detected in the past through a detailed search by the search unit 413 of the image processing unit 400 and stored in the nonvolatile memory 230.
- the predicted coordinates are calculated based on the trajectory of the actual coordinates, and the range centered on the predicted coordinates is determined as the search range or transfer range.
- the range determining unit 412 determines, as the transfer range, a range having a predetermined size centered on the predicted XY coordinates based on the trajectory of the XY coordinates of the reference point to be identified. Alternatively, the range determining unit 412 determines a range having a predetermined size centered on the XY coordinates predicted based on the trajectory of the XY coordinates of the reference point to be identified, or a ⁇ coordinate predicted based on the trajectory of the ⁇ coordinates. The angular range centered at is determined as the search range.
- FIGS. 18A and 18B are diagrams illustrating prediction of an identification target. Note that the transfer range or search range does not have to be centered around the predicted coordinates, and depending on the alignment conditions or the form of the identification target, the range including the predicted coordinates may be set as the transfer range or search range.
- the predicted coordinates are calculated by prediction at the time of imaging by the imaging device 300, using two or more times before the previous time and the actual coordinates at each time. For example, as shown in FIG. 18A, linear prediction is performed based on the XY coordinate data of two times, the previous time and the time before the previous time, to predict the XY coordinates at the time of imaging.
- the XY coordinates at the time of imaging are predicted by performing secondary prediction based on the XY coordinate data for three times: the previous time, the time before the previous time, and the time before the previous time.
- the size of the search range or transfer range may be determined based on the moving speed of the actual coordinates of the identification target detected in the past. Alternatively, it may be determined based on the moving speed of the drive devices 111, 112, 113. For example, the size may be determined by multiplying the maximum moving speed by the imaging interval of the imaging device 300. Since linear prediction has worse prediction accuracy than secondary prediction or higher-order prediction, it is necessary to increase the size of the search range or transfer range.
- the size of the search range or transfer range may be determined based on statistical information of errors with respect to past detection results. For example, for the shape and size of the identification target, the average value of the difference between the predicted coordinates based on the trajectory of the actual coordinates and the actual coordinates detected from the captured image at corresponding points in the past is added as a margin. It may be the size.
- FIG. 19A is a diagram illustrating a coarse search according to this modification
- FIG. 19B is a diagram illustrating a detailed search according to this modification.
- the workpiece 12 is an IC (Integrated Circuit) having a large number of terminals as shown in FIG.
- a rough search is performed by performing the processing (FIG. 8, step S203).
- the search unit 413 determines a search range 1314 for detailed search based on the position or rotation angle of the pattern 1313 when the match rate of pattern matching is equal to or higher than a predetermined threshold (FIG. 8, step S204). ).
- a predetermined threshold As shown in FIG. 19A, there are cases where multiple patterns with a matching rate equal to or higher than a predetermined threshold are detected. In that case, pattern 1313 with the highest matching rate is identified. , a search range 1314 may be determined.
- the search unit 413 determines a search range 1314 having a predetermined positional relationship from the pattern 1313 identified by the rough search as the search range for the detailed search (FIG. 8, step S204).
- the search unit 413 executes a detailed search for the search range determined in step S204 (FIG. 8, step S205).
- step S201 if it is the second or subsequent imaging and the previous detection was successful (FIG. 8, step S201: No), the search including the predicted coordinates calculated from the position information The range is determined (FIG. 8, step S208), and a detailed search is executed (FIG. 8, step S211).
- the search range determined by the rough search in step S203 is used instead of calculating the predicted coordinates based on the position information. You may repeat the detailed search. Then, only when the detection by the detailed search fails, the process of determining the search range by the coarse search may be performed.
- the application of the setting terminal 500 may classify the form to be identified and automatically select a search processing method suitable for the classification.
- FIG. 20A is a diagram illustrating a coarse search according to this modification
- FIG. 20B is a diagram illustrating a detailed search according to this modification.
- the processor of the setting terminal 500 automatically registers a model for coarse search and generates logic for detailed search by executing a dedicated application program.
- the processor of the setting terminal 500 extracts the outer shape of the lens from the captured image and registers the pattern model 1322. Furthermore, the processor automatically generates search logic for detailed search based on the shape of pattern model 1322. For example, when the processor of the setting terminal 500 detects that the shape of the pattern model 1322 includes a circular arc, as shown in FIG. , and automatically generates logic for detecting the center of the circle as the reference point 1323.
- the image processing unit 400 executes the search process described in the first and second embodiments using the rough search pattern model generated by the application of the setting terminal 500 and the detailed search logic. According to this modification, it is possible to perform an optimal coarse search and detailed search depending on the form of the identification target. Further, the advance settings for executing the search process of the image processing unit 400 can be automated, and the burden of inputting settings to the setting terminal 500 on the user can be reduced.
- a coarse search is performed on the first captured image
- a detailed search is performed in the search range determined based on the result of the coarse search
- the next detailed search is performed based on the result of the detailed search.
- FIG. 21 is a flowchart of the search process when the rough search for the first captured image is omitted.
- the range determination unit 412 calculates predicted coordinates of the identification target based on position information using prior calibration information (step S302).
- a search range including the predicted coordinates calculated by the range determining unit 412 is determined (step S303), and a detailed search is executed for the determined search range (step S304).
- step S304 If the real coordinates of the identification target are successfully detected in the detailed search in step S304 (step S305: Yes), the real coordinates are output to the motion control unit 200 (step S309), and the motion control unit 200 The drive devices 111, 112, and 113 are controlled using. After moving the workpiece 10, a detailed search is performed for the next captured image in the same search range as the previous one. In this way, when the detailed search is successful in detection, the detailed search is repeatedly executed without performing the coarse search.
- step S305 Only when the identification target fails to be detected while repeating the detailed search (step S305: No), the search range is determined by executing a coarse search (step S306) (step S307), and the detailed search is performed in the determined search range. A search is executed (step S308), and actual coordinates are output (step S309).
- step S306 A search is executed (step S308), and actual coordinates are output (step S309).
- the operation control unit 200, the imaging device 300, the image processing unit 400, and the setting terminal 500 are configured independently, but at least two of these may be integrated.
- the search processes shown in the above embodiments and modifications may be executed in any combination.
- the setting terminal 500 may allow selection of any of the search processes according to the above embodiments and modified examples.
- the image processing unit 400 may automatically select one of the search processes according to the above embodiments and modifications according to conditions such as the type of work and the form of the object to be identified.
- each function realized by the processor of the operation control unit 200 or the image processing unit 400 can be realized using a normal computer system, not a dedicated system.
- the program for executing the operations of the above embodiments can be stored on a computer-readable CD-ROM (Compact Disc Read-Only Memory), DVD (Digital Versatile Disc), MO (Magneto Optical Disc), memory card, etc.
- a computer that can realize each function may be configured by storing and distributing the program on a recording medium and installing the program on the computer.
- OS Operating System
- only the parts other than the OS may be stored in the recording medium.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Image Processing (AREA)
Abstract
アライメントシステム(1)は、識別対象を有するワーク(10)を撮像した撮像画像から識別対象を検出する画像処理ユニット(400)と、画像処理ユニット(400)が検出した識別対象の実座標に基づいて、ワーク(10)を移動させる駆動機器(111,112,113)を制御する動作制御ユニット(200)と、を備える。画像処理ユニット(400)は、駆動機器(111,112,113)の位置センサ出力から生成した位置情報に基づいて撮像画像の一部である予め定めた大きさを有する探索範囲を決定し、探索範囲の画像から識別対象を検出する。
Description
本開示は、アライメントシステム、アライメント方法及びプログラムに関する。
FA(Factory Automation)の分野において、制御対象物であるワークの位置を基準位置に合わせるアライメント技術が活用されている。例えば、ワークがアライメント用のマークを有しており、撮像装置により撮像されたワーク画像からマークを検出し、マークの位置を基準位置に合わせることにより位置合わせを行う制御システムがある(例えば、特許文献1)。
特許文献1に記載の制御システムにおいて、ワークは、移動機構を備えたステージ上に載置され、撮像された画像からワーク上の特徴部分の位置を特定している。この制御システムは、移動機構から取得する情報に基づいて速度を算出してワークの移動量を予測し、特徴部分の位置を推測することにより撮像画像の探索範囲を限定している。これにより、特徴部分の探索時間を削減でき、ワークを高速に位置決めすることができると説明されている。
特許文献1に記載の制御システムは、移動機構から取得した各方向における過去の駆動量に基づいて速度を算出し、撮像の1回目と2回目の間のワークの移動量を予測して、2回目の撮像画像から探索範囲を限定しているが、移動量の予測計算により探索範囲の予測精度が劣化する可能性がある。
予測精度の劣化によりマークを検出できない場合には、撮像画像全範囲の再探索が必要となり、アライメント制御全体に要する時間が増大するという問題がある。また、マーク検出が不能となる状態を回避するために探索範囲を広げる場合には、探索時間が長くなり、処理量が増大するという問題がある。
本開示は上記事情に鑑みてなされたものであり、高速かつ高精度で位置決めすることができるアライメントシステム、アライメント方法及びプログラムを提供することを目的とする。
上記目的を達成するため、本開示のアライメントシステムは、識別対象を有するワークを撮像した撮像画像から識別対象を検出する画像処理ユニットと、画像処理ユニットが検出した識別対象の実座標に基づいて、ワークを移動させる駆動機器を制御する動作制御ユニットと、を備える。画像処理ユニットは、駆動機器の位置センサ出力から生成した位置情報に基づいて、撮像画像の一部である予め定めた大きさを有する探索範囲を決定し、探索範囲の画像から識別対象を検出することを特徴とする。
本開示によれば、駆動機器の位置センサ出力から生成した位置情報に基づいて探索範囲を決定するため、高速かつ高精度で位置決めすることが可能となる。
(実施形態1)
以下に、本開示を実施するための実施形態1について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
以下に、本開示を実施するための実施形態1について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
図1は、実施形態1に係るアライメントシステム1の全体構成例を示すブロック図である。アライメントシステム1は、制御対象であるワーク10を移動させるアライメント機構100と、アライメント機構100を制御する動作制御ユニット200と、ワーク10を撮像する撮像装置300と、撮像装置300が撮像した画像を処理する画像処理ユニット400と、画像処理ユニット400での処理に用いる各種設定を行う設定端末500と、を備える。
アライメント機構100には、各方向への駆動力を与えワーク10を移動させる駆動機器111,112,113が接続されている。また、駆動機器111,112,113には、駆動制御装置121,122,123がそれぞれ接続されており、動作制御ユニット200からの制御信号に基づいて、駆動制御装置121,122,123がそれぞれ駆動機器111,112,113を駆動させる。
駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400及び撮像装置300は、互いに通信接続されている。通信手段は、イーサネット(登録商標)、CameraLink、CoaxPress(登録商標)、USB(Universal Serial Bus、登録商標)等、従来の任意の通信手段でよいが、同期性を担保するため、CC-Link IE/field(登録商標)、CC-Link IE/TSN(登録商標)等のイーサネットをベースとした産業用ネットワークが好適である。
アライメント機構100は、ワーク10を載置する載置台101を備え、載置台101を移動させる機構を有する。例えば、水平方向で互いに直交するX方向及びY方向に載置台を並進移動させることができ、また、水平面上の回転方向であるθ方向に載置台を回転移動させることができる。本実施形態では、アライメント機構100に結合された駆動機器111がX方向に並進移動させ、駆動機器112がY方向に並進移動させ、駆動機器113がθ方向に回転移動させるとする。
駆動機器111,112,113は、アライメント機構100を精密に駆動することのできる任意の駆動機器(アクチュエータ)であり、例えばサーボモータである。駆動制御装置121,122,123は、動作制御ユニット200からの制御信号に基づいて、それぞれ、駆動機器111,112,113の駆動を制御する制御装置であり、例えばサーボアンプである。
駆動機器111,112,113は、内部又は外部に任意の位置センサを有しており、駆動機器111,112,113の駆動により実際に変化した位置を検出し出力する。位置センサは、例えばアクチュエータに付属されているエンコーダである。エンコーダの出力信号は、駆動制御装置121,122,123を介して動作制御ユニット200に入力される。本実施形態では、駆動機器111,112,113がサーボモータであり、駆動制御装置121,122,123がサーボアンプであり、位置センサがエンコーダである場合について説明する。
動作制御ユニット200は、駆動制御装置121,122,123に対して駆動機器111,112,113の動作に係る指令を行うモーションコントローラであり、例えばPLC(Programmable Logic Controller)を含む。動作制御ユニット200は、駆動制御装置121,122,123及び画像処理ユニット400から取得した情報に基づいて、指令を示す制御信号を生成し、駆動制御装置121,122,123に対して出力する。
動作制御ユニット200は、図2に示すように、プロセッサ210、揮発性メモリ220、不揮発性メモリ230、クロック240、通信インタフェース250を備える。プロセッサ210と、揮発性メモリ220と、不揮発性メモリ230と、クロック240と、通信インタフェース250と、はバスB1を介して互いに通信接続されている。
プロセッサ210は、例えばCPU(Central Processing Unit:中央演算装置)であり、不揮発性メモリ230に記憶された制御プログラム231を読み込んで実行することにより、位置情報生成部211、移動量算出部212、指令部213として機能する。
プロセッサ210の位置情報生成部211は、駆動機器111,112,113の位置センサの出力信号に基づいて、ワーク10が載置された載置台101の位置に対応する位置情報を生成する。移動量算出部212は、画像処理ユニット400が撮像画像から検出した識別対象の位置に基づいて、ワーク10のX方向、Y方向及びθ方向の移動量を算出する。指令部213は、移動量算出部212が算出した移動量に基づく制御信号を駆動制御装置121,122,123に出力する。
揮発性メモリ220は、プロセッサ210が実行する演算処理の際に、高速でデータの読み書きが可能なワークメモリであり、例えば、RAM(Random Access Memory)である。不揮発性メモリ230は、動作制御ユニット200の各種機能を実現するための制御プログラム231と、制御プログラム231の実行時に使用されるパラメータ、過去の検出データ及び指令データを含む制御データ232と、を記憶する。不揮発性メモリ230は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の不揮発性半導体メモリ、磁気ディスク、又は、光ディスクである。
クロック240は、動作制御ユニット200が有するクロック素子のクロック信号をカウントすることによりローカル時刻を計測し、さらに、駆動制御装置121,122,123、撮像装置300、画像処理ユニット400との同期を行う。これにより動作制御ユニット200は、駆動制御装置121,122,123、撮像装置300、画像処理ユニット400と同期された時刻情報を有する。
通信インタフェース250は、動作制御ユニット200が駆動制御装置121,122,123、撮像装置300、画像処理ユニット400と通信するためのインタフェースであり、例えば、CC-Link IE/field、CC-Link IE/TSN等の通信規格に準拠したインタフェースである。
撮像装置300は、アライメント機構100の上方からワーク10を一定時間間隔で撮像する撮像装置であり、例えばアライメントシステム1のアライメント精度を実現させるのに十分な解像度を有するカメラである。撮像装置300の数は任意であるが、アライメントのために用いる識別対象の数及び位置に応じて撮像装置300の数は決定される。図1は、2つの撮像装置300を備えた場合を示している。識別対象は、ワーク10の位置を示す任意の対象でよく、例えば、ワーク10上に付したアライメントマーク、ワーク10の角端部、又は、載置台101の角端部である。
撮像装置300も、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400と同期された時刻情報と、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400と通信するための通信インタフェースと、を有する。
画像処理ユニット400は、撮像装置300から取得した撮像画像に対して、互いに異なる探索方法の粗探索と詳細探索とにより、識別対象を検出する処理を行う。粗探索は、撮像装置300から取得した撮像画像の全範囲で実行され、詳細探索は、粗探索の範囲より狭い探索範囲で実行される。画像処理ユニット400は、詳細探索により識別対象が検出されたとき、動作制御ユニット200に対して、識別対象の実座標を出力する。ここで実座標は、動作制御ユニット200の移動量算出部212と整合の取れた基準座標における座標である。
画像処理ユニット400は、図3に示すように、プロセッサ410、揮発性メモリ420、不揮発性メモリ430、クロック440、通信インタフェース450を備える。プロセッサ410と、揮発性メモリ420と、不揮発性メモリ430と、クロック440と、通信インタフェース450と、はバスB2を介して互いに通信接続されている。
プロセッサ410は、例えばCPU(Central Processing Unit:中央演算装置)であり、不揮発性メモリ430に記憶された制御プログラム431を読み込んで実行することにより、画像取得部411、範囲決定部412、探索部413として機能する。
プロセッサ410の画像取得部411は、撮像装置300が撮像した画像を取得する。範囲決定部412は、動作制御ユニット200の位置情報生成部211が生成した位置情報を含む情報に基づいて、画像取得部411が取得した撮像画像のうち、識別対象を探索する範囲を決定する。探索部413は、範囲決定部412が決定した探索範囲内の画像について識別対象の詳細探索を行い、識別対象を検出できたときは、識別対象の実座標を、動作制御ユニット200に対して出力する。
揮発性メモリ420は、プロセッサ410が実行する演算処理の際に、高速でデータの読み書きが可能なワークメモリであり、例えば、RAM(Random Access Memory)である。不揮発性メモリ430は、画像処理ユニット400の各種機能を実現するための制御プログラム431と、制御プログラム431の実行時に使用されるパラメータ、過去の検出データを含む制御データ432と、を記憶する。不揮発性メモリ430は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の不揮発性半導体メモリ、磁気ディスク、又は、光ディスクである。
クロック440は、画像処理ユニット400が有するクロック素子のクロック信号をカウントすることによりローカル時刻を計測し、さらに、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300との同期を行う。これにより画像処理ユニット400は、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300と同期された時刻情報を有する。
通信インタフェース450は、画像処理ユニット400が駆動制御装置121,122,123、動作制御ユニット200、撮像装置300と通信するためのインタフェースであり、例えば、CC-Link IE/field、CC-Link IE/TSN等の通信規格に準拠したインタフェースである。
設定端末500は、画像処理ユニット400の制御プログラム431に対応したアプリケーションプログラムをインストールした端末であり、例えば、パーソナルコンピュータである。設定端末500は、画像処理ユニット400の不揮発性メモリ430に記憶されているパラメータの入力又は変更を含む画像処理ユニット400の管理機能を有する。設定端末500が画像処理ユニット400と通信接続するための通信インタフェースは、画像処理ユニット400が有するインタフェースに対応した任意のインタフェースであり、例えば、USBインタフェース又はRS232Cインタフェースである。
動作制御ユニット200は、画像処理ユニット400が検出した識別対象の実座標と、アライメント先の目標座標との差に基づく移動量を算出し、移動量に基づく制御信号を駆動制御装置121,122,123に対して出力する。
以上説明した構成を有するアライメントシステム1の動作について説明する。まず、前提となる、識別対象の位置に基づくアライメント方法の例について、図4,5を用いて説明する。図4,5は、識別対象がワーク10の端部に付されたアライメントマーク1001,1002である場合のアライメント方法を説明する図である。
アライメントマーク1001,1002の形状は任意であるが、基準点の位置及び回転角度が明確に判別できる形状が好ましく、例えば、図4,5に示す十字のマークが好適である。また、アライメントマークの数は任意であり、図4に示すように1個でもよく、図5に示すようにワーク10の対角の端部に2個のアライメントマーク1001,1002が付されていてもよい。
1個のアライメントマーク1001を用いる場合は、1つの撮像装置300で撮像範囲1300の画像を取得する。2個のアライメントマーク1001,1002を用いる場合で、かつ1つの撮像範囲1300で2個のアライメントマーク1001,1002を撮像できない場合は、2つの撮像装置300で互いにずれた撮像範囲1300の画像を取得する。
図4のように1つのアライメントマーク1001を使用する場合は、アライメント先マーク1101の基準点の座標と、ワーク10上のアライメントマーク1001の基準点の座標と、アライメント先マーク1101とアライメントマーク1001との角度差の3つの情報を用いる。
一方、図5のように2つのアライメントマーク1001,1002を使用する場合は、アライメント先マーク1101,1102の基準点の中点座標と、ワーク10上のアライメントマーク1001,1002の基準点の中点座標と、アライメント先マーク1101,1102を結ぶ直線とアライメントマーク1001,1002を結ぶ直線との角度差の3つの情報を用いる。
図4,5のいずれの場合も、角度差Δθがθ軸の移動量となる。このため、動作制御ユニット200は、図4に示すように、ワーク10をアライメント機構100のθ軸回転中心1200を中心に角度Δθ回転した後の仮想マーク1201の基準点の仮想座標を求める。その後、仮想座標と、アライメント先マーク1101の目標座標と、の差により、X軸方向の移動量ΔX及びY軸方向の移動量ΔYを計算する。このようにして得られたΔθ、ΔX、ΔYの移動を実現する制御信号を、動作制御ユニット200の指令部213が駆動制御装置121,122,123に送信することにより指令を行う。
図4に示すように、1つのアライメントマーク1001を使用する方法は、十字マークのように、アライメントマーク1001の回転を明確に判別できる場合に使用できる。一方、図5に示すように、2つのアライメントマーク1001,1002を使用する場合は、アライメントマーク自体の回転を検出する必要がないため、例えば、円のアライメントマークであってもワークの回転を検出できる。また、十分に離れた2点の検出によりθ方向の角度差Δθを算出するため高精度で制御ができる。
このようにして、動作制御ユニット200が、識別対象であるアライメントマーク1001,1002の基準点の座標及び角度差に基づいてΔθ、ΔX、ΔYを算出し、これらの値を用いて駆動制御装置121,122,123が駆動機器111,112,113を制御してワーク10を移動させる。しかし、通常は、一度で目標座標との差が認容範囲内にならないことも多いため、識別対象の検出と駆動機器111,112,113の制御とが繰り返し実行される。
このような繰り返しの処理において、撮像装置300による撮像画像から識別対象を探索する処理の負担が非常に大きい。よって、本実施形態に係るアライメントシステム1は、探索を実行する範囲を限定して処理負担を軽減させたものである。
以下、詳細の処理について、図6-8を用いて説明する。図6は、本実施形態に係るアライメントシステム1の機能構成例を示したブロック図であり、図7は、動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図8は、画像処理ユニット400が実行する探索処理のフローチャートである。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図7、ステップS101)。具体的には、動作制御ユニット200が、駆動制御装置121,122,123に対して、各方向の移動を実現させる制御信号を出力する。そして、制御信号に基づく駆動制御装置121,122,123の制御により駆動機器111,112,113が駆動し、ワーク10を載置した載置台101が移動する。
移動終了後、動作制御ユニット200は画像処理ユニット400に対して、撮像画像の取得及び探索を指示するとともに(ステップS102)、駆動機器111,112,113が有する位置センサの出力に基づいて位置情報を生成し出力する(ステップS103)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。
ステップS102で動作制御ユニット200から識別対象の探索処理を指示された画像処理ユニット400は、図8に示す処理を実行する。ここでは撮像が初回であるため(ステップS201:Yes)、画像処理ユニット400の画像取得部411は、撮像装置300が撮像した撮像画像を取得する(ステップS202)。その後、探索部413が、識別対象の粗探索(ラフサーチ)を実行する(ステップS203)。
粗探索は、例えば、予め登録しておいたアライメントマーク1001のパターンモデルを用いたパターンマッチング処理により行う。探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのアライメントマーク1001を検出し、アライメントマーク1001の基準点の位置又は回転角度に基づいて、詳細探索の探索範囲を決定する(ステップS204)。このときの探索範囲の形状又は大きさは、アライメントマーク1001の形状又は大きさに応じて予め設定されたものであり、設定端末500へのユーザの入力により設定可能としてもよい。
例えば、図9Aに示す十字のアライメントマーク1001の場合には、パターンマッチングで基準点である中心の位置と十字の回転角度を特定し、アライメントマーク1001の大きさに対して、予め定めた余裕分を追加した大きさの探索範囲1301を決定する。また、図9Bに示す角度に係る探索範囲(探索角度範囲)も決定する。
次に、探索部413は、ステップS204で決定した探索範囲内の画像に対して、詳細探索(ファインサーチ)を実行する(ステップS205)。詳細探索としては、例えば、エッジ検出を行い、正確な直線又は曲線を検出することにより、より正確な識別対象の実座標を取得することができる。ここで、識別対象の実座標は、識別対象の基準点の位置(XY座標)と回転角度(θ座標)を含む。
探索部413がステップS205の詳細探索で識別対象を検出できなかった場合は(ステップS212:No)、ステップS201に戻り、ステップS202~205の処理を繰り返す。一方、ステップS205の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS205で取得した識別対象の実座標を出力する(ステップS213)。
ここで図7のフローチャートに戻り、画像処理ユニット400による探索処理が終了後(ステップS104:Yes)、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。ここで、目標座標は、アライメント先の座標であり、中心位置(XY座標)と回転角度(θ座標)を含む。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107;指令ステップ)。具体的には、実座標を目標座標に一致させる制御信号を駆動制御装置121,122,123に対して出力する。
駆動機器111,112,113の駆動終了後、ステップS102に戻る。動作制御ユニット200は再度、撮像と探索を指示し(ステップS102)、位置情報を出力する(ステップS103)。
再び、図8のフローチャートに移り、撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、位置情報を取得する(ステップS206)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の予測座標の算出を行う(ステップS207)。
具体的には、範囲決定部412は、初回のアライメント制御時に動作制御ユニット200から取得した位置情報と、初回の詳細探索で検出した実座標の対応関係を特定する。例えば、初回の位置情報のXY座標が(x1,y1)で表され、実座標のXY座標が(X1,Y1)で表されるとき、これらの関係は、以下の式(1)の定数行列Aで表される。
2回目のアライメント制御時に動作制御ユニット200から取得した位置情報のXY座標を(x2,y2)とすると、2回目の探索で用いる予測座標のXY座標(X2,Y2)は、式(1)で表される定数行列Aを用いて、以下の式(2)で表すことができる。また、3回目以降を含むn回目についても同様に式(3)で表すことができる。
なお、位置情報と実座標の対応関係を表す定数行列Aは、繰り返しのアライメント制御において取得する位置情報及び実座標に基づいて、毎回更新してもよく、又は、複数回の平均を用いてもよい。あるいは、事前のキャリブレーションにより、予め位置情報と実座標の対応関係を構築してもよい。例えば、識別対象として載置台101の角端部を用いたアライメント制御の場合には、実行毎の誤差が小さいため、このような事前のキャリブレーションが有効である。
このようにして、撮像画像から検出した識別対象の基準点のXY座標と位置情報との対応関係を予め特定し、この対応関係を用いて新たに取得した位置情報からXY座標を予測する(ステップS207)。その後、予測したXY座標を中心とし、予め定めた大きさの探索範囲を決定する(ステップS208)。また、θ座標についても、同様に、詳細探索で検出した実座標と位置情報との対応関係を予め特定した上で、新たに取得した位置情報に基づいて識別対象の回転角度を示すθ座標の予測を行い(ステップS207)、予測したθ座標を中心とし、予め定めた角度幅の探索角度範囲を決定する(ステップS208)。なお、探索範囲は予測座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測座標を含む範囲を探索範囲としてもよい。
ここで、探索範囲の大きさは、設定端末500へのユーザの入力により設定してもよく、自動で設定してもよい。例えば、探索範囲の大きさは、識別対象の形状又は大きさに対して、駆動機器111,112,113の移動速度に基づいて自動又は手動で設定した余裕分を追加した大きさであってもよい。あるいは、過去のアライメント制御結果に基づいて統計的に探索範囲の大きさを決定してもよく、例えば、識別対象の形状及び大きさに対して、過去の互いに対応する時点における、位置情報から算出した予測座標と、撮像画像から検出した実座標との差の平均値を余裕分として加えた大きさであってもよい。
つまり、範囲決定部412は、2回目以降でかつ前回検出を失敗していない場合には、ステップS203の粗探索を実行せずに、ステップS207で位置センサ出力に基づく位置情報から算出した予測座標を中心とする探索範囲を決定する。この位置情報に基づく探索範囲の決定処理は、ステップS203で実行した粗探索による探索範囲の決定処理と比較して、処理量が大幅に少ない。よって、毎回粗探索から行う従来のアライメント制御と比較して、高速制御が可能となる。
次に、画像取得部411が画像を取得し(ステップS209;画像取得ステップ)、取得した画像のうちステップS208で決定した探索範囲の画像について、簡易処理を行う(ステップS210)。簡易処理は、詳細探索を行う前の任意の処理であり、例えば、探索部413が、ステップS208で決定した探索範囲より広いが全範囲より限定した範囲での粗探索を行い、探索範囲を再決定してもよい。あるいは、ステップS207でXY座標の予測座標を算出してステップS208でXY座標における探索範囲を決定しておいた場合には、簡易処理として、θ座標の粗検索を行い探索角度範囲を決定してもよい。なお、簡易処理は省略してもよい。
その後、探索部413が、ステップS208で決定した探索範囲又はステップS210で決定した範囲について詳細探索を実行する(ステップS211:探索ステップ)。詳細探索の方法は、ステップS205と同じである。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS202~205の処理を実行する。ここで、全範囲の粗探索からやり直すのは、詳細探索で検出失敗を繰り返すことにより、制御不能になるのを回避するためである。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する。
再度、図7のフローチャートに戻り、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213がアライメント機構100の位置を補正する指令を実行する(ステップS107)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。その後、ステップS102に戻り、処理を継続する。
以上説明したように、本実施形態に係るアライメントシステム1は、識別対象を有するワーク10を撮像した画像から識別対象を検出する画像処理ユニット400と、画像処理ユニット400が検出した識別対象の実座標に基づいて、ワーク10を移動させる駆動機器111,112,113を制御する動作制御ユニットと、を備える。画像処理ユニット400は、駆動機器111,112,113の位置センサ出力に基づく位置情報と撮像画像から検出する識別対象の実座標との対応関係を予め特定し、この対応関係を用いて、次に取得する位置情報から識別対象の予測座標を算出し、この予測座標を含む探索範囲を決定し、探索範囲の画像から識別対象を検出することとした。これにより、全範囲の粗探索処理を省略でき高速かつ高精度で位置決めすることが可能となる。
(実施形態2)
以下に、本開示を実施するための実施形態2について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
以下に、本開示を実施するための実施形態2について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
本実施形態2に係るアライメントシステム2の全体構成及び各構成部のハードウェア構成は実施形態1と同様である。本実施形態2に係るアライメントシステム2において、画像処理ユニット400の画像取得部411が、転送範囲を指定した転送指示を行うことにより、撮像装置300から撮像画像を取得し、転送範囲内の撮像画像について探索部413が探索処理を行う点が、実施形態1と異なる。
本実施形態においても、実施形態1と同様に、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400及び撮像装置300は、互いに通信接続されている。ただし、本実施形態は、実施形態1よりもさらに高い応答性を求められるため、CC-Link IE/field、CC-Link IE/TSN等の産業用ネットワークにより通信接続することが望ましい。
CC-Link IE/field、CC-Link IE/TSN等の産業用ネットワークは、同期性を担保するために、H/W機器にて一定以上の定時性を実現しつつ、統計的に伝送路遅延計測を行い、μ秒精度で機器間のタイミングを合わせる仕組みを有している。
伝送路遅延計測による同期方式は、マスタ局からデバイス局までの伝送路遅延測定値を利用して、より高精度の同期を実現する方式である。図10に伝送路遅延計測による同期方式を示す。伝送路遅延計測方式では、同期ポイントで同期を行う。マスタ局40から送信された伝送制御(MyStatus)フレームは距離が離れるにつれて遅延が生じる。
マスタ局40は、各デバイス局50、60、70から応答信号を受信したマスタ局時刻から各デバイス局50、60、70における伝送路遅延時間を算出し、各デバイス局50、60、70に送信する。同期ポイントは、マスタ局40が伝送制御(MyStatus)フレームを送信してから一定時間(Tsync)経過後の時刻である。各デバイス局50、60、70は、伝送制御(MyStatus)フレームを受け取ってから、伝送路遅延時間を差し引いた時間であるTps時間(Tsync-遅延時間)後に同期を行う。
本実施形態では、この伝送路遅延計測方式を用いて、例えば動作制御ユニット200をマスタ局40として、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300及び画像処理ユニット400のタイミング制御が行われる。つまり、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300及び画像処理ユニット400は、伝送路遅延時間が計測される産業用ネットワーク(通信線)で互いに通信接続されており、同期された時刻情報を有することとなる。
マスタ局40である動作制御ユニット200は、指示の送信時刻から最長の伝送路遅延時間を経過した後の特定時刻を同期ポイントとして設定する。そして、画像処理ユニット400は、未来の特定時刻における予測座標を含む範囲を、転送範囲として決定し、撮像装置300に対して特定時刻における撮像と、撮像した画像のうち転送範囲内の画像の転送と、を指示する。
さらに撮像装置300についてはシャッタ速度も考慮したタイミング制御を行う必要がある。図11は、撮像装置300のシャッタのタイミング制御を説明する図である。同期ポイントの算出元である同期された時刻情報を用いて、画像処理ユニット400から得た又は事前の設定情報に従って撮像装置300が自動的に撮像タイミングを決定する。このとき、未来の特定時刻で撮像するために、画像処理ユニット400は必要に応じて猶予時間内に先行した撮像指示を行うことができる。また、予約撮像のタイミングを露出時間範囲の中心を合わせることも有用である。
図12は、本実施形態に係るアライメントシステム2の機能構成例を示したブロック図であり、図13は、動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図14は、画像処理ユニット400が実行する探索処理のフローチャートである。図13,14のフローチャートに沿って、アライメントシステム2の動作について説明する。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図13、ステップS101)。具体的には、動作制御ユニット200が、駆動制御装置121,122,123に対して、各方向の移動を実現させる制御信号を出力する。そして、制御信号に基づく駆動制御装置121,122,123の制御により、駆動機器111,112,113が駆動し、ワーク10を載置した載置台101が移動する。
移動指令後、動作制御ユニット200は撮像装置300における撮像時刻を時刻Tn(n=1)に決定し(ステップS122)、画像処理ユニット400に対して指定する。また、動作制御ユニット200の位置情報生成部211は、駆動機器111,112,113が有する位置センサの出力に基づいて位置情報を生成し位置情報を出力する(ステップS103)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。
動作制御ユニット200から位置情報を取得した画像処理ユニット400は、図14に示す処理を実行する。ここでは撮像が初回であるため(ステップS201:Yes)、画像処理ユニット400の画像取得部411は、撮像装置300に対して、時刻Tn(n=1)における撮像と、全範囲の撮像画像の転送を指示する(ステップS221)。その後、画像取得部411は、全範囲の撮像画像を取得する(ステップS222)。
次に、画像処理ユニット400の探索部413が、全範囲の撮影画像に対して、識別対象の粗探索(ラフサーチ)を実行する(ステップS203)。粗探索は、例えば、予め登録しておいたアライメントマーク1001のパターンモデルを用いたパターンマッチング処理により行う。探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのアライメントマーク1001を識別対象として検出し、アライメントマーク1001の基準点の位置又は回転角度に基づいて、詳細探索の探索範囲を決定する(ステップS204)。このときの探索範囲の形状又は大きさは、アライメントマーク1001の形状又は大きさに基づいて予め決定されたものであり、設定端末500へのユーザの入力により設定可能としてもよい。
次に、ステップS204で決定した探索範囲内の画像に対して、詳細探索(ファインサーチ)を実行する(ステップS205)。詳細探索は、例えば、エッジ検出を行い、正確な直線又は曲線を検出することにより、より正確な識別対象の実座標を取得することができる。ここで、識別対象の実座標は、識別対象の基準点の位置(XY座標)と回転角度(θ座標)を含む。
ステップS205の詳細探索で識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、ステップS221,S222,S203~205の処理を繰り返す。一方、ステップS205の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS205で取得した識別対象の実座標を出力する(ステップS213)。
図13のフローチャートに戻り、画像処理ユニット400の探索処理が終了後(ステップS104:Yes)、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。ここで、目標座標は、アライメント先の座標であり、中心位置(XY座標)と回転角度(θ座標)を含む。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107;指令ステップ)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。
動作制御ユニット200は、アライメント機構100への補正指令後、ステップS122に戻り、撮像時刻を時刻Tn(n=2)に決定し(ステップS122)、位置情報を出力し(ステップS103)、画像処理ユニット400の探索処理が終了するまで待機する(ステップS104)。
再度、図14のフローチャートに戻り、次の撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、撮像装置300に対して、時刻Tn(n=2)における撮像を指示する(ステップS223)。また、画像処理ユニット400は動作制御ユニット200から位置情報を取得する(ステップS206)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の座標の予測を行う(ステップS207)。
座標の予測方法は、実施形態1と同様であり、初回のアライメント制御時に動作制御ユニット200から取得した位置情報と、初回の詳細探索で検出した実座標の対応関係を特定する。範囲決定部412は、特定した対応関係を用いて、ステップS206で取得した位置情報から識別対象の基準点のXY座標の予測を行う(ステップS207)。その後、範囲決定部412は、ステップS207で予測したXY座標を中心とし、予め定めた大きさの転送範囲を決定し、撮像装置300に対して、転送範囲を指定した撮像画像の転送指示を行う。(ステップS226)。なお、転送範囲は予測したXY座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測したXY座標を含む範囲を転送範囲としてもよい。
ここで、転送範囲の大きさは、設定端末500へのユーザの入力により設定してもよい。例えば、ロバスト性と処理速度とがトレードオフの関係にあるため、処理のぶれを許容しつつ平均処理速度を最大化することによりスループットを優先させる場合には転送範囲を小さく設定してもよい。一方、処理速度よりもジッター特性を優先させて処理時間を一定化したい場合には、転送範囲を大きく設定してもよい。
あるいは、転送範囲の大きさは、識別対象の形状又は大きさに対して、駆動機器111,112,113の移動速度に基づいて自動又は手動で設定した余裕分を追加した大きさであってもよい。あるいは、範囲決定部412が過去のアライメント制御結果に基づいて統計的に転送範囲の大きさを決定してもよく、例えば、識別対象の大きさに、過去の位置情報に基づいて算出した予測座標と、画像から検出した識別対象の実座標との差の平均値を余裕分として加えた大きさを転送範囲の大きさとしてもよい。
このように、撮像が2回目以降でかつ前回検出を失敗していない場合には、撮像装置300は全範囲の画像を転送せずに、ステップS226で求めた、位置センサの位置情報に基づく予測座標を中心とする転送範囲の画像のみを転送する。ここで転送する画像のデータ容量は、ステップS221で転送する全範囲の画像のデータ量と比較して大幅に少ない。よって、毎回全範囲の画像を転送する場合と比較して、データの転送容量を削減でき転送時間も短縮され、また、全範囲の粗探索を実行しないため高速制御が可能となる。
ステップS226で転送指示することにより転送されてきた、転送範囲の画像を画像取得部411が取得し(ステップS209;画像取得ステップ)、探索部413が、転送範囲内の画像について簡易処理を行う(ステップS210)。簡易処理は、詳細探索を行う前の任意の処理であり、例えば、ステップS209で取得した転送範囲内の画像について粗探索を行い、探索範囲を決定してもよい。特に、θ座標の粗検索を簡易処理として行い、探索角度範囲を決定してもよい。なお、簡易処理は省略してもよい。
その後、ステップS209で取得した転送範囲内の画像について、又は、ステップS210で決定した探索範囲について詳細探索を実行する(ステップS211;探索ステップ)。詳細探索の方法は、ステップS205と同じである。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS221,S222,S203~205の処理を実行する。ここで、全範囲の画像の粗探索からやり直すのは、詳細探索で検出失敗を繰り返すことにより、制御不能になるのを回避するためである。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する(ステップS213)。
再度、図13のフローチャートに戻り、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。その後、ステップS122に戻り、処理を継続する。
このようにして、画像処理ユニット400の範囲決定部412が位置情報に基づいて画像の転送範囲を決定し、探索部413が撮像装置300から転送される画像について詳細探索を行うとした。これにより、転送時間及び探索時間を大幅に短縮することができる。
なお、画像処理ユニット400から撮像装置300への転送範囲の指定は、撮像指示と共に転送範囲を含む撮像パラメータを指定する方法の他、事前に撮像装置300に対して転送範囲を指定し、その後撮像トリガを撮像装置300に出力してもよい。
前者の撮像指示と共に転送範囲指定を行う場合は、前述した伝送路遅延計測の同期方式を用いて、撮像装置300の撮像と、位置情報の取得のタイミングを合わせることにより、待機時間を削減すると共に適切な転送範囲での探索が可能となる。一方、後者の事前に転送範囲を指定する場合は、撮像トリガのみを専用線で出力することにより、撮像タイミングを高精度に合わせることが可能となる。
また、図14のステップS221で指定する全範囲の画像転送、及び、ステップS226で指定する転送範囲の画像転送は、撮像装置300により画像を縮小して転送してもよい。縮小方法は、従来の任意の方法でよく、例えば、サブサンプリング又はビニングが用いられる。特にビニングは、処理が比較的軽く、画素信号のS/N比(Signal to Noise Ratio)を改善させる効果があり、縮小による解像度の低下に対して、位置認識精度の低下を抑えることができるため好適である。
ステップS226での転送指示により転送範囲の限定(トリミング)を行う際に、アライメント制御の早い段階で実座標と目標座標が離れている場合に転送範囲の限定と共に縮小を行い、実座標と目標座標との距離が一定の範囲内となり近づいてきた後に、縮小を行わない制御を行ってもよい。また、全範囲又は転送範囲内の画像の縮小を行う場合に、探索用のパターンモデルとして縮小データに合わせたモデルを予め用意しておき、探索部413はこのモデルを用いた粗探索又は詳細探索を行ってもよい。
また、ステップS226での転送指示により転送範囲の撮像画像を取得した後の詳細探索(ステップS211)に並行して、全範囲の撮像画像を取得しておいてもよい。ステップS211の詳細探索で識別対象が検出できなかった場合(ステップS212:No)の全範囲の撮像画像を取得する時間を削減することができる。この場合、詳細探索で識別対象が検出できた段階で、全範囲の撮像画像の転送停止又は転送画像の削除を行ってもよい。
以上説明したように、本実施形態に係るアライメントシステム2において、画像処理ユニット400は、駆動機器111,112,113が有する位置情報と撮像画像から検出する識別対象の実座標との対応関係を予め特定し、この対応関係を用いて、次に取得する位置情報から識別対象の予測座標を算出し、この予測座標を含む画像の転送範囲を決定し、撮像装置300から転送された転送範囲内の画像を詳細探索して識別対象を検出することとした。これにより、転送時間及び転送する画像の容量を削減でき、また、全範囲の画像の粗探索を省略できるため、高速かつ高精度でアライメント制御することが可能となる。
(変形例)
上記実施形態は、種々の変更が可能である。変形例について以下に述べる。
上記実施形態は、種々の変更が可能である。変形例について以下に述べる。
[変形例1]
実施形態1,2において、画像処理ユニット400の範囲決定部412が、駆動機器111,112,113の位置センサ出力に基づく位置情報から算出した予測座標を含む範囲を、探索範囲又は転送範囲として決定するとした。しかし、探索範囲又は転送範囲を他の方法で決定してもよい。本変形例1は、探索範囲又は転送範囲を決定する他の方法について説明する。
実施形態1,2において、画像処理ユニット400の範囲決定部412が、駆動機器111,112,113の位置センサ出力に基づく位置情報から算出した予測座標を含む範囲を、探索範囲又は転送範囲として決定するとした。しかし、探索範囲又は転送範囲を他の方法で決定してもよい。本変形例1は、探索範囲又は転送範囲を決定する他の方法について説明する。
本変形例は、駆動機器111,112,113の駆動に係る指令情報を、探索範囲又は転送範囲を決定するための予測座標の算出に用いる。具体的には、画像処理ユニットの範囲決定部412が指令情報に基づいて予測座標の算出を行い、予測座標を含む探索範囲又は転送範囲を決定する。
本変形例において、撮像装置300の撮像と、指令情報に基づく駆動機器111,112,113の駆動と、位置センサ出力の取得と、のタイミング制御を、同期性を担保して行うことで、より高速な制御が可能となる。図15は本変形例に係るアライメントシステム3の機能構成例を示したブロック図であり、図16は本変形例に係る動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図17は画像処理ユニット400が実行する探索処理のフローチャートである。
ここで、図15-17は、実施形態2の変形例であって、指令情報に基づいて画像の転送範囲を決定する形態を表しているが、実施形態1の変形例として、指令情報に基づいて画像の探索範囲を決定する形態も、同様に実現できる。以下、図16,17のフローチャートに沿って、本変形例に係るアライメントシステム3の動作について説明するが、実施形態2と同じ処理については説明を省略する。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図16、ステップS101)。このときの指令情報は、転送範囲の決定に用いるために、画像処理ユニット400に渡される。その後、指令情報に係る制御信号に基づいて駆動機器111,112,113が駆動開始し、ワーク10を載置した載置台101が移動する。
移動指令後、動作制御ユニット200は撮像装置300における撮像時刻を未来の特定時刻Tn(n=1)を決定し(ステップS122)、画像処理ユニット400に対して指定する。また、動作制御ユニット200の位置情報生成部211は、駆動機器111,112,113が有する位置センサの出力に基づいて、時刻Tnにおける位置情報の記録を指定する(ステップS123)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。その後の画像処理ユニット400の動作は、実施形態2と同様であり、図17のステップS221,222,203-205,212,213の処理を実行する。
図16のフローチャートに戻り、画像処理ユニット400の探索処理が終了した時に(ステップS104:Yes)、動作制御ユニット200の移動量算出部212が、画像処理ユニット400より実座標を取得し(ステップS105)、位置情報生成部211が時刻Tnの位置センサ出力に基づいて位置情報を生成し記録する(ステップS124)。移動量算出部212は、実座標と目標座標との差を算出し、実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行するが、このとき、ステップS124で記録した特定時刻Tnにおける位置情報を参照し、指令が示す位置と位置情報が示す実際の位置とのずれも補償した指令を実行する(ステップS125)。
指令部213によりアライメント機構100への指令を実行した後、ステップS122に戻り、撮像時刻を時刻Tn(n=2)に決定し(ステップS122)、特定時刻Tn(n=2)の位置情報の記録を指定し(ステップS123)、画像処理ユニット400の探索処理が終了するまで待機する(ステップS104)。
再度、図17のフローチャートに移り、次の撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、撮像装置300に対して、時刻Tn(n=2)における撮像を指示する(ステップS223)。また、画像処理ユニット400は動作制御ユニット200から時刻Tnにおける指令情報を取得する(ステップS224)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の予測座標を算出する(ステップS225)。
範囲決定部412による予測座標の算出方法は、まず、実施形態2の位置情報に代えて初回のアライメント制御時の指令情報と、初回の詳細探索で検出した実座標と、の対応関係を特定する。範囲決定部412は、特定した対応関係を用いて、ステップS224で取得した特定時刻Tnの予定位置に係る指令情報から識別対象の基準点の予測座標(XY座標)の算出を行う(ステップS225)。対応関係を用いた予測方法は実施形態2と同様である。
その後、範囲決定部412は、ステップS225で予測したXY座標を中心とし、予め定めた大きさの転送範囲を決定し、撮像装置300に対して、決定した転送範囲内の画像の転送を指示する。(ステップS226)。なお、転送範囲は予測したXY座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測したXY座標を含む範囲を転送範囲としてもよい。
ステップS226で転送指示することにより転送されてきた、転送範囲の画像を画像取得部411が取得し(ステップS209)、簡易処理を行う(ステップS210)。その後、探索部413は、ステップS209で取得した転送範囲内の画像について、又は、ステップS210で簡易処理した画像について詳細探索を実行する(ステップS211)。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS221,S222,S203-205の処理を実行する。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する(ステップS213)。その後の動作制御ユニット200の処理は実施形態2と同様である。
このようにして、画像処理ユニット400の範囲決定部412が動作制御ユニット200の指令情報に基づいて画像の転送範囲を決定し、探索部413が撮像装置300から転送される画像について詳細探索を行うとした。これにより、未来の予定位置に係る指令情報に基づいて探索範囲又は転送範囲を決定するため、より高効率なタイミング制御ができ、より高速のアライメント制御が可能となる。
[変形例2]
本変形例2は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。実施形態1,2においては、範囲決定部412が、位置情報に基づいて算出した予測座標を中心とする探索範囲又は転送範囲を決定するとしたが、本変形例では、前回検出した実座標を中心とする探索範囲又は転送範囲を決定する。
本変形例2は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。実施形態1,2においては、範囲決定部412が、位置情報に基づいて算出した予測座標を中心とする探索範囲又は転送範囲を決定するとしたが、本変形例では、前回検出した実座標を中心とする探索範囲又は転送範囲を決定する。
具体的には、範囲決定部412は、位置情報又は指令情報を取得することなく、画像処理ユニット400の探索部413による詳細探索で前回検出し、不揮発性メモリ230に記憶しておいた識別対象の基準点を中心とする範囲を転送範囲として決定する。あるいは、範囲決定部412は、記憶しておいた識別対象の基準点を中心とする範囲、又は、識別対象の回転角度を中心とする角度範囲を、探索範囲として決定する。なお、転送範囲又は探索範囲は前回検出した実座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、前回検出した実座標を含む範囲を転送範囲又は探索範囲としてもよい。
探索範囲又は転送範囲の大きさは、過去に検出した識別対象の実座標の移動速度に基づいて決定してもよい。あるいは、アライメント制御の設定パラメータに基づいて各駆動機器の移動速度に基づいて決定してもよい。例えば、最大移動速度に撮像装置300の撮像間隔を乗じて決定した大きさにしてもよい。撮像間隔が短く設定されることにより撮像間隔間の移動距離が短い場合には、前回の検出結果を利用することで十分に探索範囲又は転送範囲を限定することができるため、実施形態1,2及び変形例1と比較して、処理を簡易化することが可能となる。
[変形例3]
本変形例3は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。本変形例では、範囲決定部412は、探索部413による詳細探索で過去に検出した実座標の軌跡に基づいて探索範囲又は転送範囲を決定する。つまり、実施形態1,2のように位置情報又は指令情報を取得することなく、画像処理ユニット400の探索部413による詳細探索で過去に検出し、不揮発性メモリ230に記憶しておいた識別対象の実座標の軌跡に基づいて予測座標を算出し、予測座標を中心とする範囲を探索範囲又は転送範囲として決定する。
本変形例3は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。本変形例では、範囲決定部412は、探索部413による詳細探索で過去に検出した実座標の軌跡に基づいて探索範囲又は転送範囲を決定する。つまり、実施形態1,2のように位置情報又は指令情報を取得することなく、画像処理ユニット400の探索部413による詳細探索で過去に検出し、不揮発性メモリ230に記憶しておいた識別対象の実座標の軌跡に基づいて予測座標を算出し、予測座標を中心とする範囲を探索範囲又は転送範囲として決定する。
具体的には、範囲決定部412は、識別対象の基準点のXY座標の軌跡に基づいて予測したXY座標を中心とし予め定めた大きさを有する範囲を転送範囲として決定する。あるいは、範囲決定部412は、識別対象の基準点のXY座標の軌跡に基づいて予測したXY座標を中心とし予め定めた大きさを有する範囲、又は、θ座標の軌跡に基づいて予測したθ座標を中心とする角度範囲を、探索範囲として決定する。図18A,Bは識別対象の予測を説明する図である。なお、転送範囲又は探索範囲は予測座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測座標を含む範囲を転送範囲又は探索範囲としてもよい。
予測座標(XYθ座標)の算出は、前回以前2回分以上の時刻と、各時刻の実座標を用いて、撮像装置300の撮像時における予測により行う。例えば、図18Aに示すように、前回と前々回の2回分のXY座標のデータに基づいて線形予測して、撮像時におけるXY座標を予測する。あるいは、図18Bに示すように、前回と前々回と前々々回の3回分のXY座標のデータに基づいて2次予測して、撮像時におけるXY座標を予測する。
探索範囲又は転送範囲の大きさは、過去に検出した識別対象の実座標の移動速度に基づいて決定してもよい。あるいは、駆動機器111,112,113の移動速度に基づいて決定してもよい。例えば、最大移動速度に撮像装置300の撮像間隔を乗じて決定した大きさにしてもよい。線形予測は、2次予測又はさらに高次の予測より、予測精度が悪くなるため、探索範囲又は転送範囲の大きさを大きくする必要がある。
また、探索範囲又は転送範囲の大きさは、過去の検出結果に対する誤差の統計的情報に基づいて決定してもよい。例えば、識別対象の形状及び大きさに対して、過去の互いに対応する時点における、実座標の軌跡に基づく予測座標と、撮像画像から検出した実座標との差の平均値を余裕分として加えた大きさであってもよい。
本変形例によれば、撮像間隔が長く撮像間隔間の移動距離が長い場合には、予測精度が向上し、探索範囲又は転送範囲を狭くすることが可能となる。
[変形例4]
実施形態1,2において、識別対象がワーク10上に付されたアライメントマーク1001,1002である場合について説明したが、識別対象の形態に応じて、処理を一部変更してもよい。図19Aは本変形例に係る粗探索を説明する図であり、図19Bは本変形例に係る詳細探索を説明する図である。
実施形態1,2において、識別対象がワーク10上に付されたアライメントマーク1001,1002である場合について説明したが、識別対象の形態に応じて、処理を一部変更してもよい。図19Aは本変形例に係る粗探索を説明する図であり、図19Bは本変形例に係る詳細探索を説明する図である。
例えば、ワーク12が図19Aに示すような多数の端子を有するIC(Integrated Circuit)であって、識別対象がICの端子である場合には、探索部413はパターンモデル1312を用いて、パターンマッチング処理を行うことにより粗探索を行う(図8、ステップS203)。
このとき、探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのパターン1313の位置又は回転角度に基づいて、詳細探索の探索範囲1314を決定する(図8、ステップS204)。このパターンマッチングにおいて、図19Aに示すように、一致率が予め定めた閾値以上であるパターンが複数検出される場合があるが、その場合は一致率が最高である場合のパターン1313を特定して、探索範囲1314を決定してもよい。
図19Bに示す例において、探索部413は、粗探索により特定したパターン1313から予め定めた位置関係を有する探索範囲1314を、詳細探索の探索範囲として決定する(図8、ステップS204)。探索部413は、ステップS204で決定した探索範囲について詳細探索を実行する(図8、ステップS205)。
ここで、実施形態1,2において、2回目以降の撮像であって、前回の検出に成功していた場合には(図8、ステップS201:No)、位置情報から算出した予測座標を含む探索範囲を決定して(図8、ステップS208)、詳細探索を実行する(図8、ステップS211)。しかし、図19Aに示したICのように一定の精度で予測座標の算出が可能な場合は、位置情報に基づく予測座標の算出をすることなく、ステップS203の粗探索で決定した探索範囲を用いて、詳細探索を繰り返してもよい。そして、詳細探索による検出に失敗した場合のみ、粗探索による探索範囲の決定処理を行ってもよい。
本変形例によれば、識別対象の形態に応じて、処理を簡易化することが可能となる。なお、設定端末500のアプリケーションにより、識別対象の形態を分類し、当該分類に適した探索処理方法を自動選択してもよい。
[変形例5]
本変形例5は、識別対象がさらに異なる形態である場合について説明する。図20Aは本変形例に係る粗探索を説明する図であり、図20Bは本変形例に係る詳細探索を説明する図である。本変形例において、設定端末500のプロセッサが、専用のアプリケーションプログラムを実行することにより、粗探索のモデル登録と、詳細探索のロジック生成を自動で行う。
本変形例5は、識別対象がさらに異なる形態である場合について説明する。図20Aは本変形例に係る粗探索を説明する図であり、図20Bは本変形例に係る詳細探索を説明する図である。本変形例において、設定端末500のプロセッサが、専用のアプリケーションプログラムを実行することにより、粗探索のモデル登録と、詳細探索のロジック生成を自動で行う。
例えば、ワーク13が図20Aに示すようなレンズである場合には、設定端末500のプロセッサは、撮像画像からレンズの外形を抽出しパターンモデル1322の登録を行う。さらにプロセッサは、パターンモデル1322の形状に基づいて詳細探索の探索ロジックを自動生成する。例えば、設定端末500のプロセッサが、パターンモデル1322の形状が円弧を含むことを検出した場合には図20Bに示すように、詳細探索のロジックとしてエッジを探索し、検出したエッジに対して円近似を行い、円の中心を基準点1323として検出するロジックを自動生成する。
画像処理ユニット400は、設定端末500のアプリケーションにより生成された粗探索のパターンモデルと詳細探索のロジックを用いて、実施形態1,2で説明した探索処理を実行する。本変形例によれば、識別対象の形態に応じて、最適な粗探索及び詳細探索を実行することができる。また、画像処理ユニット400の探索処理を実行するための事前の設定を自動化することができ、ユーザの設定端末500への設定入力の負担を軽減することが可能となる。
[変形例6]
実施形態1,2では、初回の撮像画像に対して粗探索を行い、粗探索の結果に基づいて決定した探索範囲の詳細探索を実行し、詳細探索の結果に基づき、次の詳細探索の探索範囲又は転送範囲を決定するための識別対象の予測座標を算出する。しかし、識別対象の座標の予測精度が十分高い場合には、アライメント制御の事前のキャリブレーションにより、初回の撮像画像に対する粗探索を省略してもよい。特に、ワーク10を載置する載置台101の角端部を用いたアライメント制御の場合には、実行毎の誤差が小さいため、このような事前のキャリブレーションが有効である。
実施形態1,2では、初回の撮像画像に対して粗探索を行い、粗探索の結果に基づいて決定した探索範囲の詳細探索を実行し、詳細探索の結果に基づき、次の詳細探索の探索範囲又は転送範囲を決定するための識別対象の予測座標を算出する。しかし、識別対象の座標の予測精度が十分高い場合には、アライメント制御の事前のキャリブレーションにより、初回の撮像画像に対する粗探索を省略してもよい。特に、ワーク10を載置する載置台101の角端部を用いたアライメント制御の場合には、実行毎の誤差が小さいため、このような事前のキャリブレーションが有効である。
図21は、初回の撮像画像に対する粗探索を省略した場合の探索処理のフローチャートである。画像取得部411が初回の撮像画像を取得した後(ステップS301)、範囲決定部412は、事前のキャリブレーション情報を用いて位置情報に基づいて識別対象の予測座標を算出する(ステップS302)。範囲決定部412が算出した予測座標を含む探索範囲を決定し(ステップS303)、決定した探索範囲について詳細探索を実行する(ステップS304)。
ステップS304の詳細探索で識別対象の実座標の検出に成功した場合は(ステップS305:Yes)、実座標は動作制御ユニット200に対して出力され(ステップS309)、動作制御ユニット200が、その実座標を用いて駆動機器111,112,113を制御する。ワーク10の移動後、次の撮像画像について前回と同じ探索範囲について詳細探索を実行する。このように、詳細探索で検出成功した場合には、粗探索を実行せずに詳細探索を繰り返し実行する。
詳細探索を繰り返す中で、識別対象の検出に失敗した場合のみ(ステップS305:No)、粗探索を実行することにより(ステップS306)探索範囲を決定し(ステップS307)、決定した探索範囲において詳細探索を実行し(ステップS308)、実座標が出力される(ステップS309)。このように本変形例によれば、事前のキャリブレーション情報に基づいて詳細探索を繰り返し、識別対象が検出できなかったときのみ、粗探索を実行することとした。これにより、処理を簡易化することができ高速なアライメント制御が可能となる。
なお、上記実施形態及び変形例に示したハードウェア構成及びフローチャートは一例であり、任意に変更及び修正が可能である。例えば、上記実施形態及び変形例において、動作制御ユニット200、撮像装置300、画像処理ユニット400及び設定端末500は、独立した構成としたが、これらの少なくとも2つを一体化した構成でもよい。
また、上記実施形態及び変形例に示した探索処理は、任意に組み合わせて実行してもよい。また、設定端末500により、上記実施形態及び変形例に係る探索処理のいずれかを選択可能にしてもよい。あるいは、画像処理ユニット400が、ワークの種類、識別対象の形態等の条件に応じて上記実施形態及び変形例に係る探索処理のいずれかを自動選択してもよい。
また、上記実施形態及び変形例における動作制御ユニット200と画像処理ユニット400と、におけるプロセッサが実現する各機能の分担は一例であり、任意に分担を変更してもよい。また、動作制御ユニット200又は画像処理ユニット400のプロセッサが実現する各機能は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
また、上記実施形態の動作を実行するためのプログラムを、コンピュータが読み取り可能なCD-ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)、メモリカード等の記録媒体に格納して配布し、プログラムをコンピュータにインストールすることにより、各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、又はOSとアプリケーションとの協同により実現する場合には、OS以外の部分のみを記録媒体に格納してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
1,2,3 アライメントシステム、10,12,13 ワーク、11 アライメント先、40 マスタ局、50,60,70 デバイス局、100 アライメント機構、101 載置台、111,112,113 駆動機器、121,122,123 駆動制御装置、200 動作制御ユニット、210 プロセッサ、211 位置情報生成部、212 移動量算出部、213 指令部、220 揮発性メモリ、230 不揮発性メモリ、231 制御プログラム、232 制御データ、240 クロック、250 通信インタフェース、300 撮像装置、400 画像処理ユニット、410 プロセッサ、411 画像取得部、412 範囲決定部、413 探索部、420 揮発性メモリ、430 不揮発性メモリ、431 制御プログラム、432 制御データ、440 クロック、450 通信インタフェース、500 設定端末、1001,1002 アライメントマーク、1101,1102 アライメント先マーク、1200 θ軸回転中心、1201 仮想マーク、1300 撮像範囲、1301,1314 探索範囲、1312,1322 パターンモデル、1313 パターン、1323 基準点。
Claims (9)
- 識別対象を有するワークを撮像した撮像画像から前記識別対象を検出する画像処理ユニットと、
前記画像処理ユニットが検出した前記識別対象の実座標に基づいて、前記ワークを移動させる駆動機器を制御する動作制御ユニットと、を備え、
前記画像処理ユニットは、前記駆動機器の位置センサ出力から生成した位置情報に基づいて、前記撮像画像の一部である予め定めた大きさを有する探索範囲を決定し、前記探索範囲の画像から前記識別対象を検出する、
アライメントシステム。 - 前記画像処理ユニットは、前記撮像画像から検出する前記識別対象の前記実座標と前記位置情報との対応関係を予め特定し、前記対応関係を用いて前記位置情報から算出した予測座標を含む探索範囲を決定し、前記探索範囲の画像から前記識別対象を検出する、
請求項1に記載のアライメントシステム。 - 前記駆動機器は前記ワークを載置した載置台を移動させるサーボモータであり、
前記位置情報は、前記サーボモータに付属されたエンコーダの出力から生成した前記載置台の位置に対応する情報である、
請求項1又は2に記載のアライメントシステム。 - 前記探索範囲は、前記識別対象の形状又は大きさに対して、前記駆動機器の移動速度に基づいて定めた余裕分を追加した大きさを有する、
請求項1から3のいずれか1項に記載のアライメントシステム。 - 前記探索範囲は、前記識別対象の形状又は大きさに対して、過去の互いに対応する時点における、前記位置情報から算出した前記予測座標と、前記撮像画像から検出した前記実座標との差に基づいて定めた余裕分を追加した大きさを有する、
請求項2に記載のアライメントシステム。 - 前記実座標は、前記識別対象の回転角度を含み、
前記画像処理ユニットは、前記位置情報から算出した前記予測座標を含み予め定めた角度幅の探索角度範囲内において探索することにより前記識別対象の回転角度を特定する、
請求項2又は5のいずれか1項に記載のアライメントシステム。 - 前記画像処理ユニットは、前記位置情報に基づいて決定した前記探索範囲の画像から詳細探索により前記識別対象を検出することができなかった場合に、前記撮像画像の全範囲において粗探索を行う、
請求項1から6のいずれか1項に記載のアライメントシステム。 - 識別対象を有するワークを撮像した撮像画像を探索し、前記識別対象を検出する探索ステップと、
前記探索ステップで検出した前記識別対象の実座標に基づいて、前記ワークを移動させる駆動機器に対する指令を行う指令ステップと、を有し、
前記探索ステップは、前記駆動機器の位置情報に基づいて決定した予め定めた大きさを有する探索範囲の画像から、前記識別対象を検出する、
アライメント方法。 - 識別対象を有するワークを撮像した撮像画像から前記識別対象を検出し、検出した前記識別対象の実座標に基づいて前記ワークのアライメント制御を行うアライメントシステムにおいて、前記撮像画像の画像処理を行うコンピュータを、
前記アライメント制御を行う駆動機器の位置情報に基づいて、予め定めた大きさを有する探索範囲を決定し、決定した前記探索範囲の画像から、前記識別対象を検出する探索部として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022577414A JP7374354B1 (ja) | 2022-07-27 | 2022-07-27 | アライメントシステム、アライメント方法及びプログラム |
PCT/JP2022/028957 WO2024023975A1 (ja) | 2022-07-27 | 2022-07-27 | アライメントシステム、アライメント方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/028957 WO2024023975A1 (ja) | 2022-07-27 | 2022-07-27 | アライメントシステム、アライメント方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024023975A1 true WO2024023975A1 (ja) | 2024-02-01 |
Family
ID=88645825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/028957 WO2024023975A1 (ja) | 2022-07-27 | 2022-07-27 | アライメントシステム、アライメント方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7374354B1 (ja) |
WO (1) | WO2024023975A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215633A (ja) * | 2018-06-11 | 2019-12-19 | オムロン株式会社 | 制御システム、制御装置、画像処理装置およびプログラム |
JP2022045522A (ja) * | 2020-09-09 | 2022-03-22 | キヤノントッキ株式会社 | ティーチング装置、基板搬送装置、基板処理装置、ティーチング方法、及び電子デバイスの製造方法 |
-
2022
- 2022-07-27 WO PCT/JP2022/028957 patent/WO2024023975A1/ja active Application Filing
- 2022-07-27 JP JP2022577414A patent/JP7374354B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215633A (ja) * | 2018-06-11 | 2019-12-19 | オムロン株式会社 | 制御システム、制御装置、画像処理装置およびプログラム |
JP2022045522A (ja) * | 2020-09-09 | 2022-03-22 | キヤノントッキ株式会社 | ティーチング装置、基板搬送装置、基板処理装置、ティーチング方法、及び電子デバイスの製造方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7374354B1 (ja) | 2023-11-06 |
JPWO2024023975A1 (ja) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6167622B2 (ja) | 制御システムおよび制御方法 | |
JP7078894B2 (ja) | 制御システム、制御装置、画像処理装置およびプログラム | |
US10664939B2 (en) | Position control system, position detection device, and non-transitory recording medium | |
JP7078895B2 (ja) | 制御システム、制御装置、画像処理装置およびプログラム | |
US10845776B2 (en) | Control device, control method of control device, and recording medium | |
WO2024023975A1 (ja) | アライメントシステム、アライメント方法及びプログラム | |
JP7374353B1 (ja) | アライメントシステム、アライメント方法及びプログラム | |
CN111886556B (zh) | 控制系统、控制方法以及计算机可读存储介质 | |
WO2024023976A1 (ja) | アライメントシステム、アライメント方法及びプログラム | |
JP6950631B2 (ja) | 位置決めシステム、制御方法およびプログラム | |
KR102560944B1 (ko) | 제어 장치 및 위치 정렬 장치 | |
CN110581944B (zh) | 控制系统、控制装置以及存储介质 | |
CN111902785B (zh) | 控制系统、控制方法以及计算机可读存储介质 | |
CN111868658B (zh) | 控制系统、控制方法以及计算机可读存储介质 | |
JP7052840B2 (ja) | 位置特定装置、位置特定装置の制御方法、情報処理プログラム、および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 2022577414 Country of ref document: JP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22953070 Country of ref document: EP Kind code of ref document: A1 |