26#ifndef TESSERACT_COLLISION_TYPES_H
27#define TESSERACT_COLLISION_TYPES_H
32#include <Eigen/Geometry>
37#include <unordered_map>
86 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
89 double distance{ std::numeric_limits<double>::max() };
99 std::array<Eigen::Vector3d, 2>
nearest_points{ Eigen::Vector3d::Zero(), Eigen::Vector3d::Zero() };
103 std::array<Eigen::Isometry3d, 2>
transform{ Eigen::Isometry3d::Identity(), Eigen::Isometry3d::Identity() };
110 Eigen::Vector3d
normal{ Eigen::Vector3d::Zero() };
121 std::array<Eigen::Isometry3d, 2>
cc_transform{ Eigen::Isometry3d::Identity(), Eigen::Isometry3d::Identity() };
156 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
157 using KeyType = std::pair<std::string, std::string>;
162 using PairType =
typename std::pair<const KeyType, MappedType>;
205 int sub_segment_index,
206 int sub_segment_last_index,
207 const std::vector<std::string>& active_link_names,
235 std::size_t
size()
const;
320 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
330 const std::vector<std::string>*
active =
nullptr;
Definition: allowed_collision_matrix.h:23
Stores information about how the margins allowed between collision objects.
Definition: collision_margin_data.h:74
std::shared_ptr< const Geometry > ConstPtr
Definition: geometry.h:63
std::shared_ptr< Geometry > Ptr
Definition: geometry.h:62
auto filter
Definition: collision_core_unit.cpp:532
This is used to store collision margin information.
default_margin
Definition: collision_margin_data_unit.cpp:70
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
Definition: create_convex_hull.cpp:36
Definition: bullet_cast_bvh_manager.h:49
tesseract_geometry::Geometry::Ptr CollisionShapePtr
Definition: types.h:49
tesseract_geometry::Geometry::ConstPtr CollisionShapeConstPtr
Definition: types.h:48
std::vector< tesseract_geometry::Geometry::ConstPtr > CollisionShapesConst
Definition: types.h:47
ContinuousCollisionType
Definition: types.h:62
std::function< bool(const ContactResult &)> IsContactResultValidFn
Should return true if contact results are valid, otherwise false.
Definition: types.h:290
static const std::vector< std::string > ContactTestTypeStrings
Definition: types.h:77
tesseract_common::AlignedVector< ContactResult > ContactResultVector
Definition: types.h:134
ACMOverrideType
Identifies how the provided AllowedCollisionMatrix should be applied relative to the isAllowedFn in t...
Definition: types.h:373
@ OR
New IsContactAllowedFn combines the contact manager fn and the ACM generated fn with and OR.
@ AND
New IsContactAllowedFn combines the contact manager fn and the ACM generated fn with and AND.
@ ASSIGN
Replace the current IsContactAllowedFn with one generated from the ACM provided.
std::function< bool(const std::string &, const std::string &)> IsContactAllowedFn
Should return true if contact allowed, otherwise false.
Definition: types.h:59
ContactTestType
Definition: types.h:70
CollisionEvaluatorType
High level descriptor used in planners and utilities to specify what kind of collision check is desir...
Definition: types.h:357
@ LVS_DISCRETE
Discrete contact manager interpolating using longest valid segment.
@ DISCRETE
Discrete contact manager using only steps specified.
@ CONTINUOUS
Continuous contact manager using only steps specified.
@ LVS_CONTINUOUS
Continuous contact manager interpolating using longest valid segment.
tesseract_common::PairsCollisionMarginData PairsCollisionMarginData
Definition: types.h:52
std::vector< T, Eigen::aligned_allocator< T > > AlignedVector
Enable easy switching to std::filesystem when available.
Definition: types.h:50
std::map< Key, Value, std::less< Key >, Eigen::aligned_allocator< std::pair< const Key, Value > > > AlignedMap
Definition: types.h:53
std::unordered_map< tesseract_common::LinkNamesPair, double, tesseract_common::PairHash > PairsCollisionMarginData
Definition: collision_margin_data.h:70
CollisionMarginOverrideType
Identifies how the provided contact margin data should be applied.
Definition: collision_margin_data.h:46
This is a high level structure containing common information that collision checking utilities need....
Definition: types.h:418
ContactManagerConfig contact_manager_config
Used to configure the contact manager prior to a series of checks.
Definition: types.h:426
ContactRequest contact_request
ContactRequest that will be used for this check. Default test type: FIRST.
Definition: types.h:429
double longest_valid_segment_length
Longest valid segment to use if type supports lvs. Default: 0.005.
Definition: types.h:433
CollisionEvaluatorType type
Specifies the type of collision check to be performed. Default: DISCRETE.
Definition: types.h:431
CollisionCheckConfig()=default
v
Definition: tesseract_common_unit.cpp:369