Passive compliance control is an approach for controlling the contact forces between a robotic manipulator and a stiff environment. This paper considers passive compliance control using redundant serial manipulators with real-time adjustable joint stiffness. Such manipulators can control the elastic behavior of the end-effector by adjusting the manipulator configuration and by adjusting the intrinsic joint stiffness. The end-effector's time-varying elastic behavior is a beneficial quality for constrained manipulation tasks such as opening doors, turning cranks, and assembling parts. The challenge in passive compliance control is finding suitable joint commands for producing the desired time-varying end-effector position and compliance (task manipulation plan). This problem is addressed by extending the redundant inverse kinematics (RIK) problem to include compliance. This paper presents an effective method for simultaneously attaining the desired end-effector position and end-effector elastic behavior by tracking a desired variation in both the position and the compliance. The set of suitable joint commands is not unique; the method resolves the redundancy by minimizing the actuator velocity norm. The method also compensates for joint deflection due to known external loads, e.g., gravity.

## Introduction

Stiffness control, a subset of impedance control [1], is an interaction control strategy for managing contact forces in tasks where the end-effector motion is constrained, such as opening doors, turning cranks, and assembling parts. Stiffness is the impedance component that characterizes the force–displacement relationship. The interaction force due to displacement of the end-effector from an equilibrium position depends on the end-effector's stiffness. Conversely, the end-effector displacement from equilibrium due to an interaction force depends on the end-effector's compliance, the inverse of stiffness.

For constrained manipulation tasks, decreasing stiffness (increasing compliance) in the constrained direction(s) reduces the interaction force; increasing stiffness (decreasing compliance) in unconstrained directions reduces end-effector displacement due to known loads or to force disturbances.

Three methods of controlling task stiffness (impedance) [2] involve using: (1) active control with sensor feedback to impose a virtual joint stiffness matrix, (2) kinematic redundancy to adjust the joint configuration, which adjusts the task stiffness matrix, and (3) redundant actuation to adjust the intrinsic joint stiffness matrix (a property of the human musculoskeletal system in co-contraction of antagonistic muscles). A large body of work [2–7] addresses active impedance control. Relatively little work addresses *passive stiffness control,* which is implemented using strategies 2 and 3 to adjust the task stiffness matrix without using sensor feedback. With passive stiffness control, each joint equilibrium position and joint stiffness are *independently* controlled. This contrasts with active stiffness control, where the primary actuators are controlled based on sensor feedback to emulate the desired stiffness at a commanded virtual equilibrium point. If it can implement the desired task stiffness, a passive stiffness controlled manipulator performs better [8] than a bandwidth-limited active controlled manipulator.

Passive stiffness control can be implemented using serial manipulators with elastic joints between consecutive links as illustrated in Fig. 1. A manipulator of this type has a diagonal joint stiffness matrix. If there is kinematic redundancy, the task stiffness may be controlled using strategy 2 even with nonadjustable joint stiffness. Control strategy 3 is possible if each joint is equipped with a variable stiffness actuator (VSA), an actuator that adjusts the intrinsic stiffness of the manipulator joint. A VSA has a real-time adjustable stiffness element in series with the primary actuator that controls the joint position (relative angle between links). Many VSAs [9–11] have the ability to adjust the joint stiffness without impacting the no-load equilibrium joint position. This paper presents a new method for controlling the end-effector position and end-effector stiffness of manipulators having VSAs of this type.

A limitation of passive stiffness control is the difficulty of its realization. As noted in Ref. [12], it is easy to implement an arbitrary task stiffness with a bandwidth-limited active control, but difficult, if not impossible, to implement the desired stiffness passively. The manipulator's ability to produce a desired end-effector passive stiffness strongly depends on its kinematic configuration. The set of implementable task stiffnesses is much larger for a redundant manipulator, where the manipulator can adjust its kinematic configuration without affecting the end-effector's position. Kinematic redundancy increases the capabilities of passive stiffness control, but complicates the problem of selecting the appropriate joint position and joint stiffness to realize the task manipulation plan. Prior work that addresses aspects of this problem is reviewed below.

### Prior Work in Passive Stiffness Control.

The problem of selecting the joint compliance values of planar 2R and 3R manipulators for realizing particle planar (*E*(2)) task compliance matrices is addressed in Ref. [13]. Necessary and sufficient conditions for exactly realizing a 2 × 2 compliance matrix are identified as well as joint compliance synthesis procedures to attain a desired end-point compliance. The results apply to any single specified kinematic configuration, not a manipulation plan (continuous sequence of positions and task compliances).

The problem of selecting the passive joint compliances for nonplanar manipulators similar to the type illustrated in Fig. 1 is addressed in Refs. [14] and [15] using optimization. The optimization criterion minimizes the Frobenius norm of the difference between the desired task compliance and the passive end-effector compliance. The optimization in Ref. [14] selects the passive joint compliance without adjusting the kinematic configuration. The passive joint compliances attained by this optimization are not guaranteed to realize the desired task compliance. To compensate, the elastic behavior is supplemented with active stiffness control. In Ref. [15], a null space controller is used to adjust the kinematic configuration based on a local optimization for improving the task compliance. This approach adjusts the kinematic joint configuration without adjusting the passive joint compliance. These approaches [14,15] used for resolving the passive compliance and resolving the joint kinematics *separately* avoid using nonlinear constraints in the optimization, but sacrifice locally optimal joint control.

A method of simultaneous resolution of passive joint stiffnesses and joint kinematics is described in Ref. [16], where manipulation is treated as a series of configurations in static equilibrium. The method tracks the *change* in task stiffness with respect to time using a stiffness Jacobian matrix. Little attention, however, was given to deriving the stiffness Jacobian. In Ref. [16], the stiffness Jacobian is obtained from a function that maps joint stiffness to task stiffness. The stiffness mapping function used in Ref. [16] is the inverse of the mapping^{2} commonly used in active stiffness control [17] for selecting the joint stiffness matrix. This choice of stiffness mapping, however, does not apply to redundant manipulators. For redundant manipulators, the joint stiffness for implementing the task stiffness is not unique and the inverse does not exist.

This paper presents means of selecting the joint position and passive joint stiffness for redundant serial manipulators implementing time-varying task manipulation plans. Unlike Refs. [14] and [15], our approach resolves the manipulator's joint position and joint stiffness *simultaneously*. Similar to the framework presented in Ref. [16], our approach tracks the required variation in the end-effector elastic behavior and position. Instead of using *stiffness*, however, we use a forward mapping of joint *compliance* to task *compliance,* which is computationally easier. More importantly, redundant manipulators can be considered in our passive compliance control approach because our compliance forward mapping does not require inverting the Jacobian matrix. As in Ref. [16], the manipulation plan is treated as a series of configurations in static equilibrium, but our approach compensates for joint deflection due to known external loads (not addressed in Ref. [16]).

### Overview.

This paper presents a new approach for generating actuation plans for redundant serial manipulators with VSAs to implement purely passive stiffness control. The approach is equivalent to solving the redundant inverse kinematics (RIK) problem extended to include compliance. In Sec. 2, the RIK problem is reviewed along with a standard local (differential) resolution approach using the weighted pseudoinverse. In Sec. 3, the inverse kinematics (IK) problem is generalized to include compliance. In Sec. 4, local redundancy resolution (RR) of the compliance extended inverse kinematics problem is addressed by minimizing the norm of both the kinematic and compliance actuator motions. Compensation of joint deflection due to gravity is also addressed in Sec. 4. The manipulation planning approach for generating the actuator plan by numerically integrating the local RIK resolved joint motion is provided in Sec. 5. In Sec. 6, the manipulation planning approach is used to generate actuation commands for a 3R-VSA manipulator to perform a manipulation task in *E*(2) with time-varying task compliance. A brief summary of results and conclusions is provided in Sec. 7.

## Review of Redundant Inverse Kinematics

Consider a noncompliant serial manipulator with *n* joint configuration coordinates where the end-effector performs a motion task described by *m* coordinates. The forward kinematic map $f(q):Q\u2192X$ is a nonlinear function that defines the relationship between the manipulator's configuration in joint space $q\u2208Q$ (relative angles between consecutive links) and the end-effector configuration in task space $x\u2208X$ (position and orientation of the end-effector frame relative to the base frame).

where $J(q)=\u2202f(q)/\u2202q$ is the manipulator's task Jacobian matrix evaluated at the local joint configuration **q**.

Consider a task plan $x(t)\u2208X$, a continuous set of desired task configurations corresponding to the desired motion of the manipulator's end-effector. The task plan is a path indexed by normalized time *t* ∈ [0, 1]. The IK path planning problem is to find a joint plan $q(t)\u2208Q$ such that $f(q(t))=x(t)$ for all time *t*, where $q(t)$ is a continuous set of joint configurations. For redundant manipulators (*n* > *m*), there is an infinite number of solutions to the IK problem. Choosing a unique joint motion plan from the IK solution space is known as the RR problem. The RIK problem combines the IK and RR problems together.

where **W** is an *n* × *n* positive definite matrix of weighting values and the domain of the optimization is the set of joint velocities that produce the required task velocity given by linear constraints (i.e., Eq. (1)). The weighting matrix may be selected to minimize the norm of the joint velocities, minimize the kinetic energy of the manipulator [18], maximize the distance from joint limits [19], or some other criterion.

**J**

^{†}is the weighted pseudoinverse matrix of

**J**(

**q**), calculated by

**J**is full-rank (rank(

**J**) =

*m*). The weighted pseudoinverse simultaneously addresses the IK problem with

**J**and addresses the RR problem with

**W**.

where $q0\u2208Q\u2223f(q0)=x(0)$ is an admissible initial joint configuration.

By augmenting the joint configuration coordinates and task configuration coordinates to include compliance (inverse of stiffness), the weighted pseudoinverse method is extended below to track both a desired equilibrium task position and a desired task compliance.

## Compliance Extended Inverse Kinematics

To include compliance in the local IK resolution approach, the joint space *Q* and task space *X* are augmented to include joint compliance coordinates and task compliance coordinates, respectively. The mapping function $x=f(q)$ from the joint space to the task space and the tangent space mapping $x\u02d9=Jq\u02d9$ are augmented with additional mappings for compliance. This section provides the details. To emphasize the distinction between the typical kinematic and the augmented compliance coordinates and mappings, subscript (⋅)* _{p}* indicates kinematic coordinates or mappings and subscript (⋅)

*indicates compliance coordinates or mappings.*

_{c}### Compliance Augmented Joint Space.

The class of manipulators considered in this paper are *serial* manipulators with *n _{p}* revolute joints where each joint has adjustable compliance (as depicted in Fig. 1). The joint kinematic configuration is $qp=[qp1,qp2,\u2026,qpnp]T$ where the coordinate $qpi\u2208(\u2212\u221e,\u221e)$ is the relative angle between link

*i*and link (

*i*− 1) (link 0 is the ground). The joint kinematic configuration

**q**

*is the static equilibrium configuration of the manipulator when no disturbance acts on the manipulator (i.e., no commanded position error due to constrained interaction).*

_{p}The passive compliance of each joint is independently controlled; therefore, the joint compliance configuration is $qc=[qc1,qc2,\u2026,qcnp]T$ where the coordinate $qci\u2208(\u2212\u221e,\u221e)$ is the compliance of joint *i*. Note, the joint compliance must have a positive value to be realized; this issue is treated the same as joint limits (discussed in Sec. 5). The joint compliance matrix **C*** _{q}* is an

*n*×

_{p}*n*diagonal matrix with

_{p}**q**

*as the diagonal elements.*

_{c}**q**∈

*Q*of the manipulator is formed by concatenating the joint kinematic and joint compliance configurations

### Compliance Augmented Task Space.

The task manipulation plan for compliance control involves both kinematics and compliance. The robot end-effector has a specific position/orientation given by the *m _{p}* × 1 vector

**x**

*, where*

_{p}*m*is the number of task kinematic degrees-of-freedom. The end-effector has a specific elastic behavior given by

_{p}**C**

*, an*

_{x}*m*×

_{p}*m*positive definite task compliance matrix.

_{p}Since **C*** _{x}* is symmetric, the task compliance is fully and uniquely described by the upper triangular elements. Therefore, these elements are selected as the task compliance coordinates of the task compliance configuration $xc=sort\u25b3(Cx)$ where $sort\u25b3(\xb7)$ is a sorting operation for arranging the upper triangular elements of

**C**

*into an*

_{x}*m*× 1 vector based on element position in the matrix. The number of task compliance coordinates is $mc=(1/2)mp(mp+1)$.

_{c}The augmented task configuration **x** ∈ *X* is formed by concatenating the task kinematic and task compliance configurations $x=[xpT,xcT]T$.

### Compliance Augmented Forward Maps.

**q**and augmented task space coordinates

**x**are each a concatenation of kinematic and compliance coordinates. Because of this structure, the forward mapping function $f(q)$ is a concatenation of the forward kinematics and forward compliance functions

where the forward kinematic function $fp$ gives the task kinematic configuration **x*** _{p}* and the forward compliance function $fc$ gives the task compliance configuration,

**x**

*.*

_{c}In our compliance resolution approach, compliance and kinematics are resolved simultaneously at the local (differential) level. Rather than finding the appropriate joint compliance configuration for each task instance, we find the best infinitesimal change in the joint configuration (kinematic and compliance) to produce the desired infinitesimal change in the task configuration (kinematic and compliance). The differential task requirements are a set of linear constraints given by the task Jacobian matrix $J=\u2202f(q)/\u2202q$.

where $Jc=[Jcp,Jcc]$ is the compliance Jacobian. The partition $Jpp=\u2202fp(q)/\u2202qp$ is the standard kinematic Jacobian used in IK literature. The partition $Jpc=\u2202fp(q)/\u2202qc$ describes how the end-effector task position changes with changes in the joint compliance variables. Since robot kinematics do not depend on the joint compliance variables, **J*** _{pc}* =

**0**. The partition $Jcp=\u2202fc(q)/\u2202qp$ describes how the end-effector task compliance changes with changes in the joint kinematic variables. The partition $Jcc=\u2202fc(q)/\u2202qc$ describes how the end-effector task compliance changes with changes in the joint compliance variables.

### Constructing the Compliance Jacobian.

In this section, the compliance forward map and the compliance Jacobian are constructed using the kinematic Jacobian and the joint compliance matrix.

where **J*** _{pp}* is the kinematic Jacobian and

**C**

*is the diagonal joint compliance matrix with*

_{q}**q**

*as the diagonal elements. The end-effector's task compliance matrix*

_{c}**C**

*(*

_{x}**q**) is symmetric and positive definite. Note that Eq. (7) does not require calculating the inverse Jacobian matrix (a step needed in the mapping function described in Ref. [16]).

*configuration*mapping is readily constructed by sorting the upper triangular elements of

**C**

*into a vector*

_{x}*δ*

**x**

*=*

_{c}**J**

_{c}δ**q**, where

*δ*

**q**is a variation in the augmented joint configuration. The compliance Jacobian, composed as a set of column vectors, is

where $\u2202fc(q)/\u2202qk$ is the *k*th column of **J**_{c} and *q _{k}* is the

*k*th joint space variable.

*k*th joint variable

^{3}

where *q _{k}* is a kinematic joint variable for 1 ≤

*k*≤

*n*and a compliance joint variable for

_{p}*n*+ 1 ≤

_{p}*k*≤

*n*. This decomposition is similar to that used in the conservative congruence transform [21] for finite deflection of a mechanism stiffness. This decomposition, however, is on compliance and it includes an additional term that accounts for variation in the joint compliance.

The columns of the compliance Jacobian are constructed using Eq. (12) after generating $\u2202Jpp/\u2202qk$ and $\u2202Cq/\u2202qk$, which are evaluated element by element.

With these results, the compliance augmented Jacobian (total Jacobian) **J** is readily calculated and used for locally resolving the compliance extended inverse kinematics problem using the weighted pseudoinverse method.

## Compliance Extended Redundancy Resolution

When a solution to the compliance extended local IK problem exists, the solution is not unique for redundant manipulators. There are many kinematic and compliance *joint motions* that produce the desired kinematic and compliance *task motion*. Here, the redundancy is resolved by minimizing the velocity norm of the actuators used to obtain the desired kinematic and compliance behavior.

For traditional industrial manipulators with rigid joints, the joint coordinates (relative angle between consecutive links) and the actuator coordinates (primary actuator positions) are the same. This is not that case for manipulators with elastic joints; actuator coordinates form a separate space Φ from the joint space *Q*. The actuator coordinates of serial manipulators with VSAs are separate from its joint coordinates for two reasons: (1) externally applied loads displace the joint position from the no-load equilibrium position commanded by the primary actuators, and (2) the VSA actuator position and the joint compliance have different units and therefore separate configuration spaces. The differences between the actuator coordinates and joint coordinates for both kinematic and compliance are illustrated in Fig. 2.

In this section, a mapping function from joint space to actuator space for both kinematic and compliance variables is described. A linear mapping from the joint tangent space to the actuator tangent space (the actuator Jacobian) is also described. This actuator Jacobian is used in the pseudoinverse weighting matrix for minimizing the actuator motion.

### Actuator Coordinates.

As stated previously and illustrated in Fig. 1, manipulators having variable stiffness actuators [9–11] allow kinematic joint position and joint compliance to be independently controlled. Each joint of the manipulator can be modeled as having two revolute actuators, a kinematic actuator (primary actuator) for adjusting joint kinematic position, and a compliance actuator for adjusting joint compliance.

*i*is connected to link (

*i*− 1) by a revolute joint. The kinematic actuator, attached to link (

*i*− 1), drives an intermediate body that is elastically coupled to link

*i*. In Fig. 2, the spring illustrated is a simple elastic coupling between two points. The compliance actuator illustrated in Fig. 2 adjusts the effective joint compliance by controlling the orientation of the elastic element using a motor and ball screw. For each joint

*i*, $\varphi pi$ is the kinematic actuator position and $\varphi ci$ is the compliance actuator position. The total actuator configuration of the manipulator is

*joint*configuration to an

*actuator*configuration. Since the compliance actuator coordinates are separate from the kinematic coordinates, the actuator mapping function is partitioned as

The kinematic actuator mapping * h_{p}* defines the relationship between the joint configuration

**q**and the kinematic actuator configuration $\varphi p$. The compliance actuator mapping $hc$ defines the relationship between the joint configuration

**q**and the compliance actuator position $\varphi c$. These mappings are described in detail below.

### Kinematic Actuator Mapping.

In the absence of external loads, kinematic joint positions and kinematic actuator positions are the same. However, gravitational loads are normally present and may cause significant joint deflection from the commanded position $qp\u2212\varphi p\u22600$. Commanded kinematic joint positions may be compensated for known loads (e.g., gravity) such that the deflected joint position is the desired position.

where $g(qp)$ is a vector of applied torques at the manipulator joints. For gravitational loads, the torque at each joint from the load is a function of the joint configuration determined by the link mass and moment arm. Since $Cq=diag(qc)$, both **q*** _{c}* and

**q**

*are used in the kinematic actuator mapping function.*

_{p}### Compliance Actuator Mapping.

The torque experienced at each VSA may be described by $\tau VSAi(\varphi ci,\Delta i)$, a nonlinear function of the VSA actuator coordinate $\varphi ci$, and the link deflection $\Delta i=qpi\u2212\varphi pi$. The shape of the function is determined by the VSA design.

If the torque–deflection relationship is modeled as linear such that the stiffness does not change significantly with link deflection Δ* _{i}*, then the joint stiffness can be described by the compliance actuator position alone: $ki(\varphi ci)$.

For VSA designs in which kinematic and compliance properties are independently controlled, when the VSA has a strictly increasing (or decreasing) compliance profile: $qci=1/ki(\varphi ci)$, there exists an inverse function $hci$ such that $\varphi ci=hci(qci)$.

*ξ*and

*c*

_{0}are constants. The compliance actuator position, then, is given by

Note that, for the VSAs considered, $hc$ only uses *compliance* joint variable as inputs. As such, the partition $J\varphi cp=0$. This contrasts with the task Jacobian where the diagonally opposite component $Jpc=0$.

The redundancy resolution criterion used to minimize the norm of the actuator velocities is equivalent to minimizing the quadratic objective function $Glocal=12\varphi \u02d9T\varphi \u02d9$.

This selection of the weighting matrix minimizes the norm of the *actuator* velocity, while resolving the inverse kinematics in *joint* tangent space.

The compliance extended weighted pseudoinverse is calculated by substituting Eqs. (20) and (6) into Eq. (4). This weighted pseudoinverse is used to solve the *local* compliance extended RIK problem. The procedure for integrating the local RIK solution for the whole (*t* = 0 → 1) task manipulation plan is provided below.

## Manipulation Planning Approach

Passive compliance control of redundant serial manipulators is implemented by executing an actuator plan containing the kinematic and compliance actuator positions for producing the desired task manipulation plan. In this section, a basic numerical procedure for generating the actuation plan is provided.

A summary of the weighted pseudoinverse RIK resolution approach is depicted in Fig. 3. Three configuration spaces are relevant: (1) task space *X*, (2) joint space *Q*, and (3) actuator space Φ. The desired task manipulation plan $x(t)\u2208X$, including both position and compliance, is provided as input to the procedure. The actuator plan $\varphi (t)\u2208\Phi $, needed for implementing passive stiffness control, is the output of the procedure.

For redundant manipulators considered here, a direct mapping $f\u22121:X\u2192Q$ from the task space to joint space does not exist; **J**^{−1} does not exist either. However, an admissible joint motion that produces the desired task motion is identified with the weighted pseudoinverse **J**^{†}, which resolves redundancy by minimizing the actuator velocity norm. Joint space *Q* serves as an intermediary between task space and actuator space in which the IK and RR problems are resolved at the differential level using the weighted pseudoinverse.

The manipulation planning approach uses the following steps:

- (1)
Determine an admissible joint configuration $q0\u2223f(q0)=x(0)$ using an analytical process [13] or search algorithm (denoted by $A$ in Fig. 3).

- (2)
Differentiate the task manipulation plan with respect to normalized time to identify the desired task motion $x\u02d9(t)$.

- (3)
Evaluate the compliance extended Jacobian

**J**and the weighting matrix $W=J\varphi TJ\varphi $ at the current joint configuration. Evaluate the weighted pseudoinverse matrix**J**^{†}using Eq. (4). - (4)
Identify the local optimal joint motion $q\u02d9(t)$ using Eq. (3).

- (5)
Numerically integrate the joint motion using a small step size in

*t*. - (6)
Determine the actuator plan using the actuator mapping: $\varphi (t)=h(q(t))$.

The integration loop (steps 2–5) repeats, drawing information from the task motion plan $x(t)$ each cycle until *t* = 1. Steps 2–5 describe the execution of Eq. (5) to generate the joint manipulation plan.

The IK and RR problems are resolved in joint space rather than actuator space because $h\u22121:\Phi \u2192Q$ cannot be computed directly when gravitational loads are present; it may be approximated, however, by iterative calculation [4]. Evaluating the Jacobian $J\varphi \u22121=\u2202h\u22121(\varphi )/\u2202\varphi $ is even more difficult. This difficulty prevents effective gravity compensation when the IK problem is resolved in the actuator space. The joint motion and *stiffness* resolution method [16] resolves the IK problem in the actuator space, but does not address gravity compensation.

### Additional Details.

The basic manipulation planning approach, shown in Fig. 3, may exhibit drift in the task manipulation plan due to the finite step size used in the integration. Drift may be mitigated by using an adaptive time-step, or by using the forward map $f$ to evaluate task error and correct the joint configuration using the Newton–Raphson method.

The algorithm presented in Fig. 3 does not address joint limits. Joint limits, however, *cannot* be ignored for passive compliance control. Every joint must have a positive compliance value regardless of the VSA design. The domain of $qci$ is (−*∞*, *∞*) but the feasible subset is given by $qci\u2208[cmin,cmax]$, where 0 < *c*_{min} < *c*_{max} < *∞* are the minimum and maximum compliances afforded by the VSA.

Although not presented in Fig. 3, joint limits are addressed using the saturation in the null space (SNS) algorithm [22], where redundancy is utilized to avoid joint limits only when the pseudoinverse method would produce a limit-violating joint motion. The SNS algorithm is used between steps 3 and 4. Alternatively, joint limits could be accounted for by using quadratic programing.

## Particle Planar Example

*E*(2) shown in Fig. 4. The manipulator has a total length (reach) of

*L*and a total weight of

*f*. The normalized link lengths are dimensionless proportions of the total length:

_{g}*l*

_{1}= 0.46,

*l*

_{2}= 0.43, and

*l*

_{3}= 0.11 (anthropomorphic ratios [23]). The gravitational force experienced by each link is expressed as proportions of the total weight

*f*. The weight of each link is proportional to its length and its mass center is located at its geometric center as illustrated in Fig. 4. The joint coordinates are given by

_{g}*f*. The normalized joint compliance matrix is

_{g}where, for normalized time, *t* = 0 at the start and *t* = 1 at the end of the task. The task plan is dimensionless, normalized by *L*.

Since the block is in contact with a horizontal rigid surface, the task compliance in the vertical direction is high to limit the constraint force that may result from error in the commanded vertical position of the task. In moving the block, friction is considered a disturbance impacting the desired motion. The task compliance in the horizontal direction is low to limit the end-effector deflection from the planned path due to friction. The compliance in the horizontal direction increases as the block approaches the wall to limit the interaction force from wall contact. In Fig. 4, the desired compliance ellipse^{4} is shown at four instants in time, where the major and minor radii of the ellipse are eigenvalues of the task compliance matrix.

*L*/

*f*) in vector form is

_{g}where the larger eigenvalue is *λ*_{2} = 0.1 and *γ* = *λ*_{2}/*λ*_{1} is the ellipse aspect ratio that transitions from 10 to 1 according to the profile given by $\gamma (t)=11\u221210t$.

The goal for implementing passive stiffness control is to find an actuator plan $\varphi (t)$ that executes the task manipulation plan $x(t)=[xp(t)T,xc(t)T]T$. To do this, the task forward mapping function $f(q)$ and task Jacobian **J** are needed to locally resolve the compliance extended IK problem.

### Mapping From Joint Space to Task Space.

*i*'s distal point (end-effector or next joint) relative to joint-

*i*'s position. For the manipulator in this case study

The forward compliance function $fc(q)$ is readily obtained by substituting the kinematic Jacobian matrix, Eq. (26), and the joint compliance matrix, Eq. (21), into Eq. (8).

**J**

*is constructed one column at a time using Eq. (12) substituted into Eq. (11). The partition*

_{c}**J**

*is readily evaluated with the partial derivatives of the kinematic Jacobian with respect to the kinematic joint variables:*

_{cp}*a*)–(27

*c*) are used in Eq. (12), for

*k*= 1, 2, and 3 to construct the first three columns of the compliance Jacobian, respectively. The last three columns,

**J**

*, are evaluated with Eq. (13) and used in Eq. (12), for*

_{cc}*k*= 4, 5, and 6.

The compliance augmented Jacobian relating augmented joint motion to augmented task motion is sufficient for solving the local inverse kinematics problem.

### Mappings From Joint Space to Actuator Space.

The actuator mapping and actuator Jacobian are defined below for gravity compensation and for joint redundancy resolution according to the minimum norm actuator motion criterion.

where [0.46, 0.43, 0.11]^{T} are the link weights normalized by *f _{g}*.

The VSAs of this example have an exponential compliance versus actuation profile like that of Ref. [10], where $hci(qci)$ is given by Eq. (15) with *ξ* = 5.86 and *c*_{0} = 0.001. The same VSA is used for each joint in this example.

The actuator Jacobian is calculated by $J\varphi =\u2202h(q)/\u2202q$ and is evaluated one column at a time similar to the task compliance Jacobian construction. The weighing matrix used in Eq. (4) is $W=J\varphi TJ\varphi $. This weighing matrix resolves the redundancy by minimizing the norm of the actuator motion.

### Results.

Locally resolved joint plans using the weighted pseudoinverse are generated with the numerical integration procedure presented in Sec. 5. An adaptive time-step is used to ensure that the task error is below a specified tolerance and that the numerically resolved joint motion accurately follows the true locally optimal plan.

The first step in the procedure is to find an admissible initial joint configuration from the initial task configuration using an analytical procedure (or search algorithm) denoted by $A$ in Fig. 3. For the initial task point ** x**(0), the set of admissible

*kinematic*joint configurations is given by the analytical inverse kinematic solution of a 4 bar mechanism with the end-effector as a grounded joint at

*x*_{p}(0). The orientation of the end-effector, given by $\psi =qp1+qp2+qp3$, is the input angle that resolves the kinematic joint configuration. The results here consider the “elbow-up” pose. The joint compliance configuration is uniquely determined by the desired task compliance and the kinematic joint configuration; formulas for the joint compliance are presented in Ref. [13]. Therefore, the set of admissible initial joint configurations is a one-dimensional set defined by and

*ψ*at $x(0)$.

Consider the initial joint configuration for ψ = −π rad:

Starting at this configuration, the manipulation plan is generated by integrating Eq. (5); the resulting plan is shown in Fig. 5. Figure 5(a) shows equally time-spaced snapshots of the manipulator performing the task, including the initial and final task times. The color of each joint indicates the compliance actuator position *ϕ _{c}* for that joint. Because joint 1 does not translate; its compliance actuator position is indicated by the colored circles below the manipulator. Figure 5(b) shows the continuous actuator position profiles for the task.

Figure 5(a) shows the manipulator *exactly* tracking the task compliance *when there is no disturbance*. Disturbance from uncharacterized friction causes displacement of the end-effector from the commanded task position. The joint configuration, also displaced, yields a slightly different task compliance since task compliance depends on joint kinematics. Since the direction of undesirable forces is known for this task, the *task* compliance is designed to be stiff in the direction of motion to keep the end-effector displacement small (as stated in this example).

## Conclusion

This paper identified a method of passive stiffness control of redundant serial manipulators to achieve effective interaction for performing constrained manipulation tasks. Actuator commands that produce the desired time-varying end-effector position and stiffness were obtained by extending a standard RIK approach to include compliance. Joint compliances were resolved simultaneously with the joint kinematics using the weighted pseudoinverse of the total Jacobian (including the compliance Jacobian). Redundancy was resolved using the minimum norm actuator motion criterion, where the actuator coordinates include kinematic actuators and compliance actuators. Gravity compensation was also addressed.

## Funding Data

National Science Foundation (Grant No. IIS-1427329).

This mapping selects a joint stiffness matrix, likely one with off-diagonal terms, that cannot be implemented passively with a manipulator like that in Fig. 1 even if a passive solution exists.

Equation (12) may be separated into cases because **C**_{q} is independent of the kinematic variables **q**_{p}, and **J**_{pp} is independent of the compliance variables **q**_{c}.

The compliance ellipse here is the end-effector's displacement image from the unit force $(f\u2223fTf=1)$ applied to the end-effector with task compliance $Cx,\u2009\Delta x=Cxf$.