The present application claims priority under 35 U.S.C. §119 to Japanese Patent Application No. 2010-244554 filed Oct. 29, 2010. 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 control apparatus, a robot control method, and a robot system that control a robot.
2. Description of the Related Art
Conventionally, there has been known a robot system that moves a reference portion of a robot according to a command path registered in advance.
A technique has been proposed that outputs a notification signal under the condition in which, with respect to the robot system, for example, as described in Japanese Unexamined Patent Application Publication Nos. 1997-258812 and 2006-243926, a predicted position predicted from a moving track of the reference portion or an estimated position estimated from an operation command for the robot is matched with a predetermined signal output position.
According to one aspect of the present invention, a robot control apparatus includes: a register that registers a signal output position representing a position at which a predetermined signal should be output; a position acquirer that acquires a reference portion position representing a position of a reference portion in a robot; a vector calculator that calculates a first vector representing a moving direction of the reference portion at the reference portion position and a second vector representing relative positions of the signal output position and the reference portion position; and a determiner that determines whether or not the predetermined signal is output on the basis of the first vector and the second vector that are calculated by the vector calculator.
A more complete appreciation of the invention 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:
Embodiments will now be described with reference to the accompanying drawings, wherein like reference numerals designate corresponding or identical elements throughout the various drawings.
Embodiments of a robot control apparatus, a robot control method, and a robot system that are disclosed in this application will be described below in detail with reference to the accompanying drawings. The present invention is not limited to an exemplification in the embodiments (will be described below).
In the embodiments (will be described below), in terms of simplification of the explanation, the robot two-dimensionally moves in the explanation. This explanation can also be applied when the robot three-dimensionally moves.
A signal output determining method according to a first embodiment will now be described with reference to
As shown in
As shown in
In this case, as shown in
However, in order to efficiently perform the operation (Sn), it is preferably detected that the reference portion of the robot is close to the teaching point Sn before the reference portion reaches the teaching point Sn. For this reason, as shown in
Assuming that a notification signal is output when the reference portion of the robot reaches a signal output position Pn, the robot can be designated to start the operation (Sn) in response to the output notification signal. A moving track of the reference portion of the robot, like a moving track 110 shown in
In the signal output determining method according to the first embodiment, on the basis of a vector Vr representing a moving direction of the reference portion at the latest reference portion position and a vector Vp representing relative positions of the latest reference portion position and the signal output position Pn, a timing at which a notification signal corresponding to the signal output position Pn is output is determined.
More specifically, in the signal output determining method according to the first embodiment, on the basis of a relationship between the vector Vr and the vector Vp, it is detected that the latest reference portion position is closest to the signal output position Pn. The vector Vp need only include at least a “direction”, and the “magnitude” need not be considered to be 1 like a unit vector.
More specifically, as shown in an enlarged diagram of a region 112 shown in
In the following explanation, when a plurality of reference portion positions Rare discriminated from each other, subscript additional characters are added to the reference portion positions R, respectively. For example, the latest reference portion position R is expressed as a reference portion position Rt, the reference portion position R acquired previously to the reference portion position Rt is expressed as a reference portion position Rt−1.
When the sampling interval is sufficiently small, the vector Vr shown in
Vr=R
t
−R
t−1 (1)
There are a plurality of various calculations for the vector Vr. This point will be described in detail with reference to
In the signal output determining method according to the first embodiment, the vector Vp is calculated on the basis of the latest reference portion position Rt and the signal output position Pn. For example, the vector Vp is calculated by the following equation (2).
Vp=R
t
−P
n (2)
In the signal output determining method according to the first embodiment, an output determination of a notification signal is performed on the basis of the calculated vector Vr and the Vector Vp. For example, in the signal output determining method according to the first embodiment, it is determined that, when a change in sign of an inner product representing an inner product between the vector Vr and the vector Vp is detected, a notification signal is output.
More specifically, a magnitude of the vector Vr is represented by vr, a magnitude of the vector Vp is represented by vp, an angle between the vector Vr and the vector Vp is represented by θ, and the inner product is represented by I. In this case, the inner product I is expressed by the following equation (3).
I=vr×vp×cos θ (3)
In this case, when the reference portion position R comes closest to the signal output position Pn, the angle between the vector Vr and the vector Vp is 90°. More specifically, in this case, since “cos 90°=0” is given, the inner product I becomes 0 according to equation (3). Thus, when the inner product I is considered, it can be detected that the reference portion position Rt comes closest to the signal output position Pn.
Since the vector Vr and the vector Vp are expressed by two-dimensional x-y coordinates (Vrx, Vry) and (Vpx, Vpy), respectively, the inner product I can be calculated by the following equation (4).
I=Vr
x
×Vp
x
+Vr
y
×Vp
y (4)
More specifically, the inner product I can be calculated by a simple calculation given by equation (4). Therefore, a processing load of a method of detecting on the basis of the inner product I that the reference portion position Rt comes closest to the signal output position Pn is very low. On the basis of the inner product I calculated by equation (4) and the known values vr and vp, an angle θ between the vector Vr and the vector Vp can be calculated from equation (3).
There are a plurality of various methods of output determination in consideration of the relationship between the vector Vr and the vector Vp. This point will be described in detail below with reference to
In this manner, in the signal output determining method according to the first embodiment, it is assumed that the two vectors, i.e., the vector Vr representing a moving direction of the reference portion at the latest reference portion position Rt and the vector Vp representing relative positions of the latest reference portion position Rt and the signal output position Pn are used for output determination of a notification signal.
Therefore, even though the reference portion position R of the robot does not pass through the signal output position P, a timing at which the reference portion position R comes closest to the signal output position P can be accurately detected. For this reason, an output of the notification signal described above can be appropriately performed.
More specifically, according to the signal output determining method according to the first embodiment, a situation in which an output operation itself of the notification signal is not performed or a situation in which an output timing of the notification signal is excessively early or late can be avoided.
A configuration of a robot system according to the first embodiment will be described below with reference to
As shown in
The robot 10 is fixed to a floor surface or the like through a base 11. The robot 10 has a plurality of robot arms 12, and each of the robot arms 12 is connected to another robot arm 12 through a joint having a servo motor 13.
The joint having the servo motor 13 shown in
Of the robot arms 12 connected to each other through the joints each having the servo motor 13, a distal end of the robot arm 12 being closest to the base 11 is fixed to the base 11, and a robot hand 14 is connected to a distal end of the robot arm 12 being farthest from the base 11. At a predetermined position on the robot hand 14, a reference portion 15 serving as a reference position of the robot 10 is defined.
In this case, as an end effector attached to the distal end of the robot arm 12, a robot hand is exemplified here. However, the end effector is not limited to the robot hand. For example, the end effector may be a welding machine or a painting machine.
The robot 10 independently rotates each of the servo motors 13 by an arbitrary angle according to a moving designation from the robot control apparatus 20 or the like to move the reference portion 15 to an arbitrary position. The robot 10 notifies the robot control apparatus 20 of an output value (hereinafter referred to as an “encoder value”) from a rotation detector of each of the servo motors 13, for example, a rotating angle from a predetermined reference value.
The robot control apparatus 20 that receives the encoder value from the robot 10 consequently calculates a position of the reference portion 15 on the basis of the received encoder value and an arm length of each of the robot arms 12.
The robot control apparatus 20 is a control apparatus that performs operation control of the robot 10. For example, the robot control apparatus 20 performs control to move the reference portion 15 of the robot 10 according to a command path registered in advance and control to open/close the robot hand 14.
In this case, the robot control apparatus 20 determines a moving amount required to move the reference portion 15 according to the command path with respect to each of the servo motors 13 and indicates each of the determined moving amounts to the robot 10. A configuration of the robot control apparatus 20 will be described later with reference to
The external apparatus 30 is an input/output device serving as a man-machine interface of the robot control apparatus 20. For example, the external apparatus 30 includes an input device such as a switch, a button, or a key and a display device such as a display. The external apparatus 30 registers a command path to the robot control apparatus 20 according to an input operation from an operator and displays an operation state of the robot 10.
A plurality of robot control apparatuses 20 are arranged, and the external apparatus 30 may be configured as a relay device that relays a signal between the robot control apparatuses 20. In this case, the robot control apparatus 20 outputs a notification signal to the external apparatus 30. The external apparatus 30 transmits the received notification signal to another robot control apparatus.
In
A configuration of the robot control apparatus 20 according to the first embodiment will now be described below with reference to
The controller 22 further includes an output position register 22a, a position acquirer 22b, a vector calculator 22c, a signal output determiner 22d, and a designator 22e. The storage 23 stores path information 23a, an output position information 23b, history information 23c, and determination condition information 23d.
In
The communicator 21 is a communication device such as a LAN board that performs data transmission/reception between the robot 10 and the robot control apparatus 20. The communicator 21 performs a process of giving data received from the robot 10 to the controller 22 and a process of transmitting the data received from the controller 22 to the robot 10.
The controller 22 is a controller that entirely controls the robot control apparatus 20. The output position register 22a reads the path information 23a from the storage 23 and performs a process of calculating the signal output position Pn shown in
The output position register 22a performs a process of registering the calculated signal output position Pn in the storage 23 as the output position information 23b. A concrete calculation for the signal output position Pn will be described later with reference to
The position acquirer 22b acquires the reference portion position R representing an actual position of the reference portion 15 on the basis of the data received from the robot 10 through the communicator 21. More specifically, the position acquirer 22b performs a “forward conversion process” by using an encoder value such as rotating angle data acquired from the servo motors 13 (see
The “forward conversion process” mentioned here denotes a process of calculating positions and attitudes of links from rotating angles of the joints in a multi-joint link structure. The “backward conversion process” denotes a process of calculating rotating angles of the joints from specific positions or specific attitudes to be satisfied by the links.
In this manner, the position acquirer 22b calculates the reference portion position R on the basis of the rotating angle data acquired from the servo motors 13 (see
In the above explanation, the position acquirer 22b calculates the reference portion position R on the basis of the encoder value acquired from the robot 10. However, the reference portion position R may be acquired by another method. For example, a position sensor may be arranged in the reference portion 15 of the robot 10, and position data detected by the position sensor may be acquired by the position acquirer 22b as the reference portion position R.
The position acquirer 22b also performs a process of storing the acquired reference portion position R in the storage 23 as the history information 23c. In this case, the history information 23c includes at least the coordinates of the latest reference portion position Rt and the coordinates of a first previous reference portion position of the latest reference portion position Rt, i.e., the reference portion position Rt−1 acquired immediately before the latest reference portion position Rt. The number of reference portion positions R included in the history information 23c may be set to an arbitrary number that is two or more.
The vector calculator 22c performs a process of calculating the vector Vr and the vector Vp shown in
The signal output determiner 22d determines whether a notification signal is output on the basis of the vector Vr and the vector Vp received from the vector calculator 22c and the determination condition information 23d in the storage 23. More specifically, the signal output determiner 22d performs a process of determining a timing at which the notification signal is output.
The signal output determiner 22d outputs the notification signal to the designator 22e when it is determined that the notification signal is output. The first embodiment describes a case in which the signal output determiner 22d generates a notification signal and outputs the generated notification signal to the designator 22e.
However, the present invention is not limited to the embodiment. A timing at which the notification signal is output may be determined by the signal output determiner 22d, and an outputter (not shown) may be designed to output the notification signal. A destination of the notification signal is not only an inside of the robot control apparatus 20 but also another apparatus, for example, the external apparatus 30 shown in
The determination condition information 23d is information including a determination condition prepared for each of variations of the determining process performed by the signal output determiner 22d. When such determination condition information 23d is changed, the contents of the determining process performed by the signal output determiner 22d can be changed.
When the designator 22e receives the notification signal from the signal output determiner 22d, the designator 22e performs a process of designating an operation corresponding to the received notification signal to the robot 10 through the communicator 21. For example, the designator 22e designates the robot 10 to start an operation (Sn) associated with the teaching point Sn corresponding to the signal output position Pn in advance.
Processing contents executed by the robot control apparatus 20 according to the first embodiment will be described in more detail below.
A relationship between the vector Vr and the vector Vp calculated by the vector calculator 22c will be described below with reference to
The output position register 22a calculates the signal output position Pn corresponding to the teaching point Sn on the path 142a according to a predetermined condition. For example, as the condition, a distance to the teaching point Sn, a time to the teaching point Sn, and the like can be used.
If the reference portion 15 (see
However, since a response is delayed in the robot 10, the reference portion 15 may actually move along a path 141 shown in
Specifically, the reference portion 15 moving on the path 141 comes gradually close to the signal output position Pn, comes closest to the signal output position Pn, and then comes away from the signal output position Pn.
When the vector Vp shown in
Therefore, the inner product I in this case is a positive value when the latest reference portion position Rt comes gradually close to the signal output position Pn, is zero when the latest reference portion position Rt is closest to the signal output position Pn, and is a negative value when the latest reference portion position Rt comes gradually away from the signal output position Pn. More specifically, a change of the inner product I is obtained by reversing the change shown in
A concrete example of a signal output determining process performed by the signal output determiner 22d shown in
As described above with reference to
As described above, since the reference portion positions R are acquired at predetermined sampling intervals, the inner value I calculated on the basis of the reference portion position R is calculated as discontinuous values. Thus, the calculated inner value I may not be zero.
For example, as shown in
More specifically, when the sign of the inner product I changes from negative (−) to positive (+) for the first time, the signal output determiner 22d determines that the notification signal is output. When the inner product I is zero, it is understood that a sign is not present. However, in this case, the sign may be regarded as a positive (+) sign.
When the direction of the vector Vp is opposite of the direction of the vector Vp shown in
For example, as shown in
When the direction of the vector Vp is opposite of the direction of the vector Vp shown in
In the case shown in
The signal output determiner 22d performs a correction process that smoothes the calculated inner product I. For example, the signal output determiner 22d calculates a moving average of the calculated inner product I to smooth the inner product I (see a correction value 154 shown in
As shown in
In this case, the signal output determiner 22d determines that the notification signal is not output at the point 153a but is output at a timing corresponding to the point 153c. The timing may be a timing at which the correction value 154 exhibits a positive value for the first time, i.e., a timing corresponding to the point 153b.
In the description shown in
Variations of the signal output determining process performed by the signal output determiner 22d shown in
In this case, as shown in
For this reason, the signal output determiner 22d determines that the notification signal is output when the magnitude of the vector Vp is a predetermined value or less.
More specifically, as shown in
More specifically, when the determination shown in
In this case, as in the case shown in
The circle 163 indicates an effective area of the signal output determining process performed by the signal output determiner 22d. More specifically, the signal output determiner 22d does not perform the determining process when the latest reference portion position Rt is outside the circle 163, and performs the determining process when the latest reference portion position Rt is inside the circle 163.
The signal output determiner 22d performs a determining process based on a change in sign of the inner product I inside the circle 163, and performs a determining process based on the magnitude of the vector Vp inside the circle 161. A threshold value to be compared with the magnitude of the vector Vp, i.e., the radius of the circle 161 and the radius of the circle 163 can be arbitrarily determined.
In this manner, the signal output determiner 22d can use the magnitude of the vector Vp as a start condition or an end condition of the signal output determining process. In this manner, the determining process based on the relationship between the vector Vr and the vector Vp can be performed in only an appropriate area.
Variations of procedures of calculating the vector Vr will be described below with reference to
In this manner, when it is assumed that the vector Vr is calculated from the reference portion position Rt and the reference portion position Rt−1, a vector Vr can be calculated by a simple process. When a sampling interval of the reference portion positions R is sufficiently short, any problem in accuracy of the vector Vr is not posed. The vector Vr in
More specifically, the vector calculator 22c calculates the vector Vr by further using the reference portion position R (reference portion position Rt−2, reference portion position Rt−3, or the like) older than the reference portion position Rt−1 (see an ellipse 174 in
For example, the vector calculator 22c calculates the vector Vr on the basis of a curvature of the path 170 calculated from the reference portion position Rt−2, the reference portion position Rt−1, and the reference portion position Rt (see a vector 175 shown in
A curvature of the path 170 may be further calculated from the reference portion position Rt−3, the reference portion position Rt−2, and the reference portion position Rt−1, and the vector Vr may be calculated in consideration of a difference between the curvature and the previously calculated curvature. The vector 172 calculated once in
In this manner, the vector Vr is calculated by using at least three of the reference portion positions R to make it possible to more improve the accuracy of the vector Vr.
Procedures executed by the robot control apparatus 20 shown in
As shown in
Subsequently, the robot control apparatus 20 designates the robot 10 to start an operation (step S103), and the position acquirer 22b acquires a position of the reference portion 15 of the robot 10 (step S104). The position acquirer 22b updates the history information 23c by using a newly acquired position (step S105).
The vector calculator 22c performs the vector calculating process on the basis of the output position information 23b and the history information 23c (step S106). The detailed procedures of the vector calculating process will be described later with reference to
The signal output determiner 22d determines whether or not the notification signal is output on the basis of the vector Vr and the vector Vp calculated by the vector calculator 22c. For example, the signal output determiner 22d determines whether or not the inner product I between the vector Vr and the vector Vp is larger than 0 (step S107). In step S107, it may be determined whether or not the inner product I is 0 or more.
When the inner product I is larger than 0 (step S107, Yes), the notification signal is output (step S108). When the determination condition in step S107 is not satisfied (step S107, No), the processes subsequent to step S104 are repeated.
The designator 22e that receives the notification signal from the signal output determiner 22d designates the robot 10 to execute a predetermined operation (step S109). The robot control apparatus 20 determines whether or not the position of the reference portion 15 of the robot 10 reaches the end position (step S110).
When the position of the reference portion 15 of the robot 10 reaches the end position (step S110, Yes), the robot control apparatus 20 designates the robot 10 to end the operation (step S111) and ends the process. When the determination condition in step S110 is not satisfied (step S110, No), the processes subsequent to step S104 are repeated.
Step S107 shown in
Detailed procedures of the vector calculating process shown in step S106 in
The vector calculator 22c reads the position of the signal output position P concerned from the output position information 23b (step S201) and acquires the history information 23c (step S202). The order of step S201 and step S202 may be reversed, and step S201 and step S202 may be performed by parallel processing.
The vector calculator 22c calculates the vector Vr by using the equation (1) described above (step S203), calculates the vector Vp by using the equation (2) described above (step S204), and returns. The order of step S203 and step S204 may be reversed, and step S203 and step S204 may be performed by parallel processing.
As described above, in the first embodiment, the output position register registers a signal output position (P) representing a position to which the notification signal should be output, and the position acquirer acquires the reference portion position (R) representing the position of the reference portion in the robot. In the first embodiment, the vector calculator calculates the first vector (Vr) representing a speed of the reference portion at the reference portion position (R) and the second vector (Vp) representing relative positions of the signal output position (P) and the reference portion position (R).
In the first embodiment, the signal output determiner determines whether or not a notification signal is output on the basis of the first vector (Vr) and the second vector (Vp) calculated by the vector calculator.
Thus, according to the robot control apparatus according to the first embodiment, if the reference portion position (R) of the robot does not pass through the signal output position (P), the notification signal can be appropriately output. More specifically, according to the robot control apparatus according to the first embodiment, a situation in which an output operation itself of the notification signal is not performed or a situation in which an output timing of the notification signal is excessively early or late can be avoided.
Incidentally, the first embodiment described above describes the case in which the robot control apparatus acquires only the reference portion position (R) from the robot. However, the robot control apparatus may also acquire a speed of the robot at the reference portion position (R). For this reason, in a second embodiment described below, a description will be given of a case in which the robot control apparatus acquires the speed at the reference portion position (R).
As shown in
More specifically, the position and speed acquirer 22f acquires the latest reference portion position Rt of the robot 10 and a speed of the reference portion 15 at the latest reference portion position Rt from the robot 10 through the communicator 21. The position and speed acquirer 22f gives the acquired reference portion position Rt and the acquired speed to the vector calculator 22c.
The vector calculator 22c directly employs the speed received from the position and speed acquirer 22f as the vector Vr. The vector calculator 22c calculates the vector Vp by the same method as that in the first embodiment on the basis of the reference portion position Rt received from the position and speed acquirer 22f.
In this manner, when the robot control apparatus 20a acquires the speed at the reference portion position Rt from the robot 10, a speed sensor may be arranged in the reference portion 15 of the robot 10. For example, as the speed sensor, a sensor using Doppler effect or the like that detects a reflected wave of a radiation wave such as light or sound and detects a speed on the basis of a difference between frequencies of the detected reflected wave and the radiation wave can be used.
According to the robot control apparatus 20a according to the second embodiment, an output timing of a notification signal can be determined by a process that is simpler than that in the first embodiment.
The robot control apparatus can be configured by, for example, a computer. In this case, the controller is a CPU (Central Processing Unit), and the storage is a memory. The functions of the controller can be realized by loading a program created in advance onto the controller and executing the program.
Examples of the robots 10 used in the first embodiment and the second embodiment will be described below with reference to
As shown in
More specifically, the right arm 201R and the left arm 201L operate by using joints such as shoulders, elbows, or wrists as shafts. In the double-arm robot 10a shown in
For example, the double-arm robot 10a grips a predetermined object with the robot hand 202 of the right arm 201R and performs an operation of regripping the object with the robot hand 203 of the left arm 201L.
More specifically, the robot hand 202 is moved while gripping the predetermined object with the robot hand 202 of the right arm 201R and positioned near the robot hand 203 of the left arm 201L. When the robot hand 203 of the left arm 201L completely adsorbs the object, the robot hand 202 of the right arm 201R performs an operation of releasing the object.
When the right arm 201R and the left arm 201L are interlocked to be operated, moving control needs to be performed such that the right arm 201R is not in contact with the left arm 201L. In this manner, when the plurality of robots 10 are interlocked to be operated, the robots 10 are preferably smoothly cooperated.
For example, as shown in
In this case, as described above, on the front side (robot hand 202 side shown in
In this case, by using the robot control apparatus 20 described in the first embodiment or the robot control apparatus 20a described in the second embodiment, the notification signal can be output when the robot hand 202 comes closest to the signal output position Pn. When an adsorbing operation of the robot hand 203 is started on the basis of the notification signal, a receiving/giving operation of the object 300 can be reliably and smoothly performed. The robots 10 can be reliably prevented from being in contact with each other.
In this manner, the contents disclosed in the embodiments can be widely applied to various robot systems. In the embodiments, the robot two-dimensionally moves in the explanation. However, when the robot three-dimensionally moves, an inner product between vectors or a magnitude of a vector may be calculated by using coordinates expressed on an x-y-z coordinate system.
Further effects and modifications can be easily derived by persons skilled in the art. For this reason, a broader aspect of the present invention is not limited to the specific detailed and typical embodiments that are expressed and described above. Therefore, the invention can be variously changed without departing from the spirit or scope of the aspect of the concept of a comprehensive invention defined by the scope of the accompanying scope of claims and an equivalence thereof.
Number | Date | Country | Kind |
---|---|---|---|
2010-244554 | Oct 2010 | JP | national |