blob: b2a5901c4f136c5ca97b73d05a45e6054399089c [file] [log] [blame]
Stephan Massaltd021f972020-01-05 20:41:23 -08001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
James Kuszmaul5398fae2020-02-17 16:44:03 -08002load("//aos:config.bzl", "aos_config")
Stephan Massaltd021f972020-01-05 20:41:23 -08003load("//tools/build_rules:select.bzl", "compiler_select", "cpu_select")
4
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
Stephan Massaltd021f972020-01-05 20:41:23 -080066cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080067 name = "localizer",
68 srcs = ["localizer.cc"],
69 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080070 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080071 deps = [
James Kuszmaul5ff8a862021-09-25 17:29:43 -070072 ":localizer_debug_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080073 "//aos/containers:ring_buffer",
James Kuszmaul5ff8a862021-09-25 17:29:43 -070074 "//aos/containers:sized_array",
James Kuszmaul958b21e2020-02-26 21:51:40 -080075 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080076 "//frc971/control_loops:profiled_subsystem_fbs",
77 "//frc971/control_loops/drivetrain:hybrid_ekf",
78 "//frc971/control_loops/drivetrain:localizer",
79 "//y2020:constants",
80 "//y2020/control_loops/superstructure:superstructure_status_fbs",
81 "//y2020/vision/sift:sift_fbs",
82 ],
83)
84
85cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080086 name = "drivetrain_base",
87 srcs = [
88 "drivetrain_base.cc",
89 ],
90 hdrs = [
91 "drivetrain_base.h",
92 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080093 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080094 visibility = ["//visibility:public"],
95 deps = [
96 ":polydrivetrain_plants",
97 "//frc971:shifter_hall_effect",
98 "//frc971/control_loops/drivetrain:drivetrain_config",
99 ],
100)
101
102cc_binary(
James Kuszmaul75a18c52021-03-10 22:02:07 -0800103 name = "trajectory_generator",
104 srcs = [
105 "trajectory_generator_main.cc",
106 ],
107 target_compatible_with = ["@platforms//os:linux"],
108 visibility = ["//visibility:public"],
109 deps = [
110 ":drivetrain_base",
111 "//aos:init",
112 "//aos/events:shm_event_loop",
113 "//frc971/control_loops/drivetrain:trajectory_generator",
114 ],
115)
116
117cc_binary(
Stephan Massaltd021f972020-01-05 20:41:23 -0800118 name = "drivetrain",
119 srcs = [
120 "drivetrain_main.cc",
121 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800122 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800123 visibility = ["//visibility:public"],
124 deps = [
125 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800126 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800127 "//aos:init",
128 "//aos/events:shm_event_loop",
129 "//frc971/control_loops/drivetrain:drivetrain_lib",
130 ],
131)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800132
James Kuszmaul5398fae2020-02-17 16:44:03 -0800133aos_config(
134 name = "simulation_config",
135 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800136 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800137 visibility = ["//visibility:public"],
138 deps = [
139 "//frc971/control_loops/drivetrain:simulation_channels",
140 "//y2020:config",
141 ],
142)
143
144cc_test(
145 name = "localizer_test",
146 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700147 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800148 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800149 deps = [
150 ":drivetrain_base",
151 ":localizer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800152 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800153 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800154 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800155 "//aos/network:testing_time_converter",
Austin Schuh0a3c9d42021-07-15 22:36:24 -0700156 "//frc971/control_loops:control_loop_test",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800157 "//frc971/control_loops:team_number_test_environment",
158 "//frc971/control_loops/drivetrain:drivetrain_lib",
159 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
160 ],
161)
162
James Kuszmaul531609d2020-02-18 17:12:23 -0800163cc_test(
164 name = "drivetrain_replay_test",
165 srcs = ["drivetrain_replay_test.cc"],
166 data = [
James Kuszmaul9c128122021-03-22 22:24:36 -0700167 "//y2020:config",
168 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800169 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800170 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800171 deps = [
172 ":drivetrain_base",
173 "//aos:configuration",
174 "//aos:init",
175 "//aos/events:shm_event_loop",
176 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800177 "//aos/events/logging:log_reader",
178 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800179 "//aos/testing:googletest",
180 "//frc971/control_loops/drivetrain:drivetrain_lib",
181 "@com_github_gflags_gflags//:gflags",
182 "@com_github_google_glog//:glog",
183 ],
184)
185
James Kuszmaul022d40e2020-02-11 17:06:18 -0800186cc_binary(
187 name = "drivetrain_replay",
188 srcs = ["drivetrain_replay.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700189 data = ["//y2020:config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800190 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800191 deps = [
192 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800193 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800194 "//aos:configuration",
195 "//aos:init",
196 "//aos/events:shm_event_loop",
197 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800198 "//aos/events/logging:log_reader",
199 "//aos/events/logging:log_writer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800200 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800201 "//frc971/control_loops/drivetrain:trajectory_generator",
James Kuszmaulaca88782021-04-24 16:48:45 -0700202 "//y2020/control_loops/superstructure:superstructure_lib",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800203 "@com_github_gflags_gflags//:gflags",
204 "@com_github_google_glog//:glog",
205 ],
206)