blob: f415b6a2177d7b2fbc67bc7cf6a9aef7f930496a [file] [log] [blame]
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -08001load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
James Kuszmaulf01da392023-12-14 11:22:14 -08002load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
Austin Schuh8f99c822024-05-05 22:43:40 -07003load("//frc971:halide.bzl", "halide_library")
4load("//tools/build_rules:select.bzl", "cpu_select")
Filip Kujawa3004f202023-02-12 16:41:40 -08005
Austin Schuhdb2ed9d2022-12-26 14:02:26 -08006cc_binary(
7 name = "camera_reader",
8 srcs = [
9 "camera_reader.cc",
Ravago Jonese8700072023-01-14 19:41:56 -080010 "rkisp1-config.h",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080011 ],
Ravago Jonese8700072023-01-14 19:41:56 -080012 target_compatible_with = [
13 "@platforms//os:linux",
14 "//tools/platforms/hardware:raspberry_pi",
15 ],
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080016 visibility = ["//y2023:__subpackages__"],
17 deps = [
18 "//aos:init",
19 "//aos/events:shm_event_loop",
20 "//frc971/vision:media_device",
21 "//frc971/vision:v4l2_reader",
22 ],
23)
24
25cc_binary(
Austin Schuhe3e32542024-01-01 12:24:11 -080026 name = "ccm",
27 srcs = [
28 "ccm.cc",
29 ],
30 target_compatible_with = [
31 "@platforms//os:linux",
32 "@platforms//cpu:arm64",
33 ],
34 visibility = ["//y2023:__subpackages__"],
35 deps = [
36 "//aos:init",
37 "//aos:json_to_flatbuffer",
38 "//aos/events:shm_event_loop",
39 "//frc971/constants:constants_sender_lib",
40 "//frc971/vision:vision_fbs",
41 "//third_party:opencv",
42 "//y2023/vision:vision_util",
43 "@com_google_absl//absl/strings",
44 ],
45)
46
47cc_binary(
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080048 name = "viewer",
49 srcs = [
50 "viewer.cc",
51 ],
52 target_compatible_with = ["@platforms//os:linux"],
Jim Ostrowski8a1480f2024-01-20 00:31:51 -080053 visibility = [
54 "//y2023:__subpackages__",
55 "//y2024:__subpackages__",
56 ],
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080057 deps = [
58 "//aos:init",
Ravago Jones17e13a22023-01-28 17:12:11 -080059 "//aos:json_to_flatbuffer",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080060 "//aos/events:shm_event_loop",
milind-uc3cf9752023-02-20 23:07:30 -080061 "//frc971/constants:constants_sender_lib",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080062 "//frc971/vision:vision_fbs",
63 "//third_party:opencv",
milind-uc3cf9752023-02-20 23:07:30 -080064 "//y2023/vision:vision_util",
Ravago Jones17e13a22023-01-28 17:12:11 -080065 "@com_google_absl//absl/strings",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080066 ],
67)
milind-u16e3a082023-01-21 13:53:43 -080068
69cc_binary(
milind-ud4051fe2023-02-25 18:00:05 -080070 name = "localization_verifier",
71 srcs = [
72 "localization_verifier.cc",
73 ],
74 target_compatible_with = ["@platforms//os:linux"],
75 visibility = ["//y2023:__subpackages__"],
76 deps = [
77 "//aos:init",
78 "//aos/events:shm_event_loop",
79 "//frc971/constants:constants_sender_lib",
80 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
James Kuszmaul9c3db182024-02-09 22:02:18 -080081 "//frc971/vision:target_map_utils",
milind-ud4051fe2023-02-25 18:00:05 -080082 "//frc971/vision:vision_fbs",
83 "//y2023/localizer",
84 "//y2023/vision:vision_util",
85 "@com_google_absl//absl/strings",
86 ],
87)
88
89cc_binary(
milind-u16e3a082023-01-21 13:53:43 -080090 name = "target_mapping",
91 srcs = [
92 "target_mapping.cc",
93 ],
94 data = [
95 "//y2023:aos_config",
milind-uc5a494f2023-02-24 15:39:22 -080096 "//y2023/constants:constants.json",
97 "//y2023/vision:maps",
milind-u16e3a082023-01-21 13:53:43 -080098 ],
99 target_compatible_with = ["@platforms//os:linux"],
100 visibility = ["//y2023:__subpackages__"],
101 deps = [
milind-u09fb1252023-01-28 19:21:41 -0800102 ":aprilrobotics_lib",
milind-u16e3a082023-01-21 13:53:43 -0800103 "//aos:init",
104 "//aos/events:simulated_event_loop",
105 "//aos/events/logging:log_reader",
Jim Ostrowski68965cd2023-03-01 20:32:51 -0800106 "//aos/util:mcap_logger",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800107 "//frc971/constants:constants_sender_lib",
milind-u16e3a082023-01-21 13:53:43 -0800108 "//frc971/control_loops:pose",
109 "//frc971/vision:calibration_fbs",
110 "//frc971/vision:charuco_lib",
111 "//frc971/vision:target_mapper",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700112 "//frc971/vision:visualize_robot",
milind-u16e3a082023-01-21 13:53:43 -0800113 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800114 "//y2023/constants:constants_fbs",
milind-uc5a494f2023-02-24 15:39:22 -0800115 "//y2023/constants:simulated_constants_sender",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800116 ],
117)
118
119cc_library(
120 name = "vision_util",
121 srcs = ["vision_util.cc"],
122 hdrs = ["vision_util.h"],
123 deps = [
milind-uf2a4e322023-02-01 19:33:10 -0800124 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800125 "//y2023/constants:constants_fbs",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700126 "@com_google_absl//absl/log",
127 "@com_google_absl//absl/log:check",
milind-u16e3a082023-01-21 13:53:43 -0800128 ],
129)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800130
Maxwell Henderson5e7696f2023-01-29 12:14:27 -0800131halide_library(
132 name = "ToGreyscaleAndDecimateHalide",
133 src = "april_generator.cc",
134 args = "rows=720 cols=1280",
135 function = "decimate_generator",
136 visibility = ["//visibility:public"],
137)
138
139halide_library(
140 name = "ThresholdHalide",
141 src = "april_generator.cc",
142 args = "rows=360 cols=640",
143 function = "threshold_generator",
144 visibility = ["//visibility:public"],
145)
146
Ravago Jonesb84f2062023-01-29 13:46:59 -0800147cc_library(
148 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800149 srcs = [
150 "aprilrobotics.cc",
151 "aprilrobotics.h",
152 ],
153 target_compatible_with = ["@platforms//os:linux"],
154 visibility = ["//y2023:__subpackages__"],
155 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800156 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800157 "//aos:init",
158 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800159 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800160 "//frc971/vision:calibration_fbs",
161 "//frc971/vision:charuco_lib",
162 "//frc971/vision:target_map_fbs",
163 "//frc971/vision:target_mapper",
164 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700165 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800166 "//third_party:opencv",
167 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800168 "//y2023/constants:constants_fbs",
Philipp Schrader790cb542023-07-05 21:06:52 -0700169 "@org_tuxfamily_eigen//:eigen",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800170 ],
171)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800172
173cc_binary(
174 name = "aprilrobotics",
175 srcs = [
176 "aprilrobotics_main.cc",
177 ],
178 target_compatible_with = ["@platforms//os:linux"],
179 visibility = ["//y2023:__subpackages__"],
180 deps = [
181 ":aprilrobotics_lib",
182 "//aos:init",
183 "//aos/events:shm_event_loop",
184 ],
185)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800186
Yash Chainani10b7b022023-02-22 14:34:04 -0800187cc_test(
188 name = "april_detection_test",
189 srcs = [
190 "april_detection_test.cc",
191 ],
192 data = [
193 "//y2023:aos_config",
194 "//y2023/constants:constants.json",
195 "@apriltag_test_bfbs_images",
196 ],
197 deps = [
198 ":aprilrobotics_lib",
199 "//aos:flatbuffer_merge",
200 "//aos:json_to_flatbuffer",
201 "//aos/events:simulated_event_loop",
202 "//aos/testing:googletest",
203 "//aos/testing:path",
204 "//aos/testing:test_logging",
205 "//frc971/constants:constants_sender_lib",
206 "//frc971/vision:target_mapper",
207 "//frc971/vision:vision_fbs",
208 "//y2023/constants:constants_fbs",
209 "//y2023/constants:constants_list_fbs",
210 ],
211)
212
milind-u8e98cb92023-02-05 16:07:10 -0800213filegroup(
214 name = "image_streamer_start",
215 srcs = ["image_streamer_start.sh"],
216 visibility = ["//visibility:public"],
217)
218
James Kuszmaul77d536c2023-02-11 17:30:59 -0800219cc_binary(
220 name = "foxglove_image_converter",
221 srcs = ["foxglove_image_converter.cc"],
222 visibility = ["//y2023:__subpackages__"],
223 deps = [
224 "//aos:init",
225 "//aos/events:shm_event_loop",
226 "//frc971/vision:foxglove_image_converter_lib",
227 ],
228)
James Kuszmauld6199be2023-02-11 19:56:28 -0800229
230cc_binary(
231 name = "calibrate_extrinsics",
232 srcs = [
233 "calibrate_extrinsics.cc",
234 ],
235 target_compatible_with = ["@platforms//os:linux"],
236 deps = [
237 "//aos:init",
238 "//aos/events/logging:log_reader",
239 "//frc971/constants:constants_sender_lib",
240 "//frc971/control_loops:profiled_subsystem_fbs",
241 "//frc971/vision:extrinsics_calibration",
242 "//third_party:opencv",
243 "//y2023/constants:constants_fbs",
244 "//y2023/vision:vision_util",
245 ],
246)
Filip Kujawa3004f202023-02-12 16:41:40 -0800247
248cc_binary(
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700249 name = "calibrate_multi_cameras",
250 srcs = [
251 "calibrate_multi_cameras.cc",
252 ],
253 data = [
254 "//y2023:aos_config",
255 "//y2023/constants:constants.json",
256 "//y2023/vision:maps",
257 ],
258 target_compatible_with = ["@platforms//os:linux"],
259 visibility = ["//y2023:__subpackages__"],
260 deps = [
261 ":aprilrobotics_lib",
262 "//aos:init",
263 "//aos/events:simulated_event_loop",
264 "//aos/events/logging:log_reader",
265 "//aos/util:mcap_logger",
266 "//frc971/constants:constants_sender_lib",
267 "//frc971/control_loops:pose",
268 "//frc971/vision:calibration_fbs",
269 "//frc971/vision:charuco_lib",
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800270 "//frc971/vision:extrinsics_calibration",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700271 "//frc971/vision:target_mapper",
272 "//third_party:opencv",
273 "//y2023/constants:constants_fbs",
274 "//y2023/constants:simulated_constants_sender",
275 "@org_tuxfamily_eigen//:eigen",
276 ],
277)
278
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800279py_test(
280 name = "calibrate_multi_cameras_test",
281 srcs = ["calibrate_multi_cameras_test.py"],
282 args = [
283 "--calibrate_binary",
284 "$(location :calibrate_multi_cameras)",
285 "--logfile",
286 "external/calibrate_multi_cameras_data/fbs_log-268",
287 ],
288 data = [
289 ":calibrate_multi_cameras",
290 "//y2023/vision/calib_files",
291 "@calibrate_multi_cameras_data",
James Kuszmaul98c798d2024-04-24 15:58:09 -0700292 ] + glob(["test_data/**"]),
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800293 target_compatible_with = ["@platforms//cpu:x86_64"],
294)
295
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700296cc_binary(
Filip Kujawa3004f202023-02-12 16:41:40 -0800297 name = "game_pieces_detector",
298 srcs = [
299 "game_pieces_main.cc",
300 ],
301 target_compatible_with = ["@platforms//os:linux"],
302 visibility = ["//y2023:__subpackages__"],
303 deps = [
304 ":game_pieces_lib",
305 "//aos:init",
306 "//aos/events:shm_event_loop",
307 ],
308)
309
310cc_library(
311 name = "game_pieces_lib",
312 srcs = [
313 "game_pieces.cc",
314 ],
315 hdrs = [
316 "game_pieces.h",
317 ],
318 data = [
319 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700320 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800321 ],
322 target_compatible_with = ["@platforms//os:linux"],
323 visibility = ["//y2023:__subpackages__"],
324 deps = [
325 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700326 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800327 "//aos/events:event_loop",
328 "//aos/events:shm_event_loop",
329 "//frc971/vision:vision_fbs",
330 ],
331)
332
James Kuszmaulf01da392023-12-14 11:22:14 -0800333static_flatbuffer(
Filip Kujawa3004f202023-02-12 16:41:40 -0800334 name = "game_pieces_fbs",
335 srcs = ["game_pieces.fbs"],
Filip Kujawa3004f202023-02-12 16:41:40 -0800336 target_compatible_with = ["@platforms//os:linux"],
337 visibility = ["//visibility:public"],
338)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800339
340flatbuffer_ts_library(
341 name = "game_pieces_ts_fbs",
342 srcs = ["game_pieces.fbs"],
343 target_compatible_with = ["@platforms//os:linux"],
344 visibility = ["//visibility:public"],
345)
milind-ua96c5182023-03-10 23:31:11 -0800346
347cc_binary(
348 name = "image_logger",
349 srcs = [
350 "image_logger.cc",
351 ],
352 target_compatible_with = ["@platforms//os:linux"],
353 visibility = ["//visibility:public"],
354 deps = [
355 "//aos:configuration",
356 "//aos:init",
357 "//aos/events:shm_event_loop",
358 "//aos/events/logging:log_writer",
359 "//aos/logging:log_namer",
360 "//frc971/input:joystick_state_fbs",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700361 "@com_google_absl//absl/flags:flag",
362 "@com_google_absl//absl/log",
363 "@com_google_absl//absl/log:check",
milind-ua96c5182023-03-10 23:31:11 -0800364 ],
365)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700366
367cc_library(
368 name = "yolov5_lib",
369 srcs = ["yolov5.cc"],
370 hdrs = ["yolov5.h"],
371 deps = [
372 "//third_party:opencv",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700373 "@com_google_absl//absl/flags:flag",
374 "@com_google_absl//absl/log",
375 "@com_google_absl//absl/log:check",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700376 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700377 ] + cpu_select({
378 "amd64": [
379 "@libtensorflowlite//:tensorflow-k8",
380 "@libedgetpu//:libedgetpu-k8",
381 ],
382 "arm": [
383 "@libtensorflowlite//:tensorflow-arm",
384 "@libedgetpu//:libedgetpu-arm",
385 ],
386 }),
387)
Filip Kujawaec433e12023-04-09 19:58:59 -0700388
389filegroup(
390 name = "game_pieces_detector_starter",
391 srcs = ["game_pieces_detector_starter.sh"],
392 visibility = ["//visibility:public"],
393)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700394
395cc_library(
396 name = "camera_monitor_lib",
397 srcs = ["camera_monitor_lib.cc"],
398 hdrs = ["camera_monitor_lib.h"],
399 deps = [
400 "//aos/events:event_loop",
401 "//aos/starter:starter_rpc_lib",
402 "//frc971/vision:vision_fbs",
403 ],
404)
405
406cc_binary(
407 name = "camera_monitor",
408 srcs = ["camera_monitor.cc"],
409 visibility = ["//visibility:public"],
410 deps = [
411 ":camera_monitor_lib",
412 "//aos:init",
413 "//aos/events:shm_event_loop",
414 ],
415)
Ravago Jones3b4fd912023-03-18 13:35:17 -0700416
417cc_binary(
418 name = "video_ripper",
419 srcs = [
420 "video_ripper.cc",
421 ],
422 data = [
423 "@ffmpeg",
424 ],
425 target_compatible_with = ["@platforms//os:linux"],
426 visibility = ["//visibility:public"],
427 deps = [
428 "//aos:init",
429 "//aos/events:simulated_event_loop",
430 "//aos/events/logging:log_reader",
431 "//frc971/vision:vision_fbs",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700432 "@com_google_absl//absl/flags:flag",
433 "@com_google_absl//absl/log",
434 "@com_google_absl//absl/log:check",
Ravago Jones3b4fd912023-03-18 13:35:17 -0700435 ],
436)
437
438sh_binary(
439 name = "video_tiler",
440 srcs = ["video_tiler.sh"],
441 data = [
442 "@bazel_tools//tools/bash/runfiles",
443 "@ffmpeg",
444 ],
445)