Team:Washington-Software

From 2009.igem.org

(Difference between revisions)
(Solution)
 
(83 intermediate revisions not shown)
Line 1: Line 1:
-
<!--- The Mission, Experiments --->
+
{{:Team:Washington-Software/Header|in}}
-
{| style="color:#1b2c8a;background-color:#0c6;" cellpadding="3" cellspacing="1" border="1" bordercolor="#fff" width="62%" align="center"
+
<h2> Abstract </h2>
-
!align="center"|[[Team:Washington-Software|Home]]
+
-
!align="center"|[[Team:Washington-Software/Team|The Team]]
+
-
!align="center"|[[Team:Washington-Software/Project|The Project]]
+
-
!align="center"|[[Team:Washington-Software/Parts|Parts Submitted to the Registry]]
+
-
!align="center"|[[Team:Washington-Software/Modeling|Modeling]]
+
-
!align="center"|[[Team:Washington-Software/Notebook|Notebook]]
+
-
|}
+
-
(''Or you can choose different headings.  But you must have a team page, a project page, and a notebook page.'')
+
-
==Abstract==
+
<h4>'''BioBrick-A-Bot: Lego Robot for Automated BioBrick DNA Assembly'''</h4>
-
<big>'''LegoRoboBricks for Automated BioBrick Assembly'''</big>
+
[[Image:Robot Close Up.jpg|thumb|right|'''BioBrick-A-Bot''']]
-
Commercial Liquid Handling Systems are extremely expensive, 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.   
+
Commercial Liquid Handling Systems are extremely expensive, and are typically beyond the reach of the average molecular biologist interested in performing high throughput methods.  To address this problem, we design and implement a liquid handling system built from commonly accessible Legos. Our goal is the automation of BioBrick assembly on a platform that can itself be easily replicated and we demonstrate a proof-of-principle for this system by transferring colored dye solutions on a 96-well plate. We introduce a new concept called LegoRoboBrickThe liquid handling system is build from 3 new LegoRoboBrick 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.
-
We introduce a new concept called LegoRoboBrick.  The liquid handling system is build by designing and implementing 3 LegoRoboBrick 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.
+
<h2> Project Goals </h2>
 +
#Low Cost – Robot cost significantly lower than $10,000, the price of a commercial liquid handling robot. (Actual cost of BioBrick-a-Bot prototype: ~$700)
 +
#Hardware Platform that is easily accessible.
 +
#Hardware Design that is easily replicable by other iGEM teams.
 +
#Software Design that is robust, plug and play. Can swap modules from other iGEM teams.
 +
#Design that is easily extensible, to allow future collaboration with other iGEM teams.
-
==Project Goals==
+
<h2> The Vision </h2>
-
*Implement a simple and cheap way to handle liquids in normal genome lab operations(portable genomic science lab)
+
-
*Only uses lego mindstorm bricks
+
-
*Document entire process so it can easily be replicated
+
-
==Project Summary==
+
[[Image:LegoRoboBrick.jpg|315px|left]][[Image:LegoRoboBrick2.jpg|315px|left]][[Image:LegoRoboBricks.jpg|313px|right]]
-
===Hardware===
+
-
*Lego Bricks
+
-
**Commonly accessible industry standard
+
-
===Firmware===
+
-
*RobotC
+
-
**Made in CMU Robotics Academy
+
-
**Enables floating point precision
+
-
===Software===
+
-
*ALPHA module
+
-
**Precise reverse triangulation using Rotational Matrix
+
-
**Controller of Master-Slave Synchronization
+
-
**Accurately positions pipette head
+
-
*PHI module
+
-
**Pneumatic control to suck and dispense fluid
+
-
**Compression pump to "air-clean" system
+
-
==Mathematical Modeling==
+
-
===Alpha===
+
-
====Problem====
+
-
Given the following construction and point ''p'', or (''x'',''y'',''z'') find the angles ''θ<sub>1</sub>'', ''θ<sub>2</sub>'', and ''θ<sub>3</sub>''.
+
-
Note that positive ''z'' is the down direction.
+
<h2> Acknowledgements </h2>
-
====Constants====
+
Our iGEM project is sponsored by the [http://depts.washington.edu/bioe/ BioEngineering Department] at the [http://www.washington.edu/ University of Washington]
-
*''TR''
+
-
**Top radius
+
-
*''BR''
+
-
**Bottom radius
+
-
*''L''
+
-
**Linkage
+
-
*''CA''
+
-
**Control Arm
+
-
*''φ<sub>1</sub>'' and ''φ<sub>2</sub>''
+
-
**Two angles
+
-
====Construction====
+
[[Image:bioelogo.jpg]]
-
From the top to the bottom:
+
-
*A circle centered at the origin with radius ''TR'', named ''O''
+
-
*Make three lines ''A<sub>1</sub>'', ''A<sub>2</sub>'', and ''A<sub>3</sub>'' such that:
+
-
**The lines ''A<sub>x</sub>'' are perpendicular to a tangent of ''O'' and a radius of ''O'',
+
-
**The angle between the radii of ''A<sub>1</sub>'' and ''A<sub>2</sub>'' is ''φ<sub>1</sub>'', and
+
-
**The angle between the radii of ''A<sub>2</sub>'' and ''A<sub>3</sub>'' is ''φ<sub>2</sub>''.
+
-
*Make a circle centered at point ''p'' with radius ''BR'', named ''P''
+
-
*Find three points ''P<sub>1</sub>'', ''P<sub>2</sub>'', and ''P<sub>3</sub>'' such that:
+
-
**They are on the circumference of ''P'',
+
-
**The angle between the radius which touches ''P<sub>1</sub>'' and the radius that touches ''P<sub>2</sub>'' is ''φ<sub>1</sub>'',
+
-
**The angle between the radius which touches ''P<sub>2</sub>'' and the radius that touches ''P<sub>3</sub>'' is ''φ<sub>2</sub>'',
+
-
**The ray from the center of ''P'' to ''P<sub>x</sub>'' is parallel to the ray from the center of ''O'' to the point which is on ''A<sub>x</sub>'' and ''O'' 's circumference, for all ''x''.
+
-
*Construct three line segments ''CA<sub>1</sub>'', ''CA<sub>2</sub>'', and ''CA<sub>3</sub>'' such that:
+
-
**''CA<sub>x</sub>'' is in the same plane as ''A<sub>x</sub>'', for all ''x'', and
+
-
**The angle between ''CA<sub>x</sub>'' and ''A<sub>x</sub>'' is ''θ<sub>x</sub>'', for all ''x''.
+
-
*The distance between ''P<sub>x</sub>'' and the end point of ''CA<sub>x</sub>'' that is not on ''A<sub>x</sub>'' is ''L'', for all ''x''.
+
-
====Solution====
+
[[Image:uw_logo.jpg]]
-
#Note that the control arms can only move in a circle, while linkage can move in a sphere.
+
-
#We will calculate ''θ<sub>1</sub>'' first, which only involves the points, circles and lines ''p'', ''CA<sub>1</sub>'', ''A<sub>1</sub>'', and ''P<sub>1</sub>''.
+
-
#Find the plane where ''CA<sub>1</sub>'' 's circle resides in. Use it to cut the sphere around ''P<sub>1</sub>''. For future reference, call ''CA<sub>1</sub>'' 's circle ''C<sub>1</sub>'' and the circle resulting from the cut ''C<sub>2</sub>''
+
-
#Define ''x<sub>o<sub>1</sub></sub>'', for x offset, for the difference in the ''x'' coordinates of the center of ''C<sub>1</sub>'' and the point ''P<sub>1</sub>''.
+
-
#*''x<sub>o<sub>1</sub></sub> = TR - (BR + x)''
+
-
#*''x<sub>o<sub>1</sub></sub> = TR - BR - x''
+
-
#Define ''D<sub>1</sub>'' to be the distance between the center of ''C<sub>1</sub>'' and ''C<sub>2</sub>''. It will also be the line connecting the centers.
+
-
#*''D<sub>1</sub> = sqrt(x<sub>1</sub><sup>2</sup> + z<sup>2</sup>)''
+
-
#Obviously, ''D<sub>1</sub>'', ''CA<sub>1</sub>'', and linkage form a triangle. The angle between ''CA<sub>1</sub>'' and ''D<sub>1</sub>'' is a close approximation to ''θ<sub>1</sub>'', but it is not exact. We will call this angle ''θ<sub>1<sub>1</sub></sub>''. We use the law of cosines to calculate ''θ<sub>1<sub>1</sub></sub>''.
+
-
#*''L<sup>2</sup> = CA<sup>2</sup> + D<sup>2</sup> - CA * D * cos(θ<sub>1<sub>1</sub></sub>)''<br><br>
+
-
#*''θ<sub>1<sub>1</sub></sub> = cos<sup>-1</sup>((D<sup>2</sup> + CA<sup>2</sup> - L<sup>2</sup>)/(2*D*CA))''<br><br>
+
-
#One endpoint of ''D<sub>1</sub>'' is on ''A<sub>1</sub>''. Thus, we can make another triangle, and the angle between ''D<sub>1</sub>'' and ''A<sub>1</sub>'' is the difference between ''θ<sub>1</sub>'' and ''θ<sub>1<sub>1</sub></sub>''. We will call this angle ''θ<sub>1<sub>2</sub></sub>''. If we have the length of the side on ''A<sub>1</sub>'' be ''z'', then the last side will be ''x<sub>o</sub>'' and the triangle will be a right angle triangle. Since only ''x<sub>o<sub>1</sub></sub>'' changes sign in the good interval, we should use a trigonometric function that involves ''x<sub>o</sub>'' in the numerator. Thus,
+
-
#*''θ<sub>1<sub>2</sub></sub> = sin<sup>-1</sup>(x<sub>o<sub>1</sub></sub>/D<sub>1</sub>)''<br><br>
+
-
#*''θ<sub>1</sub> = cos<sup>-1</sup>((D<sup>2</sup> + CA<sup>2</sup> - L<sup>2</sup>)/(2*D*CA)) - sin<sup>-1</sup>(x<sub>o<sub>1</sub></sub>/D<sub>1</sub>)''
+
-
#You just have to rotate the model ''φ<sub>1</sub>'' degrees counterclockwise for ''θ<sub>2</sub>'', and another ''φ<sub>2</sub>'' degrees for ''θ<sub>3</sub>'' using the two dimensional rotational matrixes
+
-
    {''cos(φ<sub>2</sub>),-sin(φ<sub>2</sub>)''}
+
-
''R<sub>1</sub>''= >              <
+
-
    {''sin(φ<sub>2</sub>)  cos(φ<sub>2</sub>)''}
+
-
 
+
-
    {''cos(φ<sub>3</sub>) -sin(φ<sub>3</sub>)''}
+
-
''R<sub>2</sub>''= >              <
+
-
    {''sin(φ<sub>3</sub>)  cos(φ<sub>3</sub>)''}
+
-
 
+
-
==LegoRoboBrick Modules==
+
-
[[Image:RobotAlphaBetaPhi.jpg|thumb|right|Alpha module is at the top left, Phi module is at top right, Beta module is the rest of the robot.]]
+
-
===Module ALPHA===
+
-
ALPHA stands for Automatic Lego Pipet Head Assembly.
+
-
*Created 8/21/2009
+
-
*Consists of 3 double-jointed arms.
+
-
**One joint is connected to the motor, and is controlled entirely by the motor. This is also referred to as the control arm.
+
-
**The other joint moves in a sphere, and is loose. The end of this attaches to the platform which holds the pipet tip. This is referred to as linkage.
+
-
*Videos
+
-
**[http://www.youtube.com/watch?v=Lqp5Ebsu8GQ&feature=channel Robot in Action]
+
-
***This video shows that the module has high accuracy and precision. The stand is module Beta.
+
-
**[http://www.youtube.com/watch?v=w3gM0UWEjjQ&feature=channel Two Robots]
+
-
***This video shows that the same code can be used for other versions of ALPHA. The only difference is 6 physical constants:
+
-
***#Top Offset
+
-
***#Bottom Offset
+
-
***#Control Arm Length
+
-
***#Linkage Arm Length
+
-
***#Inter-arm Angle
+
-
***#Gear Ratio
+
-
**[http://www.youtube.com/watch?v=bsu2nNNU34g&feature=channel_page Old Video]
+
-
 
+
-
===Module BETA===
+
-
BETA stands for Biobrick Enviroment Testing Apparatus.
+
-
*Consists of a telescoping frame, and a big lego plate.
+
-
**The telescoping frame is used for holding ALPHAs and PHIs.
+
-
**the big lego plate is where you put the 96-well plates and petri dishes.
+
-
 
+
-
===Module PHI===
+
-
PHI stands for Pneumatics Handling Interface.
+
-
*PHI is the pipette. It consists of three motors.
+
-
**Motor A.
+
-
***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 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 to the right, the pressure built up in the air tank is released into the pipette head.
+
-
**Motor B.
+
-
***This motor is connected to a piston, so it can suck and dispense liquid.
+
-
**Motor C.
+
-
***This motor is connected to to compressors compressing air in the air tank. It runs for 7 seconds once the air is released.
+
-
*Videos
+
-
**[http://www.youtube.com/watch?v=WCM2kRFt-w4&feature=channel_page Phi in action]
+
-
***This video shows Phi running by itself.
+
-
 
+
-
==Past Robots==
+
-
[[Team:Washington-Software/Past Robots|Past Robots]]
+
-
 
+
-
<!-- *** What falls between these lines is the Alert Box!  You can remove it from your pages once you have read and understood the alert *** -->
+
-
 
+
-
<html>
+
-
<div id="box" style="width: 700px; margin-left: 137px; padding: 5px; border: 3px solid #000; background-color: #fe2b33;">
+
-
<div id="template" style="text-align: center; font-weight: bold; font-size: large; color: #f6f6f6; padding: 5px;">
+
-
This is a template page. READ THESE INSTRUCTIONS.
+
-
</div>
+
-
<div id="instructions" style="text-align: center; font-weight: normal; font-size: small; color: #f6f6f6; padding: 5px;">
+
-
You are provided with this team page template with which to start the iGEM season.  You may choose to personalize it to fit your team but keep the same "look." Or you may choose to take your team wiki to a different level and design your own wiki.  You can find some examples <a href="https://2009.igem.org/Help:Template/Examples">HERE</a>.
+
-
</div>
+
-
<div id="warning" style="text-align: center; font-weight: bold; font-size: small; color: #f6f6f6; padding: 5px;">
+
-
You <strong>MUST</strong> have a team description page, a project abstract, a complete project description, and a lab notebook.  PLEASE keep all of your pages within your teams namespace. 
+
-
</div>
+
-
</div>
+
-
</html>
+
-
 
+
-
<!-- *** End of the alert box *** -->
+

Latest revision as of 02:25, 22 October 2009

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

Contents

Abstract

BioBrick-A-Bot: Lego Robot for Automated BioBrick DNA Assembly

BioBrick-A-Bot

Commercial Liquid Handling Systems are extremely expensive, and are typically beyond the reach of the average molecular biologist interested in performing high throughput methods. To address this problem, we design and implement a liquid handling system built from commonly accessible Legos. Our goal is the automation of BioBrick assembly on a platform that can itself be easily replicated and we demonstrate a proof-of-principle for this system by transferring colored dye solutions on a 96-well plate. We introduce a new concept called LegoRoboBrick. The liquid handling system is build from 3 new LegoRoboBrick 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.

Project Goals

  1. Low Cost – Robot cost significantly lower than $10,000, the price of a commercial liquid handling robot. (Actual cost of BioBrick-a-Bot prototype: ~$700)
  2. Hardware Platform that is easily accessible.
  3. Hardware Design that is easily replicable by other iGEM teams.
  4. Software Design that is robust, plug and play. Can swap modules from other iGEM teams.
  5. Design that is easily extensible, to allow future collaboration with other iGEM teams.

The Vision

LegoRoboBrick.jpg
LegoRoboBrick2.jpg
LegoRoboBricks.jpg

Acknowledgements

Our iGEM project is sponsored by the [http://depts.washington.edu/bioe/ BioEngineering Department] at the [http://www.washington.edu/ University of Washington]

Bioelogo.jpg

Uw logo.jpg