blob: 512bb5860a4a46af343cc600a44bfb83f8ca070a [file] [log] [blame]
Maxwell Henderson5e7696f2023-01-29 12:14:27 -08001load("//frc971:halide.bzl", "halide_library")
2load("//tools/build_rules:select.bzl", "cpu_select")
Filip Kujawa3004f202023-02-12 16:41:40 -08003load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -08004load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
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",
266 "//frc971/vision:target_mapper",
267 "//third_party:opencv",
268 "//y2023/constants:constants_fbs",
269 "//y2023/constants:simulated_constants_sender",
270 "@org_tuxfamily_eigen//:eigen",
271 ],
272)
273
274cc_binary(
Filip Kujawa3004f202023-02-12 16:41:40 -0800275 name = "game_pieces_detector",
276 srcs = [
277 "game_pieces_main.cc",
278 ],
279 target_compatible_with = ["@platforms//os:linux"],
280 visibility = ["//y2023:__subpackages__"],
281 deps = [
282 ":game_pieces_lib",
283 "//aos:init",
284 "//aos/events:shm_event_loop",
285 ],
286)
287
288cc_library(
289 name = "game_pieces_lib",
290 srcs = [
291 "game_pieces.cc",
292 ],
293 hdrs = [
294 "game_pieces.h",
295 ],
296 data = [
297 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700298 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800299 ],
300 target_compatible_with = ["@platforms//os:linux"],
301 visibility = ["//y2023:__subpackages__"],
302 deps = [
303 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700304 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800305 "//aos/events:event_loop",
306 "//aos/events:shm_event_loop",
307 "//frc971/vision:vision_fbs",
308 ],
309)
310
311flatbuffer_cc_library(
312 name = "game_pieces_fbs",
313 srcs = ["game_pieces.fbs"],
314 gen_reflections = 1,
315 target_compatible_with = ["@platforms//os:linux"],
316 visibility = ["//visibility:public"],
317)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800318
319flatbuffer_ts_library(
320 name = "game_pieces_ts_fbs",
321 srcs = ["game_pieces.fbs"],
322 target_compatible_with = ["@platforms//os:linux"],
323 visibility = ["//visibility:public"],
324)
milind-ua96c5182023-03-10 23:31:11 -0800325
326cc_binary(
327 name = "image_logger",
328 srcs = [
329 "image_logger.cc",
330 ],
331 target_compatible_with = ["@platforms//os:linux"],
332 visibility = ["//visibility:public"],
333 deps = [
334 "//aos:configuration",
335 "//aos:init",
336 "//aos/events:shm_event_loop",
337 "//aos/events/logging:log_writer",
338 "//aos/logging:log_namer",
339 "//frc971/input:joystick_state_fbs",
340 "@com_github_gflags_gflags//:gflags",
341 "@com_github_google_glog//:glog",
342 ],
343)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700344
345cc_library(
346 name = "yolov5_lib",
347 srcs = ["yolov5.cc"],
348 hdrs = ["yolov5.h"],
349 deps = [
350 "//third_party:opencv",
351 "@com_github_gflags_gflags//:gflags",
352 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700353 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700354 ] + cpu_select({
355 "amd64": [
356 "@libtensorflowlite//:tensorflow-k8",
357 "@libedgetpu//:libedgetpu-k8",
358 ],
359 "arm": [
360 "@libtensorflowlite//:tensorflow-arm",
361 "@libedgetpu//:libedgetpu-arm",
362 ],
363 }),
364)
Filip Kujawaec433e12023-04-09 19:58:59 -0700365
366filegroup(
367 name = "game_pieces_detector_starter",
368 srcs = ["game_pieces_detector_starter.sh"],
369 visibility = ["//visibility:public"],
370)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700371
372cc_library(
373 name = "camera_monitor_lib",
374 srcs = ["camera_monitor_lib.cc"],
375 hdrs = ["camera_monitor_lib.h"],
376 deps = [
377 "//aos/events:event_loop",
378 "//aos/starter:starter_rpc_lib",
379 "//frc971/vision:vision_fbs",
380 ],
381)
382
383cc_binary(
384 name = "camera_monitor",
385 srcs = ["camera_monitor.cc"],
386 visibility = ["//visibility:public"],
387 deps = [
388 ":camera_monitor_lib",
389 "//aos:init",
390 "//aos/events:shm_event_loop",
391 ],
392)