blob: 43a2e713452da7df3f610eba6bc595e1479969b1 [file] [log] [blame]
milind-u086d7262022-01-19 20:44:18 -08001load("//frc971:downloader.bzl", "robot_downloader")
2load("//aos:config.bzl", "aos_config")
milind-uf2f59aa2022-01-23 21:06:12 -08003load("//tools/build_rules:template.bzl", "jinja2_template")
milind-u086d7262022-01-19 20:44:18 -08004
5robot_downloader(
milind-uf2f59aa2022-01-23 21:06:12 -08006 binaries = [
7 "//aos/network:web_proxy_main",
8 ],
milind-u086d7262022-01-19 20:44:18 -08009 data = [
10 ":config",
11 ],
12 start_binaries = [
milind-uf2f59aa2022-01-23 21:06:12 -080013 "//aos/events/logging:logger_main",
14 "//aos/network:web_proxy_main",
milind-u086d7262022-01-19 20:44:18 -080015 ":joystick_reader",
16 ":wpilib_interface",
milind-uf2f59aa2022-01-23 21:06:12 -080017 "//aos/network:message_bridge_client",
18 "//aos/network:message_bridge_server",
19 "//y2022/actors:binaries",
milind-u086d7262022-01-19 20:44:18 -080020 "//y2022/control_loops/drivetrain:drivetrain",
Milind Upadhyayb8abf022022-02-22 21:07:44 -080021 "//y2022/control_loops/drivetrain:trajectory_generator",
milind-u086d7262022-01-19 20:44:18 -080022 "//y2022/control_loops/superstructure:superstructure",
milind-u086d7262022-01-19 20:44:18 -080023 ],
milind-uf2f59aa2022-01-23 21:06:12 -080024 target_compatible_with = ["@platforms//os:linux"],
milind-u086d7262022-01-19 20:44:18 -080025)
26
milind-u6b6e1002022-01-22 13:26:42 -080027robot_downloader(
28 name = "pi_download",
29 binaries = [
Jim Ostrowskib9135a92022-02-06 22:49:11 -080030 "//y2020/vision:calibration",
milind-u6b6e1002022-01-22 13:26:42 -080031 "//y2022/vision:viewer",
Ravago Jonese12b7902022-02-04 22:50:44 -080032 "//y2022/localizer:imu_main",
James Kuszmaul93825a02022-02-13 16:50:33 -080033 "//y2022/control_loops/localizer:localizer_main",
milind-u6b6e1002022-01-22 13:26:42 -080034 ],
35 data = [
36 ":config",
37 ],
milind-u6b6e1002022-01-22 13:26:42 -080038 start_binaries = [
39 "//aos/events/logging:logger_main",
40 "//aos/network:message_bridge_client",
41 "//aos/network:message_bridge_server",
42 "//aos/network:web_proxy_main",
43 "//y2022/vision:camera_reader",
44 ],
45 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
46 target_type = "pi",
47)
48
milind-uf2f59aa2022-01-23 21:06:12 -080049aos_config(
50 name = "config",
51 src = "y2022.json",
52 flatbuffers = [
53 "//aos/network:message_bridge_client_fbs",
54 "//aos/network:message_bridge_server_fbs",
55 "//aos/network:timestamp_fbs",
56 "//frc971/input:robot_state_fbs",
57 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080058 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080059 ],
60 target_compatible_with = ["@platforms//os:linux"],
61 visibility = ["//visibility:public"],
62 deps = [
James Kuszmaulef35d732022-02-12 16:37:32 -080063 ":config_imu",
milind-uf2f59aa2022-01-23 21:06:12 -080064 ":config_logger",
65 ":config_pi1",
66 ":config_pi2",
67 ":config_pi3",
68 ":config_pi4",
69 ":config_pi5",
70 ":config_roborio",
71 ],
72)
73
74[
75 aos_config(
76 name = "config_" + pi,
77 src = "y2022_" + pi + ".json",
78 flatbuffers = [
79 "//aos/network:message_bridge_client_fbs",
80 "//aos/network:message_bridge_server_fbs",
81 "//aos/network:timestamp_fbs",
82 "//aos/network:remote_message_fbs",
83 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080084 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080085 "//y2022/vision:target_estimate_fbs",
86 ],
87 target_compatible_with = ["@platforms//os:linux"],
88 visibility = ["//visibility:public"],
89 deps = [
90 "//aos/events:config",
91 "//frc971/control_loops/drivetrain:config",
92 "//frc971/input:config",
93 ],
94 )
95 for pi in [
96 "pi1",
97 "pi2",
98 "pi3",
99 "pi4",
100 "pi5",
101 ]
102]
103
104aos_config(
James Kuszmaulef35d732022-02-12 16:37:32 -0800105 name = "config_imu",
106 src = "y2022_imu.json",
107 flatbuffers = [
108 "//aos/network:message_bridge_client_fbs",
109 "//aos/network:message_bridge_server_fbs",
110 "//aos/network:timestamp_fbs",
111 "//aos/network:remote_message_fbs",
112 "//y2022/control_loops/localizer:localizer_status_fbs",
113 "//y2022/control_loops/localizer:localizer_output_fbs",
114 ],
115 target_compatible_with = ["@platforms//os:linux"],
116 visibility = ["//visibility:public"],
117 deps = [
118 "//aos/events:config",
119 "//frc971/control_loops/drivetrain:config",
120 ],
121)
122
123aos_config(
milind-uf2f59aa2022-01-23 21:06:12 -0800124 name = "config_logger",
125 src = "y2022_logger.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",
131 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800132 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800133 ],
134 target_compatible_with = ["@platforms//os:linux"],
135 visibility = ["//visibility:public"],
136 deps = [
137 "//aos/events:config",
138 "//frc971/control_loops/drivetrain:config",
139 "//frc971/input:config",
140 ],
141)
142
143aos_config(
144 name = "config_roborio",
145 src = "y2022_roborio.json",
146 flatbuffers = [
147 "//aos/network:remote_message_fbs",
148 "//aos/network:message_bridge_client_fbs",
149 "//aos/network:message_bridge_server_fbs",
150 "//aos/network:timestamp_fbs",
151 "//y2019/control_loops/drivetrain:target_selector_fbs",
152 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
153 "//y2022/control_loops/superstructure:superstructure_output_fbs",
154 "//y2022/control_loops/superstructure:superstructure_position_fbs",
155 "//y2022/control_loops/superstructure:superstructure_status_fbs",
156 ],
157 target_compatible_with = ["@platforms//os:linux"],
158 deps = [
159 "//aos/events:config",
160 "//frc971/autonomous:config",
161 "//frc971/control_loops/drivetrain:config",
162 "//frc971/input:config",
163 "//frc971/wpilib:config",
164 ],
165)
166
167[
168 jinja2_template(
169 name = "y2022_pi" + str(num) + ".json",
170 src = "y2022_pi_template.json",
171 parameters = {"NUM": str(num)},
172 target_compatible_with = ["@platforms//os:linux"],
173 )
174 for num in range(1, 6)
175]
176
milind-u086d7262022-01-19 20:44:18 -0800177cc_library(
178 name = "constants",
179 srcs = [
180 "constants.cc",
181 ],
182 hdrs = [
183 "constants.h",
184 ],
185 visibility = ["//visibility:public"],
186 deps = [
187 "//aos/mutex",
188 "//aos/network:team_number",
189 "//frc971:constants",
190 "//frc971/control_loops:pose",
191 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
192 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Siddhant Kanwar0e37f592022-02-21 19:26:50 -0800193 "//y2022/control_loops/superstructure/climber:climber_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800194 "//y2022/control_loops/superstructure/intake:intake_plants",
milind-u086d7262022-01-19 20:44:18 -0800195 "@com_github_google_glog//:glog",
196 "@com_google_absl//absl/base",
197 ],
198)
199
200cc_binary(
201 name = "wpilib_interface",
202 srcs = [
203 "wpilib_interface.cc",
204 ],
205 target_compatible_with = ["//tools/platforms/hardware:roborio"],
206 deps = [
207 ":constants",
208 "//aos:init",
209 "//aos:math",
210 "//aos/events:shm_event_loop",
211 "//aos/logging",
212 "//aos/stl_mutex",
213 "//aos/time",
214 "//aos/util:log_interval",
215 "//aos/util:phased_loop",
216 "//aos/util:wrapping_counter",
217 "//frc971/autonomous:auto_mode_fbs",
218 "//frc971/control_loops:control_loop",
219 "//frc971/control_loops:control_loops_fbs",
220 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
221 "//frc971/input:robot_state_fbs",
222 "//frc971/wpilib:ADIS16448",
223 "//frc971/wpilib:buffered_pcm",
224 "//frc971/wpilib:drivetrain_writer",
225 "//frc971/wpilib:encoder_and_potentiometer",
226 "//frc971/wpilib:interrupt_edge_counting",
227 "//frc971/wpilib:joystick_sender",
228 "//frc971/wpilib:logging_fbs",
229 "//frc971/wpilib:loop_output_handler",
230 "//frc971/wpilib:pdp_fetcher",
231 "//frc971/wpilib:sensor_reader",
232 "//frc971/wpilib:wpilib_interface",
233 "//frc971/wpilib:wpilib_robot_base",
234 "//third_party:phoenix",
235 "//third_party:wpilib",
236 "//y2022/control_loops/superstructure:superstructure_output_fbs",
237 "//y2022/control_loops/superstructure:superstructure_position_fbs",
238 ],
239)
240
241cc_binary(
242 name = "joystick_reader",
243 srcs = [
244 ":joystick_reader.cc",
245 ],
246 deps = [
247 "//aos:init",
248 "//aos/actions:action_lib",
249 "//aos/logging",
250 "//frc971/autonomous:auto_fbs",
251 "//frc971/autonomous:base_autonomous_actor",
252 "//frc971/control_loops:profiled_subsystem_fbs",
253 "//frc971/input:action_joystick_input",
254 "//frc971/input:drivetrain_input",
255 "//frc971/input:joystick_input",
256 "//y2022/control_loops/drivetrain:drivetrain_base",
257 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
258 "//y2022/control_loops/superstructure:superstructure_status_fbs",
259 ],
260)
Milo Lin5d49af02022-02-05 12:50:32 -0800261
262py_library(
263 name = "python_init",
264 srcs = ["__init__.py"],
265 target_compatible_with = ["@platforms//os:linux"],
266 visibility = ["//visibility:public"],
267)