1. Field of the Invention
This invention relates generally to a system for controlling the impedance of a robotic manipulator and, more particularly, to a scheme for multiple prioritized operational space impedances at different points on a robotic manipulator.
2. Discussion of the Related Art
Arms and manipulators are essential to many robotic tasks. For example, they are essential to robotic assembly tasks. Many robot arms and manipulators designed for factory use are stiff, high-impedance arms that operate using position control systems. However, the ability to control forces applied by the robot on the environment is also useful in assembly tasks. In particular, it is useful to be able to control the impedance of the manipulator, i.e., the relationship between applied environmentally forces and manipulator position.
Active impedance control of robot arms and manipulators has been studied and different approaches have been proposed. One of the earliest approaches was a strategy for controlling end-effector stiffness in Cartesian coordinates. Assuming the existence of a low-level torque controller, this approach calculated the joint torque corresponding to a Cartesian space error given a desired Cartesian space end-effector stiffness. This can be considered to be a system for achieving a desired linear zero-order impedance. This approach was later expanded into a system for controlling second-order linear impedance. In this approach, the control system attempts to adjust not only the stiffness, but also the manipulator damping and the inertia.
Another body of work relevant to the current invention is multiple-priority velocity and acceleration control. It is well known that because a robot manipulator has enough actuated degrees of freedom, a manifold of joint configurations may exist that place the end effector in the same position and orientation. This property is known as the kinematic redundancy of the manipulator and has been used primarily to enable robots to achieve multiple velocity or acceleration objectives at once. For example, with a seven degree-of-freedom (DOF) humanoid manipulator, it is possible to place the manipulator end-effector in a particular pose while also adjusting the position of the elbow as desired. Typically, position objective are assigned priorities with lower-priority position objective operating subject to higher-priority objectives.
In accordance with the teachings of the present invention, a system and method are disclosed for providing multiple priority impedance control for a robot manipulator where multiple impedance laws are realized simultaneously and with a given order of priority. The method includes a control scheme for realizing a Cartesian space impedance objective as a first priority while also realizing a joint space impedance objective as a second priority. The method also includes a control scheme for realizing two Cartesian space impedance objectives with different levels of priority. The method includes instances of the control schemes that use feedback from force sensors mounted at an end-effector and other instances for the control schemes that do not use this feedback.
Additional features of the present invention will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings.
The following discussion of the embodiments of the invention is directed to a system and method for providing hierarchical impedance control of a robotic system is merely exemplary in nature, and is in no way intended to limit the invention or its applications or uses.
The embodiments of the invention are described in terms of the following generalized equation of motion for a robot manipulator with n revolute joints:
A{umlaut over (q)}+η=τa+τ (1)
Where A is the n×n manipulator inertia matrix, {umlaut over (q)} is an n-vector of manipulator joint accelerations, τ is an n-vector of torques resulting from externally applied loads and τa is a vector of actuator torques.
η describes the sum of friction, coriolis, centrifugal and gravitational torques as:
η=t+c+g (2)
Where t is the vector of frictional forces, c is a vector of manipulator centrifugal and coriolis forces and g is a vector of manipulator gravity forces. The dependence of A, c and g on manipulator configuration is implicitly assumed.
It is frequently useful to design controllers defined in operational space coordinates rather than in the joint space. The term “operational space” may refer to any coordinate system mapped onto by the joint space. Frequently, the operational space coordinates of most interest are considered to be the space of Cartesian positions and orientations of a point resolution (POR) on the manipulator. Another alternative is an operational space coordinate system that described a system state in relation to a scalar potential function in the joint space. When operational space coordinates describe the Cartesian pose, then the pose of the POR as an element of SE that will be represented in exponential coordinates (a six-vector where the first three numbers described position and the last three numbers describe orientation using the axis-angle representation). The Cartesian velocity of the POR will be represented as a twist and the acceleration as the derivative of twist. Similarly, loads in Cartesian space will be written as wrenches (six-vector that concentrates a force and a moment).
The POR Jacobian J is an important quantity that relates joint velocities {dot over (q)} to Cartesian twists at the POR, {dot over (x)}:{dot over (x)}=J{dot over (q)}. Using a virtual work argument, the POR Jacobian can also be shown to relate wrenches applied to the POR by external sources f to the joint torques τ that gives: τ=JTf. The acceleration of the POR is calculated by solving equation (1) for {umlaut over (x)}:
{umlaut over (x)}=JA−1(τ−τa+η)+{dot over (J)}{dot over (q)} (3)
Each embodiment can be described in terms of one of the two block diagrams in the systems 10 and 20 where in either case different terms substitute for the G and H blocks.
Based on the above analysis, the first-order impedance embodiments of this invention are realized by the following control law. Allow a change of variables such that a new control variable τ′ specifies actuator torques according to:
τa=η−τ′ (4)
Recall that η is the sum of frictional, coriolis centrifugal, and gravitational torques. Then the Cartesian control law can be specified as:
Equation (6) is a desired Cartesian space first order linear impedance, and γ* is a free null space variable. Bc and Kc are the Cartesian space damping and stiffness matrices and fdes is a desired reference wrench. This control law requires measurement of the Cartesian velocity and pose error
defined with respect to velocity and pose references {dot over (x)}* and x*. As expected, γ* may be set arbitrarily without changing the acceleration of force applied by the POR. Substituting equations (2), (3) and (4) back into equation (1) gives:
Λ{umlaut over (x)}+f*=ΛJA−1τ (7)
For an arbitrary value of γ* where Λ=(JA−1JT)−1 is the Cartesian space passive manipulator inertia. When forces are applied only to the POR, then equation (7) reduces to:
Λ{umlaut over (x)}+f*=f (8)
In one embodiment, the controller realizes a second-priority joint space impedance while also realizing the first-priority first order Cartesian space impedance. The second-priority impedance is:
B and K are the joint space damping and stiffness matrices, respectively, and τdes is a desired external torque.
are the joint velocity and position errors resured with respect to the joint velocity and position references {dot over (q)}* and q* respectively. Note that this is really just a first order impedance specification because the passive inertia is left unchanged.
Since the passive inertia of the manipulator remains unchanged, it is possible to select the γ* that minimizes the joint acceleration error or the joint torque error. First, consider minimizing the joint acceleration error. The acceleration required by the second-priority joint impedance is:
{umlaut over (q)}′=A−1(τ−τ*) (11)
The acceleration realized by the first-priority control law is:
{umlaut over (q)}=A−1τ−A−1JTf*−Nγ* (12)
The γ* that minimizes the different between {umlaut over (q)}′ and {umlaut over (q)} is:
Therefore, the multi-priority control law that minimizes second-priority acceleration error is:
τ′=(I−ANA−1)JTf*+ANA−1τ*+A{dot over (J)}{dot over (q)} (14)
It is also possible to select the γ* that minimizes the error in joint torques resulting from externally applied forces. The torque required to realize the second priority joint impedance is:
τ′=A{umlaut over (q)}+τ* (15)
The torque applied to the environment by the first priority control law is:
τ=A{umlaut over (q)}+JTf*+ANγ* (16)
The value of γ* that minimizes the second-priority torque error is:
Therefore, the multi-priority control law that minimizes the second-priority torque error is:
τ′=(I−A(AN)+)JTf*+A(AN)+τ*+A{dot over (J)}{dot over (q)} (18)
In another embodiment, the controller realizes a second-priority Cartesian impedance while also realizing the first-priority first order Cartesian space impedance. Since the first-priority impedance remains the same as it was in the previous embodiment, this embodiment re-uses the control law of equation (5). γ* must be chosen to optimize manipulator dynamics for the second-priority Cartesian impedance. The second priority impedance is:
Λ2{umlaut over (x)}2+f2*=Λ2J2A−1τ (19)
Where Λ2=(J2AJ2T)−1 is the passive inertia of the manipulator, J2 is the Jacobian matrix, and f2 is the force applied at the second POR by an external source. f2* is:
Note that when forces are applied at the second POR only, equation (20) becomes:
Λ2{umlaut over (x)}2+f2*=f2 (21)
As with the second-priority joint space impedance law, the passive inertia of the manipulator remains unchanged because the first-priority impedance is first order. The space of second-POR accelerations that can be realized by the first priority Cartesian impedance is found using equation (12):
{umlaut over (x)}2=J2A−1τ−J2A−1JTf*−J2Nγ*+{dot over (J)}2{dot over (q)} (22)
The second-POR acceleration required by the second-priority Cartesian impedance in equation (19) is:
{umlaut over (x)}2′=J2A−1τ−J2A−1J2Tf2* (23)
The γ* that minimizes the difference between {umlaut over (x)}2 and {umlaut over (x)}2′ is:
Where Λ2=(J2A−1J2T)−1.
Substituting γmin* into the control law of equation (5) gives:
τ′=(I−(J2N)+J2A−1)JTf*+(J2N)+(Λ2−1f2*+{dot over (J)}2{dot over (q)})+A{dot over (J)}2{dot over (q)} (25)
It is also possible to realize second-priority second order joint and Cartesian space impedances. This requires an additional measurement of externally applied forces or joint accelerations. In these embodiments, the first-priority Cartesian space impedance is:
Where f* is defined in equation (6) and
is POR acceleration error with respect to an acceleration reference {umlaut over (x)}*.
The prioritization of the impedance laws is realized by selecting the joint space acceleration closest to that required by the secondary impedance law while still realizing the primary impedance. The space of joint accelerations that realize the first-priority Cartesian impedance is:
{umlaut over (q)}=J+{umlaut over (x)}*+J+M−1(f−f*)+Nλ−J+{dot over (J)}{dot over (q)} (27)
For a second-priority impedance expressed in the joint space, the impedance law is:
The corresponding joint acceleration is:
{umlaut over (q)}′={umlaut over (q)}*+Γ−1(τ−τ*) (29)
The value of γ is solved for that minimizes ∥{umlaut over (q)}−{umlaut over (q)}′∥. Expanding this expression, to find:
The solution can be found by taking the pseudoinverse of N and using the fact that since N is a projection the matrix N=N+:
γmin=N({umlaut over (q)}*+Γ−1(τ−τ*)) (31)
Substituting into equation (1) and using the fact that since N is idempotent, N=NN, the resulting control law is:
Note again that this control law requires measurements of the joint torques τ and POR forces f resulting from externally applied forces.
Rather than realizing a second-priority joint space impedance, it is possible to realize a second priority Cartesian space impedance instead. The first-priority objective is still the second order impedance of equation (26). The second-priority impedance is defined in the Cartesian space:
Where f2* is:
As before, the space of joint space accelerations that realize equation (26) is given by equation (27). The corresponding space of Cartesian accelerations at the second POR is:
{umlaut over (x)}2=J2J+[{umlaut over (x)}*+M−1(f−f*)]+J2Nλ−J2J+{dot over (J)}{dot over (q)}+{dot over (J)}2{dot over (q)} (35)
Where J2 is the manipulator Jacobian matrix associated with x2.
Re-arranging equation (33), the desired Cartesian acceleration at the second POR is:
{umlaut over (x)}2′={umlaut over (x)}2*+M2−1(f2−f2*) (36)
The approach to realizing equation (33) as a second priority is to find the value for λ that makes equation (35) as close as possible to {umlaut over (x)}2′. Equivalently:
Where Ĵ2=J2N.
Substituting into equation (1), the resulting control law is:
τa=A(I−Ĵ2+J2)Ĵ1+[{umlaut over (x)}*+M−1(f−f*)−{dot over (J)}{dot over (q)}+AĴ2+[{umlaut over (x)}2*+M2−1(f2−f2*)−{dot over (J)}2{dot over (q)}]+η−τ (38)
This control law realizes the first-priority impedance law for the first POR in equation (26) while also realizing the second-priority impedance at the second POR in equation (33) to the extent possible without disrupting the first impedance objective.
Another embodiment of the invention realizes a dual-priority Cartesian stiffness at two PORs. The stiffness objective at the first POR is:
f=f* (39)
Where f* is defined in equation (6).
The stiffness objective at the second POR is:
f2=f2* (40)
Where f2* is defined in equation (34).
The first objective is realized by applying a torque from the space:
τ=JTf1*+N1λ (41)
Where λ is arbitrary.
J is the Jacobian for the first POR and N=I−J+J is the associated null space projection matrix. This space of joint torques correspond to the following set of wrenches at the second POR:
f2J2+
Where J2 is the Jacobian for the second POR.
Finding the value for λ that makes f2 as close as possible to f2* gives:
Where Ĵ2=J2+
Integrating this result with equation (41), the joint torque that optimally achieves both prioritized objectives is:
τ=(I−Ĵ2+J2+
Substituting into equation (1) and setting accelerations to zero (because of the steady-state assumption) gives the following control law:
τa=−(I−Ĵ2+J2+
The system 30 includes a means 34 for defining a plurality of different impedance or stiffness objectives defined operational space or joint space and a means 36 for assigning a priority to the different impedance or stiffness objectives. The system 30 also includes a means 38 for controlling a manipulator impedance such that a primary priority impedance or stiffness objective is realized, a means 40 for controlling the manipulator impedance such that a secondary priority impedance or stiffness objective is realized to the extent possible while still realizing the primary priority impedance or stiffness objective, and a means 42 for controlling the manipulator impedance such that lower priority impedance or stiffness objectives are realized to the extent possible while realizing all higher priority impedance or stiffness objectives.
The primary priority impedance objective is defined in Cartesian space and the secondary priority impedance objective is defined in the joint space. The primary and secondary priority impedance or stiffness objectives are defined in Cartesian space. Cartesian space force sensors 44 are mounted on the manipulator 32 and are used to measure applied forces at multiple positions, where the force measurements are used to implement prioritized impedance objectives. Multiple priority impedance or stiffness objectives can be realized without using Cartesian space force sensors and while retaining passive inertia of the manipulator 32. The Cartesian space impedance or stiffness objectives are defined with zero stiffness in one or more of Cartesian space directions. An offset force is applied in zero stiffness directions so that the manipulator 32 applies a constant Cartesian space force in that direction. An additional force compensation scheme is used to regulate forces in the zero-stiffness Cartesian space direction.
The invention described herein may be manufactured and used by or for the U.S. Government for U.S. Government (i.e., non-commercial) purposes without the payment of royalties thereon or therefore.
Number | Name | Date | Kind |
---|---|---|---|
4860215 | Seraji | Aug 1989 | A |
4974210 | Lee | Nov 1990 | A |
5103404 | McIntosh | Apr 1992 | A |
5499320 | Backes et al. | Mar 1996 | A |
6081754 | Schlemmer | Jun 2000 | A |
6226566 | Funda et al. | May 2001 | B1 |
6393340 | Funda et al. | May 2002 | B2 |
20060048364 | Zhang et al. | Mar 2006 | A1 |
20070255454 | Dariush | Nov 2007 | A1 |
20080046122 | Manzo et al. | Feb 2008 | A1 |
20080140257 | Sato et al. | Jun 2008 | A1 |
Number | Date | Country |
---|---|---|
2008-36761 | Feb 2008 | JP |
Number | Date | Country | |
---|---|---|---|
20100161127 A1 | Jun 2010 | US |