blob: cde885cc3ff9895dcebde098ef76d3b1754a2be2 [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(
milind-u68842e12023-02-26 12:45:40 -080011 -1.07774334, 0.36308701, 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
23points['GroundPickupBackConeDown'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -080024 -1.11487594, 0.23140145, np.pi / 2.0, circular_index=1)
25
Austin Schuh9a11ebd2023-02-26 14:16:31 -080026named_segments.append(
27 ThetaSplineSegment(
28 name="NeutralToGroundPickupBackConeDown",
29 start=points['Neutral'],
30 control1=np.array([3.170156, -0.561227]),
31 control2=np.array([2.972776, -1.026820]),
32 end=points['GroundPickupBackConeDown'],
33 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
34 ))
35
36points['GroundPickupBackCube'] = to_theta_with_circular_index_and_roll(
Austin Schuh9b3e41c2023-02-26 22:29:53 -080037 -1.102, 0.25, -np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080038
Austin Schuh9a11ebd2023-02-26 14:16:31 -080039named_segments.append(
40 ThetaSplineSegment(
41 name="NeutralToGroundPickupBackCube",
42 start=points['Neutral'],
43 control1=np.array([3.153228, -0.497009]),
44 control2=np.array([2.972776, -1.026820]),
45 end=points['GroundPickupBackCube'],
46 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
47 ))
48
Austin Schuh9b3e41c2023-02-26 22:29:53 -080049points['GroundPickupFrontCube'] = to_theta_with_circular_index_and_roll(
50 0.325603, 0.255189, np.pi / 2.0, circular_index=0)
51
52named_segments.append(
53 ThetaSplineSegment(
54 name="NeutralToGroundPickupFrontCube",
55 start=points['Neutral'],
56 control1=np.array([3.338852196583635, 0.34968650009090885]),
57 control2=np.array([4.28246270189025, 1.492916470137478]),
58 end=points['GroundPickupFrontCube'],
59 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
60 ))
61
Austin Schuh9a11ebd2023-02-26 14:16:31 -080062points['ScoreBackMidConeUpPos'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -080063 -1.41871454, 1.07476162, np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080064
Austin Schuh9a11ebd2023-02-26 14:16:31 -080065named_segments.append(
66 ThetaSplineSegment(
67 name="NeutralToBackMidConeUpScore",
68 start=points['Neutral'],
69 control1=np.array([0.994244, -1.417442]),
70 control2=np.array([1.711325, -0.679748]),
71 end=points['ScoreBackMidConeUpPos'],
72 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
73 ))
74
75points['ScoreBackMidConeDownPos'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -080076 -1.37792406, 0.81332449, np.pi / 2.0, circular_index=1)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080077
Austin Schuh9a11ebd2023-02-26 14:16:31 -080078named_segments.append(
79 ThetaSplineSegment(
80 name="NeutralToMidConeDownScore",
81 start=points['Neutral'],
82 control1=np.array([3.394572, -0.239378]),
83 control2=np.array([3.654854, -0.626835]),
84 end=points['ScoreBackMidConeDownPos'],
85 control_alpha_rolls=[(0.40, 0.0), (.95, np.pi / 2.0)],
86 ))
87
88points['HPPickupBackConeUp'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -080089 -1.1050539, 1.31390128, np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -080090
Austin Schuh9a11ebd2023-02-26 14:16:31 -080091named_segments.append(
92 ThetaSplineSegment(
93 name="NeutralToHPPickupBackConeUp",
94 start=points['Neutral'],
95 control1=np.array([2.0, -0.239378]),
96 control2=np.array([1.6, -0.626835]),
97 end=points['HPPickupBackConeUp'],
98 control_alpha_rolls=[(0.7, 0.0), (.9, np.pi / 2.0)],
99 ))
100
101points['ScoreFrontHighConeUpPos'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800102 0.98810344, 1.37536719, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800103
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800104named_segments.append(
105 ThetaSplineSegment(
106 name="NeutralToFrontHighConeUpScore",
107 start=points['Neutral'],
108 control1=np.array([2.594244, 0.417442]),
109 control2=np.array([1.51325, 0.679748]),
110 end=points['ScoreFrontHighConeUpPos'],
111 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
112 ))
113
114points['ScoreFrontMidConeUpPos'] = to_theta_with_circular_index_and_roll(
milind-u68842e12023-02-26 12:45:40 -0800115 0.43740453, 1.06330555, -np.pi / 2.0, circular_index=0)
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800116
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800117named_segments.append(
118 ThetaSplineSegment(
119 name="NeutralToFrontMidConeUpScore",
120 start=points['Neutral'],
121 control1=np.array([3.0, 0.317442]),
122 control2=np.array([2.9, 0.479748]),
123 end=points['ScoreFrontMidConeUpPos'],
124 control_alpha_rolls=[(0.40, 0.0), (.95, -np.pi / 2.0)],
125 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800126
Austin Schuh9b3e41c2023-02-26 22:29:53 -0800127points['ScoreFrontLowCube'] = to_theta_with_circular_index_and_roll(
128 0.325603, 0.30, np.pi / 2.0, circular_index=0)
129
130named_segments.append(
131 ThetaSplineSegment(
132 name="NeutralToScoreFrontLowCube",
133 start=points['Neutral'],
134 control1=np.array([3.338852196583635, 0.34968650009090885]),
135 control2=np.array([4.28246270189025, 1.492916470137478]),
136 end=points['ScoreFrontLowCube'],
137 control_alpha_rolls=[(0.4, 0.0), (.9, np.pi / 2.0)],
138 ))
139
140points['ScoreBackLowCube'] = to_theta_with_circular_index_and_roll(
141 -1.102, 0.30, -np.pi / 2.0, circular_index=1)
142
143named_segments.append(
144 ThetaSplineSegment(
145 name="NeutralToScoreLowBackCube",
146 start=points['Neutral'],
147 control1=np.array([3.153228, -0.497009]),
148 control2=np.array([2.972776, -1.026820]),
149 end=points['ScoreBackLowCube'],
150 control_alpha_rolls=[(0.7, 0.0), (.9, -np.pi / 2.0)],
151 ))
152
153points['ScoreFrontMidCube'] = to_theta_with_circular_index_and_roll(
154 0.517846, 0.87, np.pi / 2.0, circular_index=0)
155
156named_segments.append(
157 ThetaSplineSegment(
158 name="NeutralToScoreFrontMidCube",
159 start=points["Neutral"],
160 control1=np.array([3.1310824883477952, 0.23591705727105095]),
161 control2=np.array([3.0320025094685965, 0.43674789928668933]),
162 end=points["ScoreFrontMidCube"],
163 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
164 ))
165
166points['ScoreFrontHighCube'] = to_theta_with_circular_index_and_roll(
167 0.901437, 1.16, np.pi / 2.0, circular_index=0)
168
169named_segments.append(
170 ThetaSplineSegment(
171 name="NeutralToScoreFrontHighCube",
172 start=points["Neutral"],
173 control1=np.array([2.537484161662287, 0.059700523547219]),
174 control2=np.array([2.449391812539668, 0.4141564369176016]),
175 end=points["ScoreFrontHighCube"],
176 control_alpha_rolls=[(0.4, np.pi * 0.0), (0.95, np.pi * 0.5)],
177 ))
178
179points['ScoreBackMidCube'] = to_theta_with_circular_index_and_roll(
180 -1.27896, 0.84, -np.pi / 2.0, circular_index=1)
181
182named_segments.append(
183 ThetaSplineSegment(
184 name="NeutralToScoreBackMidCube",
185 start=points["Neutral"],
186 control1=np.array([3.3485646154655404, -0.4369603013926491]),
187 control2=np.array([3.2653593368256995, -0.789587049476034]),
188 end=points["ScoreBackMidCube"],
189 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
190 ))
191
192# TODO(austin): This doesn't produce the next line...
193#points['ScoreBackHighCube'] = to_theta_with_circular_index_and_roll(
194# -1.60932, 1.16839, np.pi / 2.0, circular_index=0)
195points['ScoreBackHighCube'] = np.array(
196 (4.77284735761704, -1.19952193130714, -np.pi / 2.0))
197
198named_segments.append(
199 ThetaSplineSegment(
200 name="NeutralToScoreBackHighCube",
201 start=points["Neutral"],
202 control1=np.array([3.6804854484103684, -0.3494541095053125]),
203 control2=np.array([3.9889380578509517, -0.6637934755748516]),
204 end=points["ScoreBackHighCube"],
205 control_alpha_rolls=[(0.3, -np.pi * 0.0), (0.95, -np.pi * 0.5)],
206 ))
207
Austin Schuh9a11ebd2023-02-26 14:16:31 -0800208points['ConeDownPos'] = to_theta_with_circular_index_and_roll(0.7,
209 0.11,
210 np.pi / 2.0,
211 circular_index=0)
212named_segments.append(
213 ThetaSplineSegment(
214 name="NeutralToConeDown",
215 start=points['Neutral'],
216 control1=np.array([2.396694, 0.508020]),
217 control2=np.array([2.874513, 0.933160]),
218 end=points['ConeDownPos'],
219 control_alpha_rolls=[(0.30, 0.0), (.95, np.pi / 2.0)],
220 ))
Maxwell Henderson1ac7aac2023-02-23 17:35:32 -0800221
Maxwell Henderson83cf6d62023-02-10 20:29:26 -0800222front_points = []
223back_points = []
224unnamed_segments = []
milind-u18a901d2023-02-17 21:51:55 -0800225segments = named_segments + unnamed_segments