blob: 9b9ba3041ed889060aa9bed4adbf86afeca40adf [file] [log] [blame]
Austin Schuh378483c2019-01-20 16:36:40 -08001load("//aos/build:queues.bzl", "queue_library")
James Kuszmaul1057ce82019-02-09 17:58:24 -08002load("//tools/build_rules:select.bzl", "cpu_select", "compiler_select")
Austin Schuh378483c2019-01-20 16:36:40 -08003
4genrule(
5 name = "genrule_drivetrain",
6 outs = [
7 "drivetrain_dog_motor_plant.h",
8 "drivetrain_dog_motor_plant.cc",
9 "kalman_drivetrain_motor_plant.h",
10 "kalman_drivetrain_motor_plant.cc",
11 ],
12 cmd = "$(location //y2019/control_loops/python:drivetrain) $(OUTS)",
13 tools = [
14 "//y2019/control_loops/python:drivetrain",
15 ],
16)
17
18genrule(
19 name = "genrule_polydrivetrain",
20 outs = [
21 "polydrivetrain_dog_motor_plant.h",
22 "polydrivetrain_dog_motor_plant.cc",
23 "polydrivetrain_cim_plant.h",
24 "polydrivetrain_cim_plant.cc",
25 "hybrid_velocity_drivetrain.h",
26 "hybrid_velocity_drivetrain.cc",
27 ],
28 cmd = "$(location //y2019/control_loops/python:polydrivetrain) $(OUTS)",
29 tools = [
30 "//y2019/control_loops/python:polydrivetrain",
31 ],
32)
33
James Kuszmaulf5f50dd2019-03-23 12:43:15 -070034cc_binary(
35 name = "replay_localizer",
36 srcs = [
37 "replay_localizer.cc",
38 ],
39 defines =
40 cpu_select({
41 "amd64": [
42 "SUPPORT_PLOT=1",
43 ],
44 "arm": [],
45 }),
46 linkstatic = True,
47 deps = [
48 "//frc971/control_loops/drivetrain:localizer_queue",
49 ":localizer",
50 ":event_loop_localizer",
51 ":drivetrain_base",
52 "@com_github_gflags_gflags//:gflags",
53 "//y2019:constants",
54 "//frc971/control_loops/drivetrain:drivetrain_queue",
55 "//aos:init",
56 "//aos/controls:replay_control_loop",
57 "//frc971/queues:gyro",
58 "//frc971/wpilib:imu_queue",
59 ] + cpu_select({
60 "amd64": [
61 "//third_party/matplotlib-cpp",
62 ],
63 "arm": [],
64 }),
65)
66
Austin Schuh378483c2019-01-20 16:36:40 -080067cc_library(
68 name = "polydrivetrain_plants",
69 srcs = [
70 "drivetrain_dog_motor_plant.cc",
71 "hybrid_velocity_drivetrain.cc",
72 "kalman_drivetrain_motor_plant.cc",
73 "polydrivetrain_dog_motor_plant.cc",
74 ],
75 hdrs = [
76 "drivetrain_dog_motor_plant.h",
77 "hybrid_velocity_drivetrain.h",
78 "kalman_drivetrain_motor_plant.h",
79 "polydrivetrain_dog_motor_plant.h",
80 ],
81 visibility = ["//visibility:public"],
82 deps = [
83 "//frc971/control_loops:hybrid_state_feedback_loop",
84 "//frc971/control_loops:state_feedback_loop",
85 ],
86)
87
88cc_library(
89 name = "drivetrain_base",
90 srcs = [
91 "drivetrain_base.cc",
92 ],
93 hdrs = [
94 "drivetrain_base.h",
95 ],
96 visibility = ["//visibility:public"],
97 deps = [
98 ":polydrivetrain_plants",
99 "//frc971:shifter_hall_effect",
100 "//frc971/control_loops/drivetrain:drivetrain_config",
101 ],
102)
103
104cc_binary(
105 name = "drivetrain",
106 srcs = [
107 "drivetrain_main.cc",
108 ],
109 visibility = ["//visibility:public"],
110 deps = [
111 ":drivetrain_base",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800112 ":event_loop_localizer",
Austin Schuh378483c2019-01-20 16:36:40 -0800113 "//aos:init",
Austin Schuh55a13dc2019-01-27 22:39:03 -0800114 "//aos/events:shm-event-loop",
Austin Schuh378483c2019-01-20 16:36:40 -0800115 "//frc971/control_loops/drivetrain:drivetrain_lib",
116 ],
117)
James Kuszmaul57c7c9b2019-01-27 16:16:01 -0800118
James Kuszmaul09f564a2019-02-18 17:37:09 -0800119queue_library(
James Kuszmaul7d1ef442019-03-23 20:20:50 -0700120 name = "target_selector_queue",
121 srcs = [
122 "target_selector.q",
123 ],
124 visibility = ["//visibility:public"],
125)
126
127queue_library(
James Kuszmaul09f564a2019-02-18 17:37:09 -0800128 name = "camera_queue",
129 srcs = [
130 "camera.q",
131 ],
Brian Silvermanc41fb862019-03-02 21:14:46 -0800132 visibility = ["//visibility:public"],
James Kuszmaul09f564a2019-02-18 17:37:09 -0800133)
134
James Kuszmaul57c7c9b2019-01-27 16:16:01 -0800135cc_library(
136 name = "camera",
137 srcs = ["camera.h"],
James Kuszmaul22c5ab32019-02-09 14:45:58 -0800138 visibility = ["//y2019:__pkg__"],
James Kuszmaul57c7c9b2019-01-27 16:16:01 -0800139 deps = [
140 "//aos/containers:sized_array",
141 "//frc971/control_loops:pose",
142 ],
143)
144
145cc_test(
146 name = "camera_test",
147 srcs = ["camera_test.cc"],
148 deps = [
149 ":camera",
150 "//aos/testing:googletest",
151 ],
152)
James Kuszmaul1057ce82019-02-09 17:58:24 -0800153
154cc_library(
155 name = "localizer",
156 hdrs = ["localizer.h"],
157 deps = [
158 ":camera",
159 "//frc971/control_loops:pose",
160 "//frc971/control_loops/drivetrain:hybrid_ekf",
161 ],
162)
163
James Kuszmaul09f564a2019-02-18 17:37:09 -0800164cc_library(
James Kuszmauld73d0252019-03-02 14:57:09 -0800165 name = "target_selector",
166 srcs = ["target_selector.cc"],
167 hdrs = ["target_selector.h"],
168 deps = [
169 ":camera",
James Kuszmaul7d1ef442019-03-23 20:20:50 -0700170 ":target_selector_queue",
James Kuszmauld73d0252019-03-02 14:57:09 -0800171 "//frc971/control_loops:pose",
172 "//frc971/control_loops/drivetrain:localizer",
173 "//y2019:constants",
James Kuszmaul7d1ef442019-03-23 20:20:50 -0700174 "//y2019/control_loops/superstructure:superstructure_queue",
James Kuszmauld73d0252019-03-02 14:57:09 -0800175 ],
176)
177
178cc_test(
179 name = "target_selector_test",
180 srcs = ["target_selector_test.cc"],
181 deps = [
182 ":target_selector",
Austin Schuh9fe68f72019-08-10 19:32:03 -0700183 "//aos/events:simulated_event_loop",
James Kuszmauld73d0252019-03-02 14:57:09 -0800184 "//aos/testing:googletest",
James Kuszmaul7d1ef442019-03-23 20:20:50 -0700185 "//aos/testing:test_shm",
James Kuszmauld73d0252019-03-02 14:57:09 -0800186 ],
187)
188
189cc_library(
James Kuszmaul09f564a2019-02-18 17:37:09 -0800190 name = "event_loop_localizer",
191 srcs = ["event_loop_localizer.cc"],
192 hdrs = ["event_loop_localizer.h"],
193 deps = [
194 ":camera_queue",
195 ":localizer",
James Kuszmauld73d0252019-03-02 14:57:09 -0800196 ":target_selector",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800197 "//frc971/control_loops/drivetrain:localizer",
198 "//y2019:constants",
199 ],
200)
201
James Kuszmaul1057ce82019-02-09 17:58:24 -0800202cc_test(
203 name = "localizer_test",
204 srcs = ["localizer_test.cc"],
205 defines =
206 cpu_select({
207 "amd64": [
208 "SUPPORT_PLOT=1",
209 ],
210 "arm": [],
211 }),
212 linkstatic = True,
Austin Schuh9fe68f72019-08-10 19:32:03 -0700213 shard_count = 5,
James Kuszmaul1057ce82019-02-09 17:58:24 -0800214 deps = [
215 ":localizer",
216 ":drivetrain_base",
217 "//aos/testing:googletest",
218 "//aos/testing:random_seed",
219 "//aos/testing:test_shm",
220 "//frc971/control_loops/drivetrain:trajectory",
221 "//y2019:constants",
222 "//frc971/control_loops/drivetrain:splinedrivetrain",
223 "@com_github_gflags_gflags//:gflags",
224 ] + cpu_select({
225 "amd64": [
226 "//third_party/matplotlib-cpp",
227 ],
228 "arm": [],
229 }),
230)
James Kuszmaul09f564a2019-02-18 17:37:09 -0800231
232cc_test(
233 name = "localized_drivetrain_test",
234 srcs = ["localized_drivetrain_test.cc"],
235 deps = [
236 ":camera_queue",
237 ":drivetrain_base",
238 ":event_loop_localizer",
239 ":localizer",
240 "//aos/controls:control_loop_test",
Austin Schuh8a633d52019-05-12 15:04:01 -0700241 "//aos/events:shm-event-loop",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800242 "//aos/network:team_number",
243 "//frc971/control_loops:team_number_test_environment",
244 "//frc971/control_loops/drivetrain:drivetrain_lib",
245 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
246 ],
247)