blob: 03d2dc27cc37b842629d7eabf0a98e98117fd845 [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",
62 "//frc971/control_loops:profiled_subsystem_fbs",
63 "//frc971/control_loops/drivetrain:hybrid_ekf",
64 "//frc971/control_loops/drivetrain:localizer",
65 "//y2020:constants",
66 "//y2020/control_loops/superstructure:superstructure_status_fbs",
67 "//y2020/vision/sift:sift_fbs",
68 ],
69)
70
71cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080072 name = "drivetrain_base",
73 srcs = [
74 "drivetrain_base.cc",
75 ],
76 hdrs = [
77 "drivetrain_base.h",
78 ],
79 visibility = ["//visibility:public"],
80 deps = [
81 ":polydrivetrain_plants",
82 "//frc971:shifter_hall_effect",
83 "//frc971/control_loops/drivetrain:drivetrain_config",
84 ],
85)
86
87cc_binary(
88 name = "drivetrain",
89 srcs = [
90 "drivetrain_main.cc",
91 ],
92 visibility = ["//visibility:public"],
93 deps = [
94 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -080095 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -080096 "//aos:init",
97 "//aos/events:shm_event_loop",
98 "//frc971/control_loops/drivetrain:drivetrain_lib",
99 ],
100)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800101
James Kuszmaul5398fae2020-02-17 16:44:03 -0800102aos_config(
103 name = "simulation_config",
104 src = "drivetrain_simulation_config.json",
105 visibility = ["//visibility:public"],
106 deps = [
107 "//frc971/control_loops/drivetrain:simulation_channels",
108 "//y2020:config",
109 ],
110)
111
112cc_test(
113 name = "localizer_test",
114 srcs = ["localizer_test.cc"],
115 data = [":simulation_config.json"],
116 deps = [
117 ":drivetrain_base",
118 ":localizer",
119 "//aos/controls:control_loop_test",
120 "//aos/events:simulated_event_loop",
121 "//aos/events/logging:logger",
122 "//aos/network:team_number",
123 "//frc971/control_loops:team_number_test_environment",
124 "//frc971/control_loops/drivetrain:drivetrain_lib",
125 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
126 ],
127)
128
James Kuszmaul531609d2020-02-18 17:12:23 -0800129cc_test(
130 name = "drivetrain_replay_test",
131 srcs = ["drivetrain_replay_test.cc"],
132 data = [
133 "//y2020:config.json",
134 "@drivetrain_replay//file:spinning_wheels_while_still.bfbs",
135 ],
136 deps = [
137 ":drivetrain_base",
138 "//aos:configuration",
139 "//aos:init",
140 "//aos/events:shm_event_loop",
141 "//aos/events:simulated_event_loop",
142 "//aos/events/logging:logger",
143 "//aos/testing:googletest",
144 "//frc971/control_loops/drivetrain:drivetrain_lib",
145 "@com_github_gflags_gflags//:gflags",
146 "@com_github_google_glog//:glog",
147 ],
148)
149
James Kuszmaul022d40e2020-02-11 17:06:18 -0800150cc_binary(
151 name = "drivetrain_replay",
152 srcs = ["drivetrain_replay.cc"],
153 data = ["//y2020:config.json"],
154 deps = [
155 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800156 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800157 "//aos:configuration",
158 "//aos:init",
159 "//aos/events:shm_event_loop",
160 "//aos/events:simulated_event_loop",
161 "//aos/events/logging:logger",
162 "//frc971/control_loops/drivetrain:drivetrain_lib",
163 "@com_github_gflags_gflags//:gflags",
164 "@com_github_google_glog//:glog",
165 ],
166)