The present invention relates generally to robotics, and in particular to compensation of robotic force/torque sensors for gravitational and inertial forces.
Robots are an indispensable part of manufacturing, testing, assembly, and packing of products; assistive and remote surgery; space exploration; operation in hazardous environments; and many other applications. Many robots and robotic applications require quantization of forces applied or experienced, such as material removal (grinding, sanding, and the like), remote digging or other manipulation of the environment, and the like.
As a representative example, consider a robot performing some task on a workpiece. The robot typically comprises a generic actuator, or “arm,” that is programmed to move through space and operate on a workpiece along numerous degrees of freedom. A robotic tool changer is an electromechanical device that allows the robot to perform many different tasks, using many different tools (also known as end effectors). The robotic tool changer comprises a “master” assembly attached to the robotic arm, and a plurality of similar or identical “tool” assemblies, each attached to a tool the robot may use. The master and tool assemblies are selectively coupled together under the control of a robotic control system. The master and tool assemblies may additionally include features for passing utilities—such as AC or DC electrical current, pneumatic fluid, data, or the like between them, for use by the tool, and provide a path for the tool to relay data back to the control system. With a tool changer, a robot may perform a task using first tool, park the first tool in a tool stand, retrieve a second tool, and perform another task using the second tool.
In applications where the degree of force the robot is to apply to a workpiece must be monitored and controlled, and/or the force the robot experiences is fed back to control the robot's motion (a “force control” operation), a force/torque (F/T) sensor is attached between the robot arm and master assembly of the tool changer, or between the tool assembly and a tool (or the F/T sensor functionality may be built into the tool changer). As depicted in
Thermal drift is one known source of error in resolving forces and torques from F/T sensor outputs. One example of temperature compensation for a robotic F/T sensor is described in international patent publication WO 2018/200668, assigned to the assignee of the present disclosure and incorporated herein by reference in its entirety.
For static orientation basis functions, thermal compensation is sufficient to achieve accurate force and torque monitoring. The robot moves the tool to a working position and orientation, and the sensor data are zeroed. So long as the robot maintains the same orientation, and at moves at speeds low enough that inertial effects are negligible, the F/T sensor provides accurate readings of forces and torques, as the robotic tool accomplishes its task. However, tasks such as contour following, 3D parts assembly, and the like, require changes in the robotic tool orientation and/or position. Orientation changes alter the distribution of the weight of the tool along the axes of the F/T sensor reference frame, and position changes impart inertial forces and/or torques from the robot movement. Both phenomena deleteriously impact force and torque measurement accuracy. Indeed, in many cases gravitational and inertial forces and torques exceed desired contact forces and torques, making force control robotic operations difficult or impossible.
The Background section of this document is provided to place embodiments of the present invention in technological and operational context, to assist those of skill in the art in understanding their scope and utility. Approaches described in the Background section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Unless explicitly identified as such, no statement herein is admitted to be prior art merely by its inclusion in the Background section.
The following presents a simplified summary of the disclosure in order to provide a basic understanding to those of skill in the art. This summary is not an extensive overview of the disclosure and is not intended to identify key/critical elements of embodiments of the invention or to delineate the scope of the invention. The sole purpose of this summary is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
According to one or more embodiments described and claimed herein, force and torque measurements from a robotic F/T sensor are compensated for the effects of gravity, and optionally additionally for the effects of robot motion. The weight of an attached tool Wtool and a vector {right arrow over (r)}CG from an F/T sensor body Coordinate Frame (CF) origin to a center of gravity of the tool are obtained, such as from user input or by parameter identification. During a robotic operation, a rotation matrix RInternational CFBody CF from the F/T sensor body CF to an inertial reference frame is obtained, such as from an internal inertial measurement unit (IMU), or from forward kinematics data from the robot. The force and torque measurements resolved by the F/T sensor from transducer outputs are compensated for gravity based on the Wtool and {right arrow over (r)}CG, and the instantaneous value of RInternational CFBody CF. For inertial compensation, additional information is obtained, including: the mass m of the attached tool; the angular velocity {right arrow over (ω)} of the F/T sensor body CF; the angular acceleration {dot over (ω)} of the F/T sensor body CF; the linear acceleration a of the F/T sensor body CF; and inertia tensor I defined in the F/T sensor body CF which contains all moments and products of inertia. The mass m may be derived from W00, and {right arrow over (ω)} and {dot over (ω)} may be obtained from the IMU or forward kinematics. The linear acceleration {right arrow over (α)}, is obtained by first estimating the gravitational acceleration from absolute orientation data and transforming that into an estimated gravity vector. This estimated gravity vector is then subtracted from the acceleration vector obtained from the IMU or forward kinematics data. The terms of I may be obtained from parameter identification, or input by a user if they are known from analytical determination or CAD software. The force and torque measurements resolved by the F/T sensor from transducer outputs are compensated for inertial effects based on m, {right arrow over (ω)}, {dot over (ω)}, {right arrow over (r)}CG, {right arrow over (α)}, and I
One embodiment relates to a robotic force/torque (F/T) sensor including transducers configured to generate signals in response to forces or torques applied to the sensor. The F/T sensor includes measurement circuitry configured to resolve force and torque measurements from the transducer signals, the force and torque measurements referenced to a body Coordinate Frame (CF) of the F/T sensor. The F/T sensor additionally includes compensation circuitry. The compensation circuitry is configured to obtain the weight Wtool of an attached tool; obtain a vector {right arrow over (r)}CG from the F/T sensor body CF origin to a center of gravity of the tool; obtain a rotation matrix RInternational CFBody CF from the F/T sensor body CF to an inertial reference frame; and compensate the force and torque measurements for gravitational effects of the attached tool based on RInternational CFBody CF, Wtool, and {right arrow over (r)}CG.
Another embodiment relates to a method of compensating force and torque measurements resolved from transducer output signals of a robotic Force/Torque (F/T) sensor by measurement circuitry for gravitational effects due to the weight of an attached tool. The force and torque measurements are referenced to a body Coordinate Frame (CF) of the F/T sensor. The F/T sensor includes compensation circuitry. The weight Wtool of a tool attached to the F/T sensor is obtained. A vector {right arrow over (r)}CG from the F/T sensor body CF origin to a center of gravity of the tool is obtained. A rotation matrix RInertial CFBody CF from the F/T sensor body CF to an inertial reference frame is obtained. The force and torque measurements are compensated for gravitational effects of the attached tool based on RInternational CFBody CF, Wtool, and {right arrow over (r)}CG.
Yet another embodiment relates to a robotic force/torque (F/T) sensor including transducers configured to generate signals in response to forces or torques applied to the sensor. The F/T sensor includes measurement circuitry configured to resolve force and torque measurements from the transducer signals, the force and torque measurements referenced to a body Coordinate Frame (CF) of the F/T sensor. The F/T sensor includes compensation circuitry configured to obtain a mass m of the attached tool; obtain an angular velocity {right arrow over (ω)} of the F/T sensor body CF; obtain an angular acceleration {dot over (ω)} of the F/T sensor body CF; obtain a linear acceleration {right arrow over (α)} of the F/T sensor body CF; obtain the inertia tensor I defined in the F/T sensor body CF which contains all moments and products of inertia; and compensate the force and torque measurements for inertial effects of movement of the robot based on m, {right arrow over (ω)}, {dot over (ω)}, {right arrow over (r)}CG, {right arrow over (α)}, and I.
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. However, this invention should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
For simplicity and illustrative purposes, the present invention is described by referring mainly to an exemplary embodiment thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be readily apparent to one of ordinary skill in the art that the present invention may be practiced without limitation to these specific details. In this description, well known methods and structures have not been described in detail so as not to unnecessarily obscure the present invention.
Dynamic Compensation
According to embodiments of the present invention, one or both of gravitational and inertial effects are dynamically compensated by an F/T sensor 12—either stand-alone, with integrated inertial measurement unit (IMU), or in conjunction with an external compensation unit, which receives data from both the F/T sensor 12 and the robot 10. The measurement compensation is performed by adding correcting factors to the F/T sensor 12 measurement outputs, where the correcting factors are based on a model of how the F/T measurement is affected by various environmental factors. Note that this disclosure does not consider temperature compensation. As mentioned above, there are known techniques to compensate for temperature drift, and temperature effects are independent of gravitational and inertial effects. The basic compensation equation is given by equation (1).
{right arrow over (F)}
measured
={right arrow over (F)}
contact
+{right arrow over (F)}
gravity
+{right arrow over (F)}
inertial
+{right arrow over (F)}
noise (1)
where {right arrow over (F)}measured is the output of the F/T sensor;
{right arrow over (F)}contact is the contact force (e.g., between a robotic tool 20 and a workpiece);
{right arrow over (F)}gravity is the force applied by tooling 20 (and sensor 12) sprung-mass weight due to gravity;
{right arrow over (F)}inertial is the force arising from linear and/or angular acceleration, or angular velocity, of the robot arm 10; and
{right arrow over (F)}noise is noise from electrical and/or mechanical sources.
Throughout this disclose, for convenience the matrix F is used to refer to both force and torque components. Where an F or T notation refers to a matrix of only force or torque terms, respectively, this will be explicitly stated, or it will be apparent to those of skill in the art from the context. Furthermore, this disclosure does not follow the strict Plücker basis, but places linear terms above rotational terms. Accordingly, each “F” term in equation (1) is a spatial vector containing the information as depicted in equation (2):
In force control robotic operations, the contact force is the desired measured quantity. Accordingly, equation (1) is rewritten to yield this value. Furthermore, assume low-pass filtering is effective to eliminate the {right arrow over (F)}noise term.
{right arrow over (F)}
contact
={right arrow over (F)}
measured
−{right arrow over (F)}
gravity
−{right arrow over (F)}
inertial (3)
Equation (3) represents full compensation—referred to as Active Dynamic Compensation, as it is continuously applied—including both gravitational and inertial compensation components. According to one embodiment, the F/T sensor 12 may be equipped or configured to perform any of three levels of compensation. First, the F/T sensor 12 may perform no compensation, also known in the art as “static compensation.” This is the default setting of an F/T sensor 12. Static compensation is characterized by equation (4):
{right arrow over (F)}
contact
={right arrow over (F)}
measured (4)
Second, the F/T sensor 12 may perform only gravitational compensation. This is referred to as Active Gravitational Compensation because it occurs continuously, and it is characterized by equation (5):
{right arrow over (F)}
contact
−{right arrow over (F)}
measured
−{right arrow over (F)}
gravity (5)
Finally, as discussed above, Active Dynamic Compensation includes both gravitational and inertial compensation, and is characterized by equation (3).
Gravity Compensation
The F/T sensor 12 defines an F/T sensor body Coordinate Frame (CF)—that is, mutually orthogonal x, y, and z axes with an origin in the F/T sensor 12. The F/T sensor body CF translates and rotates through space as the robot arm moves, yet remains fixed as viewed by the F/T sensor 12. The F/T sensor 12 reports forces and torques referenced to its body CF.
The magnitude of the tool 20 weight vector, and a rotation matrix relating the inertial reference frame to the F/T sensor body CF, are the only quantities needed to compensate F/T sensor 12 force measurements for the effect of the tool 20 weight. Calculating gravitational torque compensation terms requires the additional datum of the positional offset between the tool 20 center of gravity (CG) and the F/T sensor body CF origin. The complete gravitational compensation matrix is defined in equation (6):
where RInternational CFBody CF is the rotation matrix from the F/T sensor body CF to the inertial reference frame. This may be obtained from an output of an onboard inertial measurement unit (IMU) (e.g., the quaternion orientation output), or alternatively from forward kinematics of the robot 10. This value is updated every time the IMU or forward kinematics is sampled, which during use occurs at a high frequency relative to the rate of change of the tool 20 orientation (e.g., up to 400 Hz).
{right arrow over (W)}tool is the weight vector of the tool 20 in the inertial reference frame. When used without vector notation, the variable {right arrow over (W)}tool is the scalar weight of the tool 20. Accordingly, {right arrow over (W)}tool=[0 0 Wtool] where z is the vertical axis in the inertial reference frame. This value may be entered by a user, or may be obtained by parameter identification.
{right arrow over (r)}CG is a vector from the F/T sensor body CF origin to the tool 20 CG. S({right arrow over (r)}CG) denotes the skew-symmetric matrix of {right arrow over (r)}CG. The {right arrow over (r)}CG value may be entered by a user, or may be obtained by parameter identification.
Parameter identification refers to a data-driven method of obtaining important physical properties of a system from available measurements. Parameter identification is also known as system identification in robotics and control system literature. Measurement of {right arrow over (W)}tool and {right arrow over (r)}CG by parameter identification is described below.
Many F/T sensors 12 exhibit muted sensitivity and/or accuracy in one or more of the six F/T measurements, due to the geometry of their construction, the distribution and orientation of strain gages, and the like. Accordingly, to obtain the most accurate measurements of {right arrow over (W)}tool, and {right arrow over (r)}CG (and hence obtain the most accurate gravitational compensation), the quantities are best measured numerous times, with the F/T sensor 12 in a different spatial orientation each time. The resulting data sets are then fitted, such as by using a least squares regression, to obtain the final {right arrow over (W)}tool, and {right arrow over (r)}CG values. As in all least squares regressions, the greatest accuracy is obtained if the samples are well spaced throughout their dynamic ranges. While it is possible to obtain usable gravitational compensation terms from only one tool 20 orientation and measurement, accuracy improves (e.g., noise is averaged out) as the number of discrete orientations sampled increases, up to about six. More than six tool 20 orientation measurements increase computational complexity, but add little improvement in accuracy.
Gravity Compensation of Force Terms
The force terms are gravity-compensated by knowing only the weight of the tool, which is referenced to the F/T sensor body CF to obtain the gravity compensation terms, for each axis. The resolved force measurements, which are referenced to the F/T sensor body CF, are then compensated for the weight of the tool 20 by subtracting the gravity compensation terms.
To determine the weight of the tool 20 by parameter identification, the robot 10 is commanded to place the tool 20 in j different spatial orientations (j=1, 2, . . . , n). The forces experienced at each of these orientations, from the weight of the attached tool 20, are resolved from F/T sensor transducers. Additionally, a unit gravity vector is obtained for each orientation. The unit gravity vector decomposes a weight vector of magnitude one—which is always directed downward along the vertical axis in the inertial reference frame—to its components along the three axes of the F/T sensor body CF at that orientation. The gravity unit vector for the
jth orientation is denoted
The resolved force measurements are then described by equation (7) (where the F here denotes only force terms; no torque terms):
{right arrow over (F)}
measured
,={right arrow over (W)}
tool
{right arrow over (g)}
measured, (7)
When the j sample sets are stacked together, a least squares matrix equation is solved to minimize the square residual. It is known that if A is an m×n matrix and b is a vector in Rm, the least-squares solution of Ax=b are the solutions to the matrix equation ATAx=ATb. As applied to equation (7), this yields equation (8):
W
tool=((GTG)−1(GTFmeasured)) (8)
where Fmeasured is the stacked gravity matrix vector
and
G is the stacked gravity matrix vector
Note that the weight of an attached tool 20 may not be a static quantity. For example, a grinder or sander may lose abrasive as it operates. Furthermore, a robot may change tools 14 over the course of an overall force control operation (e.g., change from a grinding tool 20 to a polishing tool 20, where both contact forces are fed back to control robot 10 positioning). As another example, a robotic tool 20 may comprise a gripper that picks up an item, moves it, and places it. If force control is required throughout, different values of Wtool would apply while the tool 20 holds the item, than after it places it. In one embodiment, a plurality of values of tool weight may be entered or derived through the above-described parameter identification procedure. These values may be stored in memory and recalled for use in equation (6) as required.
Gravity Compensation of Torque Terms
The vector {right arrow over (r)}CG from the F/T sensor body CF origin to the tool CG can only be measured from the torque values. The torque equation (9) follows from Newtonian physics:
{right arrow over (T)}
measured
,={right arrow over (r)}
CG
x(Wtool{right arrow over (g)}measured) (9)
This is rearranged into the Ax=b form for least squares regression using cross product identities and the skew symmetric matrix:
{right arrow over (T)}
measured
,=W
tool({right arrow over (g)}measured,{right arrow over (r)}CGx) (10)
Let Aj=−S(gmeasured) where j is the measurement/orientation index and Aj is:
The least squares formulation is then:
{right arrow over (T)}
measured
,={right arrow over (W)}
tool
A
j
{right arrow over (r)}
CG (12)
The vector from the F/T sensor body CF origin to the tool 20 CG is solved using j samples and fitting the data according to equation 13:
where
is the stacked matrix of torque measurements; and
To eliminate noise and obtain a better estimate of the tool CG, in one embodiment, a plurality of values of the vector from the F/T sensor CF origin to the tool CG may be entered or derived through the above-described parameter identification procedure. These values may be stored in memory and recalled for use in equation (6) as required.
Inertial Compensation
The inertial compensation term is considerably more complex than the gravitational compensation case, as it includes inertial, Coriolis, and centripetal coupling terms. The inverse-dynamical model of the tool 20 with respect to F/T sensor body CF can be found by application of Newton-Euler mechanics. Assuming a rigid-body model of the tool 20, the following model is derived using the following classical Newton Euler assumptions:
The total force and torque on the F/T sensor body CF, excluding gravitational terms, are given by equations (14) and (15), respectively:
{right arrow over (F)}
inertail
=m{right arrow over (α)}+m({dot over (ω)}×{right arrow over (r)}CG)+m({right arrow over (ω)}×({right arrow over (ω)}×{right arrow over (r)}CG)) (14)
{right arrow over (T)}
inertial
=I{dot over (ω)}+{right arrow over (ω)}×(I{right arrow over (ω)})+m({dot over (ω)}×{right arrow over (r)}CG)+m({right arrow over (r)}CG×{right arrow over (α)}) (15)
where m is the mass of the tool 20. This term can be obtained from the gravitational compensation parameter identification, by converting weight to mass
{dot over (ω)} is the angular velocity of the F/T sensor body CF. This may be obtained from data output by the onboard IMU, or alternatively from forward kinematics of the robot 10.
{dot over (ω)} is the angular acceleration of the F/T sensor body CF. This may be differentiated from IMU data, or alternatively from forward kinematics of the robot 10.
{right arrow over (r)}CG is the vector from the F/T sensor body CF origin to the tool 20 CG. This value may be entered by a user, or may be obtained by parameter identification as described above for gravitational compensation.
{right arrow over (a)} is the linear acceleration of the F/T sensor body CF. An onboard IMU outputs an acceleration value, which comprises both gravitational acceleration and linear acceleration. The linear acceleration may be extracted by estimating the gravitational acceleration from absolute orientation data that is transformed into an estimated gravity vector. With this estimated gravity vector, the linear acceleration is computed as {right arrow over (α)}={right arrow over (α)}IMU−{right arrow over (g)}estimate. Alternatively, {right arrow over (α)} may be obtained from robot forward kinematics.
I is the inertia tensor defined in the F/T sensor body CF. An inertia tensor is a matrix containing all moments and products of inertia. Intuitively, an inertia tensor provides the transformation between angular velocity and angular momentum. This value may be entered by a user or may be obtained by parameter identification.
The force and torque vectors of equations (14) and (15) are obtained from measurements performed at j different tool 20 orientations, j=1, 2, . . . , n (although six is a reasonable upper limit for n, this is not a limitation of the present invention). Similar to the gravitational compensation case, these are then stacked into a spatial vector to create the final inertial compensation terms, according to equation (16) (where the superscript 6 refers to the dimension of the spatial vector when used around traditional coordinate vectors):
Identification of Inertial Compensation Terms
The inertia tensor I is a required term, that is difficult to quantify without solid models containing exact materials. Accordingly, in one embodiment a parameter estimation method is used to obtain the six distinct parameters of the inertia tensor.
In order to create a relation between torque measurements and the inertia tensor, the rotational inertia terms are isolated on one side.
{right arrow over (T)}
T
inertial_rot
={right arrow over (T)}
T
Measured
−{right arrow over (T)}
T
Grav
−{right arrow over (T)}
T
inertial_lin (17)
where {right arrow over (T)}TMeasured is the torque measured by the 6-axis F/T sensor 12;
{right arrow over (T)}TGrav is the torque due to gravity acting through the center of mass (bottom of Eq. 6);
and
Tinertial_lin is the torque created by a linear acceleration acting through the center of mass (the m ({right arrow over (r)}CG×{right arrow over (α)}) term in the bottom of Eq. 16). This leaves the rotational inertia terms to be:
{right arrow over (T)}
T
inertial_rot
=I{dot over (ω)}+{right arrow over (ω)}×I{right arrow over (ω)} (18)
I
xy
=I
yx
,I
xz
=I
zx, and Izy=Iyz (20)
such that there are now only six unique inertial parameters. If the angular velocity and angular acceleration are given by
{right arrow over (ω)}=(ωx,ωy,ωz) (21)
and
{dot over (ω)}={right arrow over (α)}=(αx,αy,αz) (22)
Multiplying out equation 18 allows for a purely matrix form to be found.
{right arrow over (T)}
T
inertial_rot
=Y
iθ (23)
where θ is the parameter vector of inertial terms defined as
And the subscript i refers to the sample at instant i.
Equation 23 can be solved in the least squared sense for θ, as
Each of the samples in equations 27 and 28 are generated from a complex trajectory of the robot, which involves a simultaneous rotation of the tooling mass in all three rotational axes. Each time instant generates a data point that can be used in the least squares estimation.
From an accuracy perspective, creating angular motions that excite a good range of the F/T sensor's torque rating will provide a better estimate of the inertia tensor; however the angular motions of the tooling could create stresses within the tooling that were not anticipated in the design of the tool. For this reason, the parameter estimation data gathering motion preferably does not exceed the speed of the specific use application.
The terms of the inertia tensor I, tool weight {right arrow over (W)}tool, and tool CG may not be static. For example these quantities may change as the tool 20 mass changes. In one embodiment, a plurality of values of the I, {right arrow over (W)}tool, and CG may be entered, or derived through the above-described parameter identification procedure. These values may be stored in memory and recalled for use in equation (6) as required.
Dual Mass Distribution
In one embodiment, the sprung mass of the F/T sensor 12 and the mass of the tool are accounted for separately. This facilitates gravitational and inertial compensation of a variety of tools to which the F/T sensor 12 may be coupled.
In this embodiment, Eq. 3 is rewritten as
{right arrow over (F)}
contact
={right arrow over (F)}
measured
−{right arrow over (F)}
gravity-tool
−{right arrow over (F)}
inertial-tool
−{right arrow over (F)}
gravity-F/T
−{right arrow over (F)}
inertial-F/T (29)
where the subscripts identify the gravitational and inertial forces and torques derived separately for each of the tool 20 and the F/T sensor 12. These are computed separately, e.g., using the techniques described herein.
Orientation, Velocity, and Acceleration Sensing
Gravitational compensation relies on sensing the instantaneous orientation of the tool 20, and inertial compensation relies on sensing the instantaneous linear and angular velocity of the F/T sensor body CF. These values may be directly sensed by an integrated IMU, or obtained from forward kinematics of the robot 10.
Inertial Measurement Unit
The F/T sensor 12 includes measurement circuitry configured to resolve force and torque measurements from the transducer signals, as well known in the robotic arts. The measurement circuitry may, for example, include processing circuitry configured by appropriate software to calculate force and torque measurements from transducer signals according to known methods, such as those described in U.S. Pat. No. 10,067,019, assigned to the assignee of the present disclosure and incorporated herein by reference in its entirety, or the above-incorporated U.S. Pat. No. 10,422,707. The measurement circuitry may additionally perform thermal compensation of force and torque measurements, as described in the above-incorporated international patent publication WO 2018/200668. The processing circuitry may be integrated into the sensor 12 body, or may be external, such as by being connected by one or more wired or wireless communication links.
According to embodiments of the present invention, the F/T sensor 12 additionally includes compensation circuitry configured to perform gravitational and/or inertial compensation of force and torque measurements. The compensation circuitry includes the IMU described above, and processing circuitry integrated with the IMU, or connected to the IMU in data transfer relationship. The processing circuitry is configured, such as by the provision of appropriate software, to receive or retrieve data from the IMU and other sources, and perform the calculations described herein to effect gravitational and/or inertial compensation of force and torque measurements.
In some embodiments, the measurement circuitry and compensation circuitry may comprise the same processing circuitry, with the configuration for resolving resolve force and torque measurements from the transducer signals, or performing gravitational and/or inertial compensation of the force and torque measurements, being by the provision of appropriate software. The processing circuitry may comprise any computational hardware known in the art, such as a dedicated state machine implemented in hardware; programmable logic together with appropriate firmware; one or more stored-program processors or Digital Signal Processors (DSP) together with appropriate software; or any combination of the above. The processing circuitry may include peripheral circuitry, such as memory, co-processors, data and/or communication interfaces, man/machine interfaces, and the like, as known in the art.
Forward Kinematics Data Processing
In some embodiments, due to size and/or cost constraints, it is not practical to integrate an IMU into each F/T sensor 12. In these embodiments, orientation and velocity data are obtained from forward kinematics of the robot. Forward kinematics refers to the use of the kinematic equations of a robot to compute the position, velocity, or other dynamic characteristics of the tool 20 from instantaneous values of the robot parameters, such as various joint positions.
Methods
As indicated by the dashed line, the method 100 can be considered to comprise two separate phases, or modes. In a first phase, parameter identification, the weight Wtool, of a tool attached to the F/T sensor 12 is obtained (block 102). Also in the first phase, a vector {right arrow over (r)}CG from the F/T sensor body CF origin to a center of gravity of the tool 20 is also obtained (block 104). The data Wtool, and {right arrow over (r)}CG may be input by a user, or may be obtained in a parametric identification process. In the latter case, the robot 10 positions the tool 20 in one or more different orientations. The forces and torques resolved from transducers, and a unit gravity vector, are obtained at each orientation. The data Wtool, and {right arrow over (r)}CG are derived by fitting these data measured from one or more orientations, such as by formulating and solving a least squares regression model. A plurality of values for Wtool, and {right arrow over (r)}CG may be calculated and stored to account for changes in tool 20 weight or configuration during robotic operations.
In the second phase of the method 100, robotic operation (which may comprise a force control operation), a rotation matrix RInertial CFBody CF from the F/T sensor body CF to an inertial reference frame is obtained (block 106) and the force and torque measurements for gravitational effects of the attached tool are compensated based on RInertial CFBody CF, Wtool, and {right arrow over (r)}CG (block 108). RInertial CFBody CF may be obtained from the internal IMU, or the external electronics. During the second phase, an updated value of RInertial CFBody CF is obtained, and updated gravity compensation terms are calculated and applied to the sensor 12 force and torque measurements.
The F/T sensor 12 transducers are analog devices that continuously output signals in response to mechanical stresses. The rate at which those signals are resolved into forces and torques is set by the user and may vary according to the needs of a particular robotic operation. In one embodiment force and torque measurements have a maximum update rate of about 8 kHz. The frequency of positioning data depends on the IMU or forward kinematics processing. Although some IMU devices may output data at up to 1 kHz, very high frequency outputs contain significant noise. In one embodiment, positioning data is obtained at about 400 kHz, and the most recent positioning data is used for gravity and/or inertial compensation when each force measurement is taken. Accordingly, the compensation of measured force and torque terms for gravitational and inertial effects occurs at a high frequency relative to changes in orientation of the robotic tool 20. The values for Wtool and {right arrow over (r)}CG may be selected from among a plurality of stored values, in dependence on the tool selected, its estimated mass loss rate, whether it is carrying a known extra mass, and the like.
In a further refinement of the method 100 (not shown), the force and torque measurements are additionally compensated for inertial effects due to movement of the robot 10. The mass m of the tool is obtained in the first phase of the method 100. In the second phase, during robotic operation, the following properties of the F/T sensor body CF are additionally obtained: its angular velocity {right arrow over (ω)}; its angular acceleration {dot over (ω)}; and its linear acceleration {right arrow over (α)}. The terms of an inertia tensor I defined in the F/T sensor body CF are also updated. The inertia tensor I comprises a matrix containing all moments and products of inertia. In the second phase, inertial compensation terms are calculated and also applied to the sensor 12 force and torque measurements, at the same frequency as gravity compensation terms. In robotic operations where the effective mass or size of the tool may change, appropriate values for relevant parameters, such as I, {right arrow over (W)}tool, CG, or others may be selected from among a plurality of stored values.
Results
Embodiments of the present invention present numerous advantages over the prior art. By obtaining orientation data from an IMU or forward kinematics, embodiments of the present invention provide on-going, high-speed compensation of measured forces and torques for gravitational and inertial effects. By using parameter identification methods, quantities such as tool weight and a vector from the F/T sensor CF origin to the tool center of gravity may be derived. As
Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and/or is implied from the context in which it is used. All references to a/an/the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and/or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the description.
The term unit may have conventional meaning in the field of electronics, electrical devices and/or electronic devices and may include, for example, electrical and/or electronic circuitry, devices, modules, processors, memories, logic solid state and/or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and/or displaying functions, and so on, as such as those that are described herein. As used herein, the term “configured to” means set up, organized, adapted, or arranged to operate in a particular way; the term is synonymous with “designed to.”
The present invention may, of course, be carried out in other ways than those specifically set forth herein without departing from essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.