blob: c8ecaffa2d46cc5408bbb51d9737c18187582e27 [file] [log] [blame]
James Kuszmaulf01da392023-12-14 11:22:14 -08001load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
Maxwell Hendersonb392b742023-03-05 07:53:51 -08002
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",
James Kuszmaulec635d22023-08-12 18:39:24 -070019 "//frc971/zeroing:pot_and_absolute_encoder",
milind-u37385182023-02-20 15:07:28 -080020 "//y2023:constants",
21 "//y2023/control_loops/superstructure:superstructure_position_fbs",
22 "//y2023/control_loops/superstructure:superstructure_status_fbs",
23 "//y2023/control_loops/superstructure/arm:arm_constants",
milind-u18a901d2023-02-17 21:51:55 -080024 "//y2023/control_loops/superstructure/arm:trajectory",
25 "//y2023/control_loops/superstructure/roll:roll_plants",
Maxwell Hendersonbf1bcec2023-03-05 18:00:20 -080026 "//y2023/vision:game_pieces_fbs",
milind-u37385182023-02-20 15:07:28 -080027 ],
28)
29
30genrule(
Maxwell Hendersonb392b742023-03-05 07:53:51 -080031 name = "generated_arm_trajectory_genrule",
32 outs = [
33 "arm_trajectories_generated.bfbs",
34 ],
35 cmd = "$(location //y2023/control_loops/superstructure/arm:arm_trajectory_generator) --output $(OUTS)",
36 target_compatible_with = ["@platforms//os:linux"],
37 tools = [
38 "//y2023/control_loops/superstructure/arm:arm_trajectory_generator",
39 ],
40 visibility = ["//visibility:public"],
41)
42
43cc_binary(
44 name = "arm_trajectory_generator",
45 srcs = [
46 "arm_trajectory_gen.cc",
47 ],
48 target_compatible_with = ["@platforms//os:linux"],
49 visibility = ["//visibility:public"],
50 deps = [
51 ":arm_constants",
52 ":arm_trajectories_fbs",
53 "//aos:flatbuffers",
54 "//aos:json_to_flatbuffer",
55 "//frc971/control_loops/double_jointed_arm:graph",
56 "//y2023:constants",
57 "//y2023/control_loops/superstructure/arm:generated_graph",
58 "//y2023/control_loops/superstructure/arm:trajectory",
59 "//y2023/control_loops/superstructure/roll:roll_plants",
60 ],
61)
62
63genrule(
milind-u37385182023-02-20 15:07:28 -080064 name = "generated_graph_genrule",
65 outs = [
66 "generated_graph.h",
67 "generated_graph.cc",
68 ],
69 cmd = "$(location //y2023/control_loops/python:graph_codegen) $(OUTS)",
70 target_compatible_with = ["@platforms//os:linux"],
71 tools = [
72 "//y2023/control_loops/python:graph_codegen",
73 ],
74)
75
James Kuszmaulf01da392023-12-14 11:22:14 -080076static_flatbuffer(
Maxwell Hendersonb392b742023-03-05 07:53:51 -080077 name = "arm_trajectories_fbs",
78 srcs = [
79 "arm_trajectories.fbs",
80 ],
Maxwell Hendersonb392b742023-03-05 07:53:51 -080081 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",
Stephan Pleines85b295c2024-02-04 17:50:26 -0800122 "//aos/analysis:in_process_plotter",
milind-u0a7d28d2023-02-20 17:44:37 -0800123 "//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",
Stephan Pleines85b295c2024-02-04 17:50:26 -0800169 "//aos/analysis:in_process_plotter",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800170 "//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",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700174 "@com_google_absl//absl/flags:flag",
Austin Schuhb83e1c72023-02-20 21:41:51 -0800175 "@org_tuxfamily_eigen//:eigen",
176 ],
177)