Exotica
Public Member Functions | Private Member Functions | Private Attributes | List of all members
exotica::PointToPlane Class Reference

PointToPlane TaskMap: Penalises the z-distance between two frames - or the distance of a point (represented by the Link frame) spanned by the normal represented through the z-axis of a second frame (represented by the Base frame). More...

#include <point_to_plane.h>

Inheritance diagram for exotica::PointToPlane:
Inheritance graph
Collaboration diagram for exotica::PointToPlane:
Collaboration graph

Public Member Functions

void Instantiate (const PointToPlaneInitializer &init) override
 
void Update (Eigen::VectorXdRefConst q, Eigen::VectorXdRef phi) override
 
void Update (Eigen::VectorXdRefConst q, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian) override
 
void Update (Eigen::VectorXdRefConst q, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian, HessianRef hessian) override
 
int TaskSpaceDim () override
 
- Public Member Functions inherited from exotica::TaskMap
virtual void InstantiateBase (const Initializer &init)
 
virtual void AssignScene (ScenePtr scene)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi, Eigen::MatrixXdRef dphi_dx, Eigen::MatrixXdRef dphi_du)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi, Eigen::MatrixXdRef dphi_dx, Eigen::MatrixXdRef dphi_du, HessianRef ddphi_ddx, HessianRef ddphi_ddu, HessianRef ddphi_dxdu)
 
virtual int TaskSpaceJacobianDim ()
 
virtual void PreUpdate ()
 
virtual std::vector< TaskVectorEntryGetLieGroupIndices ()
 
std::vector< KinematicFrameRequestGetFrames () const
 
- Public Member Functions inherited from exotica::Object
 Object ()
 
virtual ~Object ()
 
virtual std::string type () const
 Type Information wrapper: must be virtual so that it is polymorphic... More...
 
std::string GetObjectName ()
 
void InstantiateObject (const Initializer &init)
 
virtual std::string Print (const std::string &prepend) const
 
- Public Member Functions inherited from exotica::InstantiableBase
 InstantiableBase ()=default
 
virtual ~InstantiableBase ()=default
 
virtual std::vector< InitializerGetAllTemplates () const =0
 
- Public Member Functions inherited from exotica::Instantiable< PointToPlaneInitializer >
void InstantiateInternal (const Initializer &init) override
 
Initializer GetInitializerTemplate () override
 
std::vector< InitializerGetAllTemplates () const override
 
const PointToPlaneInitializer & GetParameters () const
 

Private Member Functions

void PublishDebug ()
 

Private Attributes

ros::Publisher debug_pub_
 

Additional Inherited Members

- Public Attributes inherited from exotica::TaskMap
std::vector< KinematicSolutionkinematics = std::vector<KinematicSolution>(1)
 
int id = -1
 
int start = -1
 
int length = -1
 
int start_jacobian = -1
 
int length_jacobian = -1
 
bool is_used = false
 
- Public Attributes inherited from exotica::Object
std::string ns_
 
std::string object_name_
 
bool debug_
 
- Protected Attributes inherited from exotica::TaskMap
std::vector< KinematicFrameRequestframes_
 
ScenePtr scene_ = nullptr
 
- Protected Attributes inherited from exotica::Instantiable< PointToPlaneInitializer >
PointToPlaneInitializer parameters_
 

Detailed Description

PointToPlane TaskMap: Penalises the z-distance between two frames - or the distance of a point (represented by the Link frame) spanned by the normal represented through the z-axis of a second frame (represented by the Base frame).

This TaskMap returns the signed distance to the plane by default. In an unconstrained optimisation this would correspond to an equality constraint and force the distance to the plane to be minimised. In order to use the TaskMap as an inequality constraint, the parameter 'PositiveOnly' can be set to true. In this case, the TaskMap applies a ReLU-like activation ($x = \max(0, x)$) to the output.

Member Function Documentation

◆ Instantiate()

void exotica::PointToPlane::Instantiate ( const PointToPlaneInitializer &  init)
overridevirtual

◆ PublishDebug()

void exotica::PointToPlane::PublishDebug ( )
private

◆ TaskSpaceDim()

int exotica::PointToPlane::TaskSpaceDim ( )
overridevirtual

Implements exotica::TaskMap.

◆ Update() [1/3]

void exotica::PointToPlane::Update ( Eigen::VectorXdRefConst  q,
Eigen::VectorXdRef  phi 
)
overridevirtual

Implements exotica::TaskMap.

◆ Update() [2/3]

void exotica::PointToPlane::Update ( Eigen::VectorXdRefConst  q,
Eigen::VectorXdRef  phi,
Eigen::MatrixXdRef  jacobian 
)
overridevirtual

Reimplemented from exotica::TaskMap.

◆ Update() [3/3]

void exotica::PointToPlane::Update ( Eigen::VectorXdRefConst  q,
Eigen::VectorXdRef  phi,
Eigen::MatrixXdRef  jacobian,
HessianRef  hessian 
)
overridevirtual

Reimplemented from exotica::TaskMap.

Member Data Documentation

◆ debug_pub_

ros::Publisher exotica::PointToPlane::debug_pub_
private

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