blob: f4915dab9d1ea7a9d1a235d2f8d7f39cb7aaf54a [file] [log] [blame]
James Kuszmaulf75ecd62021-10-23 14:33:46 -07001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
James Kuszmaul5398fae2020-02-17 16:44:03 -08002load("//aos:config.bzl", "aos_config")
Philipp Schrader87277f42022-01-01 07:45:12 -08003load("@npm//@bazel/typescript:index.bzl", "ts_library")
Stephan Massaltd021f972020-01-05 20:41:23 -08004
5genrule(
6 name = "genrule_drivetrain",
7 outs = [
8 "drivetrain_dog_motor_plant.h",
9 "drivetrain_dog_motor_plant.cc",
10 "kalman_drivetrain_motor_plant.h",
11 "kalman_drivetrain_motor_plant.cc",
12 ],
13 cmd = "$(location //y2020/control_loops/python:drivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080014 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080015 tools = [
16 "//y2020/control_loops/python:drivetrain",
17 ],
18)
19
20genrule(
21 name = "genrule_polydrivetrain",
22 outs = [
23 "polydrivetrain_dog_motor_plant.h",
24 "polydrivetrain_dog_motor_plant.cc",
25 "polydrivetrain_cim_plant.h",
26 "polydrivetrain_cim_plant.cc",
27 "hybrid_velocity_drivetrain.h",
28 "hybrid_velocity_drivetrain.cc",
29 ],
30 cmd = "$(location //y2020/control_loops/python:polydrivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080031 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080032 tools = [
33 "//y2020/control_loops/python:polydrivetrain",
34 ],
35)
36
37cc_library(
38 name = "polydrivetrain_plants",
39 srcs = [
40 "drivetrain_dog_motor_plant.cc",
41 "hybrid_velocity_drivetrain.cc",
42 "kalman_drivetrain_motor_plant.cc",
43 "polydrivetrain_dog_motor_plant.cc",
44 ],
45 hdrs = [
46 "drivetrain_dog_motor_plant.h",
47 "hybrid_velocity_drivetrain.h",
48 "kalman_drivetrain_motor_plant.h",
49 "polydrivetrain_dog_motor_plant.h",
50 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080051 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080052 visibility = ["//visibility:public"],
53 deps = [
54 "//frc971/control_loops:hybrid_state_feedback_loop",
55 "//frc971/control_loops:state_feedback_loop",
56 ],
57)
58
James Kuszmaul5ff8a862021-09-25 17:29:43 -070059flatbuffer_cc_library(
60 name = "localizer_debug_fbs",
61 srcs = ["localizer_debug.fbs"],
62 gen_reflections = 1,
63 visibility = ["//visibility:public"],
64)
65
James Kuszmaulf75ecd62021-10-23 14:33:46 -070066flatbuffer_ts_library(
67 name = "localizer_debug_ts_fbs",
68 srcs = ["localizer_debug.fbs"],
69 target_compatible_with = ["@platforms//os:linux"],
70 visibility = ["//visibility:public"],
71)
72
Stephan Massaltd021f972020-01-05 20:41:23 -080073cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080074 name = "localizer",
75 srcs = ["localizer.cc"],
76 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080077 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080078 deps = [
James Kuszmaul5ff8a862021-09-25 17:29:43 -070079 ":localizer_debug_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080080 "//aos/containers:ring_buffer",
James Kuszmaul5ff8a862021-09-25 17:29:43 -070081 "//aos/containers:sized_array",
James Kuszmaul958b21e2020-02-26 21:51:40 -080082 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080083 "//frc971/control_loops:profiled_subsystem_fbs",
84 "//frc971/control_loops/drivetrain:hybrid_ekf",
85 "//frc971/control_loops/drivetrain:localizer",
86 "//y2020:constants",
87 "//y2020/control_loops/superstructure:superstructure_status_fbs",
88 "//y2020/vision/sift:sift_fbs",
89 ],
90)
91
92cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080093 name = "drivetrain_base",
94 srcs = [
95 "drivetrain_base.cc",
96 ],
97 hdrs = [
98 "drivetrain_base.h",
99 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800100 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800101 visibility = ["//visibility:public"],
102 deps = [
103 ":polydrivetrain_plants",
104 "//frc971:shifter_hall_effect",
105 "//frc971/control_loops/drivetrain:drivetrain_config",
Brian Silverman7026e2d2021-11-11 16:15:35 -0800106 "//y2020:constants",
Stephan Massaltd021f972020-01-05 20:41:23 -0800107 ],
108)
109
110cc_binary(
James Kuszmaul75a18c52021-03-10 22:02:07 -0800111 name = "trajectory_generator",
112 srcs = [
113 "trajectory_generator_main.cc",
114 ],
115 target_compatible_with = ["@platforms//os:linux"],
116 visibility = ["//visibility:public"],
117 deps = [
118 ":drivetrain_base",
119 "//aos:init",
120 "//aos/events:shm_event_loop",
121 "//frc971/control_loops/drivetrain:trajectory_generator",
122 ],
123)
124
125cc_binary(
Stephan Massaltd021f972020-01-05 20:41:23 -0800126 name = "drivetrain",
127 srcs = [
128 "drivetrain_main.cc",
129 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800130 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800131 visibility = ["//visibility:public"],
132 deps = [
133 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800134 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800135 "//aos:init",
136 "//aos/events:shm_event_loop",
137 "//frc971/control_loops/drivetrain:drivetrain_lib",
138 ],
139)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800140
James Kuszmaul5398fae2020-02-17 16:44:03 -0800141aos_config(
142 name = "simulation_config",
143 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800144 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800145 visibility = ["//visibility:public"],
146 deps = [
147 "//frc971/control_loops/drivetrain:simulation_channels",
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800148 "//y2020:aos_config",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800149 ],
150)
151
152cc_test(
153 name = "localizer_test",
154 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700155 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800156 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800157 deps = [
158 ":drivetrain_base",
159 ":localizer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800160 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800161 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800162 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800163 "//aos/network:testing_time_converter",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700164 "//frc971/control_loops:control_loop_test",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800165 "//frc971/control_loops:team_number_test_environment",
166 "//frc971/control_loops/drivetrain:drivetrain_lib",
167 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
168 ],
169)
170
James Kuszmaul531609d2020-02-18 17:12:23 -0800171cc_test(
172 name = "drivetrain_replay_test",
173 srcs = ["drivetrain_replay_test.cc"],
174 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800175 "//y2020:aos_config",
James Kuszmaul9c128122021-03-22 22:24:36 -0700176 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800177 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800178 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800179 deps = [
180 ":drivetrain_base",
181 "//aos:configuration",
182 "//aos:init",
183 "//aos/events:shm_event_loop",
184 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800185 "//aos/events/logging:log_reader",
186 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800187 "//aos/testing:googletest",
188 "//frc971/control_loops/drivetrain:drivetrain_lib",
Austin Schuh41fad8c2021-10-23 21:25:12 -0700189 "//frc971/control_loops/drivetrain:trajectory_schema",
James Kuszmaul531609d2020-02-18 17:12:23 -0800190 "@com_github_gflags_gflags//:gflags",
191 "@com_github_google_glog//:glog",
192 ],
193)
194
James Kuszmaul022d40e2020-02-11 17:06:18 -0800195cc_binary(
196 name = "drivetrain_replay",
197 srcs = ["drivetrain_replay.cc"],
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800198 data = ["//y2020:aos_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800199 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800200 deps = [
201 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800202 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800203 "//aos:configuration",
204 "//aos:init",
205 "//aos/events:shm_event_loop",
206 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800207 "//aos/events/logging:log_reader",
208 "//aos/events/logging:log_writer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800209 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800210 "//frc971/control_loops/drivetrain:trajectory_generator",
milind-uba4f09a2021-10-11 17:51:22 -0700211 "//y2020:constants",
James Kuszmaulaca88782021-04-24 16:48:45 -0700212 "//y2020/control_loops/superstructure:superstructure_lib",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800213 "@com_github_gflags_gflags//:gflags",
214 "@com_github_google_glog//:glog",
215 ],
216)
James Kuszmaul9c23d262021-09-25 21:50:02 -0700217
218ts_library(
219 name = "localizer_plotter",
220 srcs = ["localizer_plotter.ts"],
221 target_compatible_with = ["@platforms//os:linux"],
222 visibility = ["//visibility:public"],
223 deps = [
224 "//aos:configuration_ts_fbs",
225 "//aos/network/www:aos_plotter",
226 "//aos/network/www:colors",
227 "//aos/network/www:plotter",
228 "//aos/network/www:proxy",
229 "//aos/network/www:reflection_ts",
230 "@com_github_google_flatbuffers//ts:flatbuffers_ts",
231 ],
232)