blob: de522153e237777c3fae5dd195457df1d525c925 [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(
124 name = "event_loop_localizer",
125 srcs = ["event_loop_localizer.cc"],
126 hdrs = ["event_loop_localizer.h"],
127 deps = [
128 ":camera_queue",
129 ":localizer",
130 "//frc971/control_loops/drivetrain:localizer",
131 "//y2019:constants",
132 ],
133)
134
James Kuszmaul1057ce82019-02-09 17:58:24 -0800135cc_test(
136 name = "localizer_test",
137 srcs = ["localizer_test.cc"],
138 defines =
139 cpu_select({
140 "amd64": [
141 "SUPPORT_PLOT=1",
142 ],
143 "arm": [],
144 }),
145 linkstatic = True,
146 deps = [
147 ":localizer",
148 ":drivetrain_base",
149 "//aos/testing:googletest",
150 "//aos/testing:random_seed",
151 "//aos/testing:test_shm",
152 "//frc971/control_loops/drivetrain:trajectory",
153 "//y2019:constants",
154 "//frc971/control_loops/drivetrain:splinedrivetrain",
155 "@com_github_gflags_gflags//:gflags",
156 ] + cpu_select({
157 "amd64": [
158 "//third_party/matplotlib-cpp",
159 ],
160 "arm": [],
161 }),
162)
James Kuszmaul09f564a2019-02-18 17:37:09 -0800163
164cc_test(
165 name = "localized_drivetrain_test",
166 srcs = ["localized_drivetrain_test.cc"],
167 deps = [
168 ":camera_queue",
169 ":drivetrain_base",
170 ":event_loop_localizer",
171 ":localizer",
172 "//aos/controls:control_loop_test",
173 "//aos/network:team_number",
174 "//frc971/control_loops:team_number_test_environment",
175 "//frc971/control_loops/drivetrain:drivetrain_lib",
176 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
177 ],
178)