blob: 926c45674b7e05e3bd84fc510ea749b568ba4df0 [file] [log] [blame]
Maxwell Hendersonf582b142023-03-05 18:33:09 -08001import sys
2
milind-u18a901d2023-02-17 21:51:55 -08003import numpy as np
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -08004
milind-u18a901d2023-02-17 21:51:55 -08005from y2023.control_loops.python.graph_tools import *
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -08006
Austin Schuh99dda682023-03-11 00:18:37 -08007
8def ThetaSegment(name, start, end):
9 control = np.array([(start[0] + end[0]) / 2.0, (start[1] + end[1]) / 2.0])
10 return ThetaSplineSegment(
11 name=name,
12 start=start,
13 control1=control,
14 control2=control,
15 end=end,
16 )
17
18
Austin Schuh9a11ebd2023-02-26 14:16:31 -080019named_segments = []
20points = {}
Maxwell Hendersonf5123fe2023-02-04 13:44:41 -080021
Austin Schuh9a11ebd2023-02-26 14:16:31 -080022points['Neutral'] = np.array((np.pi, 0.0, 0.0))
23
24points['GroundPickupBackConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuhe062be02023-03-04 21:12:07 -080025 -1.07774334, 0.40, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080026
Austin Schuh9a11ebd2023-02-26 14:16:31 -080027named_segments.append(
28 ThetaSplineSegment(
29 name="NeutralToGroundPickupBackConeUp",
30 start=points['Neutral'],
31 control1=np.array([3.170156, -0.561227]),
32 control2=np.array([2.972776, -1.026820]),
33 end=points['GroundPickupBackConeUp'],
34 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
35 ))
36
Austin Schuhe062be02023-03-04 21:12:07 -080037points['GroundPickupBackConeDownBase'] = to_theta_with_circular_index_and_roll(
38 -1.11487594, 0.25, np.pi / 2.0, circular_index=1)
milind-u68842e12023-02-26 12:45:40 -080039
Austin Schuh9a11ebd2023-02-26 14:16:31 -080040named_segments.append(
41 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -080042 name="NeutralToGroundPickupBackConeDownBase",
Austin Schuh9a11ebd2023-02-26 14:16:31 -080043 start=points['Neutral'],
44 control1=np.array([3.170156, -0.561227]),
45 control2=np.array([2.972776, -1.026820]),
Austin Schuhe062be02023-03-04 21:12:07 -080046 end=points['GroundPickupBackConeDownBase'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -080047 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
48 ))
49
Austin Schuhe062be02023-03-04 21:12:07 -080050points[
51 'GroundPickupFrontConeDownBase'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -080052 0.30, 0.24, -np.pi / 2.0, circular_index=0)
Austin Schuhe062be02023-03-04 21:12:07 -080053
54named_segments.append(
55 ThetaSplineSegment(
56 name="NeutralToGroundPickupFrontConeDownBase",
57 start=points['Neutral'],
58 control1=np.array([3.495221564200401, 0.4737763579250964]),
59 control2=np.array([4.110392601248856, 1.0424853539638115]),
60 end=points['GroundPickupFrontConeDownBase'],
61 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
62 ))
63
64points['ScoreFrontLowConeDownBase'] = to_theta_with_circular_index_and_roll(
65 0.328533, 0.40, -np.pi / 2.0, circular_index=0)
66
67named_segments.append(
68 ThetaSplineSegment(
69 name="NeutralToScoreFrontLowConeDownBase",
70 start=points['Neutral'],
71 control1=np.array([3.153481004695907, 0.4827717171390571]),
72 control2=np.array([4.107487625131798, 0.9935705415901082]),
73 end=points['ScoreFrontLowConeDownBase'],
74 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
75 ))
76
77points['ScoreFrontMidConeDownBase'] = to_theta_with_circular_index_and_roll(
78 0.697179, 0.88, -np.pi / 2.0, circular_index=0)
79
80named_segments.append(
81 ThetaSplineSegment(
82 name="NeutralToScoreFrontMidConeDownBase",
83 start=points['Neutral'],
84 control1=np.array([3.2296966803523395, 0.4274365560093907]),
85 control2=np.array([3.111677631381042, 0.6783534686461494]),
86 end=points['ScoreFrontMidConeDownBase'],
87 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
88 ))
89
Austin Schuh99dda682023-03-11 00:18:37 -080090points['ScoreBackLowConeDownTip'] = to_theta_with_circular_index_and_roll(
91 -1.17422, 0.441203, np.pi / 2.0, circular_index=1)
92
93named_segments.append(
94 ThetaSplineSegment(
95 name="NeutralToScoreBackLowConeDownTip",
96 start=points['Neutral'],
97 control1=np.array([3.0959727041167358, -0.48933188185224896]),
98 control2=np.array([3.11854219540683, -1.0398000886366843]),
99 end=points['ScoreBackLowConeDownTip'],
100 control_alpha_rolls=[(0.20, 0.0), (.95, np.pi / 2.0)],
101 ))
102
103points['ScoreFrontLowConeDownTip'] = to_theta_with_circular_index_and_roll(
104 0.327783, 0.430704, np.pi / 2.0, circular_index=0)
105
106named_segments.append(
107 ThetaSplineSegment(
108 name="NeutralToScoreFrontLowConeDownTip",
109 start=points['Neutral'],
110 control1=np.array([3.6217558044411176, 0.6335548380532725]),
111 control2=np.array([4.2557660430407935, 1.0411926555706872]),
112 end=points['ScoreFrontLowConeDownTip'],
113 control_alpha_rolls=[(0.20, 0.0), (.95, np.pi / 2.0)],
114 ))
115
116points['ScoreBackMidConeDownTip'] = to_theta_with_circular_index_and_roll(
117 -1.49, 0.818521, -np.pi / 2.0, circular_index=1)
118
119named_segments.append(
120 ThetaSplineSegment(
121 name="NeutralToScoreBackMidConeDownTip",
122 start=points['Neutral'],
123 control1=np.array([3.193704394908777, -0.46076706416611657]),
124 control2=np.array([3.6421839688861786, -0.8129214904599373]),
125 end=points['ScoreBackMidConeDownTip'],
126 control_alpha_rolls=[(0.20, 0.0), (.95, -np.pi / 2.0)],
127 ))
128
129points[
130 'ScoreBackMidConeDownTipPlaced'] = to_theta_with_circular_index_and_roll(
131 -1.43, 0.65, -np.pi / 2.0, circular_index=1)
132
133named_segments.append(
134 ThetaSplineSegment(
135 name="NeutralToScoreBackMidConeDownTipPlaced",
136 start=points['Neutral'],
137 control1=np.array([3.193704394908777, -0.46076706416611657]),
138 control2=np.array([3.6421839688861786, -0.8129214904599373]),
139 end=points['ScoreBackMidConeDownTipPlaced'],
140 control_alpha_rolls=[(0.20, 0.0), (.95, -np.pi / 2.0)],
141 ))
142
143named_segments.append(
144 ThetaSegment(
145 name="ScoreBackMidConeDownTipToScoreBackMidConeDownTipPlaced",
146 start=points['ScoreBackMidConeDownTip'],
147 end=points['ScoreBackMidConeDownTipPlaced'],
148 ))
149
150points['ScoreFrontMidConeDownTip'] = np.array(
151 (6.37001629521978, 2.04450540030891, np.pi / 2.0))
152#to_theta_with_circular_index_and_roll(
153#0.708449, 0.869738, np.pi / 2.0, circular_index=1)
154
155named_segments.append(
156 ThetaSplineSegment(
157 name="NeutralToScoreFrontMidConeDownTip",
158 start=points['Neutral'],
159 control1=np.array([4.579377666056791, 0.3789471836198275]),
160 control2=np.array([5.140992799899862, 1.5135884307866865]),
161 end=points['ScoreFrontMidConeDownTip'],
162 control_alpha_rolls=[(0.50, 0.0), (.95, np.pi / 2.0)],
163 ))
164
165points['ScoreFrontMidConeDownTipPlaced'] = np.array(
166 (6.42001629521978, 2.30450540030891, np.pi / 2.0))
167
168named_segments.append(
169 ThetaSplineSegment(
170 name="NeutralToScoreFrontMidConeDownTipPlaced",
171 start=points['Neutral'],
172 control1=np.array([4.579377666056791, 0.3789471836198275]),
173 control2=np.array([5.140992799899862, 1.5135884307866865]),
174 end=points['ScoreFrontMidConeDownTipPlaced'],
175 control_alpha_rolls=[(0.50, 0.0), (.95, np.pi / 2.0)],
176 ))
177
178named_segments.append(
179 ThetaSegment(
180 name="ScoreFrontMidConeDownTipToScoreFrontMidConeDownTipPlaced",
181 start=points['ScoreFrontMidConeDownTip'],
182 end=points['ScoreFrontMidConeDownTipPlaced'],
183 ))
184
185points['ScoreFrontHighConeDownTip'] = np.array(
186 (7.07190783461154, 1.55094570328448, np.pi / 2.0))
187#to_theta_with_circular_index_and_roll(
188#0.708449, 0.869738, np.pi / 2.0, circular_index=1)
189
190named_segments.append(
191 ThetaSplineSegment(
192 name="NeutralToScoreFrontHighConeDownTip",
193 start=points['Neutral'],
194 control1=np.array([4.579377666056791, 0.3789471836198275]),
195 control2=np.array([5.140992799899862, 1.5135884307866865]),
196 end=points['ScoreFrontHighConeDownTip'],
197 control_alpha_rolls=[(0.50, 0.0), (.95, np.pi / 2.0)],
198 ))
199
200points['ScoreFrontHighConeDownTipPlaced'] = np.array(
201 (6.93190783461154, 1.80094570328448, np.pi / 2.0))
202
203named_segments.append(
204 ThetaSplineSegment(
205 name="NeutralToScoreFrontHighConeDownTipPlaced",
206 start=points['Neutral'],
207 control1=np.array([5.997741842590495, 1.8354263885166913]),
208 control2=np.array([6.141018843972322, 1.0777341552037734]),
209 end=points['ScoreFrontHighConeDownTipPlaced'],
210 control_alpha_rolls=[(0.50, 0.0), (.95, np.pi / 2.0)],
211 ))
212
213named_segments.append(
214 ThetaSegment(
215 name="ScoreFrontHighConeDownTipToScoreFrontHighConeDownTipPlaced",
216 start=points['ScoreFrontHighConeDownTip'],
217 end=points['ScoreFrontHighConeDownTipPlaced'],
218 ))
219
Austin Schuhe062be02023-03-04 21:12:07 -0800220points['ScoreFrontHighConeDownBase'] = to_theta_with_circular_index_and_roll(
221 1.04686, 1.13243, -np.pi / 2.0, circular_index=0)
222
223named_segments.append(
224 ThetaSplineSegment(
225 name="NeutralToScoreFrontHighConeDownBase",
226 start=points['Neutral'],
227 control1=np.array([2.7653359284612185, 0.3091554519868296]),
228 control2=np.array([2.6035409027556344, 0.5009078441624968]),
229 end=points['ScoreFrontHighConeDownBase'],
230 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
231 ))
232
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800233points['GroundPickupBackCube'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -0800234 -1.102, 0.28, -np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800235
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800236named_segments.append(
237 ThetaSplineSegment(
238 name="NeutralToGroundPickupBackCube",
239 start=points['Neutral'],
240 control1=np.array([3.153228, -0.497009]),
241 control2=np.array([2.972776, -1.026820]),
242 end=points['GroundPickupBackCube'],
243 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
244 ))
245
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800246points['GroundPickupFrontCube'] = to_theta_with_circular_index_and_roll(
247 0.325603, 0.255189, np.pi / 2.0, circular_index=0)
248
249named_segments.append(
250 ThetaSplineSegment(
251 name="NeutralToGroundPickupFrontCube",
252 start=points['Neutral'],
253 control1=np.array([3.338852196583635, 0.34968650009090885]),
254 control2=np.array([4.28246270189025, 1.492916470137478]),
255 end=points['GroundPickupFrontCube'],
256 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
257 ))
258
Austin Schuhe062be02023-03-04 21:12:07 -0800259points['ScoreBackMidConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -0800260 -1.45013, 1.04354, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800261
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800262named_segments.append(
263 ThetaSplineSegment(
264 name="NeutralToBackMidConeUpScore",
265 start=points['Neutral'],
Austin Schuhe062be02023-03-04 21:12:07 -0800266 control1=np.array([3.6130298244820453, -0.2781204657180023]),
267 control2=np.array([3.804763224169111, -0.5179424890517237]),
268 end=points['ScoreBackMidConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800269 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
270 ))
271
Austin Schuhe062be02023-03-04 21:12:07 -0800272points['ScoreBackLowConeUp'] = to_theta_with_circular_index_and_roll(
273 -1.00472, 0.672615, np.pi / 2.0, circular_index=1)
274
275named_segments.append(
276 ThetaSplineSegment(
277 name="NeutralToBackLowConeUpScore",
278 start=points['Neutral'],
279 control1=np.array([3.260123029490386, -0.5296803702636037]),
280 control2=np.array([3.1249665389044283, -0.7810758529482493]),
281 end=points['ScoreBackLowConeUp'],
282 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
283 ))
284
285named_segments.append(
286 ThetaSplineSegment(
287 name="GroundPickupBackConeUpToBackLowConeUpScore",
288 start=points['GroundPickupBackConeUp'],
289 control1=np.array([2.943017165830755, -1.3740647485244808]),
290 control2=np.array([2.941104610508278, -1.2434759967435083]),
291 end=points['ScoreBackLowConeUp'],
292 control_alpha_rolls=[],
293 ))
294
295named_segments.append(
296 ThetaSplineSegment(
297 name="ScoreBackLowConeUpToScoreBackMidConeUp",
298 start=points['ScoreBackLowConeUp'],
299 control1=np.array([3.2930271753937728, -0.9256552441650734]),
300 control2=np.array([3.6425461598470568, -0.8085366888146934]),
301 end=points['ScoreBackMidConeUp'],
302 control_alpha_rolls=[],
303 ))
304
305points['ScoreBackMidConeDownBase'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -0800306 -1.37792406, 0.87332449, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800307
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800308named_segments.append(
309 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -0800310 name="NeutralToMidConeDownBaseScore",
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800311 start=points['Neutral'],
312 control1=np.array([3.394572, -0.239378]),
313 control2=np.array([3.654854, -0.626835]),
Austin Schuhe062be02023-03-04 21:12:07 -0800314 end=points['ScoreBackMidConeDownBase'],
315 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
316 ))
317
318points['ScoreBackLowConeDownBase'] = to_theta_with_circular_index_and_roll(
319 -1.06372, 0.442764, np.pi / 2.0, circular_index=1)
320
321named_segments.append(
322 ThetaSplineSegment(
323 name="NeutralToLowConeDownBaseScore",
324 start=points['Neutral'],
325 control1=np.array([2.8613439132427896, -0.5868069120126034]),
326 control2=np.array([2.9041434685529923, -1.240030040719494]),
327 end=points['ScoreBackLowConeDownBase'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800328 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
329 ))
330
331points['HPPickupBackConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuh166ab652023-03-11 15:15:51 -0800332 -1.1200539, 1.335, np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800333
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800334named_segments.append(
335 ThetaSplineSegment(
336 name="NeutralToHPPickupBackConeUp",
337 start=points['Neutral'],
338 control1=np.array([2.0, -0.239378]),
339 control2=np.array([1.6, -0.626835]),
340 end=points['HPPickupBackConeUp'],
Maxwell Hendersond32f4302023-03-12 17:57:50 -0700341 control_alpha_rolls=[(0.3, 0.0), (.9, np.pi / 2.0)],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800342 ))
343
Austin Schuhe062be02023-03-04 21:12:07 -0800344points['HPPickupFrontConeUp'] = np.array(
Austin Schuh166ab652023-03-11 15:15:51 -0800345 (5.16514378449353, 1.23, -np.pi / 2.0))
Austin Schuhe062be02023-03-04 21:12:07 -0800346# to_theta_with_circular_index_and_roll(
347# 0.265749, 1.28332, -np.pi / 2.0, circular_index=1)
348
349named_segments.append(
350 ThetaSplineSegment(
351 name="NeutralToHPPickupFrontConeUp",
352 start=points['Neutral'],
353 control1=np.array([4.068204933788692, -0.05440997896697275]),
354 control2=np.array([4.861911360838861, -0.03790410600482508]),
355 end=points['HPPickupFrontConeUp'],
Maxwell Hendersond32f4302023-03-12 17:57:50 -0700356 control_alpha_rolls=[(0.3, 0.0), (.9, -np.pi / 2.0)],
Austin Schuhe062be02023-03-04 21:12:07 -0800357 ))
358
359points['ScoreFrontHighConeUp'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800360 0.98810344, 1.37536719, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800361
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800362named_segments.append(
363 ThetaSplineSegment(
364 name="NeutralToFrontHighConeUpScore",
365 start=points['Neutral'],
366 control1=np.array([2.594244, 0.417442]),
367 control2=np.array([1.51325, 0.679748]),
Austin Schuhe062be02023-03-04 21:12:07 -0800368 end=points['ScoreFrontHighConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800369 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
370 ))
371
Austin Schuhe062be02023-03-04 21:12:07 -0800372points['ScoreFrontMidConeUp'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -0800373 0.64, 1.03, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800374
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800375named_segments.append(
376 ThetaSplineSegment(
377 name="NeutralToFrontMidConeUpScore",
378 start=points['Neutral'],
379 control1=np.array([3.0, 0.317442]),
380 control2=np.array([2.9, 0.479748]),
Austin Schuhe062be02023-03-04 21:12:07 -0800381 end=points['ScoreFrontMidConeUp'],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800382 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
383 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800384
Austin Schuh90e655c2023-03-11 20:19:53 -0800385points['ScoreFrontMidConeUpAuto'] = to_theta_with_circular_index_and_roll(
386 0.58, 0.97, -np.pi / 2.0, circular_index=0)
387
388named_segments.append(
389 ThetaSplineSegment(
390 name="NeutralToScoreFrontMidConeUpAuto",
391 start=points['Neutral'],
392 control1=np.array([2.99620794024176, 0.23620211875551145]),
393 control2=np.array([2.728197531599509, 0.5677148040671784]),
394 end=points['ScoreFrontMidConeUpAuto'],
395 control_alpha_rolls=[(0.20, 0.0), (.90, -np.pi / 2.0)],
396 ))
397
398named_segments.append(
399 ThetaSplineSegment(
400 name="ScoreFrontMidConeUpAutoToGroundPickupBackCube",
401 start=points['ScoreFrontMidConeUpAuto'],
402 control1=np.array([3.1869633311848187, 0.2812689595803919]),
403 control2=np.array([2.906100237354555, -0.7760928122326023]),
404 end=points['GroundPickupBackCube'],
405 control_alpha_rolls=[(0.40, 0.0), (0.60, 0.0)],
406 ))
407
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800408points['ScoreFrontLowCube'] = to_theta_with_circular_index_and_roll(
Austin Schuh99dda682023-03-11 00:18:37 -0800409 0.325603, 0.39, np.pi / 2.0, circular_index=0)
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800410
411named_segments.append(
412 ThetaSplineSegment(
413 name="NeutralToScoreFrontLowCube",
414 start=points['Neutral'],
415 control1=np.array([3.338852196583635, 0.34968650009090885]),
416 control2=np.array([4.28246270189025, 1.492916470137478]),
417 end=points['ScoreFrontLowCube'],
418 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
419 ))
420
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800421points['ScoreFrontMidCube'] = to_theta_with_circular_index_and_roll(
422 0.517846, 0.87, np.pi / 2.0, circular_index=0)
423
424named_segments.append(
425 ThetaSplineSegment(
426 name="NeutralToScoreFrontMidCube",
427 start=points["Neutral"],
428 control1=np.array([3.1310824883477952, 0.23591705727105095]),
429 control2=np.array([3.0320025094685965, 0.43674789928668933]),
430 end=points["ScoreFrontMidCube"],
431 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
432 ))
433
Austin Schuhe062be02023-03-04 21:12:07 -0800434named_segments.append(
435 ThetaSplineSegment(
436 name="ScoreFrontLowCubeToScoreFrontMidCube",
437 start=points["ScoreFrontLowCube"],
438 control1=np.array([3.8237323383577078, 1.2979562720646056]),
439 control2=np.array([3.63484177908944, 1.008850428344438]),
440 end=points["ScoreFrontMidCube"],
441 control_alpha_rolls=[],
442 ))
443
Austin Schuh90e655c2023-03-11 20:19:53 -0800444# Auto express spline...
445named_segments.append(
446 ThetaSplineSegment(
447 name="GroundPickupBackCubeToScoreFrontMidCube",
448 start=points['ScoreFrontMidCube'],
449 control1=np.array([3.2345111429709847, 0.45338639767112277]),
450 control2=np.array([3.098240119468829, -0.46161157069783254]),
451 end=points['GroundPickupBackCube'],
452 control_alpha_rolls=[(0.40, 0.0), (0.60, 0.0)],
453 ))
454
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800455points['ScoreFrontHighCube'] = to_theta_with_circular_index_and_roll(
456 0.901437, 1.16, np.pi / 2.0, circular_index=0)
457
458named_segments.append(
459 ThetaSplineSegment(
460 name="NeutralToScoreFrontHighCube",
461 start=points["Neutral"],
462 control1=np.array([2.537484161662287, 0.059700523547219]),
463 control2=np.array([2.449391812539668, 0.4141564369176016]),
464 end=points["ScoreFrontHighCube"],
465 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
466 ))
467
Austin Schuhe062be02023-03-04 21:12:07 -0800468named_segments.append(
469 ThetaSplineSegment(
470 name="ScoreFrontMidCubeToScoreFrontHighCube",
471 start=points["ScoreFrontMidCube"],
472 control1=np.array([2.9229652375897004, 0.7771801809056819]),
473 control2=np.array([2.634276444896239, 0.5696525540129302]),
474 end=points["ScoreFrontHighCube"],
475 control_alpha_rolls=[],
476 ))
477
478points['ScoreBackLowCube'] = to_theta_with_circular_index_and_roll(
Austin Schuh47a481a2023-03-05 15:32:05 -0800479 -1.102, 0.3212121, -np.pi / 2.0, circular_index=1)
Austin Schuhe062be02023-03-04 21:12:07 -0800480
481named_segments.append(
482 ThetaSplineSegment(
483 name="NeutralToScoreLowBackCube",
484 start=points['Neutral'],
485 control1=np.array([3.153228, -0.497009]),
486 control2=np.array([2.972776, -1.026820]),
487 end=points['ScoreBackLowCube'],
488 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
489 ))
490
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800491points['ScoreBackMidCube'] = to_theta_with_circular_index_and_roll(
492 -1.27896, 0.84, -np.pi / 2.0, circular_index=1)
493
494named_segments.append(
495 ThetaSplineSegment(
496 name="NeutralToScoreBackMidCube",
497 start=points["Neutral"],
498 control1=np.array([3.3485646154655404, -0.4369603013926491]),
499 control2=np.array([3.2653593368256995, -0.789587049476034]),
500 end=points["ScoreBackMidCube"],
501 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
502 ))
503
Austin Schuhe062be02023-03-04 21:12:07 -0800504named_segments.append(
505 ThetaSplineSegment(
506 name="ScoreBackLowCubeToScoreBackMidCube",
507 start=points["ScoreBackLowCube"],
508 control1=np.array([3.1075630474968694, -1.1675095818664531]),
509 control2=np.array([3.3377520447373232, -1.1054408842366303]),
510 end=points["ScoreBackMidCube"],
511 control_alpha_rolls=[],
512 ))
513
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800514# TODO(austin): This doesn't produce the next line...
515#points['ScoreBackHighCube'] = to_theta_with_circular_index_and_roll(
516# -1.60932, 1.16839, np.pi / 2.0, circular_index=0)
517points['ScoreBackHighCube'] = np.array(
518 (4.77284735761704, -1.19952193130714, -np.pi / 2.0))
519
520named_segments.append(
521 ThetaSplineSegment(
522 name="NeutralToScoreBackHighCube",
523 start=points["Neutral"],
524 control1=np.array([3.6804854484103684, -0.3494541095053125]),
525 control2=np.array([3.9889380578509517, -0.6637934755748516]),
526 end=points["ScoreBackHighCube"],
527 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
528 ))
529
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800530named_segments.append(
531 ThetaSplineSegment(
Austin Schuhe062be02023-03-04 21:12:07 -0800532 name="ScoreBackMidCubeToScoreBackHighCube",
533 start=points["ScoreBackMidCube"],
534 control1=np.array([4.03651864313893, -0.919229198708873]),
535 control2=np.array([4.377346803653962, -1.0167608157302999]),
536 end=points["ScoreBackHighCube"],
537 control_alpha_rolls=[],
538 ))
539
540points['GroundPickupFrontConeUp'] = to_theta_with_circular_index_and_roll(
541 0.313099, 0.380, -np.pi / 2.0, circular_index=0)
542
543named_segments.append(
544 ThetaSplineSegment(
545 name="NeutralToGroundPickupFrontConeUp",
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800546 start=points['Neutral'],
Austin Schuhe062be02023-03-04 21:12:07 -0800547 control1=np.array([3.153481004695907, 0.4827717171390571]),
548 control2=np.array([4.107487625131798, 0.9935705415901082]),
549 end=points['GroundPickupFrontConeUp'],
550 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
551 ))
552
553points['ScoreFrontLowConeUp'] = to_theta_with_circular_index_and_roll(
554 0.349687, 0.468804, -np.pi / 2.0, circular_index=0)
555
556named_segments.append(
557 ThetaSplineSegment(
558 name="NeutralToScoreFrontLowConeUp",
559 start=points['Neutral'],
560 control1=np.array([3.153481004695907, 0.4827717171390571]),
561 control2=np.array([4.107487625131798, 0.9935705415901082]),
562 end=points['ScoreFrontLowConeUp'],
563 control_alpha_rolls=[(0.30, 0.0), (.95, -np.pi / 2.0)],
564 ))
565
566named_segments.append(
567 ThetaSplineSegment(
568 name="GroundPickupFrontConeUpToScoreFrontLowConeUp",
569 start=points['GroundPickupFrontConeUp'],
570 control1=np.array([4.14454438793702, 1.680256664914554]),
571 control2=np.array([4.159014136030164, 1.6617266432775355]),
572 end=points['ScoreFrontLowConeUp'],
573 control_alpha_rolls=[],
574 ))
575
576named_segments.append(
577 ThetaSplineSegment(
578 name="ScoreFrontLowConeUpToScoreFrontMidConeUp",
579 start=points['ScoreFrontLowConeUp'],
580 control1=np.array([4.144103145250675, 1.3519566301042056]),
581 control2=np.array([3.5357641970552223, 0.8105698293886593]),
582 end=points['ScoreFrontMidConeUp'],
583 control_alpha_rolls=[],
584 ))
585
586named_segments.append(
587 ThetaSplineSegment(
588 name="ScoreFrontMidConeUpToScoreFrontHighConeUp",
589 start=points['ScoreFrontMidConeUp'],
590 control1=np.array([2.417981958011055, 0.48234108399079134]),
591 control2=np.array([2.1651435746478045, 0.4937628492739232]),
592 end=points['ScoreFrontHighConeUp'],
593 control_alpha_rolls=[],
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800594 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800595
Maxwell Henderson83cf6d62023-02-10 20:29:26 -0800596front_points = []
597back_points = []
598unnamed_segments = []
milind-u18a901d2023-02-17 21:51:55 -0800599segments = named_segments + unnamed_segments
Maxwell Hendersonf582b142023-03-05 18:33:09 -0800600
601# This checks that all points are unique
602
603seen_segments = []
604
605for segment in segments:
606 # check for equality of the start and end values
607
608 if (segment.start.tolist(), segment.end.tolist()) in seen_segments:
609 print("Repeated value")
610 segment.Print(points)
611 sys.exit(1)
612 else:
613 seen_segments.append((segment.start.tolist(), segment.end.tolist()))
614
615seen_points = []
616
617for point in points:
618 if point in seen_points:
619 print(f"Repeated value {point}")
620 sys.exit(1)
621 else:
622 seen_points.append(point)