aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
friction-cone.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace aligator {
6
19template <typename Scalar> struct FrictionConeDataTpl;
20
21template <typename _Scalar>
23
24public:
25 using Scalar = _Scalar;
27 using Base = StageFunctionTpl<Scalar>;
28 using BaseData = typename Base::Data;
29 using Data = FrictionConeDataTpl<Scalar>;
30
31 FrictionConeResidualTpl(const int ndx, const int nu, const int k,
32 const double mu, const double epsilon)
33 : Base(ndx, nu, 2), k_(k), mu2_(mu * mu), epsilon_(epsilon) {}
34
35 void evaluate(const ConstVectorRef &, const ConstVectorRef &u,
36 const ConstVectorRef &, BaseData &data) const;
37
38 void computeJacobians(const ConstVectorRef &, const ConstVectorRef &u,
39 const ConstVectorRef &, BaseData &data) const;
40
41 shared_ptr<BaseData> createData() const {
42 return allocate_shared_eigen_aligned<Data>(this);
43 }
44
45protected:
46 int k_;
47 double mu2_;
48 double epsilon_;
49};
50
51template <typename Scalar>
53 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
54 using Base = StageFunctionDataTpl<Scalar>;
55 using Matrix23s = Eigen::Matrix<Scalar, 2, 3>;
56
58
59 FrictionConeDataTpl(const FrictionConeResidualTpl<Scalar> *model);
60};
61
62} // namespace aligator
63
64#include "aligator/modelling/centroidal/friction-cone.hxx"
65
66#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
67#include "./friction-cone.txx"
68#endif
Base definitions for ternary functions.
Main package namespace.
This residual implements the "ice cream" friction cone for a centroidal model with state .
FrictionConeDataTpl(const FrictionConeResidualTpl< Scalar > *model)
Eigen::Matrix< Scalar, 2, 3 > Matrix23s
FrictionConeDataTpl< Scalar > Data
shared_ptr< BaseData > createData() const
Instantiate a Data object.
FrictionConeResidualTpl(const int ndx, const int nu, const int k, const double mu, const double epsilon)
void computeJacobians(const ConstVectorRef &, const ConstVectorRef &u, const ConstVectorRef &, BaseData &data) const
void evaluate(const ConstVectorRef &, const ConstVectorRef &u, const ConstVectorRef &, BaseData &data) const
Base struct for function data.
Class representing ternary functions .
const int nu
Control dimension.
StageFunctionDataTpl< Scalar > Data