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
Partition \(F\) and \(\xi\) into two subspace \(V_a\) and \(V_c\)
where \(F_a,\xi_a\in V_a\) and \(F_c,\xi_c\in V_c\). Substitute in and
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
For \(\mathcal{F}\), we have
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
We also include other forces, like \(f_{dist}\) from unknown friction or cogging in the manipulator's gearing.
Choose \(\alpha=mk_e^{-1}\) and \(\beta=f_e\), so the control law is
with closed loop system
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
if we use \(\beta=f_D\) in the control law, we have
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.