blob: 063e9727d9a1dbe2c90a3aca5a99d218f05d39a2 [file] [log] [blame]
Maxwell Hendersonad312342023-01-10 12:07:47 -08001load("//aos:config.bzl", "aos_config")
Ravago Jones2060ee62023-02-03 18:12:24 -08002load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Maxwell Hendersonad312342023-01-10 12:07:47 -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 //y2023/control_loops/python:drivetrain) $(OUTS)",
13 target_compatible_with = ["@platforms//os:linux"],
14 tools = [
15 "//y2023/control_loops/python:drivetrain",
16 ],
17)
18
19genrule(
20 name = "genrule_polydrivetrain",
21 outs = [
22 "polydrivetrain_dog_motor_plant.h",
23 "polydrivetrain_dog_motor_plant.cc",
24 "polydrivetrain_cim_plant.h",
25 "polydrivetrain_cim_plant.cc",
26 "hybrid_velocity_drivetrain.h",
27 "hybrid_velocity_drivetrain.cc",
28 ],
29 cmd = "$(location //y2023/control_loops/python:polydrivetrain) $(OUTS)",
30 target_compatible_with = ["@platforms//os:linux"],
31 tools = [
32 "//y2023/control_loops/python:polydrivetrain",
33 ],
34)
35
36cc_library(
37 name = "polydrivetrain_plants",
38 srcs = [
39 "drivetrain_dog_motor_plant.cc",
40 "hybrid_velocity_drivetrain.cc",
41 "kalman_drivetrain_motor_plant.cc",
42 "polydrivetrain_dog_motor_plant.cc",
43 ],
44 hdrs = [
45 "drivetrain_dog_motor_plant.h",
46 "hybrid_velocity_drivetrain.h",
47 "kalman_drivetrain_motor_plant.h",
48 "polydrivetrain_dog_motor_plant.h",
49 ],
50 target_compatible_with = ["@platforms//os:linux"],
51 visibility = ["//visibility:public"],
52 deps = [
53 "//frc971/control_loops:hybrid_state_feedback_loop",
54 "//frc971/control_loops:state_feedback_loop",
55 ],
56)
57
58cc_library(
59 name = "drivetrain_base",
60 srcs = [
61 "drivetrain_base.cc",
62 ],
63 hdrs = [
64 "drivetrain_base.h",
65 ],
66 target_compatible_with = ["@platforms//os:linux"],
67 visibility = ["//visibility:public"],
68 deps = [
69 ":polydrivetrain_plants",
70 "//frc971:shifter_hall_effect",
71 "//frc971/control_loops/drivetrain:drivetrain_config",
72 ],
73)
74
75cc_binary(
76 name = "drivetrain",
77 srcs = [
78 "drivetrain_main.cc",
79 ],
80 target_compatible_with = ["@platforms//os:linux"],
81 visibility = ["//visibility:public"],
82 deps = [
83 ":drivetrain_base",
James Kuszmaulc29f4572023-02-25 17:02:33 -080084 ":target_selector",
Maxwell Hendersonad312342023-01-10 12:07:47 -080085 "//aos:init",
86 "//aos/events:shm_event_loop",
87 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaul04a343c2023-02-20 16:38:22 -080088 "//frc971/control_loops/drivetrain/localization:puppet_localizer",
Maxwell Hendersonad312342023-01-10 12:07:47 -080089 ],
90)
91
92aos_config(
93 name = "simulation_config",
94 src = "drivetrain_simulation_config.json",
95 target_compatible_with = ["@platforms//os:linux"],
96 visibility = ["//visibility:public"],
97 deps = [
98 "//frc971/control_loops/drivetrain:simulation_channels",
99 "//y2023:aos_config",
100 ],
101)
102
103cc_binary(
104 name = "trajectory_generator",
105 srcs = [
106 "trajectory_generator_main.cc",
107 ],
108 target_compatible_with = ["@platforms//os:linux"],
109 visibility = ["//visibility:public"],
110 deps = [
111 ":drivetrain_base",
112 "//aos:init",
113 "//aos/events:shm_event_loop",
114 "//frc971/control_loops/drivetrain:trajectory_generator",
115 ],
116)
Ravago Jones2060ee62023-02-03 18:12:24 -0800117
118flatbuffer_cc_library(
119 name = "drivetrain_can_position_fbs",
120 srcs = [
121 "drivetrain_can_position.fbs",
122 ],
123 gen_reflections = 1,
124 visibility = ["//visibility:public"],
125)
James Kuszmauldb730d72023-02-25 16:01:27 -0800126
127flatbuffer_cc_library(
James Kuszmaul202e4382023-03-05 14:56:55 -0800128 name = "target_selector_status_fbs",
129 srcs = [
130 ":target_selector_status.fbs",
131 ],
132 gen_reflections = 1,
133 visibility = ["//visibility:public"],
134)
135
136flatbuffer_cc_library(
James Kuszmauldb730d72023-02-25 16:01:27 -0800137 name = "target_selector_hint_fbs",
138 srcs = [
139 ":target_selector_hint.fbs",
140 ],
141 gen_reflections = 1,
142 visibility = ["//visibility:public"],
James Kuszmaul055fe762023-03-03 21:14:01 -0800143 deps = [
144 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
145 ],
James Kuszmauldb730d72023-02-25 16:01:27 -0800146)
James Kuszmaulc29f4572023-02-25 17:02:33 -0800147
148cc_library(
149 name = "target_selector",
150 srcs = ["target_selector.cc"],
151 hdrs = ["target_selector.h"],
152 deps = [
153 ":target_selector_hint_fbs",
James Kuszmaul202e4382023-03-05 14:56:55 -0800154 ":target_selector_status_fbs",
James Kuszmaulc29f4572023-02-25 17:02:33 -0800155 "//aos/containers:sized_array",
156 "//aos/events:event_loop",
157 "//frc971/constants:constants_sender_lib",
158 "//frc971/control_loops:pose",
159 "//frc971/control_loops/drivetrain:localizer",
160 "//frc971/input:joystick_state_fbs",
James Kuszmaul202e4382023-03-05 14:56:55 -0800161 "//frc971/shooter_interpolation:interpolation",
James Kuszmaulc29f4572023-02-25 17:02:33 -0800162 "//y2023/constants:constants_fbs",
James Kuszmaul202e4382023-03-05 14:56:55 -0800163 "//y2023/control_loops/superstructure:superstructure_position_fbs",
James Kuszmaul68de1612023-03-05 18:06:22 -0800164 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -0800165 "//y2023/vision:game_pieces_fbs",
James Kuszmaulc29f4572023-02-25 17:02:33 -0800166 ],
167)
168
169cc_test(
170 name = "target_selector_test",
171 srcs = ["target_selector_test.cc"],
172 data = ["//y2023:aos_config"],
173 deps = [
174 ":target_selector",
175 "//aos/events:simulated_event_loop",
176 "//aos/testing:googletest",
177 "//frc971/input:joystick_state_fbs",
178 "//y2023/constants:simulated_constants_sender",
179 ],
180)