blob: 677726e340f3bb208195163d5c9732ce36694207 [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 ],
91)
92
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080093cc_library(
94 name = "camera",
95 srcs = ["camera.h"],
James Kuszmaul22c5ab32019-02-09 14:45:58 -080096 visibility = ["//y2019:__pkg__"],
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080097 deps = [
98 "//aos/containers:sized_array",
99 "//frc971/control_loops:pose",
100 ],
101)
102
103cc_test(
104 name = "camera_test",
105 srcs = ["camera_test.cc"],
106 deps = [
107 ":camera",
108 "//aos/testing:googletest",
109 ],
110)
James Kuszmaul1057ce82019-02-09 17:58:24 -0800111
112cc_library(
113 name = "localizer",
114 hdrs = ["localizer.h"],
115 deps = [
116 ":camera",
117 "//frc971/control_loops:pose",
118 "//frc971/control_loops/drivetrain:hybrid_ekf",
119 ],
120)
121
James Kuszmaul09f564a2019-02-18 17:37:09 -0800122cc_library(
123 name = "event_loop_localizer",
124 srcs = ["event_loop_localizer.cc"],
125 hdrs = ["event_loop_localizer.h"],
126 deps = [
127 ":camera_queue",
128 ":localizer",
129 "//frc971/control_loops/drivetrain:localizer",
130 "//y2019:constants",
131 ],
132)
133
James Kuszmaul1057ce82019-02-09 17:58:24 -0800134cc_test(
135 name = "localizer_test",
136 srcs = ["localizer_test.cc"],
137 defines =
138 cpu_select({
139 "amd64": [
140 "SUPPORT_PLOT=1",
141 ],
142 "arm": [],
143 }),
144 linkstatic = True,
145 deps = [
146 ":localizer",
147 ":drivetrain_base",
148 "//aos/testing:googletest",
149 "//aos/testing:random_seed",
150 "//aos/testing:test_shm",
151 "//frc971/control_loops/drivetrain:trajectory",
152 "//y2019:constants",
153 "//frc971/control_loops/drivetrain:splinedrivetrain",
154 "@com_github_gflags_gflags//:gflags",
155 ] + cpu_select({
156 "amd64": [
157 "//third_party/matplotlib-cpp",
158 ],
159 "arm": [],
160 }),
161)
James Kuszmaul09f564a2019-02-18 17:37:09 -0800162
163cc_test(
164 name = "localized_drivetrain_test",
165 srcs = ["localized_drivetrain_test.cc"],
166 deps = [
167 ":camera_queue",
168 ":drivetrain_base",
169 ":event_loop_localizer",
170 ":localizer",
171 "//aos/controls:control_loop_test",
172 "//aos/network:team_number",
173 "//frc971/control_loops:team_number_test_environment",
174 "//frc971/control_loops/drivetrain:drivetrain_lib",
175 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
176 ],
177)