blob: 4a351a565da4fd76db8937d022b659b5f9f5e4c1 [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",
Austin Schuh37559162022-11-09 09:45:15 -080050 ":message_bridge_client.sh",
Tyler Chatowb3850c12020-02-26 20:55:48 -080051 "//y2022/image_streamer:image_streamer_start",
milind-u6b6e1002022-01-22 13:26:42 -080052 ],
James Kuszmaulb35e2342022-03-06 15:44:00 -080053 dirs = [
54 "//y2022/www:www_files",
Tyler Chatowb3850c12020-02-26 20:55:48 -080055 "//y2022/image_streamer/www:www_files",
James Kuszmaulb35e2342022-03-06 15:44:00 -080056 ],
milind-u6b6e1002022-01-22 13:26:42 -080057 start_binaries = [
58 "//aos/events/logging:logger_main",
59 "//aos/network:message_bridge_client",
60 "//aos/network:message_bridge_server",
61 "//aos/network:web_proxy_main",
62 "//y2022/vision:camera_reader",
Ravago Jones32bd3cb2022-03-26 15:45:03 -070063 "//y2022/vision:ball_color_detector",
milind-u6b6e1002022-01-22 13:26:42 -080064 ],
65 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
66 target_type = "pi",
67)
68
milind-uf2f59aa2022-01-23 21:06:12 -080069aos_config(
Austin Schuhc5fa6d92022-02-25 14:36:28 -080070 name = "aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -080071 src = "y2022.json",
72 flatbuffers = [
73 "//aos/network:message_bridge_client_fbs",
74 "//aos/network:message_bridge_server_fbs",
75 "//aos/network:timestamp_fbs",
76 "//frc971/input:robot_state_fbs",
77 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080078 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080079 ],
80 target_compatible_with = ["@platforms//os:linux"],
81 visibility = ["//visibility:public"],
82 deps = [
James Kuszmaulef35d732022-02-12 16:37:32 -080083 ":config_imu",
milind-uf2f59aa2022-01-23 21:06:12 -080084 ":config_logger",
85 ":config_pi1",
86 ":config_pi2",
87 ":config_pi3",
88 ":config_pi4",
milind-uf2f59aa2022-01-23 21:06:12 -080089 ":config_roborio",
90 ],
91)
92
93[
94 aos_config(
95 name = "config_" + pi,
96 src = "y2022_" + pi + ".json",
97 flatbuffers = [
98 "//aos/network:message_bridge_client_fbs",
99 "//aos/network:message_bridge_server_fbs",
100 "//aos/network:timestamp_fbs",
101 "//aos/network:remote_message_fbs",
102 "//frc971/vision:vision_fbs",
Milind Upadhyayd67e9cf2022-03-13 13:56:57 -0700103 "//y2022/localizer:localizer_output_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800104 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800105 "//y2022/vision:target_estimate_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700106 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800107 ],
108 target_compatible_with = ["@platforms//os:linux"],
109 visibility = ["//visibility:public"],
110 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800111 "//aos/events:aos_config",
112 "//frc971/control_loops/drivetrain:aos_config",
113 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800114 ],
115 )
116 for pi in [
117 "pi1",
118 "pi2",
119 "pi3",
120 "pi4",
milind-uf2f59aa2022-01-23 21:06:12 -0800121 ]
122]
123
124aos_config(
James Kuszmaulef35d732022-02-12 16:37:32 -0800125 name = "config_imu",
126 src = "y2022_imu.json",
127 flatbuffers = [
128 "//aos/network:message_bridge_client_fbs",
129 "//aos/network:message_bridge_server_fbs",
130 "//aos/network:timestamp_fbs",
131 "//aos/network:remote_message_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800132 "//y2022/localizer:localizer_status_fbs",
133 "//y2022/localizer:localizer_output_fbs",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -0800134 "//y2022/localizer:localizer_visualization_fbs",
James Kuszmaulef35d732022-02-12 16:37:32 -0800135 ],
136 target_compatible_with = ["@platforms//os:linux"],
137 visibility = ["//visibility:public"],
138 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800139 "//aos/events:aos_config",
140 "//frc971/control_loops/drivetrain:aos_config",
James Kuszmaulef35d732022-02-12 16:37:32 -0800141 ],
142)
143
144aos_config(
milind-uf2f59aa2022-01-23 21:06:12 -0800145 name = "config_logger",
146 src = "y2022_logger.json",
147 flatbuffers = [
148 "//aos/network:message_bridge_client_fbs",
149 "//aos/network:message_bridge_server_fbs",
150 "//aos/network:timestamp_fbs",
151 "//aos/network:remote_message_fbs",
152 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800153 "//y2022/vision:calibration_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700154 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800155 ],
156 target_compatible_with = ["@platforms//os:linux"],
157 visibility = ["//visibility:public"],
158 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800159 "//aos/events:aos_config",
160 "//frc971/control_loops/drivetrain:aos_config",
161 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800162 ],
163)
164
165aos_config(
166 name = "config_roborio",
167 src = "y2022_roborio.json",
168 flatbuffers = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800169 ":setpoint_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800170 "//aos/network:remote_message_fbs",
171 "//aos/network:message_bridge_client_fbs",
172 "//aos/network:message_bridge_server_fbs",
173 "//aos/network:timestamp_fbs",
Ravago Jones32bd3cb2022-03-26 15:45:03 -0700174 "//y2022/vision:ball_color_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800175 "//y2019/control_loops/drivetrain:target_selector_fbs",
176 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
177 "//y2022/control_loops/superstructure:superstructure_output_fbs",
178 "//y2022/control_loops/superstructure:superstructure_position_fbs",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800179 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800180 "//y2022/control_loops/superstructure:superstructure_status_fbs",
181 ],
182 target_compatible_with = ["@platforms//os:linux"],
183 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800184 "//aos/events:aos_config",
185 "//frc971/autonomous:aos_config",
186 "//frc971/control_loops/drivetrain:aos_config",
187 "//frc971/input:aos_config",
188 "//frc971/wpilib:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800189 ],
190)
191
192[
193 jinja2_template(
194 name = "y2022_pi" + str(num) + ".json",
195 src = "y2022_pi_template.json",
196 parameters = {"NUM": str(num)},
197 target_compatible_with = ["@platforms//os:linux"],
198 )
199 for num in range(1, 6)
200]
201
milind-u086d7262022-01-19 20:44:18 -0800202cc_library(
203 name = "constants",
204 srcs = [
205 "constants.cc",
206 ],
207 hdrs = [
208 "constants.h",
209 ],
210 visibility = ["//visibility:public"],
211 deps = [
212 "//aos/mutex",
213 "//aos/network:team_number",
214 "//frc971:constants",
215 "//frc971/control_loops:pose",
216 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
Ravago Jones3283ce02022-03-09 19:31:29 -0800217 "//frc971/shooter_interpolation:interpolation",
milind-u086d7262022-01-19 20:44:18 -0800218 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Austin Schuh39f26f62022-02-24 21:34:46 -0800219 "//y2022/control_loops/superstructure/catapult:catapult_plants",
Siddhant Kanwar0e37f592022-02-21 19:26:50 -0800220 "//y2022/control_loops/superstructure/climber:climber_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800221 "//y2022/control_loops/superstructure/intake:intake_plants",
Henry Speiser55aa3ba2022-02-21 23:21:12 -0800222 "//y2022/control_loops/superstructure/turret:turret_plants",
milind-u086d7262022-01-19 20:44:18 -0800223 "@com_github_google_glog//:glog",
224 "@com_google_absl//absl/base",
225 ],
226)
227
228cc_binary(
229 name = "wpilib_interface",
230 srcs = [
231 "wpilib_interface.cc",
232 ],
233 target_compatible_with = ["//tools/platforms/hardware:roborio"],
234 deps = [
235 ":constants",
236 "//aos:init",
237 "//aos:math",
238 "//aos/events:shm_event_loop",
239 "//aos/logging",
240 "//aos/stl_mutex",
241 "//aos/time",
242 "//aos/util:log_interval",
243 "//aos/util:phased_loop",
244 "//aos/util:wrapping_counter",
245 "//frc971/autonomous:auto_mode_fbs",
246 "//frc971/control_loops:control_loop",
247 "//frc971/control_loops:control_loops_fbs",
248 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
249 "//frc971/input:robot_state_fbs",
Ravago Jones0e86e242022-02-12 18:38:14 -0800250 "//frc971/queues:gyro_fbs",
milind-u086d7262022-01-19 20:44:18 -0800251 "//frc971/wpilib:ADIS16448",
252 "//frc971/wpilib:buffered_pcm",
253 "//frc971/wpilib:drivetrain_writer",
254 "//frc971/wpilib:encoder_and_potentiometer",
255 "//frc971/wpilib:interrupt_edge_counting",
256 "//frc971/wpilib:joystick_sender",
257 "//frc971/wpilib:logging_fbs",
258 "//frc971/wpilib:loop_output_handler",
259 "//frc971/wpilib:pdp_fetcher",
260 "//frc971/wpilib:sensor_reader",
261 "//frc971/wpilib:wpilib_interface",
262 "//frc971/wpilib:wpilib_robot_base",
263 "//third_party:phoenix",
264 "//third_party:wpilib",
Henry Speiser77747b72022-03-06 17:18:29 -0800265 "//y2022/control_loops/superstructure:led_indicator_lib",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800266 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-u086d7262022-01-19 20:44:18 -0800267 "//y2022/control_loops/superstructure:superstructure_output_fbs",
268 "//y2022/control_loops/superstructure:superstructure_position_fbs",
269 ],
270)
271
272cc_binary(
273 name = "joystick_reader",
274 srcs = [
275 ":joystick_reader.cc",
276 ],
277 deps = [
Henry Speiser0b9b0052022-03-02 23:07:40 -0800278 ":constants",
279 ":setpoint_fbs",
milind-u086d7262022-01-19 20:44:18 -0800280 "//aos:init",
281 "//aos/actions:action_lib",
282 "//aos/logging",
283 "//frc971/autonomous:auto_fbs",
284 "//frc971/autonomous:base_autonomous_actor",
285 "//frc971/control_loops:profiled_subsystem_fbs",
286 "//frc971/input:action_joystick_input",
287 "//frc971/input:drivetrain_input",
288 "//frc971/input:joystick_input",
289 "//y2022/control_loops/drivetrain:drivetrain_base",
290 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
291 "//y2022/control_loops/superstructure:superstructure_status_fbs",
292 ],
293)
Milo Lin5d49af02022-02-05 12:50:32 -0800294
Henry Speiser0b9b0052022-03-02 23:07:40 -0800295flatbuffer_cc_library(
296 name = "setpoint_fbs",
297 srcs = [
298 "setpoint.fbs",
299 ],
300 gen_reflections = 1,
301 target_compatible_with = ["@platforms//os:linux"],
302)
303
304cc_binary(
305 name = "setpoint_setter",
306 srcs = ["setpoint_setter.cc"],
307 target_compatible_with = ["@platforms//os:linux"],
308 deps = [
309 ":constants",
310 ":setpoint_fbs",
311 "//aos:init",
312 "//aos/events:shm_event_loop",
313 ],
314)
315
Milo Lin5d49af02022-02-05 12:50:32 -0800316py_library(
317 name = "python_init",
318 srcs = ["__init__.py"],
319 target_compatible_with = ["@platforms//os:linux"],
320 visibility = ["//visibility:public"],
321)
James Kuszmaulf3ef9e12022-03-05 17:13:00 -0800322
323sh_binary(
324 name = "log_web_proxy",
325 srcs = ["log_web_proxy.sh"],
326 data = [
327 ":aos_config",
328 "//aos/network:log_web_proxy_main",
329 "//y2022/www:field_main_bundle.min.js",
330 "//y2022/www:files",
331 ],
332 target_compatible_with = ["@platforms//os:linux"],
333)