top of page
  • Writer's pictureMason Mitchell

Real-Time Object Detection and Sorting using Inverse Kinematic Control of a 3-DOF Arm

Updated: Oct 2, 2023

This final project was the culmination of the WPI RBE3001 course and exhibited applications of position/velocity forward and inverse kinematics, robot dynamics and control, trajectory generation, camera calibration, and vision-based tracking. The focus was on camera calibration, which included both extrinsic and intrinsic calculations, as well as object detection and localization. The robotic arm was able to correctly identify the quantity and color of various balls placed on the field, accurately pick them up, and sort them according to color. There was also dynamic tracking implementation, where the arm could instantaneously move to a ball’s position as the ball is moved around the workspace.

Combining trajectory generation techniques and differential kinematics with camera vision, we implemented a robotic arm capable of identifying, picking up, and sorting various colored balls. Computer vision was incorporated to identify target balls in the workspace, transform the location of the ball with respect to the robot base frame from the camera frame, generate a trajectory to the ball, grab it, and sort the ball according to its color. This lab allowed practice with various concepts learned in class and built upon the work done in previous labs to create a dynamic and robust program. In addition to sorting, the robotic arm was also capable of performing object following. It instantaneously followed the ball’s location in the workspace with speed and accuracy wherever the ball was moved. Lastly, the arm could even pick up a random object, in this case, a Dasani water bottle cap.

Fig. 1: Ball sorting. 1. Initial state 2. Sorting in progress 3. Finished sorting, and final state

Fig. 2: Dynamic Ball Following. 1. Initial state, ball just placed 2. Arm moves above point

Fig. 3: Random Object Handling. 1. Initial state 2. Handling in progress 3. Finished handling, and final state


bottom of page