blob: 07911a8495ca5903bf46d4d565b2733b00584845 [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"],
53 visibility = ["//y2023:__subpackages__"],
54 deps = [
55 "//aos:init",
Ravago Jones17e13a22023-01-28 17:12:11 -080056 "//aos:json_to_flatbuffer",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080057 "//aos/events:shm_event_loop",
milind-uc3cf9752023-02-20 23:07:30 -080058 "//frc971/constants:constants_sender_lib",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080059 "//frc971/vision:vision_fbs",
60 "//third_party:opencv",
milind-uc3cf9752023-02-20 23:07:30 -080061 "//y2023/vision:vision_util",
Ravago Jones17e13a22023-01-28 17:12:11 -080062 "@com_google_absl//absl/strings",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080063 ],
64)
milind-u16e3a082023-01-21 13:53:43 -080065
66cc_binary(
milind-ud4051fe2023-02-25 18:00:05 -080067 name = "localization_verifier",
68 srcs = [
69 "localization_verifier.cc",
70 ],
71 target_compatible_with = ["@platforms//os:linux"],
72 visibility = ["//y2023:__subpackages__"],
73 deps = [
74 "//aos:init",
75 "//aos/events:shm_event_loop",
76 "//frc971/constants:constants_sender_lib",
77 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
78 "//frc971/vision:vision_fbs",
79 "//y2023/localizer",
milind-u607f3232023-02-26 15:22:40 -080080 "//y2023/localizer:utils",
milind-ud4051fe2023-02-25 18:00:05 -080081 "//y2023/vision:vision_util",
82 "@com_google_absl//absl/strings",
83 ],
84)
85
86cc_binary(
milind-u16e3a082023-01-21 13:53:43 -080087 name = "target_mapping",
88 srcs = [
89 "target_mapping.cc",
90 ],
91 data = [
92 "//y2023:aos_config",
milind-uc5a494f2023-02-24 15:39:22 -080093 "//y2023/constants:constants.json",
94 "//y2023/vision:maps",
milind-u16e3a082023-01-21 13:53:43 -080095 ],
96 target_compatible_with = ["@platforms//os:linux"],
97 visibility = ["//y2023:__subpackages__"],
98 deps = [
milind-u09fb1252023-01-28 19:21:41 -080099 ":aprilrobotics_lib",
milind-u16e3a082023-01-21 13:53:43 -0800100 "//aos:init",
101 "//aos/events:simulated_event_loop",
102 "//aos/events/logging:log_reader",
Jim Ostrowski68965cd2023-03-01 20:32:51 -0800103 "//aos/util:mcap_logger",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800104 "//frc971/constants:constants_sender_lib",
milind-u16e3a082023-01-21 13:53:43 -0800105 "//frc971/control_loops:pose",
106 "//frc971/vision:calibration_fbs",
107 "//frc971/vision:charuco_lib",
108 "//frc971/vision:target_mapper",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700109 "//frc971/vision:visualize_robot",
milind-u16e3a082023-01-21 13:53:43 -0800110 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800111 "//y2023/constants:constants_fbs",
milind-uc5a494f2023-02-24 15:39:22 -0800112 "//y2023/constants:simulated_constants_sender",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800113 ],
114)
115
116cc_library(
117 name = "vision_util",
118 srcs = ["vision_util.cc"],
119 hdrs = ["vision_util.h"],
120 deps = [
milind-uf2a4e322023-02-01 19:33:10 -0800121 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800122 "//y2023/constants:constants_fbs",
123 "@com_github_google_glog//:glog",
milind-u16e3a082023-01-21 13:53:43 -0800124 ],
125)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800126
Maxwell Henderson5e7696f2023-01-29 12:14:27 -0800127halide_library(
128 name = "ToGreyscaleAndDecimateHalide",
129 src = "april_generator.cc",
130 args = "rows=720 cols=1280",
131 function = "decimate_generator",
132 visibility = ["//visibility:public"],
133)
134
135halide_library(
136 name = "ThresholdHalide",
137 src = "april_generator.cc",
138 args = "rows=360 cols=640",
139 function = "threshold_generator",
140 visibility = ["//visibility:public"],
141)
142
Ravago Jonesb84f2062023-01-29 13:46:59 -0800143cc_library(
144 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800145 srcs = [
146 "aprilrobotics.cc",
147 "aprilrobotics.h",
148 ],
149 target_compatible_with = ["@platforms//os:linux"],
150 visibility = ["//y2023:__subpackages__"],
151 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800152 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800153 "//aos:init",
154 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800155 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800156 "//frc971/vision:calibration_fbs",
157 "//frc971/vision:charuco_lib",
158 "//frc971/vision:target_map_fbs",
159 "//frc971/vision:target_mapper",
160 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700161 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800162 "//third_party:opencv",
163 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800164 "//y2023/constants:constants_fbs",
Philipp Schrader790cb542023-07-05 21:06:52 -0700165 "@org_tuxfamily_eigen//:eigen",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800166 ],
167)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800168
169cc_binary(
170 name = "aprilrobotics",
171 srcs = [
172 "aprilrobotics_main.cc",
173 ],
174 target_compatible_with = ["@platforms//os:linux"],
175 visibility = ["//y2023:__subpackages__"],
176 deps = [
177 ":aprilrobotics_lib",
178 "//aos:init",
179 "//aos/events:shm_event_loop",
180 ],
181)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800182
Yash Chainani10b7b022023-02-22 14:34:04 -0800183cc_test(
184 name = "april_detection_test",
185 srcs = [
186 "april_detection_test.cc",
187 ],
188 data = [
189 "//y2023:aos_config",
190 "//y2023/constants:constants.json",
191 "@apriltag_test_bfbs_images",
192 ],
193 deps = [
194 ":aprilrobotics_lib",
195 "//aos:flatbuffer_merge",
196 "//aos:json_to_flatbuffer",
197 "//aos/events:simulated_event_loop",
198 "//aos/testing:googletest",
199 "//aos/testing:path",
200 "//aos/testing:test_logging",
201 "//frc971/constants:constants_sender_lib",
202 "//frc971/vision:target_mapper",
203 "//frc971/vision:vision_fbs",
204 "//y2023/constants:constants_fbs",
205 "//y2023/constants:constants_list_fbs",
206 ],
207)
208
milind-u8e98cb92023-02-05 16:07:10 -0800209filegroup(
210 name = "image_streamer_start",
211 srcs = ["image_streamer_start.sh"],
212 visibility = ["//visibility:public"],
213)
214
James Kuszmaul77d536c2023-02-11 17:30:59 -0800215cc_binary(
216 name = "foxglove_image_converter",
217 srcs = ["foxglove_image_converter.cc"],
218 visibility = ["//y2023:__subpackages__"],
219 deps = [
220 "//aos:init",
221 "//aos/events:shm_event_loop",
222 "//frc971/vision:foxglove_image_converter_lib",
223 ],
224)
James Kuszmauld6199be2023-02-11 19:56:28 -0800225
226cc_binary(
227 name = "calibrate_extrinsics",
228 srcs = [
229 "calibrate_extrinsics.cc",
230 ],
231 target_compatible_with = ["@platforms//os:linux"],
232 deps = [
233 "//aos:init",
234 "//aos/events/logging:log_reader",
235 "//frc971/constants:constants_sender_lib",
236 "//frc971/control_loops:profiled_subsystem_fbs",
237 "//frc971/vision:extrinsics_calibration",
238 "//third_party:opencv",
239 "//y2023/constants:constants_fbs",
240 "//y2023/vision:vision_util",
241 ],
242)
Filip Kujawa3004f202023-02-12 16:41:40 -0800243
244cc_binary(
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700245 name = "calibrate_multi_cameras",
246 srcs = [
247 "calibrate_multi_cameras.cc",
248 ],
249 data = [
250 "//y2023:aos_config",
251 "//y2023/constants:constants.json",
252 "//y2023/vision:maps",
253 ],
254 target_compatible_with = ["@platforms//os:linux"],
255 visibility = ["//y2023:__subpackages__"],
256 deps = [
257 ":aprilrobotics_lib",
258 "//aos:init",
259 "//aos/events:simulated_event_loop",
260 "//aos/events/logging:log_reader",
261 "//aos/util:mcap_logger",
262 "//frc971/constants:constants_sender_lib",
263 "//frc971/control_loops:pose",
264 "//frc971/vision:calibration_fbs",
265 "//frc971/vision:charuco_lib",
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800266 "//frc971/vision:extrinsics_calibration",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700267 "//frc971/vision:target_mapper",
268 "//third_party:opencv",
269 "//y2023/constants:constants_fbs",
270 "//y2023/constants:simulated_constants_sender",
271 "@org_tuxfamily_eigen//:eigen",
272 ],
273)
274
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800275py_test(
276 name = "calibrate_multi_cameras_test",
277 srcs = ["calibrate_multi_cameras_test.py"],
278 args = [
279 "--calibrate_binary",
280 "$(location :calibrate_multi_cameras)",
281 "--logfile",
282 "external/calibrate_multi_cameras_data/fbs_log-268",
283 ],
284 data = [
285 ":calibrate_multi_cameras",
286 "//y2023/vision/calib_files",
287 "@calibrate_multi_cameras_data",
288 ],
289 target_compatible_with = ["@platforms//cpu:x86_64"],
290)
291
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700292cc_binary(
Filip Kujawa3004f202023-02-12 16:41:40 -0800293 name = "game_pieces_detector",
294 srcs = [
295 "game_pieces_main.cc",
296 ],
297 target_compatible_with = ["@platforms//os:linux"],
298 visibility = ["//y2023:__subpackages__"],
299 deps = [
300 ":game_pieces_lib",
301 "//aos:init",
302 "//aos/events:shm_event_loop",
303 ],
304)
305
306cc_library(
307 name = "game_pieces_lib",
308 srcs = [
309 "game_pieces.cc",
310 ],
311 hdrs = [
312 "game_pieces.h",
313 ],
314 data = [
315 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700316 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800317 ],
318 target_compatible_with = ["@platforms//os:linux"],
319 visibility = ["//y2023:__subpackages__"],
320 deps = [
321 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700322 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800323 "//aos/events:event_loop",
324 "//aos/events:shm_event_loop",
325 "//frc971/vision:vision_fbs",
326 ],
327)
328
James Kuszmaulf01da392023-12-14 11:22:14 -0800329static_flatbuffer(
Filip Kujawa3004f202023-02-12 16:41:40 -0800330 name = "game_pieces_fbs",
331 srcs = ["game_pieces.fbs"],
Filip Kujawa3004f202023-02-12 16:41:40 -0800332 target_compatible_with = ["@platforms//os:linux"],
333 visibility = ["//visibility:public"],
334)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800335
336flatbuffer_ts_library(
337 name = "game_pieces_ts_fbs",
338 srcs = ["game_pieces.fbs"],
339 target_compatible_with = ["@platforms//os:linux"],
340 visibility = ["//visibility:public"],
341)
milind-ua96c5182023-03-10 23:31:11 -0800342
343cc_binary(
344 name = "image_logger",
345 srcs = [
346 "image_logger.cc",
347 ],
348 target_compatible_with = ["@platforms//os:linux"],
349 visibility = ["//visibility:public"],
350 deps = [
351 "//aos:configuration",
352 "//aos:init",
353 "//aos/events:shm_event_loop",
354 "//aos/events/logging:log_writer",
355 "//aos/logging:log_namer",
356 "//frc971/input:joystick_state_fbs",
357 "@com_github_gflags_gflags//:gflags",
358 "@com_github_google_glog//:glog",
359 ],
360)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700361
362cc_library(
363 name = "yolov5_lib",
364 srcs = ["yolov5.cc"],
365 hdrs = ["yolov5.h"],
366 deps = [
367 "//third_party:opencv",
368 "@com_github_gflags_gflags//:gflags",
369 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700370 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700371 ] + cpu_select({
372 "amd64": [
373 "@libtensorflowlite//:tensorflow-k8",
374 "@libedgetpu//:libedgetpu-k8",
375 ],
376 "arm": [
377 "@libtensorflowlite//:tensorflow-arm",
378 "@libedgetpu//:libedgetpu-arm",
379 ],
380 }),
381)
Filip Kujawaec433e12023-04-09 19:58:59 -0700382
383filegroup(
384 name = "game_pieces_detector_starter",
385 srcs = ["game_pieces_detector_starter.sh"],
386 visibility = ["//visibility:public"],
387)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700388
389cc_library(
390 name = "camera_monitor_lib",
391 srcs = ["camera_monitor_lib.cc"],
392 hdrs = ["camera_monitor_lib.h"],
393 deps = [
394 "//aos/events:event_loop",
395 "//aos/starter:starter_rpc_lib",
396 "//frc971/vision:vision_fbs",
397 ],
398)
399
400cc_binary(
401 name = "camera_monitor",
402 srcs = ["camera_monitor.cc"],
403 visibility = ["//visibility:public"],
404 deps = [
405 ":camera_monitor_lib",
406 "//aos:init",
407 "//aos/events:shm_event_loop",
408 ],
409)