|
| 1 | +"""Resource definitions for the platecrane in BIO 350.""" |
| 2 | + |
| 3 | +from resource_helpers.resource_types import PlateResource, SciClopsLocation |
| 4 | + |
| 5 | +# Locations accessible by the PlateCrane EX. [R (base), Z (vertical axis), P (gripper rotation), Y (arm extension)] |
| 6 | + |
| 7 | +# Locations accessible by the SciClops. [Z (vertical axis), P (gripper rotation), Y (arm extension)] |
| 8 | + |
| 9 | +# NOTE: THIS IS NOT THE SAME ORDER AS THE PLATE CRANE! |
| 10 | + |
| 11 | +# NOTE: Running get location in the SciClops won't return the values in the right order! |
| 12 | + |
| 13 | +locations = { |
| 14 | + "Safe": SciClopsLocation( |
| 15 | + name="Safe", |
| 16 | + joint_angles={"Z": 23.5188, "R": 109.2741, "Y": 32.7484, "P": 98.2955}, |
| 17 | + location_type="nest", |
| 18 | + safe_approach_height=0, |
| 19 | + ), |
| 20 | + "Stack1": SciClopsLocation( |
| 21 | + name="Stack1", |
| 22 | + joint_angles={"Z": -397.1688, "R": 137.1106, "Y": 173.0127, "P": 9.6875}, |
| 23 | + location_type="stack", |
| 24 | + safe_approach_height=0, |
| 25 | + ), |
| 26 | + "Stack2": SciClopsLocation( |
| 27 | + name="Stack2", |
| 28 | + joint_angles={"Z": -397.2875, "R": 154.9712, "Y": 172.5352, "P": 9.6875}, |
| 29 | + location_type="stack", |
| 30 | + safe_approach_height=0, |
| 31 | + ), |
| 32 | + "LidNest1": SciClopsLocation( |
| 33 | + name="LidNest1", |
| 34 | + joint_angles={"Z": -386.8563, "R": 173.1300, "Y": 26.1751, "P": 10.3409}, |
| 35 | + location_type="nest", |
| 36 | + safe_approach_height=0, |
| 37 | + ), |
| 38 | + "Home": SciClopsLocation( |
| 39 | + name="Home", |
| 40 | + joint_angles={"Z": -1.0188, "R": 0.0, "Y": 0.0, "P": -0.0284}, |
| 41 | + location_type="stack", |
| 42 | + safe_approach_height=0, |
| 43 | + ), |
| 44 | +} |
| 45 | + |
| 46 | + |
| 47 | +# OLD PLATE DEFINITIONS |
| 48 | +# # Dictionary for plate information |
| 49 | +# locations = { |
| 50 | +# "stack1": { |
| 51 | +# "pos": {"Z": -397.1688, "R": 137.1106, "Y": 173.0127, "P": 9.6875}, |
| 52 | +# "type": "stack", |
| 53 | +# }, |
| 54 | +# "stack2": { |
| 55 | +# "pos": {"Z": -397.2875, "R": 154.9712, "Y": 172.5352, "P": 9.6875}, |
| 56 | +# "type": "stack", |
| 57 | +# }, |
| 58 | +# "stack3": { |
| 59 | +# "pos": {"Z": -397.3563, "R": 173.0506, "Y": 172.7398, "P": 9.6875}, |
| 60 | +# "type": "stack", |
| 61 | +# }, |
| 62 | +# "stack4": { |
| 63 | +# "pos": {"Z": -396.1000, "R": 191.1141, "Y": 172.4918, "P": 9.6875}, |
| 64 | +# "type": "stack", |
| 65 | +# }, |
| 66 | +# "stack5": { |
| 67 | +# "pos": {"Z": -394.4875, "R": 209.0771, "Y": 172.5104, "P": 9.6875}, |
| 68 | +# "type": "stack", |
| 69 | +# }, |
| 70 | +# "lidnest1": { # Z:-381.0938, R:173.1300, Y:26.1751, P:10.3409 |
| 71 | +# # "pos": {"Z": -388.8563, "R": 172.8812, "Y": 26.9317, "P": 10.3409}, |
| 72 | +# "pos": {"Z": -386.8563, "R": 173.1300, "Y": 26.1751, "P": 10.3409}, |
| 73 | +# "type": "nest", |
| 74 | +# }, |
| 75 | +# "lidnest2": { # Z:-379.2313, R:205.2971, Y:26.4480, P:10.2841 |
| 76 | +# # "pos": {"Z": -388.4625, "R": 205.2900, "Y": 26.8139, "P": 10.2841}, |
| 77 | +# "pos": {"Z": -386.8563, "R": 205.2971, "Y": 26.4480, "P": 10.2841}, |
| 78 | +# "type": "nest", |
| 79 | +# }, |
| 80 | +# "exchange": { |
| 81 | +# "pos": {"Z": -416.8438, "R": 299.8747, "Y": 153.6526, "P": 21.5057}, |
| 82 | +# "type": "nest", |
| 83 | +# }, |
| 84 | +# "neutral": { |
| 85 | +# "pos": {"Z": 23.5188, "R": 109.2741, "Y": 32.7484, "P": 98.2955}, |
| 86 | +# "type": "point", |
| 87 | +# }, |
| 88 | +# } |
| 89 | + |
| 90 | +# locations = { |
| 91 | +# "Safe": PlateCraneLocation( |
| 92 | +# name="Safe", |
| 93 | +# joint_angles=[182220, 2500, 460, -308], |
| 94 | +# location_type="nest", |
| 95 | +# safe_approach_height=0, |
| 96 | +# ), |
| 97 | +# "Stack1": PlateCraneLocation( # After vibration table |
| 98 | +# name="Stack1", |
| 99 | +# joint_angles=[164713, -32703, 450, 5472], |
| 100 | +# location_type="stack", |
| 101 | +# safe_approach_height=0, |
| 102 | +# ), |
| 103 | +# "Stack2": PlateCraneLocation( |
| 104 | +# name="Stack2", |
| 105 | +# joint_angles=[182201, -32703, 486, 5445], |
| 106 | +# location_type="stack", |
| 107 | +# safe_approach_height=0, |
| 108 | +# ), |
| 109 | +# "Stack3": PlateCraneLocation( |
| 110 | +# name="Stack3", |
| 111 | +# joint_angles=[199696, -32703, 486, 5445], |
| 112 | +# location_type="stack", |
| 113 | +# safe_approach_height=0, |
| 114 | +# ), |
| 115 | +# "Stack4": PlateCraneLocation( # After vibration table |
| 116 | +# name="Stack4", |
| 117 | +# joint_angles=[217301, -32703, 486, 5445], |
| 118 | +# location_type="stack", |
| 119 | +# safe_approach_height=0, |
| 120 | +# ), |
| 121 | +# "Stack5": PlateCraneLocation( # After vibration table |
| 122 | +# name="Stack5", |
| 123 | +# joint_angles=[235004, -32703, 486, 5445], |
| 124 | +# location_type="stack", |
| 125 | +# safe_approach_height=0, |
| 126 | +# ), |
| 127 | +# "LidNest1": PlateCraneLocation( # After vibration table |
| 128 | +# name="LidNest1", |
| 129 | +# joint_angles=[168367, -31725, 470, -329], |
| 130 | +# location_type="nest", |
| 131 | +# safe_approach_height=0, |
| 132 | +# ), |
| 133 | +# "LidNest2": PlateCraneLocation( |
| 134 | +# name="LidNest2", |
| 135 | +# joint_angles=[199862, -31725, 462, -328], |
| 136 | +# location_type="nest", |
| 137 | +# safe_approach_height=0, |
| 138 | +# ), |
| 139 | +# "LidNest3": PlateCraneLocation( |
| 140 | +# name="LidNest3", |
| 141 | +# joint_angles=[231449, -31800, 484, -306], |
| 142 | +# location_type="nest", |
| 143 | +# safe_approach_height=0, |
| 144 | +# ), |
| 145 | +# "Solo.Position1": PlateCraneLocation( |
| 146 | +# name="Solo.Position1", |
| 147 | +# joint_angles=[41665, -27455, -830, 5046], |
| 148 | +# location_type="nest", |
| 149 | +# safe_approach_height=0, |
| 150 | +# ), |
| 151 | +# "Solo.Position2": PlateCraneLocation( # After vibration table |
| 152 | +# name="Solo.Position2", |
| 153 | +# joint_angles=[57372, -27457, -233, 2613], |
| 154 | +# location_type="nest", |
| 155 | +# safe_approach_height=0, |
| 156 | +# ), |
| 157 | +# "Solo.Position2AfterPeeler": PlateCraneLocation( # no longer needed |
| 158 | +# name="Solo.Position2", |
| 159 | +# joint_angles=[53225, -27960, -431, 855], |
| 160 | +# location_type="nest", |
| 161 | +# safe_approach_height=0, |
| 162 | +# ), |
| 163 | +# "Hidex.Nest": PlateCraneLocation( # After vibration table |
| 164 | +# name="Hidex.Nest", |
| 165 | +# joint_angles=[102406, -31090, -5901, 2373], |
| 166 | +# location_type="nest", |
| 167 | +# safe_approach_height=-27033, |
| 168 | +# ), |
| 169 | +# "Sealer.Nest": PlateCraneLocation( # After vibration table |
| 170 | +# name="Sealer.Nest", |
| 171 | +# joint_angles=[118212, -998, -4758, 4071], |
| 172 | +# location_type="nest", |
| 173 | +# safe_approach_height=0, |
| 174 | +# ), |
| 175 | +# "Sealer.DeepWell.Nest": PlateCraneLocation( # After vibration table |
| 176 | +# name="Sealer.DeepWell.Nest", |
| 177 | +# joint_angles=[118212, -2498, -4758, 4071], |
| 178 | +# location_type="nest", |
| 179 | +# safe_approach_height=0, |
| 180 | +# ), |
| 181 | +# "Peeler.Nest": PlateCraneLocation( # After vibration table |
| 182 | +# name="Peeler.Nest", |
| 183 | +# joint_angles=[302738, -30340, -4142, 2351], |
| 184 | +# location_type="nest", |
| 185 | +# safe_approach_height=0, |
| 186 | +# ), |
| 187 | +# "Liconic.Nest": PlateCraneLocation( # After vibration table |
| 188 | +# name="Liconic.Nest", |
| 189 | +# joint_angles=[267724, -24666, -5357, 1591], |
| 190 | +# location_type="nest", |
| 191 | +# safe_approach_height=0, |
| 192 | +# ), |
| 193 | +# } |
| 194 | + |
| 195 | +# Dimensions of labware used on the BIO_Workcells |
| 196 | +plate_definitions = { |
| 197 | + "flat_bottom_96well": PlateResource( |
| 198 | + plate_height=14, |
| 199 | + grip_height=1, |
| 200 | + plate_height_with_lid=16, |
| 201 | + lid_height=10, |
| 202 | + lid_grip_height=4, |
| 203 | + lid_removal_grip_height=12, |
| 204 | + ), |
| 205 | + "tip_box_180uL": PlateResource( |
| 206 | + plate_height=0, |
| 207 | + grip_height=0, |
| 208 | + plate_height_with_lid=0, |
| 209 | + lid_height=0, |
| 210 | + lid_grip_height=0, |
| 211 | + lid_removal_grip_height=0, |
| 212 | + ), |
| 213 | + "pcr_96well": PlateResource( |
| 214 | + plate_height=0, |
| 215 | + grip_height=0, |
| 216 | + plate_height_with_lid=0, |
| 217 | + lid_height=0, |
| 218 | + lid_grip_height=0, |
| 219 | + lid_removal_grip_height=0, |
| 220 | + ), |
| 221 | + "deep_96well": PlateResource( |
| 222 | + plate_height=40, |
| 223 | + grip_height=30, |
| 224 | + plate_height_with_lid=46, |
| 225 | + lid_height=9, |
| 226 | + lid_grip_height=4, |
| 227 | + lid_removal_grip_height=42, |
| 228 | + ), |
| 229 | +} |
0 commit comments