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
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:
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:
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

























