Team:Washington-Software

From 2009.igem.org

(Difference between revisions)
(Solution)
(Solution)
Line 92: Line 92:
#*''θ<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>)''
#*''θ<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 rotational matrixes
#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 rotational matrixes
-
#*     {''cos(φ<sub>2</sub>)    -sin(φ<sub>2</sub>)''}
+
#*                                       {''cos(φ<sub>2</sub>)    -sin(φ<sub>2</sub>)''}
-
#*''R<sub>1</sub>''=       >                   <
+
#*''R<sub>1</sub>''=                                                             >                                       <
-
#*     {''sin(φ<sub>2</sub>)      cos(φ<sub>2</sub>)''}
+
#*                                       {''sin(φ<sub>2</sub>)      cos(φ<sub>2</sub>)''}
-
#*     {''cos(φ<sub>3</sub>)    -sin(φ<sub>3</sub>)''}
+
#*                                       {''cos(φ<sub>3</sub>)    -sin(φ<sub>3</sub>)''}
-
#*''R<sub>2</sub>''=       >                   <
+
#*''R<sub>2</sub>''=                                                             >                                       <
-
#*     {''sin(φ<sub>3</sub>)      cos(φ<sub>3</sub>)''}
+
#*                                       {''sin(φ<sub>3</sub>)      cos(φ<sub>3</sub>)''}
==LegoRoboBrick Modules==
==LegoRoboBrick Modules==

Revision as of 04:14, 5 October 2009


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.
    • xo1 = TR - (BR + x)
    • xo1 = 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 xo1 changes sign in the good interval, we should use a trigonometric function that involves xo in the numerator. Thus,
    • θ12 = sin-1(xo1/D1)

    • θ1 = cos-1((D2 + CA2 - L2)/(2*D*CA)) - sin-1(xo1/D1)
  8. You just have to rotate the model φ1 degrees counterclockwise for θ2, and another φ2 degrees for θ3 using the rotational matrixes
    • {cos(φ2) -sin(φ2)}
    • R1= > <
    • {sin(φ2) cos(φ2)}
    • {cos(φ3) -sin(φ3)}
    • R2= > <
    • {sin(φ3) cos(φ3)}

LegoRoboBrick Modules

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

Past Robots


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.