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
 

Protected Member Functions

void updateValue ()
 
void updateVelocity ()
 
void updateJacobian ()
 
void updateNormalAcceleration ()
 
void setDepthEstimate (double depth)
 

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_
 

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: