blob: 7e2ba18b5dee6d90709e43cad7f64e7827f66485 [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)",
14 tools = [
15 "//y2020/control_loops/python:drivetrain",
16 ],
17)
18
19genrule(
20 name = "genrule_polydrivetrain",
21 outs = [
22 "polydrivetrain_dog_motor_plant.h",
23 "polydrivetrain_dog_motor_plant.cc",
24 "polydrivetrain_cim_plant.h",
25 "polydrivetrain_cim_plant.cc",
26 "hybrid_velocity_drivetrain.h",
27 "hybrid_velocity_drivetrain.cc",
28 ],
29 cmd = "$(location //y2020/control_loops/python:polydrivetrain) $(OUTS)",
30 tools = [
31 "//y2020/control_loops/python:polydrivetrain",
32 ],
33)
34
35cc_library(
36 name = "polydrivetrain_plants",
37 srcs = [
38 "drivetrain_dog_motor_plant.cc",
39 "hybrid_velocity_drivetrain.cc",
40 "kalman_drivetrain_motor_plant.cc",
41 "polydrivetrain_dog_motor_plant.cc",
42 ],
43 hdrs = [
44 "drivetrain_dog_motor_plant.h",
45 "hybrid_velocity_drivetrain.h",
46 "kalman_drivetrain_motor_plant.h",
47 "polydrivetrain_dog_motor_plant.h",
48 ],
49 visibility = ["//visibility:public"],
50 deps = [
51 "//frc971/control_loops:hybrid_state_feedback_loop",
52 "//frc971/control_loops:state_feedback_loop",
53 ],
54)
55
56cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080057 name = "localizer",
58 srcs = ["localizer.cc"],
59 hdrs = ["localizer.h"],
60 deps = [
61 "//aos/containers:ring_buffer",
James Kuszmaul958b21e2020-02-26 21:51:40 -080062 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080063 "//frc971/control_loops:profiled_subsystem_fbs",
64 "//frc971/control_loops/drivetrain:hybrid_ekf",
65 "//frc971/control_loops/drivetrain:localizer",
66 "//y2020:constants",
67 "//y2020/control_loops/superstructure:superstructure_status_fbs",
68 "//y2020/vision/sift:sift_fbs",
69 ],
70)
71
72cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080073 name = "drivetrain_base",
74 srcs = [
75 "drivetrain_base.cc",
76 ],
77 hdrs = [
78 "drivetrain_base.h",
79 ],
80 visibility = ["//visibility:public"],
81 deps = [
82 ":polydrivetrain_plants",
83 "//frc971:shifter_hall_effect",
84 "//frc971/control_loops/drivetrain:drivetrain_config",
85 ],
86)
87
88cc_binary(
89 name = "drivetrain",
90 srcs = [
91 "drivetrain_main.cc",
92 ],
93 visibility = ["//visibility:public"],
94 deps = [
95 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -080096 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -080097 "//aos:init",
98 "//aos/events:shm_event_loop",
99 "//frc971/control_loops/drivetrain:drivetrain_lib",
100 ],
101)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800102
James Kuszmaul5398fae2020-02-17 16:44:03 -0800103aos_config(
104 name = "simulation_config",
105 src = "drivetrain_simulation_config.json",
106 visibility = ["//visibility:public"],
107 deps = [
108 "//frc971/control_loops/drivetrain:simulation_channels",
109 "//y2020:config",
110 ],
111)
112
Austin Schuhac17fba2020-03-28 15:55:33 -0700113aos_config(
114 name = "replay_config",
115 src = "drivetrain_replay_config.json",
116 visibility = ["//visibility:public"],
117 deps = [
118 "//y2020:config",
119 ],
120)
121
James Kuszmaul5398fae2020-02-17 16:44:03 -0800122cc_test(
123 name = "localizer_test",
124 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700125 data = [":simulation_config"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800126 deps = [
127 ":drivetrain_base",
128 ":localizer",
129 "//aos/controls:control_loop_test",
130 "//aos/events:simulated_event_loop",
131 "//aos/events/logging:logger",
132 "//aos/network:team_number",
133 "//frc971/control_loops:team_number_test_environment",
134 "//frc971/control_loops/drivetrain:drivetrain_lib",
135 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
136 ],
137)
138
James Kuszmaul531609d2020-02-18 17:12:23 -0800139cc_test(
140 name = "drivetrain_replay_test",
141 srcs = ["drivetrain_replay_test.cc"],
142 data = [
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700143 ":replay_config",
James Kuszmaul531609d2020-02-18 17:12:23 -0800144 "@drivetrain_replay//file:spinning_wheels_while_still.bfbs",
145 ],
146 deps = [
147 ":drivetrain_base",
148 "//aos:configuration",
149 "//aos:init",
150 "//aos/events:shm_event_loop",
151 "//aos/events:simulated_event_loop",
152 "//aos/events/logging:logger",
153 "//aos/testing:googletest",
154 "//frc971/control_loops/drivetrain:drivetrain_lib",
155 "@com_github_gflags_gflags//:gflags",
156 "@com_github_google_glog//:glog",
157 ],
158)
159
James Kuszmaul022d40e2020-02-11 17:06:18 -0800160cc_binary(
161 name = "drivetrain_replay",
162 srcs = ["drivetrain_replay.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700163 data = ["//y2020:config"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800164 deps = [
165 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800166 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800167 "//aos:configuration",
168 "//aos:init",
169 "//aos/events:shm_event_loop",
170 "//aos/events:simulated_event_loop",
171 "//aos/events/logging:logger",
172 "//frc971/control_loops/drivetrain:drivetrain_lib",
173 "@com_github_gflags_gflags//:gflags",
174 "@com_github_google_glog//:glog",
175 ],
176)