The purpose of this project was to design an Inverse Kinematic controller for the Kinova Jaco2 robot to follow some given tasks. The control objectives include position only without exploiting the redundancy, given by both the position and the orientation, the end-effector orientation needs to be changed, and the redundancy needs to be exploited by maximizing the manipulability.