blob: 1575584c3e11cd9a6949bcdf4d13955e1c3fa4cf [file] [log] [blame]
Alex Perrycb7da4b2019-08-28 19:35:56 -07001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
2load("//tools/build_rules:select.bzl", "compiler_select", "cpu_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",
Alex Perrycb7da4b2019-08-28 19:35:56 -070081 "//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
Alex Perrycb7da4b2019-08-28 19:35:56 -070086flatbuffer_cc_library(
87 name = "target_selector_fbs",
88 srcs = ["target_selector.fbs"],
89 gen_reflections = 1,
James Kuszmaul7d1ef442019-03-23 20:20:50 -070090 visibility = ["//visibility:public"],
91)
92
Alex Perrycb7da4b2019-08-28 19:35:56 -070093flatbuffer_cc_library(
94 name = "camera_fbs",
James Kuszmaul09f564a2019-02-18 17:37:09 -080095 srcs = [
Alex Perrycb7da4b2019-08-28 19:35:56 -070096 "camera.fbs",
James Kuszmaul09f564a2019-02-18 17:37:09 -080097 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070098 gen_reflections = 1,
Brian Silvermanc41fb862019-03-02 21:14:46 -080099 visibility = ["//visibility:public"],
James Kuszmaul09f564a2019-02-18 17:37:09 -0800100)
101
James Kuszmaul57c7c9b2019-01-27 16:16:01 -0800102cc_library(
103 name = "camera",
104 srcs = ["camera.h"],
James Kuszmaul22c5ab32019-02-09 14:45:58 -0800105 visibility = ["//y2019:__pkg__"],
James Kuszmaul57c7c9b2019-01-27 16:16:01 -0800106 deps = [
107 "//aos/containers:sized_array",
108 "//frc971/control_loops:pose",
109 ],
110)
111
112cc_test(
113 name = "camera_test",
114 srcs = ["camera_test.cc"],
115 deps = [
116 ":camera",
117 "//aos/testing:googletest",
118 ],
119)
James Kuszmaul1057ce82019-02-09 17:58:24 -0800120
121cc_library(
122 name = "localizer",
123 hdrs = ["localizer.h"],
124 deps = [
125 ":camera",
126 "//frc971/control_loops:pose",
127 "//frc971/control_loops/drivetrain:hybrid_ekf",
128 ],
129)
130
James Kuszmaul09f564a2019-02-18 17:37:09 -0800131cc_library(
James Kuszmauld73d0252019-03-02 14:57:09 -0800132 name = "target_selector",
133 srcs = ["target_selector.cc"],
134 hdrs = ["target_selector.h"],
135 deps = [
136 ":camera",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700137 ":target_selector_fbs",
James Kuszmauld73d0252019-03-02 14:57:09 -0800138 "//frc971/control_loops:pose",
139 "//frc971/control_loops/drivetrain:localizer",
140 "//y2019:constants",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700141 "//y2019/control_loops/superstructure:superstructure_goal_fbs",
James Kuszmauld73d0252019-03-02 14:57:09 -0800142 ],
143)
144
145cc_test(
146 name = "target_selector_test",
147 srcs = ["target_selector_test.cc"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700148 data = ["//y2019:config.json"],
James Kuszmauld73d0252019-03-02 14:57:09 -0800149 deps = [
150 ":target_selector",
Austin Schuh9fe68f72019-08-10 19:32:03 -0700151 "//aos/events:simulated_event_loop",
James Kuszmauld73d0252019-03-02 14:57:09 -0800152 "//aos/testing:googletest",
James Kuszmaul7d1ef442019-03-23 20:20:50 -0700153 "//aos/testing:test_shm",
James Kuszmauld73d0252019-03-02 14:57:09 -0800154 ],
155)
156
157cc_library(
James Kuszmaul09f564a2019-02-18 17:37:09 -0800158 name = "event_loop_localizer",
159 srcs = ["event_loop_localizer.cc"],
160 hdrs = ["event_loop_localizer.h"],
161 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700162 ":camera_fbs",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800163 ":localizer",
James Kuszmauld73d0252019-03-02 14:57:09 -0800164 ":target_selector",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800165 "//frc971/control_loops/drivetrain:localizer",
166 "//y2019:constants",
167 ],
168)
169
James Kuszmaul1057ce82019-02-09 17:58:24 -0800170cc_test(
171 name = "localizer_test",
172 srcs = ["localizer_test.cc"],
173 defines =
174 cpu_select({
175 "amd64": [
176 "SUPPORT_PLOT=1",
177 ],
178 "arm": [],
179 }),
180 linkstatic = True,
Austin Schuh9fe68f72019-08-10 19:32:03 -0700181 shard_count = 5,
James Kuszmaul1057ce82019-02-09 17:58:24 -0800182 deps = [
183 ":localizer",
184 ":drivetrain_base",
185 "//aos/testing:googletest",
186 "//aos/testing:random_seed",
187 "//aos/testing:test_shm",
188 "//frc971/control_loops/drivetrain:trajectory",
189 "//y2019:constants",
190 "//frc971/control_loops/drivetrain:splinedrivetrain",
191 "@com_github_gflags_gflags//:gflags",
192 ] + cpu_select({
193 "amd64": [
194 "//third_party/matplotlib-cpp",
195 ],
196 "arm": [],
197 }),
198)
James Kuszmaul09f564a2019-02-18 17:37:09 -0800199
200cc_test(
201 name = "localized_drivetrain_test",
202 srcs = ["localized_drivetrain_test.cc"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700203 data = ["//y2019:config.json"],
James Kuszmaul09f564a2019-02-18 17:37:09 -0800204 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700205 ":camera_fbs",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800206 ":drivetrain_base",
207 ":event_loop_localizer",
208 ":localizer",
209 "//aos/controls:control_loop_test",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700210 "//aos/events:shm_event_loop",
James Kuszmaul09f564a2019-02-18 17:37:09 -0800211 "//aos/network:team_number",
212 "//frc971/control_loops:team_number_test_environment",
213 "//frc971/control_loops/drivetrain:drivetrain_lib",
214 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
215 ],
216)