Inspecting clearance size between mechanical parts

A computer-implemented method for inspecting a clearance size between a hole and an object inserted in the hole, includes: controlling a robot arm so that the robot arm performs a predetermined motion to move the object inserted in the hole; monitoring a response to the predetermined motion from the hole and the object; and calculating information on the clearance size between the hole and the object using the response to the predetermined motion.

BACKGROUND

The present invention relates to inspecting a clearance size between mechanical parts.

There are many cases in which we would like to get the size of actual clearance between mechanical parts. For example, there is a case that manufacturers would like to avoid looser clearance than a threshold at a fitting assembly process in a factory line. Although they can avoid looser clearance by using mechanical parts with tight tolerance to the designed size, it would make the parts' cost higher. A laser scanner can be utilized to measure the actual size precisely, but it is too time-consuming to measure each mechanical part at a fitting assembly process in a factory line.

SUMMARY

According to an embodiment of the present invention, there is provided a computer-implemented method for inspecting a clearance size between a hole and an object inserted in the hole. The method includes controlling a robot arm so that the robot arm performs a predetermined motion to move the object inserted in the hole. The method further includes monitoring a response to the predetermined motion from the hole and the object. The method further includes calculating information on the clearance size between the hole and the object using the response to the predetermined motion.

According to another embodiment of the present invention, there is provided a robot system. The robot system includes a robot arm, a controller, a monitor, and a calculator. The robot arm is configured to hold an object to insert the object in a hole provided in a first object. The controller is configured to control the robot arm so that the robot arm performs a predetermined motion to move the object inserted in the hole. The monitor is configured to monitor a response to the predetermined motion from the hole and the second object. The calculator is configured to calculate information on a clearance size between the hole and the object.

According to yet another embodiment of the present invention, there is provided a computer program product for inspecting a clearance size between a hole and an object inserted in the hole. The computer program product includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a computer to cause the computer to control a robot arm so that the robot arm performs a predetermined motion to move the object inserted in the hole. The program instructions are executable by a computer to cause the computer to monitor a response to the predetermined motion from the hole and the object. The program instructions are executable by a computer to cause the computer to calculate information on the clearance size between the hole and the object using the response to the predetermined motion.

DETAILED DESCRIPTION

It is to be noted that the present invention is not limited to these exemplary embodiments to be given below and may be implemented with various modifications within the scope of the present invention. In addition, the drawings used herein are for purposes of illustration, and may not show actual dimensions.

FIG. 1depicts a schematic view of a configuration of a robot system1according to an exemplary embodiment of the present invention.

The robot system1is configured to manipulate work pieces (mechanical parts)90. In the shown example, the work pieces90may include a shaft (peg)91, and a body part95provided with a hole (recess)97. The robot system1holds the shaft91and inserts it in the hole97(refer to a white arrow inFIG. 1). The shaft91is an example of a claimed object.

As shown inFIG. 1, the robot system1may include a robot arm10, a controller30, an operating device50, and an external device70. The configuration of the controller30, the operating device50, and the external device70will be described withFIG. 2later.

The robot arm10may include a base11, arms13, joints15, a gripper17, and a wrist sensor21. The base11supports one of the arms13. The arms13are linked with each other by the respective joints15. The gripper17is provided at the end of the linked arms13. The gripper17holds and releases the shaft91.

The wrist sensor21is a six-axis force-torque sensor. The wrist sensor21may measure three force components along x, y, and z axes as well as their corresponding moments and/or torques. In other words, the wrist sensor21may detect the motion of the gripper17(the shaft91) in 6 degrees of freedom.

In the shown example, the wrist sensor21is provided nearby the gripper17. More specifically, the wrist sensor21is provided between the gripper17and the joint15nearest to the gripper17. Note that the wrist sensor21is provided on the position where a relative position of the wrist sensor21with respect to the gripper17is maintained regardless of the movement of the arms13.

FIG. 2depicts a block diagram showing a configuration of the robot system1according to the exemplary embodiment. Referring toFIGS. 1 and 2, the configuration of the robot system1will be described.

As shown inFIG. 2, each joint15of the robot arm10includes a motor23and an encoder25. The motor23generates power to move the corresponding arm13. The encoder25detects an angular position of the motor23.

The controller30controls the robot arm10. The controller30may include a joint controller31, a force controller33, and a motion planner35.

The joint controller31controls operation of the joints15. More specifically, the joint controller31controls the joints15to operate a predetermined motion (check movement, described later referring toFIG. 6). The joint controller31receives encoder signals from each encoder25, force control signals from the force controller33, and motion control signals from the motion planner35, and controls the joints15based on the received signals. The encoder signals are signals regarding the angular position of the motor23. The force control signals are signals for controlling force/moment to be loaded on the shaft91and the hole97(described later). The motion control signals are signals regarding the motion of the robot arm10. The joint controller31also outputs joint control signals to the motors23, and outputs operation data to a user interface (UI)51via the motion planner35. The joint control signals are signals regarding an operation of the motors23. The operation data is data regarding a status of the operation of the motors23.

The force controller33controls the force/moment to be loaded on the shaft91and the hole97via the joint controller31and the robot arm10. The force controller33receives force/moment instructions55from the operating device50and sensor signals from the wrist sensor21. The force/moment instructions55are instructions regarding the force/moment to be loaded on the shaft91and the hole97during the predetermined motion. The sensor signals represent signals regarding the force/moment detected by the wrist sensor21. The force controller33determines force/moment to be loaded on the shaft91and the hole97during the predetermined motion based on the force/moment instructions55, and outputs the force control signals to the joint controller31so that the joint controller31controls the joints15according to the determined force/moment. The force controller33also sets a force/moment threshold representing an allowable force/moment to be loaded on the shaft91and the hole97during the predetermined motion. The force controller33also determines timings to stop the predetermined motion based on the sensor signals from the wrist sensor21, and outputs the force control signals to the joint controller31to stop the predetermined motion. The force controller33is an example of a claimed monitor.

The motion planner35controls position/angle of the shaft91via the joint controller31and the robot arm10. The motion planner35receives position/angle instructions53from the operating device50. The position/angle instructions53are instructions regarding the position/angle of the robot arm10during the predetermined motion. The motion planner35determines the predetermined motion based on the position/angle instructions53to output the motion control signals to the joint controller31.

The operating device50operates the controller30according to inputs from an operator of the robot system1. As shown inFIG. 2, the operating device50may include a UI51receiving the inputs from the operator. The operating device50stores the position/angle instructions53and the force/moment instructions55. The position/angle instructions53and the force/moment instructions55may be set by the operator with the UI51. The controller30and the operating device50are an example of a claimed controller.

The external device70receives the sensor signals from the wrist sensor21to estimate the actual clearance size between the shaft91and the body part95. The external device70may include a determining portion71. The determining portion71receives the sensor signals from the wrist sensor21to determine, i.e. estimate the clearance between the shaft91and the hole97of the body part95. For example, the determining portion71determines the clearance based on a relation between each clearance size and the sensor signals from the wrist sensor21which is learned in advance (described later). The determining portion71may output the estimated clearance size to the outside of the external device70. The determining portion71is an example of a claimed calculator.

As mentioned above with reference toFIG. 1, the robot system1holds the shaft91to conduct an insertion operation inserting the shaft91into the hole97of the body part95. In other words, the robot system1installs the shaft91to the body part95.

The shaft91and the body part95may be any mechanical parts. For example, the shaft91may be a gear shaft, and the body part95may be a gear body provided with a through-hole into which the gear shaft is inserted.

Note that shapes of the shaft91and the body part95are not limited to the shown example. The shaft91may be any shape as long as the shaft91has a pillar shape. For example, the shaft91may be a triangular pillar, a quadrangular pillar, a pentagonal pillar, or a hexagonal pillar. The body part95may be any shape as long as the body part95has a portion in which the shaft91is installed. In other words, the shaft91and the body part95may be any shape as long as the shaft91and the body part95may form a clearance therebetween.

In the above explanation, the wrist sensor21is provided between the gripper17and the joint15nearest to the gripper17. Alternatively, the wrist sensor21may be provided on the joint15or the arm13. Note that the clearance between the shaft91and the hole97can be detected more precisely if the wrist sensor21is provided nearer to the gripper17than the joint15.

Further, the wrist sensor21may be any sensor as long as the wrist sensor21can detect the movement of the shaft91. For example, the wrist sensor21may be an acceleration sensor, a gyro sensor, a position sensor, or a combination of them.

In the shown example, the robot system1inserts the shaft91into the hole97, and also determines the clearance. However, the configuration for inserting the shaft91and determining the clearance is not limited to this example. For example, multiple robot systems may be applicable so that one robot system inserts the shaft91into the hole97and another robot system determines the clearance. As another example, an operator of the robot system1may conduct the insertion operation instead of the robot system1.

FIG. 3depicts a relationship of the sizes of the shaft91and the hole97. The horizontal axis indicates the size of the shaft91and the hole97(mm). The vertical axis indicates appearance frequency of respective sizes of the shaft91and the hole97(%).

Referring toFIG. 3, the clearance between the shaft91and the hole97will be explained in detail.

Mechanical parts are typically designed and manufactured with tolerance since it is unrealistic to design or manufacture zero tolerance mechanical parts. In the exemplary embodiment, the shaft91and the hole97are also manufactured with tolerance. Because of the tolerance, an actual clearance between the shaft91and the hole97can vary by every combination of the shaft91and the hole97. For example, inFIG. 3, an actual clearance1is larger than a designed clearance, and an actual clearance2is smaller than the designed clearance. It is therefore desired to estimate the actual clearance at a manufacturing site, i.e. at the time of an assembly process of the work pieces90.

To measure the clearance between the shaft91and the hole97, a laser scanner is assumed to be applicable to the assembly process. It is, however, time consuming to measure the clearance of every combination of the shaft91and the hole97with the laser scanner.

For example, the measurement with the laser scanner requires a step for moving the robot arm10to a position out of a range to be irradiated with the laser after inserting the shaft91to the hole97with the robot arm10. On the other hand, the robot system1according to the present embodiment does not require this step. This enables the robot system1to estimate the clearance between the shaft91and the hole97in a shorter time compared to the measurement with the laser scanner.

FIG. 4is a flowchart of an operation of the robot system1according to the exemplary embodiment. Referring toFIGS. 1 and 4, the operation of the robot system1will be explained. Note that in an initial state, the shaft91is held by the gripper17of the robot arm10, and the body part95is placed on a predetermined position nearby the robot arm10.

The controller30, the operating device50and the robot arm10first perform a search process (step401). The search process is a process to search for and detect a position of the hole97provided in the body part95.

The controller30, the operating device50and the robot arm10then perform an insertion process (step402). The insertion process is a process to guide the shaft91by moving the gripper17to the detected position of the hole97, and insert the shaft91into the hole97.

The controller30, the operating device50, the robot arm10, and the determining portion71then perform a clearance check process conducting the check movement (step403, described later). The determining portion71then performs a data output process (step404). The output data may include information on a result of the clearance check process.

FIG. 5is a flowchart of the clearance check process according to the exemplary embodiment. Referring toFIG. 5, the clearance check process of the robot system1will be explained.

As shown inFIG. 5, in the clearance check process, the joint controller31first reads out the position/angle instructions53via the motion planner35and the force/moment instructions55via the force controller33(step501). The joint controller31, the motion planner35, and the robot arm10then start a check movement according to the read instructions (step502, described later). In other words, the joint controller31controls the joints15so that the robot arm10performs the check movement. During the check movement, the force controller33and the determining portion71monitor response to the check movement from the shaft91and the hole97(step503). For example, the force controller33monitors whether the sensor signal from the wrist sensor21exceeds the force/moment threshold.

If the joint controller31detects that the sensor signal exceeds the threshold (Yes in step504) based on the information from the force controller33, the joint controller31stops the check movement (step505) and the clearance check process ends.

If the sensor signal does not exceed the threshold (No in step504), the joint controller31monitors whether the check movement is finished (step506). If the check movement is finished (Yes in step506), the determining portion71estimates the clearance (step507) based on the monitored response data. In other words, the determining portion71calculates information on the clearance size between the shaft91and the hole97.

As described above with reference toFIG. 4, the clearance check process (step403) is conducted after the insertion process (step402). During the insertion process and the clearance check process, the gripper17continues to hold the shaft91. This enables to prevent a rotation of the shaft91which may occur if the gripper17releases the shaft91after the completion of the insertion process.

In the shown example, the controller30detects not only the position and the angle but also the force and the moment during the clearance check process. Further, the joint controller31stops the check movement if the force or the moment exceeds the threshold. This enables to prevent the shaft91and the body part95from being broken. If the shaft91and the body part95are fragile parts, the exceeded force or moment may cause defects and decrease the production efficiency.

Note that if the check movement is stopped, the joint controller31outputs the operation data to the UI51via the motion planner35. Then the UI51may show information on the stop of the check movement to the operator of the robot system100.

FIG. 6depicts a schematic view of the check movement according to the exemplary embodiment. Referring toFIG. 6, the operation of the check movement (predetermined motion) will be explained. In the check movement, the robot arm10oscillates the shaft91in the hole97to acquire response force/moment data by the wrist sensor21, and the determining portion71estimates the clearance based on the acquired response force/moment data. The response force/moment data is data detected by the wrist sensor21with the check movement.

Note that the shaft91has two ends, i.e. the first end911and the second end913. The first end911is in the hole97. On the other hand, the second end913is out of the hole97and gripped by the gripper17(not shown inFIG. 6).

In the check movement, the gripper17holds and moves the second end913of the shaft91in a direction perpendicular to the axis of the shaft91. In other words, the gripper17rotates the second end913around the first end911while maintaining the first end911within the hole97.

In the shown example, the gripper17rotates the second end913by +/−0.1 degrees around both the x-axis and the y-axis (a roll angle and a pitch angle) twice sequentially. As shown inFIG. 6, the gripper17rotates the second end913toward one direction in two steps (refer to arrows A1and A2). Then the gripper17rotates the second end913toward an opposing direction to the one direction in four steps (refer to arrows A3, A4, A5, and A6). Then the gripper17rotates the second end913toward the one direction in two steps (refer to arrows A7and A8). The second end913is then placed on the original position.

While the gripper17conducts the rotation operation, the wrist sensor21acquires the response force/moment data and the force controller33tries to keep the force and moment control to zero. Note that the wrist sensor21acquires the response force/moment data over a period covering the rotation operation of the gripper17. More specifically, the wrist sensor21starts to acquire the response force/moment data before the start of the rotation operation and ends it after the end of the rotation operation. For example, assuming that the rotation operation of the gripper17takes 1.28 seconds, the wrist sensor21acquires the response force/moment data for 1.32 seconds in 2 millisecond resolution with 40 millisecond cycle communications.

The above rotation operation of the gripper17is planned by the motion planner35. The motion planner35determines the above rotation operation based on the position/angle instructions53. For example, the position/angle instructions53may be prepared in advance to be read by the motion planner35. The position/angle instructions53define the position and the angle of the gripper17in each step of the rotation operation based on the size of the shaft91and the hole97.

As mentioned above, the gripper17rotates the second end913toward one direction in several steps (refer to the arrows A1and A2and the arrows A7and A8), and toward the opposing direction in several steps (refer to the arrows A3to A6). This can reduce an overload on the shaft91and the hole97(the body part95).

Further, the response force/moment data acquired by the wrist sensor21is fed to the force controller33. If the force controller33detects that the response force/moment data exceeds the threshold, the force controller33outputs the force control signal to the joint controller31to stop the rotation operation, i.e. to stop the clearance check process.

The response force/moment data acquired by the wrist sensor21is also fed to the determining portion71. Based on the received response force/moment data, the determining portion71determines the actual clearance between the shaft91and the hole97.

The result of the determination, i.e. the size of the actual clearance may be stored in the external device70. Each result may be associated with information (e.g. lot IDs) by which the corresponding set of the shaft91and the hole97can be identified to ensure traceability.

The result of the determination is not limited to the size of the actual clearance. The result may be any information on the clearance. For example, the determining portion71may compare the response force/moment data with a clearance threshold representing an allowable limit of the actual clearance, to determine whether the response force/moment data is within the allowable limit. For example, the clearance threshold representing the allowable limit of the actual clearance may be set by the operator of the robot system1. As another example, the clearance threshold representing the allowable limit of the actual clearance may be set using supervised machine learning.

Note that the clearance size can be estimated by using supervised machine learning. More specifically, using multiple sets of the shaft91and the hole97between which the clearance is already known, a relation between each clearance size and each response force/moment data is learned in advance by the determining portion71. For example, in a case where the determining portion71recognizes a common pattern of the response force/moment data for different sets of the shaft91and the hole97, the determining portion71may determine the same clearance size for the different sets of the shaft91and the hole97based on the relation learned in advance. By learning multiple common patterns for various clearance sizes in advance, the determining portion71may identify the clearance size from various learned clearance sizes. With the learned data, the determining portion71can estimate the clearance size based on the received response force/moment data. For example, the relation is learned as a model so that an estimated result of the clearance size can be acquired by inputting the response force/moment data to the model. Note that the method of the machine learning is not limited to a particular method.

Further, the check movement is not limited to the above example. The check movement may consist of any combination of motions in 6 degrees of freedom symmetrically or asymmetrically. Further, the check movement is not limited to the movement along the direction perpendicular to the axis of the shaft91. The check movement may be a movement along a direction crossing the axis of the shaft91or a movement along the axis of the shaft91.

FIG. 7depicts a schematic view of a configuration of a robot system100according to an alternative embodiment. InFIG. 7, the same structures as those of the exemplary embodiment shown inFIG. 1are denoted by the same reference numerals, and the detailed explanation thereof will be omitted.

As shown inFIG. 7, the robot system100may include the robot arm10, the controller30, and an operating device500. Unlike the robot system1shown inFIG. 1, the robot system100may not include the external device70, and the operating device500may include the determining portion71.

The determining portion71in the operating device500determines the actual clearance between the shaft91and the hole97based on the received response force/moment data from the wrist sensor21. The determining portion71may output the result (the actual clearance) to the UI51. Then the UI51can show information on the actual clearance to the operator of the robot system100.

Note that the operating device500may be provided at a remote place from the robot arm10and the controller30, and may be connected via a network such as the Internet, Intranet, and a local area network (LAN). The operating device500may be integrated into the controller30in another embodiment.

Feeding of the response force/moment data from the wrist sensor21to the force controller33may be omitted. For example, if the shaft91and the body part95are not fragile parts, the check movement may not be required to be stopped. In this case, the response force/moment data may be fed only to the determining portion71.

Referring toFIG. 8, there is shown an example of a hardware configuration of the operating device50(500) and the external device70in the exemplary embodiments. As shown in the figure, the operating device50(500) and the external device70may include a central processing unit (CPU)91, a main memory92connected to the CPU91via a motherboard (M/B) chip set93, and a display driver94connected to the CPU91via the same M/B chip set93. A network interface96, a magnetic disk device97, an audio driver98, and a keyboard/mouse99are also connected to the M/B chip set93via a bridge circuit95.

InFIG. 8, the various configurational elements are connected via buses. For example, the CPU91and the M/B chip set93, and the M/B chip set93and the main memory92are connected via CPU buses, respectively. Also, the M/B chip set93and the display driver94may be connected via an accelerated graphics port (AGP). However, when the display driver94includes a PCI express-compatible video card, the M/B chip set93and the video card are connected via a PCI express (PCIe) bus. Also, when the network interface96is connected to the bridge circuit95, a PCI Express may be used for the connection, for example. For connecting the magnetic disk device97to the bridge circuit95, a serial AT attachment (ATA), a parallel-transmission ATA, or peripheral components interconnect (PCI) may be used. For connecting the keyboard/mouse99to the bridge circuit95, a universal serial bus (USB) may be used.