blob: 310b853dfae016a8493c2f5753ba2d1c768c2e93 [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",
79 "//aos:init",
Austin Schuh55a13dc2019-01-27 22:39:03 -080080 "//aos/events:shm-event-loop",
Austin Schuh378483c2019-01-20 16:36:40 -080081 "//frc971/control_loops/drivetrain:drivetrain_lib",
82 ],
83)
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080084
85cc_library(
86 name = "camera",
87 srcs = ["camera.h"],
James Kuszmaul22c5ab32019-02-09 14:45:58 -080088 visibility = ["//y2019:__pkg__"],
James Kuszmaul57c7c9b2019-01-27 16:16:01 -080089 deps = [
90 "//aos/containers:sized_array",
91 "//frc971/control_loops:pose",
92 ],
93)
94
95cc_test(
96 name = "camera_test",
97 srcs = ["camera_test.cc"],
98 deps = [
99 ":camera",
100 "//aos/testing:googletest",
101 ],
102)
James Kuszmaul1057ce82019-02-09 17:58:24 -0800103
104cc_library(
105 name = "localizer",
106 hdrs = ["localizer.h"],
107 deps = [
108 ":camera",
109 "//frc971/control_loops:pose",
110 "//frc971/control_loops/drivetrain:hybrid_ekf",
111 ],
112)
113
114cc_test(
115 name = "localizer_test",
116 srcs = ["localizer_test.cc"],
117 defines =
118 cpu_select({
119 "amd64": [
120 "SUPPORT_PLOT=1",
121 ],
122 "arm": [],
123 }),
124 linkstatic = True,
125 deps = [
126 ":localizer",
127 ":drivetrain_base",
128 "//aos/testing:googletest",
129 "//aos/testing:random_seed",
130 "//aos/testing:test_shm",
131 "//frc971/control_loops/drivetrain:trajectory",
132 "//y2019:constants",
133 "//frc971/control_loops/drivetrain:splinedrivetrain",
134 "@com_github_gflags_gflags//:gflags",
135 ] + cpu_select({
136 "amd64": [
137 "//third_party/matplotlib-cpp",
138 ],
139 "arm": [],
140 }),
141)