blob: 97a7abab2df81b3aa8afec663c4d287f1666a655 [file] [log] [blame]
James Kuszmaul1798c072022-02-13 15:32:11 -08001load("//aos:config.bzl", "aos_config")
2
milind-u086d7262022-01-19 20:44:18 -08003genrule(
4 name = "genrule_drivetrain",
5 outs = [
6 "drivetrain_dog_motor_plant.h",
7 "drivetrain_dog_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -08008 "drivetrain_dog_motor_plant.json",
milind-u086d7262022-01-19 20:44:18 -08009 "kalman_drivetrain_motor_plant.h",
10 "kalman_drivetrain_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080011 "kalman_drivetrain_motor_plant.json",
milind-u086d7262022-01-19 20:44:18 -080012 ],
13 cmd = "$(location //y2022/control_loops/python:drivetrain) $(OUTS)",
14 target_compatible_with = ["@platforms//os:linux"],
15 tools = [
16 "//y2022/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",
James Kuszmauleeb98e92024-01-14 22:15:32 -080025 "polydrivetrain_dog_motor_plant.json",
milind-u086d7262022-01-19 20:44:18 -080026 "polydrivetrain_cim_plant.h",
27 "polydrivetrain_cim_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080028 "polydrivetrain_cim_plant.json",
milind-u086d7262022-01-19 20:44:18 -080029 "hybrid_velocity_drivetrain.h",
30 "hybrid_velocity_drivetrain.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080031 "hybrid_velocity_drivetrain.json",
milind-u086d7262022-01-19 20:44:18 -080032 ],
33 cmd = "$(location //y2022/control_loops/python:polydrivetrain) $(OUTS)",
34 target_compatible_with = ["@platforms//os:linux"],
35 tools = [
36 "//y2022/control_loops/python:polydrivetrain",
37 ],
38)
39
40cc_library(
41 name = "polydrivetrain_plants",
42 srcs = [
43 "drivetrain_dog_motor_plant.cc",
44 "hybrid_velocity_drivetrain.cc",
45 "kalman_drivetrain_motor_plant.cc",
46 "polydrivetrain_dog_motor_plant.cc",
47 ],
48 hdrs = [
49 "drivetrain_dog_motor_plant.h",
50 "hybrid_velocity_drivetrain.h",
51 "kalman_drivetrain_motor_plant.h",
52 "polydrivetrain_dog_motor_plant.h",
53 ],
54 target_compatible_with = ["@platforms//os:linux"],
55 visibility = ["//visibility:public"],
56 deps = [
57 "//frc971/control_loops:hybrid_state_feedback_loop",
58 "//frc971/control_loops:state_feedback_loop",
59 ],
60)
61
62cc_library(
63 name = "drivetrain_base",
64 srcs = [
65 "drivetrain_base.cc",
66 ],
67 hdrs = [
68 "drivetrain_base.h",
69 ],
70 target_compatible_with = ["@platforms//os:linux"],
71 visibility = ["//visibility:public"],
72 deps = [
73 ":polydrivetrain_plants",
74 "//frc971:shifter_hall_effect",
75 "//frc971/control_loops/drivetrain:drivetrain_config",
76 ],
77)
78
79cc_binary(
80 name = "drivetrain",
81 srcs = [
82 "drivetrain_main.cc",
83 ],
84 target_compatible_with = ["@platforms//os:linux"],
85 visibility = ["//visibility:public"],
86 deps = [
87 ":drivetrain_base",
88 "//aos:init",
89 "//aos/events:shm_event_loop",
90 "//frc971/control_loops/drivetrain:drivetrain_lib",
James Kuszmaule3df1ed2023-02-20 16:21:17 -080091 "//frc971/control_loops/drivetrain/localization:puppet_localizer",
milind-u086d7262022-01-19 20:44:18 -080092 ],
93)
James Kuszmaul1798c072022-02-13 15:32:11 -080094
95aos_config(
96 name = "simulation_config",
97 src = "drivetrain_simulation_config.json",
98 target_compatible_with = ["@platforms//os:linux"],
99 visibility = ["//visibility:public"],
100 deps = [
101 "//frc971/control_loops/drivetrain:simulation_channels",
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800102 "//y2022:aos_config",
James Kuszmaul1798c072022-02-13 15:32:11 -0800103 ],
104)
105
Milind Upadhyayb8abf022022-02-22 21:07:44 -0800106cc_binary(
107 name = "trajectory_generator",
108 srcs = [
109 "trajectory_generator_main.cc",
110 ],
111 target_compatible_with = ["@platforms//os:linux"],
112 visibility = ["//visibility:public"],
113 deps = [
114 ":drivetrain_base",
115 "//aos:init",
116 "//aos/events:shm_event_loop",
117 "//frc971/control_loops/drivetrain:trajectory_generator",
118 ],
119)