Brown Robotics Hackathon Jan 2012: Castle Builder


 

Objective:

PR2 building a castle with toy blocks! PR2 builds a toy block structure which is specified by a user as a 3D model through a canvas in web browser.
Installation and Usage:

 

 

Usage and Media:

Castle Builder Wiki: (on brown-ros-pkg repository): instructions for using ROS package

Flickr set: various images from the hackathon.

User interface: final web interface to the robot for block stacking using rosbridge/rosjs, Dojo, and WebGL

Final result video:

 

IMAG1127

Contributors:

  • Jihoon Lee
  • Jonathan Mace
  • Stephen Brawner
  • Christopher Crick
  • Arjun Arumbakkam
  • Trevor Jay

Advisor:

  • Chad Jenkins

 

 

Day 1-2: Organization and Design

Schedule:

Groups:

PIC Task Description
Jon Input Interface Web based user interface for specifying end pose of blocks
Stephen PR2 Manipulation Picking up blocks
Chris Action server and Main control loop Action server to play out pick and place actions
Jihoon, Arjun PR2 Manipulation and Documentation Placing blocks at designated pose

 

 

Interface Design:

Implemented using dojox.gfx

Click a box in the grid to add a block to that square on the table. The number assignment is incremented with each click. This was implemented by Jon using dojox.gfx

Lines of code written / Progress report:

 

 

Day 1 Pictures:

IMAG1043

IMAG1044

 

 Day 2 Pictures:

 

Day 2-3: Implementation and Progress

Progress report meeting:

PIC Progress notes
Jon Jon created an Input interface to specify block positions
Stephen Stephen made the Pr2 pick a block autonomously
Jihoon Jihoon Finalized entire system design and made a toy block builder
Chris Chris successfully mothered everyone through starting troubles
Arjun Arjun did documentation

 

Day 2/3 end. Summary report:

PIC Summary notes
Jon Jon worked on rosbridge with Trevor and created the manager for the whole project.
Stephen Stephen got the robot to move its arm to the home position and enabled cartesian control.
Jihoon Jihoon is working on placement strategies. He used cartesian control to make the robot arm to go to placement poses.

 

 

Day 3: Picking and Placing

Morning Progress report:

Basic Pick and Place is now successful.

Meeting minutes:

We discussed details about what state needs to be maintained by the system as a whole and how to distribute this state among nodes. The Manager node will now maintain state on the sequence of blocks to be picked up and manipulated from the block-holding area. The pick and place nodes will not maintain any state.

 

 

Day 3 Completion Video

 

Day 4: Closing the Deal

What was achieved on the final day:

Jon added 3D visualization of the blocks to the Input Interface. Jihoon adjusted the gripper release height to enable placing blocks in tightly packed formations on the table. Stephen enabled picking up blocks from a straight line.

The final video

IMAG1117

IMAG1111

IMAG1119



Epilogue: What goes up must come down