blob: a74b18ea54ac9fc752e20a2e1a4e3514059990ac [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(
94 name = "drivetrain",
95 srcs = [
96 "drivetrain_main.cc",
97 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080098 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080099 visibility = ["//visibility:public"],
100 deps = [
101 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800102 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800103 "//aos:init",
104 "//aos/events:shm_event_loop",
105 "//frc971/control_loops/drivetrain:drivetrain_lib",
106 ],
107)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800108
James Kuszmaul5398fae2020-02-17 16:44:03 -0800109aos_config(
110 name = "simulation_config",
111 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800112 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800113 visibility = ["//visibility:public"],
114 deps = [
115 "//frc971/control_loops/drivetrain:simulation_channels",
116 "//y2020:config",
117 ],
118)
119
Austin Schuhac17fba2020-03-28 15:55:33 -0700120aos_config(
121 name = "replay_config",
122 src = "drivetrain_replay_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800123 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhac17fba2020-03-28 15:55:33 -0700124 visibility = ["//visibility:public"],
125 deps = [
126 "//y2020:config",
127 ],
128)
129
James Kuszmaul5398fae2020-02-17 16:44:03 -0800130cc_test(
131 name = "localizer_test",
132 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700133 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800134 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800135 deps = [
136 ":drivetrain_base",
137 ":localizer",
138 "//aos/controls:control_loop_test",
139 "//aos/events:simulated_event_loop",
140 "//aos/events/logging:logger",
141 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800142 "//aos/network:testing_time_converter",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800143 "//frc971/control_loops:team_number_test_environment",
144 "//frc971/control_loops/drivetrain:drivetrain_lib",
145 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
146 ],
147)
148
James Kuszmaul531609d2020-02-18 17:12:23 -0800149cc_test(
150 name = "drivetrain_replay_test",
151 srcs = ["drivetrain_replay_test.cc"],
152 data = [
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700153 ":replay_config",
James Kuszmaul531609d2020-02-18 17:12:23 -0800154 "@drivetrain_replay//file:spinning_wheels_while_still.bfbs",
155 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800156 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800157 deps = [
158 ":drivetrain_base",
159 "//aos:configuration",
160 "//aos:init",
161 "//aos/events:shm_event_loop",
162 "//aos/events:simulated_event_loop",
163 "//aos/events/logging:logger",
164 "//aos/testing:googletest",
165 "//frc971/control_loops/drivetrain:drivetrain_lib",
166 "@com_github_gflags_gflags//:gflags",
167 "@com_github_google_glog//:glog",
168 ],
169)
170
James Kuszmaul022d40e2020-02-11 17:06:18 -0800171cc_binary(
172 name = "drivetrain_replay",
173 srcs = ["drivetrain_replay.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700174 data = ["//y2020:config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800175 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800176 deps = [
177 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800178 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800179 "//aos:configuration",
180 "//aos:init",
181 "//aos/events:shm_event_loop",
182 "//aos/events:simulated_event_loop",
183 "//aos/events/logging:logger",
184 "//frc971/control_loops/drivetrain:drivetrain_lib",
185 "@com_github_gflags_gflags//:gflags",
186 "@com_github_google_glog//:glog",
187 ],
188)