Base class for representing a kinematic constraint. More...
#include <kinematic_constraint.h>
Public Types | |
enum | ConstraintType { UNKNOWN_CONSTRAINT, JOINT_CONSTRAINT, POSITION_CONSTRAINT, ORIENTATION_CONSTRAINT, VISIBILITY_CONSTRAINT } |
Enum for representing a constraint. More... | |
Public Member Functions | |
virtual void | clear ()=0 |
Clear the stored constraint. More... | |
virtual ConstraintEvaluationResult | decide (const robot_state::RobotState &state, bool verbose=false) const =0 |
Decide whether the constraint is satisfied in the indicated state. More... | |
virtual bool | enabled () const =0 |
This function returns true if this constraint is configured and able to decide whether states do meet the constraint or not. If this function returns false it means that decide() will always return true – there is no constraint to be checked. More... | |
virtual bool | equal (const KinematicConstraint &other, double margin) const =0 |
Check if two constraints are the same. This means that the types are the same, the subject of the constraint is the same, and all values associated with the constraint are within a margin. The other constraint must also be enabled. More... | |
double | getConstraintWeight () const |
The weight of a constraint is a multiplicative factor associated to the distance computed by the decide() function. More... | |
const robot_model::RobotModelConstPtr & | getRobotModel () const |
ConstraintType | getType () const |
Get the type of constraint. More... | |
KinematicConstraint (const robot_model::RobotModelConstPtr &model) | |
Constructor. More... | |
virtual void | print (std::ostream &=std::cout) const |
Print the constraint data. More... | |
virtual | ~KinematicConstraint () |
Protected Attributes | |
double | constraint_weight_ |
The weight of a constraint is a multiplicative factor associated to the distance computed by the decide() function. More... | |
robot_model::RobotModelConstPtr | robot_model_ |
The kinematic model associated with this constraint. More... | |
ConstraintType | type_ |
The type of the constraint. More... | |
Base class for representing a kinematic constraint.
Definition at line 78 of file kinematic_constraint.h.
Enum for representing a constraint.
Enumerator | |
---|---|
UNKNOWN_CONSTRAINT | |
JOINT_CONSTRAINT | |
POSITION_CONSTRAINT | |
ORIENTATION_CONSTRAINT | |
VISIBILITY_CONSTRAINT |
Definition at line 82 of file kinematic_constraint.h.
kinematic_constraints::KinematicConstraint::KinematicConstraint | ( | const robot_model::RobotModelConstPtr & | model | ) |
Constructor.
[in] | model | The kinematic model used for constraint evaluation |
Definition at line 61 of file kinematic_constraint.cpp.
|
virtualdefault |
|
pure virtual |
Clear the stored constraint.
Implemented in kinematic_constraints::VisibilityConstraint, kinematic_constraints::PositionConstraint, kinematic_constraints::OrientationConstraint, and kinematic_constraints::JointConstraint.
|
pure virtual |
Decide whether the constraint is satisfied in the indicated state.
[in] | state | The kinematic state used for evaluation |
[in] | verbose | Whether or not to print output |
Implemented in kinematic_constraints::VisibilityConstraint, kinematic_constraints::PositionConstraint, kinematic_constraints::OrientationConstraint, and kinematic_constraints::JointConstraint.
|
pure virtual |
This function returns true if this constraint is configured and able to decide whether states do meet the constraint or not. If this function returns false it means that decide() will always return true – there is no constraint to be checked.
Implemented in kinematic_constraints::VisibilityConstraint, kinematic_constraints::PositionConstraint, kinematic_constraints::OrientationConstraint, and kinematic_constraints::JointConstraint.
|
pure virtual |
Check if two constraints are the same. This means that the types are the same, the subject of the constraint is the same, and all values associated with the constraint are within a margin. The other constraint must also be enabled.
[in] | other | The other constraint to test |
[in] | margin | The margin to apply to all values associated with constraint |
Implemented in kinematic_constraints::VisibilityConstraint, kinematic_constraints::PositionConstraint, kinematic_constraints::OrientationConstraint, and kinematic_constraints::JointConstraint.
|
inline |
The weight of a constraint is a multiplicative factor associated to the distance computed by the decide() function.
Definition at line 159 of file kinematic_constraint.h.
|
inline |
Definition at line 170 of file kinematic_constraint.h.
|
inline |
Get the type of constraint.
Definition at line 138 of file kinematic_constraint.h.
|
inlinevirtual |
Print the constraint data.
[in] | out | The file descriptor for printing |
Reimplemented in kinematic_constraints::VisibilityConstraint, kinematic_constraints::PositionConstraint, kinematic_constraints::OrientationConstraint, and kinematic_constraints::JointConstraint.
Definition at line 148 of file kinematic_constraint.h.
|
protected |
The weight of a constraint is a multiplicative factor associated to the distance computed by the decide() function.
Definition at line 178 of file kinematic_constraint.h.
|
protected |
The kinematic model associated with this constraint.
Definition at line 177 of file kinematic_constraint.h.
|
protected |
The type of the constraint.
Definition at line 176 of file kinematic_constraint.h.