aligator 0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
aligator::FrameEqualityResidualTpl< _Scalar > Struct Template Reference

Residual enforcing equality between two Pinocchio frames. More...

#include <aligator/modelling/multibody/frame-equality.hpp>

Inheritance diagram for aligator::FrameEqualityResidualTpl< _Scalar >:
[legend]
Collaboration diagram for aligator::FrameEqualityResidualTpl< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
 
using BaseData = StageFunctionDataTpl<Scalar>
 
using Model = pinocchio::ModelTpl<Scalar>
 
using PolyManifold = xyz::polymorphic<ManifoldAbstractTpl<Scalar>>
 
using SE3 = pinocchio::SE3Tpl<Scalar>
 
using Data = FrameEqualityDataTpl<Scalar>
 
- Public Types inherited from aligator::UnaryFunctionTpl< _Scalar >
using Scalar = _Scalar
 
using Base = StageFunctionTpl<Scalar>
 
using Data = StageFunctionDataTpl<Scalar>
 
- Public Types inherited from aligator::StageFunctionTpl< _Scalar >
using Scalar = _Scalar
 
using Data = StageFunctionDataTpl<Scalar>
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 ALIGATOR_UNARY_FUNCTION_INTERFACE (Scalar)
 
 FrameEqualityResidualTpl (const int ndx, const int nu, const Model &model, const pinocchio::FrameIndex frame_id1, const pinocchio::FrameIndex frame_id2, const SE3 &f1Mf2_ref=SE3::Identity())
 
pinocchio::FrameIndex getFrame1Id () const
 
void setFrame1Id (const std::size_t id)
 
pinocchio::FrameIndex getFrame2Id () const
 
void setFrame2Id (const std::size_t id)
 
const SE3getReference () const
 
void setReference (const SE3 &f1Mf2_ref)
 
void evaluate (const ConstVectorRef &x, BaseData &data) const
 
void computeJacobians (const ConstVectorRef &x, BaseData &data) const
 
shared_ptr< BaseDatacreateData () const
 Instantiate a Data object.
 
- Public Member Functions inherited from aligator::UnaryFunctionTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
virtual void computeVectorHessianProducts (const ConstVectorRef &, const ConstVectorRef &, Data &) const
 
void evaluate (const ConstVectorRef &x, const ConstVectorRef &, Data &data) const override
 Evaluate the function.
 
void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &, Data &data) const override
 Compute Jacobians of this function.
 
void computeVectorHessianProducts (const ConstVectorRef &x, const ConstVectorRef &, const ConstVectorRef &lbda, Data &data) const override
 Compute the vector-hessian products of this function.
 
- Public Member Functions inherited from aligator::StageFunctionTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 StageFunctionTpl (const int ndx, const int nu, const int nr)
 
virtual ~StageFunctionTpl ()=default
 

Public Attributes

Model pin_model_
 
- Public Attributes inherited from aligator::StageFunctionTpl< _Scalar >
const int ndx1
 Current state dimension.
 
const int nu
 Control dimension.
 
const int nr
 Function codimension.
 

Protected Attributes

pinocchio::FrameIndex pin_frame_id1_
 
pinocchio::FrameIndex pin_frame_id2_
 
SE3 f1MR_ref_
 

Detailed Description

template<typename _Scalar>
struct aligator::FrameEqualityResidualTpl< _Scalar >

Residual enforcing equality between two Pinocchio frames.

Computes the 6D log error between frame frame_id1 and frame frame_id2. The residual is:

r = log6( f1^{-1} * f1Mf2_ref * f2 )

where:

  • f1 and f2 are the world placements of the two frames,
  • f1Mf2_ref is the desired relative transform (reference).

All computations (residual and Jacobians) are expressed in an R frame attached to f1 (f1 -> f1Mf2_ref -> R -> error -> f2)

Definition at line 31 of file frame-equality.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::Scalar = _Scalar

Definition at line 34 of file frame-equality.hpp.

◆ BaseData

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::BaseData = StageFunctionDataTpl<Scalar>

Definition at line 37 of file frame-equality.hpp.

◆ Model

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::Model = pinocchio::ModelTpl<Scalar>

Definition at line 38 of file frame-equality.hpp.

◆ PolyManifold

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::PolyManifold = xyz::polymorphic<ManifoldAbstractTpl<Scalar>>

Definition at line 39 of file frame-equality.hpp.

◆ SE3

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::SE3 = pinocchio::SE3Tpl<Scalar>

Definition at line 40 of file frame-equality.hpp.

◆ Data

template<typename _Scalar>
using aligator::FrameEqualityResidualTpl< _Scalar >::Data = FrameEqualityDataTpl<Scalar>

Definition at line 41 of file frame-equality.hpp.

Constructor & Destructor Documentation

◆ FrameEqualityResidualTpl()

template<typename _Scalar>
aligator::FrameEqualityResidualTpl< _Scalar >::FrameEqualityResidualTpl ( const int ndx,
const int nu,
const Model & model,
const pinocchio::FrameIndex frame_id1,
const pinocchio::FrameIndex frame_id2,
const SE3 & f1Mf2_ref = SE3::Identity() )
inline

Definition at line 45 of file frame-equality.hpp.

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename _Scalar>
aligator::FrameEqualityResidualTpl< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ ALIGATOR_UNARY_FUNCTION_INTERFACE()

template<typename _Scalar>
aligator::FrameEqualityResidualTpl< _Scalar >::ALIGATOR_UNARY_FUNCTION_INTERFACE ( Scalar )

◆ getFrame1Id()

template<typename _Scalar>
pinocchio::FrameIndex aligator::FrameEqualityResidualTpl< _Scalar >::getFrame1Id ( ) const
inline

Definition at line 56 of file frame-equality.hpp.

◆ setFrame1Id()

template<typename _Scalar>
void aligator::FrameEqualityResidualTpl< _Scalar >::setFrame1Id ( const std::size_t id)
inline

Definition at line 57 of file frame-equality.hpp.

◆ getFrame2Id()

template<typename _Scalar>
pinocchio::FrameIndex aligator::FrameEqualityResidualTpl< _Scalar >::getFrame2Id ( ) const
inline

Definition at line 58 of file frame-equality.hpp.

◆ setFrame2Id()

template<typename _Scalar>
void aligator::FrameEqualityResidualTpl< _Scalar >::setFrame2Id ( const std::size_t id)
inline

Definition at line 59 of file frame-equality.hpp.

◆ getReference()

template<typename _Scalar>
const SE3 & aligator::FrameEqualityResidualTpl< _Scalar >::getReference ( ) const
inline

Definition at line 61 of file frame-equality.hpp.

◆ setReference()

template<typename _Scalar>
void aligator::FrameEqualityResidualTpl< _Scalar >::setReference ( const SE3 & f1Mf2_ref)
inline

Definition at line 62 of file frame-equality.hpp.

◆ evaluate()

template<typename _Scalar>
void aligator::FrameEqualityResidualTpl< _Scalar >::evaluate ( const ConstVectorRef & x,
BaseData & data ) const
virtual

◆ computeJacobians()

template<typename _Scalar>
void aligator::FrameEqualityResidualTpl< _Scalar >::computeJacobians ( const ConstVectorRef & x,
BaseData & data ) const
virtual

◆ createData()

template<typename _Scalar>
shared_ptr< BaseData > aligator::FrameEqualityResidualTpl< _Scalar >::createData ( ) const
inlinevirtual

Instantiate a Data object.

Reimplemented from aligator::StageFunctionTpl< _Scalar >.

Definition at line 68 of file frame-equality.hpp.

Member Data Documentation

◆ pin_model_

template<typename _Scalar>
Model aligator::FrameEqualityResidualTpl< _Scalar >::pin_model_

Definition at line 43 of file frame-equality.hpp.

◆ pin_frame_id1_

template<typename _Scalar>
pinocchio::FrameIndex aligator::FrameEqualityResidualTpl< _Scalar >::pin_frame_id1_
protected

Definition at line 73 of file frame-equality.hpp.

◆ pin_frame_id2_

template<typename _Scalar>
pinocchio::FrameIndex aligator::FrameEqualityResidualTpl< _Scalar >::pin_frame_id2_
protected

Definition at line 74 of file frame-equality.hpp.

◆ f1MR_ref_

template<typename _Scalar>
SE3 aligator::FrameEqualityResidualTpl< _Scalar >::f1MR_ref_
protected

Definition at line 75 of file frame-equality.hpp.


The documentation for this struct was generated from the following file: