blob: 9aca44f8a7573bb7b7680b3604a9d6b9d83c4ff8 [file] [log] [blame]
Austin Schuha1d006e2022-09-14 21:50:42 -07001load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
Alex Perrycb7da4b2019-08-28 19:35:56 -07002load("//aos:config.bzl", "aos_config")
Austin Schuh41fad8c2021-10-23 21:25:12 -07003load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
Austin Schuh8f99c822024-05-05 22:43:40 -07004load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
5load("//tools/build_rules:js.bzl", "ts_project")
6load("//tools/build_rules:select.bzl", "cpu_select")
7load("//tools/build_rules:template.bzl", "jinja2_template")
Comran Morshed5323ecb2015-12-26 20:50:55 +00008
Philipp Schradercc016b32021-12-30 08:59:58 -08009package(default_visibility = ["//visibility:public"])
10
James Kuszmaulf01da392023-12-14 11:22:14 -080011static_flatbuffer(
Maxwell Hendersoncef6f042023-05-26 14:38:09 -070012 name = "drivetrain_can_position_fbs",
13 srcs = ["drivetrain_can_position.fbs"],
Maxwell Henderson10ed5c32024-01-09 12:40:54 -080014 deps = ["//frc971/control_loops:can_talonfx_fbs"],
Maxwell Hendersoncef6f042023-05-26 14:38:09 -070015)
16
James Kuszmaulf01da392023-12-14 11:22:14 -080017static_flatbuffer(
James Kuszmaul75a18c52021-03-10 22:02:07 -080018 name = "spline_goal_fbs",
19 srcs = ["spline_goal.fbs"],
James Kuszmaulf01da392023-12-14 11:22:14 -080020 deps = ["//frc971/control_loops:control_loops_fbs"],
James Kuszmaul75a18c52021-03-10 22:02:07 -080021)
22
James Kuszmaulf01da392023-12-14 11:22:14 -080023static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -070024 name = "drivetrain_goal_fbs",
25 srcs = ["drivetrain_goal.fbs"],
James Kuszmaulf01da392023-12-14 11:22:14 -080026 deps = [
27 ":spline_goal_fbs",
28 "//frc971/control_loops:control_loops_fbs",
James Kuszmaul75a18c52021-03-10 22:02:07 -080029 ],
Comran Morshed5323ecb2015-12-26 20:50:55 +000030)
31
James Kuszmaulf01da392023-12-14 11:22:14 -080032static_flatbuffer(
James Kuszmaulf6aa0382024-03-01 19:46:05 -080033 name = "rio_localizer_inputs_fbs",
34 srcs = ["rio_localizer_inputs.fbs"],
35)
36
37static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -070038 name = "drivetrain_output_fbs",
39 srcs = ["drivetrain_output.fbs"],
Alex Perrycb7da4b2019-08-28 19:35:56 -070040)
41
James Kuszmaulf01da392023-12-14 11:22:14 -080042static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -070043 name = "drivetrain_position_fbs",
44 srcs = ["drivetrain_position.fbs"],
Alex Perrycb7da4b2019-08-28 19:35:56 -070045)
46
James Kuszmaulf01da392023-12-14 11:22:14 -080047static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -070048 name = "drivetrain_status_fbs",
49 srcs = ["drivetrain_status.fbs"],
Niko Sohmers43f71982024-01-03 19:43:59 -080050 deps = [
51 "//frc971/control_loops:control_loops_fbs",
52 "//frc971/control_loops:encoder_fault_status_fbs",
53 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070054)
55
James Kuszmaulf01da392023-12-14 11:22:14 -080056static_flatbuffer(
James Kuszmaul75a18c52021-03-10 22:02:07 -080057 name = "trajectory_fbs",
58 srcs = ["trajectory.fbs"],
James Kuszmaulf01da392023-12-14 11:22:14 -080059 deps = ["//frc971/control_loops:control_loops_fbs"],
James Kuszmaul75a18c52021-03-10 22:02:07 -080060)
61
Austin Schuh41fad8c2021-10-23 21:25:12 -070062cc_static_flatbuffer(
63 name = "trajectory_schema",
64 function = "frc971::control_loops::drivetrain::fb::TrajectorySchema",
65 target = ":trajectory_fbs_reflection_out",
66 visibility = ["//visibility:public"],
67)
68
Alex Perry2124ae82020-03-07 14:19:06 -080069flatbuffer_ts_library(
70 name = "drivetrain_status_ts_fbs",
71 srcs = ["drivetrain_status.fbs"],
Philipp Schraderdada1072020-11-24 11:34:46 -080072 target_compatible_with = ["@platforms//os:linux"],
Niko Sohmers43f71982024-01-03 19:43:59 -080073 deps = [
74 "//frc971/control_loops:control_loops_ts_fbs",
75 "//frc971/control_loops:encoder_fault_status_ts_fbs",
76 ],
Alex Perry2124ae82020-03-07 14:19:06 -080077)
78
Niko Sohmers76f47562023-12-20 20:59:06 -080079flatbuffer_ts_library(
80 name = "drivetrain_position_ts_fbs",
81 srcs = ["drivetrain_position.fbs"],
82 target_compatible_with = ["@platforms//os:linux"],
83)
84
85flatbuffer_ts_library(
86 name = "drivetrain_can_position_ts_fbs",
87 srcs = ["drivetrain_can_position.fbs"],
88 target_compatible_with = ["@platforms//os:linux"],
Maxwell Henderson10ed5c32024-01-09 12:40:54 -080089 deps = ["//frc971/control_loops:can_talonfx_ts_fbs"],
Niko Sohmers76f47562023-12-20 20:59:06 -080090)
91
Alex Perrycb7da4b2019-08-28 19:35:56 -070092genrule(
93 name = "drivetrain_goal_float_fbs_generated",
94 srcs = ["drivetrain_goal.fbs"],
95 outs = ["drivetrain_goal_float.fbs"],
96 cmd = "cat $(SRCS) | sed 's/double/float/g' > $(OUTS)",
Alex Perrycb7da4b2019-08-28 19:35:56 -070097)
98
99genrule(
100 name = "drivetrain_position_float_fbs_generated",
101 srcs = ["drivetrain_position.fbs"],
102 outs = ["drivetrain_position_float.fbs"],
103 cmd = "cat $(SRCS) | sed 's/double/float/g' > $(OUTS)",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700104)
105
106genrule(
107 name = "drivetrain_output_float_fbs_generated",
108 srcs = ["drivetrain_output.fbs"],
109 outs = ["drivetrain_output_float.fbs"],
110 cmd = "cat $(SRCS) | sed 's/double/float/g' > $(OUTS)",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700111)
112
113genrule(
114 name = "drivetrain_status_float_fbs_generated",
115 srcs = ["drivetrain_status.fbs"],
116 outs = ["drivetrain_status_float.fbs"],
117 cmd = "cat $(SRCS) | sed 's/double/float/g' > $(OUTS)",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700118)
119
James Kuszmaulf01da392023-12-14 11:22:14 -0800120static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -0700121 name = "drivetrain_goal_float_fbs",
122 srcs = ["drivetrain_goal_float.fbs"],
James Kuszmaulf01da392023-12-14 11:22:14 -0800123 deps = [
124 ":spline_goal_fbs",
125 "//frc971/control_loops:control_loops_fbs",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800126 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700127)
128
James Kuszmaulf01da392023-12-14 11:22:14 -0800129static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -0700130 name = "drivetrain_output_float_fbs",
131 srcs = ["drivetrain_output_float.fbs"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700132)
133
James Kuszmaulf01da392023-12-14 11:22:14 -0800134static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -0700135 name = "drivetrain_position_float_fbs",
136 srcs = ["drivetrain_position_float.fbs"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700137)
138
James Kuszmaulf01da392023-12-14 11:22:14 -0800139static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -0700140 name = "drivetrain_status_float_fbs",
141 srcs = ["drivetrain_status_float.fbs"],
Niko Sohmers43f71982024-01-03 19:43:59 -0800142 deps = [
143 "//frc971/control_loops:control_loops_fbs",
144 "//frc971/control_loops:encoder_fault_status_fbs",
145 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700146)
147
148aos_config(
James Kuszmaul74d8f972020-02-11 17:13:17 -0800149 name = "simulation_channels",
150 src = "drivetrain_simulation_channels.json",
151 flatbuffers = [
152 ":drivetrain_status_fbs",
153 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800154 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul74d8f972020-02-11 17:13:17 -0800155 visibility = ["//visibility:public"],
156)
157
158aos_config(
159 name = "simulation_config",
160 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800161 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul74d8f972020-02-11 17:13:17 -0800162 visibility = ["//visibility:public"],
163 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800164 ":aos_config",
James Kuszmaul74d8f972020-02-11 17:13:17 -0800165 ":simulation_channels",
166 ],
167)
168
169aos_config(
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800170 name = "aos_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700171 src = "drivetrain_config.json",
172 flatbuffers = [
173 ":drivetrain_goal_fbs",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800174 ":trajectory_fbs",
175 ":spline_goal_fbs",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700176 ":drivetrain_output_fbs",
177 ":drivetrain_status_fbs",
178 ":drivetrain_position_fbs",
Niko Sohmers43f71982024-01-03 19:43:59 -0800179 ":drivetrain_can_position_fbs",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700180 ":localizer_fbs",
Tyler Chatow24b5db12020-01-06 21:16:56 -0800181 "//frc971/queues:gyro_fbs",
182 "//frc971/queues:gyro_uid_fbs",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700183 "//frc971/wpilib:imu_fbs",
Austin Schuhac17fba2020-03-28 15:55:33 -0700184 "//frc971/wpilib:imu_batch_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700185 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800186 target_compatible_with = ["@platforms//os:linux"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700187 visibility = ["//visibility:public"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700188 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800189 "//frc971/input:aos_config",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700190 ],
Comran Morshed5323ecb2015-12-26 20:50:55 +0000191)
192
193cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700194 name = "drivetrain_config",
195 hdrs = [
196 "drivetrain_config.h",
197 ],
198 deps = [
Austin Schuh8f99c822024-05-05 22:43:40 -0700199 ":drivetrain_config_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700200 "//frc971:shifter_hall_effect",
201 "//frc971/control_loops:state_feedback_loop",
James Kuszmaul68025332024-01-20 17:06:02 -0800202 "//frc971/control_loops:state_feedback_loop_converters",
Philipp Schraderdada1072020-11-24 11:34:46 -0800203 ] + select({
James Kuszmaul68025332024-01-20 17:06:02 -0800204 "@platforms//os:linux": [
205 "//frc971/control_loops:hybrid_state_feedback_loop",
206 "//frc971/control_loops:hybrid_state_feedback_loop_converters",
207 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800208 "//conditions:default": [],
209 }),
Comran Morshed5323ecb2015-12-26 20:50:55 +0000210)
211
212cc_library(
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800213 name = "hybrid_ekf",
214 hdrs = ["hybrid_ekf.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800215 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800216 deps = [
217 ":drivetrain_config",
James Kuszmaul3c5b4d32020-02-11 17:22:14 -0800218 "//aos:math",
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800219 "//aos/containers:priority_queue",
James Kuszmaulfedc4612019-03-10 11:24:51 -0700220 "//aos/util:math",
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800221 "//frc971/control_loops:c2d",
222 "//frc971/control_loops:runge_kutta",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700223 "@org_tuxfamily_eigen//:eigen",
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800224 ],
225)
226
227cc_test(
228 name = "hybrid_ekf_test",
229 srcs = ["hybrid_ekf_test.cc"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800230 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800231 deps = [
232 ":drivetrain_test_lib",
233 ":hybrid_ekf",
234 ":trajectory",
235 "//aos/testing:googletest",
236 "//aos/testing:random_seed",
237 "//aos/testing:test_shm",
238 ],
239)
240
James Kuszmaulf01da392023-12-14 11:22:14 -0800241static_flatbuffer(
Alex Perrycb7da4b2019-08-28 19:35:56 -0700242 name = "localizer_fbs",
243 srcs = ["localizer.fbs"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800244 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaulef428a02019-03-02 22:19:41 -0800245)
246
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800247cc_library(
James Kuszmaul3431d622019-02-17 17:07:44 -0800248 name = "localizer",
249 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800250 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul3431d622019-02-17 17:07:44 -0800251 deps = [
252 ":drivetrain_config",
James Kuszmaul3c5b4d32020-02-11 17:22:14 -0800253 ":drivetrain_status_fbs",
James Kuszmaul3431d622019-02-17 17:07:44 -0800254 ":hybrid_ekf",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800255 "//frc971/control_loops:control_loops_fbs",
James Kuszmaul5bc6fc92019-03-01 21:50:06 -0800256 "//frc971/control_loops:pose",
James Kuszmaul3431d622019-02-17 17:07:44 -0800257 ],
258)
259
260cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700261 name = "gear",
262 hdrs = [
263 "gear.h",
264 ],
Austin Schuh093535c2016-03-05 23:21:00 -0800265)
266
267cc_library(
Alex Perry731b4602019-02-02 22:13:01 -0800268 name = "splinedrivetrain",
269 srcs = [
270 "splinedrivetrain.cc",
271 ],
272 hdrs = [
273 "splinedrivetrain.h",
274 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800275 target_compatible_with = ["@platforms//os:linux"],
Alex Perry731b4602019-02-02 22:13:01 -0800276 deps = [
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800277 ":distance_spline",
Alex Perry731b4602019-02-02 22:13:01 -0800278 ":drivetrain_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700279 ":drivetrain_goal_fbs",
280 ":drivetrain_output_fbs",
281 ":drivetrain_status_fbs",
Alex Perry731b4602019-02-02 22:13:01 -0800282 ":spline",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800283 ":spline_goal_fbs",
Alex Perry731b4602019-02-02 22:13:01 -0800284 ":trajectory",
Austin Schuh3d9ccd72020-08-01 15:42:40 -0700285 "//aos:condition",
Alex Perry1ec34522019-02-17 22:44:10 -0800286 "//aos:init",
James Kuszmaulc73bb222019-04-07 12:15:35 -0700287 "//aos/util:math",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700288 "//frc971/control_loops:control_loops_fbs",
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800289 ],
Alex Perry731b4602019-02-02 22:13:01 -0800290)
291
292cc_library(
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800293 name = "line_follow_drivetrain",
294 srcs = [
295 "line_follow_drivetrain.cc",
296 ],
297 hdrs = [
298 "line_follow_drivetrain.h",
299 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800300 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800301 deps = [
302 ":drivetrain_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700303 ":drivetrain_goal_fbs",
304 ":drivetrain_output_fbs",
305 ":drivetrain_status_fbs",
James Kuszmaul5bc6fc92019-03-01 21:50:06 -0800306 ":localizer",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800307 ":spline_goal_fbs",
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800308 "//aos:math",
309 "//aos/util:math",
310 "//frc971/control_loops:c2d",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700311 "//frc971/control_loops:control_loops_fbs",
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800312 "//frc971/control_loops:dlqr",
313 "//frc971/control_loops:pose",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700314 "//frc971/control_loops:profiled_subsystem_fbs",
315 "//y2019/control_loops/superstructure:superstructure_goal_fbs",
316 "@org_tuxfamily_eigen//:eigen",
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800317 ],
318)
319
320cc_test(
321 name = "line_follow_drivetrain_test",
322 srcs = ["line_follow_drivetrain_test.cc"],
323 linkstatic = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800324 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800325 deps = [
326 ":drivetrain_config",
327 ":drivetrain_test_lib",
328 ":line_follow_drivetrain",
329 ":trajectory",
330 "//aos/testing:googletest",
331 "//aos/testing:test_shm",
332 "//third_party/matplotlib-cpp",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700333 "@com_google_absl//absl/flags:flag",
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800334 ],
335)
336
337cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700338 name = "ssdrivetrain",
339 srcs = [
340 "ssdrivetrain.cc",
341 ],
342 hdrs = [
343 "ssdrivetrain.h",
344 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800345 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700346 deps = [
347 ":drivetrain_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700348 ":drivetrain_goal_fbs",
349 ":drivetrain_output_fbs",
Austin Schuh95771d92021-01-23 14:42:25 -0800350 ":drivetrain_states",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700351 ":drivetrain_status_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700352 ":gear",
James Kuszmaul3431d622019-02-17 17:07:44 -0800353 ":localizer",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800354 ":spline_goal_fbs",
John Park33858a32018-09-28 23:05:48 -0700355 "//aos:math",
John Park33858a32018-09-28 23:05:48 -0700356 "//aos/util:log_interval",
357 "//aos/util:trapezoid_profile",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700358 "//frc971:shifter_hall_effect",
359 "//frc971/control_loops:coerce_goal",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700360 "//frc971/control_loops:control_loop",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700361 "//frc971/control_loops:control_loops_fbs",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700362 "//frc971/control_loops:polytope",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700363 "//frc971/control_loops:state_feedback_loop",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700364 "//frc971/input:robot_state_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700365 ],
Comran Morshed5323ecb2015-12-26 20:50:55 +0000366)
367
368cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700369 name = "polydrivetrain",
370 srcs = [
371 "polydrivetrain.cc",
372 ],
373 hdrs = [
374 "polydrivetrain.h",
375 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800376 copts = select({
377 "@platforms//os:none": ["-Wno-type-limits"],
378 "//conditions:default": [],
379 }),
Austin Schuhbcce26a2018-03-26 23:41:24 -0700380 deps = [
381 ":drivetrain_config",
Austin Schuh95771d92021-01-23 14:42:25 -0800382 ":drivetrain_states",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700383 ":gear",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700384 ":spline_goal_fbs",
John Park33858a32018-09-28 23:05:48 -0700385 "//aos:math",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700386 "//frc971/control_loops:coerce_goal",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700387 "//frc971/control_loops:control_loops_fbs",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700388 "//frc971/control_loops:polytope",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700389 "//frc971/control_loops:state_feedback_loop",
Philipp Schraderdada1072020-11-24 11:34:46 -0800390 ] + select({
391 "@platforms//os:linux": [
392 ":drivetrain_goal_fbs",
393 ":drivetrain_output_fbs",
394 ":drivetrain_position_fbs",
395 ":drivetrain_status_fbs",
Philipp Schraderdada1072020-11-24 11:34:46 -0800396 "//aos/util:log_interval",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700397 "//frc971/input:robot_state_fbs",
Philipp Schraderdada1072020-11-24 11:34:46 -0800398 ],
399 "@platforms//os:none": [
400 ":drivetrain_goal_float_fbs",
401 ":drivetrain_output_float_fbs",
402 ":drivetrain_position_float_fbs",
403 ":drivetrain_status_float_fbs",
404 ],
405 }),
Comran Morshed5323ecb2015-12-26 20:50:55 +0000406)
407
Austin Schuh05c5a612016-04-02 15:10:25 -0700408genrule(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700409 name = "genrule_down_estimator",
410 outs = [
411 "down_estimator.h",
412 "down_estimator.cc",
413 ],
414 cmd = "$(location //frc971/control_loops/python:down_estimator) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -0800415 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700416 tools = [
417 "//frc971/control_loops/python:down_estimator",
418 ],
419 visibility = ["//visibility:private"],
Austin Schuh05c5a612016-04-02 15:10:25 -0700420)
421
422cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700423 name = "down_estimator",
424 srcs = [
425 "down_estimator.cc",
426 ],
427 hdrs = [
428 "down_estimator.h",
429 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800430 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700431 deps = [
432 "//frc971/control_loops:state_feedback_loop",
433 ],
Austin Schuh05c5a612016-04-02 15:10:25 -0700434)
435
Comran Morshed5323ecb2015-12-26 20:50:55 +0000436cc_library(
Austin Schuh95771d92021-01-23 14:42:25 -0800437 name = "drivetrain_states",
438 hdrs = ["drivetrain_states.h"],
439)
440
441cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700442 name = "drivetrain_lib",
443 srcs = [
444 "drivetrain.cc",
445 ],
446 hdrs = [
447 "drivetrain.h",
448 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800449 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700450 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700451 ":drivetrain_goal_fbs",
452 ":drivetrain_output_fbs",
453 ":drivetrain_position_fbs",
Austin Schuh95771d92021-01-23 14:42:25 -0800454 ":drivetrain_states",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700455 ":drivetrain_status_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700456 ":gear",
James Kuszmaul3e1bb272020-01-17 18:38:19 -0800457 ":improved_down_estimator",
James Kuszmaule39cbcf2019-02-27 20:48:34 -0800458 ":line_follow_drivetrain",
James Kuszmaul3431d622019-02-17 17:07:44 -0800459 ":localizer",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700460 ":localizer_fbs",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700461 ":polydrivetrain",
James Kuszmaulf6aa0382024-03-01 19:46:05 -0800462 ":rio_localizer_inputs_fbs",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800463 ":spline_goal_fbs",
Alex Perry731b4602019-02-02 22:13:01 -0800464 ":splinedrivetrain",
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800465 ":ssdrivetrain",
John Park33858a32018-09-28 23:05:48 -0700466 "//aos/util:log_interval",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700467 "//frc971/control_loops:control_loop",
Austin Schuh3a378462019-01-04 21:48:04 -0800468 "//frc971/control_loops:runge_kutta",
Tyler Chatow24b5db12020-01-06 21:16:56 -0800469 "//frc971/queues:gyro_fbs",
Austin Schuhac17fba2020-03-28 15:55:33 -0700470 "//frc971/wpilib:imu_batch_fbs",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700471 "//frc971/wpilib:imu_fbs",
James Kuszmaul3e1bb272020-01-17 18:38:19 -0800472 "//frc971/zeroing:imu_zeroer",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700473 ],
Comran Morshed5323ecb2015-12-26 20:50:55 +0000474)
475
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800476cc_library(
477 name = "drivetrain_test_lib",
478 testonly = True,
479 srcs = ["drivetrain_test_lib.cc"],
480 hdrs = ["drivetrain_test_lib.h"],
James Kuszmaul74d8f972020-02-11 17:13:17 -0800481 defines =
482 cpu_select({
483 "amd64": [
484 "SUPPORT_PLOT=1",
485 ],
486 "arm": [],
487 }),
Philipp Schraderdada1072020-11-24 11:34:46 -0800488 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800489 deps = [
490 ":drivetrain_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700491 ":drivetrain_goal_fbs",
492 ":drivetrain_output_fbs",
493 ":drivetrain_position_fbs",
494 ":drivetrain_status_fbs",
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800495 ":trajectory",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700496 "//aos/events:event_loop",
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800497 "//aos/testing:googletest",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700498 "//frc971/control_loops:control_loops_fbs",
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800499 "//frc971/control_loops:state_feedback_loop",
Tyler Chatow24b5db12020-01-06 21:16:56 -0800500 "//frc971/queues:gyro_fbs",
Austin Schuhac17fba2020-03-28 15:55:33 -0700501 "//frc971/wpilib:imu_batch_fbs",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700502 "//frc971/wpilib:imu_fbs",
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800503 "//y2016:constants",
504 "//y2016/control_loops/drivetrain:polydrivetrain_plants",
James Kuszmaul74d8f972020-02-11 17:13:17 -0800505 ] + cpu_select({
506 "amd64": [
507 "//third_party/matplotlib-cpp",
508 ],
509 "arm": [],
510 }),
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800511)
512
Comran Morshed5323ecb2015-12-26 20:50:55 +0000513cc_test(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700514 name = "drivetrain_lib_test",
515 srcs = [
516 "drivetrain_lib_test.cc",
517 ],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700518 data = [":simulation_config"],
Alex Perry04300d62019-02-17 14:37:04 -0800519 defines =
520 cpu_select({
521 "amd64": [
522 "SUPPORT_PLOT=1",
523 ],
524 "arm": [],
525 }),
526 linkstatic = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800527 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhbcce26a2018-03-26 23:41:24 -0700528 deps = [
529 ":drivetrain_config",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700530 ":drivetrain_goal_fbs",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700531 ":drivetrain_lib",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700532 ":drivetrain_output_fbs",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700533 ":drivetrain_position_fbs",
534 ":drivetrain_status_fbs",
James Kuszmaul109ed8d2019-02-17 21:41:04 -0800535 ":drivetrain_test_lib",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700536 ":localizer_fbs",
537 ":trajectory_generator",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800538 "//aos/events/logging:log_writer",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700539 "//aos/testing:googletest",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700540 "//frc971/control_loops:control_loop_test",
Tyler Chatow24b5db12020-01-06 21:16:56 -0800541 "//frc971/queues:gyro_fbs",
James Kuszmaul3e1bb272020-01-17 18:38:19 -0800542 "//frc971/wpilib:imu_fbs",
Alex Perry04300d62019-02-17 14:37:04 -0800543 ] + cpu_select({
544 "amd64": [
545 "//third_party/matplotlib-cpp",
546 ],
547 "arm": [],
548 }),
Comran Morshed5323ecb2015-12-26 20:50:55 +0000549)
Brian Silverman6260c092018-01-14 15:21:36 -0800550
551genrule(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700552 name = "genrule_haptic_wheel",
553 outs = [
554 "haptic_wheel.h",
555 "haptic_wheel.cc",
556 "integral_haptic_wheel.h",
557 "integral_haptic_wheel.cc",
558 "haptic_trigger.h",
559 "haptic_trigger.cc",
560 "integral_haptic_trigger.h",
561 "integral_haptic_trigger.cc",
562 ],
563 cmd = "$(location //frc971/control_loops/python:haptic_wheel) $(OUTS)",
Austin Schuhbcce26a2018-03-26 23:41:24 -0700564 tools = [
565 "//frc971/control_loops/python:haptic_wheel",
566 ],
567 visibility = ["//visibility:private"],
Brian Silverman6260c092018-01-14 15:21:36 -0800568)
569
570cc_library(
Austin Schuhbcce26a2018-03-26 23:41:24 -0700571 name = "haptic_wheel",
572 srcs = [
573 "haptic_trigger.cc",
574 "haptic_wheel.cc",
575 "integral_haptic_trigger.cc",
576 "integral_haptic_wheel.cc",
577 ],
578 hdrs = [
579 "haptic_trigger.h",
580 "haptic_wheel.h",
581 "integral_haptic_trigger.h",
582 "integral_haptic_wheel.h",
583 ],
584 deps = [
585 "//frc971/control_loops:state_feedback_loop",
586 ],
Brian Silverman6260c092018-01-14 15:21:36 -0800587)
Austin Schuhc2b08772018-12-19 18:05:06 +1100588
589cc_library(
590 name = "spline",
591 srcs = ["spline.cc"],
592 hdrs = ["spline.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800593 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhc2b08772018-12-19 18:05:06 +1100594 deps = [
Austin Schuhf49b4e32019-01-13 17:26:58 -0800595 "//frc971/control_loops:binomial",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700596 "@org_tuxfamily_eigen//:eigen",
Austin Schuhc2b08772018-12-19 18:05:06 +1100597 ],
598)
599
Alex Perrya60da442019-01-21 19:00:27 -0500600cc_binary(
601 name = "spline.so",
602 srcs = ["libspline.cc"],
James Kuszmaul2ed7b3c2019-02-09 18:26:19 -0800603 linkshared = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800604 target_compatible_with = ["@platforms//os:linux"],
Alex Perrya60da442019-01-21 19:00:27 -0500605 deps = [
606 ":distance_spline",
607 ":spline",
Alex Perry0603b542019-01-25 20:29:51 -0800608 ":trajectory",
Austin Schuhfc0caa82023-08-25 14:25:03 -0700609 "//aos/logging",
Alex Perry0603b542019-01-25 20:29:51 -0800610 "//aos/network:team_number",
James Kuszmaul8aa37cb2020-03-01 10:27:58 -0800611 "//y2020/control_loops/drivetrain:drivetrain_base",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700612 "@org_tuxfamily_eigen//:eigen",
Alex Perrya60da442019-01-21 19:00:27 -0500613 ],
Alex Perrya60da442019-01-21 19:00:27 -0500614)
615
Austin Schuhc2b08772018-12-19 18:05:06 +1100616cc_test(
617 name = "spline_test",
618 srcs = [
619 "spline_test.cc",
620 ],
James Kuszmaule32fa932021-05-11 21:38:16 -0700621 linkstatic = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800622 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhc2b08772018-12-19 18:05:06 +1100623 deps = [
624 ":spline",
Stephan Pleines85b295c2024-02-04 17:50:26 -0800625 "//aos/analysis:in_process_plotter",
Austin Schuhc2b08772018-12-19 18:05:06 +1100626 "//aos/testing:googletest",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700627 "@com_google_absl//absl/flags:flag",
Austin Schuhc2b08772018-12-19 18:05:06 +1100628 ],
629)
Austin Schuh941b46d2018-12-19 18:06:05 +1100630
631cc_library(
632 name = "distance_spline",
633 srcs = ["distance_spline.cc"],
634 hdrs = ["distance_spline.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800635 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh941b46d2018-12-19 18:06:05 +1100636 deps = [
637 ":spline",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800638 ":trajectory_fbs",
Austin Schuhf7c65202022-11-04 21:28:20 -0700639 "//aos/containers:sized_array",
Austin Schuha6e7b212019-01-20 13:53:01 -0800640 "//aos/logging",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800641 "//frc971/control_loops:control_loops_fbs",
Austin Schuh941b46d2018-12-19 18:06:05 +1100642 "//frc971/control_loops:fixed_quadrature",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700643 "@com_google_absl//absl/log",
644 "@com_google_absl//absl/log:check",
Austin Schuhf7c65202022-11-04 21:28:20 -0700645 "@com_google_absl//absl/types:span",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700646 "@org_tuxfamily_eigen//:eigen",
Austin Schuh941b46d2018-12-19 18:06:05 +1100647 ],
648)
649
650cc_test(
651 name = "distance_spline_test",
652 srcs = [
653 "distance_spline_test.cc",
654 ],
Austin Schuh9b0b6432019-01-13 21:15:17 -0800655 defines =
656 cpu_select({
657 "amd64": [
658 "SUPPORT_PLOT=1",
659 ],
660 "arm": [],
661 }),
662 linkstatic = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800663 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh941b46d2018-12-19 18:06:05 +1100664 deps = [
665 ":distance_spline",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800666 "//aos:flatbuffers",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700667 "//aos/testing:googletest",
Austin Schuha6e7b212019-01-20 13:53:01 -0800668 "//aos/testing:test_shm",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700669 "@com_google_absl//absl/flags:flag",
Austin Schuh9b0b6432019-01-13 21:15:17 -0800670 ] + cpu_select({
671 "amd64": [
672 "//third_party/matplotlib-cpp",
673 ],
674 "arm": [],
675 }),
Austin Schuh941b46d2018-12-19 18:06:05 +1100676)
Austin Schuhec7f06d2019-01-04 07:47:15 +1100677
678cc_library(
679 name = "trajectory",
680 srcs = ["trajectory.cc"],
681 hdrs = ["trajectory.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800682 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhec7f06d2019-01-04 07:47:15 +1100683 deps = [
684 ":distance_spline",
685 ":drivetrain_config",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800686 ":spline_goal_fbs",
687 ":trajectory_fbs",
James Kuszmaul5e8ce312021-03-27 14:59:17 -0700688 "//aos/util:math",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100689 "//frc971/control_loops:c2d",
690 "//frc971/control_loops:dlqr",
691 "//frc971/control_loops:hybrid_state_feedback_loop",
692 "//frc971/control_loops:runge_kutta",
693 "//frc971/control_loops:state_feedback_loop",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700694 "@org_tuxfamily_eigen//:eigen",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100695 ],
696)
697
James Kuszmaul75a18c52021-03-10 22:02:07 -0800698cc_library(
699 name = "trajectory_generator",
700 srcs = ["trajectory_generator.cc"],
701 hdrs = ["trajectory_generator.h"],
702 target_compatible_with = ["@platforms//os:linux"],
703 deps = [
704 ":distance_spline",
705 ":drivetrain_config",
706 ":spline_goal_fbs",
707 ":trajectory",
708 ":trajectory_fbs",
709 ],
710)
711
Austin Schuhec7f06d2019-01-04 07:47:15 +1100712cc_binary(
713 name = "trajectory_plot",
714 srcs = [
715 "trajectory_plot.cc",
716 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800717 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhec7f06d2019-01-04 07:47:15 +1100718 deps = [
719 ":distance_spline",
720 ":trajectory",
Austin Schuhfc0caa82023-08-25 14:25:03 -0700721 "//aos/logging",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100722 "//aos/network:team_number",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100723 "//third_party/matplotlib-cpp",
Austin Schuh11043182019-03-23 22:29:12 -0700724 "//y2019/control_loops/drivetrain:drivetrain_base",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700725 "@com_google_absl//absl/flags:flag",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700726 "@org_tuxfamily_eigen//:eigen",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100727 ],
728)
729
730cc_test(
731 name = "trajectory_test",
732 srcs = [
733 "trajectory_test.cc",
734 ],
Austin Schuh719a33e2019-01-07 15:13:34 -0800735 defines =
736 cpu_select({
737 "amd64": [
738 "SUPPORT_PLOT=1",
739 ],
740 "arm": [],
741 }),
742 linkstatic = True,
Philipp Schraderdada1072020-11-24 11:34:46 -0800743 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhec7f06d2019-01-04 07:47:15 +1100744 deps = [
James Kuszmaulea314d92019-02-18 19:45:06 -0800745 ":drivetrain_test_lib",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -0700746 ":trajectory",
Austin Schuhec7f06d2019-01-04 07:47:15 +1100747 "//aos/testing:googletest",
748 "//aos/testing:test_shm",
749 "//y2016:constants",
750 "//y2016/control_loops/drivetrain:polydrivetrain_plants",
James Kuszmaulea314d92019-02-18 19:45:06 -0800751 "//y2019/control_loops/drivetrain:drivetrain_base",
Austin Schuh719a33e2019-01-07 15:13:34 -0800752 ] + cpu_select({
753 "amd64": [
754 "//third_party/matplotlib-cpp",
755 ],
756 "arm": [],
757 }),
Austin Schuhec7f06d2019-01-04 07:47:15 +1100758)
Austin Schuhca080812017-05-10 19:31:55 -0700759
760cc_library(
761 name = "improved_down_estimator",
762 srcs = [
763 "improved_down_estimator.cc",
764 ],
765 hdrs = [
766 "improved_down_estimator.h",
767 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800768 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhca080812017-05-10 19:31:55 -0700769 deps = [
James Kuszmaul7f55f072020-03-01 10:21:26 -0800770 ":drivetrain_config",
James Kuszmaul3e1bb272020-01-17 18:38:19 -0800771 ":drivetrain_status_fbs",
772 "//aos/events:event_loop",
James Kuszmaul81d5f2d2024-04-05 21:57:14 -0700773 "//aos/time",
774 "//aos/util:math",
James Kuszmaul3e1bb272020-01-17 18:38:19 -0800775 "//frc971/control_loops:control_loops_fbs",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700776 "//frc971/control_loops:quaternion_utils",
Austin Schuhca080812017-05-10 19:31:55 -0700777 "//frc971/control_loops:runge_kutta",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700778 "@com_google_absl//absl/log",
779 "@com_google_absl//absl/log:check",
Austin Schuhca080812017-05-10 19:31:55 -0700780 "@org_tuxfamily_eigen//:eigen",
781 ],
782)
783
784cc_test(
785 name = "improved_down_estimator_test",
786 srcs = [
787 "improved_down_estimator_test.cc",
788 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800789 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhca080812017-05-10 19:31:55 -0700790 deps = [
James Kuszmaul7f55f072020-03-01 10:21:26 -0800791 ":drivetrain_test_lib",
Austin Schuhca080812017-05-10 19:31:55 -0700792 "//aos/testing:googletest",
793 "//aos/testing:random_seed",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700794 "//frc971/control_loops:quaternion_utils",
Austin Schuhca080812017-05-10 19:31:55 -0700795 "//frc971/control_loops/drivetrain:improved_down_estimator",
796 "@org_tuxfamily_eigen//:eigen",
797 ],
798)
James Kuszmaulf4ede202020-02-14 08:47:40 -0800799
800cc_library(
801 name = "camera",
802 srcs = ["camera.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800803 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaulf4ede202020-02-14 08:47:40 -0800804 visibility = ["//visibility:public"],
805 deps = [
806 "//aos/containers:sized_array",
807 "//frc971/control_loops:pose",
808 ],
809)
810
Niko Sohmers43f71982024-01-03 19:43:59 -0800811cc_library(
812 name = "drivetrain_encoder_fault_detector",
813 srcs = ["drivetrain_encoder_fault_detector.cc"],
814 hdrs = ["drivetrain_encoder_fault_detector.h"],
815 target_compatible_with = ["@platforms//os:linux"],
816 deps = [
817 "//aos/events:event_loop",
818 "//frc971/control_loops:encoder_fault_detector",
819 "//frc971/control_loops:encoder_fault_status_fbs",
820 "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
821 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
822 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
823 ],
824)
825
826cc_test(
827 name = "drivetrain_encoder_fault_detector_test",
828 srcs = ["drivetrain_encoder_fault_detector_test.cc"],
829 data = [":simulation_config"],
830 target_compatible_with = ["@platforms//os:linux"],
831 deps = [
832 ":drivetrain_encoder_fault_detector",
833 "//aos:json_to_flatbuffer",
834 "//aos/events:simulated_event_loop",
835 "//aos/testing:googletest",
836 ],
837)
838
James Kuszmaulf4ede202020-02-14 08:47:40 -0800839cc_test(
840 name = "camera_test",
841 srcs = ["camera_test.cc"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800842 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaulf4ede202020-02-14 08:47:40 -0800843 deps = [
844 ":camera",
845 "//aos/testing:googletest",
846 ],
847)
James Kuszmaulc4ae11c2020-12-26 16:26:58 -0800848
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800849ts_project(
James Kuszmaulac2b6b42021-03-07 22:38:06 -0800850 name = "down_estimator_plotter",
851 srcs = ["down_estimator_plotter.ts"],
852 target_compatible_with = ["@platforms//os:linux"],
853 deps = [
854 "//aos/network/www:aos_plotter",
855 "//aos/network/www:colors",
856 "//aos/network/www:proxy",
857 "//frc971/wpilib:imu_plot_utils",
858 ],
859)
860
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800861ts_project(
James Kuszmaul73fc1352021-04-09 22:31:25 -0700862 name = "spline_plotter",
863 srcs = ["spline_plotter.ts"],
864 target_compatible_with = ["@platforms//os:linux"],
865 deps = [
866 "//aos/network/www:aos_plotter",
867 "//aos/network/www:colors",
868 "//aos/network/www:proxy",
869 ],
870)
871
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800872ts_project(
James Kuszmaulc4ae11c2020-12-26 16:26:58 -0800873 name = "drivetrain_plotter",
874 srcs = ["drivetrain_plotter.ts"],
875 target_compatible_with = ["@platforms//os:linux"],
876 deps = [
877 "//aos/network/www:aos_plotter",
James Kuszmaul933a9742021-03-07 19:59:06 -0800878 "//aos/network/www:colors",
James Kuszmaulc4ae11c2020-12-26 16:26:58 -0800879 "//aos/network/www:proxy",
880 "//frc971/wpilib:imu_plot_utils",
881 ],
882)
milind upadhyay9bd381d2021-01-23 13:44:13 -0800883
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800884ts_project(
milind upadhyay9bd381d2021-01-23 13:44:13 -0800885 name = "robot_state_plotter",
886 srcs = ["robot_state_plotter.ts"],
887 target_compatible_with = ["@platforms//os:linux"],
888 deps = [
889 "//aos/network/www:aos_plotter",
James Kuszmaul933a9742021-03-07 19:59:06 -0800890 "//aos/network/www:colors",
milind upadhyay9bd381d2021-01-23 13:44:13 -0800891 "//aos/network/www:proxy",
892 ],
893)
James Kuszmaul68025332024-01-20 17:06:02 -0800894
895static_flatbuffer(
896 name = "drivetrain_config_fbs",
897 srcs = ["drivetrain_config.fbs"],
898 visibility = ["//visibility:public"],
899 deps = ["//frc971/control_loops:state_feedback_loop_fbs"],
900)
James Kuszmaul62c3bd82024-01-17 20:03:05 -0800901
902cc_binary(
903 name = "drivetrain_config_merge",
904 srcs = ["drivetrain_config_merge.cc"],
905 visibility = ["//visibility:public"],
906 deps = [
907 ":drivetrain_config_fbs",
908 "//aos:flatbuffer_merge",
909 "//aos:init",
910 "//aos:json_to_flatbuffer",
911 ],
912)
913
914cc_test(
915 name = "drivetrain_config_test",
916 srcs = ["drivetrain_config_test.cc"],
917 data = [":drivetrain_test_config.json"],
918 deps = [
919 ":drivetrain_config_fbs",
920 ":drivetrain_test_lib",
921 "//aos/testing:googletest",
922 "//aos/testing:path",
923 ],
924)
925
926jinja2_template(
927 name = "drivetrain_test_config.json",
928 src = "drivetrain_test_config.jinja2.json",
929 includes = [
930 "//y2016/control_loops/drivetrain:drivetrain_config",
931 ],
932 parameters = {},
933 visibility = ["//visibility:public"],
934)