blob: 6c74a74b038d93b78792947cd7d21768cbede080 [file] [log] [blame]
milind-u18a901d2023-02-17 21:51:55 -08001import numpy as np
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -08002
milind-u18a901d2023-02-17 21:51:55 -08003from y2023.control_loops.python.graph_tools import *
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -08004
Austin Schuh9a11ebd2023-02-26 14:16:31 -08005named_segments = []
6points = {}
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -08007
Austin Schuh9a11ebd2023-02-26 14:16:31 -08008points['Neutral'] = np.array((np.pi, 0.0, 0.0))
9
10points['GroundPickupBackConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuhe062be02023-03-04 21:12:07 -080011 -1.07774334, 0.40, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080012
Austin Schuh9a11ebd2023-02-26 14:16:31 -080013named_segments.append(
14 ThetaSplineSegment(
15 name="NeutralToGroundPickupBackConeUp",
16 start=points['Neutral'],
17 control1=np.array([3.170156, -0.561227]),
18 control2=np.array([2.972776, -1.026820]),
19 end=points['GroundPickupBackConeUp'],
20 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
21 ))
22
Austin Schuhe062be02023-03-04 21:12:07 -080023points['GroundPickupBackConeDownBase'] = to_theta_with_circular_index_and_roll(
24 -1.11487594, 0.25, np.pi / 2.0, circular_index=1)
milind-u68842e12023-02-26 12:45:40 -080025
Austin Schuh9a11ebd2023-02-26 14:16:31 -080026named_segments.append(
27 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -080028 name="NeutralToGroundPickupBackConeDownBase",
Austin Schuh9a11ebd2023-02-26 14:16:31 -080029 start=points['Neutral'],
30 control1=np.array([3.170156, -0.561227]),
31 control2=np.array([2.972776, -1.026820]),
Austin Schuhe062be02023-03-04 21:12:07 -080032 end=points['GroundPickupBackConeDownBase'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -080033 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
34 ))
35
Austin Schuhe062be02023-03-04 21:12:07 -080036points[
37 'GroundPickupFrontConeDownBase'] = to_theta_with_circular_index_and_roll(
38 0.263207, 0.24, -np.pi / 2.0, circular_index=0)
39
40named_segments.append(
41 ThetaSplineSegment(
42 name="NeutralToGroundPickupFrontConeDownBase",
43 start=points['Neutral'],
44 control1=np.array([3.495221564200401, 0.4737763579250964]),
45 control2=np.array([4.110392601248856, 1.0424853539638115]),
46 end=points['GroundPickupFrontConeDownBase'],
47 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
48 ))
49
50points['ScoreFrontLowConeDownBase'] = to_theta_with_circular_index_and_roll(
51 0.328533, 0.40, -np.pi / 2.0, circular_index=0)
52
53named_segments.append(
54 ThetaSplineSegment(
55 name="NeutralToScoreFrontLowConeDownBase",
56 start=points['Neutral'],
57 control1=np.array([3.153481004695907, 0.4827717171390571]),
58 control2=np.array([4.107487625131798, 0.9935705415901082]),
59 end=points['ScoreFrontLowConeDownBase'],
60 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
61 ))
62
63points['ScoreFrontMidConeDownBase'] = to_theta_with_circular_index_and_roll(
64 0.697179, 0.88, -np.pi / 2.0, circular_index=0)
65
66named_segments.append(
67 ThetaSplineSegment(
68 name="NeutralToScoreFrontMidConeDownBase",
69 start=points['Neutral'],
70 control1=np.array([3.2296966803523395, 0.4274365560093907]),
71 control2=np.array([3.111677631381042, 0.6783534686461494]),
72 end=points['ScoreFrontMidConeDownBase'],
73 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
74 ))
75
76points['ScoreFrontHighConeDownBase'] = to_theta_with_circular_index_and_roll(
77 1.04686, 1.13243, -np.pi / 2.0, circular_index=0)
78
79named_segments.append(
80 ThetaSplineSegment(
81 name="NeutralToScoreFrontHighConeDownBase",
82 start=points['Neutral'],
83 control1=np.array([2.7653359284612185, 0.3091554519868296]),
84 control2=np.array([2.6035409027556344, 0.5009078441624968]),
85 end=points['ScoreFrontHighConeDownBase'],
86 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
87 ))
88
Austin Schuh9a11ebd2023-02-26 14:16:31 -080089points['GroundPickupBackCube'] = to_theta_with_circular_index_and_roll(
Austin Schuhe062be02023-03-04 21:12:07 -080090 -1.102, 0.30, -np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080091
Austin Schuh9a11ebd2023-02-26 14:16:31 -080092named_segments.append(
93 ThetaSplineSegment(
94 name="NeutralToGroundPickupBackCube",
95 start=points['Neutral'],
96 control1=np.array([3.153228, -0.497009]),
97 control2=np.array([2.972776, -1.026820]),
98 end=points['GroundPickupBackCube'],
99 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
100 ))
101
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800102points['GroundPickupFrontCube'] = to_theta_with_circular_index_and_roll(
103 0.325603, 0.255189, np.pi / 2.0, circular_index=0)
104
105named_segments.append(
106 ThetaSplineSegment(
107 name="NeutralToGroundPickupFrontCube",
108 start=points['Neutral'],
109 control1=np.array([3.338852196583635, 0.34968650009090885]),
110 control2=np.array([4.28246270189025, 1.492916470137478]),
111 end=points['GroundPickupFrontCube'],
112 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
113 ))
114
Austin Schuhe062be02023-03-04 21:12:07 -0800115points['ScoreBackMidConeUp'] = to_theta_with_circular_index_and_roll(
116 -1.33013, 1.08354, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800117
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800118named_segments.append(
119 ThetaSplineSegment(
120 name="NeutralToBackMidConeUpScore",
121 start=points['Neutral'],
Austin Schuhe062be02023-03-04 21:12:07 -0800122 control1=np.array([3.6130298244820453, -0.2781204657180023]),
123 control2=np.array([3.804763224169111, -0.5179424890517237]),
124 end=points['ScoreBackMidConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800125 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
126 ))
127
Austin Schuhe062be02023-03-04 21:12:07 -0800128points['ScoreBackLowConeUp'] = to_theta_with_circular_index_and_roll(
129 -1.00472, 0.672615, np.pi / 2.0, circular_index=1)
130
131named_segments.append(
132 ThetaSplineSegment(
133 name="NeutralToBackLowConeUpScore",
134 start=points['Neutral'],
135 control1=np.array([3.260123029490386, -0.5296803702636037]),
136 control2=np.array([3.1249665389044283, -0.7810758529482493]),
137 end=points['ScoreBackLowConeUp'],
138 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
139 ))
140
141named_segments.append(
142 ThetaSplineSegment(
143 name="GroundPickupBackConeUpToBackLowConeUpScore",
144 start=points['GroundPickupBackConeUp'],
145 control1=np.array([2.943017165830755, -1.3740647485244808]),
146 control2=np.array([2.941104610508278, -1.2434759967435083]),
147 end=points['ScoreBackLowConeUp'],
148 control_alpha_rolls=[],
149 ))
150
151named_segments.append(
152 ThetaSplineSegment(
153 name="ScoreBackLowConeUpToScoreBackMidConeUp",
154 start=points['ScoreBackLowConeUp'],
155 control1=np.array([3.2930271753937728, -0.9256552441650734]),
156 control2=np.array([3.6425461598470568, -0.8085366888146934]),
157 end=points['ScoreBackMidConeUp'],
158 control_alpha_rolls=[],
159 ))
160
161points['ScoreBackMidConeDownBase'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800162 -1.37792406, 0.81332449, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800163
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800164named_segments.append(
165 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -0800166 name="NeutralToMidConeDownBaseScore",
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800167 start=points['Neutral'],
168 control1=np.array([3.394572, -0.239378]),
169 control2=np.array([3.654854, -0.626835]),
Austin Schuhe062be02023-03-04 21:12:07 -0800170 end=points['ScoreBackMidConeDownBase'],
171 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
172 ))
173
174points['ScoreBackLowConeDownBase'] = to_theta_with_circular_index_and_roll(
175 -1.06372, 0.442764, np.pi / 2.0, circular_index=1)
176
177named_segments.append(
178 ThetaSplineSegment(
179 name="NeutralToLowConeDownBaseScore",
180 start=points['Neutral'],
181 control1=np.array([2.8613439132427896, -0.5868069120126034]),
182 control2=np.array([2.9041434685529923, -1.240030040719494]),
183 end=points['ScoreBackLowConeDownBase'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800184 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
185 ))
186
187points['HPPickupBackConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuhe062be02023-03-04 21:12:07 -0800188 -1.1050539, 1.34, np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800189
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800190named_segments.append(
191 ThetaSplineSegment(
192 name="NeutralToHPPickupBackConeUp",
193 start=points['Neutral'],
194 control1=np.array([2.0, -0.239378]),
195 control2=np.array([1.6, -0.626835]),
196 end=points['HPPickupBackConeUp'],
197 control_alpha_rolls=[(0.7, 0.0), (.9, np.pi / 2.0)],
198 ))
199
Austin Schuhe062be02023-03-04 21:12:07 -0800200points['HPPickupFrontConeUp'] = np.array(
201 (5.16514378449353, 1.26, -np.pi / 2.0))
202# to_theta_with_circular_index_and_roll(
203# 0.265749, 1.28332, -np.pi / 2.0, circular_index=1)
204
205named_segments.append(
206 ThetaSplineSegment(
207 name="NeutralToHPPickupFrontConeUp",
208 start=points['Neutral'],
209 control1=np.array([4.068204933788692, -0.05440997896697275]),
210 control2=np.array([4.861911360838861, -0.03790410600482508]),
211 end=points['HPPickupFrontConeUp'],
212 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
213 ))
214
215points['ScoreFrontHighConeUp'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800216 0.98810344, 1.37536719, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800217
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800218named_segments.append(
219 ThetaSplineSegment(
220 name="NeutralToFrontHighConeUpScore",
221 start=points['Neutral'],
222 control1=np.array([2.594244, 0.417442]),
223 control2=np.array([1.51325, 0.679748]),
Austin Schuhe062be02023-03-04 21:12:07 -0800224 end=points['ScoreFrontHighConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800225 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
226 ))
227
Austin Schuhe062be02023-03-04 21:12:07 -0800228points['ScoreFrontMidConeUp'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800229 0.43740453, 1.06330555, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800230
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800231named_segments.append(
232 ThetaSplineSegment(
233 name="NeutralToFrontMidConeUpScore",
234 start=points['Neutral'],
235 control1=np.array([3.0, 0.317442]),
236 control2=np.array([2.9, 0.479748]),
Austin Schuhe062be02023-03-04 21:12:07 -0800237 end=points['ScoreFrontMidConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800238 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
239 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800240
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800241points['ScoreFrontLowCube'] = to_theta_with_circular_index_and_roll(
242 0.325603, 0.30, np.pi / 2.0, circular_index=0)
243
244named_segments.append(
245 ThetaSplineSegment(
246 name="NeutralToScoreFrontLowCube",
247 start=points['Neutral'],
248 control1=np.array([3.338852196583635, 0.34968650009090885]),
249 control2=np.array([4.28246270189025, 1.492916470137478]),
250 end=points['ScoreFrontLowCube'],
251 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
252 ))
253
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800254points['ScoreFrontMidCube'] = to_theta_with_circular_index_and_roll(
255 0.517846, 0.87, np.pi / 2.0, circular_index=0)
256
257named_segments.append(
258 ThetaSplineSegment(
259 name="NeutralToScoreFrontMidCube",
260 start=points["Neutral"],
261 control1=np.array([3.1310824883477952, 0.23591705727105095]),
262 control2=np.array([3.0320025094685965, 0.43674789928668933]),
263 end=points["ScoreFrontMidCube"],
264 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
265 ))
266
Austin Schuhe062be02023-03-04 21:12:07 -0800267named_segments.append(
268 ThetaSplineSegment(
269 name="ScoreFrontLowCubeToScoreFrontMidCube",
270 start=points["ScoreFrontLowCube"],
271 control1=np.array([3.8237323383577078, 1.2979562720646056]),
272 control2=np.array([3.63484177908944, 1.008850428344438]),
273 end=points["ScoreFrontMidCube"],
274 control_alpha_rolls=[],
275 ))
276
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800277points['ScoreFrontHighCube'] = to_theta_with_circular_index_and_roll(
278 0.901437, 1.16, np.pi / 2.0, circular_index=0)
279
280named_segments.append(
281 ThetaSplineSegment(
282 name="NeutralToScoreFrontHighCube",
283 start=points["Neutral"],
284 control1=np.array([2.537484161662287, 0.059700523547219]),
285 control2=np.array([2.449391812539668, 0.4141564369176016]),
286 end=points["ScoreFrontHighCube"],
287 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
288 ))
289
Austin Schuhe062be02023-03-04 21:12:07 -0800290named_segments.append(
291 ThetaSplineSegment(
292 name="ScoreFrontMidCubeToScoreFrontHighCube",
293 start=points["ScoreFrontMidCube"],
294 control1=np.array([2.9229652375897004, 0.7771801809056819]),
295 control2=np.array([2.634276444896239, 0.5696525540129302]),
296 end=points["ScoreFrontHighCube"],
297 control_alpha_rolls=[],
298 ))
299
300points['ScoreBackLowCube'] = to_theta_with_circular_index_and_roll(
301 -1.102, 0.30, -np.pi / 2.0, circular_index=1)
302
303named_segments.append(
304 ThetaSplineSegment(
305 name="NeutralToScoreLowBackCube",
306 start=points['Neutral'],
307 control1=np.array([3.153228, -0.497009]),
308 control2=np.array([2.972776, -1.026820]),
309 end=points['ScoreBackLowCube'],
310 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
311 ))
312
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800313points['ScoreBackMidCube'] = to_theta_with_circular_index_and_roll(
314 -1.27896, 0.84, -np.pi / 2.0, circular_index=1)
315
316named_segments.append(
317 ThetaSplineSegment(
318 name="NeutralToScoreBackMidCube",
319 start=points["Neutral"],
320 control1=np.array([3.3485646154655404, -0.4369603013926491]),
321 control2=np.array([3.2653593368256995, -0.789587049476034]),
322 end=points["ScoreBackMidCube"],
323 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
324 ))
325
Austin Schuhe062be02023-03-04 21:12:07 -0800326named_segments.append(
327 ThetaSplineSegment(
328 name="ScoreBackLowCubeToScoreBackMidCube",
329 start=points["ScoreBackLowCube"],
330 control1=np.array([3.1075630474968694, -1.1675095818664531]),
331 control2=np.array([3.3377520447373232, -1.1054408842366303]),
332 end=points["ScoreBackMidCube"],
333 control_alpha_rolls=[],
334 ))
335
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800336# TODO(austin): This doesn't produce the next line...
337#points['ScoreBackHighCube'] = to_theta_with_circular_index_and_roll(
338# -1.60932, 1.16839, np.pi / 2.0, circular_index=0)
339points['ScoreBackHighCube'] = np.array(
340 (4.77284735761704, -1.19952193130714, -np.pi / 2.0))
341
342named_segments.append(
343 ThetaSplineSegment(
344 name="NeutralToScoreBackHighCube",
345 start=points["Neutral"],
346 control1=np.array([3.6804854484103684, -0.3494541095053125]),
347 control2=np.array([3.9889380578509517, -0.6637934755748516]),
348 end=points["ScoreBackHighCube"],
349 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
350 ))
351
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800352named_segments.append(
353 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -0800354 name="ScoreBackMidCubeToScoreBackHighCube",
355 start=points["ScoreBackMidCube"],
356 control1=np.array([4.03651864313893, -0.919229198708873]),
357 control2=np.array([4.377346803653962, -1.0167608157302999]),
358 end=points["ScoreBackHighCube"],
359 control_alpha_rolls=[],
360 ))
361
362points['GroundPickupFrontConeUp'] = to_theta_with_circular_index_and_roll(
363 0.313099, 0.380, -np.pi / 2.0, circular_index=0)
364
365named_segments.append(
366 ThetaSplineSegment(
367 name="NeutralToGroundPickupFrontConeUp",
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800368 start=points['Neutral'],
Austin Schuhe062be02023-03-04 21:12:07 -0800369 control1=np.array([3.153481004695907, 0.4827717171390571]),
370 control2=np.array([4.107487625131798, 0.9935705415901082]),
371 end=points['GroundPickupFrontConeUp'],
372 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
373 ))
374
375points['ScoreFrontLowConeUp'] = to_theta_with_circular_index_and_roll(
376 0.349687, 0.468804, -np.pi / 2.0, circular_index=0)
377
378named_segments.append(
379 ThetaSplineSegment(
380 name="NeutralToScoreFrontLowConeUp",
381 start=points['Neutral'],
382 control1=np.array([3.153481004695907, 0.4827717171390571]),
383 control2=np.array([4.107487625131798, 0.9935705415901082]),
384 end=points['ScoreFrontLowConeUp'],
385 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
386 ))
387
388named_segments.append(
389 ThetaSplineSegment(
390 name="GroundPickupFrontConeUpToScoreFrontLowConeUp",
391 start=points['GroundPickupFrontConeUp'],
392 control1=np.array([4.14454438793702, 1.680256664914554]),
393 control2=np.array([4.159014136030164, 1.6617266432775355]),
394 end=points['ScoreFrontLowConeUp'],
395 control_alpha_rolls=[],
396 ))
397
398named_segments.append(
399 ThetaSplineSegment(
400 name="ScoreFrontLowConeUpToScoreFrontMidConeUp",
401 start=points['ScoreFrontLowConeUp'],
402 control1=np.array([4.144103145250675, 1.3519566301042056]),
403 control2=np.array([3.5357641970552223, 0.8105698293886593]),
404 end=points['ScoreFrontMidConeUp'],
405 control_alpha_rolls=[],
406 ))
407
408named_segments.append(
409 ThetaSplineSegment(
410 name="ScoreFrontMidConeUpToScoreFrontHighConeUp",
411 start=points['ScoreFrontMidConeUp'],
412 control1=np.array([2.417981958011055, 0.48234108399079134]),
413 control2=np.array([2.1651435746478045, 0.4937628492739232]),
414 end=points['ScoreFrontHighConeUp'],
415 control_alpha_rolls=[],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800416 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800417
Maxwell Henderson83cf6d62023-02-10 20:29:26 -0800418front_points = []
419back_points = []
420unnamed_segments = []
milind-u18a901d2023-02-17 21:51:55 -0800421segments = named_segments + unnamed_segments