Team:Washington-Software/Project

From 2009.igem.org

(Difference between revisions)
(LegoRoboBrick Modules)
(Module BETA)
 
(124 intermediate revisions not shown)
Line 1: Line 1:
-
{| style="color:Gold;background-color:#500050;" cellpadding="3" cellspacing="1" border="1" bordercolor="#fff" width="62%" align="center"
+
{{:Team:Washington-Software/Header|out|out|in}}
-
!align="center";style="border: none;" |[[Image:WashingtonColorSeal-21-clip.gif|50px]]
+
-
!align="center"; style="border: #6b0c6a outset 3px;" |[[Team:Washington-Software|<font color="gold">Home</font>]]
+
-
!align="center"; style="border: #6b0c6a outset 3px;" |[[Team:Washington-Software/Team|<font color="gold">Team</font>]]
+
-
!align="center"; style="border: #6b0c6a inset 3px;" |[[Team:Washington-Software/Project|<font color="gold">Project</font>]]
+
-
!align="center"; style="border: #6b0c6a outset 3px;" |[[Team:Washington-Software/Modeling|<font color="gold">Modeling</font>]]
+
-
!align="center"; style="border: #6b0c6a outset 3px;" |[[Team:Washington-Software/Notebook|<font color="gold">Notebook</font>]]
+
-
|}
+
 +
 +
{|align="justify"
 +
 +
==Overall project==
<html>
<html>
-
<head>
+
<body>
-
<style>
+
<font color="purple" size=6>Proof of Principle Demo</font><br><br>
-
#globalWrapper {
+
</html>'''LegoRoboBricks for Automated Biobrick DNA Assembly'''<html><br>
-
margin: 0px;
+
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FRijFX0BpGI&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FRijFX0BpGI&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
-
padding: 0px;
+
-
background-color:#500050;
+
-
}
+
-
#content{
+
-
background:#FFdd00;
+
-
border-left-color:#FFdd00;
+
-
border-right-color:#FFdd00;
+
-
}
+
-
#footer-box {
+
-
border-top-color:#FFdd00;
+
-
border-right-color:#FFdd00;
+
-
border-bottom-color:#FFdd00;
+
-
border-left-color:#FFdd00;
+
-
background:#FFdd00;
+
-
                }
+
-
        </style>
+
-
</head>
+
</html>
</html>
-
{|align="justify"
 
-
== '''Overall project''' ==
+
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.
-
<h4>'''LegoRoboBricks for Automated BioBrick Assembly'''</h4>
+
-
</td>
+
BioBrick-A-Bot comprised of 2 LegoRoboBrick modules (ALPHA and PHI), mounted on a frame (BETA). Here’s what the acronyms means:
-
<td> 
+
-
      <div align="right" class="youtube">
+
-
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Lqp5Ebsu8GQ&hl=ko&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Lqp5Ebsu8GQ&hl=ko&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
+
-
</div>
+
*ALPHA – Automated Lego Pipette Head Assembly
-
</td>
+
*PHI – Pneumatic Handling Interface
-
</tr>
+
*BETA – BioBrick Environment Testing Apparatus
-
</table>
+
-
</body>
+
-
</html> 
+
 +
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 [http://www.robotc.net/ 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 [[Team:Washington-Software/Modeling | mathematical modeling ]].
-
Commercial Liquid Handling Systems are extremely expensive (ususally over $10,000), and are typically beyond the reach of the average molecular biologist interested in performing high throughput methods. To address this problem, our project consists of the design and implementation of a liquid handling system built from commonly accessible Legos. We demonstrate a proof-of-principle use for this system to perform BioBrick assembly by transferring colored dye solutions on a 96-well plate.   
+
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 technologyALPHA 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 introduce a new concept called BioBrick-A-Bot.  The liquid handling system is built by designing and implementing 3 modular components: ALPHA (Automated Lego Pipette Head Assembly), BETA (BioBrick Environmental Testing Apparatus), and PHI (Pneumatic Handling Interface).  We will demonstrate that the same BioBrick assembly software can run on multiple plug-and-play LegoRoboBrick instances with different physical dimensions and geometric configurations. The modular design of LegoRoboBricks allows easy extension of new laboratory functionalities in the future as additional parts are developed and added to the main robot.
+
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.
==Project Summary==
==Project Summary==
===Hardware===
===Hardware===
-
*Lego Bricks
+
*Lego Bricks (Lego Mindstorms NXT 2.0)
**Commonly accessible industry standard
**Commonly accessible industry standard
 +
===Firmware===
===Firmware===
-
*RobotC
+
*RobotC (version 1.40)
**Made in CMU Robotics Academy
**Made in CMU Robotics Academy
**Enables floating point precision
**Enables floating point precision
===Software===
===Software===
-
*ALPHA module
+
*ALPHA module (version 1.0)
**Precise reverse triangulation using Rotational Matrix
**Precise reverse triangulation using Rotational Matrix
**Controller of Master-Slave Synchronization
**Controller of Master-Slave Synchronization
**Accurately positions pipette head
**Accurately positions pipette head
-
*PHI module
+
*PHI module (version 1.0)
-
**Pneumatic control to suck and dispense fluid
+
**Pneumatic control to aspirate and dispense fluid
**Compression pump to "air-clean" system
**Compression pump to "air-clean" system
-
 
==LegoRoboBrick Modules==
==LegoRoboBrick Modules==
-
This is BioBrick-A-Bot from a side view.
+
This is BioBrick-A-Bot from a side and a front view.
-
[[Image:Robot Side View.jpg|center]]
+
[[Image:Robot Side View.jpg|left|475px]]
-
 
+
[[Image:Robot Front View.jpg|right|475px]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><hr>
===Module ALPHA===
===Module ALPHA===
-
ALPHA stands for Automatic Lego Pipet Head Assembly. This module was created in August 21, 2009. It consists of three double-jointed arms as shown in the picture. One joint is referred as the control arm and is connected to the motor which controls entirely the joint. The other joint, 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.  
+
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.  
-
[[Image:alpha.jpg|thumb|right]]
+
[[Image:alpha.jpg|thumb|right|'''ALPHA''']]
-
*Videos
+
<html>
-
**<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/w3gM0UWEjjQ&hl=ko&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/w3gM0UWEjjQ&hl=ko&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
+
<body>
-
***This video shows that the module has high accuracy and precision. The stand is module Beta.
+
<font color="purple" size=6>Two different ALPHA modules in action</font><br><br>
-
**[http://www.youtube.com/watch?v=w3gM0UWEjjQ&feature=channel Two Robots]
+
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/w3gM0UWEjjQ&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/w3gM0UWEjjQ&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
-
 
+
</html>
-
***This video shows that the same code can be used for other versions of ALPHA. The only difference is 6 physical constants:
+
*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
+
*#Top Offset
-
***#Bottom Offset
+
*#Bottom Offset
-
***#Control Arm Length
+
*#Control Arm Length
-
***#Linkage Arm Length
+
*#Linkage Arm Length
-
***#Inter-arm Angle
+
*#Inter-arm Angle
-
***#Gear Ratio
+
*#Gear Ratio
-
**[http://www.youtube.com/watch?v=bsu2nNNU34g&feature=channel_page Old Video]
+
===Module BETA===
===Module BETA===
-
[[Image:beta.jpg|thumb|right]]
+
[[Image:beta.jpg|thumb|right|'''BETA''']]
-
BETA stands for Biobrick Environment Testing Apparatus.
+
Technically, this is not a LegoRoboBrick. We call this a LegoEnviroBrick. In layman terms, this is just the chassis of the robot.
-
As the name infers, this module provides the environment where the robot can move and  
+
 
 +
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.
conduct its task. It consists of a telescoping frame and a big lego plate under the stand.
-
The telescoping fram is used for holding ALPHAs and PHIs, and the lego plate is where the 96-well plates and petri dishes are placed.
+
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===
===Module PHI===
-
[[Image:phi.jpg|thumb|right]]
+
[[Image:phi.jpg|thumb|right|'''PHI''']]
-
PHI stands for Pneumatics Handling Interface.
+
PHI is basically the pipette. PHI controls 3 pipette actions, Aspirate, Dispense and Clean. It consists of three motors whose functions are as follow
-
This module is basically the pipette. It consists of three motors as following:
+
*Motor 1 (3-way Toggle switch)
-
**Motor A.
+
**This motor controls the flow of the air. If you look at it from the side when the switch is visible:
-
***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 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 suck without sucking 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 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.
-
****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)
-
**Motor B.
+
**This motor is connected to a piston, so it can aspirate and dispense liquid.
-
***This motor is connected to a piston, so it can suck and dispense liquid.
+
*Motor 3 (Clean Pipette)
-
**Motor C.
+
**This motor is connected to compressors compressing air in the air tank. It runs for seven seconds once the air is released.
-
***This motor is connected to to compressors compressing air in the air tank. It runs for 7 seconds once the air is released.
+
<html>
-
*Videos
+
<font color="purple" size=6>PHI module in action</font><br><br>
-
**[<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WCM2kRFt-w4&hl=ko&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/WCM2kRFt-w4&hl=ko&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>]
+
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WCM2kRFt-w4&hl=en&fs=1&color1=0xd4a017&color2=0xfdd017"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><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"></embed></object>
-
***This video shows Phi running by itself.
+
-
 
+
 +
</html>
-
<!--- The Mission, Experiments --->
+
*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.
-
(''Or you can choose different headings. But you must have a team page, a project page, and a notebook page.'')
+
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.

Latest revision as of 01:33, 22 October 2009

WashingtonColorSeal-21-clip.gif Home Team Project Modeling Notebook Challenges Miscellaneous


Contents

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 [http://www.robotc.net/ 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.

Project Summary

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.

Robot Side View.jpg
Robot Front View.jpg





















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.

ALPHA


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:
    1. Top Offset
    2. Bottom Offset
    3. Control Arm Length
    4. Linkage Arm Length
    5. Inter-arm Angle
    6. Gear Ratio

Module BETA

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

PHI is basically the pipette. PHI controls 3 pipette actions, Aspirate, Dispense and Clean. It consists of three motors whose functions are as follow

  • 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.

PHI module in action

  • 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.