blob: 75a84754630360c05cc7b075f7b81617c4e3dd08 [file] [log] [blame]
Stephan Massaltd021f972020-01-05 20:41:23 -08001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
James Kuszmaul5398fae2020-02-17 16:44:03 -08002load("//aos:config.bzl", "aos_config")
Stephan Massaltd021f972020-01-05 20:41:23 -08003load("//tools/build_rules:select.bzl", "compiler_select", "cpu_select")
4
5genrule(
6 name = "genrule_drivetrain",
7 outs = [
8 "drivetrain_dog_motor_plant.h",
9 "drivetrain_dog_motor_plant.cc",
10 "kalman_drivetrain_motor_plant.h",
11 "kalman_drivetrain_motor_plant.cc",
12 ],
13 cmd = "$(location //y2020/control_loops/python:drivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080014 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080015 tools = [
16 "//y2020/control_loops/python:drivetrain",
17 ],
18)
19
20genrule(
21 name = "genrule_polydrivetrain",
22 outs = [
23 "polydrivetrain_dog_motor_plant.h",
24 "polydrivetrain_dog_motor_plant.cc",
25 "polydrivetrain_cim_plant.h",
26 "polydrivetrain_cim_plant.cc",
27 "hybrid_velocity_drivetrain.h",
28 "hybrid_velocity_drivetrain.cc",
29 ],
30 cmd = "$(location //y2020/control_loops/python:polydrivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080031 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080032 tools = [
33 "//y2020/control_loops/python:polydrivetrain",
34 ],
35)
36
37cc_library(
38 name = "polydrivetrain_plants",
39 srcs = [
40 "drivetrain_dog_motor_plant.cc",
41 "hybrid_velocity_drivetrain.cc",
42 "kalman_drivetrain_motor_plant.cc",
43 "polydrivetrain_dog_motor_plant.cc",
44 ],
45 hdrs = [
46 "drivetrain_dog_motor_plant.h",
47 "hybrid_velocity_drivetrain.h",
48 "kalman_drivetrain_motor_plant.h",
49 "polydrivetrain_dog_motor_plant.h",
50 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080051 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080052 visibility = ["//visibility:public"],
53 deps = [
54 "//frc971/control_loops:hybrid_state_feedback_loop",
55 "//frc971/control_loops:state_feedback_loop",
56 ],
57)
58
59cc_library(
James Kuszmaul5398fae2020-02-17 16:44:03 -080060 name = "localizer",
61 srcs = ["localizer.cc"],
62 hdrs = ["localizer.h"],
Philipp Schraderdada1072020-11-24 11:34:46 -080063 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -080064 deps = [
65 "//aos/containers:ring_buffer",
James Kuszmaul958b21e2020-02-26 21:51:40 -080066 "//aos/network:message_bridge_server_fbs",
James Kuszmaul5398fae2020-02-17 16:44:03 -080067 "//frc971/control_loops:profiled_subsystem_fbs",
68 "//frc971/control_loops/drivetrain:hybrid_ekf",
69 "//frc971/control_loops/drivetrain:localizer",
70 "//y2020:constants",
71 "//y2020/control_loops/superstructure:superstructure_status_fbs",
72 "//y2020/vision/sift:sift_fbs",
73 ],
74)
75
76cc_library(
Stephan Massaltd021f972020-01-05 20:41:23 -080077 name = "drivetrain_base",
78 srcs = [
79 "drivetrain_base.cc",
80 ],
81 hdrs = [
82 "drivetrain_base.h",
83 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080084 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080085 visibility = ["//visibility:public"],
86 deps = [
87 ":polydrivetrain_plants",
88 "//frc971:shifter_hall_effect",
89 "//frc971/control_loops/drivetrain:drivetrain_config",
90 ],
91)
92
93cc_binary(
94 name = "drivetrain",
95 srcs = [
96 "drivetrain_main.cc",
97 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080098 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080099 visibility = ["//visibility:public"],
100 deps = [
101 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800102 ":localizer",
Stephan Massaltd021f972020-01-05 20:41:23 -0800103 "//aos:init",
104 "//aos/events:shm_event_loop",
105 "//frc971/control_loops/drivetrain:drivetrain_lib",
106 ],
107)
James Kuszmaul022d40e2020-02-11 17:06:18 -0800108
James Kuszmaul5398fae2020-02-17 16:44:03 -0800109aos_config(
110 name = "simulation_config",
111 src = "drivetrain_simulation_config.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800112 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800113 visibility = ["//visibility:public"],
114 deps = [
115 "//frc971/control_loops/drivetrain:simulation_channels",
116 "//y2020:config",
117 ],
118)
119
120cc_test(
121 name = "localizer_test",
122 srcs = ["localizer_test.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700123 data = [":simulation_config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800124 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul5398fae2020-02-17 16:44:03 -0800125 deps = [
126 ":drivetrain_base",
127 ":localizer",
128 "//aos/controls:control_loop_test",
129 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800130 "//aos/events/logging:log_writer",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800131 "//aos/network:team_number",
Austin Schuh87dd3832021-01-01 23:07:31 -0800132 "//aos/network:testing_time_converter",
James Kuszmaul5398fae2020-02-17 16:44:03 -0800133 "//frc971/control_loops:team_number_test_environment",
134 "//frc971/control_loops/drivetrain:drivetrain_lib",
135 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
136 ],
137)
138
James Kuszmaul531609d2020-02-18 17:12:23 -0800139cc_test(
140 name = "drivetrain_replay_test",
141 srcs = ["drivetrain_replay_test.cc"],
142 data = [
James Kuszmaul9c128122021-03-22 22:24:36 -0700143 "//y2020:config",
144 "@drivetrain_replay",
James Kuszmaul531609d2020-02-18 17:12:23 -0800145 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800146 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul531609d2020-02-18 17:12:23 -0800147 deps = [
148 ":drivetrain_base",
149 "//aos:configuration",
150 "//aos:init",
151 "//aos/events:shm_event_loop",
152 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800153 "//aos/events/logging:log_reader",
154 "//aos/events/logging:log_writer",
James Kuszmaul531609d2020-02-18 17:12:23 -0800155 "//aos/testing:googletest",
156 "//frc971/control_loops/drivetrain:drivetrain_lib",
157 "@com_github_gflags_gflags//:gflags",
158 "@com_github_google_glog//:glog",
159 ],
160)
161
James Kuszmaul022d40e2020-02-11 17:06:18 -0800162cc_binary(
163 name = "drivetrain_replay",
164 srcs = ["drivetrain_replay.cc"],
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700165 data = ["//y2020:config"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800166 target_compatible_with = ["@platforms//os:linux"],
James Kuszmaul022d40e2020-02-11 17:06:18 -0800167 deps = [
168 ":drivetrain_base",
James Kuszmaul68f7d272020-02-22 20:55:02 -0800169 ":localizer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800170 "//aos:configuration",
171 "//aos:init",
172 "//aos/events:shm_event_loop",
173 "//aos/events:simulated_event_loop",
Austin Schuhb06f03b2021-02-17 22:00:37 -0800174 "//aos/events/logging:log_reader",
175 "//aos/events/logging:log_writer",
James Kuszmaul022d40e2020-02-11 17:06:18 -0800176 "//frc971/control_loops/drivetrain:drivetrain_lib",
177 "@com_github_gflags_gflags//:gflags",
178 "@com_github_google_glog//:glog",
179 ],
180)