In conclusion, the goal of our project was successfully achieved, we used the Sawyer robot to solve the Rubik's cube. For the hardware aspect, we assembled the designed CAD base, camera, and the tripod together by using a piece of wood. This creates more space available than using a desk. For the software aspect, we have achieved precise control of the rotation angle, so that each rotation can be accurately controlled at 90 degrees. For the vision part, we can basically realize the color recognition of each face of the Rubik's cube. All in all, our finished solution meets our design criteria.
We could not achieve 90 degrees turning at the beginning. The Sawyer robot arm would swing around when it rotated, so it was hard to make a precise 90-degree turn. In order to solve this problem, we adjusted the position parameters for a long time, and finally solved the problem with the aid of the hardware.
In the lab room, we have difficulty with computer vision, where there is no clear background for clean edge detection. As you see in the demo video, we place a piece of paper behind the cube for a better background.
The lighting in the lab room is hard for color classfication. Therefore, we change some of the color for the cube for higher accuracy.
Our robot can only grab the Rubik's cube from two sides, but cannot grab from the front or back, which leads to a longer time to solve the Rubik's cube. Using another robot or finding a better location for the base can address this problem.
The localization of the base can be modified. In our project, the position of solving the Rubik's cube has to be adjusted every time. Using the AR tag or other object detection methods, the robot can automatically recognize the position of the Rubik's cube.