aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
dcm-position.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "./fwd.hpp"
5
6#include <pinocchio/multibody/model.hpp>
7
8namespace aligator {
9
10template <typename Scalar> struct DCMPositionDataTpl;
11
12template <typename _Scalar>
14public:
15 using Scalar = _Scalar;
18 using BaseData = typename Base::Data;
19 using Model = pinocchio::ModelTpl<Scalar>;
20 using SE3 = pinocchio::SE3Tpl<Scalar>;
22
24
25 DCMPositionResidualTpl(const int ndx, const int nu, const Model &model,
26 const Vector3s &dcm_ref, const double alpha)
27 : Base(ndx, nu, 3)
28 , pin_model_(model)
29 , dcm_ref_(dcm_ref)
30 , alpha_(alpha) {}
31
32 const Vector3s &getReference() const { return dcm_ref_; }
33 void setReference(const Eigen::Ref<const Vector3s> &new_ref) {
34 dcm_ref_ = new_ref;
35 }
36
37 void evaluate(const ConstVectorRef &x, BaseData &data) const;
38
39 void computeJacobians(const ConstVectorRef &x, BaseData &data) const;
40
41 shared_ptr<BaseData> createData() const {
42 return std::make_shared<Data>(*this);
43 }
44
45protected:
46 Vector3s dcm_ref_;
47 double alpha_;
48};
49
50template <typename Scalar>
52 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
54 using PinData = pinocchio::DataTpl<Scalar>;
55
60
62};
63
64} // namespace aligator
65
66#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
67#include "./dcm-position.txx"
68#endif
Main package namespace.
math_types< Scalar >::Matrix3Xs fJf_
Jacobian of the error.
pinocchio::DataTpl< Scalar > PinData
PinData pin_data_
Pinocchio data object.
DCMPositionDataTpl(const DCMPositionResidualTpl< Scalar > &model)
StageFunctionDataTpl< Scalar > Base
DCMPositionResidualTpl(const int ndx, const int nu, const Model &model, const Vector3s &dcm_ref, const double alpha)
pinocchio::ModelTpl< Scalar > Model
pinocchio::SE3Tpl< Scalar > SE3
DCMPositionDataTpl< Scalar > Data
void computeJacobians(const ConstVectorRef &x, BaseData &data) const
void setReference(const Eigen::Ref< const Vector3s > &new_ref)
shared_ptr< BaseData > createData() const
Instantiate a Data object.
void evaluate(const ConstVectorRef &x, BaseData &data) const
const Vector3s & getReference() const
StageFunctionDataTpl(const int ndx, const int nu, const int nr)
const int nu
Control dimension.
StageFunctionDataTpl< Scalar > Data
Represents unary functions of the form , with no control (or next-state) arguments.
StageFunctionTpl< Scalar > Base
Typedefs for math (Eigen vectors, matrices) depending on scalar type.
Definition math.hpp:100