In the course, RBE 3001 - Manipulation, I worked with a team of three other students to program a 4-DOF (Degree of Freedom) Robotic Arm so that it could complete a pick and place routine. The robot would identify the color of plastic balls placed in its work area and then sort them. This required the use of forward and inverse kinematics to determine where the arm would move as well as quintic trajectories to make the arm move well. We completed the programming in MATLAB due to its native handling of matrices.
This was a highly technical project, and I learned a lot about the design of control schemes in robotics and kinematics necessary to move them. The specifics about how we calculated the matrices are in the report attached below.
One of things I noticed when making the robot was that if it missed a ball it would go through the entire routine of sorting it, even though it had failed to pick it up. To alleviate this waste of time, I looked through the motor’s specifications and found that it had current feedback. So, I implemented a check where the robot would see if the current was above a certain threshold, meaning it was holding a ball, and if it wasn’t it would move on to the next ball. This worked very well and saved us a lot of time!