The RKD Capstone was designed to incorporate many of the principles we learned over the semester to program a robot arm to build a Jenga tower six layers high. To accomplish this, we used analytical inverse kinematics to determine the joint angles of specific workspace coordinates, and used PID controllers to command the robot arm to travel to those joint angles.
It was recommended that we use analytical gravity compensation, using the Jacobian of the arm, in order to ensure that the arm goes to the specified joint angles. However, we found that a better solution was to simply offset the calculated joint angles slightly, in order to compensate for gravity. Our method was much more computationally effective than the analytical method.
For the checkpoint of the Capstone, we were given the task of laying three Jenga tiles in the correct position to form the base of the Jenga tower. Because we were only given a few days to accomplish this, we decided that we didn't have enough time to debug the inverse kinematics solution. we decided to manually train waypoints in joint space and repeat them. We did this by manually moving the arm to the desired position and recording the joint angles. By offsetting the recorded angles slightly, we were able to repeat the coordinates in the workspace and were able to complete the checkpoint.
For the final demo of the Capstone, we had to build all six layers of the Jenga tower. We decided that our checkpoint method would be impractical for 18 placement positions, so we debugged the analytical inverse kinematics to determine the joint angles of each of the workspace positions of the placement positions, which were known. We kept the joint angles of the placement position, however, because those were well-tuned.
Throughout the project, we had to tune the PID coefficients. In order to do this, we first set the Integral coefficient to 0, because we noticed that it was causing instability in the system. We then tuned the Proportional coefficient until the robot arm achieved the commanded positions, and tuned the Derivative coefficient until the arm moved more steadily.