The present application claims priority under 35 U.S.C. §119 to Japanese Patent Application No. 2013-165923, filed Aug. 9, 2013. The contents of this application are incorporated herein by reference in their entirety.
1. Field of the Invention
The present invention relates to a robot system, a robot control apparatus, and a method for controlling a robot.
2. Discussion of the Background
Japanese Unexamined Patent Application Publication 11-123682 discloses a visual sensor mounted on a robot that is installed on an automated guided vehicle. The visual sensor detects a position of a marker set on a work stand, and based on the detected position of the marker, a position at which the automated guided vehicle is stopped is detected.
According to one aspect of the present disclosure, a robot system includes a robot and a controller. The robot includes an arm, a plurality of actuators, a plurality of sensors, a probe, and a force sensor. The arm includes a plurality of joints. The plurality of actuators are configured to drive the plurality of joints. The plurality of sensors are configured to detect operation states of the plurality of actuators. The probe is mounted on the arm. The force sensor is configured to detect force received by the probe. The controller is configured to control the robot, and includes a determinator, an operation state acquisitor, a coordinate calculator, and a position correction amount calculator. The determinator is configured to determine whether the force received by the probe from a structure disposed at a predetermined position on a work stand satisfies a predetermined condition. The operation state acquisitor is configured to acquire the operation states of the plurality of actuators when the force received by the probe satisfies the predetermined condition. The coordinate calculator is configured to calculate a position coordinate of the probe based on the operation states of the plurality of actuators. The position correction amount calculator is configured to calculate a correction amount of a position of the work stand relative to the robot based on the position coordinate of the probe.
According to another aspect of the present disclosure, a robot control apparatus is configured to control a robot. The robot includes an arm, a plurality of actuators, a plurality of sensors, a probe, and a force sensor. The arm includes a plurality of joints. The plurality of actuators are configured to drive the plurality of joints. The plurality of sensors are configured to detect operation states of the plurality of actuators. The probe is mounted on the arm. The force sensor is configured to detect force received by the probe. The robot control apparatus includes a determinator, an operation state acquisitor, a coordinate calculator, and a position correction amount calculator. The determinator is configured to determine whether the force received by the probe from a structure disposed at a predetermined position on a work stand satisfies a predetermined condition. The operation state acquisitor is configured to acquire the operation states of the plurality of actuators when the force received by the probe satisfies the predetermined condition. The coordinate calculator is configured to calculate a position coordinate of the probe based on the operation states of the plurality of actuators. The position correction amount calculator is configured to calculate a correction amount of a position of the work stand relative to the robot based on the position coordinate of the probe.
According to the other aspect of the present disclosure, a method is for controlling a robot. The robot includes an arm, a plurality of actuators, a plurality of sensors, a probe, and a force sensor. The arm includes a plurality of joints. The plurality of actuators are configured to drive the plurality of joints. The plurality of sensors are configured to detect operation states of the plurality of actuators. The probe is mounted on the arm. The force sensor is configured to detect force received by the probe. The method includes determining whether the force received by the probe from a structure disposed at a predetermined position on a work stand satisfies a predetermined condition. The operation states of the plurality of actuators are acquired when the force received by the probe satisfies the predetermined condition. A position coordinate of the probe is calculated based on the operation states of the plurality of actuators. A correction amount of a position of the work stand relative to the robot is calculated based on the position coordinate of the probe.
A more complete appreciation of the present disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
The embodiments will now be described with reference to the accompanying drawings, wherein like reference numerals designate corresponding or identical elements throughout the various drawings.
The robot system 1 includes a robot 2 and a controller 10. The robot 2 includes an articulated arm 21. The controller 10 controls the robot 2. The controller 10 is an example of the robot control apparatus. The robot 2 is disposed on a carriage 9, and movable relative to a work stand 8 and positioned relative to the work stand 8. The controller 10 is accommodated in the carriage 9. The arm 21 of the robot 2 will not be limited to one arm but may have two or more arms.
The arm 21 of the robot 2 includes a plurality of rotatable joints 31 to 37, and a plurality of links 41 to 47 coupled to each other through the joints 31 to 37. Each of the joints 31 to 37 is rotatable in directions indicated by the two-headed arrows shown in
The robot 2 includes a plurality of servomotors 51 to 57 to drive the joints 31 to 37 into rotation. The servomotors 51 to 57 drive the joints 31 to 37 into rotation in response to a command from the controller 10. The servomotors 51 to 57 include encoders to detect a rotation angle and output a detection signal that corresponds to the rotation angle. The servomotors 51 to 57 are examples of the actuators to drive the joints. The encoders are examples of the sensors to detect operation states of the actuators. The rotation angles of the servomotors 51 to 57 are examples of the operation states of the actuators.
A rod-shaped probe 6 is disposed on the distal end of the arm 21 of the robot 2. A force sensor 7 is disposed between the distal end of the arm 21 and the probe 6. The force sensor 7 detects force received by the probe 6, and outputs to the controller 10 a detection signal that corresponds to the received force. An example of the force sensor 7 is a six-axis force sensor to detect force in three translational directions and in three rotational directions. Other examples of the force sensor 7 than the rod-shaped probe 6 include end effectors such as a hand.
A plurality of holes 8a are formed at a plurality of predetermined positions on a surface 81 of the work stand 8. The holes 8a and the probe 6 are fittable with each other. The portions of the work stand 8 in which the holes 8a are formed are examples of the structure disposed on the work stand 8. In this embodiment, the probe 6 is a columnar rod having a circular cross-section, and the hole 8a is a bottomed hole having a circular cross-section. The shape of the probe 6 and the shape of the hole 8a are not particularly limited insofar as the probe 6 and the hole 8a are fittable with each other. When the probe 6 is fitted with the hole 8a, the probe 6 has its posture accord with the shape of the hole 8a to enable the probe 6 to contact the inner surface of the hole 8a. For example, when the probe 6 is fitted with the hole 8a, a gap of approximately 10 μm is formed between the outer surface of the probe 6 and the inner surface of the hole 8a.
The controller 10 includes a microprocessor and a memory. The memory stores programs to be executed by the microprocessor and data used for control. The programs may be provided from an information recording medium readable by a computer or may be provided through a communication line. The controller 10 performs various types of processing in accordance with the programs read from the memory.
For example, the controller 10 performs such work processing as to subject an object to a predetermined kind of work such as mounting of parts. In the work processing, the controller 10 drives the servomotors 51 to 57 based on data indicating operation content, thus enabling the arm 21 of the robot 2 to perform the predetermined work. In the data indicating the operation content, the target position of the arm 21 is described using a work stand coordinate system, which is based on the work stand 8, instead of using a robot coordinate system, which is based on the robot 2. Thus, the controller 10 stores the position of the origin of the work stand coordinate system in the robot coordinate system, and uses the position of the origin to calculate the target position of the arm 21 in the robot coordinate system.
Furthermore, during the time between installation of the robot 2 and the above-described work processing, the controller 10 performs calibration processing described below. When the installed robot 2 is displaced from a predetermined position and a predetermined posture, the target position of the arm 21 calculated by the controller 10 in the above-described work processing may be displaced from an originally intended target position. This is addressed by the controller 10 performing the calibration processing prior to the work processing. The calibration processing performed by the controller 10 will be described in detail below.
The tables in
Referring back to
The following description concerns processing after the probe 6 has been fitted with the hole 8a of the work stand 8. Then, processing prior to the probe 6 being fitted with the hole 8a of the work stand 8 (processing as a contact control unit) will be described in detail later.
The determinator 11 determines whether the probe 6 is fitted with the hole 8a of the work stand 8 based on force that is received by the probe 6 and detected by the force sensor 7. When the determinator 11 determines that the probe 6 is fitted with the hole 8a of the work stand 8, the determinator 11 outputs to the operation state acquisitor 12 a notification indicating that the probe 6 is fitted with the hole 8a. The determination as to whether the probe 6 is fitted with the hole 8a of the work stand 8 will be described in detail later.
When the determinator 11 notifies the operation state acquisitor 12 of the fitting of the probe 6 with the hole 8a of the work stand 8, the operation state acquisitor 12 acquires rotation angles of the servomotors 51 to 57 detected by the servomotors 51 to 57, and outputs the acquired rotation angles to the coordinate calculator 13. That is, the rotation angles of the servomotors 51 to 57 that the operation state acquisitor 12 acquires here indicate states of the joints 31 to 37 of the arm 21 with the probe 6 fitted with the hole 8a of the work stand 8.
When the coordinate calculator 13 receives the rotation angles of the servomotors 51 to 57 from the operation state acquisitor 12, the coordinate calculator 13 calculates a position coordinate of the distal end of the probe 6 based on the rotation angles of the servomotors 51 to 57, and outputs the calculated position coordinate to the position correction amount calculator 14 and the direction correction amount calculator 15. Specifically, based on the rotation angles of the servomotors 51 to 57 and the length of each arm section read from the area length table of
When the position correction amount calculator 14 receives the position coordinate of the distal end of the probe 6 from the coordinate calculator 13, the position correction amount calculator 14 calculates a position correction amount for correcting the position of the work stand 8 relative to the robot 2 based on the position coordinate of the distal end of the probe 6. Specifically, as shown in
The position correction amount thus calculated is used to correct the position of the work stand 8 relative to the robot 2 in the manner shown in
When the direction correction amount calculator 15 receives the position coordinate of the distal end of the probe 6 from the coordinate calculator 13, the direction correction amount calculator 15 calculates a direction correction amount for correcting the reference directions of the work stand 8 relative to the robot 2 based on the position coordinate of the distal end of the probe 6 calculated for each of the plurality of holes 8a. If the position coordinates of the plurality of holes 8a are already known, the position coordinates of the plurality of holes 8a may serve as a basis for defining one or a plurality of directions. For example, if position coordinates of two holes 8a are available, it is possible to define a longitudinal direction of a line segment containing the two holes 8a. If position coordinates of three holes 8a are available, it is possible to define a normal direction of a plane containing the three holes 8a. In view of this, the direction correction amount is as shown in
The direction correction amount thus calculated is used to correct the reference directions of the work stand 8 relative to the robot 2 in the manner shown in
The above-described calibration processing ensures calibration of the origin position and the reference directions of the work stand coordinate system in the robot coordinate system. This, as a result, eliminates or minimizes displacement of the target position of the arm 21 calculated by the controller 10 in the subsequent work processing relative to the originally intended target position.
The rewriting of the origin coordinate table should not be construed in a limiting sense. Another possible example is to store the calculated position correction amount and the calculated direction correction amount, and apply the position correction amount and the direction correction amount every time the controller 10 calculates the target position of the arm 21 in the robot coordinate system in the work processing. Specifically, in the data indicating the operation content, the target position of the arm 21 is described using the work stand coordinate system. The controller 10 adds a vector from the origin of the robot coordinate system to the origin of the work stand coordinate system to a vector from the origin of the work stand coordinate system to the target position of the arm 21, so as to calculate the target position of the arm 21 in the robot coordinate system. In view of this, it is possible to add vectors of the correction amounts in this calculation process.
Furthermore, putting the basis of calculating the direction correction amount on the position coordinates of the plurality of holes 8a should not be construed in a limiting sense. Another possible example is to put the basis of calculating the direction correction amount on structure shape information such as a boring direction of the holes 8a stored in the hole coordinate table in advance, and on posture information of the probe 6 calculated based on the rotation angles of the servomotors 51 to 57. Specifically, the extending direction of the probe 6 fitted with the hole 8a corresponds to the boring direction of the hole 8a. Thus, the calculated direction correction amount may be assumed the difference between the extending direction of the probe 6 calculated based on the rotation angles of the servomotors 51 to 57 and the boring direction of the hole 8a read from the hole coordinate table.
This embodiment eliminates the need for using a visual sensor in calculating the position correction amount for correcting the position of the work stand 8 relative to the robot 2 and in calculating the direction correction amount for correcting the reference directions of the work stand 8 relative to the robot 2. Using a visual sensor for position calibration and direction calibration may degrade the calibration accuracy due to the influence of the illumination environment and luster of objects in a visual range. In contrast, this embodiment eliminates or minimizes such influence and ensures accurate calibration.
Description will be made with regard to a first embodiment of the contact control of fitting the probe 6 with the holes 8a of the work stand 8.
At step S11, the controller 10 moves the probe 6 to its initial position. For example, the controller 10 moves the probe 6 toward the position coordinate of a hole 8a read from the hole coordinate table of
More specifically, the controller 10 determines a target position and a target posture of the probe 6 for bringing the probe 6 into proximity to the hole 8a, and also determines rotation angles of the servomotors 51 to 57 that implement the target position and the target posture. Incidentally, since the arm 21 of the robot 2 has a redundant degree of freedom, there are a plurality of combinations of the rotation angles of the servomotors 51 to 57 that can implement the target position and the target posture. From among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the controller 10 selects an optimum combination based on an inverse kinetics algorithm. Here, an exemplary combination to be selected is a combination that has less of a load on the joints 31 to 37.
The operation of bringing the probe 6 into proximity to the hole 8a may be a manual operation.
At steps S12 and S13, the controller 10 selects one provisional displacement direction from among a plurality of provisional displacement directions, and sets a target value of micro-displacement in the selected provisional displacement direction. The plurality of provisional displacement directions include various directions such as translational directions and rotational directions. Each of the provisional displacement directions preferably contains a component of the insertion direction of the probe 6 into the hole 8a. Here, the insertion direction recognized by the controller 10 is similar to, if not exactly the same as, the actual insertion direction. This ensures setting of a provisional displacement direction containing a component of the insertion direction. In
At step S14, the controller 10 determines rotation angles of the servomotors 51 to 57 for implementing the target value of micro-displacement that has been set. At this step as well, the controller 10 selects an optimum combination from among the plurality of combinations of the rotation angles of the servomotors 51 to 57 based on an inverse kinetics algorithm.
At step S15, the controller 10 drives the servomotors 51 to 57 to implement the determined rotation angles of the servomotors 51 to 57. This provides the probe 6 with motive power in the provisional displacement direction, bringing the probe 6 into proximity to the target value of micro-displacement.
At step S16, from a detection signal of the force sensor 7, the controller 10 acquires force information indicating force received by the probe 6 when the probe 6 is provided with the motive power in the provisional displacement direction, and the controller 10 stores the force information in the memory.
The controller 10 performs the above-described processing at steps S12 to S16 for all the provisional displacement directions (S17). When the processing for all the provisional displacement directions is completed (S17: YES), the controller 10 proceeds the processing to step S18.
At step S18, the controller 10 selects one provisional displacement direction from among the plurality of provisional displacement directions as a displacement direction based on the force information stored in the memory. For example, the provisional displacement direction in which the probe 6 receives the smallest force is selected as the displacement direction. In
At step S19, the controller 10 drives the servomotors 51 to 57 to displace the probe 6 in the selected displacement direction. Here, the controller 10 may store the rotation angles of the servomotors 51 to 57 determined at step S14 and use the rotation angles, or the controller 10 may determine rotation angles of the servomotors 51 to 57 anew. The amount of displacement of the probe 6 may be equal to or larger than the above-described micro-displacement. It is also possible to displace the probe 6 in the selected displacement direction until the force received by the probe 6 becomes equal to or larger than a predetermined value.
In the embodiment shown in
At step S20, the controller 10 determines whether the probe 6 is fitted with a hole 8a of the work stand 8 (which is a function as the determinator 11). When the controller 10 determines that the probe 6 is not fitted with the hole 8a of the work stand 8 (S20: NO), the controller 10 repeats the processing at steps S12 to S19.
When the controller 10 determines that the probe 6 is fitted with the hole 8a of the work stand 8 (S20: YES), the controller 10 ends the contact control and proceeds to the above-described calibration processing.
In this embodiment, when the probe 6 is displaced at steps S11 and S14, the rotation angles of the servomotors 51 to 57 are determined based on an inverse kinetics algorithm. Specifically, exemplary rotation angles of the servomotors 51 to 57 to be selected throughout the time until the probe 6 is fitted with the hole 8a of the work stand 8 are those rotation angles that have less of a load on the joints 31 to 37. This ensures accurate calculation of the position coordinate of the distal end of the probe 6 in the calibration processing.
Contact control according to a second embodiment will be described below.
As shown in
In this embodiment, a direction orthogonal to the surface 81 of the work stand 8 will be assumed a Z direction, and directions orthogonal to the two surfaces 832 and 833 of the jig 83 will be assumed an X direction and a Y direction. When the installed robot 2 is displaced from a predetermined posture, the X, Y, and Z directions recognized by the controller 10 may not be exactly the same as actual X, Y, and Z directions. Even though a slight tolerance occurs, the contact control described below is not particularly affected.
In this embodiment, the controller 10 drives the servomotors 51 to 57 to move the probe 6 while maintaining its posture. Specifically, the controller 10 determines the target position of the probe 6 so as to bring the probe 6 into proximity to the jig 83 of the work stand 8. At the same time, while maintaining the target posture of the probe 6, the controller 10 calculates the rotation angles of the servomotors 51 to 57 to implement the target position and the target posture. For example, in this embodiment, the controller 10 maintains the posture of the probe 6 to keep the extending direction of the probe 6 along the Z direction.
At step S21, the controller 10 moves the probe 6 to its initial position. For example, the controller 10 moves the probe 6 toward a position coordinate of the jig 83 stored in advance to bring the probe 6 into proximity to the jig 83. Here, assume that the distal end portion 61 of the probe 6 is on the side of the recessed portion 8b of the jig 83 at the time when the probe 6 is moved to its initial position.
More specifically, the controller 10 determines the target position of the probe 6 to bring the probe 6 into proximity to the jig 83. At the same time, while maintaining the target posture of the probe 6, the controller 10 determines the rotation angles of the servomotors 51 to 57 to implement the target position and the target posture. Incidentally, the arm 21 of the robot 2 has seven degrees of freedom. Among the seven degrees of freedom, three degrees of rotational freedom are used to maintain the posture of the probe 6, and the rest of the degrees of freedom include one redundant degree of freedom in addition to three degrees of translational freedom. Hence, there are a plurality of combinations of the rotation angles of the servomotors 51 to 57 that can implement the target position and the target posture. From among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the controller 10 selects an optimum combination based on an inverse kinetics algorithm to which a limitation condition to maintain the target posture of the probe 6 is added.
The operation of bringing the probe 6 into proximity to the jig 83 may be a manual operation.
At step S22, the controller 10 selects one direction from among the X, Y, and Z directions.
At steps S23, S24, and S25, the controller 10 sets a target value of the amount of displacement of the probe 6 in the selected direction, determines rotation angles of the servomotors 51 to 57 to implement the set target value of the displacement amount, and drives the servomotors 51 to 57. At this stage as well, from among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the controller 10 selects an optimum combination based on an inverse kinetics algorithm to which a limitation condition to maintain the target posture of the probe 6 is added. Thus, the probe 6 is displaced in the selected direction in the maintained posture.
At steps S26 and S27, from a detection signal of the force sensor 7, the controller 10 acquires force information indicating force received by the probe 6 when the probe 6 is displaced in the selected direction. Thus, the controller 10 determines whether the distal end portion 61 of the probe 6 is in contact state. Specifically, when the force received by the probe 6 is equal to or larger than a predetermined value, the controller 10 determines that the distal end portion 61 of the probe 6 is in contact state.
When the controller 10 determines that the distal end portion 61 of the probe 6 is not in contact state (S27: NO), the controller 10 repeats the processing at steps S23 to S26.
When the controller 10 determines that the distal end portion 61 of the probe 6 is in contact state (S27: YES), the controller 10 performs the processing at steps S22 to S27 for the other directions (S28: NO).
When the controller 10 determines that the distal end portion 61 of the probe 6 is in contact state for all the X, Y, and Z directions (S28: YES), the controller 10 ends the contact control and proceeds to the above-described calibration processing. Here, as shown in
In the calibration processing, for all the X, Y, and Z directions, the controller 10 acquires the rotation angles of the servomotors 51 to 57 at the time when the distal end portion 61 of the probe 6 is in contact state. Then, the controller 10 calculates a position coordinate of the distal end portion 61 of the probe 6, and calculates a position correction amount based on the difference between the calculated position coordinate of the distal end portion 61 of the probe 6 and the position coordinate of the jig 83 stored in advance.
In a third embodiment and a fourth embodiment, the controller 10 further includes a contact control unit 16 as shown in, for example,
Description will be made with regard to a third embodiment of the contact control of fitting the probe 6 with the holes 8a of the work stand 8.
At step S11, the contact control unit 16 moves the probe 6 to its initial position. For example, the contact control unit 16 moves the probe 6 toward the position coordinate of a hole 8a read from the hole coordinate table of
More specifically, the contact control unit 16 determines a target position and a target posture of the probe 6 for bringing the probe 6 into proximity to the hole 8a, and also determines rotation angles of the servomotors 51 to 57 that implement the target position and the target posture. Incidentally, since the arm 21 of the robot 2 has a redundant degree of freedom, there are a plurality of combinations of the rotation angles of the servomotors 51 to 57 that can implement the target position and the target posture. From among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the contact control unit 16 selects an optimum combination based on an inverse kinetics algorithm. Here, an exemplary combination to be selected is a combination that has less of a load on the joints 31 to 37.
The operation of bringing the probe 6 into proximity to the hole 8a may be a manual operation.
At steps S12 and S13, the contact control unit 16 selects one provisional displacement direction from among a plurality of provisional displacement directions, and sets a target value of micro-displacement in the selected provisional displacement direction. The plurality of provisional displacement directions include various directions such as translational directions and rotational directions. Each of the provisional displacement directions preferably contains a component of the insertion direction of the probe 6 into the hole 8a. Here, the insertion direction recognized by the contact control unit 16 is similar to, if not exactly the same as, the actual insertion direction. This ensures setting of a provisional displacement direction containing a component of the insertion direction. In
At step S14, the contact control unit 16 determines rotation angles of the servomotors 51 to 57 for implementing the target value of micro-displacement that has been set. At this step as well, the contact control unit 16 selects an optimum combination from among the plurality of combinations of the rotation angles of the servomotors 51 to 57 based on an inverse kinetics algorithm.
At step S15, the contact control unit 16 drives the servomotors 51 to 57 to implement the determined rotation angles of the servomotors 51 to 57. This provides the probe 6 with motive power in the provisional displacement direction, bringing the probe 6 into proximity to the target value of micro-displacement.
At step S16, from a detection signal of the force sensor 7, the contact control unit 16 acquires force information indicating force received by the probe 6 when the probe 6 is provided with the motive power in the provisional displacement direction, and the contact control unit 16 stores the force information in the memory.
The contact control unit 16 performs the above-described processing at steps S12 to S16 for all the provisional displacement directions (S17). When the processing for all the provisional displacement directions is completed (S17: YES), the contact control unit 16 proceeds the processing to step S18.
At step S18, the contact control unit 16 selects one provisional displacement direction from among the plurality of provisional displacement directions as a displacement direction based on the force information stored in the memory. For example, the provisional displacement direction in which the probe 6 receives the smallest force is selected as the displacement direction. In
At step S19, the contact control unit 16 drives the servomotors 51 to 57 to displace the probe 6 in the selected displacement direction. Here, the contact control unit 16 may store the rotation angles of the servomotors 51 to 57 determined at step S14 and use the rotation angles, or the contact control unit 16 may determine rotation angles of the servomotors 51 to 57 anew. The amount of displacement of the probe 6 may be equal to or larger than the above-described micro-displacement. It is also possible to displace the probe 6 in the selected displacement direction until the force received by the probe 6 becomes equal to or larger than a predetermined value. When the contact control unit 16 has finished the step S19 (i.e. driving the servomotors 51 to 57), the contact control unit 16 may notify the determinator 11 of finishing the step S19 (i.e. driving the servomotors 51 to 57). In this case, when the determinator 11 receives the notification (i.e. finishing the step S19 by the contact control unit 16), the determinator 11 may begin to implement the following step S20.
In the embodiment shown in
At step S20, the determinator 11 determines whether the probe 6 is fitted with a hole 8a of the work stand 8. When the determinator 11 determines that the probe 6 is not fitted with the hole 8a of the work stand 8 (S20: NO), the determinator 11 commands the contact control unit 16 to repeat the processing at steps S12 to S19.
When the determinator 11 determines that the probe 6 is fitted with the hole 8a of the work stand 8 (S20: YES), the determinator 11 commands the contact control unit 16 to end the contact control. Then, the determinator 11 proceeds to the above-described calibration processing.
In this embodiment, when the probe 6 is displaced at steps S11 and S14, the rotation angles of the servomotors 51 to 57 are determined based on an inverse kinetics algorithm. Specifically, exemplary rotation angles of the servomotors 51 to 57 to be selected throughout the time until the probe 6 is fitted with the hole 8a of the work stand 8 are those rotation angles that have less of a load on the joints 31 to 37. This ensures accurate calculation of the position coordinate of the distal end of the probe 6 in the calibration processing.
Contact control according to the fourth embodiment will be described below.
As shown in
In this embodiment, a direction orthogonal to the surface 81 of the work stand 8 will be assumed a Z direction, and directions orthogonal to the two surfaces 832 and 833 of the jig 83 will be assumed an X direction and a Y direction. When the installed robot 2 is displaced from a predetermined posture, the X, Y, and Z directions recognized by the contact control unit 16 may not be exactly the same as actual X, Y, and Z directions. Even though a slight tolerance occurs, the contact control described below is not particularly affected.
In this embodiment, the contact control unit 16 drives the servomotors 51 to 57 to move the probe 6 while maintaining its posture. Specifically, the contact control unit 16 determines the target position of the probe 6 so as to bring the probe 6 into proximity to the jig 83 of the work stand 8. At the same time, while maintaining the target posture of the probe 6, the contact control unit 16 calculates the rotation angles of the servomotors 51 to 57 to implement the target position and the target posture. For example, in this embodiment, the contact control unit 16 maintains the posture of the probe 6 to keep the extending direction of the probe 6 along the Z direction.
At step S21, the contact control unit 16 moves the probe 6 to its initial position. For example, the contact control unit 16 moves the probe 6 toward a position coordinate of the jig 83 stored in advance to bring the probe 6 into proximity to the jig 83. Here, assume that the distal end portion 61 of the probe 6 is on the side of the recessed portion 8b of the jig 83 at the time when the probe 6 is moved to its initial position.
More specifically, the contact control unit 16 determines the target position of the probe 6 to bring the probe 6 into proximity to the jig 83. At the same time, while maintaining the target posture of the probe 6, the contact control unit 16 determines the rotation angles of the servomotors 51 to 57 to implement the target position and the target posture. Incidentally, the arm 21 of the robot 2 has seven degrees of freedom. Among the seven degrees of freedom, three degrees of rotational freedom are used to maintain the posture of the probe 6, and the rest of the degrees of freedom include one redundant degree of freedom in addition to three degrees of translational freedom. Hence, there are a plurality of combinations of the rotation angles of the servomotors 51 to 57 that can implement the target position and the target posture. From among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the contact control unit 16 selects an optimum combination based on an inverse kinetics algorithm to which a limitation condition to maintain the target posture of the probe 6 is added.
The operation of bringing the probe 6 into proximity to the jig 83 may be a manual operation.
At step S22, the contact control unit 16 selects one direction from among the X, Y, and Z directions.
At steps S23, S24, and S25, the contact control unit 16 sets a target value of the amount of displacement of the probe 6 in the selected direction, determines rotation angles of the servomotors 51 to 57 to implement the set target value of the displacement amount, and drives the servomotors 51 to 57. At this stage as well, from among the plurality of combinations of the rotation angles of the servomotors 51 to 57, the contact control unit 16 selects an optimum combination based on an inverse kinetics algorithm to which a limitation condition to maintain the target posture of the probe 6 is added. Thus, the probe 6 is displaced in the selected direction in the maintained posture.
At steps S26 and S27, from a detection signal of the force sensor 7, the determinator 11 acquires force information indicating force received by the probe 6 when the probe 6 is displaced in the selected direction. Thus, the determinator 11 determines whether the distal end portion 61 of the probe 6 is in contact state. Specifically, when the force received by the probe 6 is equal to or larger than a predetermined value, the determinator 11 determines that the distal end portion 61 of the probe 6 is in contact state.
When the determinator 11 determines that the distal end portion 61 of the probe 6 is not in contact state (S27: NO), the determinator 11 commands the contact control unit 16 to repeat the processing at steps S23 to S26.
When the determinator 11 determines that the distal end portion 61 of the probe 6 is in contact state (S27: YES), the determinator 11 commands the contact control unit 16 to perform the processing at steps S22 to S27 for the other directions (S28: NO).
When the determinator 11 determines that the distal end portion 61 of the probe 6 is in contact state for all the X, Y, and Z directions (S28: YES), the determinator 11 commands the contact control unit 16 to end the contact control and proceeds to the above-described calibration processing. Here, as shown in
In the calibration processing, for all the X, Y, and Z directions, the operation state acquisitor 12 acquires the rotation angles of the servomotors 51 to 57 at the time when the distal end portion 61 of the probe 6 is in contact state. Then, the coordinate calculator 13 calculates a position coordinate of the distal end portion 61 of the probe 6, and the position correction amount calculator 14 calculates a position correction amount based on the difference between the calculated position coordinate of the distal end portion 61 of the probe 6 and the position coordinate of the jig 83 stored in advance.
Regarding the above-described third embodiment and fourth embodiment, the contact control unit 16 included in the controller 10 should not be construed in a limiting sense. Another possible example is that the contact control unit 16 may be separate from the controller 10. Also the contact control unit 16 may be tangible (for example, in the form of device, apparatus and/or electrical circuit) or intangible (for example, in the form of program and/or software).
Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced otherwise than as specifically described herein.
Number | Date | Country | Kind |
---|---|---|---|
2013-165923 | Aug 2013 | JP | national |