tasks::qp::ImageConstr Class Reference

#include <Tasks/QPConstr.h>

Inheritance diagram for tasks::qp::ImageConstr:
Collaboration diagram for tasks::qp::ImageConstr:

Public Member Functions

 ImageConstr (const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bName, const sva::PTransformd &X_b_gaze, double step, double constrDirection=1.)
 
 ImageConstr (const ImageConstr &rhs)
 
 ImageConstr (ImageConstr &&)=default
 
ImageConstroperator= (const ImageConstr &rhs)
 
ImageConstroperator= (ImageConstr &&)=default
 
void setLimits (const Eigen::Vector2d &min, const Eigen::Vector2d &max, const double iPercent, const double sPercent, const double damping, const double dampingOffsetPercent)
 setLimits More...
 
int addPoint (const Eigen::Vector2d &point2d, const double depthEstimate)
 addPoint More...
 
int addPoint (const Eigen::Vector3d &point3d)
 
void addPoint (const std::vector< rbd::MultiBody > &mbs, const std::string &bName, const sva::PTransformd &X_b_p=sva::PTransformd::Identity())
 addPoint - overload for adding a self point More...
 
void reset ()
 
void updatePoint (const int pointId, const Eigen::Vector2d &point2d)
 
void updatePoint (const int pointId, const Eigen::Vector2d &point2d, const double depthEstimate)
 
void updatePoint (const int pointId, const Eigen::Vector3d &point3d)
 
void computeComponents (const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const SolverData &data, const Eigen::Vector2d &point2d, const double depth, rbd::Jacobian &jac, const int bodyIndex, const sva::PTransformd &X_b_p, Eigen::MatrixXd &fullJacobian, Eigen::Vector2d &bCommonTerm)
 
virtual void updateNrVars (const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
 
virtual void update (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
 
virtual std::string nameInEq () const override
 
virtual std::string descInEq (const std::vector< rbd::MultiBody > &mbs, int line) override
 
virtual int nrInEq () const override
 
virtual int maxInEq () const override
 
virtual const Eigen::MatrixXd & AInEq () const override
 
virtual const Eigen::VectorXd & bInEq () const override
 
- Public Member Functions inherited from tasks::qp::ConstraintFunction< Inequality >
virtual ~ConstraintFunction () override
 
void addToSolver (QPSolver &sol)
 
void addToSolver (const std::vector< rbd::MultiBody > &mbs, QPSolver &sol)
 
void removeFromSolver (QPSolver &sol)
 
- Public Member Functions inherited from tasks::qp::Constraint
virtual ~Constraint ()
 

Detailed Description

Generalized Image Point Constraint This can be used as either a Field of View constraint or an Occlusion avoidance constraint. Both with damping Note that the point must start within the feasible boundary.

Constructor & Destructor Documentation

◆ ImageConstr() [1/3]

tasks::qp::ImageConstr::ImageConstr ( const std::vector< rbd::MultiBody > &  mbs,
int  robotIndex,
const std::string &  bName,
const sva::PTransformd &  X_b_gaze,
double  step,
double  constrDirection = 1. 
)
Parameters
mbsMulti-robot system.
robotIndexthe index of the robot the constraint is used on
bNamename of the body containing the camera
X_b_gazepose of the camera frame relative to the body containing it
stepTime step in second.
constrDirectionused to switch between a field of view constraint (point inside the image limits) and occlusion avoidance (point outside the limits) 1 by default corresponds to FoV, set it to -1 for occlusion avoidance

◆ ImageConstr() [2/3]

tasks::qp::ImageConstr::ImageConstr ( const ImageConstr rhs)

Copy constructor

◆ ImageConstr() [3/3]

tasks::qp::ImageConstr::ImageConstr ( ImageConstr &&  )
default

Move constructor

Member Function Documentation

◆ addPoint() [1/3]

int tasks::qp::ImageConstr::addPoint ( const Eigen::Vector2d &  point2d,
const double  depthEstimate 
)

addPoint

Parameters
point2d
depthEstimate
Returns

◆ addPoint() [2/3]

int tasks::qp::ImageConstr::addPoint ( const Eigen::Vector3d &  point3d)

◆ addPoint() [3/3]

void tasks::qp::ImageConstr::addPoint ( const std::vector< rbd::MultiBody > &  mbs,
const std::string &  bName,
const sva::PTransformd &  X_b_p = sva::PTransformd::Identity() 
)

addPoint - overload for adding a self point

Parameters
mbs
bodyId
X_b_p

◆ AInEq()

virtual const Eigen::MatrixXd& tasks::qp::ImageConstr::AInEq ( ) const
overridevirtual

◆ bInEq()

virtual const Eigen::VectorXd& tasks::qp::ImageConstr::bInEq ( ) const
overridevirtual

◆ computeComponents()

void tasks::qp::ImageConstr::computeComponents ( const rbd::MultiBody &  mb,
const rbd::MultiBodyConfig &  mbc,
const SolverData data,
const Eigen::Vector2d &  point2d,
const double  depth,
rbd::Jacobian &  jac,
const int  bodyIndex,
const sva::PTransformd &  X_b_p,
Eigen::MatrixXd &  fullJacobian,
Eigen::Vector2d &  bCommonTerm 
)

◆ descInEq()

virtual std::string tasks::qp::ImageConstr::descInEq ( const std::vector< rbd::MultiBody > &  mbs,
int  line 
)
overridevirtual

◆ maxInEq()

virtual int tasks::qp::ImageConstr::maxInEq ( ) const
overridevirtual

◆ nameInEq()

virtual std::string tasks::qp::ImageConstr::nameInEq ( ) const
overridevirtual

◆ nrInEq()

virtual int tasks::qp::ImageConstr::nrInEq ( ) const
overridevirtual

◆ operator=() [1/2]

ImageConstr& tasks::qp::ImageConstr::operator= ( const ImageConstr rhs)

Copy assignment operator

◆ operator=() [2/2]

ImageConstr& tasks::qp::ImageConstr::operator= ( ImageConstr &&  )
default

Move assignment operator

◆ reset()

void tasks::qp::ImageConstr::reset ( )

◆ setLimits()

void tasks::qp::ImageConstr::setLimits ( const Eigen::Vector2d &  min,
const Eigen::Vector2d &  max,
const double  iPercent,
const double  sPercent,
const double  damping,
const double  dampingOffsetPercent 
)

setLimits

Parameters
min
max
iPercent
sPercent
damping

◆ update()

virtual void tasks::qp::ImageConstr::update ( const std::vector< rbd::MultiBody > &  mbs,
const std::vector< rbd::MultiBodyConfig > &  mbcs,
const SolverData data 
)
overridevirtual

Implements tasks::qp::Constraint.

◆ updateNrVars()

virtual void tasks::qp::ImageConstr::updateNrVars ( const std::vector< rbd::MultiBody > &  mbs,
const SolverData data 
)
overridevirtual

Implements tasks::qp::Constraint.

◆ updatePoint() [1/3]

void tasks::qp::ImageConstr::updatePoint ( const int  pointId,
const Eigen::Vector2d &  point2d 
)

◆ updatePoint() [2/3]

void tasks::qp::ImageConstr::updatePoint ( const int  pointId,
const Eigen::Vector2d &  point2d,
const double  depthEstimate 
)

◆ updatePoint() [3/3]

void tasks::qp::ImageConstr::updatePoint ( const int  pointId,
const Eigen::Vector3d &  point3d 
)

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