blob: 5d29f0471ddd8d13636cb1479c2e6876aa78d6a9 [file] [log] [blame]
milind-u086d7262022-01-19 20:44:18 -08001load("//frc971:downloader.bzl", "robot_downloader")
2load("//aos:config.bzl", "aos_config")
Henry Speiser0b9b0052022-03-02 23:07:40 -08003load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
milind-uf2f59aa2022-01-23 21:06:12 -08004load("//tools/build_rules:template.bzl", "jinja2_template")
milind-u086d7262022-01-19 20:44:18 -08005
6robot_downloader(
milind-uf2f59aa2022-01-23 21:06:12 -08007 binaries = [
Henry Speiser0b9b0052022-03-02 23:07:40 -08008 ":setpoint_setter",
milind-uf2f59aa2022-01-23 21:06:12 -08009 "//aos/network:web_proxy_main",
Austin Schuh3d3707a2022-04-02 22:39:50 -070010 "//aos/events/logging:log_cat",
milind-uf2f59aa2022-01-23 21:06:12 -080011 ],
milind-u086d7262022-01-19 20:44:18 -080012 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080013 ":aos_config",
Austin Schuh6b2edc62022-03-27 13:32:09 -070014 ":message_bridge_client.sh",
Austin Schuhde605f12022-02-23 23:08:19 -080015 "@ctre_phoenix_api_cpp_athena//:shared_libraries",
16 "@ctre_phoenix_cci_athena//:shared_libraries",
milind-u086d7262022-01-19 20:44:18 -080017 ],
Austin Schuh76f227c2022-02-23 16:34:08 -080018 dirs = [
Ravago Jones81e50632022-03-11 16:23:51 -080019 "//y2022/actors:splines",
Austin Schuh76f227c2022-02-23 16:34:08 -080020 "//y2022/www:www_files",
21 ],
milind-u086d7262022-01-19 20:44:18 -080022 start_binaries = [
milind-uf2f59aa2022-01-23 21:06:12 -080023 "//aos/events/logging:logger_main",
24 "//aos/network:web_proxy_main",
milind-u086d7262022-01-19 20:44:18 -080025 ":joystick_reader",
26 ":wpilib_interface",
milind-uf2f59aa2022-01-23 21:06:12 -080027 "//aos/network:message_bridge_client",
28 "//aos/network:message_bridge_server",
29 "//y2022/actors:binaries",
milind-u086d7262022-01-19 20:44:18 -080030 "//y2022/control_loops/drivetrain:drivetrain",
Milind Upadhyayb8abf022022-02-22 21:07:44 -080031 "//y2022/control_loops/drivetrain:trajectory_generator",
milind-u086d7262022-01-19 20:44:18 -080032 "//y2022/control_loops/superstructure:superstructure",
milind-u086d7262022-01-19 20:44:18 -080033 ],
milind-uf2f59aa2022-01-23 21:06:12 -080034 target_compatible_with = ["@platforms//os:linux"],
milind-u086d7262022-01-19 20:44:18 -080035)
36
milind-u6b6e1002022-01-22 13:26:42 -080037robot_downloader(
38 name = "pi_download",
39 binaries = [
Jim Ostrowskib9135a92022-02-06 22:49:11 -080040 "//y2020/vision:calibration",
milind-u6b6e1002022-01-22 13:26:42 -080041 "//y2022/vision:viewer",
Ravago Jonese12b7902022-02-04 22:50:44 -080042 "//y2022/localizer:imu_main",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080043 "//y2022/localizer:localizer_main",
James Kuszmaul3eb753d2022-03-12 15:21:12 -080044 "//y2022/vision:image_decimator",
Tyler Chatowb3850c12020-02-26 20:55:48 -080045 "//y2022/image_streamer:image_streamer",
Austin Schuh63f65162022-04-01 22:31:19 -070046 "//aos/events/logging:log_cat",
milind-u6b6e1002022-01-22 13:26:42 -080047 ],
48 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080049 ":aos_config",
Tyler Chatowb3850c12020-02-26 20:55:48 -080050 "//y2022/image_streamer:image_streamer_start",
milind-u6b6e1002022-01-22 13:26:42 -080051 ],
James Kuszmaulb35e2342022-03-06 15:44:00 -080052 dirs = [
53 "//y2022/www:www_files",
Tyler Chatowb3850c12020-02-26 20:55:48 -080054 "//y2022/image_streamer/www:www_files",
James Kuszmaulb35e2342022-03-06 15:44:00 -080055 ],
milind-u6b6e1002022-01-22 13:26:42 -080056 start_binaries = [
57 "//aos/events/logging:logger_main",
58 "//aos/network:message_bridge_client",
59 "//aos/network:message_bridge_server",
60 "//aos/network:web_proxy_main",
61 "//y2022/vision:camera_reader",
Ravago Jones32bd3cb2022-03-26 15:45:03 -070062 "//y2022/vision:ball_color_detector",
milind-u6b6e1002022-01-22 13:26:42 -080063 ],
64 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
65 target_type = "pi",
66)
67
milind-uf2f59aa2022-01-23 21:06:12 -080068aos_config(
Austin Schuhc5fa6d92022-02-25 14:36:28 -080069 name = "aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -080070 src = "y2022.json",
71 flatbuffers = [
72 "//aos/network:message_bridge_client_fbs",
73 "//aos/network:message_bridge_server_fbs",
74 "//aos/network:timestamp_fbs",
75 "//frc971/input:robot_state_fbs",
76 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080077 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080078 ],
79 target_compatible_with = ["@platforms//os:linux"],
80 visibility = ["//visibility:public"],
81 deps = [
James Kuszmaulef35d732022-02-12 16:37:32 -080082 ":config_imu",
milind-uf2f59aa2022-01-23 21:06:12 -080083 ":config_logger",
84 ":config_pi1",
85 ":config_pi2",
86 ":config_pi3",
87 ":config_pi4",
milind-uf2f59aa2022-01-23 21:06:12 -080088 ":config_roborio",
89 ],
90)
91
92[
93 aos_config(
94 name = "config_" + pi,
95 src = "y2022_" + pi + ".json",
96 flatbuffers = [
97 "//aos/network:message_bridge_client_fbs",
98 "//aos/network:message_bridge_server_fbs",
99 "//aos/network:timestamp_fbs",
100 "//aos/network:remote_message_fbs",
101 "//frc971/vision:vision_fbs",
Milind Upadhyayd67e9cf2022-03-13 13:56:57 -0700102 "//y2022/localizer:localizer_output_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800103 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800104 "//y2022/vision:target_estimate_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700105 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800106 ],
107 target_compatible_with = ["@platforms//os:linux"],
108 visibility = ["//visibility:public"],
109 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800110 "//aos/events:aos_config",
111 "//frc971/control_loops/drivetrain:aos_config",
112 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800113 ],
114 )
115 for pi in [
116 "pi1",
117 "pi2",
118 "pi3",
119 "pi4",
milind-uf2f59aa2022-01-23 21:06:12 -0800120 ]
121]
122
123aos_config(
James Kuszmaulef35d732022-02-12 16:37:32 -0800124 name = "config_imu",
125 src = "y2022_imu.json",
126 flatbuffers = [
127 "//aos/network:message_bridge_client_fbs",
128 "//aos/network:message_bridge_server_fbs",
129 "//aos/network:timestamp_fbs",
130 "//aos/network:remote_message_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800131 "//y2022/localizer:localizer_status_fbs",
132 "//y2022/localizer:localizer_output_fbs",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -0800133 "//y2022/localizer:localizer_visualization_fbs",
James Kuszmaulef35d732022-02-12 16:37:32 -0800134 ],
135 target_compatible_with = ["@platforms//os:linux"],
136 visibility = ["//visibility:public"],
137 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800138 "//aos/events:aos_config",
139 "//frc971/control_loops/drivetrain:aos_config",
James Kuszmaulef35d732022-02-12 16:37:32 -0800140 ],
141)
142
143aos_config(
milind-uf2f59aa2022-01-23 21:06:12 -0800144 name = "config_logger",
145 src = "y2022_logger.json",
146 flatbuffers = [
147 "//aos/network:message_bridge_client_fbs",
148 "//aos/network:message_bridge_server_fbs",
149 "//aos/network:timestamp_fbs",
150 "//aos/network:remote_message_fbs",
151 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800152 "//y2022/vision:calibration_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700153 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800154 ],
155 target_compatible_with = ["@platforms//os:linux"],
156 visibility = ["//visibility:public"],
157 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800158 "//aos/events:aos_config",
159 "//frc971/control_loops/drivetrain:aos_config",
160 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800161 ],
162)
163
164aos_config(
165 name = "config_roborio",
166 src = "y2022_roborio.json",
167 flatbuffers = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800168 ":setpoint_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800169 "//aos/network:remote_message_fbs",
170 "//aos/network:message_bridge_client_fbs",
171 "//aos/network:message_bridge_server_fbs",
172 "//aos/network:timestamp_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700173 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800174 "//y2019/control_loops/drivetrain:target_selector_fbs",
175 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
176 "//y2022/control_loops/superstructure:superstructure_output_fbs",
177 "//y2022/control_loops/superstructure:superstructure_position_fbs",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800178 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800179 "//y2022/control_loops/superstructure:superstructure_status_fbs",
180 ],
181 target_compatible_with = ["@platforms//os:linux"],
182 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800183 "//aos/events:aos_config",
184 "//frc971/autonomous:aos_config",
185 "//frc971/control_loops/drivetrain:aos_config",
186 "//frc971/input:aos_config",
187 "//frc971/wpilib:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800188 ],
189)
190
191[
192 jinja2_template(
193 name = "y2022_pi" + str(num) + ".json",
194 src = "y2022_pi_template.json",
195 parameters = {"NUM": str(num)},
196 target_compatible_with = ["@platforms//os:linux"],
197 )
198 for num in range(1, 6)
199]
200
milind-u086d7262022-01-19 20:44:18 -0800201cc_library(
202 name = "constants",
203 srcs = [
204 "constants.cc",
205 ],
206 hdrs = [
207 "constants.h",
208 ],
209 visibility = ["//visibility:public"],
210 deps = [
211 "//aos/mutex",
212 "//aos/network:team_number",
213 "//frc971:constants",
214 "//frc971/control_loops:pose",
215 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
Ravago Jones3283ce02022-03-09 19:31:29 -0800216 "//frc971/shooter_interpolation:interpolation",
milind-u086d7262022-01-19 20:44:18 -0800217 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Austin Schuh39f26f62022-02-24 21:34:46 -0800218 "//y2022/control_loops/superstructure/catapult:catapult_plants",
Siddhant Kanwar0e37f592022-02-21 19:26:50 -0800219 "//y2022/control_loops/superstructure/climber:climber_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800220 "//y2022/control_loops/superstructure/intake:intake_plants",
Henry Speiser55aa3ba2022-02-21 23:21:12 -0800221 "//y2022/control_loops/superstructure/turret:turret_plants",
milind-u086d7262022-01-19 20:44:18 -0800222 "@com_github_google_glog//:glog",
223 "@com_google_absl//absl/base",
224 ],
225)
226
227cc_binary(
228 name = "wpilib_interface",
229 srcs = [
230 "wpilib_interface.cc",
231 ],
232 target_compatible_with = ["//tools/platforms/hardware:roborio"],
233 deps = [
234 ":constants",
235 "//aos:init",
236 "//aos:math",
237 "//aos/events:shm_event_loop",
238 "//aos/logging",
239 "//aos/stl_mutex",
240 "//aos/time",
241 "//aos/util:log_interval",
242 "//aos/util:phased_loop",
243 "//aos/util:wrapping_counter",
244 "//frc971/autonomous:auto_mode_fbs",
245 "//frc971/control_loops:control_loop",
246 "//frc971/control_loops:control_loops_fbs",
247 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
248 "//frc971/input:robot_state_fbs",
Ravago Jones0e86e242022-02-12 18:38:14 -0800249 "//frc971/queues:gyro_fbs",
milind-u086d7262022-01-19 20:44:18 -0800250 "//frc971/wpilib:ADIS16448",
251 "//frc971/wpilib:buffered_pcm",
252 "//frc971/wpilib:drivetrain_writer",
253 "//frc971/wpilib:encoder_and_potentiometer",
254 "//frc971/wpilib:interrupt_edge_counting",
255 "//frc971/wpilib:joystick_sender",
256 "//frc971/wpilib:logging_fbs",
257 "//frc971/wpilib:loop_output_handler",
258 "//frc971/wpilib:pdp_fetcher",
259 "//frc971/wpilib:sensor_reader",
260 "//frc971/wpilib:wpilib_interface",
261 "//frc971/wpilib:wpilib_robot_base",
262 "//third_party:phoenix",
263 "//third_party:wpilib",
Henry Speiser77747b72022-03-06 17:18:29 -0800264 "//y2022/control_loops/superstructure:led_indicator_lib",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800265 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-u086d7262022-01-19 20:44:18 -0800266 "//y2022/control_loops/superstructure:superstructure_output_fbs",
267 "//y2022/control_loops/superstructure:superstructure_position_fbs",
268 ],
269)
270
271cc_binary(
272 name = "joystick_reader",
273 srcs = [
274 ":joystick_reader.cc",
275 ],
276 deps = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800277 ":constants",
278 ":setpoint_fbs",
milind-u086d7262022-01-19 20:44:18 -0800279 "//aos:init",
280 "//aos/actions:action_lib",
281 "//aos/logging",
282 "//frc971/autonomous:auto_fbs",
283 "//frc971/autonomous:base_autonomous_actor",
284 "//frc971/control_loops:profiled_subsystem_fbs",
285 "//frc971/input:action_joystick_input",
286 "//frc971/input:drivetrain_input",
287 "//frc971/input:joystick_input",
288 "//y2022/control_loops/drivetrain:drivetrain_base",
289 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
290 "//y2022/control_loops/superstructure:superstructure_status_fbs",
291 ],
292)
Milo Lin5d49af02022-02-05 12:50:32 -0800293
Henry Speiser0b9b0052022-03-02 23:07:40 -0800294flatbuffer_cc_library(
295 name = "setpoint_fbs",
296 srcs = [
297 "setpoint.fbs",
298 ],
299 gen_reflections = 1,
300 target_compatible_with = ["@platforms//os:linux"],
301)
302
303cc_binary(
304 name = "setpoint_setter",
305 srcs = ["setpoint_setter.cc"],
306 target_compatible_with = ["@platforms//os:linux"],
307 deps = [
308 ":constants",
309 ":setpoint_fbs",
310 "//aos:init",
311 "//aos/events:shm_event_loop",
312 ],
313)
314
Milo Lin5d49af02022-02-05 12:50:32 -0800315py_library(
316 name = "python_init",
317 srcs = ["__init__.py"],
318 target_compatible_with = ["@platforms//os:linux"],
319 visibility = ["//visibility:public"],
320)
James Kuszmaulf3ef9e12022-03-05 17:13:00 -0800321
322sh_binary(
323 name = "log_web_proxy",
324 srcs = ["log_web_proxy.sh"],
325 data = [
326 ":aos_config",
327 "//aos/network:log_web_proxy_main",
328 "//y2022/www:field_main_bundle.min.js",
329 "//y2022/www:files",
330 ],
331 target_compatible_with = ["@platforms//os:linux"],
332)