Team:Washington-Software

From 2009.igem.org

(Difference between revisions)
(Construction)
(Solution)
Line 118: Line 118:
#*''D<sub>1</sub> = sqrt(x<sub>1</sub><sup>2</sup> + z<sup>2</sup>)''
#*''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>''.
#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>)''
+
#*''L<sup>2</sup> = CA<sup>2</sup> + D<sup>2</sup> - CA * D * cos(θ<sub>1<sub>1</sub></sub>)''<br>
-
#*''θ<sub>1<sub>1</sub></sub> = acos((D<sup>2</sup> + CA<sup>2</sup> - L<sup>2</sup>)/(2*D*CA))''
+
#*''θ<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>
-
#One endpoint of ''D<sub>1</sub>'' is on ''A<sub>1</sub>''. Thus, we can make another triangle. If we have the length
+
#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>'' 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>/D<sub>1</sub>)''<br>
 +
#*''θ = 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>/D<sub>1</sub>)''
==LegoRoboBrick Modules==
==LegoRoboBrick Modules==

Revision as of 03:20, 5 October 2009


This is a template page. READ THESE INSTRUCTIONS.
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 HERE.
You MUST 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.



You can write a background of your team here. Give us a background of your team, the members, etc. Or tell us more about something of your choosing.
Example logo.png

Tell us more about your project. Give us background. Use this is the abstract of your project. Be descriptive but concise (1-2 paragraphs)

Your team picture
Team Example


Home The Team The Project Parts Submitted to the Registry Modeling Notebook

(Or you can choose different headings. But you must have a team page, a project page, and a notebook page.)

Contents

Abstract

LegoRoboBricks for Automated BioBrick Assembly

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.

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.

Project Goals

  • 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

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 θ1, θ2, and θ3.

Note that positive z is the down direction.

Constants

  • TR
    • Top radius
  • BR
    • Bottom radius
  • L
    • Linkage
  • CA
    • Control Arm
  • φ1 and φ2
    • Two angles

Construction

From the top to the bottom:

  • A circle centered at the origin with radius TR, named O
  • Make three lines A1, A2, and A3 such that:
    • The lines Ax are perpendicular to a tangent of O and a radius of O,
    • The angle between the radii of A1 and A2 is φ1, and
    • The angle between the radii of A2 and A3 is φ2.
  • Make a circle centered at point p with radius BR, named P
  • Find three points P1, P2, and P3 such that:
    • They are on the circumference of P,
    • The angle between the radius which touches P1 and the radius that touches P2 is φ1,
    • The angle between the radius which touches P2 and the radius that touches P3 is φ2,
    • The ray from the center of P to Px is parallel to the ray from the center of O to the point which is on Ax and O 's circumference, for all x.
  • Construct three line segments CA1, CA2, and CA3 such that:
    • CAx is in the same plane as Ax, for all x, and
    • The angle between CAx and Ax is θx, for all x.
  • The distance between Px and the end point of CAx that is not on Ax is L, for all x.

Solution

  1. Note that the control arms can only move in a circle, while linkage can move in a sphere.
  2. We will calculate θ1 first, which only involves the points, circles and lines p, CA1, A1, and P1.
  3. Find the plane where CA1 's circle resides in. Use it to cut the sphere around P1. For future reference, call CA1 's circle C1 and the circle resulting from the cut C2
  4. Define xo1, for x offset, for the difference in the x coordinates of the center of C1 and the point P1.
    • xo = TR - (BR + x)
    • xo = TR - BR - x
  5. Define D1 to be the distance between the center of C1 and C2. It will also be the line connecting the centers.
    • D1 = sqrt(x12 + z2)
  6. Obviously, D1, CA1, and linkage form a triangle. The angle between CA1 and D1 is a close approximation to θ1, but it is not exact. We will call this angle θ11. We use the law of cosines to calculate θ11.
    • L2 = CA2 + D2 - CA * D * cos(θ11)
    • θ11 = cos-1((D2 + CA2 - L2)/(2*D*CA))
  7. One endpoint of D1 is on A1. Thus, we can make another triangle, and the angle between D1 and A1 is the difference between θ1 and θ11. We will call this angle θ12. If we have the length of the side on A1 be z, then the last side will be xo and the triangle will be a right angle triangle. Since only xo changes sign in the good interval, we should use a trigonometric function that involves xo in the numerator. Thus,
    • θ12 = sin-1(xo/D1)
    • θ = cos-1((D2 + CA2 - L2)/(2*D*CA)) - sin-1(xo/D1)

LegoRoboBrick Modules

Just like BioBricks are genes that can be connected to make a product, LegoRoboBricks are robot modules that can be connected to make a Genomics Lab System.

File:RobotAlphaBetaPhi.jpg
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.
    • The other joint moves in a sphere, and is loose. The end of this attaches to the platform which holds the pipet tip.
  • 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:
        1. Top Offset
        2. Bottom Offset
        3. Control Arm Length
        4. Linkage Arm Length
        5. Inter-arm Angle
        6. Gear Ratio
    • [http://www.youtube.com/watch?v=bsu2nNNU34g&feature=channel_page Old Video]

Module BETA

BETA stands for Biobrick Envioroment 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

Past Robots