The present invention relates to a device, a method and a program for estimating a weight and a position of a gravity center of a load, by using a robot.
Generally, an article (or load) is attached to a front end of a movable part (e.g., a robot arm) of a robot, and it is important to know or acquire a weight and a position of a gravity center of the load, in order to control the robot with high accuracy.
As a relevant prior art, a device or method for estimating the weight or the position of the gravity center of an article attached to a robot arm is well known, wherein the torque of a rotation axis of the robot arm to which the article is attached is used (e.g., see JP H03-142179 A, JP H09-091004 A and JP H02-300644 A).
In the conventional method for estimating the weight and the position of the gravity center of the article (e.g., a tool) positioned at the front end of the robot, a motor current for rotating an axis of the robot is measured, and then the weight of the load is calculated by using a motion equation. However, when the motor current is used, it is necessary to identify a frictional force applied to the axis, whereas it is usually difficult to identify the frictional force, and the identification of the frictional force is susceptible to error.
Otherwise, it may be possible that, before the article such as the tool is attached to the robot, the weight and/or the position of the gravity center of the article such as the tool is previously measured by a conventional means, and then a result of the measurement is manually input or set to a robot controller, etc., by an operator. However, the means for measurement may not be easily obtained (in particular, it is difficult to measure the position of the center gravity), and further, information regarding the weight and the position of the gravity center of the tool may be necessary after the tool is attached to the robot. Therefore, a method and a device are desired, in which the weight and/or the position of the gravity center can be estimated while the article is attached to the robot.
One aspect of the present disclosure is a device for estimating a weight of an article, comprising: a torque sensor configured to detect a torque applied to an axis for driving a movable part of a robot; and a calculation section configured to calculate the weight of the article, by using: a first torque applied to the axis detected by the torque sensor, when the article attached to the movable part is positioned at a first position and represents a first posture; a second torque applied to the axis detected by the torque sensor, when the article attached to the movable part is positioned at a second position different from the first position and represents the first posture; the first position; and the second position.
Another aspect of the present disclosure is a device for estimating a position of a gravity center of an article, comprising: a torque sensor configured to detect a torque applied to an axis for driving a movable part of a robot; and a calculation section configured to calculate the position of the gravity center of the article, by using: a first torque, a second torque and a third torque applied to the axis detected by the torque sensor, when the article attached to the movable part represents first, second and third postures different from each other, respectively; a first position and a first posture of the movable part when the first torque is detected; a second position and a second posture of the movable part when the second torque is detected; and a third position and a third posture of the movable part when the third torque is detected.
Still another aspect of the present disclosure is a method for estimating a weight of an article, comprising: attaching the article to a movable part of a robot having a torque sensor; detecting a first torque applied to an axis for driving the movable part by the torque sensor, when the article is positioned at a first position and represents a first posture; detecting a second torque applied to the axis by the torque sensor, when the article is positioned at a second position different from the first position and represents the first posture; and calculating the weight of the article by using the first torque, the second torque, the first position and the second position.
A further aspect of the present disclosure is a method for estimating a position of a gravity center of an article, comprising: attaching the article having a known weight to a movable part of a robot having a torque sensor; detecting a first torque, a second torque and a third torque applied to an axis for driving the movable part by the torque sensor, when the article represents first, second and third postures different from each other, respectively; and calculating the position of the gravity center of the article, by using: the first torque; the second torque; the third torque; a first position and a first posture of the movable part when the first torque is detected; a second position and a second posture of the movable part when the second torque is detected; and a third position and a third posture of the movable part when the third torque is detected.
The above and other objects, features and advantages of the present invention will be made more apparent by the following description of the preferred embodiments thereof with reference to the accompanying drawings wherein:
The estimation device has, when used to estimate a weight of an article, a calculation section 32 configured to calculate the weight of article 30, by using: a first torque applied to axis 16 detected by torque sensor 18, when article 30 attached to movable part 12 (in this case, wrist part 28 corresponding to a front of the movable part) is positioned at a first position and represents a first posture; a second torque applied to axis 16 detected by torque sensor 18, when article 30 attached to movable part 12 is positioned at a second position different from the first position and represents the first posture; the first position; and the second position. In addition, the estimation device may have a storage section 34 such as a memory, configured to store data used by calculation section 32 and/or a result of calculation of calculation section 32.
On the other hand, when the estimation device is used to estimate a position of a gravity center of the article, calculation section 32 of the estimation device has a function for calculating the position of the gravity center of article 30, by using: a first torque, a second torque and a third torque applied to axis 16 detected by torque sensor 18, when article 30 attached to movable part 12 (in this case, wrist part 28 corresponding to the front of the movable part) represents first, second and third postures different from each other, respectively; a first position and a first posture of movable part 12 when the first torque is detected; a second position and a second posture of movable part 12 when the second torque is detected; and a third position and a third posture of movable part 12 when the third torque is detected.
As a concrete example of article 30, the weight or the position of the gravity center of which should be estimated, an end effector capable of being attached to the front end of movable part 12 (in this case, wrist part 28), such as a robot hand, a tool, a welding torch or a laser head, may be used. Herein, article 30 may also be referred to as a load. Therefore, after the weight and/or the position of the gravity center of the load is estimated by a process as explained below, robot 14 can perform a predetermined operation (such as gripping or machining a workpiece) with high accuracy, by using an estimated value, without detaching the load from robot 14. In this regard, a component held by the robot hand or an object to be machined (or the workpiece) may be included in article 30 (the load), as long as the weight or the position of the gravity center is to be estimated.
Calculation section 32 has at least one of a function for calculating the weight of article 30 and a function for calculating the position of the gravity center of article 30. In the drawing, calculation section 32 may be incorporated, as an arithmetic processing unit such as a processor, in a robot controller 36 configured to control the motion of robot 14. Alternatively, a calculator (not shown) such as a personal computer (PC), separated from robot controller 36, may have the function of calculation section 32. In this case, it is preferable that robot controller 36 and the calculator be communicably connected to each other by wire or by radio. In addition, robot controller 36 may have a suitable input section (not shown) such as a keyboard or a touch panel, so that the operator can configure various settings.
The components such as calculation section 32 of robot controller 36 may be realized as software for operating a processor such as a CPU (central processing unit) of a computer. Alternatively, the components may be realized as hardware such as a processor and/or a memory configured to at least partially execute the process of the software.
Next, a method (procedure) for estimating the weight of the article by using the estimation device will be explained as a first embodiment. First, as shown in
T1=M1+W×d1 (1)
Next, as shown in
T2=M2+W×d2 (2)
From equations (1) and (2), following equation (3) is obtained.
T2−T1=M2−M1+W×(d2−d1) (3)
In this regard, the posture of article 30 at the first position is the same as at the second position. Therefore, a horizontal movement distance D of a representative point such as a tool center point (in this case, wrist part 28 corresponding to the front end) of the movable part coincides with a horizontal movement distance (d2−d1) of position of gravity center G of the article. Horizontal movement distance D of wrist part 28 can be easily obtained by a movement command transmitted from robot controller 36 to robot 14 or a value of an encoder provided to each axis of robot 14, and following equation (4) is obtained by deforming equation (3).
W=((T2−M2)−(T1−M1))/D (4)
M1 and M2 may be obtained as the torque applied to axis 16 by using torque sensor 18, when article 30 is not attached to robot 14, after of before the first torque and the second torque. Alternatively, M1 and M2 may be obtained by calculation of calculation section 32, etc., by using the mass and the position of gravity center of each component of robot 14, etc. As an example of the calculation, a Newton-Euler method may be used.
As explained above, all terms of the right side in equation (4) are previously known, and thus weight W of article 30 can be calculated by equation (4). Although it is assumed that (d1<d2) in this embodiment, it may be possible that (d1>d2). Therefore, it is preferable that following equation (5) be used instead of equation (4).
W=|(T2−M2)−(T1−M1)|/D (5)
Apparent from equation (5), in order to estimate weight W of article 30, it is sufficient to obtain T1, T2, M1, M2 and D, while d1 and d2 are not necessary. Therefore, even when position of gravity center G of the article is unknown, weight W of the article can be precisely estimated, by controlling robot 14 so as to perform the motion as described above. Although there is not a particular limitation on the first position and the second position, horizontal distance D therebetween (d2−d1) is not equal to zero.
In the first embodiment, the first torque and the second torque may be detected while robot 14 is remained at the first position and the second position, respectively. Alternatively, during movable part 12 of robot 14 is moving at a constant velocity (i.e., an acceleration of movable part 12 is zero), torque values may be detected at two arbitrary timings (in which the posture of article 30 is constant) as the first torque and the second torque. In either case, above equations (1) to (5) are true.
Next, a method (procedure) for estimating the position of the gravity center of the article by using the estimation device will be explained as a second embodiment. First, as shown in
T1=M1+W×d1 (6)
Next, as shown in
T2=M2+W×d2 (7)
From equations (6) and (7), following equation (8) is obtained.
(T2−M2)−(T1−M1)=W×(d2−d1) (8)
In this regard, (d2-d1) can be represented following equation (9), by using: a horizontal movement distance D1 of the representative point such as a tool center point (in this case, wrist part 28 corresponding to the front end) of movable part 12; a length (Px, Py, Pz)·E1 obtained by projecting a coordinate (Px, Py, Pz) representing position of gravity center G of article 30 in the horizontal direction at the first posture; and a length (Px, Py, Pz)·E2 obtained by projecting the coordinate (Px, Py, Pz) of the gravity center G of article 30 in the horizontal direction at the second posture. In equation (9), the character “·” represents an inner product, “E1” is a unit vector of the horizontal vector in a front end coordinate system 40 defined with respect to the front end (in this case, wrist part 28) of the movable part at the first posture, and “E2” is a unit vector of the horizontal vector in front end coordinate system 40 at the second posture. The inner product and the unit vectors can be easily calculated, by using the movement command transmitted from robot controller 36 to robot 14, and the value of the encoder provided to each axis of robot 14, etc. For example, E1 is (1, 0, 0) in the example of
d2−d1=D1−(Px,Py,Pz)·E1+(Px,Py,Pz)·E2 (9)
From equations (8) and (9), following equation (10) is obtained.
(T2−M2)−(T1−M1)=W×(D1−(Px,Py,Pz)·E1+(Px,Py,Pz)·E2) (10)
Next, robot 14 is operated so that article 30 represents a third posture different from the first and second postures, and then, a torque (third torque T3) applied to axis 16 is detected by torque sensor 18. At this time, with respect to third torque T3 and weight W of article 30, following equation (11) is true. In equation (11), M3 is a torque applied to axis 16 at the position and the posture of movable part 12 when third torque T3 is detected, and when article 30 is not attached to robot 14. Further, d3 is a horizontal distance between axis 16 and the vertical line which passes through the position of gravity center of article 30, at the same position and posture of the movable part as when third torque T3 is detected.
T3=M3+W×d3 (11)
By executing the similar process as explained with respect to equations (8) to (10), following equations (12) and (13) are obtained. In other words, equation (10) is obtained by the relationship between the first and second postures, equation (12) is obtained by the relationship between the second and third postures, and equation (13) is obtained by the relationship between the third and first postures. In this regard, “E3” is a unit vector of the horizontal vector in front end coordinate system 40 defined with respect to the front end (in this case, wrist part 28) of the movable part at the third posture, and similarly to E1 and E2, the unit vector can be easily calculated, by using the movement command transmitted from robot controller 36 to robot 14, and the value of the encoder provided to each axis of robot 14, etc.
(T3−M3)−(T2−M2)=W×(D2−(Px,Py,Pz)·E2+(Px,Py,Pz)·E3) (12)
(T1−M1)−(T3−M3)=W×(D3−(Px,Py,Pz)·E3+(Px,Py,Pz)·E1) (13)
Horizontal movement distances D1 to D3 of wrist part 28 can be easily calculated, by using the movement command transmitted from robot controller 36 to robot 14, and the value of the encoder provided to each axis of robot 14, etc. Further, M1 to M3 may be obtained as the torque applied to axis 16 by using torque sensor 18, when article 30 is not attached to robot 14, after of before the first, the second torque and the third torque. Alternatively, M1 to M3 may be obtained by calculation of calculation section 32, etc., by using the mass and the position of gravity center of each component of robot 14, etc. As an example of the calculation, a Newton-Euler method may be used.
By executing the above process, three equations (10), (12) and (13) are obtained, with respect to three unknown values (Px, Py, Pz). Therefore, by solving these equations as simultaneous equations, the position of the gravity center (Px, Py, Pz) of article 30 can be calculated. In addition, by generalizing equations (10), (12) and (13), following equation (14) is obtained. In this regard, characters “i” and “j” are integers equal to or more than one, and an upper limit thereof corresponds to the number of postures of article 30 which may be represented by the motion of robot 14.
(Ti−Mi)−(Tj−Mj)=W×(Di−(Px,Py,Pz)·Ei+(Px,Py,Pz)·Ej) (14)
Apparent from equations (10), (12) and (13), in order to estimate the position of the gravity center G of article 30, it is sufficient to obtain T1 to T3, M1 to M3, E1 to E3, D1 to D3, and W. Therefore, when weight W of the article is known, the position (or the coordinate) of the gravity center of the article can be precisely estimated, by controlling robot 14 so as to perform the motion as described above. Constraint conditions in this embodiment are as follows: horizontal distances between D1 to D3 are not equal to zero; an equation (E1x=E2x=E3x) is false; an equation (E1y=E2y=E3y) is false; and an equation (E1z=E2z=E3z) is false. In this regard, it is assumed that E1=(E1x, E1y, E1z), E2=(E2x, E2y, E2z), and E3=(E3x, E3y, E3z).
In the second embodiment, the first torque and the second torque may be detected while robot 14 is remained at the first position, the second position and the third position. Alternatively, during movable part 12 of robot 14 is moving at a constant velocity (i.e., an angular velocity of movable part 12 is constant), torque values may be detected at three arbitrary timings (in which the posture of article 30 is different between each timing) as the first torque and the second torque. In either case, above equations (6) to (14) are true.
While the first embodiment and the second embodiment may be independently carried out, the embodiments may be sequentially carried out. In other words, first, weight W of the article may be estimated by the process explained in the first embodiment, and then, by using estimated weight W, the position of gravity center G of the article may be estimated by the process explained in the second embodiment. In this case, the second position and posture in the first embodiment (
As torque sensor 18 in the first or second embodiment, any type of sensor (e.g., a non-contact (magnetostrictive) type or a contact type (slip ring) sensor) may be used, as long as the sensor can detect (measure) the torque applied to the specific axis. In the present disclosure, the “torque applied to an axis” detected by the torque sensor (i.e., a detected torque value) corresponds to a value obtained by subtracting an influence value of friction, etc., from a torque of a motor for driving each axis of the robot, or to a sum of the obtained value and an influence value of the gravity. Therefore, by using the torque sensor, the weight and/or the position of gravity center of the article can be estimated with (at least practically) a high degree of accuracy, without estimating or identifying the friction, since such estimation or identification of the friction is considered to be difficult. In this regard, it is desired that torque sensor 18 can detect the torque in the direction of the gravity, and that the movable part of the robot at the front side relative to torque sensor 18 can perform the motion for estimating the weight (in which the article is moved to the two different positions while representing the same posture), and/or the motion for estimating the position of the gravity center (in which the article represents the three different postures). For example, in the above embodiment, torque sensor 18 is configured to detect the torque applied to drive axis 16 of upper arm 24. Otherwise, when the above motion can be performed only by forearm 26 and wrist part 28, another torque sensor configured to detect a torque applied to a drive axis 42 of forearm 26 (see
Alternatively, as the torque sensor, a six-axes force sensor (torque sensor) 44 (see
When six-axes torque sensor 44 or the contact sensor (not shown) arranged on the surface of robot 14, robot 14 may have a function to detect contact between the robot and a human or peripheral equipment. The robot having such a contact-detecting function may be used as the collaborative robot which shares the working area with the human. However, when the detection accuracy of the robot is relatively low, emergency stop of the robot may frequently occur due to false detection of the robot. To the contrary, in the present disclosure, the weight and/or the position of the gravity center of the article can be precisely estimated, and thus an outer force applied to the robot can be precisely detected, by subtracting an inertia torque of the robot, a torque due to the weight of the robot, an inertia torque of the load attached to the movable part, and a torque due to the weight of the load, from a torque value detected by the torque sensor.
In the present disclosure, the storage section of the estimation device or another storage unit may store a program, by which the above process is executed by the robot or an arithmetic processing unit such as the estimation device, which is used in conjunction with the robot. Also, the program may be provided as a non-transitory computer readable medium (e.g., a CD-ROM or a USB memory) configured to store the program.
According to the present disclosure, at least one of the weight and the position of the gravity center of the article can be estimated with high accuracy, by the simple motion of the robot, during the article is attached to the robot.
While the invention has been described with reference to specific embodiments chosen for the purpose of illustration, it should be apparent that numerous modifications could be made thereto, by a person skilled in the art, without departing from the basic concept and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2018-082929 | Apr 2018 | JP | national |
This application is a Divisional Application of U.S. patent application Ser. No. 16/389,128, filed Apr. 19, 2019, which claims benefit of priority to Japanese Patent Application No. 2018-082929, filed Apr. 24, 2018. The contents of these applications are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6343243 | Brogårdh et al. | Jan 2002 | B1 |
8831779 | Ortmaier et al. | Sep 2014 | B2 |
10800035 | Takamura | Oct 2020 | B2 |
11027435 | Moosman | Jun 2021 | B2 |
20130173060 | Yoo | Jul 2013 | A1 |
20150328771 | Yuelai | Nov 2015 | A1 |
20160305842 | Vulcano | Oct 2016 | A1 |
20180169584 | Visser et al. | Jun 2018 | A1 |
20180169854 | Shiratsuchi | Jun 2018 | A1 |
20180272531 | Takamura | Sep 2018 | A1 |
20190275674 | Yamamoto | Sep 2019 | A1 |
20210114211 | Knott | Apr 2021 | A1 |
20210260759 | Knudsen | Aug 2021 | A1 |
20220088804 | Spenninger | Mar 2022 | A1 |
Number | Date | Country |
---|---|---|
103495977 | Jan 2014 | CN |
105643639 | Jun 2016 | CN |
106346477 | Jan 2017 | CN |
102008001664 | Jul 2015 | DE |
H02300544 | Dec 1990 | JP |
H03142179 | Jun 1991 | JP |
07205075 | Aug 1995 | JP |
H09091004 | Apr 1997 | JP |
2004025387 | Jan 2004 | JP |
2010076074 | Apr 2010 | JP |
2011235374 | Nov 2011 | JP |
2017056525 | Mar 2017 | JP |
101209779 | Dec 2012 | KR |
2017103682 | Jun 2017 | WO |
Entry |
---|
USPTO Non Final Office Action issued in U.S. Appl. No. 16/389,128, dated Jul. 29, 2022, 18 pages. |
Entire patent prosecution history of U.S. Appl. No. 16/389,127, filed Apr. 19, 2019, entitled “Device, Method and Program for Estimating Weight and Position of Gravity Center of Load by Using Robot.” |
An et al., “Estimation of inertial parameters of rigid body links of manipulators”, 24th IEEE Conference on Decision and Control, Ft. Lauderdale, FL, (Dec. 1985), pp. 990-995. |
Atkeson et al., “Rigid body load identification for manipulators”, 24th IEEE Conference on Decision and Control, Ft. Lauderdale, FL, (Dec. 1985), pp. 996-1002. |
Chen et al., “Identifying method of load for sensorless industrial robot”, Abstract (month unknown 2015), 41.1595-1599.10.13700/j.bh.1001-5965.2014.0669, 1 page. |
Number | Date | Country | |
---|---|---|---|
20220297321 A1 | Sep 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16389128 | Apr 2019 | US |
Child | 17834067 | US |