Baxter from Rethink Robotics is an robot platform that Te Tang, Hsien Chung Lin, and I worked on so that we can detect toy blocks and then stack them. Powered by ROS, AprilTags and some elbow grease, we successfully implemented block stacking on Baxter. The following slideshow will provide overviews and problem resolutions for our project.

Populated board
Motor controller
IO Board

Baxter needs its toy blocks resting on a flat surface about 3 feet away from its head. Each of the toy blocks (a 1 inch cube) is prelabeled with a AprilTag for unique identification. Then, Baxter will follow a preprogrammed kinematic path to stack the blocks.

Biker Inputting Query Biker Inputting Query iPhone pop up notification when STL is true
Starting configuration. Baxter and a set of blocks placed in front of it
Screenshot of what Baxter can 'see' with the power of AprilTags
End configuration. Baxter have succesfully stacked more than 5 blocks! (Record is 14)

For a full discussion on our project, check out our code on Github and our project website.

Go Bears!
We bought many toy blocks for this project.