Warning

## Homework 03 - Forward Kinematics and Robot Workspace

#### Forward Kinematics

Implement the forward kinematic task for a general 6R manipulator.

Allowed libraries: numpy

Create a function fkt(mechanism, joints) which takes DH parameters of the manipulator mechanism and 6 joint angles (in radians) of the manipulator joints and returns the pose of the end effector.

Input/Output specifications for fkt:

1. mechanism : dictionary with 4 keys “theta offset”, “d”, “a”, “alpha”.
2. joints : list of 6 float numbers that define the configuration of the mechanism.
3. Return value : dictionary with 2 keys “r” and “t”, whose values are the rotation (3×3 matrix of type np.ndarray) and the translation (3×1 matrix of type np.ndarray) of the end effector in the base coordinate system, respectively.

Implement the solution in a single file hw03.py. The file must contain the fkt function, such that it can be imported (by the automatic evaluation) as

import hw03
pose = hw03.fkt(mechanism, joints)

#### Robot Workspace

Use the created fkt function to explore the range of motion of the end-effector when moving only the first joint of the Motoman MA1400 manipulator (that was used in the previous homework).

For this follow the next steps:

1. fix the $2$-$6$-th joints to the zero position
2. sample $n$ values for the first joint (you can fix $n=100$) starting from lower joint limit until upper joint limit
3. for each sampled value, compute fkt and record the end-effector position
4. visualize the end-effector positions projected to the $x$-$y$ plane.

Upload a zip archive hw03.zip (via the course ware) containing the following files:
1. hw03.py - python script containing the implemented function fkt
2. hw03.pdf - report file describing your solution containing:
1. description of your implementation of fkt
2. visualization of the end-effector positions projected to the $x$-$y$ plane.