blob: 5a4dd40c691d73b807a6f2782a7b21993d5e0fbe [file] [log] [blame]
Austin Schuh378483c2019-01-20 16:36:40 -08001load("//aos/build:queues.bzl", "queue_library")
James Kuszmaul1057ce82019-02-09 17:58:24 -08002load("//tools/build_rules:select.bzl", "cpu_select", "compiler_select")
Austin Schuh378483c2019-01-20 16:36:40 -08003
4genrule(
5 name = "genrule_drivetrain",
6 outs = [
7 "drivetrain_dog_motor_plant.h",
8 "drivetrain_dog_motor_plant.cc",
9 "kalman_drivetrain_motor_plant.h",
10 "kalman_drivetrain_motor_plant.cc",
11 ],
12 cmd = "$(location //y2019/control_loops/python:drivetrain) $(OUTS)",
13 tools = [
14 "//y2019/control_loops/python:drivetrain",
15 ],
16)
17
18genrule(
19 name = "genrule_polydrivetrain",
20 outs = [
21 "polydrivetrain_dog_motor_plant.h",
22 "polydrivetrain_dog_motor_plant.cc",
23 "polydrivetrain_cim_plant.h",
24 "polydrivetrain_cim_plant.cc",
25 "hybrid_velocity_drivetrain.h",
26 "hybrid_velocity_drivetrain.cc",
27 ],
28 cmd = "$(location //y2019/control_loops/python:polydrivetrain) $(OUTS)",
29 tools = [
30 "//y2019/control_loops/python:polydrivetrain",
31 ],
32)
33
34cc_library(
35 name = "polydrivetrain_plants",
36 srcs = [
37 "drivetrain_dog_motor_plant.cc",
38 "hybrid_velocity_drivetrain.cc",
39 "kalman_drivetrain_motor_plant.cc",
40 "polydrivetrain_dog_motor_plant.cc",
41 ],
42 hdrs = [
43 "drivetrain_dog_motor_plant.h",
44 "hybrid_velocity_drivetrain.h",
45 "kalman_drivetrain_motor_plant.h",
46 "polydrivetrain_dog_motor_plant.h",
47 ],
48 visibility = ["//visibility:public"],
49 deps = [
50 "//frc971/control_loops:hybrid_state_feedback_loop",
51 "//frc971/control_loops:state_feedback_loop",
52 ],
53)
54
55cc_library(
56 name = "drivetrain_base",
57 srcs = [
58 "drivetrain_base.cc",
59 ],
60 hdrs = [
61 "drivetrain_base.h",
62 ],
63 visibility = ["//visibility:public"],
64 deps = [
65 ":polydrivetrain_plants",
66 "//frc971:shifter_hall_effect",
67 "//frc971/control_loops/drivetrain:drivetrain_config",
68 ],
69)
70
71cc_binary(
72 name = "drivetrain",
73 srcs = [
74 "drivetrain_main.cc",
75 ],
76 visibility = ["//visibility:public"],
77 deps = [
78 ":drivetrain_base",
James Kuszmaul09f564a2019-02-18 17:37:09 -080079 ":event_loop_localizer",
Austin Schuh378483c2019-01-20 16:36:40 -080080 "//aos:init",
Austin Schuh55a13dc2019-01-27 22:39:03 -080081 "//aos/events:shm-event-loop",
Austin Schuh378483c2019-01-20 16:36:40 -080082 "//frc971/control_loops/drivetrain:drivetrain_lib",
83 ],
84)
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080085
James Kuszmaul09f564a2019-02-18 17:37:09 -080086queue_library(
87 name = "camera_queue",
88 srcs = [
89 "camera.q",
90 ],
Brian Silvermanc41fb862019-03-02 21:14:46 -080091 visibility = ["//visibility:public"],
James Kuszmaul09f564a2019-02-18 17:37:09 -080092)
93
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080094cc_library(
95 name = "camera",
96 srcs = ["camera.h"],
James Kuszmaul22c5ab32019-02-09 14:45:58 -080097 visibility = ["//y2019:__pkg__"],
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080098 deps = [
99 "//aos/containers:sized_array",
100 "//frc971/control_loops:pose",
101 ],
102)
103
104cc_test(
105 name = "camera_test",
106 srcs = ["camera_test.cc"],
107 deps = [
108 ":camera",
109 "//aos/testing:googletest",
110 ],
111)
James Kuszmaul1057ce82019-02-09 17:58:24 -0800112
113cc_library(
114 name = "localizer",
115 hdrs = ["localizer.h"],
116 deps = [
117 ":camera",
118 "//frc971/control_loops:pose",
119 "//frc971/control_loops/drivetrain:hybrid_ekf",
120 ],
121)
122
James Kuszmaul09f564a2019-02-18 17:37:09 -0800123cc_library(
James Kuszmauld73d0252019-03-02 14:57:09 -0800124 name = "target_selector",
125 srcs = ["target_selector.cc"],
126 hdrs = ["target_selector.h"],
127 deps = [
128 ":camera",
129 "//frc971/control_loops:pose",
130 "//frc971/control_loops/drivetrain:localizer",
131 "//y2019:constants",
132 ],
133)
134
135cc_test(
136 name = "target_selector_test",
137 srcs = ["target_selector_test.cc"],
138 deps = [
139 ":target_selector",
140 "//aos/testing:googletest",
141 ],
142)
143
144cc_library(
James Kuszmaul09f564a2019-02-18 17:37:09 -0800145 name = "event_loop_localizer",
146 srcs = ["event_loop_localizer.cc"],
147 hdrs = ["event_loop_localizer.h"],
148 deps = [
149 ":camera_queue",
150 ":localizer",
James Kuszmauld73d0252019-03-02 14:57:09 -0800151 ":target_selector",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800152 "//frc971/control_loops/drivetrain:localizer",
153 "//y2019:constants",
154 ],
155)
156
James Kuszmaul1057ce82019-02-09 17:58:24 -0800157cc_test(
158 name = "localizer_test",
159 srcs = ["localizer_test.cc"],
160 defines =
161 cpu_select({
162 "amd64": [
163 "SUPPORT_PLOT=1",
164 ],
165 "arm": [],
166 }),
167 linkstatic = True,
168 deps = [
169 ":localizer",
170 ":drivetrain_base",
171 "//aos/testing:googletest",
172 "//aos/testing:random_seed",
173 "//aos/testing:test_shm",
174 "//frc971/control_loops/drivetrain:trajectory",
175 "//y2019:constants",
176 "//frc971/control_loops/drivetrain:splinedrivetrain",
177 "@com_github_gflags_gflags//:gflags",
178 ] + cpu_select({
179 "amd64": [
180 "//third_party/matplotlib-cpp",
181 ],
182 "arm": [],
183 }),
184)
James Kuszmaul09f564a2019-02-18 17:37:09 -0800185
186cc_test(
187 name = "localized_drivetrain_test",
188 srcs = ["localized_drivetrain_test.cc"],
189 deps = [
190 ":camera_queue",
191 ":drivetrain_base",
192 ":event_loop_localizer",
193 ":localizer",
194 "//aos/controls:control_loop_test",
195 "//aos/network:team_number",
196 "//frc971/control_loops:team_number_test_environment",
197 "//frc971/control_loops/drivetrain:drivetrain_lib",
198 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
199 ],
200)