This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2023-176280, filed on Oct. 11, 2023; the entire contents of which are incorporated herein by reference.
Embodiments of the invention generally relate to a processing device, a mixed reality device, a processing method, and a storage medium.
Screws may be tightened or loosened when manufacturing an article. Technology that can support a task of turning such screws is desirable.
According to one embodiment, a processing device is configured to measure a plurality of coordinates of a hand respectively in a plurality of images, the hand being consecutively visible in the plurality of images, the hand turning a screw by using a first tool. The processing device is configured to calculate a center coordinate of a rotation of the first tool by using the plurality of coordinates.
Embodiments of the invention will now be described with reference to the drawings. The drawings are schematic or conceptual; and the relationships between the thicknesses and widths of portions, the proportions of sizes between portions, etc., are not necessarily the same as the actual values thereof. The dimensions and/or the proportions may be illustrated differently between the drawings, even in the case where the same portion is illustrated. In the drawings and the specification of the application, components similar to those described thereinabove are marked with like reference numerals, and a detailed description is omitted as appropriate.
The embodiment of the invention is favorable for a task of turning a screw by using a tool. As shown in
The imaging device 1 images a task. In the task, a tool is used to fasten fasteners such as screws and the like to an article. The article is a part, unit, semifinished product, or the like for making a product. The tool is a wrench for turning screws, etc. The wrench is a ratchet wrench, a socket wrench, a box wrench, a hexagonal wrench, etc. The specific type of wrench is selected as appropriate according to the task.
When assembling the article, the worker holds the tool with a hand. The worker turns the tool to tighten the screw. As a result, the screw is fastened at a prescribed location. The imaging device 1 images a left hand or a right hand of the worker turning the tool. For example, the imaging device 1 includes a camera that acquires an RGB image and a depth image.
The processing device 2 receives consecutive images (video images) imaged by the imaging device 1. The processing device 2 recognizes the left hand or right hand in the image. Hand tracking is used to recognize the left hand or right hand. Hereinafter, at least one of the left hand or the right hand is called simply “the hand” when the left and right hands are not particularly differentiated.
The worker uses the input device 3 to input information to the processing device 2. For example, the input device 3 includes a microphone. The worker can input information to the processing device 2 by speaking toward the input device 3. As an example, a voice that corresponds to a voice command is input to the input device 3. Other than the input device 3, the worker may be able to input information to the processing device 2 with a hand gesture, etc.
The display device 4 displays information toward the worker. For example, the processing device 2 causes the display device 4 to display information to support the task. Hereinafter, the processing device causing the display device to display information also is called simply “the processing device displaying information”.
The storage device 5 stores data necessary for the processing of the processing device 2, data obtained by the processing of the processing device 2, etc. For example, the storage device 5 registers data of the tool used in the task, data necessary for calculating the position of the tool as described below, etc.
When recognizing a hand based on the image acquired by the imaging device 1, the processing device 2 measures the coordinate of the recognized hand. The processing device 2 recognizes the hand and measures the coordinate each time the image is acquired. When tightening a screw, the screw is turned by a tool. The hand moves along a circumference centered on a part of the tool. Therefore, the coordinates of the hand are positioned on the circumference centered on the part of the tool. The processing device 2 calculates the center coordinate of the rotation of the tool based on the multiple coordinates that are measured.
The center coordinate corresponds to the position of the screw being tightened by the tool. Therefore, the position of the screw can be estimated by using the calculated center coordinate. When the position of the screw is estimated, the location at which the screw is being tightened can be estimated. For example, by estimating the location at which the screw is being tightened, a task record that indicates the locations at which screws have been tightened can be automatically generated. Or, when the fastening sequence of multiple locations is determined, it can be automatically determined whether or not the location at which the screw is being tightened is appropriate.
For example, the processing system 10 shown in
The image camera 131 and the depth camera 132 are examples of the imaging device 1. The processing device 150 is an example of the processing device 2. The microphone 141 is an example of the input device 3. The projection device 121 and the projection device 122 are examples of the display device 4. The storage device 170 is an example of the storage device 5.
In the illustrated example, the MR device 100 is a binocular head mounted display. Two lenses, i.e., the lens 111 and the lens 112, are fit into the frame 101. The projection device 121 and the projection device 122 respectively project information onto the lenses 111 and 112.
The projection device 121 and the projection device 122 display a recognition result of a body of a worker, a virtual object, etc., on the lenses 111 and 112. Only one of the projection device 121 or the projection device 122 may be included; and information may be displayed on only one of the lens 111 or the lens 112.
The lens 111 and the lens 112 are light-transmissive. The worker can visually recognize reality via the lenses 111 and 112. Also, the worker can visually recognize the information projected onto the lenses 111 and 112 by the projection devices 121 and 122. Information is displayed to overlap real space by being projected by the projection devices 121 and 122.
The image camera 131 detects visible light and obtains a two-dimensional image. The depth camera 132 irradiates infrared light and obtains a depth image based on the reflected infrared light. The sensor 140 is a six-axis detection sensor and is configured to detect angular velocities in three axes and accelerations in three axes. The microphone 141 accepts an audio input.
The processing device 150 controls components of the MR device 100. For example, the processing device 150 controls the display by the projection devices 121 and 122. The processing device 150 detects movement of the visual field based on a detection result of the sensor 140. The processing device 150 changes the display by the projection devices 121 and 122 according to the movement of the visual field. The processing device 150 also is configured to perform various processing by using data obtained from the image camera 131 and the depth camera 132, data of the storage device 170, etc.
The battery 160 supplies power necessary for the operations to the components of the MR device 100. The storage device 170 stores data necessary for the processing of the processing device 150, data obtained by the processing of the processing device 150, etc. The storage device 170 may be located outside the MR device 100, and may communicate with the processing device 150.
The MR device according to the embodiment is not limited to the illustrated example, and may be a monocular head mounted display. The MR device may be an eyeglasses-type as illustrated, or may be a helmet-type.
For example, a tightening task is performed on an article 200 shown in
A marker 210 is located proximate to the task object. In the illustrated example, the marker 210 is an AR marker. As described below, the marker 210 is provided for setting the origin of the three-dimensional coordinate system. Instead of the AR marker, a one-dimensional code (a barcode), a two-dimensional code (a QR code (registered trademark)), etc., may be used as the marker 210. Or, instead of a marker, the origin may be indicated by a hand gesture. The processing device 150 sets the three-dimensional coordinate system referenced to multiple points indicated by the hand gesture.
Here, an example will be described in which a screw is fastened using the MR device 100 shown in
The image camera 131 and the depth camera 132 image the article 200, a left hand 251 of the worker, and a right hand 252 of the worker. The processing device 150 recognizes the left and right hands 251 and 252 based on the captured image. The processing device 150 may cause the projection devices 121 and 122 to display the recognition result on the lenses 111 and 112. Hereinafter, the processing device using the projection device to display information on the lens also is called simply “the processing device displaying information”.
For example, as shown in
When the left hand 251 and the right hand 252 are recognized, processing device 150 measures the coordinates of the hands. Specifically, each hand includes multiple joints such as a DIP joint, a PIP joint, an MP joint, a CM joint, etc. The coordinates of any of these joints are used as the coordinate of the hand. The centroid position of multiple joints may be used as the coordinate of the hand. Or, the center coordinate of the entire hand may be used as the coordinate of the hand.
For example, the worker fastens a screw at a fastening location 203. In such a case, as shown in
As shown in
The processing device 150 repeatedly measures the coordinates of the hand while the worker turns the wrench 280. At this time, as shown in
In the first method, the processing device 150 extracts four mutually-different coordinates from the multiple coordinates that are measured. The processing device 150 calculates a sphere that passes through the four coordinates. The sphere is represented by the formula of a spherical surface. Here, as shown in
The following Formula (2) is obtained by substituting the coordinate P1 in Formula (1). Formula (2) is rewritten as Formula (3).
Similarly, the following Formulas (4) to (6) are obtained by substituting the coordinates P2 to P4 in Formula (1).
The coordinate P0(x0, y0, z0) is calculated by solving Formulas (3) to (6) as simultaneous equations. The center of a sphere passing through the four coordinates P1(x1, y1, z1), P2(x2, y2, z2), P3(x3, y3, z3), and P4(x4, y4, z4) is obtained thereby. The processing device 150 uses the coordinate P0(x0, y0, z0) of the center of the sphere as the center coordinate of the rotation of the wrench 280.
The processing device 150 may extract multiple combinations of four coordinates. The processing device 150 calculates the coordinate of the center of the sphere for each combination. As a result, the coordinate of the center is calculated for each of the multiple spheres. Error exists in the measured coordinates of the hand. Therefore, the calculated coordinates of the multiple centers are different from each other. The processing device 150 uses the multiple coordinates to determine the coordinate to be used as the rotation center of the wrench 280. For example, the processing device 150 calculates the median value of the multiple coordinates as the center coordinate of the rotation of the wrench 280. The processing device 150 may calculate the average value or mode of the multiple coordinates as the center coordinate of the rotation of the wrench 280. The accuracy of the calculated center coordinate can be increased thereby.
In the second method, the processing device 150 extracts three coordinate pairs from the multiple coordinates that are measured. Each pair is made of two coordinates. In the example shown in
As described above, the hand moves in an arc-like shape. Accordingly, the perpendicular bisectors that pass through the midpoints of the coordinate pairs pass through the center of the circle. The center of the circle has the coordinate P0(x0, y0, z0). In such a case, as shown in Formula (7), the inner product of the vector from the coordinate P1 to the coordinate P2 and the vector from the coordinate P12 to the coordinate P0 is zero. Formula (7) can be rewritten as Formula (8).
The following Formulas (9) and (10) are obtained similarly for the other coordinate pairs.
The coordinate P0(x0, y0, z0) is calculated by solving these simultaneous equations. The processing device 150 calculates the coordinate P0(x0, y0, z0) as the center coordinate of the rotation of the wrench 280.
The processing device 150 may extract four or more coordinate pairs. The processing device 150 selects three coordinate pairs from the four or more coordinate pairs and calculates the coordinate P0 for each combination of the selected coordinate pairs. The processing device 150 calculates the median value, average value, or mode of the multiple coordinates P0 as the center coordinate of the rotation of the wrench 280. The accuracy of the calculated center coordinate can be increased thereby.
In the third method, the processing device 150 extracts three mutually-different coordinates from the multiple coordinates that are measured. The processing device 150 calculates a circumcenter O of the three coordinates. Here, as shown in
x0, y0, and z0 are calculated respectively from Formulas (13) to (15). The processing device 150 calculates the coordinate P0(x0, y0, z0) of the circumcenter O as the center coordinate of the rotation of the wrench 280.
The processing device 150 may extract multiple combinations of three coordinates. The processing device 150 calculates the coordinate of the circumcenter for each combination. The processing device 150 calculates the median value, average value, or mode of the multiple coordinates as the center coordinate of the rotation of the wrench 280. The accuracy of the calculated center coordinate can be increased thereby.
Before performing one of the first to third methods, some coordinates may be selected from the multiple coordinates of the hand. One of the first to third methods is performed using the selected coordinates. For example, only the coordinates estimated to be when the hand is moving in an arc-like shape are selected; and the coordinates to be used in the first to third methods are extracted from these coordinates. By using only the coordinates when the hand is moving in the arc-like shape, the accuracy of the center coordinate can be further increased.
As an example, when a digital tool is used, the processing device 150 selects the coordinates of the hand obtained at the timing (the times) at which data is received from the digital tool. When the screw is turned with the digital tool, the digital tool detects the torque value, the rotation angle, etc. The processing device 150 receives the detected values detected by the digital tool. The reception of the detected value indicates that the hand is moving in an arc-like shape. Therefore, the coordinates of the hand obtained at the timing (the times) at which the detected values are received are selected and used to calculate the center coordinate, and so the center coordinate can be calculated with higher accuracy.
Even when the coordinates are not selected, the center coordinate can be calculated by calculating multiple candidates of the center coordinate in one of the first to third methods. For example, the processing device 150 excludes outliers from the multiple candidates and calculates the median value, average value, or mode of the remaining candidates as the center coordinate.
The center coordinate of the rotation of the wrench 280 can be considered to be the position of the screw being tightened by the wrench 280. The screw is fastened at a prescribed location of the article, and so the location at which the screw is being tightened can be estimated by estimating the position of the screw. For example, when the positions of the fastening locations are preregistered, it can be estimated that the screw is being tightened at the fastening location most proximate to the center coordinate. The processing device 150 may record that the screw has been tightened at the location at which it is estimated that the screw is being tightened. The task record can be automatically generated thereby.
Or, when the fastening sequence for multiple locations is determined, the processing device 150 can determine whether or not the location at which the screw is being tightened is appropriate. For example, the processing device 150 acquires the coordinate of the location at which the screw is to be fastened. The processing device 150 calculates the center coordinate of the rotation of the wrench 280 based on the coordinates of the hand measured while the worker is tightening the screw. The processing device 150 calculates the distance between the center coordinate and the coordinate of the location at which the screw is to be fastened.
When the calculated distance is greater than a preset threshold, the processing device 150 determines that the screw is being tightened at an erroneous location. In such a case, the processing device 150 outputs an alert 265 as shown in
The processing device 150 may output a message, a voice, a sound, a vibration, light, etc., when the calculated distance is not more than the threshold. These outputs are different from the alert. In other words, the processing device 150 may output a notification toward the worker to indicate that the task is appropriate.
When the task is appropriate, the mode may be switchable between a mode of outputting a notification and a mode of not outputting a notification. The processing device 150 accepts the mode selection. The worker can select the mode with a voice command or a hand gesture. Because the worker can adjust the amount of notifications by selecting the mode, the ease of use of the MR device 100 is improved.
As shown in
As described above, the processing device 150 receives detected values from the wrench 280 when the wrench 280 is a digital tool. In such a case, the processing device 150 may associate a detected value such as a torque value or the like with data of the location at which it is estimated that the screw is being tightened. When the torque necessary for fastening the screw is preregistered, the processing device 150 may determine whether or not the necessary torque is detected. The processing device 150 registers the determination result in the task record in addition to the torque value.
For example, as shown in
The torque value 404 indicates the torque value necessary for the screw-tightening at each location. The sequence 405 indicates the sequence of the fastening at multiple fastening locations in one task. When the sequence is undetermined, the column of the sequence 405 is omissible. The record 406 indicates whether or not the fastening of the screw is completed at each location. When fastening the screw, data that indicates the completion is registered in the record 406. The detected value 407 indicates the value detected by the digital tool. For example, when the sequence of the fastening is appropriate and the necessary torque value is detected for the location at which it is estimated that the screw is being tightened, the processing device 150 registers, in the record 406, data indicating that the fastening of the screw is completed. Simultaneously, the processing device 150 registers the torque value at that time in the detected value 407. As a result, the record and detected value of the task are automatically associated with the data of each fastening location.
To more accurately estimate the position of the screw, the processing device 150 may use the length of the tool interposed between the wrench 280 and the screw to estimate the position at which the screw is present. In the example shown in
When using the length of the socket to estimate the position of the screw, it is necessary to determine the side at which the screw is positioned with respect to the plane in which the wrench 280 is rotating. In the example shown in
To determine the side at which the screw 215 is positioned, the processing device 150 uses the center coordinate, two coordinates of the hand, time-series information of the two coordinates, and tighten/loosen information of the screw. For example, as shown in
The tighten/loosen information indicates whether the screw is being tightened or loosened. When the wrench 280 is a digital tool, the wrench 280 generates the tighten/loosen information by determining whether the screw is being tightened or loosened based on the detected torque value. The processing device 150 may generate the tighten/loosen information by determining whether the screw is being tightened or loosened based on the time-series data of the torque value received from the wrench 280.
A plane that passes through the coordinates P0 to P2 is represented by the following Formula (16). In Formula (16), k, l, m, and n are constants.
The following Formulas (17) to (19) are obtained by substituting the coordinates of P0 to P2 in Formula (16). The constants k, l, m, and n are calculated from Formulas (17) to (19).
Here, the processing device 150 calculates a vector from the center coordinate P0 to the coordinate P1 at the previous time. Also, the processing device 150 calculates a vector from the center coordinate P0 to the coordinate P2 at the subsequent time. The screw 215 is at a position P0 that is separated from the center coordinate P0 by a length L0 of the socket on the normal vector P0P1×P0P2. When the screw is being tightened and the time of the coordinate P1 is before the time of the coordinate P2, the processing device 150 calculates the normal vector P0P1×P0P2 of the vector P0P1 and the vector P0P2.
The length from the coordinate P0 to the coordinate P0 at which the wrench and the socket act on the screw is represented by the following Formula (20). In the following formulas, the symbols marked with arrows indicate that the value of the symbol is a vector.
On the other hand, the vector from the coordinate P0 to the coordinate P0 also may be represented by the following Formula (21) by using the vector P0P1 and the vector P0P2. In Formula (21), t is a constant.
The following Formula (22) is obtained by substituting Formula (21) in Formula (20). The length L0 in Formula (22) is preregistered. t is calculated by solving Formula (22).
When t is calculated, the coordinate P0 is calculated using the coordinate P0 and the constants k, l, m, n, and t. In other words, the position of the screw is obtained.
As shown in
In other words, the screw is at a position separated from the center coordinate P0 by the sum of the length of the socket 285 and the length of the extension bar 290 on the normal vector P0P1×P0P2. The position P0 of the screw is estimated using the center coordinate P0, the length of the socket 285, and the length of the extension bar 290. The position of the screw can be estimated with higher accuracy by considering the length of another tool interposed between the screw and the wrench 280.
As shown in
In such a case, the left hand 251 moves in an arc-like shape at a distance r1 from the head of the wrench 280. The right hand 252 moves in an arc-like shape at a distance r2 from the head of the wrench 280. The processing device 150 can calculate the center coordinate of the rotation of the tool based on both the multiple coordinates of the left hand 251 and the multiple coordinates of the right hand 252. Any of the first to third methods described above can be used to calculate the center coordinate.
For example, the processing device 150 calculates a first center coordinate based on the multiple coordinates of the left hand 251. The processing device 150 calculates a second center coordinate based on the multiple coordinates of the right hand 252. The processing device 150 uses an intermediate value between the first center coordinate and the second center coordinate as the final center coordinate.
The processing device 150 may extract multiple combinations from multiple coordinates of the left hand 251 to calculate multiple first center coordinates. Similarly, the processing device 150 may extract multiple combinations from multiple coordinates of the right hand 252 to calculate the multiple second center coordinates. The processing device 150 uses an intermediate value, average value, or mode of the multiple first center coordinates and the multiple second center coordinates as the final center coordinate.
The processing device 150 may weight the first and second center coordinates. The center coordinate can be calculated more accurately as the hand moves away from the rotation center of the tool. In the example shown in
As an example, the processing device 150 uses a weighted average of the first center coordinate and the second center coordinate as the final center coordinate. The ratio of the distance r1 to the distance r2 can be used as the ratio of the weight for the first center coordinate to the weight for the second center.
When multiple first center coordinates and multiple second center coordinates are calculated, a part of the multiple first center coordinates and a part of the multiple second center coordinates may be extracted. At this time, the second center coordinate is weighted more than the first center coordinate setting the number of the second center coordinates extracted to be greater than the number of the first center coordinates extracted. The ratio of the distance r1 to the distance r2 can be used as the ratio of the number of the second center coordinates extracted to the number of the first center coordinates extracted. The processing device 150 uses an intermediate value, average value, or mode of the extracted first center coordinate and the extracted second center coordinate as the final center coordinate.
Before performing the processing method M1 shown in
First, the task to be performed is selected (step S0). The task is designated by the task ID, the task name, the ID of the article on which the task is performed, the name of the article, etc. The processing device 2 accepts the selection of the task. For example, the task to be performed is selected by the worker. The task to be performed may be selected by a higher-level system; and the processing device 2 may accept the selection. The processing device 2 may determine the task to be performed based on data obtained from the imaging device 1 or another sensor. The processing device 2 selects the task based on the determination result.
Then, the imaging device 1 images the marker 210. The processing device 2 sets a three-dimensional coordinate system by using the position and orientation of the marker 210 as a reference (step S1). At this time, the processing device 2 refers to the origin master data 5b. The origin master data 5b stores the setting method of the origin for each task. The processing device 2 acquires the setting method of the origin for the selected task and sets the origin according to the setting method.
Subsequently, the task is started. The imaging device 1 acquires an image by imaging the hand (step S2). The processing device 2 recognizes the hand based on the image and measures the coordinate of the hand (step S3). The acquisition of the image, the recognition of the hand, and the measurement of the coordinate are continuously repeated during the task.
The processing device 2 uses multiple coordinates obtained by repeating step S3 to calculate the center coordinate of the rotation of the tool by using one of the first to third methods (step S4). At this time, the processing device 2 refers to the tool master data 5c.
The tool master data 5c stores the ID of the tool to be used, the model of the tool, the length of the tool, the model of the socket, the length of the socket, etc., for each task. The model of the tool indicates the classification of the tool by structure, exterior shape, performance, etc. The length of the tool is the length from the rotation center to the grip when the tool is used for screw-tightening. The model of the socket indicates the classification of the socket by structure or exterior shape. The length of the socket is the length of the socket in the direction connecting the tool and the screw when tightening the screw. The processing device 2 acquires, from the tool master data 5c, the data of the tool to be used in the task selected in step S0. When an extension bar is used as shown in
The processing device 2 estimates the position of the screw based on the center coordinate calculated in step S4 (step S5). The processing device 2 estimates the location at which the screw is being tightened based on the estimated position of the screw (step S6). At this time, the processing device 2 refers to the fastening location master data 5d.
The fastening location master data 5d stores the ID of the fastening location, the position of the fastening location, the necessary torque value, and the screw-tightening count for each fastening location. The fastening position is the position at which the fastening location is present, and is designated by the coordinate in the three-dimensional coordinate system set in step S1. The screw-tightening count is the number of times that the screw must be tightened for each fastening location. When the screw is to be marked after fastening, the color of the mark also is registered.
The processing device 2 determines whether or not the task is appropriate based on the estimation result (step S7). For example, when the fastening sequence of the screws is predetermined, the processing device 2 determines whether or not the screw-tightening at the estimated location is being performed according to the determined sequence. When the torque value necessary for fastening is predetermined, the processing device 2 determines whether or not the torque value necessary for the screw-tightening at the estimated location is detected. When the task is inappropriate, the processing device 2 outputs an alert (step S8).
When the task is appropriate, the processing device 2 determines whether or not the screw-tightening at the estimated location is completed (step S9). For example, the processing device 2 refers to the torque value necessary for the screw-tightening at the estimated location from the fastening location master data 5d. When the torque value received from the digital tool is greater than the necessary torque value, the processing device 2 determines that the screw-tightening at the estimated location is completed. When it is determined that the screw-tightening is incomplete, step S4 is re-performed.
When the screw-tightening is determined to be completed, the processing device 2 records that the screw-tightening at the estimated location is completed in history data 5e (step S10). For example, the torque value that is detected by the tool is associated with the ID of the task and the ID of the estimated location. As illustrated, the processing device 2 also may associate the model and ID of the tool used, the screw-tightening count, and the recognition result of the mark with the ID of the fastening location. The mark is recognized by the processing device 150 based on the image that is imaged by the imaging device 1. The processing device 150 extracts an aggregate of pixels of the mark color from the image and counts the number of pixels in the aggregate. When the number of pixels is greater than a preset threshold, a mark is determined to be present.
Advantages of the embodiment will now be described.
There are cases where screw-tightening is performed when making an article. Conventionally, to prevent forgetting to tighten screws, to comply with the fastening sequence of the screws, etc., in a manufacturing site, the generation of checklists and/or mutual confirmation by multiple workers has been performed. However, checklists that are generated by workers may include missing entries, entry mistakes, etc. Confirmation by multiple workers requires time and effort and increases the cost. Also, the time necessary to make the article is increased. When a mistake is found in the confirmation of the article after the task, rework of the task is necessary.
For these problems, according to the embodiment of the invention, the imaging device 1 consecutively and repeatedly images the hand of the worker. The processing device 2 measures the coordinates of the hand based on the images. When tightening the screw, the hand of the worker moves in an arc-like shape centered on a part of the tool. The inventions of the application focus on this point, and uses multiple coordinates that are measured to calculate the center coordinate of the rotation of the tool. The position of the screw being turned corresponds to the center coordinate. Therefore, the center coordinate can be utilized to confirm the tightening task of the screw.
For example, the center coordinate can be used to estimate which screw is being tightened at which location. Based on the estimation result, the record of the screw-tightening can be automatically generated. When the fastening sequence of the screws is determined, it can be automatically confirmed whether or not the location of the screw-tightening is in accordance with the determined sequence. When a digital tool is used, it can be automatically confirmed whether or not the screw is tightened with the necessary torque value.
According to the embodiment of the invention, the center coordinate can be calculated when performing the tightening task. Therefore, errors of the task can be detected in real time. When an erroneous task is performed, rework of the task can be reduced by promptly detecting the erroneous task. The work efficiency can be increased thereby.
An example is described above in which the embodiment is performed using the MR device 100. The embodiment can be performed using a device other than the MR device 100. For example, the imaging device 1 may image the worker from above at a position separated from the worker. The processing device 2 recognizes the hand of the worker based on the image and measures the coordinate of the hand. Thereafter, the coordinate of the hand is used to calculate the center coordinate of the rotation of the tool similarly to the example above. In such a case, a general-purpose personal computer can be used as the processing device 2. A mouse or a keyboard can be used as the input device 3. A monitor can be used as the display device 4.
When the MR device 100 is used, the image camera 131 and the depth camera 132 move together with the worker. Therefore, the hand of the worker is not easily concealed by another object during the task. The hand of the worker can be more reliably imaged. Therefore, a state does not easily occur in which the hand is not imaged and the center coordinate is not calculated. Because the hand is not easily concealed, the accuracy of the calculated center coordinate also can be improved.
According to the MR device 100, the data that is output from the processing device 150 is displayed on the lenses 111 and 112. Therefore, the worker can confirm the alert emitted from the processing device 150, etc., while performing the task. The efficiency of the task can be increased by using the MR device 100.
As shown in
The processing device 150 detects contact between a prescribed object and the objects 301 to 308. For example, the processing device 150 detects contact between a hand and the objects 301 to 308. More specifically, the processing device 150 repeatedly calculates the distances between the hand and each of the objects 301 to 308. When the distance to one of the objects falls below a preset threshold, the processing device 150 determines that the hand contacts the object.
When the hand has contacted one of the objects, the processing device 150 estimates (infers) that the screw is being tightened at the location corresponding to the object. For example, as shown in
In addition to the contact between the object and the hand, the processing device 150 also estimates the location at which the screw is being tightened based on the movement of the hand turning the tool. By using two methods to estimate the location of the screw-tightening, the estimation by one method may be successful even when the estimation by the other method fails. According to the first modification, the location of the screw-tightening can be estimated more reliably. By displaying the objects 301 to 308, the worker can easily ascertain the fastening location. The work efficiency can be increased thereby.
The positions at which the objects 301 to 308 are displayed are preregistered as coordinates in the three-dimensional coordinate system having the marker 210 shown in
The necessary calculation amount of the detection of the contact between the object and the hand is less than that of the calculation of the center coordinate. Therefore, by detecting the contact with the object and the hand, the location at which the screw is being tightened can be estimated more quickly. For example, when the task is erroneous, rework of the task can be reduced by outputting an alarm more promptly.
On the other hand, as in an article 230 shown in
The processing device 150 may output an alert when the fastening location (a first fastening location) estimated based on the contact between the object and the hand is different from the fastening location (a second fastening location) estimated based on the center coordinate of the rotation of the tool. For example, when the left hand 251 contacts the object 304 as shown in
When turning a screw, other than the case where the grip of the tool is gripped with two hands, it is desirable for both the grip and head of the tool to be gripped. By turning the screw while pressing the head of the tool, movement of the head of the tool in an unintended direction can be suppressed. For example, the likelihood of the tool moving in an unintended direction and damaging the article can be reduced.
According to the first modification of the embodiment, as shown in
In the example above, the contact between the hand and the object is detected. Instead of the hand, the contact between the tool and the object may be detected. Or, both the contact between the hand and the object and the contact between the tool and the object may be detected. Similarly to the example above, when the tool and the object contact each other, it can be estimated that the screw is being tightened at the fastening location corresponding to the object.
Various methods can be used to estimate the position of the tool. For example, the wrench 280 includes a sensor; and the position of the wrench 280 is estimated using the detected value of the sensor. The sensor is an inclination sensor, an acceleration sensor, a gyro sensor, etc. The position of the wrench 280 may be estimated by combining the detected value of the sensor and the detection result of the hand.
Or, the processing device 150 may estimate the position of the wrench 280 by image processing. For example, an image (a template image) of the tool to be used is prepared beforehand. The processing device 150 performs template matching to determine whether or not the tool of the template image is visible in the image obtained when performing the task. The processing device 150 uses the position in the template image at which the tool is determined to be visible as the position of the tool.
Or, a marker for estimating the position of the tool may be mounted to the tool. In the example shown in
In the example shown in
As shown in
The objects 303 to 306 indicate positions at which the hand should be located when tightening the screw respectively at the fastening locations 203 to 206. The objects 313 to 316 indicate the positions at which the extension bar should be located when tightening the screw respectively at the fastening locations 203 to 206. For example, when tightening the screw at the fastening location 204, the hand contacts the object 304 as shown in
Based on the display of the objects 303 to 306 and the objects 313 to 316, the worker can easily understand where to position the hand and the extension bar when tightening the screw. The work efficiency can be increased thereby.
In the illustrated example, the objects 303 to 306 are spherical; and the objects 313 to 316 are rod-shaped. The shapes of the objects are not limited to the example as long as the objects are easy to visually recognize.
Compared to the processing method M1 shown in
The processing device 2 causes the display of the first and second objects based on the set origin and the referenced data (step S11). The positions at which the first and second objects are displayed are calculated based on the origin, the fastening position, the angle, the extension model, the tool model, etc. For example, the length of the extension bar is designated by the extension model. The first object is displayed at a position separated from the fastening position by the length of the extension bar at the set angle. The second object is displayed in a region having the length of the extension bar at the set angle with respect to the fastening position.
The processing device 2 estimates the fastening location (step S12). Specifically, when contact between the first object and the hand is detected, the processing device 2 estimates that the screw is being tightened at the fastening location corresponding to the first object. Simultaneously, the processing device 2 performs steps S4 to S6 of the processing method M1, and estimates the fastening location based on the center coordinate.
When the fastening location at which the screw is being tightened is estimated, steps S7 to S10 are then performed similarly to the processing method M1. As described above in step S7, the task may be determined to be improper when the fastening location estimated based on the contact between the object and the hand is different from the fastening location estimated based on the center coordinate of the rotation of the tool.
In the example above, the center coordinate of the rotation of the tool is calculated based on the coordinates of multiple hands. Instead of this method, the center coordinate of the rotation of the tool may be preregistered. For example, the position at which the tip of the tool is located when tightening a screw at a fastening location is registered as the center coordinate. Or, the position at which the screw is placed when tightening the screw at the fastening location may be registered as the center coordinate. The position of the threaded hole (the fastening location) may be registered as the center coordinate. The corresponding fastening location is associated with the center coordinate. The processing device 2 estimates the location at which the screw is being tightened by using the center coordinate.
In the processing method M3 according to the second modification, the processing device 2 performs steps S0 to S3 similarly to the processing method M1 shown in
For example, as shown in
Examples of the fluctuation include an average value of multiple distances, a sum of differences between the distances, the variance of the multiple distances, the standard deviation of the multiple distances, etc. In the example shown in
According to the processing method according to the second modification, the fastening location at which the screw is being tightened can be estimated with a lower calculation amount than when the center coordinate is calculated.
Some of the coordinates may be extracted from the multiple coordinates of the hand repeatedly measured by hand tracking. For example, when a digital tool is used, the digital tool transmits data to the processing device 2. The processing device 2 extracts the coordinate of the hand measured at the timing of receiving the data. The likelihood of the screw actually being turned is high at the timing of receiving the data from the digital tool. The accuracy of the estimation can be further increased by using the coordinate of the hand measured at the timing in the estimation.
The second modification of the embodiment can be combined with the first modification of the embodiment. For example, the processing device 150 estimates the location at which the screw is being tightened not only based on the contact between the object and the hand but also based on the distance between the center coordinate and the coordinate of the hand. The location of the screw-tightening is estimated using two methods. In such a case, the position at which the virtual object is displayed may be used as the center coordinate.
In the example above, the invention is applied to a task of tightening a screw. Embodiments of the invention are not limited to such examples. For example, the invention also is applicable to a task of loosening a screw. Even when loosening a screw, a tool is rotated by a hand centered on a part of the tool. Therefore, the center coordinate of the rotation of the tool can be calculated based on the movement of the hand. For example, the fastening location at which the screw is being loosened can be estimated using the center coordinate. When the sequence of the task for multiple locations is determined, it can be automatically determined whether or not the location at which the screw is being loosened is appropriate.
For example, a computer 90 shown in
The ROM 92 stores programs controlling operations of the computer 90. The ROM 92 stores programs necessary for causing the computer 90 to realize the processing described above. The RAM 93 functions as a memory region into which the programs stored in the ROM 92 are loaded.
The CPU 91 includes a processing circuit. The CPU 91 uses the RAM 93 as work memory and executes the programs stored in at least one of the ROM 92 or the storage device 94. When executing the programs, the CPU 91 executes various processing by controlling configurations via a system bus 98.
The storage device 94 stores data necessary for executing the programs and/or data obtained by executing the programs. The storage device 94 includes a solid state drive (SSD), etc. The storage device 94 may be used as the storage device 5 or the storage device 170.
The input interface (I/F) 95 can connect the computer 90 with the input device 3. The CPU 91 can read various data from the input device 3 via the input I/F 95.
The output interface (I/F) 96 can connect the computer 90 and an output device. The CPU 91 can transmit data to the display device 4 via the output I/F 96 and can cause the display device 4 to display information.
The communication interface (I/F) 97 can connect the computer 90 and a device outside the computer 90. For example, the communication I/F 97 connects a digital tool and the computer 90 by Bluetooth (registered trademark) communication.
The data processing performed by the processing device 2 or the processing device 150 may be performed by only one computer 90. A part of the data processing may be performed by a server or the like via the communication I/F 97.
Processing of various types of data described above may be recorded, as a program that can be executed by a computer, on a magnetic disk (examples of which include a flexible disk and a hard disk), an optical disk (examples of which include a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD±R, and DVD±RW), a semiconductor memory, or another non-transitory computer-readable storage medium.
For example, information recorded on a recording medium can be read by a computer (or an embedded system). The recording medium can have any record format (storage format). For example, the computer reads a program from the recording medium and causes the CPU to execute instructions described in the program, on the basis of the program. The computer may obtain (or read) the program through a network.
Embodiments of the invention include the following features.
A processing device, configured to:
The processing device according to feature 1, further configured to:
The processing device according to feature 2, further configured to:
The processing device according to feature 2 or 3, further configured to:
The processing device according to feature 4, further configured to:
The processing device according to any one of features 2 to 5, further configured to:
The processing device according to any one of features 2 to 5, further configured to:
The processing device according to any one of features 1 to 7, further configured to:
The processing device according to any one of features 1 to 7, further configured to:
The processing device according to any one of features 1 to 7, further configured to:
The processing device according to any one of features 1 to 9, further configured to:
The processing device according to any one of features 1 to 11, further configured to:
The processing device according to feature 12, in which
A processing device, configured to:
The processing device according to feature 14, further configured to:
A processing device, configured to:
A mixed reality device, including:
A processing method, including:
A program, when executed by the processing device according to feature 18, causing the processing device to perform the processing method according to feature 18.
A non-transitory computer-readable storage medium configured to store the program according to feature 19.
According to the embodiments above, a processing device, a mixed reality device, a processing method, a program, and a storage medium are provided in which a task of turning a screw can be supported.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the invention. Moreover, above-mentioned embodiments can be combined mutually and can be carried out.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2023-176280 | Oct 2023 | JP | national |