For this particulate project, I was given a complete Simscape model of a 3R robot. My objective was to develop a controller that the manipulator could use to follow a given trajectory.
Once the trajectories of the end effector were developed, I calculated the joint angles for each joint using standard inverse kinematics formulas. For the manipulator control, I used a combination of a PID and a transpose Jacobian controller to control the robot's joint torques. Transpose Jacobian control is a popular method of controlling robotic systems and is less computationally intense than inverse Jacobian. The Simulink block diagram of the controller is shown in the image below.
Puma Robot Manipulator
(Matlab, Simscape)

For this particulate project, I was given a complete Simscape model of a 3R robot. My objective was to develop a controller that the manipulator could use to follow a given trajectory.
Once the trajectories of the end effector were developed, I calculated the joint angles for each joint using standard inverse kinematics formulas. For the manipulator control, I used a combination of a PID and a transpose Jacobian controller to control the robot's joint torques. Transpose Jacobian control is a popular method of controlling robotic systems and is less computationally intense than inverse Jacobian. The Simulink block diagram of the controller is shown in the image below.
PID controller gains were adjusted through trial and error until good performance was met. I compared the desired and actual trajectory for each path developed. In addition to the plots, the media below shows the manipulator's trajectory execution. The performance of the controller was assessed by measuring the root mean square error which was marginal, with about 0.1-2% error between both trajectories.
The full report of my work, as well as the code for inverse kinematics, trajectory and transpose Jacobian control can be found in a PDF at the bottom of this page.



