Exotica
|
Avoids pointing end-effector at a given spherical object. More...
#include <avoid_look_at_sphere.h>
Public Member Functions | |
void | Instantiate (const AvoidLookAtSphereInitializer &init) override |
void | Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi) override |
void | Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian) 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 q, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian, HessianRef hessian) |
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< TaskVectorEntry > | GetLieGroupIndices () |
std::vector< KinematicFrameRequest > | GetFrames () 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< Initializer > | GetAllTemplates () const =0 |
Public Member Functions inherited from exotica::Instantiable< AvoidLookAtSphereInitializer > | |
void | InstantiateInternal (const Initializer &init) override |
Initializer | GetInitializerTemplate () override |
std::vector< Initializer > | GetAllTemplates () const override |
const AvoidLookAtSphereInitializer & | GetParameters () const |
Private Member Functions | |
void | UpdateAsCostWithoutJacobian (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi) |
void | UpdateAsInequalityConstraintWithoutJacobian (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi) |
void | UpdateAsCostWithJacobian (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian) |
void | UpdateAsInequalityConstraintWithJacobian (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian) |
void | PublishObjectsAsMarkerArray () |
Private Attributes | |
void(AvoidLookAtSphere::* | UpdateTaskMapWithoutJacobian )(Eigen::VectorXdRefConst, Eigen::VectorXdRef) |
void(AvoidLookAtSphere::* | UpdateTaskMapWithJacobian )(Eigen::VectorXdRefConst, Eigen::VectorXdRef, Eigen::MatrixXdRef) |
int | n_objects_ |
Number of spherical objects. More... | |
Eigen::VectorXd | diameter_ |
The diameter of each object. More... | |
Eigen::VectorXd | radii_squared_ |
The square of each object radii. More... | |
ros::Publisher | pub_markers_ |
publish marker for RViz More... | |
Additional Inherited Members | |
Public Attributes inherited from exotica::TaskMap | |
std::vector< KinematicSolution > | kinematics = 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< KinematicFrameRequest > | frames_ |
ScenePtr | scene_ = nullptr |
Protected Attributes inherited from exotica::Instantiable< AvoidLookAtSphereInitializer > | |
AvoidLookAtSphereInitializer | parameters_ |
Avoids pointing end-effector at a given spherical object.
This task map avoids pointing the end-effector a number of given spherical objects. AvoidLookAtSphere can be used as either a cost term or an inequality constraint. Each spherical object in the scene is defined by a position and radius . The position and radii of each object must be given.
When using AvoidLookAtSphere as a cost term, the forward mapping defining the task map is expressed by
for all where is the number of objects, is the orthogonal distance between the object center and the end-effector approach vector.
When using AvoidLookAtSphere as an inequality constraint, the forward mapping defining the task map is expressed by
for all .
|
overridevirtual |
Reimplemented from exotica::Instantiable< AvoidLookAtSphereInitializer >.
|
private |
|
overridevirtual |
Implements exotica::TaskMap.
|
overridevirtual |
Implements exotica::TaskMap.
|
overridevirtual |
Reimplemented from exotica::TaskMap.
|
private |
|
private |
|
private |
|
private |
|
private |
The diameter of each object.
|
private |
Number of spherical objects.
|
private |
publish marker for RViz
|
private |
The square of each object radii.
|
private |
|
private |