aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
frame-velocity.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "./fwd.hpp"
5
6#include <pinocchio/multibody/model.hpp>
7#include <pinocchio/multibody/data.hpp>
8#include <pinocchio/multibody/frame.hpp>
9
10namespace aligator {
11
12template <typename Scalar> struct FrameVelocityDataTpl;
13
14template <typename _Scalar>
16public:
17 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
18 using Scalar = _Scalar;
21 using BaseData = typename Base::Data;
22 using Model = pinocchio::ModelTpl<Scalar>;
23 using ManifoldPtr = shared_ptr<ManifoldAbstractTpl<Scalar>>;
24 using SE3 = pinocchio::SE3Tpl<Scalar>;
25 using Motion = pinocchio::MotionTpl<Scalar>;
26 using Data = FrameVelocityDataTpl<Scalar>;
27
28 shared_ptr<Model> pin_model_;
29
30 FrameVelocityResidualTpl(const int ndx, const int nu,
31 const shared_ptr<Model> &model,
32 const Motion &velocity,
33 const pinocchio::FrameIndex id,
34 const pinocchio::ReferenceFrame type);
35
36 const Motion &getReference() const { return vref_; }
37 void setReference(const Motion &v_new) { vref_ = v_new; }
38
39 void evaluate(const ConstVectorRef &x, BaseData &data) const;
40 void computeJacobians(const ConstVectorRef &x, BaseData &data) const;
41
42 shared_ptr<BaseData> createData() const {
43 return allocate_shared_eigen_aligned<Data>(*this);
44 }
45
46protected:
48 pinocchio::ReferenceFrame type_;
49};
50
51template <typename Scalar>
53 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
54 using Base = StageFunctionDataTpl<Scalar>;
55 using Motion = pinocchio::MotionTpl<Scalar>;
56
58 pinocchio::DataTpl<Scalar> pin_data_;
59
60 FrameVelocityDataTpl(const FrameVelocityResidualTpl<Scalar> &model);
61};
62
63} // namespace aligator
64
65#include "aligator/modelling/multibody/frame-velocity.hxx"
66
67#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
68#include "./frame-velocity.txx"
69#endif
Main package namespace.
pinocchio::MotionTpl< Scalar > Motion
pinocchio::DataTpl< Scalar > pin_data_
Pinocchio data object.
FrameVelocityDataTpl(const FrameVelocityResidualTpl< Scalar > &model)
shared_ptr< BaseData > createData() const
Instantiate a Data object.
pinocchio::SE3Tpl< Scalar > SE3
void evaluate(const ConstVectorRef &x, BaseData &data) const
shared_ptr< ManifoldAbstractTpl< Scalar > > ManifoldPtr
const Motion & getReference() const
void setReference(const Motion &v_new)
pinocchio::MotionTpl< Scalar > Motion
FrameVelocityResidualTpl(const int ndx, const int nu, const shared_ptr< Model > &model, const Motion &velocity, const pinocchio::FrameIndex id, const pinocchio::ReferenceFrame type)
pinocchio::ModelTpl< Scalar > Model
void computeJacobians(const ConstVectorRef &x, BaseData &data) const
pinocchio::ReferenceFrame type_
FrameVelocityDataTpl< Scalar > Data
Base struct for function data.
const int nu
Control dimension.
StageFunctionDataTpl< Scalar > Data
Represents unary functions of the form , with no control (or next-state) arguments.