Using a Baxter Robot with AR Tags to stack blocks into a Tower
In Baxter Builds a Tower, the end goal is to allow a Baxter robot to autonomously pick up toy blocks in any desired order and then stack them vertically to create a tower.
Baxter Builds a Tower is an interesting project because it combines both robust computer vision and good kinematics/path planning for success. In our traditional mechanical engineering training, we often deal with the latter instead of the former. Therefore, Baxter Builds a Tower is a very attractive project for us because we get the rare chance to work in both realms of robotics at once. In the course of this project, we had to overcome the limitations of off the shelf computer vision packages as well as the hardware limitations in Baxter’s end effector accuracy. We will discuss these issues in great detail in later sections.
The work developed in this project can be useful in car junkyards when cars arrive and need to be stacked/stored. Upon further extension, the work here can also aid in assembly line quality assurance tasks, such as removing defective products from an assembly line and storing them in a separate location for further processing. More importantly, Baxter playing with toy blocks is a great boon towards promoting STEM to the younger audience.
We break down the project into three parts, computer vision, robot system, and project integration. We first investigated in the feature of Baxter and AR Tags, and tried to use some technic which was learnt from EE 215A LAB sections. Then we started to integrate them into a system and tried to tunning some parameters to modify Baxter's performance.
To achieve the above, we decided to use AR Tags and ROS MoveIt pathplanner in order to manipulate toy blocks conveniently sold in various toy stores. We decided to use AR Tags to simplify the task of computer vision, but at the expense of only manipulating objects with large planar faces that can support an AR Tag. Moreover, we had to use cameras located on Baxter’s hand in order to perceive the toy blocks because the head-mounted camera is too far away to accurately detect AR Tags. Consequently, the robot workspace decreased accordingly because of the camera’s decreased field of view. Finally, we intelligently selected the location of toy blocks and arm motion trajectory to minimize the chance of toy block to robot collisions. By doing so, we can avoid importing CAD models of the environment to RVIZ and save on computation time in path planning.
The simplifying design choices made here probably would not suffice in the real world. The decision to use AR Tags definitely constrains the realistic sizes of objects we can manipulate with. Moreover, using hand-mounted cameras, instead of head-mounted or externally mounted, cameras definitely limits the workspace and forces us to be tied to platforms, like Baxter, with hand-mounted cameras. Finally, not allowing Baxter to be cognizant of its environment means that environments would have to be highly controlled and largely static, characteristics that are too idealized compared to the real world.
In this project, the hardware limitation leads to three different challenges.
To complete our project, we used the standard Baxter robotic platform with the suction actuator attachment. We manipulated with toy blocks that were 1.5” cubes and made of wood. On one face of each toy block, we adhered AR Tags to enable Baxter to uniquely identify each block.
The ROS framework is the software glue that ties all of the hardware together.
Baxter's path planning can be seperated into the following step:
The video below summarizes our work. Concisely, we successfully:
Compared to our original goals, we have completed most of our objectives except the ability to build more complicated structures, such as a house. This can be attributed to Baxter’s intrinsic positional inaccuracy in its arm which hinders its ability to place toy blocks in a structurally stable fashion.
Moreover, Baxter’s hand-mounted cameras exhibited a fish-eye effect which led to errors in perceiving the location of the AR Tags. This distortion could have been easily fixed by a proper calibration, but Baxter does not readily support such services.
If we had additional time, we would invest in an external camera solution to expand our viewable workspace as well as increase reliability in our sensing through properly calibrated cameras. Plus, we calibrated our robot towards a particular table height (i.e. the Cory 119 table) in order to keep our problem tractable. Future work should include robustness towards a variety of table heights.
Hsien-Chung Lin is a Mechanical Engineering student from Taiwan. His international student life began in Aug. 2013. Now he is exploring in the robot control research. He is a tall guy and loves playing basketball. He also likes to cook and hangout with friends.
Te Tang is a student from Mechanical Engineering Department, majored in Control. He is interested in everything that can automatically move. His small dream is to DIY a robot. His large dream is to start up a company which designs, produces and promotes robots, by the people, to the people, for the people.
Dennis Wai is a Mechanical Engineering student that is a little too interested in Electrical Engineering and Computer Science. He likes robots and often can be found volunteering with Pioneers in Engineering, a student group focused on delivering robotics experience to underserved Bay Area communities. For this other interests, you can check out his website.