Team:Washington-Software
From 2009.igem.org
(→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>)''} |
- | #*''R<sub>1</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>''= | + | #*''R<sub>2</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
- Note that the control arms can only move in a circle, while linkage can move in a sphere.
- We will calculate θ1 first, which only involves the points, circles and lines p, CA1, A1, and P1.
- 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
- 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
- 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)
- 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))
- L2 = CA2 + D2 - CA * D * cos(θ11)
- 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)
- θ12 = sin-1(xo1/D1)
- 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
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
- This video shows that the same code can be used for other versions of ALPHA. The only difference is 6 physical constants:
- [http://www.youtube.com/watch?v=bsu2nNNU34g&feature=channel_page Old Video]
- [http://www.youtube.com/watch?v=Lqp5Ebsu8GQ&feature=channel Robot in Action]
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.
- This motor controls the flow of the air. If you look at it from the side when the switch is visible:
- 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.
- Motor A.
- Videos
- [http://www.youtube.com/watch?v=WCM2kRFt-w4&feature=channel_page Phi in action]
- This video shows Phi running by itself.
- [http://www.youtube.com/watch?v=WCM2kRFt-w4&feature=channel_page Phi in action]
Past Robots