blob: 5d32f15a62a740549a43bca527c2de4b2cfba2f7 [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",
James Kuszmaul9776b392023-01-14 14:08:08 -080017 "@ctre_phoenixpro_api_cpp_athena//:shared_libraries",
18 "@ctre_phoenixpro_tools_athena//:shared_libraries",
milind-u086d7262022-01-19 20:44:18 -080019 ],
Austin Schuh76f227c2022-02-23 16:34:08 -080020 dirs = [
Ravago Jones81e50632022-03-11 16:23:51 -080021 "//y2022/actors:splines",
Austin Schuh76f227c2022-02-23 16:34:08 -080022 "//y2022/www:www_files",
23 ],
milind-u086d7262022-01-19 20:44:18 -080024 start_binaries = [
milind-uf2f59aa2022-01-23 21:06:12 -080025 "//aos/events/logging:logger_main",
26 "//aos/network:web_proxy_main",
milind-u086d7262022-01-19 20:44:18 -080027 ":joystick_reader",
28 ":wpilib_interface",
milind-uf2f59aa2022-01-23 21:06:12 -080029 "//aos/network:message_bridge_client",
30 "//aos/network:message_bridge_server",
31 "//y2022/actors:binaries",
milind-u086d7262022-01-19 20:44:18 -080032 "//y2022/control_loops/drivetrain:drivetrain",
Milind Upadhyayb8abf022022-02-22 21:07:44 -080033 "//y2022/control_loops/drivetrain:trajectory_generator",
milind-u086d7262022-01-19 20:44:18 -080034 "//y2022/control_loops/superstructure:superstructure",
milind-u086d7262022-01-19 20:44:18 -080035 ],
milind-uf2f59aa2022-01-23 21:06:12 -080036 target_compatible_with = ["@platforms//os:linux"],
milind-u086d7262022-01-19 20:44:18 -080037)
38
milind-u6b6e1002022-01-22 13:26:42 -080039robot_downloader(
40 name = "pi_download",
41 binaries = [
James Kuszmaul7e958812023-02-11 15:34:31 -080042 "//frc971/vision:intrinsics_calibration",
milind-u6b6e1002022-01-22 13:26:42 -080043 "//y2022/vision:viewer",
Ravago Jonese12b7902022-02-04 22:50:44 -080044 "//y2022/localizer:imu_main",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080045 "//y2022/localizer:localizer_main",
James Kuszmaul3eb753d2022-03-12 15:21:12 -080046 "//y2022/vision:image_decimator",
Tyler Chatowb3850c12020-02-26 20:55:48 -080047 "//y2022/image_streamer:image_streamer",
Austin Schuh63f65162022-04-01 22:31:19 -070048 "//aos/events/logging:log_cat",
milind-u6b6e1002022-01-22 13:26:42 -080049 ],
50 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080051 ":aos_config",
Austin Schuh37559162022-11-09 09:45:15 -080052 ":message_bridge_client.sh",
Tyler Chatowb3850c12020-02-26 20:55:48 -080053 "//y2022/image_streamer:image_streamer_start",
milind-u6b6e1002022-01-22 13:26:42 -080054 ],
James Kuszmaulb35e2342022-03-06 15:44:00 -080055 dirs = [
56 "//y2022/www:www_files",
Tyler Chatowb3850c12020-02-26 20:55:48 -080057 "//y2022/image_streamer/www:www_files",
James Kuszmaulb35e2342022-03-06 15:44:00 -080058 ],
milind-u6b6e1002022-01-22 13:26:42 -080059 start_binaries = [
60 "//aos/events/logging:logger_main",
61 "//aos/network:message_bridge_client",
62 "//aos/network:message_bridge_server",
63 "//aos/network:web_proxy_main",
64 "//y2022/vision:camera_reader",
Ravago Jones32bd3cb2022-03-26 15:45:03 -070065 "//y2022/vision:ball_color_detector",
milind-u6b6e1002022-01-22 13:26:42 -080066 ],
67 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
68 target_type = "pi",
69)
70
milind-uf2f59aa2022-01-23 21:06:12 -080071aos_config(
Austin Schuhc5fa6d92022-02-25 14:36:28 -080072 name = "aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -080073 src = "y2022.json",
74 flatbuffers = [
75 "//aos/network:message_bridge_client_fbs",
76 "//aos/network:message_bridge_server_fbs",
77 "//aos/network:timestamp_fbs",
78 "//frc971/input:robot_state_fbs",
79 "//frc971/vision:vision_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080080 "//frc971/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080081 ],
82 target_compatible_with = ["@platforms//os:linux"],
83 visibility = ["//visibility:public"],
84 deps = [
James Kuszmaulef35d732022-02-12 16:37:32 -080085 ":config_imu",
milind-uf2f59aa2022-01-23 21:06:12 -080086 ":config_logger",
87 ":config_pi1",
88 ":config_pi2",
89 ":config_pi3",
90 ":config_pi4",
milind-uf2f59aa2022-01-23 21:06:12 -080091 ":config_roborio",
92 ],
93)
94
95[
96 aos_config(
97 name = "config_" + pi,
98 src = "y2022_" + pi + ".json",
99 flatbuffers = [
100 "//aos/network:message_bridge_client_fbs",
101 "//aos/network:message_bridge_server_fbs",
102 "//aos/network:timestamp_fbs",
103 "//aos/network:remote_message_fbs",
104 "//frc971/vision:vision_fbs",
Milind Upadhyayd67e9cf2022-03-13 13:56:57 -0700105 "//y2022/localizer:localizer_output_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800106 "//frc971/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800107 "//y2022/vision:target_estimate_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700108 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800109 ],
110 target_compatible_with = ["@platforms//os:linux"],
111 visibility = ["//visibility:public"],
112 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800113 "//aos/events:aos_config",
114 "//frc971/control_loops/drivetrain:aos_config",
115 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800116 ],
117 )
118 for pi in [
119 "pi1",
120 "pi2",
121 "pi3",
122 "pi4",
milind-uf2f59aa2022-01-23 21:06:12 -0800123 ]
124]
125
126aos_config(
James Kuszmaulef35d732022-02-12 16:37:32 -0800127 name = "config_imu",
128 src = "y2022_imu.json",
129 flatbuffers = [
130 "//aos/network:message_bridge_client_fbs",
131 "//aos/network:message_bridge_server_fbs",
132 "//aos/network:timestamp_fbs",
133 "//aos/network:remote_message_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800134 "//y2022/localizer:localizer_status_fbs",
135 "//y2022/localizer:localizer_output_fbs",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -0800136 "//y2022/localizer:localizer_visualization_fbs",
James Kuszmaulef35d732022-02-12 16:37:32 -0800137 ],
138 target_compatible_with = ["@platforms//os:linux"],
139 visibility = ["//visibility:public"],
140 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800141 "//aos/events:aos_config",
142 "//frc971/control_loops/drivetrain:aos_config",
James Kuszmaulef35d732022-02-12 16:37:32 -0800143 ],
144)
145
146aos_config(
milind-uf2f59aa2022-01-23 21:06:12 -0800147 name = "config_logger",
148 src = "y2022_logger.json",
149 flatbuffers = [
150 "//aos/network:message_bridge_client_fbs",
151 "//aos/network:message_bridge_server_fbs",
152 "//aos/network:timestamp_fbs",
153 "//aos/network:remote_message_fbs",
154 "//frc971/vision:vision_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800155 "//frc971/vision:calibration_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700156 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800157 ],
158 target_compatible_with = ["@platforms//os:linux"],
159 visibility = ["//visibility:public"],
160 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800161 "//aos/events:aos_config",
162 "//frc971/control_loops/drivetrain:aos_config",
163 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800164 ],
165)
166
167aos_config(
168 name = "config_roborio",
169 src = "y2022_roborio.json",
170 flatbuffers = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800171 ":setpoint_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800172 "//aos/network:remote_message_fbs",
173 "//aos/network:message_bridge_client_fbs",
174 "//aos/network:message_bridge_server_fbs",
175 "//aos/network:timestamp_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700176 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800177 "//y2019/control_loops/drivetrain:target_selector_fbs",
178 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
179 "//y2022/control_loops/superstructure:superstructure_output_fbs",
180 "//y2022/control_loops/superstructure:superstructure_position_fbs",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800181 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800182 "//y2022/control_loops/superstructure:superstructure_status_fbs",
183 ],
184 target_compatible_with = ["@platforms//os:linux"],
185 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800186 "//aos/events:aos_config",
187 "//frc971/autonomous:aos_config",
188 "//frc971/control_loops/drivetrain:aos_config",
189 "//frc971/input:aos_config",
190 "//frc971/wpilib:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800191 ],
192)
193
194[
195 jinja2_template(
196 name = "y2022_pi" + str(num) + ".json",
197 src = "y2022_pi_template.json",
198 parameters = {"NUM": str(num)},
199 target_compatible_with = ["@platforms//os:linux"],
200 )
201 for num in range(1, 6)
202]
203
milind-u086d7262022-01-19 20:44:18 -0800204cc_library(
205 name = "constants",
206 srcs = [
207 "constants.cc",
208 ],
209 hdrs = [
210 "constants.h",
211 ],
212 visibility = ["//visibility:public"],
213 deps = [
214 "//aos/mutex",
215 "//aos/network:team_number",
216 "//frc971:constants",
217 "//frc971/control_loops:pose",
218 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
Ravago Jones3283ce02022-03-09 19:31:29 -0800219 "//frc971/shooter_interpolation:interpolation",
Nathan Leong342b85e2023-01-08 13:49:33 -0800220 "//frc971/wpilib:wpilib_utils",
milind-u086d7262022-01-19 20:44:18 -0800221 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Austin Schuh39f26f62022-02-24 21:34:46 -0800222 "//y2022/control_loops/superstructure/catapult:catapult_plants",
Siddhant Kanwar0e37f592022-02-21 19:26:50 -0800223 "//y2022/control_loops/superstructure/climber:climber_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800224 "//y2022/control_loops/superstructure/intake:intake_plants",
Henry Speiser55aa3ba2022-02-21 23:21:12 -0800225 "//y2022/control_loops/superstructure/turret:turret_plants",
milind-u086d7262022-01-19 20:44:18 -0800226 "@com_github_google_glog//:glog",
227 "@com_google_absl//absl/base",
228 ],
229)
230
231cc_binary(
232 name = "wpilib_interface",
233 srcs = [
234 "wpilib_interface.cc",
235 ],
236 target_compatible_with = ["//tools/platforms/hardware:roborio"],
237 deps = [
238 ":constants",
239 "//aos:init",
240 "//aos:math",
241 "//aos/events:shm_event_loop",
242 "//aos/logging",
243 "//aos/stl_mutex",
244 "//aos/time",
245 "//aos/util:log_interval",
246 "//aos/util:phased_loop",
247 "//aos/util:wrapping_counter",
248 "//frc971/autonomous:auto_mode_fbs",
249 "//frc971/control_loops:control_loop",
250 "//frc971/control_loops:control_loops_fbs",
251 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
252 "//frc971/input:robot_state_fbs",
Ravago Jones0e86e242022-02-12 18:38:14 -0800253 "//frc971/queues:gyro_fbs",
milind-u086d7262022-01-19 20:44:18 -0800254 "//frc971/wpilib:ADIS16448",
255 "//frc971/wpilib:buffered_pcm",
256 "//frc971/wpilib:drivetrain_writer",
257 "//frc971/wpilib:encoder_and_potentiometer",
258 "//frc971/wpilib:interrupt_edge_counting",
259 "//frc971/wpilib:joystick_sender",
260 "//frc971/wpilib:logging_fbs",
261 "//frc971/wpilib:loop_output_handler",
262 "//frc971/wpilib:pdp_fetcher",
263 "//frc971/wpilib:sensor_reader",
264 "//frc971/wpilib:wpilib_interface",
265 "//frc971/wpilib:wpilib_robot_base",
266 "//third_party:phoenix",
James Kuszmaul9776b392023-01-14 14:08:08 -0800267 "//third_party:phoenixpro",
milind-u086d7262022-01-19 20:44:18 -0800268 "//third_party:wpilib",
Henry Speiser77747b72022-03-06 17:18:29 -0800269 "//y2022/control_loops/superstructure:led_indicator_lib",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800270 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-u086d7262022-01-19 20:44:18 -0800271 "//y2022/control_loops/superstructure:superstructure_output_fbs",
272 "//y2022/control_loops/superstructure:superstructure_position_fbs",
273 ],
274)
275
276cc_binary(
277 name = "joystick_reader",
278 srcs = [
279 ":joystick_reader.cc",
280 ],
281 deps = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800282 ":constants",
283 ":setpoint_fbs",
milind-u086d7262022-01-19 20:44:18 -0800284 "//aos:init",
285 "//aos/actions:action_lib",
286 "//aos/logging",
287 "//frc971/autonomous:auto_fbs",
288 "//frc971/autonomous:base_autonomous_actor",
289 "//frc971/control_loops:profiled_subsystem_fbs",
290 "//frc971/input:action_joystick_input",
291 "//frc971/input:drivetrain_input",
292 "//frc971/input:joystick_input",
293 "//y2022/control_loops/drivetrain:drivetrain_base",
294 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
295 "//y2022/control_loops/superstructure:superstructure_status_fbs",
296 ],
297)
Milo Lin5d49af02022-02-05 12:50:32 -0800298
Henry Speiser0b9b0052022-03-02 23:07:40 -0800299flatbuffer_cc_library(
300 name = "setpoint_fbs",
301 srcs = [
302 "setpoint.fbs",
303 ],
304 gen_reflections = 1,
305 target_compatible_with = ["@platforms//os:linux"],
306)
307
308cc_binary(
309 name = "setpoint_setter",
310 srcs = ["setpoint_setter.cc"],
311 target_compatible_with = ["@platforms//os:linux"],
312 deps = [
313 ":constants",
314 ":setpoint_fbs",
315 "//aos:init",
316 "//aos/events:shm_event_loop",
317 ],
318)
319
Milo Lin5d49af02022-02-05 12:50:32 -0800320py_library(
321 name = "python_init",
322 srcs = ["__init__.py"],
323 target_compatible_with = ["@platforms//os:linux"],
324 visibility = ["//visibility:public"],
325)
James Kuszmaulf3ef9e12022-03-05 17:13:00 -0800326
327sh_binary(
328 name = "log_web_proxy",
329 srcs = ["log_web_proxy.sh"],
330 data = [
331 ":aos_config",
332 "//aos/network:log_web_proxy_main",
333 "//y2022/www:field_main_bundle.min.js",
334 "//y2022/www:files",
335 ],
336 target_compatible_with = ["@platforms//os:linux"],
337)