Conclusion
In the end, we were able to satisfy a many of our design constraints including:
Effective block-stacking algorithm capable of maintaining stability
Effective path planning and trajectory tracking using our Linear Trajectory controller
Safe movement of the Sawyer robot using our PID controller
Successful use of our feedback system to re-align blocks if necessary
Difficulties
Throughout our project, we faced a wide set of difficulties including:
Determining a suitable height to drop the block as to not accidentally knock over the tower in the process
Grabbing the next block to pick up at a proper orientation from the sides of the block rather than the corners
Large time delays between Sawyer movements
Determining good tolerance values for the PID controller as well as good error values
Inadequate lighting also led to faulty readings when the wrist camera attempted to scan the AR tags on top of our block
Improvements
Although we were happy with our results, there were some things we would change. If we were given more time to work on this project, we propose the following improvements:
Using blocks with different shapes to build towers with various input dimensions
The use of a pneumatic suction actuator to enhance accuracy and efficiency of pick-and-place, and allow us to place blocks directly next to each other to form some sort of pyramid shape.
Rather than simply re-picking and re-placing the top block when the tower is misaligned, it would be more efficient to recognize in what way the tower is misaligned, and to move appropriately.
Matching the orientation of the block itself rather than the AR Tag. This would allow us to pick the block more quickly, rather than rotating to an unnecessary position (ex: rotating to 180 degrees instead of 90 degrees, when both rotations work for a square block).