milind-u | 18a901d | 2023-02-17 21:51:55 -0800 | [diff] [blame] | 1 | import numpy as np |
Maxwell Henderson | f5123fe | 2023-02-04 13:44:41 -0800 | [diff] [blame] | 2 | |
milind-u | 18a901d | 2023-02-17 21:51:55 -0800 | [diff] [blame] | 3 | from y2023.control_loops.python.graph_tools import * |
Maxwell Henderson | f5123fe | 2023-02-04 13:44:41 -0800 | [diff] [blame] | 4 | |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 5 | neutral = np.array((np.pi, 0.0, 0.0)) |
Maxwell Henderson | f5123fe | 2023-02-04 13:44:41 -0800 | [diff] [blame] | 6 | |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 7 | # NeutralToGroundPickupBackConeUp |
| 8 | neutral_to_cone_up_1 = np.array([3.170156, -0.561227]) |
| 9 | neutral_to_cone_up_2 = np.array([2.972776, -1.026820]) |
| 10 | ground_pickup_back_cone_up = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 11 | -1.07774334, 0.36308701, np.pi / 2.0, circular_index=1) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 12 | |
| 13 | # NeutralToGroundPickupBackConeDown |
| 14 | neutral_to_ground_pickup_back_cone_down_1 = np.array([3.170156, -0.561227]) |
| 15 | neutral_to_ground_pickup_back_cone_down_2 = np.array([2.972776, -1.026820]) |
| 16 | ground_pickup_back_cone_down = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 17 | -1.11487594, 0.23140145, np.pi / 2.0, circular_index=1) |
| 18 | |
| 19 | # NeutralToGroundPickupBackCube |
| 20 | neutral_to_ground_pickup_back_cube_1 = np.array([3.153228, -0.497009]) |
| 21 | neutral_to_ground_pickup_back_cube_2 = np.array([2.972776, -1.026820]) |
| 22 | neutral_to_hp_pickup_back_cube_alpha_rolls = [ |
| 23 | (0.7, 0.0), |
| 24 | (.9, -np.pi / 2.0), |
| 25 | ] |
| 26 | ground_pickup_back_cube = to_theta_with_circular_index_and_roll( |
| 27 | -1.102, 0.224, -np.pi / 2.0, circular_index=1) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 28 | |
| 29 | # NeutralToBackMidConeUpScore |
| 30 | neutral_to_score_back_mid_cone_up_1 = np.array([0.994244, -1.417442]) |
| 31 | neutral_to_score_back_mid_cone_up_2 = np.array([1.711325, -0.679748]) |
| 32 | score_back_mid_cone_up_pos = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 33 | -1.41871454, 1.07476162, np.pi / 2.0, circular_index=0) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 34 | |
| 35 | # NeutralToMidConeDownScore |
| 36 | neutral_to_score_mid_cone_down_1 = np.array([3.394572, -0.239378]) |
| 37 | neutral_to_score_mid_cone_down_2 = np.array([3.654854, -0.626835]) |
| 38 | score_mid_cone_down_pos = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 39 | -1.37792406, 0.81332449, np.pi / 2.0, circular_index=1) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 40 | |
| 41 | # NeutralToMidConeDownScore |
| 42 | neutral_to_hp_pickup_back_cone_up_1 = np.array([2.0, -0.239378]) |
| 43 | neutral_to_hp_pickup_back_cone_up_2 = np.array([1.6, -0.626835]) |
| 44 | neutral_to_hp_pickup_back_cone_up_alpha_rolls = [ |
| 45 | (0.7, 0.0), |
| 46 | (.9, np.pi / 2.0), |
| 47 | ] |
| 48 | hp_pickup_back_cone_up = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 49 | -1.1050539, 1.31390128, np.pi / 2.0, circular_index=0) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 50 | |
| 51 | # NeutralToFrontHighConeUpScore |
| 52 | neutral_to_score_front_high_cone_up_1 = np.array([2.594244, 0.417442]) |
| 53 | neutral_to_score_front_high_cone_up_2 = np.array([1.51325, 0.679748]) |
| 54 | score_front_high_cone_up_pos = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 55 | 0.98810344, 1.37536719, -np.pi / 2.0, circular_index=0) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 56 | |
| 57 | # NeutralToFrontMidConeUpScore |
| 58 | neutral_to_score_front_mid_cone_up_1 = np.array([3.0, 0.317442]) |
| 59 | neutral_to_score_front_mid_cone_up_2 = np.array([2.9, 0.479748]) |
| 60 | score_front_mid_cone_up_pos = to_theta_with_circular_index_and_roll( |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 61 | 0.43740453, 1.06330555, -np.pi / 2.0, circular_index=0) |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 62 | |
| 63 | neutral_to_cone_down_1 = np.array([2.396694, 0.508020]) |
| 64 | neutral_to_cone_down_2 = np.array([2.874513, 0.933160]) |
| 65 | cone_down_pos = to_theta_with_circular_index_and_roll(0.7, |
| 66 | 0.11, |
| 67 | np.pi / 2.0, |
| 68 | circular_index=0) |
| 69 | |
| 70 | neutral_to_cube_1 = np.array([2.396694, 0.508020]) |
| 71 | neutral_to_cube_2 = np.array([2.874513, 0.933160]) |
| 72 | |
| 73 | cube_pos = to_theta_with_circular_index_and_roll(0.7, |
| 74 | 0.24, |
| 75 | np.pi / 2.0, |
| 76 | circular_index=0) |
| 77 | |
| 78 | neutral_to_pickup_control_alpha_rolls = [ |
| 79 | (0.30, 0.0), |
| 80 | (.95, np.pi / 2.0), |
| 81 | ] |
Austin Schuh | 76dd4e7 | 2023-02-22 21:23:57 -0800 | [diff] [blame] | 82 | |
| 83 | neutral_to_score_1 = np.array([0.994244, -1.417442]) |
| 84 | neutral_to_score_2 = np.array([1.711325, -0.679748]) |
| 85 | |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 86 | score_low_pos = to_theta_with_circular_index_and_roll(-(0.41 / 2 + 0.49), |
| 87 | 0 + 0.05, |
| 88 | np.pi / 2.0, |
| 89 | circular_index=1) |
Maxwell Henderson | f5123fe | 2023-02-04 13:44:41 -0800 | [diff] [blame] | 90 | |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 91 | neutral_to_score_low_2 = np.array([3.37926599, -0.73664663]) |
| 92 | |
| 93 | score_mid_cube_pos = to_theta_with_circular_index_and_roll(-(0.58 + 0.49), |
| 94 | 0.6 + 0.05, |
| 95 | np.pi / 2.0, |
| 96 | circular_index=0) |
| 97 | |
| 98 | score_high_cone_pos = to_theta_with_circular_index_and_roll(-1.01, |
| 99 | 1.17 + 0.05, |
| 100 | np.pi / 2.0, |
| 101 | circular_index=0) |
| 102 | |
| 103 | score_high_cube_pos = to_theta_with_circular_index_and_roll(-1.01, |
| 104 | 0.90 + 0.05, |
| 105 | np.pi / 2.0, |
| 106 | circular_index=0) |
| 107 | |
| 108 | neutral_to_back_score_control_alpha_rolls = [(0.40, 0.0), (.95, np.pi / 2.0)] |
| 109 | neutral_to_front_score_control_alpha_rolls = [(0.40, 0.0), (.95, -np.pi / 2.0)] |
| 110 | |
| 111 | points = [(neutral, "NeutralPos"), |
| 112 | (ground_pickup_back_cone_up, "GroundPickupBackConeUp"), |
| 113 | (ground_pickup_back_cone_down, "GroundPickupBackConeDown"), |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 114 | (ground_pickup_back_cube, "GroundPickupBackCube"), |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 115 | (hp_pickup_back_cone_up, "HPPickupBackConeUp"), |
| 116 | (cone_down_pos, "ConeDownPos"), (score_low_pos, "ScoreLowPos"), |
| 117 | (score_back_mid_cone_up_pos, "ScoreBackMidConeUpPos"), |
| 118 | (score_front_high_cone_up_pos, "ScoreFrontHighConeUpPos"), |
| 119 | (score_front_mid_cone_up_pos, "ScoreFrontMidConeUpPos"), |
| 120 | (score_mid_cone_down_pos, "ScoreBackMidConeDownPos"), |
| 121 | (score_mid_cube_pos, "ScoreMidCubePos"), |
| 122 | (score_high_cone_pos, "ScoreHighConePos"), |
| 123 | (score_high_cube_pos, "ScoreHighCubePos"), (cube_pos, "CubePos")] |
Maxwell Henderson | 83cf6d6 | 2023-02-10 20:29:26 -0800 | [diff] [blame] | 124 | front_points = [] |
| 125 | back_points = [] |
| 126 | unnamed_segments = [] |
milind-u | 3738518 | 2023-02-20 15:07:28 -0800 | [diff] [blame] | 127 | named_segments = [ |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 128 | ThetaSplineSegment("NeutralToGroundPickupBackConeUp", neutral, |
| 129 | neutral_to_cone_up_1, neutral_to_cone_up_2, |
| 130 | ground_pickup_back_cone_up, |
milind-u | 18a901d | 2023-02-17 21:51:55 -0800 | [diff] [blame] | 131 | neutral_to_pickup_control_alpha_rolls), |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 132 | ThetaSplineSegment("NeutralToGroundPickupBackConeDown", neutral, |
| 133 | neutral_to_ground_pickup_back_cone_down_1, |
| 134 | neutral_to_ground_pickup_back_cone_down_2, |
| 135 | ground_pickup_back_cone_down, |
| 136 | neutral_to_pickup_control_alpha_rolls), |
milind-u | 68842e1 | 2023-02-26 12:45:40 -0800 | [diff] [blame^] | 137 | ThetaSplineSegment("NeutralToGroundPickupBackCube", neutral, |
| 138 | neutral_to_ground_pickup_back_cube_1, |
| 139 | neutral_to_ground_pickup_back_cube_2, |
| 140 | ground_pickup_back_cube, |
| 141 | neutral_to_hp_pickup_back_cube_alpha_rolls), |
Maxwell Henderson | 1ac7aac | 2023-02-23 17:35:32 -0800 | [diff] [blame] | 142 | ThetaSplineSegment("NeutralToHPPickupBackConeUp", neutral, |
| 143 | neutral_to_hp_pickup_back_cone_up_1, |
| 144 | neutral_to_hp_pickup_back_cone_up_2, |
| 145 | hp_pickup_back_cone_up, |
| 146 | neutral_to_hp_pickup_back_cone_up_alpha_rolls), |
| 147 | ThetaSplineSegment("NeutralToFrontHighConeUpScore", neutral, |
| 148 | neutral_to_score_front_high_cone_up_1, |
| 149 | neutral_to_score_front_high_cone_up_2, |
| 150 | score_front_high_cone_up_pos, |
| 151 | neutral_to_front_score_control_alpha_rolls), |
| 152 | ThetaSplineSegment("NeutralToFrontMidConeUpScore", neutral, |
| 153 | neutral_to_score_front_mid_cone_up_1, |
| 154 | neutral_to_score_front_mid_cone_up_2, |
| 155 | score_front_mid_cone_up_pos, |
| 156 | neutral_to_front_score_control_alpha_rolls), |
| 157 | ThetaSplineSegment("NeutralToConeDown", neutral, neutral_to_cone_down_1, |
| 158 | neutral_to_cone_down_2, cone_down_pos, |
| 159 | neutral_to_pickup_control_alpha_rolls), |
| 160 | ThetaSplineSegment("NeutralToCube", neutral, neutral_to_cube_1, |
| 161 | neutral_to_cube_2, cube_pos, |
| 162 | neutral_to_pickup_control_alpha_rolls), |
| 163 | ThetaSplineSegment("NeutralToLowScore", neutral, neutral_to_score_1, |
| 164 | neutral_to_score_low_2, score_low_pos, |
| 165 | neutral_to_back_score_control_alpha_rolls), |
| 166 | ThetaSplineSegment("NeutralToBackMidConeUpScore", neutral, |
| 167 | neutral_to_score_back_mid_cone_up_1, |
| 168 | neutral_to_score_back_mid_cone_up_2, |
| 169 | score_back_mid_cone_up_pos, |
| 170 | neutral_to_back_score_control_alpha_rolls), |
| 171 | ThetaSplineSegment("NeutralToMidConeDownScore", neutral, |
| 172 | neutral_to_score_mid_cone_down_1, |
| 173 | neutral_to_score_mid_cone_down_2, |
| 174 | score_mid_cone_down_pos, |
| 175 | neutral_to_back_score_control_alpha_rolls), |
| 176 | ThetaSplineSegment("NeutralToMidCubeScore", neutral, neutral_to_score_1, |
| 177 | neutral_to_score_2, score_mid_cube_pos, |
| 178 | neutral_to_back_score_control_alpha_rolls), |
| 179 | ThetaSplineSegment("NeutralToHighConeScore", neutral, neutral_to_score_1, |
| 180 | neutral_to_score_2, score_high_cone_pos, |
| 181 | neutral_to_back_score_control_alpha_rolls), |
| 182 | ThetaSplineSegment("NeutralToHighCubeScore", neutral, neutral_to_score_1, |
| 183 | neutral_to_score_2, score_high_cube_pos, |
| 184 | neutral_to_back_score_control_alpha_rolls), |
Maxwell Henderson | f5123fe | 2023-02-04 13:44:41 -0800 | [diff] [blame] | 185 | ] |
milind-u | 3738518 | 2023-02-20 15:07:28 -0800 | [diff] [blame] | 186 | |
milind-u | 18a901d | 2023-02-17 21:51:55 -0800 | [diff] [blame] | 187 | segments = named_segments + unnamed_segments |