blob: d5168c15d043c79a374a98d507a9f3f9ad81f4fc [file] [log] [blame]
Filip Kujawa3004f202023-02-12 16:41:40 -08001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -08002load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
Filip Kujawadc7d47c2023-04-08 16:16:51 -07003load("//tools/build_rules:select.bzl", "cpu_select")
Filip Kujawa3004f202023-02-12 16:41:40 -08004
Austin Schuhdb2ed9d2022-12-26 14:02:26 -08005cc_binary(
6 name = "camera_reader",
7 srcs = [
8 "camera_reader.cc",
Ravago Jonese8700072023-01-14 19:41:56 -08009 "rkisp1-config.h",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080010 ],
Ravago Jonese8700072023-01-14 19:41:56 -080011 target_compatible_with = [
12 "@platforms//os:linux",
13 "//tools/platforms/hardware:raspberry_pi",
14 ],
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080015 visibility = ["//y2023:__subpackages__"],
16 deps = [
17 "//aos:init",
18 "//aos/events:shm_event_loop",
19 "//frc971/vision:media_device",
20 "//frc971/vision:v4l2_reader",
21 ],
22)
23
24cc_binary(
25 name = "viewer",
26 srcs = [
27 "viewer.cc",
28 ],
29 target_compatible_with = ["@platforms//os:linux"],
30 visibility = ["//y2023:__subpackages__"],
31 deps = [
32 "//aos:init",
Ravago Jones17e13a22023-01-28 17:12:11 -080033 "//aos:json_to_flatbuffer",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080034 "//aos/events:shm_event_loop",
milind-uc3cf9752023-02-20 23:07:30 -080035 "//frc971/constants:constants_sender_lib",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080036 "//frc971/vision:vision_fbs",
37 "//third_party:opencv",
milind-uc3cf9752023-02-20 23:07:30 -080038 "//y2023/vision:vision_util",
Ravago Jones17e13a22023-01-28 17:12:11 -080039 "@com_google_absl//absl/strings",
Austin Schuhdb2ed9d2022-12-26 14:02:26 -080040 ],
41)
milind-u16e3a082023-01-21 13:53:43 -080042
43cc_binary(
milind-ud4051fe2023-02-25 18:00:05 -080044 name = "localization_verifier",
45 srcs = [
46 "localization_verifier.cc",
47 ],
48 target_compatible_with = ["@platforms//os:linux"],
49 visibility = ["//y2023:__subpackages__"],
50 deps = [
51 "//aos:init",
52 "//aos/events:shm_event_loop",
53 "//frc971/constants:constants_sender_lib",
54 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
55 "//frc971/vision:vision_fbs",
56 "//y2023/localizer",
milind-u607f3232023-02-26 15:22:40 -080057 "//y2023/localizer:utils",
milind-ud4051fe2023-02-25 18:00:05 -080058 "//y2023/vision:vision_util",
59 "@com_google_absl//absl/strings",
60 ],
61)
62
63cc_binary(
milind-u16e3a082023-01-21 13:53:43 -080064 name = "target_mapping",
65 srcs = [
66 "target_mapping.cc",
67 ],
68 data = [
69 "//y2023:aos_config",
milind-uc5a494f2023-02-24 15:39:22 -080070 "//y2023/constants:constants.json",
71 "//y2023/vision:maps",
milind-u16e3a082023-01-21 13:53:43 -080072 ],
73 target_compatible_with = ["@platforms//os:linux"],
74 visibility = ["//y2023:__subpackages__"],
75 deps = [
milind-u09fb1252023-01-28 19:21:41 -080076 ":aprilrobotics_lib",
milind-u16e3a082023-01-21 13:53:43 -080077 "//aos:init",
78 "//aos/events:simulated_event_loop",
79 "//aos/events/logging:log_reader",
Jim Ostrowski68965cd2023-03-01 20:32:51 -080080 "//aos/util:mcap_logger",
James Kuszmauld67f6d22023-02-05 17:37:25 -080081 "//frc971/constants:constants_sender_lib",
milind-u16e3a082023-01-21 13:53:43 -080082 "//frc971/control_loops:pose",
83 "//frc971/vision:calibration_fbs",
84 "//frc971/vision:charuco_lib",
85 "//frc971/vision:target_mapper",
86 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -080087 "//y2023/constants:constants_fbs",
milind-uc5a494f2023-02-24 15:39:22 -080088 "//y2023/constants:simulated_constants_sender",
Philipp Schrader790cb542023-07-05 21:06:52 -070089 "@org_tuxfamily_eigen//:eigen",
James Kuszmauld67f6d22023-02-05 17:37:25 -080090 ],
91)
92
93cc_library(
94 name = "vision_util",
95 srcs = ["vision_util.cc"],
96 hdrs = ["vision_util.h"],
97 deps = [
milind-uf2a4e322023-02-01 19:33:10 -080098 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -080099 "//y2023/constants:constants_fbs",
100 "@com_github_google_glog//:glog",
milind-u16e3a082023-01-21 13:53:43 -0800101 ],
102)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800103
Ravago Jonesb84f2062023-01-29 13:46:59 -0800104cc_library(
105 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800106 srcs = [
107 "aprilrobotics.cc",
108 "aprilrobotics.h",
109 ],
110 target_compatible_with = ["@platforms//os:linux"],
111 visibility = ["//y2023:__subpackages__"],
112 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800113 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800114 "//aos:init",
115 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800116 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800117 "//frc971/vision:calibration_fbs",
118 "//frc971/vision:charuco_lib",
119 "//frc971/vision:target_map_fbs",
120 "//frc971/vision:target_mapper",
121 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700122 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800123 "//third_party:opencv",
124 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800125 "//y2023/constants:constants_fbs",
Philipp Schrader790cb542023-07-05 21:06:52 -0700126 "@org_tuxfamily_eigen//:eigen",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800127 ],
128)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800129
130cc_binary(
131 name = "aprilrobotics",
132 srcs = [
133 "aprilrobotics_main.cc",
134 ],
135 target_compatible_with = ["@platforms//os:linux"],
136 visibility = ["//y2023:__subpackages__"],
137 deps = [
138 ":aprilrobotics_lib",
139 "//aos:init",
140 "//aos/events:shm_event_loop",
141 ],
142)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800143
Yash Chainani10b7b022023-02-22 14:34:04 -0800144cc_test(
145 name = "april_detection_test",
146 srcs = [
147 "april_detection_test.cc",
148 ],
149 data = [
150 "//y2023:aos_config",
151 "//y2023/constants:constants.json",
152 "@apriltag_test_bfbs_images",
153 ],
154 deps = [
155 ":aprilrobotics_lib",
156 "//aos:flatbuffer_merge",
157 "//aos:json_to_flatbuffer",
158 "//aos/events:simulated_event_loop",
159 "//aos/testing:googletest",
160 "//aos/testing:path",
161 "//aos/testing:test_logging",
162 "//frc971/constants:constants_sender_lib",
163 "//frc971/vision:target_mapper",
164 "//frc971/vision:vision_fbs",
165 "//y2023/constants:constants_fbs",
166 "//y2023/constants:constants_list_fbs",
167 ],
168)
169
milind-u8e98cb92023-02-05 16:07:10 -0800170filegroup(
171 name = "image_streamer_start",
172 srcs = ["image_streamer_start.sh"],
173 visibility = ["//visibility:public"],
174)
175
James Kuszmaul77d536c2023-02-11 17:30:59 -0800176cc_binary(
177 name = "foxglove_image_converter",
178 srcs = ["foxglove_image_converter.cc"],
179 visibility = ["//y2023:__subpackages__"],
180 deps = [
181 "//aos:init",
182 "//aos/events:shm_event_loop",
183 "//frc971/vision:foxglove_image_converter_lib",
184 ],
185)
James Kuszmauld6199be2023-02-11 19:56:28 -0800186
187cc_binary(
188 name = "calibrate_extrinsics",
189 srcs = [
190 "calibrate_extrinsics.cc",
191 ],
192 target_compatible_with = ["@platforms//os:linux"],
193 deps = [
194 "//aos:init",
195 "//aos/events/logging:log_reader",
196 "//frc971/constants:constants_sender_lib",
197 "//frc971/control_loops:profiled_subsystem_fbs",
198 "//frc971/vision:extrinsics_calibration",
199 "//third_party:opencv",
200 "//y2023/constants:constants_fbs",
201 "//y2023/vision:vision_util",
202 ],
203)
Filip Kujawa3004f202023-02-12 16:41:40 -0800204
205cc_binary(
206 name = "game_pieces_detector",
207 srcs = [
208 "game_pieces_main.cc",
209 ],
210 target_compatible_with = ["@platforms//os:linux"],
211 visibility = ["//y2023:__subpackages__"],
212 deps = [
213 ":game_pieces_lib",
214 "//aos:init",
215 "//aos/events:shm_event_loop",
216 ],
217)
218
219cc_library(
220 name = "game_pieces_lib",
221 srcs = [
222 "game_pieces.cc",
223 ],
224 hdrs = [
225 "game_pieces.h",
226 ],
227 data = [
228 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700229 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800230 ],
231 target_compatible_with = ["@platforms//os:linux"],
232 visibility = ["//y2023:__subpackages__"],
233 deps = [
234 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700235 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800236 "//aos/events:event_loop",
237 "//aos/events:shm_event_loop",
238 "//frc971/vision:vision_fbs",
239 ],
240)
241
242flatbuffer_cc_library(
243 name = "game_pieces_fbs",
244 srcs = ["game_pieces.fbs"],
245 gen_reflections = 1,
246 target_compatible_with = ["@platforms//os:linux"],
247 visibility = ["//visibility:public"],
248)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800249
250flatbuffer_ts_library(
251 name = "game_pieces_ts_fbs",
252 srcs = ["game_pieces.fbs"],
253 target_compatible_with = ["@platforms//os:linux"],
254 visibility = ["//visibility:public"],
255)
milind-ua96c5182023-03-10 23:31:11 -0800256
257cc_binary(
258 name = "image_logger",
259 srcs = [
260 "image_logger.cc",
261 ],
262 target_compatible_with = ["@platforms//os:linux"],
263 visibility = ["//visibility:public"],
264 deps = [
265 "//aos:configuration",
266 "//aos:init",
267 "//aos/events:shm_event_loop",
268 "//aos/events/logging:log_writer",
269 "//aos/logging:log_namer",
270 "//frc971/input:joystick_state_fbs",
271 "@com_github_gflags_gflags//:gflags",
272 "@com_github_google_glog//:glog",
273 ],
274)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700275
276cc_library(
277 name = "yolov5_lib",
278 srcs = ["yolov5.cc"],
279 hdrs = ["yolov5.h"],
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700280 copts = ["-Wno-unused-parameter"],
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700281 deps = [
282 "//third_party:opencv",
283 "@com_github_gflags_gflags//:gflags",
284 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700285 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700286 ] + cpu_select({
287 "amd64": [
288 "@libtensorflowlite//:tensorflow-k8",
289 "@libedgetpu//:libedgetpu-k8",
290 ],
291 "arm": [
292 "@libtensorflowlite//:tensorflow-arm",
293 "@libedgetpu//:libedgetpu-arm",
294 ],
295 }),
296)
Filip Kujawaec433e12023-04-09 19:58:59 -0700297
298filegroup(
299 name = "game_pieces_detector_starter",
300 srcs = ["game_pieces_detector_starter.sh"],
301 visibility = ["//visibility:public"],
302)
James Kuszmaul910fbe42023-04-09 16:18:40 -0700303
304cc_library(
305 name = "camera_monitor_lib",
306 srcs = ["camera_monitor_lib.cc"],
307 hdrs = ["camera_monitor_lib.h"],
308 deps = [
309 "//aos/events:event_loop",
310 "//aos/starter:starter_rpc_lib",
311 "//frc971/vision:vision_fbs",
312 ],
313)
314
315cc_binary(
316 name = "camera_monitor",
317 srcs = ["camera_monitor.cc"],
318 visibility = ["//visibility:public"],
319 deps = [
320 ":camera_monitor_lib",
321 "//aos:init",
322 "//aos/events:shm_event_loop",
323 ],
324)