aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
explicit-dynamics-direct-sum.hpp
Go to the documentation of this file.
1
3#pragma once
4
7
8namespace aligator {
9
15template <typename _Scalar>
17 using Scalar = _Scalar;
23
24 struct Data;
25
28
29 void forward(const ConstVectorRef &x, const ConstVectorRef &u,
30 BaseData &data) const override;
31
32 void dForward(const ConstVectorRef &x, const ConstVectorRef &u,
33 BaseData &data) const override;
34
35 shared_ptr<DynamicsDataTpl<Scalar>> createData() const override {
36 return std::make_shared<Data>(*this);
37 }
38
40
41private:
44 CartesianProduct product_space_;
45};
46
47template <typename Scalar>
52
53template <typename Scalar>
58
59} // namespace aligator
60
61#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
62#include "./explicit-dynamics-direct-sum.txx"
63#endif
Main package namespace.
auto directSum(xyz::polymorphic< CostAbstractTpl< Scalar > > const &c1, xyz::polymorphic< CostAbstractTpl< Scalar > > const &c2)
The cartesian product of two or more manifolds.
Data(DirectSumExplicitDynamicsTpl const &model)
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Evaluate the forward discrete dynamics.
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Compute the Jacobians of the forward dynamics.
shared_ptr< DynamicsDataTpl< Scalar > > createData() const override
aligator::CartesianProductTpl< Scalar > CartesianProduct
DirectSumExplicitDynamicsTpl(xyz::polymorphic< Base > f, xyz::polymorphic< Base > g)
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Explicit forward dynamics model .
ExplicitDynamicsModelTpl(const ManifoldPtr &space, const int nu)
Constructor requires providing the next state's manifold.
Base class for manifolds, to use in cost funcs, solvers...