Team:Washington-Software/Project

{|align="justify"

Overall project
Proof of Principle Demo LegoRoboBricks for Automated Biobrick DNA Assembly    

BioBrick-A-Bot Model C is the prototype of an extensible Genomic Lab Liquid Handling System. We build it using Lego bricks, and it can be easily replicated by other iGEM teams and by researchers in Molecular Biology who cannot afford a typical, $10,000, commercial system. The design is modular plug-and-play, so that we can easily collaborate with future iGEM teams to modify or improve on its design and to add new functionalities.

BioBrick-A-Bot comprised of 2 LegoRoboBrick modules (ALPHA and PHI), mounted on a frame (BETA). Here’s what the acronyms means:


 * ALPHA – Automated Lego Pipette Head Assembly
 * PHI – Pneumatic Handling Interface
 * BETA – BioBrick Environment Testing Apparatus

This project needs great precision to position the pipette head accurately in 3-D space, and to transfer a few microliter of fluids. In order to achieve the much needed precision, we have replaced the Lego NXT firmware with RobotC firmware which provide floating point representations. RobotC also gives us the flexibility to develop sophisticated C programs needed to drive this project. The computations to reverse-triangulate any point in 3-D space is also non-trivial. We use 3x3 rotational matrix to simplify our mathematical modeling.

Due to a hardware limitation of Lego Minsdstorm, each NXT brick can only be connected to a maximum of 3 motors. We need 6 motors for this project, and use 2 NXT bricks. We designed and implemented a Master Slave Synchronization System using blue-tooth wireless technology. ALPHA is the master and when it is properly positioned at the right location, it will transmit wireless messages to PHI to request the type of pipette operations that it needs (either aspirate, dispense or clean).

We provide a proof of concept of this project by demonstrating the transfer of blue dyes, 4 at a time, from 1 side of the 96-well plate to the other.

Hardware

 * Lego Bricks (Lego Mindstorms NXT 2.0)
 * Commonly accessible industry standard

Firmware

 * RobotC (version 1.40)
 * Made in CMU Robotics Academy
 * Enables floating point precision

Software

 * ALPHA module (version 1.0)
 * Precise reverse triangulation using Rotational Matrix
 * Controller of Master-Slave Synchronization
 * Accurately positions pipette head
 * PHI module (version 1.0)
 * Pneumatic control to aspirate and dispense fluid
 * Compression pump to "air-clean" system

LegoRoboBrick Modules
This is BioBrick-A-Bot from a side and a front view.

Module ALPHA
ALPHA was created in August 21, 2009. It consists of three robot arms. Each arm consist of two arm segments as shown in the picture. One arm segment is referred as the control arm and is connected to the motor which controls entirely the joint. The other arm segment, referred as a linkage is loosely attached and moves in a sphere. The end of this attaches to the platform which holds the four pipette tips.



Two different ALPHA modules in action    
 * This video shows that the same code can be used for different physical instances of ALPHA. All instances of ALPHA are the same, except for 6 physical constants:
 * Top Offset
 * Bottom Offset
 * Control Arm Length
 * Linkage Arm Length
 * Inter-arm Angle
 * Gear Ratio

Module BETA
Technically, this is not a LegoRoboBrick. We call this a LegoEnviroBrick. In layman terms, this is just the chassis of the robot.

BETA provides the environment where the robot can move and conduct its task. It consists of a telescoping frame and a big lego plate under the stand. The telescoping frame is used for holding ALPHAs and PHIs, and the lego plate is where the 96-well plates and petri dishes are placed.

V1.0 uses two separate petri dishes. The first dish contains ethanol and is used for cleaning the pipette tip. The second dish contains water to clean the pipette tip before transferring DNA, enzymes, etc. between wells in the 96-well plate.

Module PHI
PHI is basically the pipette. PHI controls 3 pipette actions, Aspirate, Dispense and Clean. It consists of three motors whose functions are as follow PHI module in action   <param name="allowscriptaccess" value="always"> <embed src="http://www.youtube.com/v/WCM2kRFt-w4&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
 * Motor 1 (3-way Toggle switch)
 * This motor controls the flow of the air. If you look at it from the side when the switch is visible:
 * When the switch is to the left, there is a direct flow from the pipet head to the air. This makes it possible to use the second motor (motor B) to attempt to aspirate without aspirating any liquid, and enabling it to blow extra air out.
 * When the switch is in the middle, there is no connection.
 * When the switch is to the right, the pressure built up in the air tank is released into the pipette head.
 * Motor 2 (Aspirate or Dispense Liquid)
 * This motor is connected to a piston, so it can aspirate and dispense liquid.
 * Motor 3 (Clean Pipette)
 * This motor is connected to compressors compressing air in the air tank. It runs for seven seconds once the air is released.


 * This video shows Phi running by itself.

Current Functionality and Limitations
BioBrick-A-Bot V1.0 is only a proof-of-principle prototype. In its current implementation, it is not user-friendly enough to be used by a standard molecular biologist directly. In our current program, both ALPHA and PHI provides a set of primitive functions that can be called by a driver program. ALPHA has a command that allows the pipette head to move to any location and tell PHI to do an action. PHI has primitive functions for ASPIRATING, DISPENSING and CLEANING. In Version 1.0, we still need a programmer to write a driver program and hence it is not usable by a molecular biologist.

In the planned version 2.0, we will build a nice GUI where a molecular biologist can specify what they want to do, without the need of having a programmer to write the driver program. The cost of a typical commercial liquid handling system is about $10,000. The hardware cost of this project is only about $700. We have developed the primitive functions to show that the robot works. The rest of the work is software based, and will not increase the cost of the robot, if we provide it to the user community in the form of open-sourced programs. This project also provides an open framework, where other iGEMers can extend our current functionality and collaborate with us to further develop the user interface too. Hence, in subsequent years, the cost of the project will remain almost constant at $700, but it will have better and better software support.