Search
The goal of this task is to solve the inverse kinematic task for a general 6R mechanism using Newton's method.
a. Implement function jac_r(mechanism, joints) that returns the rotational Jacobian for the given mechanism and its configuration joints.
jac_r(mechanism, joints)
mechanism
joints
I/O specifications for jac_r:
jac_r
“theta offset”
“d”
“a”
“alpha”
np.ndarray
$$\frac{\partial \mathrm{vec}(\mathbf{R})}{\partial \boldsymbol{\theta}}_{\big|\boldsymbol{\theta}_0}, \quad \text{where} \; \mathrm{vec}(\mathbf{R}) = \begin{bmatrix} r_{11} & r_{21} & r_{31} & r_{12} & r_{22} & r_{32} & r_{13} & r_{23} & r_{33} \end{bmatrix}^\top$$
b. Implement function jac_t(mechanism, joints) that returns the positional Jacobian for the given mechanism and its configuration joints.
jac_t(mechanism, joints)
I/O specifications for jac_t:
jac_t
$$\frac{\partial \mathbf{t}}{\partial \boldsymbol{\theta}}_{\big|\boldsymbol{\theta}_0}$$
c. Implement function jac(mechanism, joints) that returns the full Jacobian for the given mechanism and its configuration joints.
jac(mechanism, joints)
I/O specifications for jac:
jac
$$ \begin{bmatrix} \frac{\partial \mathrm{vec}(\mathbf{R})}{\partial \boldsymbol{\theta}} \\ \frac{\partial \mathbf{t}}{\partial \boldsymbol{\theta}} \end{bmatrix}_{\big|\boldsymbol{\theta}_0} $$
d. Implement function solve(mechanism, pose, joints, n_iter, tol) that applies Newton's method to solve IKT.
solve(mechanism, pose, joints, n_iter, tol)
I/O specifications for solve:
solve
pose
“q”
“t”
n_iter
tol
Upload a zip archive hw08.zip containing
hw08.zip
hw08.py