#include <Tasks/QPConstr.h>
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 | |
ImageConstr & | operator= (const ImageConstr &rhs) |
ImageConstr & | operator= (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 |
![]() | |
virtual | ~ConstraintFunction () override |
void | addToSolver (QPSolver &sol) |
void | addToSolver (const std::vector< rbd::MultiBody > &mbs, QPSolver &sol) |
void | removeFromSolver (QPSolver &sol) |
![]() | |
virtual | ~Constraint () |
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.
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. |
||
) |
mbs | Multi-robot system. |
robotIndex | the index of the robot the constraint is used on |
bName | name of the body containing the camera |
X_b_gaze | pose of the camera frame relative to the body containing it |
step | Time step in second. |
constrDirection | used 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 |
tasks::qp::ImageConstr::ImageConstr | ( | const ImageConstr & | rhs | ) |
Copy constructor
|
default |
Move constructor
int tasks::qp::ImageConstr::addPoint | ( | const Eigen::Vector2d & | point2d, |
const double | depthEstimate | ||
) |
addPoint
point2d | |
depthEstimate |
int tasks::qp::ImageConstr::addPoint | ( | const Eigen::Vector3d & | point3d | ) |
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
mbs | |
bodyId | |
X_b_p |
|
overridevirtual |
|
overridevirtual |
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 | ||
) |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
ImageConstr& tasks::qp::ImageConstr::operator= | ( | const ImageConstr & | rhs | ) |
Copy assignment operator
|
default |
Move assignment operator
void tasks::qp::ImageConstr::reset | ( | ) |
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
min | |
max | |
iPercent | |
sPercent | |
damping |
|
overridevirtual |
Implements tasks::qp::Constraint.
|
overridevirtual |
Implements tasks::qp::Constraint.
void tasks::qp::ImageConstr::updatePoint | ( | const int | pointId, |
const Eigen::Vector2d & | point2d | ||
) |
void tasks::qp::ImageConstr::updatePoint | ( | const int | pointId, |
const Eigen::Vector2d & | point2d, | ||
const double | depthEstimate | ||
) |
void tasks::qp::ImageConstr::updatePoint | ( | const int | pointId, |
const Eigen::Vector3d & | point3d | ||
) |