mc_rtc  2.14.0
mc_tvm::GazeFunction Struct Reference

#include <mc_tvm/GazeFunction.h>

Inheritance diagram for mc_tvm::GazeFunction:
Collaboration diagram for mc_tvm::GazeFunction:

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW GazeFunction (const mc_rbdyn::RobotFrame &frame)
 
void reset ()
 
void estimate (const Eigen::Vector2d &point, std::optional< double > depth=std::nullopt)
 
void estimate (const Eigen::Vector3d &point)
 
void target (const Eigen::Vector2d &ref) noexcept
 
const Eigen::Vector2d & target () const noexcept
 
const mc_rbdyn::RobotFrameframe () const noexcept
 
- Public Member Functions inherited from tvm::function::abstract::Function
virtual const Eigen::VectorXd & velocity () const
 
virtual const Eigen::VectorXd & normalAcceleration () const
 
virtual MatrixConstRef JDot (const Variable &x) const
 
- Public Member Functions inherited from tvm::internal::FirstOrderProvider
virtual const Eigen::VectorXd & value () const
 
virtual MatrixConstRefWithProperties jacobian (const Variable &x) const
 
bool linearIn (const Variable &x) const
 
const SpaceimageSpace () const
 
int size () const
 
int rSize () const
 
int tSize () const
 
const VariableVectorvariables () const
 
- Public Member Functions inherited from tvm::graph::internal::AbstractNode
bool isUpdateEnabled (EnumT e) const
 
virtual bool isUpdateStaticallyEnabled (int) const
 
virtual bool isUpdateCustomEnabled (int) const
 
virtual ~AbstractNode ()=default
 
void update (int i)
 
- Public Member Functions inherited from tvm::graph::internal::Inputs
virtual ~Inputs ()=default
 
void addInput (std::shared_ptr< T > source, EnumI i, Args... args)
 
void addInput (T &source, EnumI i, Args... args)
 
void removeInput (T *source)
 
void removeInput (T *source, Args... args)
 
Iterator getInput (T *source)
 
Iterator getInput (const std::shared_ptr< T > &source)
 
- Public Member Functions inherited from tvm::graph::abstract::Outputs
virtual ~Outputs ()=default
 
bool isOutputEnabled (EnumT e) const
 
bool isOutputEnabled (int i) const
 
virtual bool isOutputStaticallyEnabled (int) const
 
virtual bool isOutputCustomEnabled (int) const
 

Protected Member Functions

void updateValue ()
 
void updateVelocity ()
 
void updateJacobian ()
 
void updateNormalAcceleration ()
 
void setDepthEstimate (double depth)
 
- Protected Member Functions inherited from tvm::function::abstract::Function
 Function (int m=0)
 
 Function (Space image)
 
void resizeCache () override
 
void resizeVelocityCache ()
 
void resizeNormalAccelerationCache ()
 
void resizeJDotCache ()
 
void addVariable_ (VariablePtr v) override
 
void removeVariable_ (VariablePtr v) override
 
- Protected Member Functions inherited from tvm::internal::FirstOrderProvider
 FirstOrderProvider (int m)
 
 FirstOrderProvider (Space image)
 
void resizeValueCache ()
 
void resizeJacobianCache ()
 
void addVariable (VariablePtr v, bool linear)
 
void removeVariable (VariablePtr v)
 
void addVariable (const VariableVector &v, bool linear)
 
void splitJacobian (const MatrixConstRef &J, const std::vector< VariablePtr > &vars, bool keepProperties=false)
 
void splitJacobian (const MatrixConstRef &J, const VariableVector &vars, bool keepProperties=false)
 
void resize (int m)
 
- Protected Member Functions inherited from Node< FirstOrderProvider >
void registerUpdates (EnumT u, void(U::*fn)(), Args... args)
 
void registerUpdates (EnumT u, void(U::*fn)())
 
void addOutputDependency (EnumO o, EnumU u)
 
void addOutputDependency (std::initializer_list< EnumO > os, EnumU u)
 
void addInternalDependency (EnumU1 uDependent, EnumU2 u)
 
void addInputDependency (EnumU u, std::shared_ptr< S > source, EnumO i, Args... args)
 
void addInputDependency (EnumU u, S &source, EnumO i, Args... args)
 
void addDirectDependency (EnumO o, std::shared_ptr< S > source, EnumI i)
 
void addDirectDependency (EnumO o, S &source, EnumI i)
 

Protected Attributes

mc_rbdyn::ConstRobotFramePtr frame_
 
mc_tvm::RobotFrametvm_frame_
 
rbd::Jacobian frameJac_
 
Eigen::Vector2d point_ = Eigen::Vector2d::Zero()
 
Eigen::Vector2d pointRef_ = Eigen::Vector2d::Zero()
 
double depthEstimate_ = 1.0
 
Eigen::Matrix< double, 2, 6 > L_img_
 
Eigen::Matrix< double, 6, 1 > surfaceVelocity_
 
Eigen::Matrix< double, 1, 6 > L_Z_dot_
 
Eigen::Matrix< double, 2, 6 > L_img_dot_
 
Eigen::MatrixXd shortJacMat_
 
Eigen::MatrixXd jacMat_
 
- Protected Attributes inherited from tvm::function::abstract::Function
Eigen::VectorXd velocity_
 
Eigen::VectorXd normalAcceleration_
 
utils::internal::MapWithVariableAsKey< Eigen::MatrixXd, slice_jdotJDot_
 
- Protected Attributes inherited from tvm::internal::FirstOrderProvider
Eigen::VectorXd value_
 
utils::internal::MapWithVariableAsKey< MatrixWithProperties, slice_matrix, true > jacobian_
 
Space imageSpace_
 
VariableVector variables_
 
utils::internal::MapWithVariableAsKey< bool, slice_linearlinear_
 
- Protected Attributes inherited from tvm::graph::internal::AbstractNode
std::map< int, std::function< void(AbstractNode &)> > updates_
 
std::map< int, std::vector< int > > outputDependencies_
 
std::map< int, std::vector< int > > internalDependencies_
 
std::map< int, input_dependency_tinputDependencies_
 
std::map< int, std::pair< Outputs *, int > > directDependencies_
 
- Protected Attributes inherited from tvm::graph::abstract::Outputs
bool is_node_
 

Additional Inherited Members

- Public Types inherited from tvm::graph::internal::AbstractNode
enum  Update_
 
typedef AbstractNode UpdateParent
 
typedef AbstractNode UpdateBase
 
- Public Types inherited from tvm::graph::internal::Inputs
typedef std::unordered_map< abstract::Outputs *, std::set< int > > inputs_t
 
typedef std::unordered_set< std::shared_ptr< abstract::Outputs > > store_t
 
- Public Types inherited from tvm::graph::abstract::Outputs
enum  Output_
 
typedef Outputs OutputParent
 
typedef Outputs OutputBase
 
- Static Public Member Functions inherited from tvm::graph::internal::AbstractNode
static constexpr const char * UpdateName (Update_)
 
static constexpr bool UpdateStaticallyEnabled (EnumT)
 
- Static Public Member Functions inherited from tvm::graph::abstract::Outputs
static constexpr const char * OutputName (Output_)
 
static constexpr bool OutputStaticallyEnabled (EnumT)
 
- Static Public Attributes inherited from tvm::graph::internal::AbstractNode
static constexpr unsigned int UpdateSize
 
static constexpr auto UpdateBaseName
 
- Static Public Attributes inherited from tvm::graph::abstract::Outputs
static constexpr unsigned int OutputSize
 
static constexpr auto OutputBaseName
 
- Protected Types inherited from tvm::graph::internal::AbstractNode
typedef std::map< Outputs *, std::set< int > > input_dependency_t
 

Detailed Description

This class implements a gaze function for a given camera frame

This is the difference between a 2d point in the image and a reference as a function of the robot configuration.

This task value is to be updated by an external process (e.g. a vision algorithm)

The function does not make sense if the camera points are not provided in the control frame

Constructor & Destructor Documentation

◆ GazeFunction()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW mc_tvm::GazeFunction::GazeFunction ( const mc_rbdyn::RobotFrame frame)

Constructor

Parameters
frameCamera frame

Member Function Documentation

◆ estimate() [1/2]

void mc_tvm::GazeFunction::estimate ( const Eigen::Vector2d &  point,
std::optional< double >  depth = std::nullopt 
)

Set the current point value

Exceptions
If

◆ estimate() [2/2]

void mc_tvm::GazeFunction::estimate ( const Eigen::Vector3d &  point)

Set the current point value

Exceptions
if

◆ frame()

const mc_rbdyn::RobotFrame& mc_tvm::GazeFunction::frame ( ) const
inlinenoexcept

Access the controlled frame

◆ reset()

void mc_tvm::GazeFunction::reset ( )
inline

Reset the objective to the current position

◆ setDepthEstimate()

void mc_tvm::GazeFunction::setDepthEstimate ( double  depth)
protected

◆ target() [1/2]

const Eigen::Vector2d& mc_tvm::GazeFunction::target ( ) const
inlinenoexcept

Get the desired value

◆ target() [2/2]

void mc_tvm::GazeFunction::target ( const Eigen::Vector2d &  ref)
inlinenoexcept

Set the desired value

◆ updateJacobian()

void mc_tvm::GazeFunction::updateJacobian ( )
protected

◆ updateNormalAcceleration()

void mc_tvm::GazeFunction::updateNormalAcceleration ( )
protected

◆ updateValue()

void mc_tvm::GazeFunction::updateValue ( )
protected

◆ updateVelocity()

void mc_tvm::GazeFunction::updateVelocity ( )
protected

Member Data Documentation

◆ depthEstimate_

double mc_tvm::GazeFunction::depthEstimate_ = 1.0
protected

◆ frame_

mc_rbdyn::ConstRobotFramePtr mc_tvm::GazeFunction::frame_
protected

◆ frameJac_

rbd::Jacobian mc_tvm::GazeFunction::frameJac_
protected

◆ jacMat_

Eigen::MatrixXd mc_tvm::GazeFunction::jacMat_
protected

◆ L_img_

Eigen::Matrix<double, 2, 6> mc_tvm::GazeFunction::L_img_
protected

◆ L_img_dot_

Eigen::Matrix<double, 2, 6> mc_tvm::GazeFunction::L_img_dot_
protected

◆ L_Z_dot_

Eigen::Matrix<double, 1, 6> mc_tvm::GazeFunction::L_Z_dot_
protected

◆ point_

Eigen::Vector2d mc_tvm::GazeFunction::point_ = Eigen::Vector2d::Zero()
protected

◆ pointRef_

Eigen::Vector2d mc_tvm::GazeFunction::pointRef_ = Eigen::Vector2d::Zero()
protected

◆ shortJacMat_

Eigen::MatrixXd mc_tvm::GazeFunction::shortJacMat_
protected

◆ surfaceVelocity_

Eigen::Matrix<double, 6, 1> mc_tvm::GazeFunction::surfaceVelocity_
protected

◆ tvm_frame_

mc_tvm::RobotFrame& mc_tvm::GazeFunction::tvm_frame_
protected

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