blob: 44b2aacd5fdc2755dc91cdfa87cc6454b58e1b38 [file] [log] [blame]
Maxwell Hendersonb392b742023-03-05 07:53:51 -08001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
2
milind-u37385182023-02-20 15:07:28 -08003cc_library(
4 name = "arm",
5 srcs = [
6 "arm.cc",
7 ],
8 hdrs = [
9 "arm.h",
10 ],
11 target_compatible_with = ["@platforms//os:linux"],
12 visibility = ["//visibility:public"],
13 deps = [
14 ":generated_graph",
milind-u37385182023-02-20 15:07:28 -080015 "//frc971/control_loops/double_jointed_arm:ekf",
16 "//frc971/control_loops/double_jointed_arm:graph",
milind-u37385182023-02-20 15:07:28 -080017 "//frc971/zeroing",
18 "//y2023:constants",
milind-u738832d2023-02-24 19:55:54 -080019 "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
milind-u37385182023-02-20 15:07:28 -080020 "//y2023/control_loops/superstructure:superstructure_position_fbs",
21 "//y2023/control_loops/superstructure:superstructure_status_fbs",
22 "//y2023/control_loops/superstructure/arm:arm_constants",
milind-u18a901d2023-02-17 21:51:55 -080023 "//y2023/control_loops/superstructure/arm:trajectory",
24 "//y2023/control_loops/superstructure/roll:roll_plants",
milind-u37385182023-02-20 15:07:28 -080025 ],
26)
27
28genrule(
Maxwell Hendersonb392b742023-03-05 07:53:51 -080029 name = "generated_arm_trajectory_genrule",
30 outs = [
31 "arm_trajectories_generated.bfbs",
32 ],
33 cmd = "$(location //y2023/control_loops/superstructure/arm:arm_trajectory_generator) --output $(OUTS)",
34 target_compatible_with = ["@platforms//os:linux"],
35 tools = [
36 "//y2023/control_loops/superstructure/arm:arm_trajectory_generator",
37 ],
38 visibility = ["//visibility:public"],
39)
40
41cc_binary(
42 name = "arm_trajectory_generator",
43 srcs = [
44 "arm_trajectory_gen.cc",
45 ],
46 target_compatible_with = ["@platforms//os:linux"],
47 visibility = ["//visibility:public"],
48 deps = [
49 ":arm_constants",
50 ":arm_trajectories_fbs",
51 "//aos:flatbuffers",
52 "//aos:json_to_flatbuffer",
53 "//frc971/control_loops/double_jointed_arm:graph",
54 "//y2023:constants",
55 "//y2023/control_loops/superstructure/arm:generated_graph",
56 "//y2023/control_loops/superstructure/arm:trajectory",
57 "//y2023/control_loops/superstructure/roll:roll_plants",
58 ],
59)
60
61genrule(
milind-u37385182023-02-20 15:07:28 -080062 name = "generated_graph_genrule",
63 outs = [
64 "generated_graph.h",
65 "generated_graph.cc",
66 ],
67 cmd = "$(location //y2023/control_loops/python:graph_codegen) $(OUTS)",
68 target_compatible_with = ["@platforms//os:linux"],
69 tools = [
70 "//y2023/control_loops/python:graph_codegen",
71 ],
72)
73
Maxwell Hendersonb392b742023-03-05 07:53:51 -080074flatbuffer_cc_library(
75 name = "arm_trajectories_fbs",
76 srcs = [
77 "arm_trajectories.fbs",
78 ],
79 gen_reflections = 1,
80 visibility = ["//visibility:public"],
81)
82
milind-u37385182023-02-20 15:07:28 -080083cc_library(
84 name = "generated_graph",
85 srcs = [
86 "generated_graph.cc",
87 ],
88 hdrs = ["generated_graph.h"],
89 copts = [
90 "-O1",
91 ],
92 target_compatible_with = ["@platforms//os:linux"],
93 visibility = ["//visibility:public"],
94 deps = [
95 ":arm_constants",
96 "//frc971/control_loops/double_jointed_arm:graph",
milind-u18a901d2023-02-17 21:51:55 -080097 "//y2023/control_loops/superstructure/arm:trajectory",
98 "//y2023/control_loops/superstructure/roll:roll_plants",
milind-u37385182023-02-20 15:07:28 -080099 ],
100)
101
102cc_library(
103 name = "arm_constants",
104 hdrs = ["arm_constants.h"],
105 target_compatible_with = ["@platforms//os:linux"],
106 visibility = ["//visibility:public"],
107 deps = [
108 "//frc971/control_loops/double_jointed_arm:dynamics",
109 ],
110)
milind-u0a7d28d2023-02-20 17:44:37 -0800111
112cc_binary(
113 name = "arm_design",
114 srcs = [
115 "arm_design.cc",
116 ],
117 target_compatible_with = ["@platforms//os:linux"],
118 deps = [
119 ":arm_constants",
120 "//aos:init",
121 "//frc971/analysis:in_process_plotter",
122 "//frc971/control_loops:dlqr",
123 "//frc971/control_loops:jacobian",
124 "//frc971/control_loops/double_jointed_arm:dynamics",
125 ],
126)
Austin Schuhb83e1c72023-02-20 21:41:51 -0800127
128cc_library(
129 name = "trajectory",
130 srcs = ["trajectory.cc"],
131 hdrs = ["trajectory.h"],
132 target_compatible_with = ["@platforms//os:linux"],
Maxwell Hendersonb392b742023-03-05 07:53:51 -0800133 visibility = ["//visibility:public"],
Austin Schuhb83e1c72023-02-20 21:41:51 -0800134 deps = [
135 "//frc971/control_loops:binomial",
136 "//frc971/control_loops:dlqr",
137 "//frc971/control_loops:fixed_quadrature",
138 "//frc971/control_loops:hybrid_state_feedback_loop",
139 "//frc971/control_loops/double_jointed_arm:dynamics",
140 "//frc971/control_loops/double_jointed_arm:ekf",
Maxwell Hendersonb392b742023-03-05 07:53:51 -0800141 "//y2023/control_loops/superstructure/arm:arm_trajectories_fbs",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800142 "@org_tuxfamily_eigen//:eigen",
143 ],
144)
145
146cc_test(
147 name = "trajectory_test",
148 srcs = ["trajectory_test.cc"],
149 target_compatible_with = ["@platforms//os:linux"],
150 deps = [
151 ":arm_constants",
152 ":trajectory",
153 "//aos/testing:googletest",
154 "//y2023/control_loops/superstructure/roll:roll_plants",
155 ],
156)
157
158cc_binary(
159 name = "trajectory_plot",
160 srcs = [
161 "trajectory_plot.cc",
162 ],
163 target_compatible_with = ["@platforms//cpu:x86_64"],
164 deps = [
165 ":arm_constants",
Austin Schuha32a1892023-02-21 14:04:07 -0800166 ":generated_graph",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800167 ":trajectory",
168 "//frc971/analysis:in_process_plotter",
169 "//frc971/control_loops:binomial",
170 "//frc971/control_loops:fixed_quadrature",
171 "//frc971/control_loops/double_jointed_arm:ekf",
172 "//y2023/control_loops/superstructure/roll:roll_plants",
173 "@com_github_gflags_gflags//:gflags",
174 "@org_tuxfamily_eigen//:eigen",
175 ],
176)