Robotics Engineering 3001
Controls
Final project video
In this amazing, yet hard, RBE class we coded a 4-DOF robotic arm from the ground up. We started with a simple forward kinematics. Then we added inverse kinematics, which was a bit more challenging. After that we implemented the Jakubian (not a Jacobian typo!) along with cubic and quintic trajectory planning. It was a time and brain demanding yet incredibly rewarding experience. With a great team most of it was quite enjoyable and now I posses the knowledge of how to control an n-DOF robotic arm.

Our 4-DOF OpenManipulator-X arm, checkerboard, and camera setup
The final challenge was to make the arm sort colored balls. We used a camera to detect the balls' location, size, and color, applying basic computer vision techniques. This involved applying an HSV filter to isolate a single color and a series of filters: dilation, erosion, and median filtering. To find the ball centroids the MATLAB function imfindcircles() was used. Thanks to prior work on control algorithms for the robotic arm, the rest of the task was relatively straightforward. We employed the inverse kinematics to guide the arm to the target ball, grab it, and deliver it accurately to its intended destination.

Computer vision classified balls

For simulation purposes and debugging, our robot had a digital twin

My team working in the lab
IEEE project paper