blob: a742c5020eaa3720c86677fad81d7b97a200865a [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",
Maxwell Hendersoncef6f042023-05-26 14:38:09 -070017 "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
milind-u37385182023-02-20 15:07:28 -080018 "//frc971/zeroing",
19 "//y2023:constants",
20 "//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",
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -080025 "//y2023/vision:game_pieces_fbs",
milind-u37385182023-02-20 15:07:28 -080026 ],
27)
28
29genrule(
Maxwell Hendersonb392b742023-03-05 07:53:51 -080030 name = "generated_arm_trajectory_genrule",
31 outs = [
32 "arm_trajectories_generated.bfbs",
33 ],
34 cmd = "$(location //y2023/control_loops/superstructure/arm:arm_trajectory_generator) --output $(OUTS)",
35 target_compatible_with = ["@platforms//os:linux"],
36 tools = [
37 "//y2023/control_loops/superstructure/arm:arm_trajectory_generator",
38 ],
39 visibility = ["//visibility:public"],
40)
41
42cc_binary(
43 name = "arm_trajectory_generator",
44 srcs = [
45 "arm_trajectory_gen.cc",
46 ],
47 target_compatible_with = ["@platforms//os:linux"],
48 visibility = ["//visibility:public"],
49 deps = [
50 ":arm_constants",
51 ":arm_trajectories_fbs",
52 "//aos:flatbuffers",
53 "//aos:json_to_flatbuffer",
54 "//frc971/control_loops/double_jointed_arm:graph",
55 "//y2023:constants",
56 "//y2023/control_loops/superstructure/arm:generated_graph",
57 "//y2023/control_loops/superstructure/arm:trajectory",
58 "//y2023/control_loops/superstructure/roll:roll_plants",
59 ],
60)
61
62genrule(
milind-u37385182023-02-20 15:07:28 -080063 name = "generated_graph_genrule",
64 outs = [
65 "generated_graph.h",
66 "generated_graph.cc",
67 ],
68 cmd = "$(location //y2023/control_loops/python:graph_codegen) $(OUTS)",
69 target_compatible_with = ["@platforms//os:linux"],
70 tools = [
71 "//y2023/control_loops/python:graph_codegen",
72 ],
73)
74
Maxwell Hendersonb392b742023-03-05 07:53:51 -080075flatbuffer_cc_library(
76 name = "arm_trajectories_fbs",
77 srcs = [
78 "arm_trajectories.fbs",
79 ],
80 gen_reflections = 1,
81 visibility = ["//visibility:public"],
82)
83
milind-u37385182023-02-20 15:07:28 -080084cc_library(
85 name = "generated_graph",
86 srcs = [
87 "generated_graph.cc",
88 ],
89 hdrs = ["generated_graph.h"],
90 copts = [
91 "-O1",
92 ],
93 target_compatible_with = ["@platforms//os:linux"],
94 visibility = ["//visibility:public"],
95 deps = [
96 ":arm_constants",
97 "//frc971/control_loops/double_jointed_arm:graph",
milind-u18a901d2023-02-17 21:51:55 -080098 "//y2023/control_loops/superstructure/arm:trajectory",
99 "//y2023/control_loops/superstructure/roll:roll_plants",
milind-u37385182023-02-20 15:07:28 -0800100 ],
101)
102
103cc_library(
104 name = "arm_constants",
105 hdrs = ["arm_constants.h"],
106 target_compatible_with = ["@platforms//os:linux"],
107 visibility = ["//visibility:public"],
108 deps = [
109 "//frc971/control_loops/double_jointed_arm:dynamics",
110 ],
111)
milind-u0a7d28d2023-02-20 17:44:37 -0800112
113cc_binary(
114 name = "arm_design",
115 srcs = [
116 "arm_design.cc",
117 ],
118 target_compatible_with = ["@platforms//os:linux"],
119 deps = [
120 ":arm_constants",
121 "//aos:init",
122 "//frc971/analysis:in_process_plotter",
123 "//frc971/control_loops:dlqr",
124 "//frc971/control_loops:jacobian",
125 "//frc971/control_loops/double_jointed_arm:dynamics",
126 ],
127)
Austin Schuhb83e1c72023-02-20 21:41:51 -0800128
129cc_library(
130 name = "trajectory",
131 srcs = ["trajectory.cc"],
132 hdrs = ["trajectory.h"],
133 target_compatible_with = ["@platforms//os:linux"],
Maxwell Hendersonb392b742023-03-05 07:53:51 -0800134 visibility = ["//visibility:public"],
Austin Schuhb83e1c72023-02-20 21:41:51 -0800135 deps = [
136 "//frc971/control_loops:binomial",
137 "//frc971/control_loops:dlqr",
138 "//frc971/control_loops:fixed_quadrature",
139 "//frc971/control_loops:hybrid_state_feedback_loop",
140 "//frc971/control_loops/double_jointed_arm:dynamics",
141 "//frc971/control_loops/double_jointed_arm:ekf",
Maxwell Hendersonb392b742023-03-05 07:53:51 -0800142 "//y2023/control_loops/superstructure/arm:arm_trajectories_fbs",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800143 "@org_tuxfamily_eigen//:eigen",
144 ],
145)
146
147cc_test(
148 name = "trajectory_test",
149 srcs = ["trajectory_test.cc"],
150 target_compatible_with = ["@platforms//os:linux"],
151 deps = [
152 ":arm_constants",
153 ":trajectory",
154 "//aos/testing:googletest",
155 "//y2023/control_loops/superstructure/roll:roll_plants",
156 ],
157)
158
159cc_binary(
160 name = "trajectory_plot",
161 srcs = [
162 "trajectory_plot.cc",
163 ],
164 target_compatible_with = ["@platforms//cpu:x86_64"],
165 deps = [
166 ":arm_constants",
Austin Schuha32a1892023-02-21 14:04:07 -0800167 ":generated_graph",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800168 ":trajectory",
169 "//frc971/analysis:in_process_plotter",
170 "//frc971/control_loops:binomial",
171 "//frc971/control_loops:fixed_quadrature",
172 "//frc971/control_loops/double_jointed_arm:ekf",
173 "//y2023/control_loops/superstructure/roll:roll_plants",
174 "@com_github_gflags_gflags//:gflags",
175 "@org_tuxfamily_eigen//:eigen",
176 ],
177)