blob: 7ccd53d00f5b3d7ddfb7c7fd59fc97fd4483c58e [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(
26 name = "viewer",
27 srcs = [
28 "viewer.cc",
29 ],
30 target_compatible_with = ["@platforms//os:linux"],
31 visibility = ["//y2023:__subpackages__"],
32 deps = [
33 "//aos:init",
Ravago Jones17e13a22023-01-28 17:12:11 -080034 "//aos:json_to_flatbuffer",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080035 "//aos/events:shm_event_loop",
milind-uc3cf9752023-02-20 23:07:30 -080036 "//frc971/constants:constants_sender_lib",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080037 "//frc971/vision:vision_fbs",
38 "//third_party:opencv",
milind-uc3cf9752023-02-20 23:07:30 -080039 "//y2023/vision:vision_util",
Ravago Jones17e13a22023-01-28 17:12:11 -080040 "@com_google_absl//absl/strings",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080041 ],
42)
milind-u16e3a082023-01-21 13:53:43 -080043
44cc_binary(
milind-ud4051fe2023-02-25 18:00:05 -080045 name = "localization_verifier",
46 srcs = [
47 "localization_verifier.cc",
48 ],
49 target_compatible_with = ["@platforms//os:linux"],
50 visibility = ["//y2023:__subpackages__"],
51 deps = [
52 "//aos:init",
53 "//aos/events:shm_event_loop",
54 "//frc971/constants:constants_sender_lib",
55 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
56 "//frc971/vision:vision_fbs",
57 "//y2023/localizer",
milind-u607f3232023-02-26 15:22:40 -080058 "//y2023/localizer:utils",
milind-ud4051fe2023-02-25 18:00:05 -080059 "//y2023/vision:vision_util",
60 "@com_google_absl//absl/strings",
61 ],
62)
63
64cc_binary(
milind-u16e3a082023-01-21 13:53:43 -080065 name = "target_mapping",
66 srcs = [
67 "target_mapping.cc",
68 ],
69 data = [
70 "//y2023:aos_config",
milind-uc5a494f2023-02-24 15:39:22 -080071 "//y2023/constants:constants.json",
72 "//y2023/vision:maps",
milind-u16e3a082023-01-21 13:53:43 -080073 ],
74 target_compatible_with = ["@platforms//os:linux"],
75 visibility = ["//y2023:__subpackages__"],
76 deps = [
milind-u09fb1252023-01-28 19:21:41 -080077 ":aprilrobotics_lib",
milind-u16e3a082023-01-21 13:53:43 -080078 "//aos:init",
79 "//aos/events:simulated_event_loop",
80 "//aos/events/logging:log_reader",
Jim Ostrowski68965cd2023-03-01 20:32:51 -080081 "//aos/util:mcap_logger",
James Kuszmauld67f6d22023-02-05 17:37:25 -080082 "//frc971/constants:constants_sender_lib",
milind-u16e3a082023-01-21 13:53:43 -080083 "//frc971/control_loops:pose",
84 "//frc971/vision:calibration_fbs",
85 "//frc971/vision:charuco_lib",
86 "//frc971/vision:target_mapper",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -070087 "//frc971/vision:visualize_robot",
milind-u16e3a082023-01-21 13:53:43 -080088 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -080089 "//y2023/constants:constants_fbs",
milind-uc5a494f2023-02-24 15:39:22 -080090 "//y2023/constants:simulated_constants_sender",
James Kuszmauld67f6d22023-02-05 17:37:25 -080091 ],
92)
93
94cc_library(
95 name = "vision_util",
96 srcs = ["vision_util.cc"],
97 hdrs = ["vision_util.h"],
98 deps = [
milind-uf2a4e322023-02-01 19:33:10 -080099 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800100 "//y2023/constants:constants_fbs",
101 "@com_github_google_glog//:glog",
milind-u16e3a082023-01-21 13:53:43 -0800102 ],
103)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800104
Maxwell Henderson5e7696f2023-01-29 12:14:27 -0800105halide_library(
106 name = "ToGreyscaleAndDecimateHalide",
107 src = "april_generator.cc",
108 args = "rows=720 cols=1280",
109 function = "decimate_generator",
110 visibility = ["//visibility:public"],
111)
112
113halide_library(
114 name = "ThresholdHalide",
115 src = "april_generator.cc",
116 args = "rows=360 cols=640",
117 function = "threshold_generator",
118 visibility = ["//visibility:public"],
119)
120
Ravago Jonesb84f2062023-01-29 13:46:59 -0800121cc_library(
122 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800123 srcs = [
124 "aprilrobotics.cc",
125 "aprilrobotics.h",
126 ],
127 target_compatible_with = ["@platforms//os:linux"],
128 visibility = ["//y2023:__subpackages__"],
129 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800130 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800131 "//aos:init",
132 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800133 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800134 "//frc971/vision:calibration_fbs",
135 "//frc971/vision:charuco_lib",
136 "//frc971/vision:target_map_fbs",
137 "//frc971/vision:target_mapper",
138 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700139 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800140 "//third_party:opencv",
141 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800142 "//y2023/constants:constants_fbs",
Philipp Schrader790cb542023-07-05 21:06:52 -0700143 "@org_tuxfamily_eigen//:eigen",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800144 ],
145)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800146
147cc_binary(
148 name = "aprilrobotics",
149 srcs = [
150 "aprilrobotics_main.cc",
151 ],
152 target_compatible_with = ["@platforms//os:linux"],
153 visibility = ["//y2023:__subpackages__"],
154 deps = [
155 ":aprilrobotics_lib",
156 "//aos:init",
157 "//aos/events:shm_event_loop",
158 ],
159)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800160
Yash Chainani10b7b022023-02-22 14:34:04 -0800161cc_test(
162 name = "april_detection_test",
163 srcs = [
164 "april_detection_test.cc",
165 ],
166 data = [
167 "//y2023:aos_config",
168 "//y2023/constants:constants.json",
169 "@apriltag_test_bfbs_images",
170 ],
171 deps = [
172 ":aprilrobotics_lib",
173 "//aos:flatbuffer_merge",
174 "//aos:json_to_flatbuffer",
175 "//aos/events:simulated_event_loop",
176 "//aos/testing:googletest",
177 "//aos/testing:path",
178 "//aos/testing:test_logging",
179 "//frc971/constants:constants_sender_lib",
180 "//frc971/vision:target_mapper",
181 "//frc971/vision:vision_fbs",
182 "//y2023/constants:constants_fbs",
183 "//y2023/constants:constants_list_fbs",
184 ],
185)
186
milind-u8e98cb92023-02-05 16:07:10 -0800187filegroup(
188 name = "image_streamer_start",
189 srcs = ["image_streamer_start.sh"],
190 visibility = ["//visibility:public"],
191)
192
James Kuszmaul77d536c2023-02-11 17:30:59 -0800193cc_binary(
194 name = "foxglove_image_converter",
195 srcs = ["foxglove_image_converter.cc"],
196 visibility = ["//y2023:__subpackages__"],
197 deps = [
198 "//aos:init",
199 "//aos/events:shm_event_loop",
200 "//frc971/vision:foxglove_image_converter_lib",
201 ],
202)
James Kuszmauld6199be2023-02-11 19:56:28 -0800203
204cc_binary(
205 name = "calibrate_extrinsics",
206 srcs = [
207 "calibrate_extrinsics.cc",
208 ],
209 target_compatible_with = ["@platforms//os:linux"],
210 deps = [
211 "//aos:init",
212 "//aos/events/logging:log_reader",
213 "//frc971/constants:constants_sender_lib",
214 "//frc971/control_loops:profiled_subsystem_fbs",
215 "//frc971/vision:extrinsics_calibration",
216 "//third_party:opencv",
217 "//y2023/constants:constants_fbs",
218 "//y2023/vision:vision_util",
219 ],
220)
Filip Kujawa3004f202023-02-12 16:41:40 -0800221
222cc_binary(
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700223 name = "calibrate_multi_cameras",
224 srcs = [
225 "calibrate_multi_cameras.cc",
226 ],
227 data = [
228 "//y2023:aos_config",
229 "//y2023/constants:constants.json",
230 "//y2023/vision:maps",
231 ],
232 target_compatible_with = ["@platforms//os:linux"],
233 visibility = ["//y2023:__subpackages__"],
234 deps = [
235 ":aprilrobotics_lib",
236 "//aos:init",
237 "//aos/events:simulated_event_loop",
238 "//aos/events/logging:log_reader",
239 "//aos/util:mcap_logger",
240 "//frc971/constants:constants_sender_lib",
241 "//frc971/control_loops:pose",
242 "//frc971/vision:calibration_fbs",
243 "//frc971/vision:charuco_lib",
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800244 "//frc971/vision:extrinsics_calibration",
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700245 "//frc971/vision:target_mapper",
246 "//third_party:opencv",
247 "//y2023/constants:constants_fbs",
248 "//y2023/constants:simulated_constants_sender",
249 "@org_tuxfamily_eigen//:eigen",
250 ],
251)
252
Jim Ostrowski68c321d2023-11-14 21:36:28 -0800253py_test(
254 name = "calibrate_multi_cameras_test",
255 srcs = ["calibrate_multi_cameras_test.py"],
256 args = [
257 "--calibrate_binary",
258 "$(location :calibrate_multi_cameras)",
259 "--logfile",
260 "external/calibrate_multi_cameras_data/fbs_log-268",
261 ],
262 data = [
263 ":calibrate_multi_cameras",
264 "//y2023/vision/calib_files",
265 "@calibrate_multi_cameras_data",
266 ],
267 target_compatible_with = ["@platforms//cpu:x86_64"],
268)
269
Jim Ostrowski2f2685f2023-03-25 11:57:54 -0700270cc_binary(
Filip Kujawa3004f202023-02-12 16:41:40 -0800271 name = "game_pieces_detector",
272 srcs = [
273 "game_pieces_main.cc",
274 ],
275 target_compatible_with = ["@platforms//os:linux"],
276 visibility = ["//y2023:__subpackages__"],
277 deps = [
278 ":game_pieces_lib",
279 "//aos:init",
280 "//aos/events:shm_event_loop",
281 ],
282)
283
284cc_library(
285 name = "game_pieces_lib",
286 srcs = [
287 "game_pieces.cc",
288 ],
289 hdrs = [
290 "game_pieces.h",
291 ],
292 data = [
293 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700294 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800295 ],
296 target_compatible_with = ["@platforms//os:linux"],
297 visibility = ["//y2023:__subpackages__"],
298 deps = [
299 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700300 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800301 "//aos/events:event_loop",
302 "//aos/events:shm_event_loop",
303 "//frc971/vision:vision_fbs",
304 ],
305)
306
307flatbuffer_cc_library(
308 name = "game_pieces_fbs",
309 srcs = ["game_pieces.fbs"],
310 gen_reflections = 1,
311 target_compatible_with = ["@platforms//os:linux"],
312 visibility = ["//visibility:public"],
313)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800314
315flatbuffer_ts_library(
316 name = "game_pieces_ts_fbs",
317 srcs = ["game_pieces.fbs"],
318 target_compatible_with = ["@platforms//os:linux"],
319 visibility = ["//visibility:public"],
320)
milind-ua96c5182023-03-10 23:31:11 -0800321
322cc_binary(
323 name = "image_logger",
324 srcs = [
325 "image_logger.cc",
326 ],
327 target_compatible_with = ["@platforms//os:linux"],
328 visibility = ["//visibility:public"],
329 deps = [
330 "//aos:configuration",
331 "//aos:init",
332 "//aos/events:shm_event_loop",
333 "//aos/events/logging:log_writer",
334 "//aos/logging:log_namer",
335 "//frc971/input:joystick_state_fbs",
336 "@com_github_gflags_gflags//:gflags",
337 "@com_github_google_glog//:glog",
338 ],
339)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700340
341cc_library(
342 name = "yolov5_lib",
343 srcs = ["yolov5.cc"],
344 hdrs = ["yolov5.h"],
345 deps = [
346 "//third_party:opencv",
347 "@com_github_gflags_gflags//:gflags",
348 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700349 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700350 ] + cpu_select({
351 "amd64": [
352 "@libtensorflowlite//:tensorflow-k8",
353 "@libedgetpu//:libedgetpu-k8",
354 ],
355 "arm": [
356 "@libtensorflowlite//:tensorflow-arm",
357 "@libedgetpu//:libedgetpu-arm",
358 ],
359 }),
360)
Filip Kujawaec433e12023-04-09 19:58:59 -0700361
362filegroup(
363 name = "game_pieces_detector_starter",
364 srcs = ["game_pieces_detector_starter.sh"],
365 visibility = ["//visibility:public"],
366)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700367
368cc_library(
369 name = "camera_monitor_lib",
370 srcs = ["camera_monitor_lib.cc"],
371 hdrs = ["camera_monitor_lib.h"],
372 deps = [
373 "//aos/events:event_loop",
374 "//aos/starter:starter_rpc_lib",
375 "//frc971/vision:vision_fbs",
376 ],
377)
378
379cc_binary(
380 name = "camera_monitor",
381 srcs = ["camera_monitor.cc"],
382 visibility = ["//visibility:public"],
383 deps = [
384 ":camera_monitor_lib",
385 "//aos:init",
386 "//aos/events:shm_event_loop",
387 ],
388)