Go to the documentation of this file.
26 #ifndef TESSERACT_COLLISION_TYPES_H
27 #define TESSERACT_COLLISION_TYPES_H
32 #include <Eigen/Geometry>
37 #include <unordered_map>
84 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
88 double distance{ std::numeric_limits<double>::max() };
98 std::array<Eigen::Vector3d, 2>
nearest_points{ Eigen::Vector3d::Zero(), Eigen::Vector3d::Zero() };
102 std::array<Eigen::Isometry3d, 2>
transform{ Eigen::Isometry3d::Identity(), Eigen::Isometry3d::Identity() };
109 Eigen::Vector3d
normal{ Eigen::Vector3d::Zero() };
120 std::array<Eigen::Isometry3d, 2>
cc_transform{ Eigen::Isometry3d::Identity(), Eigen::Isometry3d::Identity() };
158 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
159 using KeyType = std::pair<std::string, std::string>;
164 using PairType =
typename std::pair<const KeyType, MappedType>;
207 long sub_segment_index,
208 long sub_segment_last_index,
209 const std::vector<std::string>& active_link_names,
237 std::size_t
size()
const;
316 std::shared_ptr<const ContactResultValidator>
is_valid;
330 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
335 std::shared_ptr<const tesseract_common::ContactAllowedValidator>
validator,
340 const std::vector<std::string>*
active =
nullptr;
346 std::shared_ptr<const tesseract_common::ContactAllowedValidator>
validator;
500 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
507 using UPtr = std::unique_ptr<ContactTrajectorySubstepResults>;
527 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
532 const Eigen::VectorXd& start_state,
533 const Eigen::VectorXd& end_state,
537 using UPtr = std::unique_ptr<ContactTrajectoryStepResults>;
539 void resize(
int num_substeps);
551 std::vector<ContactTrajectorySubstepResults>
substeps;
566 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
573 using UPtr = std::unique_ptr<ContactTrajectoryResults>;
575 void resize(
int num_steps);
591 std::vector<ContactTrajectoryStepResults>
steps;
602 #endif // TESSERACT_COLLISION_TYPES_H
bool operator==(const CollisionCheckConfig &rhs) const
@ ASSIGN
Replace the current ContactAllowedValidator with one generated from the ACM provided.
std::vector< T, Eigen::aligned_allocator< T > > AlignedVector
@ OR
New ContactAllowedValidator combines the contact manager fn and the ACM generated fn with and OR.
ACMOverrideType
Identifies how the provided AllowedCollisionMatrix should be applied relative to the isAllowedFn in t...
CollisionCheckConfig(ContactRequest request=ContactRequest(), CollisionEvaluatorType type=CollisionEvaluatorType::DISCRETE, double longest_valid_segment_length=0.005, CollisionCheckProgramType check_program_mode=CollisionCheckProgramType::ALL)
@ CONTINUOUS
Continuous contact manager using only steps specified.
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_common::AlignedVector< ContactResult > ContactResultVector
@ INTERMEDIATE_ONLY
Check only the intermediate states.
CollisionEvaluatorType type
Specifies the type of collision check to be performed. Default: DISCRETE.
CollisionCheckProgramType check_program_mode
Secifies the mode used when collision checking program/trajectory. Default: ALL.
@ LVS_CONTINUOUS
Continuous contact manager interpolating using longest valid segment.
@ START_ONLY
Check only the start state.
@ END_ONLY
Check only the end state.
tesseract_common::CollisionMarginPairData CollisionMarginPairData
CollisionMarginPairOverrideType
ContactRequest contact_request
ContactRequest that will be used for this check. Default test type: ALL.
This is a high level structure containing common information that collision checking utilities need....
std::shared_ptr< tesseract_geometry::Geometry > CollisionShapePtr
std::vector< CollisionShapeConstPtr > CollisionShapesConst
std::map< Key, Value, std::less< Key >, Eigen::aligned_allocator< std::pair< const Key, Value > >> AlignedMap
CollisionEvaluatorType
High level descriptor used in planners and utilities to specify what kind of collision check is desir...
@ ALL_EXCEPT_END
Check all states except the end state.
CollisionCheckProgramType
The mode used to check program.
std::shared_ptr< const tesseract_geometry::Geometry > CollisionShapeConstPtr
@ LVS_DISCRETE
Discrete contact manager interpolating using longest valid segment.
@ DISCRETE
Discrete contact manager using only steps specified.
@ NONE
Do not apply AllowedCollisionMatrix.
static const std::vector< std::string > ContactTestTypeStrings
bool operator!=(const CollisionCheckConfig &rhs) const
@ AND
New ContactAllowedValidator combines the contact manager fn and the ACM generated fn with and AND.
tesseract_common::CollisionMarginData CollisionMarginData
double longest_valid_segment_length
Longest valid segment to use if type supports lvs. Default: 0.005.
@ ALL_EXCEPT_START
Check all states except the start state.