blob: f583abd41f519b098ad7d63559f87cd747df0b46 [file] [log] [blame]
Maxwell Henderson5e7696f2023-01-29 12:14:27 -08001load("//frc971:halide.bzl", "halide_library")
2load("//tools/build_rules:select.bzl", "cpu_select")
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -08003load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
James Kuszmaulf01da392023-12-14 11:22:14 -08004load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
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",
81 "//frc971/vision:vision_fbs",
82 "//y2023/localizer",
milind-u607f3232023-02-26 15:22:40 -080083 "//y2023/localizer:utils",
milind-ud4051fe2023-02-25 18:00:05 -080084 "//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",
126 "@com_github_google_glog//:glog",
milind-u16e3a082023-01-21 13:53:43 -0800127 ],
128)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800129
Maxwell Henderson5e7696f2023-01-29 12:14:27 -0800130halide_library(
131 name = "ToGreyscaleAndDecimateHalide",
132 src = "april_generator.cc",
133 args = "rows=720 cols=1280",
134 function = "decimate_generator",
135 visibility = ["//visibility:public"],
136)
137
138halide_library(
139 name = "ThresholdHalide",
140 src = "april_generator.cc",
141 args = "rows=360 cols=640",
142 function = "threshold_generator",
143 visibility = ["//visibility:public"],
144)
145
Ravago Jonesb84f2062023-01-29 13:46:59 -0800146cc_library(
147 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800148 srcs = [
149 "aprilrobotics.cc",
150 "aprilrobotics.h",
151 ],
152 target_compatible_with = ["@platforms//os:linux"],
153 visibility = ["//y2023:__subpackages__"],
154 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800155 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800156 "//aos:init",
157 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800158 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800159 "//frc971/vision:calibration_fbs",
160 "//frc971/vision:charuco_lib",
161 "//frc971/vision:target_map_fbs",
162 "//frc971/vision:target_mapper",
163 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700164 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800165 "//third_party:opencv",
166 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800167 "//y2023/constants:constants_fbs",
Philipp Schrader790cb542023-07-05 21:06:52 -0700168 "@org_tuxfamily_eigen//:eigen",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800169 ],
170)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800171
172cc_binary(
173 name = "aprilrobotics",
174 srcs = [
175 "aprilrobotics_main.cc",
176 ],
177 target_compatible_with = ["@platforms//os:linux"],
178 visibility = ["//y2023:__subpackages__"],
179 deps = [
180 ":aprilrobotics_lib",
181 "//aos:init",
182 "//aos/events:shm_event_loop",
183 ],
184)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800185
Yash Chainani10b7b022023-02-22 14:34:04 -0800186cc_test(
187 name = "april_detection_test",
188 srcs = [
189 "april_detection_test.cc",
190 ],
191 data = [
192 "//y2023:aos_config",
193 "//y2023/constants:constants.json",
194 "@apriltag_test_bfbs_images",
195 ],
196 deps = [
197 ":aprilrobotics_lib",
198 "//aos:flatbuffer_merge",
199 "//aos:json_to_flatbuffer",
200 "//aos/events:simulated_event_loop",
201 "//aos/testing:googletest",
202 "//aos/testing:path",
203 "//aos/testing:test_logging",
204 "//frc971/constants:constants_sender_lib",
205 "//frc971/vision:target_mapper",
206 "//frc971/vision:vision_fbs",
207 "//y2023/constants:constants_fbs",
208 "//y2023/constants:constants_list_fbs",
209 ],
210)
211
milind-u8e98cb92023-02-05 16:07:10 -0800212filegroup(
213 name = "image_streamer_start",
214 srcs = ["image_streamer_start.sh"],
215 visibility = ["//visibility:public"],
216)
217
James Kuszmaul77d536c2023-02-11 17:30:59 -0800218cc_binary(
219 name = "foxglove_image_converter",
220 srcs = ["foxglove_image_converter.cc"],
221 visibility = ["//y2023:__subpackages__"],
222 deps = [
223 "//aos:init",
224 "//aos/events:shm_event_loop",
225 "//frc971/vision:foxglove_image_converter_lib",
226 ],
227)
James Kuszmauld6199be2023-02-11 19:56:28 -0800228
229cc_binary(
230 name = "calibrate_extrinsics",
231 srcs = [
232 "calibrate_extrinsics.cc",
233 ],
234 target_compatible_with = ["@platforms//os:linux"],
235 deps = [
236 "//aos:init",
237 "//aos/events/logging:log_reader",
238 "//frc971/constants:constants_sender_lib",
239 "//frc971/control_loops:profiled_subsystem_fbs",
240 "//frc971/vision:extrinsics_calibration",
241 "//third_party:opencv",
242 "//y2023/constants:constants_fbs",
243 "//y2023/vision:vision_util",
244 ],
245)
Filip Kujawa3004f202023-02-12 16:41:40 -0800246
247cc_binary(
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700248 name = "calibrate_multi_cameras",
249 srcs = [
250 "calibrate_multi_cameras.cc",
251 ],
252 data = [
253 "//y2023:aos_config",
254 "//y2023/constants:constants.json",
255 "//y2023/vision:maps",
256 ],
257 target_compatible_with = ["@platforms//os:linux"],
258 visibility = ["//y2023:__subpackages__"],
259 deps = [
260 ":aprilrobotics_lib",
261 "//aos:init",
262 "//aos/events:simulated_event_loop",
263 "//aos/events/logging:log_reader",
264 "//aos/util:mcap_logger",
265 "//frc971/constants:constants_sender_lib",
266 "//frc971/control_loops:pose",
267 "//frc971/vision:calibration_fbs",
268 "//frc971/vision:charuco_lib",
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800269 "//frc971/vision:extrinsics_calibration",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700270 "//frc971/vision:target_mapper",
271 "//third_party:opencv",
272 "//y2023/constants:constants_fbs",
273 "//y2023/constants:simulated_constants_sender",
274 "@org_tuxfamily_eigen//:eigen",
275 ],
276)
277
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800278py_test(
279 name = "calibrate_multi_cameras_test",
280 srcs = ["calibrate_multi_cameras_test.py"],
281 args = [
282 "--calibrate_binary",
283 "$(location :calibrate_multi_cameras)",
284 "--logfile",
285 "external/calibrate_multi_cameras_data/fbs_log-268",
286 ],
287 data = [
288 ":calibrate_multi_cameras",
289 "//y2023/vision/calib_files",
290 "@calibrate_multi_cameras_data",
291 ],
292 target_compatible_with = ["@platforms//cpu:x86_64"],
293)
294
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700295cc_binary(
Filip Kujawa3004f202023-02-12 16:41:40 -0800296 name = "game_pieces_detector",
297 srcs = [
298 "game_pieces_main.cc",
299 ],
300 target_compatible_with = ["@platforms//os:linux"],
301 visibility = ["//y2023:__subpackages__"],
302 deps = [
303 ":game_pieces_lib",
304 "//aos:init",
305 "//aos/events:shm_event_loop",
306 ],
307)
308
309cc_library(
310 name = "game_pieces_lib",
311 srcs = [
312 "game_pieces.cc",
313 ],
314 hdrs = [
315 "game_pieces.h",
316 ],
317 data = [
318 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700319 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800320 ],
321 target_compatible_with = ["@platforms//os:linux"],
322 visibility = ["//y2023:__subpackages__"],
323 deps = [
324 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700325 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800326 "//aos/events:event_loop",
327 "//aos/events:shm_event_loop",
328 "//frc971/vision:vision_fbs",
329 ],
330)
331
James Kuszmaulf01da392023-12-14 11:22:14 -0800332static_flatbuffer(
Filip Kujawa3004f202023-02-12 16:41:40 -0800333 name = "game_pieces_fbs",
334 srcs = ["game_pieces.fbs"],
Filip Kujawa3004f202023-02-12 16:41:40 -0800335 target_compatible_with = ["@platforms//os:linux"],
336 visibility = ["//visibility:public"],
337)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800338
339flatbuffer_ts_library(
340 name = "game_pieces_ts_fbs",
341 srcs = ["game_pieces.fbs"],
342 target_compatible_with = ["@platforms//os:linux"],
343 visibility = ["//visibility:public"],
344)
milind-ua96c5182023-03-10 23:31:11 -0800345
346cc_binary(
347 name = "image_logger",
348 srcs = [
349 "image_logger.cc",
350 ],
351 target_compatible_with = ["@platforms//os:linux"],
352 visibility = ["//visibility:public"],
353 deps = [
354 "//aos:configuration",
355 "//aos:init",
356 "//aos/events:shm_event_loop",
357 "//aos/events/logging:log_writer",
358 "//aos/logging:log_namer",
359 "//frc971/input:joystick_state_fbs",
360 "@com_github_gflags_gflags//:gflags",
361 "@com_github_google_glog//:glog",
362 ],
363)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700364
365cc_library(
366 name = "yolov5_lib",
367 srcs = ["yolov5.cc"],
368 hdrs = ["yolov5.h"],
369 deps = [
370 "//third_party:opencv",
371 "@com_github_gflags_gflags//:gflags",
372 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700373 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700374 ] + cpu_select({
375 "amd64": [
376 "@libtensorflowlite//:tensorflow-k8",
377 "@libedgetpu//:libedgetpu-k8",
378 ],
379 "arm": [
380 "@libtensorflowlite//:tensorflow-arm",
381 "@libedgetpu//:libedgetpu-arm",
382 ],
383 }),
384)
Filip Kujawaec433e12023-04-09 19:58:59 -0700385
386filegroup(
387 name = "game_pieces_detector_starter",
388 srcs = ["game_pieces_detector_starter.sh"],
389 visibility = ["//visibility:public"],
390)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700391
392cc_library(
393 name = "camera_monitor_lib",
394 srcs = ["camera_monitor_lib.cc"],
395 hdrs = ["camera_monitor_lib.h"],
396 deps = [
397 "//aos/events:event_loop",
398 "//aos/starter:starter_rpc_lib",
399 "//frc971/vision:vision_fbs",
400 ],
401)
402
403cc_binary(
404 name = "camera_monitor",
405 srcs = ["camera_monitor.cc"],
406 visibility = ["//visibility:public"],
407 deps = [
408 ":camera_monitor_lib",
409 "//aos:init",
410 "//aos/events:shm_event_loop",
411 ],
412)