blob: 1a0b399a3d4e096dab6a2b1ddd52901f7bac75da [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",
James Kuszmauld67f6d22023-02-05 17:37:25 -080089 ],
90)
91
92cc_library(
93 name = "vision_util",
94 srcs = ["vision_util.cc"],
95 hdrs = ["vision_util.h"],
96 deps = [
milind-uf2a4e322023-02-01 19:33:10 -080097 "//third_party:opencv",
James Kuszmauld67f6d22023-02-05 17:37:25 -080098 "//y2023/constants:constants_fbs",
99 "@com_github_google_glog//:glog",
milind-u16e3a082023-01-21 13:53:43 -0800100 ],
101)
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800102
Ravago Jonesb84f2062023-01-29 13:46:59 -0800103cc_library(
104 name = "aprilrobotics_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800105 srcs = [
106 "aprilrobotics.cc",
107 "aprilrobotics.h",
108 ],
109 target_compatible_with = ["@platforms//os:linux"],
110 visibility = ["//y2023:__subpackages__"],
111 deps = [
James Kuszmauld67f6d22023-02-05 17:37:25 -0800112 ":vision_util",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800113 "//aos:init",
114 "//aos/events:shm_event_loop",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800115 "//frc971/constants:constants_sender_lib",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800116 "//frc971/vision:calibration_fbs",
117 "//frc971/vision:charuco_lib",
118 "//frc971/vision:target_map_fbs",
119 "//frc971/vision:target_mapper",
120 "//frc971/vision:vision_fbs",
Jim Ostrowski49be8232023-03-23 01:00:14 -0700121 "//frc971/vision:visualize_robot",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800122 "//third_party:opencv",
123 "//third_party/apriltag",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800124 "//y2023/constants:constants_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800125 ],
126)
Ravago Jonesb84f2062023-01-29 13:46:59 -0800127
128cc_binary(
129 name = "aprilrobotics",
130 srcs = [
131 "aprilrobotics_main.cc",
132 ],
133 target_compatible_with = ["@platforms//os:linux"],
134 visibility = ["//y2023:__subpackages__"],
135 deps = [
136 ":aprilrobotics_lib",
137 "//aos:init",
138 "//aos/events:shm_event_loop",
139 ],
140)
James Kuszmaul77d536c2023-02-11 17:30:59 -0800141
Yash Chainani10b7b022023-02-22 14:34:04 -0800142cc_test(
143 name = "april_detection_test",
144 srcs = [
145 "april_detection_test.cc",
146 ],
147 data = [
148 "//y2023:aos_config",
149 "//y2023/constants:constants.json",
150 "@apriltag_test_bfbs_images",
151 ],
152 deps = [
153 ":aprilrobotics_lib",
154 "//aos:flatbuffer_merge",
155 "//aos:json_to_flatbuffer",
156 "//aos/events:simulated_event_loop",
157 "//aos/testing:googletest",
158 "//aos/testing:path",
159 "//aos/testing:test_logging",
160 "//frc971/constants:constants_sender_lib",
161 "//frc971/vision:target_mapper",
162 "//frc971/vision:vision_fbs",
163 "//y2023/constants:constants_fbs",
164 "//y2023/constants:constants_list_fbs",
165 ],
166)
167
milind-u8e98cb92023-02-05 16:07:10 -0800168filegroup(
169 name = "image_streamer_start",
170 srcs = ["image_streamer_start.sh"],
171 visibility = ["//visibility:public"],
172)
173
James Kuszmaul77d536c2023-02-11 17:30:59 -0800174cc_binary(
175 name = "foxglove_image_converter",
176 srcs = ["foxglove_image_converter.cc"],
177 visibility = ["//y2023:__subpackages__"],
178 deps = [
179 "//aos:init",
180 "//aos/events:shm_event_loop",
181 "//frc971/vision:foxglove_image_converter_lib",
182 ],
183)
James Kuszmauld6199be2023-02-11 19:56:28 -0800184
185cc_binary(
186 name = "calibrate_extrinsics",
187 srcs = [
188 "calibrate_extrinsics.cc",
189 ],
190 target_compatible_with = ["@platforms//os:linux"],
191 deps = [
192 "//aos:init",
193 "//aos/events/logging:log_reader",
194 "//frc971/constants:constants_sender_lib",
195 "//frc971/control_loops:profiled_subsystem_fbs",
196 "//frc971/vision:extrinsics_calibration",
197 "//third_party:opencv",
198 "//y2023/constants:constants_fbs",
199 "//y2023/vision:vision_util",
200 ],
201)
Filip Kujawa3004f202023-02-12 16:41:40 -0800202
203cc_binary(
204 name = "game_pieces_detector",
205 srcs = [
206 "game_pieces_main.cc",
207 ],
208 target_compatible_with = ["@platforms//os:linux"],
209 visibility = ["//y2023:__subpackages__"],
210 deps = [
211 ":game_pieces_lib",
212 "//aos:init",
213 "//aos/events:shm_event_loop",
214 ],
215)
216
217cc_library(
218 name = "game_pieces_lib",
219 srcs = [
220 "game_pieces.cc",
221 ],
222 hdrs = [
223 "game_pieces.h",
224 ],
225 data = [
226 "//y2023:aos_config",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700227 "@game_pieces_edgetpu_model//file",
Filip Kujawa3004f202023-02-12 16:41:40 -0800228 ],
229 target_compatible_with = ["@platforms//os:linux"],
230 visibility = ["//y2023:__subpackages__"],
231 deps = [
232 ":game_pieces_fbs",
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700233 ":yolov5_lib",
Filip Kujawa3004f202023-02-12 16:41:40 -0800234 "//aos/events:event_loop",
235 "//aos/events:shm_event_loop",
236 "//frc971/vision:vision_fbs",
237 ],
238)
239
240flatbuffer_cc_library(
241 name = "game_pieces_fbs",
242 srcs = ["game_pieces.fbs"],
243 gen_reflections = 1,
244 target_compatible_with = ["@platforms//os:linux"],
245 visibility = ["//visibility:public"],
246)
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800247
248flatbuffer_ts_library(
249 name = "game_pieces_ts_fbs",
250 srcs = ["game_pieces.fbs"],
251 target_compatible_with = ["@platforms//os:linux"],
252 visibility = ["//visibility:public"],
253)
milind-ua96c5182023-03-10 23:31:11 -0800254
255cc_binary(
256 name = "image_logger",
257 srcs = [
258 "image_logger.cc",
259 ],
260 target_compatible_with = ["@platforms//os:linux"],
261 visibility = ["//visibility:public"],
262 deps = [
263 "//aos:configuration",
264 "//aos:init",
265 "//aos/events:shm_event_loop",
266 "//aos/events/logging:log_writer",
267 "//aos/logging:log_namer",
268 "//frc971/input:joystick_state_fbs",
269 "@com_github_gflags_gflags//:gflags",
270 "@com_github_google_glog//:glog",
271 ],
272)
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700273
274cc_library(
275 name = "yolov5_lib",
276 srcs = ["yolov5.cc"],
277 hdrs = ["yolov5.h"],
Filip Kujawa8c76e5d2023-04-08 16:20:27 -0700278 copts = ["-Wno-unused-parameter"],
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700279 deps = [
280 "//third_party:opencv",
281 "@com_github_gflags_gflags//:gflags",
282 "@com_github_google_glog//:glog",
Filip Kujawaf3b8adb2023-04-07 21:00:49 -0700283 "@com_google_absl//absl/types:span",
Filip Kujawadc7d47c2023-04-08 16:16:51 -0700284 ] + cpu_select({
285 "amd64": [
286 "@libtensorflowlite//:tensorflow-k8",
287 "@libedgetpu//:libedgetpu-k8",
288 ],
289 "arm": [
290 "@libtensorflowlite//:tensorflow-arm",
291 "@libedgetpu//:libedgetpu-arm",
292 ],
293 }),
294)