Skip to content

Force Control

Natural & Artificial Constraints

We use \(\xi=(v^T, \omega^T)^T\) to represent the instantaneous linear and angular velocity of end-effector, \(F=(f^T, n^T)^T\) to represent the instantaneous force and torque acting on the end-effector. Easy to show that \(\xi\) and \(F\) belongs to linear space which is a subspace of \(\mathbb{R^6}\), and denoted by \(\mathcal{M}\) and \(\mathcal{F}\).

We form a compliance frame \(o_cx_cy_cz_c\) at the end-effector.

Relationship of Two constraints

Define Admissible Motion Space \(V_a\subset \mathbb{R}^6\), to be all the possible motion which satisfies the geometric constraints. Define \(V_c=V_a^{\perp}\).

Assume \(F\in \mathcal{F}\), \(\xi\in \mathcal{M}\), then the work done by end-effector is

\[ W=F^T \xi. \]

Partition \(F\) and \(\xi\) into two subspace \(V_a\) and \(V_c\)

\[ F=F_a+F_c,\quad \xi=\xi_a+\xi_c, \]

where \(F_a,\xi_a\in V_a\) and \(F_c,\xi_c\in V_c\). Substitute in and

\[ W=F_a^T\xi_a +F_c^T \xi_c. \]

In \(V_c\), we must have \(\xi_c=0\) then the motion is admissible. Then the above equation is reduced to virtual work. However, since the system is kept in static equivalence, we must have the virtual work to be zero for all virtual motion \(\xi_a\). So \(F_a=0\).

Actually, we have \(\mathcal{M}=V_a\) and \(\mathcal{F}=V_c\).

Example. Write down the natural and artificial constraints in the end-effector of the following manipulator.

For \(\mathcal{M}\), we have

\[ v_x=0,v_z=0,\omega_x=0,\omega_y=0.\quad v_y=\alpha_1, \omega_z=\alpha_2. \]

For \(\mathcal{F}\), we have

\[ f_y=0, n_z=0.\quad f_x=f_z=n_x=n_y=\alpha_3=0. \]

Hybrid Position/Force Control

Contact with environment

In considering forces of contact, we assume our system is rigid and the environment has some stiffness \(k_e\) (劲度).

Consider the control of a mass attached to a spring.

The variable we wish to control is the force acting on the environment \(f_e\), which is also the force acting in the spring

\[ f_e=k_e x. \]

We also include other forces, like \(f_{dist}\) from unknown friction or cogging in the manipulator's gearing.

\[ \begin{align*} f&=m\ddot{x}+k_ex+f_{dist}\\ &=mk_e^{-1}\ddot{f_e}+f_e+f_{dist}. \end{align*} \]

Choose \(\alpha=mk_e^{-1}\) and \(\beta=f_e\), so the control law is

\[ f=\alpha f+\beta. \]

with closed loop system

\[ \ddot{e}_f+k_{vf}\dot{e}_f+k_{pf}e_f=0, \]

where \(e_f=f_d-f_e\). Notice the above control law do not have knowledge of \(f_{dist}\), so we have a steady error by setting all derivatives to zero

\[ e_f=\frac{f_{dist}}{\alpha}=\frac{f_{dist}}{mk_e^{-1}k_{pf}} \]

if we use \(\beta=f_D\) in the control law, we have

\[ e_f=\frac{f_{dist}}{1+\alpha} \]

when the environment is stiff, \(\alpha\) could be small, so the above control law effectively reduce the noise.

In practice, force trajectory is usually constant, so \(\ddot{f}_d=\dot{f}_d=0\). Another reality is that sensed force are quite "noisy", and differentiation of \(\dot{f}_e\) is ill-advised. We could get \(\dot{f}_e=k_e \dot{x}\), if we could obtain good measures of velocity.