Resolved-motion rate control converts a required tool-configuration velocity into joint velocities.
flowchart LR X["Required tool path<br/>x(t)"] --> XD["Differentiate<br/>x-dot(t)"] --> R{"Is V(q) full rank?"} R -- "NO" --> S["Singularity<br/>replan the path"] R -- "YES" --> QD["Apply V-plus(q)<br/>find q-dot(t)"] QD --> INT["Integrate q-dot(t)"] --> Q["Joint trajectory<br/>q(t)"]
Start with the differential kinematics relation:
For a differentiable trajectory inside the work envelope, the trajectory must stay away from workspace singularities.
Case:
When has full column rank:
The joint-space trajectory is obtained from the nonlinear differential equation:
with the initial condition:
The initial condition uses Inverse Kinematics to make the joint trajectory and tool trajectory start at the same physical configuration.
Case:
When is square and nonsingular:
This operation resolves the tool motion into its joint-space components.
Four-axis SCARA example
Write the nonconstant components of the SCARA Jacobian as:
where:
Define:
The pseudoinverse is well-defined when :
The rate-control equations are:
The SCARA approach vector is always vertical, so a valid tool trajectory must satisfy:
Important
As the robot approaches a singularity, becomes small. The required values of and can then become very large.
See Tool-configuration Jacobian Matrix and Generalised Inverses.