In this project I implemented jointspace and workspace velocity controllers and jointspace torque controller for a 6-DOF arm.
Here is a video of the controllers executing a series of trajectories.
Jointspace PD Velocity Controller
Convert workspace trajectory into a set of desired joint positions and velocities, then calculate the control input based on the joints' position and velocity errors.
Workspace Velocity Controller
Given a workspace trajectory, first compute the workspace velocity which reduces the error between the actual and desired workspace state (actual workspace state is found using forward kinematics of joint angles). Then used spatial Jacobian to convert workspace velocity command to jointspace velocity commands.
Jointspace PD Torque Controller
Using Lagrangian Dynamics of arm, generate joint torques that overcome the inertia of the system and reduce the joints' PD error.
Plots comparing the performance of each controller against the "control" MoveIt controller are shown in the report below.Â
Extended understanding of PID control and tuning beyond simply controlling a DC motor.