blob: ad7ce4bb13eabbef804b9cb393bc7f609af93b7b [file] [log] [blame]
Austin Schuhf8f95022018-01-28 20:01:10 -08001licenses(["notice"]) # lgpl
2
3cc_library(
4 name = "ct",
Austin Schuhf8f95022018-01-28 20:01:10 -08005 hdrs = [
6 "ct_optcon/include/ct/optcon/optcon.h",
7 "ct_core/include/ct/core/core.h",
8 "ct_core/include/ct/core/internal/autodiff/CppadParallel.h",
9 "ct_core/include/ct/core/Common",
10 "ct_core/include/ct/core/Common-impl",
11 "ct_core/include/ct/core/common/GaussianNoise.h",
12 "ct_core/include/ct/core/common/QuantizationNoise.h",
13 "ct_core/include/ct/core/common/InfoFileParser.h",
14 "ct_core/include/ct/core/common/Timer.h",
15 "ct_core/include/ct/core/common/ExternallyDrivenTimer.h",
16 "ct_core/include/ct/core/common/Interpolation.h",
17 "ct_core/include/ct/core/types/arrays/DiscreteArray.h",
18 "ct_core/include/ct/core/types/arrays/TimeArray.h",
19 "ct_core/include/ct/core/types/Time.h",
20 "ct_core/include/ct/core/common/linspace.h",
21 "ct_core/include/ct/core/types/arrays/ScalarArray.h",
22 "ct_core/include/ct/core/common/activations/Activations.h",
23 "ct_core/include/ct/core/common/activations/ActivationBase.hpp",
24 "ct_core/include/ct/core/common/activations/PeriodicActivation.hpp",
25 "ct_core/include/ct/core/internal/traits/TraitSelectorSpecs.h",
26 "ct_core/include/ct/core/internal/traits/CppADCodegenTrait.h",
27 "ct_core/include/ct/core/internal/traits/CppADDoubleTrait.h",
28 "ct_core/include/ct/core/internal/traits/TraitSelector.h",
29 "ct_core/include/ct/core/internal/traits/FloatTrait.h",
30 "ct_core/include/ct/core/internal/traits/DoubleTrait.h",
31 "ct_core/include/ct/core/common/activations/RBFGaussActivation.h",
32 "ct_core/include/ct/core/common/activations/SingleActivation.hpp",
33 "ct_core/include/ct/core/common/activations/BarrierActivation.hpp",
34 "ct_core/include/ct/core/common/activations/utilities/ActivationLoadMacros.h",
35 "ct_core/include/ct/core/Types",
36 "ct_core/include/ct/core/Types-impl",
37 "ct_core/include/ct/core/types/AutoDiff.h",
38 "ct_core/include/ct/core/types/ControlVector.h",
39 "ct_core/include/ct/core/types/StateVector.h",
40 "ct_core/include/ct/core/types/FeedbackMatrix.h",
41 "ct_core/include/ct/core/types/StateMatrix.h",
42 "ct_core/include/ct/core/types/ControlMatrix.h",
43 "ct_core/include/ct/core/types/StateControlMatrix.h",
44 "ct_core/include/ct/core/types/arrays/MatrixArrays.h",
45 "ct_core/include/ct/core/types/trajectories/DiscreteTrajectoryBase.h",
46 "ct_core/include/ct/core/types/trajectories/TrajectoryBase.h",
47 "ct_core/include/ct/core/types/trajectories/ScalarTrajectory.h",
48 "ct_core/include/ct/core/types/trajectories/MatrixTrajectories.h",
49 "ct_core/include/ct/core/Control",
50 "ct_core/include/ct/core/Control-impl",
51 "ct_core/include/ct/core/control/continuous_time/Controller.h",
52 "ct_core/include/ct/core/control/continuous_time/StateFeedbackController.h",
53 "ct_core/include/ct/core/control/continuous_time/ConstantController.h",
54 "ct_core/include/ct/core/control/continuous_time/ConstantStateFeedbackController.h",
55 "ct_core/include/ct/core/control/continuous_time/ConstantTrajectoryController.h",
56 "ct_core/include/ct/core/control/continuous_time/siso/PIDController.h",
57 "ct_core/include/ct/core/control/continuous_time/siso/PIDController-impl.h",
58 "ct_core/include/ct/core/control/continuous_time/siso/StepInputController.h",
59 "ct_core/include/ct/core/control/continuous_time/mimo/LinearFunctions.h",
60 "ct_core/include/ct/core/control/discrete_time/DiscreteController.h",
61 "ct_core/include/ct/core/Systems",
62 "ct_core/include/ct/core/Systems-impl",
63 "ct_core/include/ct/core/systems/continuous_time/System.h",
64 "ct_core/include/ct/core/systems/continuous_time/ControlledSystem.h",
65 "ct_core/include/ct/core/systems/continuous_time/SecondOrderSystem.h",
66 "ct_core/include/ct/core/systems/continuous_time/linear/LinearSystem.h",
67 "ct_core/include/ct/core/systems/continuous_time/linear/LTISystem.h",
68 "ct_core/include/ct/core/systems/linearizer/DynamicsLinearizerNumDiff.h",
69 "ct_core/include/ct/core/systems/linearizer/DynamicsLinearizerAD.h",
70 "ct_core/include/ct/core/systems/linearizer/DynamicsLinearizerADBase.h",
71 "ct_core/include/ct/core/internal/autodiff/SparsityPattern.h",
72 "ct_core/include/ct/core/systems/linearizer/DynamicsLinearizerADCG.h",
73 "ct_core/include/ct/core/internal/autodiff/CGHelpers.h",
74 "ct_core/include/ct/core/systems/continuous_time/linear/SystemLinearizer.h",
75 "ct_core/include/ct/core/systems/continuous_time/linear/AutoDiffLinearizer.h",
76 "ct_core/include/ct/core/systems/continuous_time/linear/ADCodegenLinearizer.h",
77 "ct_core/include/ct/core/templateDir.h", # TODO(austin): Looks like this could be non-hermetic.
78 "ct_core/include/ct/core/systems/discrete_time/DiscreteControlledSystem.h",
79 "ct_core/include/ct/core/systems/discrete_time/DiscreteSystem.h",
80 "ct_core/include/ct/core/systems/discrete_time/SystemDiscretizer.h",
81 "ct_core/include/ct/core/integration/Integrator.h",
82 "ct_core/include/ct/core/integration/EventHandler.h",
83 "ct_core/include/ct/core/integration/Observer.h",
84 "ct_core/include/ct/core/integration/eigenIntegration.h",
85 "ct_core/include/ct/core/integration/internal/StepperBase.h",
86 "ct_core/include/ct/core/integration/internal/SteppersODEInt.h",
87 "ct_core/include/ct/core/integration/internal/SteppersODEIntDefinitions.h",
88 "ct_core/include/ct/core/integration/internal/SteppersCT.h",
89 "ct_core/include/ct/core/integration/IntegratorSymplectic.h",
90 "ct_core/include/ct/core/systems/continuous_time/SymplecticSystem.h",
91 "ct_core/include/ct/core/integration/EventHandlers/SubstepRecorder.h",
92 "ct_core/include/ct/core/systems/discrete_time/linear/DiscreteLinearSystem.h",
93 "ct_core/include/ct/core/systems/discrete_time/linear/DiscreteSystemLinearizer.h",
94 "ct_core/include/ct/core/systems/discrete_time/linear/DiscreteSystemLinearizerAD.h",
95 "ct_core/include/ct/core/systems/discrete_time/linear/DiscreteSystemLinearizerADCG.h",
96 "ct_core/include/ct/core/Integration",
97 "ct_core/include/ct/core/Integration-impl",
98 "ct_core/include/ct/core/integration/EventHandlers/KillIntegrationEventHandler.h",
99 "ct_core/include/ct/core/integration/EventHandlers/MaxStepsEventHandler.h",
100 "ct_core/include/ct/core/integration/sensitivity/Sensitivity.h",
101 "ct_core/include/ct/core/integration/sensitivity/SensitivityApproximation.h",
102 "ct_core/include/ct/core/integration/sensitivity/SensitivityIntegrator.h",
103 "ct_core/include/ct/core/Geometry",
104 "ct_core/include/ct/core/Geometry-impl",
105 "ct_core/include/ct/core/geometry/Ellipsoid.h",
106 "ct_core/include/ct/core/geometry/Plane.h",
107 "ct_core/include/ct/core/geometry/PlaneEstimator.h",
108 "ct_core/include/ct/core/Internal",
109 "ct_core/include/ct/core/Internal-impl",
110 "ct_core/include/ct/core/internal/autodiff/ADHelpers.h",
111 "ct_core/include/ct/core/Math",
112 "ct_core/include/ct/core/Math-impl",
113 "ct_core/include/ct/core/math/Derivatives.h",
114 "ct_core/include/ct/core/math/DerivativesCppadSettings.h",
115 "ct_core/include/ct/core/math/DerivativesNumDiff.h",
116 "ct_core/include/ct/core/math/DerivativesCppad.h",
117 "ct_core/include/ct/core/math/DerivativesCppadJIT.h",
118 "ct_core/include/ct/core/math/DerivativesCppadCG.h",
119 "ct_core/include/ct/core/Simulation",
120 "ct_core/include/ct/core/Simulation-impl",
121 "ct_core/include/ct/core/simulation/ControlSimulator.h",
122 "ct_core/include/ct/core/control/continuous_time/StateFeedbackController-impl.h",
123 "ct_core/include/ct/core/control/continuous_time/ConstantController-impl.h",
124 "ct_core/include/ct/core/systems/discrete_time/SystemDiscretizer-impl.h",
125 "ct_core/include/ct/core/integration/Observer-impl.h",
126 "ct_core/include/ct/core/integration/Integrator-impl.h",
127 "ct_core/include/ct/core/integration/IntegratorSymplectic-impl.h",
128 "ct_optcon/include/ct/optcon/costfunction/costfunction.hpp",
129 "ct_optcon/include/ct/optcon/costfunction/term/TermBase.hpp",
130 "ct_optcon/include/ct/optcon/costfunction/term/TermLinear.hpp",
131 "ct_optcon/include/ct/optcon/costfunction/term/TermMixed.hpp",
132 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadratic.hpp",
133 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadMult.hpp",
134 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadTracking.hpp",
135 "ct_optcon/include/ct/optcon/costfunction/term/TermStateBarrier.hpp",
136 "ct_optcon/include/ct/optcon/costfunction/CostFunction.hpp",
137 "ct_optcon/include/ct/optcon/costfunction/CostFunctionQuadratic.hpp",
138 "ct_optcon/include/ct/optcon/costfunction/CostFunctionQuadratic-impl.hpp",
139 "ct_optcon/include/ct/optcon/costfunction/CostFunctionAD.hpp",
140 "ct_optcon/include/ct/optcon/costfunction/CostFunctionAD-impl.hpp",
141 "ct_optcon/include/ct/optcon/costfunction/utility/utilities.hpp",
142 "ct_optcon/include/ct/optcon/costfunction/term/TermLoadMacros.hpp",
143 "ct_optcon/include/ct/optcon/costfunction/CostFunctionAnalytical.hpp",
144 "ct_optcon/include/ct/optcon/costfunction/CostFunctionQuadraticSimple.hpp",
145 "ct_optcon/include/ct/optcon/costfunction/CostFunctionQuadraticSimple-impl.hpp",
146 "ct_optcon/include/ct/optcon/constraint/constraint.h",
147 "ct_optcon/include/ct/optcon/constraint/term/ConstraintBase.h",
148 "ct_optcon/include/ct/optcon/constraint/term/BoxConstraintBase.h",
149 "ct_optcon/include/ct/optcon/constraint/term/BoxConstraintBase-impl.h",
150 "ct_optcon/include/ct/optcon/constraint/term/ControlInputConstraint.h",
151 "ct_optcon/include/ct/optcon/constraint/term/ControlInputConstraint-impl.h",
152 "ct_optcon/include/ct/optcon/constraint/term/ObstacleConstraint.h",
153 "ct_optcon/include/ct/optcon/constraint/term/ObstacleConstraint-impl.h",
154 "ct_optcon/include/ct/optcon/constraint/term/StateConstraint.h",
155 "ct_optcon/include/ct/optcon/constraint/term/StateConstraint-impl.h",
156 "ct_optcon/include/ct/optcon/constraint/term/TerminalConstraint.h",
157 "ct_optcon/include/ct/optcon/constraint/term/TerminalConstraint-impl.h",
158 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerBase.h",
159 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerBase-impl.h",
160 "ct_optcon/include/ct/optcon/constraint/LinearConstraintContainer.h",
161 "ct_optcon/include/ct/optcon/constraint/LinearConstraintContainer-impl.h",
162 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerAD.h",
163 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerAD-impl.h",
164 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerAnalytical.h",
165 "ct_optcon/include/ct/optcon/constraint/ConstraintContainerAnalytical-impl.h",
166 "ct_optcon/include/ct/optcon/problem/OptConProblem.h",
167 "ct_optcon/include/ct/optcon/problem/OptConProblem-impl.h",
168 "ct_optcon/include/ct/optcon/problem/LQOCProblem.hpp",
169 "ct_optcon/include/ct/optcon/solver/OptConSolver.h",
170 "ct_optcon/include/ct/optcon/nloc/NLOCBackendBase.hpp",
171 "ct_optcon/include/ct/optcon/solver/lqp/GNRiccatiSolver.hpp",
172 "ct_optcon/include/ct/optcon/solver/lqp/LQOCSolver.hpp",
173 "ct_optcon/include/ct/optcon/solver/NLOptConSettings.hpp",
174 "ct_optcon/include/ct/optcon/solver/lqp/HPIPMInterface.hpp",
175 "ct_optcon/include/ct/optcon/nloc/NLOCResults.hpp",
176 "ct_optcon/include/ct/optcon/nloc/NLOCBackendST.hpp",
177 "ct_optcon/include/ct/optcon/nloc/NLOCBackendMP.hpp",
178 "ct_optcon/include/ct/optcon/nloc/algorithms/gnms/GNMS.hpp",
179 "ct_optcon/include/ct/optcon/nloc/NLOCAlgorithm.hpp",
180 "ct_optcon/include/ct/optcon/nloc/algorithms/ilqr/iLQR.hpp",
181 "ct_optcon/include/ct/optcon/solver/NLOptConSolver.hpp",
182 "ct_optcon/include/ct/optcon/lqr/riccati/CARE.hpp",
183 "ct_optcon/include/ct/optcon/lqr/riccati/DARE.hpp",
184 "ct_optcon/include/ct/optcon/lqr/riccati/DynamicRiccatiEquation.hpp",
185 "ct_optcon/include/ct/optcon/lqr/FHDTLQR.hpp",
186 "ct_optcon/include/ct/optcon/lqr/LQR.hpp",
187 "ct_optcon/include/ct/optcon/dms/dms.h",
188 "ct_optcon/include/ct/optcon/dms/Constraints",
189 "ct_optcon/include/ct/optcon/dms/constraints/ConstraintDiscretizer.h",
190 "ct_optcon/include/ct/optcon/nlp/DiscreteConstraintBase.h",
191 "ct_optcon/include/ct/optcon/dms/dms_core/OptVectorDms.h",
192 "ct_optcon/include/ct/optcon/dms/dms_core/TimeGrid.h",
193 "ct_optcon/include/ct/optcon/dms/dms_core/DmsDimensions.h",
194 "ct_optcon/include/ct/optcon/dms/dms_core/spline/SplinerBase.h",
195 "ct_optcon/include/ct/optcon/dms/dms_core/spline/ZeroOrderHold/ZeroOrderHoldSpliner.h",
196 "ct_optcon/include/ct/optcon/dms/dms_core/spline/Linear/LinearSpliner.h",
197 "ct_optcon/include/ct/optcon/nlp/OptVector.h",
198 "ct_optcon/include/ct/optcon/dms/dms_core/DmsSettings.h",
199 "ct_optcon/include/ct/optcon/nlp/solver/NlpSolverSettings.h",
200 "ct_optcon/include/ct/optcon/dms/dms_core/implementation/OptVectorDms-impl.h",
201 "ct_optcon/include/ct/optcon/dms/constraints/ConstraintsContainerDms.h",
202 "ct_optcon/include/ct/optcon/dms/dms_core/ShotContainer.h",
203 "ct_optcon/include/ct/optcon/dms/dms_core/SensitivityIntegratorCT.h",
204 "ct_optcon/include/ct/optcon/dms/dms_core/ControllerDms.h",
205 "ct_optcon/include/ct/optcon/nlp/DiscreteConstraintContainerBase.h",
206 "ct_optcon/include/ct/optcon/dms/constraints/InitStateConstraint.h",
207 "ct_optcon/include/ct/optcon/dms/constraints/ContinuityConstraint.h",
208 "ct_optcon/include/ct/optcon/dms/constraints/TimeHorizonEqualityConstraint.h",
209 "ct_optcon/include/ct/optcon/dms/constraints/implementation/ConstraintsContainerDms-impl.h",
210 "ct_optcon/include/ct/optcon/dms/Dms",
211 "ct_optcon/include/ct/optcon/dms/dms_core/DmsSolver.h",
212 "ct_optcon/include/ct/optcon/dms/dms_core/DmsProblem.h",
213 "ct_optcon/include/ct/optcon/dms/dms_core/cost_evaluator/CostEvaluatorSimple.h",
214 "ct_optcon/include/ct/optcon/nlp/DiscreteCostEvaluatorBase.h",
215 "ct_optcon/include/ct/optcon/dms/dms_core/cost_evaluator/CostEvaluatorFull.h",
216 "ct_optcon/include/ct/optcon/nlp/Nlp.h",
217 "ct_optcon/include/ct/optcon/nlp/Nlp",
218 "ct_optcon/include/ct/optcon/nlp/solver/NlpSolver.h",
219 "ct_optcon/include/ct/optcon/nlp/solver/IpoptSolver.h",
220 "ct_optcon/include/ct/optcon/nlp/solver/SnoptSolver.h",
221 "ct_optcon/include/ct/optcon/dms/dms_core/RKnDerivatives.h",
222 "ct_optcon/include/ct/optcon/mpc/MpcSettings.h",
223 "ct_optcon/include/ct/optcon/mpc/MPC.h",
224 "ct_optcon/include/ct/optcon/mpc/MpcTimeKeeper.h",
225 "ct_optcon/include/ct/optcon/mpc/timehorizon/MpcTimeHorizon.h",
226 "ct_optcon/include/ct/optcon/mpc/policyhandler/PolicyHandler.h",
227 "ct_optcon/include/ct/optcon/mpc/policyhandler/default/StateFeedbackPolicyHandler.h",
228 "ct_optcon/include/ct/optcon/costfunction/costfunction-impl.hpp",
229 "ct_optcon/include/ct/optcon/costfunction/term/TermBase-impl.hpp",
230 "ct_optcon/include/ct/optcon/costfunction/term/TermLinear-impl.hpp",
231 "ct_optcon/include/ct/optcon/costfunction/term/TermMixed-impl.hpp",
232 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadratic-impl.hpp",
233 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadMult-impl.hpp",
234 "ct_optcon/include/ct/optcon/costfunction/term/TermQuadTracking-impl.hpp",
235 "ct_optcon/include/ct/optcon/costfunction/term/TermStateBarrier-impl.hpp",
236 "ct_optcon/include/ct/optcon/costfunction/CostFunction-impl.hpp",
237 "ct_optcon/include/ct/optcon/costfunction/CostFunctionAnalytical-impl.hpp",
238 "ct_optcon/include/ct/optcon/constraint/constraint-impl.h",
239 "ct_optcon/include/ct/optcon/constraint/term/ConstraintBase-impl.h",
240 "ct_optcon/include/ct/optcon/problem/LQOCProblem-impl.hpp",
241 "ct_optcon/include/ct/optcon/solver/lqp/GNRiccatiSolver-impl.hpp",
242 "ct_optcon/include/ct/optcon/solver/lqp/HPIPMInterface-impl.hpp",
243 "ct_optcon/include/ct/optcon/solver/NLOptConSolver-impl.hpp",
244 "ct_optcon/include/ct/optcon/lqr/riccati/CARE-impl.hpp",
245 "ct_optcon/include/ct/optcon/lqr/riccati/DARE-impl.hpp",
246 "ct_optcon/include/ct/optcon/lqr/FHDTLQR-impl.hpp",
247 "ct_optcon/include/ct/optcon/lqr/LQR-impl.hpp",
248 "ct_optcon/include/ct/optcon/nloc/NLOCBackendBase-impl.hpp",
249 "ct_optcon/include/ct/optcon/nloc/NLOCBackendST-impl.hpp",
250 "ct_optcon/include/ct/optcon/nloc/NLOCBackendMP-impl.hpp",
251 "ct_optcon/include/ct/optcon/nloc/algorithms/gnms/GNMS-impl.hpp",
252 "ct_optcon/include/ct/optcon/nloc/algorithms/ilqr/iLQR-impl.hpp",
253 "ct_optcon/include/ct/optcon/mpc/MPC-impl.h",
254 "ct_optcon/include/ct/optcon/mpc/timehorizon/MpcTimeHorizon-impl.h",
255 "ct_optcon/include/ct/optcon/mpc/policyhandler/PolicyHandler-impl.h",
256 "ct_optcon/include/ct/optcon/mpc/policyhandler/default/StateFeedbackPolicyHandler-impl.h",
257 ] + glob(["ct_core/include/external/cppad/**/*.hpp"]),
Austin Schuhf8f95022018-01-28 20:01:10 -0800258 copts = [
259 "-Wno-pointer-arith",
260 "-Wno-unused-variable",
261 "-Wno-unused-parameter",
262 ],
263 defines = [
264 "HPIPM=1",
265 ],
Brian Silvermanf2639282018-08-04 16:46:11 -0700266 includes = [
267 "ct_core/include",
268 "ct_core/include/external",
269 "ct_optcon/include",
270 ],
Austin Schuhf8f95022018-01-28 20:01:10 -0800271 restricted_to = ["//tools:k8"],
Brian Silvermanf2639282018-08-04 16:46:11 -0700272 visibility = ["//visibility:public"],
273 deps = [
274 "//third_party/boostorg/algorithm",
275 "//third_party/boostorg/config",
276 "//third_party/boostorg/odeint",
277 "//third_party/boostorg/property_tree",
Brian Silvermanf2639282018-08-04 16:46:11 -0700278 "//third_party/hpipm",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700279 "@org_tuxfamily_eigen//:eigen",
Brian Silvermanf2639282018-08-04 16:46:11 -0700280 ],
Austin Schuhf8f95022018-01-28 20:01:10 -0800281)