blob: 00701561cc8c63c6003dc7a1a04cd415afd99fc4 [file] [log] [blame]
James Kuszmaulf01da392023-12-14 11:22:14 -08001load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
Philipp Schrader3de4dfc2023-02-15 20:18:25 -08002load("//tools/build_rules:js.bzl", "ts_project")
Austin Schuha1d006e2022-09-14 21:50:42 -07003load("@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",
James Kuszmauleeb98e92024-01-14 22:15:32 -080011 "drivetrain_dog_motor_plant.json",
Stephan Massaltd021f972020-01-05 20:41:23 -080012 "kalman_drivetrain_motor_plant.h",
13 "kalman_drivetrain_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080014 "kalman_drivetrain_motor_plant.json",
Stephan Massaltd021f972020-01-05 20:41:23 -080015 ],
16 cmd = "$(location //y2020/control_loops/python:drivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080017 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080018 tools = [
19 "//y2020/control_loops/python:drivetrain",
20 ],
21)
22
23genrule(
24 name = "genrule_polydrivetrain",
25 outs = [
26 "polydrivetrain_dog_motor_plant.h",
27 "polydrivetrain_dog_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080028 "polydrivetrain_dog_motor_plant.json",
Stephan Massaltd021f972020-01-05 20:41:23 -080029 "polydrivetrain_cim_plant.h",
30 "polydrivetrain_cim_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080031 "polydrivetrain_cim_plant.json",
Stephan Massaltd021f972020-01-05 20:41:23 -080032 "hybrid_velocity_drivetrain.h",
33 "hybrid_velocity_drivetrain.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080034 "hybrid_velocity_drivetrain.json",
Stephan Massaltd021f972020-01-05 20:41:23 -080035 ],
36 cmd = "$(location //y2020/control_loops/python:polydrivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080037 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080038 tools = [
39 "//y2020/control_loops/python:polydrivetrain",
40 ],
41)
42
43cc_library(
44 name = "polydrivetrain_plants",
45 srcs = [
46 "drivetrain_dog_motor_plant.cc",
47 "hybrid_velocity_drivetrain.cc",
48 "kalman_drivetrain_motor_plant.cc",
49 "polydrivetrain_dog_motor_plant.cc",
50 ],
51 hdrs = [
52 "drivetrain_dog_motor_plant.h",
53 "hybrid_velocity_drivetrain.h",
54 "kalman_drivetrain_motor_plant.h",
55 "polydrivetrain_dog_motor_plant.h",
56 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080057 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080058 visibility = ["//visibility:public"],
59 deps = [
60 "//frc971/control_loops:hybrid_state_feedback_loop",
61 "//frc971/control_loops:state_feedback_loop",
62 ],
63)
64
James Kuszmaulf01da392023-12-14 11:22:14 -080065static_flatbuffer(
James Kuszmaul5ff8a862021-09-25 17:29:43 -070066 name = "localizer_debug_fbs",
67 srcs = ["localizer_debug.fbs"],
James Kuszmaul5ff8a862021-09-25 17:29:43 -070068 visibility = ["//visibility:public"],
69)
70
James Kuszmaulf75ecd62021-10-23 14:33:46 -070071flatbuffer_ts_library(
72 name = "localizer_debug_ts_fbs",
73 srcs = ["localizer_debug.fbs"],
74 target_compatible_with = ["@platforms//os:linux"],
75 visibility = ["//visibility:public"],
76)
77
Stephan Massaltd021f972020-01-05 20:41:23 -080078cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080079 name = "localizer",
80 srcs = ["localizer.cc"],
81 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080082 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080083 deps = [
James Kuszmaul5ff8a862021-09-25 17:29:43 -070084 ":localizer_debug_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080085 "//aos/containers:ring_buffer",
James Kuszmaul5ff8a862021-09-25 17:29:43 -070086 "//aos/containers:sized_array",
James Kuszmaul958b21e2020-02-26 21:51:40 -080087 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080088 "//frc971/control_loops:profiled_subsystem_fbs",
89 "//frc971/control_loops/drivetrain:hybrid_ekf",
90 "//frc971/control_loops/drivetrain:localizer",
91 "//y2020:constants",
92 "//y2020/control_loops/superstructure:superstructure_status_fbs",
93 "//y2020/vision/sift:sift_fbs",
94 ],
95)
96
97cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080098 name = "drivetrain_base",
99 srcs = [
100 "drivetrain_base.cc",
101 ],
102 hdrs = [
103 "drivetrain_base.h",
104 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800105 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800106 visibility = ["//visibility:public"],
107 deps = [
108 ":polydrivetrain_plants",
109 "//frc971:shifter_hall_effect",
110 "//frc971/control_loops/drivetrain:drivetrain_config",
Brian Silverman7026e2d2021-11-11 16:15:35 -0800111 "//y2020:constants",
Stephan Massaltd021f972020-01-05 20:41:23 -0800112 ],
113)
114
115cc_binary(
James Kuszmaul75a18c52021-03-10 22:02:07 -0800116 name = "trajectory_generator",
117 srcs = [
118 "trajectory_generator_main.cc",
119 ],
120 target_compatible_with = ["@platforms//os:linux"],
121 visibility = ["//visibility:public"],
122 deps = [
123 ":drivetrain_base",
124 "//aos:init",
125 "//aos/events:shm_event_loop",
126 "//frc971/control_loops/drivetrain:trajectory_generator",
127 ],
128)
129
130cc_binary(
Stephan Massaltd021f972020-01-05 20:41:23 -0800131 name = "drivetrain",
132 srcs = [
133 "drivetrain_main.cc",
134 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800135 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800136 visibility = ["//visibility:public"],
137 deps = [
138 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800139 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800140 "//aos:init",
141 "//aos/events:shm_event_loop",
142 "//frc971/control_loops/drivetrain:drivetrain_lib",
143 ],
144)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800145
James Kuszmaul5398fae2020-02-17 16:44:03 -0800146aos_config(
147 name = "simulation_config",
148 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800149 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800150 visibility = ["//visibility:public"],
151 deps = [
152 "//frc971/control_loops/drivetrain:simulation_channels",
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800153 "//y2020:aos_config",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800154 ],
155)
156
157cc_test(
158 name = "localizer_test",
159 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700160 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800161 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800162 deps = [
163 ":drivetrain_base",
164 ":localizer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800165 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800166 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800167 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800168 "//aos/network:testing_time_converter",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700169 "//frc971/control_loops:control_loop_test",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800170 "//frc971/control_loops:team_number_test_environment",
171 "//frc971/control_loops/drivetrain:drivetrain_lib",
172 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
173 ],
174)
175
James Kuszmaul531609d2020-02-18 17:12:23 -0800176cc_test(
177 name = "drivetrain_replay_test",
178 srcs = ["drivetrain_replay_test.cc"],
179 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800180 "//y2020:aos_config",
James Kuszmaul9c128122021-03-22 22:24:36 -0700181 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800182 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800183 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800184 deps = [
185 ":drivetrain_base",
186 "//aos:configuration",
187 "//aos:init",
188 "//aos/events:shm_event_loop",
189 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800190 "//aos/events/logging:log_reader",
191 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800192 "//aos/testing:googletest",
193 "//frc971/control_loops/drivetrain:drivetrain_lib",
Austin Schuh41fad8c2021-10-23 21:25:12 -0700194 "//frc971/control_loops/drivetrain:trajectory_schema",
James Kuszmaul531609d2020-02-18 17:12:23 -0800195 "@com_github_gflags_gflags//:gflags",
196 "@com_github_google_glog//:glog",
197 ],
198)
199
James Kuszmaul022d40e2020-02-11 17:06:18 -0800200cc_binary(
201 name = "drivetrain_replay",
202 srcs = ["drivetrain_replay.cc"],
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800203 data = ["//y2020:aos_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800204 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800205 deps = [
206 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800207 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800208 "//aos:configuration",
209 "//aos:init",
210 "//aos/events:shm_event_loop",
211 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800212 "//aos/events/logging:log_reader",
213 "//aos/events/logging:log_writer",
James Kuszmaule4853542023-05-15 20:35:48 -0700214 "//aos/util:simulation_logger",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800215 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800216 "//frc971/control_loops/drivetrain:trajectory_generator",
milind-uba4f09a2021-10-11 17:51:22 -0700217 "//y2020:constants",
James Kuszmaulaca88782021-04-24 16:48:45 -0700218 "//y2020/control_loops/superstructure:superstructure_lib",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800219 "@com_github_gflags_gflags//:gflags",
220 "@com_github_google_glog//:glog",
221 ],
222)
James Kuszmaul9c23d262021-09-25 21:50:02 -0700223
Philipp Schrader3de4dfc2023-02-15 20:18:25 -0800224ts_project(
James Kuszmaul9c23d262021-09-25 21:50:02 -0700225 name = "localizer_plotter",
226 srcs = ["localizer_plotter.ts"],
227 target_compatible_with = ["@platforms//os:linux"],
228 visibility = ["//visibility:public"],
229 deps = [
230 "//aos:configuration_ts_fbs",
231 "//aos/network/www:aos_plotter",
232 "//aos/network/www:colors",
233 "//aos/network/www:plotter",
234 "//aos/network/www:proxy",
235 "//aos/network/www:reflection_ts",
James Kuszmauldac091f2022-03-22 09:35:06 -0700236 "@com_github_google_flatbuffers//reflection:reflection_ts_fbs",
James Kuszmaul9c23d262021-09-25 21:50:02 -0700237 "@com_github_google_flatbuffers//ts:flatbuffers_ts",
238 ],
239)