blob: 4fd61f684e6d1fb09a6e821baadb2b5921dd5bd4 [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
59cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080060 name = "localizer",
61 srcs = ["localizer.cc"],
62 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080063 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080064 deps = [
65 "//aos/containers:ring_buffer",
James Kuszmaul958b21e2020-02-26 21:51:40 -080066 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080067 "//frc971/control_loops:profiled_subsystem_fbs",
68 "//frc971/control_loops/drivetrain:hybrid_ekf",
69 "//frc971/control_loops/drivetrain:localizer",
70 "//y2020:constants",
71 "//y2020/control_loops/superstructure:superstructure_status_fbs",
72 "//y2020/vision/sift:sift_fbs",
73 ],
74)
75
76cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080077 name = "drivetrain_base",
78 srcs = [
79 "drivetrain_base.cc",
80 ],
81 hdrs = [
82 "drivetrain_base.h",
83 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080084 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080085 visibility = ["//visibility:public"],
86 deps = [
87 ":polydrivetrain_plants",
88 "//frc971:shifter_hall_effect",
89 "//frc971/control_loops/drivetrain:drivetrain_config",
90 ],
91)
92
93cc_binary(
James Kuszmaul75a18c52021-03-10 22:02:07 -080094 name = "trajectory_generator",
95 srcs = [
96 "trajectory_generator_main.cc",
97 ],
98 target_compatible_with = ["@platforms//os:linux"],
99 visibility = ["//visibility:public"],
100 deps = [
101 ":drivetrain_base",
102 "//aos:init",
103 "//aos/events:shm_event_loop",
104 "//frc971/control_loops/drivetrain:trajectory_generator",
105 ],
106)
107
108cc_binary(
Stephan Massaltd021f972020-01-05 20:41:23 -0800109 name = "drivetrain",
110 srcs = [
111 "drivetrain_main.cc",
112 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800113 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800114 visibility = ["//visibility:public"],
115 deps = [
116 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800117 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800118 "//aos:init",
119 "//aos/events:shm_event_loop",
120 "//frc971/control_loops/drivetrain:drivetrain_lib",
121 ],
122)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800123
James Kuszmaul5398fae2020-02-17 16:44:03 -0800124aos_config(
125 name = "simulation_config",
126 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800127 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800128 visibility = ["//visibility:public"],
129 deps = [
130 "//frc971/control_loops/drivetrain:simulation_channels",
131 "//y2020:config",
132 ],
133)
134
135cc_test(
136 name = "localizer_test",
137 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700138 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800139 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800140 deps = [
141 ":drivetrain_base",
142 ":localizer",
James Kuszmaul61750662021-06-21 21:32:33 -0700143 "//frc971/control_loops:control_loop_test",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800144 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800145 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800146 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800147 "//aos/network:testing_time_converter",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800148 "//frc971/control_loops:team_number_test_environment",
149 "//frc971/control_loops/drivetrain:drivetrain_lib",
150 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
151 ],
152)
153
James Kuszmaul531609d2020-02-18 17:12:23 -0800154cc_test(
155 name = "drivetrain_replay_test",
156 srcs = ["drivetrain_replay_test.cc"],
157 data = [
James Kuszmaul9c128122021-03-22 22:24:36 -0700158 "//y2020:config",
159 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800160 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800161 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800162 deps = [
163 ":drivetrain_base",
164 "//aos:configuration",
165 "//aos:init",
166 "//aos/events:shm_event_loop",
167 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800168 "//aos/events/logging:log_reader",
169 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800170 "//aos/testing:googletest",
171 "//frc971/control_loops/drivetrain:drivetrain_lib",
172 "@com_github_gflags_gflags//:gflags",
173 "@com_github_google_glog//:glog",
174 ],
175)
176
James Kuszmaul022d40e2020-02-11 17:06:18 -0800177cc_binary(
178 name = "drivetrain_replay",
179 srcs = ["drivetrain_replay.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700180 data = ["//y2020:config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800181 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800182 deps = [
183 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800184 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800185 "//aos:configuration",
186 "//aos:init",
187 "//aos/events:shm_event_loop",
188 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800189 "//aos/events/logging:log_reader",
190 "//aos/events/logging:log_writer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800191 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul75a18c52021-03-10 22:02:07 -0800192 "//frc971/control_loops/drivetrain:trajectory_generator",
James Kuszmaulaca88782021-04-24 16:48:45 -0700193 "//y2020/control_loops/superstructure:superstructure_lib",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800194 "@com_github_gflags_gflags//:gflags",
195 "@com_github_google_glog//:glog",
196 ],
197)