blob: fa153f02a0a8ea2416bf64584249346d0128189b [file] [log] [blame]
Philipp Schrader3de4dfc2023-02-15 20:18:25 -08001load("//tools/build_rules:js.bzl", "ts_project")
Austin Schuha1d006e2022-09-14 21:50:42 -07002load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
3load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
James Kuszmaul5398fae2020-02-17 16:44:03 -08004load("//aos:config.bzl", "aos_config")
Stephan Massaltd021f972020-01-05 20:41:23 -08005
6genrule(
7 name = "genrule_drivetrain",
8 outs = [
9 "drivetrain_dog_motor_plant.h",
10 "drivetrain_dog_motor_plant.cc",
11 "kalman_drivetrain_motor_plant.h",
12 "kalman_drivetrain_motor_plant.cc",
13 ],
14 cmd = "$(location //y2020/control_loops/python:drivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080015 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080016 tools = [
17 "//y2020/control_loops/python:drivetrain",
18 ],
19)
20
21genrule(
22 name = "genrule_polydrivetrain",
23 outs = [
24 "polydrivetrain_dog_motor_plant.h",
25 "polydrivetrain_dog_motor_plant.cc",
26 "polydrivetrain_cim_plant.h",
27 "polydrivetrain_cim_plant.cc",
28 "hybrid_velocity_drivetrain.h",
29 "hybrid_velocity_drivetrain.cc",
30 ],
31 cmd = "$(location //y2020/control_loops/python:polydrivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080032 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080033 tools = [
34 "//y2020/control_loops/python:polydrivetrain",
35 ],
36)
37
38cc_library(
39 name = "polydrivetrain_plants",
40 srcs = [
41 "drivetrain_dog_motor_plant.cc",
42 "hybrid_velocity_drivetrain.cc",
43 "kalman_drivetrain_motor_plant.cc",
44 "polydrivetrain_dog_motor_plant.cc",
45 ],
46 hdrs = [
47 "drivetrain_dog_motor_plant.h",
48 "hybrid_velocity_drivetrain.h",
49 "kalman_drivetrain_motor_plant.h",
50 "polydrivetrain_dog_motor_plant.h",
51 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080052 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080053 visibility = ["//visibility:public"],
54 deps = [
55 "//frc971/control_loops:hybrid_state_feedback_loop",
56 "//frc971/control_loops:state_feedback_loop",
57 ],
58)
59
James Kuszmaul5ff8a862021-09-25 17:29:43 -070060flatbuffer_cc_library(
61 name = "localizer_debug_fbs",
62 srcs = ["localizer_debug.fbs"],
63 gen_reflections = 1,
64 visibility = ["//visibility:public"],
65)
66
James Kuszmaulf75ecd62021-10-23 14:33:46 -070067flatbuffer_ts_library(
68 name = "localizer_debug_ts_fbs",
69 srcs = ["localizer_debug.fbs"],
70 target_compatible_with = ["@platforms//os:linux"],
71 visibility = ["//visibility:public"],
72)
73
Stephan Massaltd021f972020-01-05 20:41:23 -080074cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080075 name = "localizer",
76 srcs = ["localizer.cc"],
77 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080078 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080079 deps = [
James Kuszmaul5ff8a862021-09-25 17:29:43 -070080 ":localizer_debug_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080081 "//aos/containers:ring_buffer",
James Kuszmaul5ff8a862021-09-25 17:29:43 -070082 "//aos/containers:sized_array",
James Kuszmaul958b21e2020-02-26 21:51:40 -080083 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080084 "//frc971/control_loops:profiled_subsystem_fbs",
85 "//frc971/control_loops/drivetrain:hybrid_ekf",
86 "//frc971/control_loops/drivetrain:localizer",
87 "//y2020:constants",
88 "//y2020/control_loops/superstructure:superstructure_status_fbs",
89 "//y2020/vision/sift:sift_fbs",
90 ],
91)
92
93cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080094 name = "drivetrain_base",
95 srcs = [
96 "drivetrain_base.cc",
97 ],
98 hdrs = [
99 "drivetrain_base.h",
100 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800101 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800102 visibility = ["//visibility:public"],
103 deps = [
104 ":polydrivetrain_plants",
105 "//frc971:shifter_hall_effect",
106 "//frc971/control_loops/drivetrain:drivetrain_config",
Brian Silverman7026e2d2021-11-11 16:15:35 -0800107 "//y2020:constants",
Stephan Massaltd021f972020-01-05 20:41:23 -0800108 ],
109)
110
111cc_binary(
James Kuszmaul75a18c52021-03-10 22:02:07 -0800112 name = "trajectory_generator",
113 srcs = [
114 "trajectory_generator_main.cc",
115 ],
116 target_compatible_with = ["@platforms//os:linux"],
117 visibility = ["//visibility:public"],
118 deps = [
119 ":drivetrain_base",
120 "//aos:init",
121 "//aos/events:shm_event_loop",
122 "//frc971/control_loops/drivetrain:trajectory_generator",
123 ],
124)
125
126cc_binary(
Stephan Massaltd021f972020-01-05 20:41:23 -0800127 name = "drivetrain",
128 srcs = [
129 "drivetrain_main.cc",
130 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800131 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800132 visibility = ["//visibility:public"],
133 deps = [
134 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800135 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800136 "//aos:init",
137 "//aos/events:shm_event_loop",
138 "//frc971/control_loops/drivetrain:drivetrain_lib",
139 ],
140)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800141
James Kuszmaul5398fae2020-02-17 16:44:03 -0800142aos_config(
143 name = "simulation_config",
144 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800145 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800146 visibility = ["//visibility:public"],
147 deps = [
148 "//frc971/control_loops/drivetrain:simulation_channels",
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800149 "//y2020:aos_config",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800150 ],
151)
152
153cc_test(
154 name = "localizer_test",
155 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700156 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800157 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800158 deps = [
159 ":drivetrain_base",
160 ":localizer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800161 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800162 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800163 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800164 "//aos/network:testing_time_converter",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700165 "//frc971/control_loops:control_loop_test",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800166 "//frc971/control_loops:team_number_test_environment",
167 "//frc971/control_loops/drivetrain:drivetrain_lib",
168 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
169 ],
170)
171
James Kuszmaul531609d2020-02-18 17:12:23 -0800172cc_test(
173 name = "drivetrain_replay_test",
174 srcs = ["drivetrain_replay_test.cc"],
175 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800176 "//y2020:aos_config",
James Kuszmaul9c128122021-03-22 22:24:36 -0700177 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800178 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800179 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800180 deps = [
181 ":drivetrain_base",
182 "//aos:configuration",
183 "//aos:init",
184 "//aos/events:shm_event_loop",
185 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800186 "//aos/events/logging:log_reader",
187 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800188 "//aos/testing:googletest",
189 "//frc971/control_loops/drivetrain:drivetrain_lib",
Austin Schuh41fad8c2021-10-23 21:25:12 -0700190 "//frc971/control_loops/drivetrain:trajectory_schema",
James Kuszmaul531609d2020-02-18 17:12:23 -0800191 "@com_github_gflags_gflags//:gflags",
192 "@com_github_google_glog//:glog",
193 ],
194)
195
James Kuszmaul022d40e2020-02-11 17:06:18 -0800196cc_binary(
197 name = "drivetrain_replay",
198 srcs = ["drivetrain_replay.cc"],
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800199 data = ["//y2020:aos_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800200 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800201 deps = [
202 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800203 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800204 "//aos:configuration",
205 "//aos:init",
206 "//aos/events:shm_event_loop",
207 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800208 "//aos/events/logging:log_reader",
209 "//aos/events/logging:log_writer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800210 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800211 "//frc971/control_loops/drivetrain:trajectory_generator",
milind-uba4f09a2021-10-11 17:51:22 -0700212 "//y2020:constants",
James Kuszmaulaca88782021-04-24 16:48:45 -0700213 "//y2020/control_loops/superstructure:superstructure_lib",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800214 "@com_github_gflags_gflags//:gflags",
215 "@com_github_google_glog//:glog",
216 ],
217)
James Kuszmaul9c23d262021-09-25 21:50:02 -0700218
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800219ts_project(
James Kuszmaul9c23d262021-09-25 21:50:02 -0700220 name = "localizer_plotter",
221 srcs = ["localizer_plotter.ts"],
222 target_compatible_with = ["@platforms//os:linux"],
223 visibility = ["//visibility:public"],
224 deps = [
225 "//aos:configuration_ts_fbs",
226 "//aos/network/www:aos_plotter",
227 "//aos/network/www:colors",
228 "//aos/network/www:plotter",
229 "//aos/network/www:proxy",
230 "//aos/network/www:reflection_ts",
James Kuszmauldac091f2022-03-22 09:35:06 -0700231 "@com_github_google_flatbuffers//reflection:reflection_ts_fbs",
James Kuszmaul9c23d262021-09-25 21:50:02 -0700232 "@com_github_google_flatbuffers//ts:flatbuffers_ts",
233 ],
234)