Baxter Pick and Place Project

December 8, 2015

Overview

This was a group project for the ME495 Embedded Systems class at Northwestern. I worked with Rikki Irwin, Matt Cruz, and Ayush Sharma to develop a program for Rethink Robotic’s Baxter robot to let it autonomously detect object on a table, pick them up, and sort them into different containers.

Working on Baxter

Github

Here is the Github repo for the project The full project writeup is in the README.

Approach

Our approach to the problem was to detect the position of the objects using AR tags and control Baxter’s arm using inverse kinematics to position the gripper over the object.

Then, using the distance sensor in Baxter’s arm we use a simple feedback system to move the gripper to the object. This calculation uses a Cartesian trajectory to hold the orientation of the gripper vertical.

Once the object is grasped, the arm moves to one of two preset drop off locations determined by metadata in the object’s AR tag.

Nathan’s Work

Of course, we all contributed to the initial brainstorming and final debugging and refining of the programs, so it isn’t completely accurate to attribute specific pieces of code to certain people.

Still, my contribution to this project mostly focused on the fine movement feedback system. I mostly designed the move_to_laser.py node and focused mostly on the arm movement and distance feedback control.

Videos

Picking up one block:

Picking up 6 blocks in a row: