types.h
Go to the documentation of this file.
1 
26 #ifndef TESSERACT_COLLISION_TYPES_H
27 #define TESSERACT_COLLISION_TYPES_H
28 
31 #include <Eigen/Core>
32 #include <Eigen/Geometry>
33 #include <vector>
34 #include <memory>
35 #include <map>
36 #include <array>
37 #include <unordered_map>
38 #include <functional>
40 
41 #include <tesseract_common/fwd.h>
45 #include <tesseract_geometry/fwd.h>
46 
47 namespace tesseract_collision
48 {
49 using CollisionShapeConstPtr = std::shared_ptr<const tesseract_geometry::Geometry>;
50 using CollisionShapePtr = std::shared_ptr<tesseract_geometry::Geometry>;
51 using CollisionShapesConst = std::vector<CollisionShapeConstPtr>;
55 
57 
58 enum class ContinuousCollisionType : std::uint8_t
59 {
64 };
65 
66 enum class ContactTestType : std::uint8_t
67 {
68  FIRST = 0,
69  CLOSEST = 1,
70  ALL = 2,
71  LIMITED = 3
72 };
73 
74 static const std::vector<std::string> ContactTestTypeStrings = {
75  "FIRST",
76  "CLOSEST",
77  "ALL",
78  "LIMITED",
79 };
80 
82 {
83  // LCOV_EXCL_START
84  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
85  // LCOV_EXCL_STOP
86 
88  double distance{ std::numeric_limits<double>::max() };
90  std::array<int, 2> type_id{ 0, 0 };
92  std::array<std::string, 2> link_names;
94  std::array<int, 2> shape_id{ -1, -1 };
96  std::array<int, 2> subshape_id{ -1, -1 };
98  std::array<Eigen::Vector3d, 2> nearest_points{ Eigen::Vector3d::Zero(), Eigen::Vector3d::Zero() };
100  std::array<Eigen::Vector3d, 2> nearest_points_local{ 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() };
111  std::array<double, 2> cc_time{ -1, -1 };
113  std::array<ContinuousCollisionType, 2> cc_type{ ContinuousCollisionType::CCType_None,
120  std::array<Eigen::Isometry3d, 2> cc_transform{ Eigen::Isometry3d::Identity(), Eigen::Isometry3d::Identity() };
121 
125  bool single_contact_point{ false };
126 
127  ContactResult() = default;
128 
130  void clear();
131 
132  bool operator==(const ContactResult& rhs) const;
133  bool operator!=(const ContactResult& rhs) const;
134 };
135 
137 
156 {
157 public:
158  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
159  using KeyType = std::pair<std::string, std::string>;
164  using PairType = typename std::pair<const KeyType, MappedType>;
165  using FilterFn = std::function<void(PairType&)>;
166 
173 
179  ContactResult& addContactResult(const KeyType& key, const MappedType& results);
180 
187 
193  ContactResult& setContactResult(const KeyType& key, const MappedType& results);
194 
206  void addInterpolatedCollisionResults(ContactResultMap& sub_segment_results,
207  long sub_segment_index,
208  long sub_segment_last_index,
209  const std::vector<std::string>& active_link_names,
210  double segment_dt,
211  bool discrete,
212  const ContactResultMap::FilterFn& filter = nullptr);
213 
214  // Flatten functions
217  void flattenWrapperResults(std::vector<std::reference_wrapper<ContactResult>>& v);
218  void flattenWrapperResults(std::vector<std::reference_wrapper<const ContactResult>>& v) const;
219 
224  void filter(const FilterFn& filter);
225 
230  long count() const;
231 
237  std::size_t size() const;
238 
243  bool empty() const;
244 
252  void clear();
253 
255  void shrinkToFit();
256 
258  void release();
259 
264  const ContainerType& getContainer() const;
265 
267  // Iterators //
269 
270  ConstIteratorType begin() const;
272  ConstIteratorType end() const;
274  ConstIteratorType cbegin() const;
276  ConstIteratorType cend() const;
277 
279  // Element Access //
281 
282  const ContactResultVector& at(const KeyType& key) const;
283  ConstIteratorType find(const KeyType& key) const;
284 
285  bool operator==(const ContactResultMap& rhs) const;
286  bool operator!=(const ContactResultMap& rhs) const;
287 
292  std::string getSummary() const;
293 
294 private:
296  long count_{ 0 };
297 };
298 
301 {
304 
307 
309  bool calculate_distance = true;
310 
313  long contact_limit = 0;
314 
316  std::shared_ptr<const ContactResultValidator> is_valid;
317 
319 
320  bool operator==(const ContactRequest& rhs) const;
321  bool operator!=(const ContactRequest& rhs) const;
322 };
323 
329 {
330  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
331 
332  ContactTestData() = default;
333  ContactTestData(const std::vector<std::string>& active,
335  std::shared_ptr<const tesseract_common::ContactAllowedValidator> validator,
338 
340  const std::vector<std::string>* active = nullptr;
341 
344 
346  std::shared_ptr<const tesseract_common::ContactAllowedValidator> validator;
347 
350 
352  ContactResultMap* res = nullptr;
353 
355  bool done = false;
356 };
357 
366 enum class CollisionEvaluatorType : std::uint8_t
367 {
369  NONE,
371  DISCRETE,
373  LVS_DISCRETE,
375  CONTINUOUS,
378 };
379 
381 enum class CollisionCheckProgramType : std::uint8_t
382 {
384  ALL,
390  START_ONLY,
392  END_ONLY,
395 };
396 
399 enum class ACMOverrideType : std::uint8_t
400 {
402  NONE,
404  ASSIGN,
406  AND,
408  OR,
409 };
410 
421 {
422  ContactManagerConfig() = default;
424 
426  std::optional<double> default_margin;
427 
432 
437 
440  std::unordered_map<std::string, bool> modify_object_enabled;
441 
446  void incrementMargins(double increment);
447 
452  void scaleMargins(double scale);
453 
459  void validate() const;
460 
461  bool operator==(const ContactManagerConfig& rhs) const;
462  bool operator!=(const ContactManagerConfig& rhs) const;
463 };
464 
470 {
473  double longest_valid_segment_length = 0.005,
475 
478 
481 
484 
487 
488  bool operator==(const CollisionCheckConfig& rhs) const;
489  bool operator!=(const CollisionCheckConfig& rhs) const;
490 };
491 
498 {
499  // LCOV_EXCL_START
500  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
501  // LCOV_EXCL_STOP
502 
504  ContactTrajectorySubstepResults(int substep, const Eigen::VectorXd& start_state, const Eigen::VectorXd& end_state);
505  ContactTrajectorySubstepResults(int substep, const Eigen::VectorXd& state);
506 
507  using UPtr = std::unique_ptr<ContactTrajectorySubstepResults>;
508 
509  int numContacts() const;
510 
512 
514  int substep = -1;
515  Eigen::VectorXd state0;
516  Eigen::VectorXd state1;
517 };
518 
525 {
526  // LCOV_EXCL_START
527  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
528  // LCOV_EXCL_STOP
529 
530  ContactTrajectoryStepResults() = default;
531  ContactTrajectoryStepResults(int step_number,
532  const Eigen::VectorXd& start_state,
533  const Eigen::VectorXd& end_state,
534  int num_substeps);
535  ContactTrajectoryStepResults(int step_number, const Eigen::VectorXd& state);
536 
537  using UPtr = std::unique_ptr<ContactTrajectoryStepResults>;
538 
539  void resize(int num_substeps);
540 
541  int numSubsteps() const;
542 
543  int numContacts() const;
544 
546 
548 
550 
551  std::vector<ContactTrajectorySubstepResults> substeps;
552  int step = -1;
553  Eigen::VectorXd state0;
554  Eigen::VectorXd state1;
555  int total_substeps = 0;
556 };
557 
564 {
565  // LCOV_EXCL_START
566  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
567  // LCOV_EXCL_STOP
568 
569  ContactTrajectoryResults() = default;
570  ContactTrajectoryResults(std::vector<std::string> j_names);
571  ContactTrajectoryResults(std::vector<std::string> j_names, int num_steps);
572 
573  using UPtr = std::unique_ptr<ContactTrajectoryResults>;
574 
575  void resize(int num_steps);
576 
577  int numSteps() const;
578 
579  int numContacts() const;
580 
582 
584 
586 
587  std::stringstream trajectoryCollisionResultsTable() const;
588 
589  std::stringstream collisionFrequencyPerLink() const;
590 
591  std::vector<ContactTrajectoryStepResults> steps;
592  std::vector<std::string> joint_names;
593  int total_steps = 0;
594 };
595 
599 
600 } // namespace tesseract_collision
601 
602 #endif // TESSERACT_COLLISION_TYPES_H
tesseract_collision::ContactResultMap::empty
bool empty() const
Check if results are present.
Definition: types.cpp:229
tesseract_collision::ContactResultMap::end
ConstIteratorType end() const
returns an iterator to the end
Definition: types.cpp:260
tesseract_collision::ContactManagerConfig::validate
void validate() const
Check for errors and throw exception if they exist.
Definition: types.cpp:395
any_poly.h
tesseract_collision::ContactTestData
This data is intended only to be used internal to the collision checkers as a container and should no...
Definition: types.h:328
tesseract_collision::CollisionCheckConfig::operator==
bool operator==(const CollisionCheckConfig &rhs) const
Definition: types.cpp:430
tesseract_collision::ACMOverrideType::ASSIGN
@ ASSIGN
Replace the current ContactAllowedValidator with one generated from the ACM provided.
tesseract_collision::ContactTrajectorySubstepResults::numContacts
int numContacts() const
Definition: types.cpp:454
tesseract_collision::ContactManagerConfig
Contains parameters used to configure a contact manager before a series of contact checks.
Definition: types.h:420
tesseract_collision::ContactRequest::calculate_distance
bool calculate_distance
This enables the calculation of distance data if two objects are within the contact threshold.
Definition: types.h:309
tesseract_collision::ContactResult::cc_time
std::array< double, 2 > cc_time
This is between 0 and 1 indicating the point of contact.
Definition: types.h:111
tesseract_collision::ContactRequest::operator==
bool operator==(const ContactRequest &rhs) const
Definition: types.cpp:91
tesseract_collision::ContactTrajectoryStepResults::total_substeps
int total_substeps
Definition: types.h:555
tesseract_collision::ContactTrajectoryResults::resize
void resize(int num_steps)
Definition: types.cpp:555
tesseract_collision::ContactTestData::done
bool done
Indicate if search is finished.
Definition: types.h:355
tesseract_collision::ContactResultMap::count_
long count_
Definition: types.h:296
tesseract_collision::ContactResultMap::setContactResult
ContactResult & setContactResult(const KeyType &key, ContactResult result)
Set contact results for the provided key.
Definition: types.cpp:122
tesseract_common::AlignedVector
std::vector< T, Eigen::aligned_allocator< T > > AlignedVector
tesseract_collision::ContactResult::shape_id
std::array< int, 2 > shape_id
The two shapes that are in contact. Each link can be made up of multiple shapes.
Definition: types.h:94
tesseract_collision::ACMOverrideType::OR
@ OR
New ContactAllowedValidator combines the contact manager fn and the ACM generated fn with and OR.
tesseract_collision::ACMOverrideType
ACMOverrideType
Identifies how the provided AllowedCollisionMatrix should be applied relative to the isAllowedFn in t...
Definition: types.h:399
tesseract_collision::ContactResultMap::addInterpolatedCollisionResults
void addInterpolatedCollisionResults(ContactResultMap &sub_segment_results, long sub_segment_index, long sub_segment_last_index, const std::vector< std::string > &active_link_names, double segment_dt, bool discrete, const ContactResultMap::FilterFn &filter=nullptr)
This processes interpolated contact results by updating the cc_time and cc_type and then adds the res...
Definition: types.cpp:146
tesseract_collision::ContactTestType::LIMITED
@ LIMITED
tesseract_collision::CollisionCheckConfig::CollisionCheckConfig
CollisionCheckConfig(ContactRequest request=ContactRequest(), CollisionEvaluatorType type=CollisionEvaluatorType::DISCRETE, double longest_valid_segment_length=0.005, CollisionCheckProgramType check_program_mode=CollisionCheckProgramType::ALL)
Definition: types.cpp:419
tesseract_collision::ContactTrajectoryStepResults::mostCollisionsSubstep
ContactTrajectorySubstepResults mostCollisionsSubstep() const
Definition: types.cpp:528
tesseract_collision::ContactRequest::ContactRequest
ContactRequest(ContactTestType type=ContactTestType::ALL)
Definition: types.cpp:89
tesseract_collision::ContactTrajectoryResults::mostCollisionsStep
ContactTrajectoryStepResults mostCollisionsStep() const
Definition: types.cpp:593
tesseract_collision::CollisionEvaluatorType::CONTINUOUS
@ CONTINUOUS
Continuous contact manager using only steps specified.
tesseract_collision::ContactResultMap::size
std::size_t size() const
Get the size of the map.
Definition: types.cpp:214
tesseract_collision::ContactResult::ContactResult
ContactResult()=default
tesseract_collision::ContactResultMap::addContactResult
ContactResult & addContactResult(const KeyType &key, ContactResult result)
Add contact results for the provided key.
Definition: types.cpp:103
tesseract_collision::ContactResultMap::getSummary
std::string getSummary() const
Get a brief summary of the most frequently colliding link pair.
Definition: types.cpp:325
tesseract_collision::ContactTrajectoryStepResults::UPtr
std::unique_ptr< ContactTrajectoryStepResults > UPtr
Definition: types.h:537
tesseract_collision::ContactRequest::type
ContactTestType type
This controls the exit condition for the contact test type.
Definition: types.h:303
tesseract_collision::ContactTrajectoryResults::numContacts
int numContacts() const
Definition: types.cpp:563
tesseract_collision::ContactTrajectoryResults::collisionFrequencyPerLink
std::stringstream collisionFrequencyPerLink() const
Definition: types.cpp:842
tesseract_collision::ContactResult::normal
Eigen::Vector3d normal
The normal vector to move the two objects out of contact in world coordinates.
Definition: types.h:109
tesseract_collision::ContinuousCollisionType::CCType_Time1
@ CCType_Time1
tesseract_collision::ContactManagerConfig::incrementMargins
void incrementMargins(double increment)
Increment all margins by input amount. Useful for inflating or reducing margins.
Definition: types.cpp:377
collision_margin_data.h
tesseract_collision::ContactTestData::active
const std::vector< std::string > * active
A vector of active links.
Definition: types.h:340
tesseract_collision::ContactTrajectorySubstepResults::UPtr
std::unique_ptr< ContactTrajectorySubstepResults > UPtr
Definition: types.h:507
tesseract_collision::ContactTestData::validator
std::shared_ptr< const tesseract_common::ContactAllowedValidator > validator
The allowed collision function used to check if two links should be excluded from collision checking.
Definition: types.h:346
tesseract_collision::ContactRequest::operator!=
bool operator!=(const ContactRequest &rhs) const
Definition: types.cpp:101
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_common::AnyWrapper
tesseract_collision::ContactResultVector
tesseract_common::AlignedVector< ContactResult > ContactResultVector
Definition: types.h:136
tesseract_collision::ContactTrajectoryStepResults::substeps
std::vector< ContactTrajectorySubstepResults > substeps
Definition: types.h:551
tesseract_collision::ContactTestData::ContactTestData
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ContactTestData()=default
tesseract_collision::ContactResultMap::clear
void clear()
This is a consurvative clear.
Definition: types.cpp:231
tesseract_collision::ContactTrajectoryStepResults::numContacts
int numContacts() const
Definition: types.cpp:495
tesseract_collision::ContactTrajectoryResults::total_steps
int total_steps
Definition: types.h:593
tesseract_collision::ContactRequest::contact_limit
long contact_limit
This is used if the ContactTestType is set to LIMITED, where the test will exit when number of contac...
Definition: types.h:313
tesseract_collision::ContinuousCollisionType
ContinuousCollisionType
Definition: types.h:58
tesseract_collision::ContactTrajectoryResults::worstCollision
tesseract_collision::ContactResultVector worstCollision() const
Definition: types.cpp:587
tesseract_collision::ContactTrajectoryResults
The ContactTrajectoryResults struct is the top level struct for tracking contacts in a trajectory....
Definition: types.h:563
tesseract_collision::ContactResultValidator
Should return true if contact results are valid, otherwise false.
Definition: contact_result_validator.h:43
tesseract_common::CollisionMarginData
tesseract_collision::ContactResultMap::FilterFn
std::function< void(PairType &)> FilterFn
Definition: types.h:165
tesseract_collision::ContactTrajectoryResults::UPtr
std::unique_ptr< ContactTrajectoryResults > UPtr
Definition: types.h:573
tesseract_collision::CollisionCheckProgramType::INTERMEDIATE_ONLY
@ INTERMEDIATE_ONLY
Check only the intermediate states.
tesseract_collision::ContactResultMap::filter
void filter(const FilterFn &filter)
Filter out results using the provided function.
Definition: types.cpp:306
tesseract_collision::CollisionCheckConfig::type
CollisionEvaluatorType type
Specifies the type of collision check to be performed. Default: DISCRETE.
Definition: types.h:480
tesseract_collision::ContactResultMap::getContainer
const ContainerType & getContainer() const
Get the underlying container.
Definition: types.cpp:256
tesseract_collision::ContactManagerConfig::modify_object_enabled
std::unordered_map< std::string, bool > modify_object_enabled
Each key is an object name. Objects will be enabled/disabled based on the value. Objects that aren't ...
Definition: types.h:440
tesseract_collision::ContactResultMap::flattenMoveResults
void flattenMoveResults(ContactResultVector &v)
Definition: types.cpp:270
tesseract_collision::ContactTestData::collision_margin_data
CollisionMarginData collision_margin_data
The current contact_distance threshold.
Definition: types.h:343
tesseract_collision::ContactManagerConfig::operator!=
bool operator!=(const ContactManagerConfig &rhs) const
Definition: types.cpp:417
tesseract_collision::CollisionCheckConfig::check_program_mode
CollisionCheckProgramType check_program_mode
Secifies the mode used when collision checking program/trajectory. Default: ALL.
Definition: types.h:486
tesseract_collision::ContinuousCollisionType::CCType_Between
@ CCType_Between
tesseract_collision::ContactResultMap::at
const ContactResultVector & at(const KeyType &key) const
access specified element with bounds checking
Definition: types.cpp:266
tesseract_collision::CollisionEvaluatorType::LVS_CONTINUOUS
@ LVS_CONTINUOUS
Continuous contact manager interpolating using longest valid segment.
tesseract_collision::CollisionCheckProgramType::START_ONLY
@ START_ONLY
Check only the start state.
tesseract_collision::ContactResultMap::flattenWrapperResults
void flattenWrapperResults(std::vector< std::reference_wrapper< ContactResult >> &v)
Definition: types.cpp:290
tesseract_collision::ContactTrajectoryStepResults::ContactTrajectoryStepResults
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ContactTrajectoryStepResults()=default
tesseract_collision::ContactResultMap::ConstReferenceType
typename tesseract_common::AlignedMap< KeyType, MappedType >::const_reference ConstReferenceType
Definition: types.h:162
tesseract_collision::ContactResultMap::ConstIteratorType
typename tesseract_common::AlignedMap< KeyType, MappedType >::const_iterator ConstIteratorType
Definition: types.h:163
tesseract_collision::ContactManagerConfig::scaleMargins
void scaleMargins(double scale)
Scale all margins by input value.
Definition: types.cpp:386
tesseract_collision::CollisionCheckProgramType::END_ONLY
@ END_ONLY
Check only the end state.
tesseract_collision::ContactResult::subshape_id
std::array< int, 2 > subshape_id
Some shapes like octomap and mesh have subshape (boxes and triangles)
Definition: types.h:96
tesseract_collision::ContactResult::operator!=
bool operator!=(const ContactResult &rhs) const
Definition: types.cpp:87
tesseract_collision::CollisionMarginPairData
tesseract_common::CollisionMarginPairData CollisionMarginPairData
Definition: types.h:53
tesseract_collision::ContactManagerConfig::ContactManagerConfig
ContactManagerConfig()=default
tesseract_collision::ContactResultMap
This structure hold contact results for link pairs.
Definition: types.h:155
tesseract_collision::ContactTrajectoryStepResults::resize
void resize(int num_substeps)
Definition: types.cpp:487
tesseract_collision::ContactResultMap::release
void release()
Fully clear all internal data.
Definition: types.cpp:250
tesseract_common::CollisionMarginPairOverrideType
CollisionMarginPairOverrideType
tesseract_collision::ContactTrajectoryStepResults::worstCollision
tesseract_collision::ContactResultVector worstCollision() const
Definition: types.cpp:520
tesseract_collision::ContactResultMap::ContainerType
tesseract_common::AlignedMap< KeyType, MappedType > ContainerType
Definition: types.h:161
tesseract_collision::CollisionCheckConfig::contact_request
ContactRequest contact_request
ContactRequest that will be used for this check. Default test type: ALL.
Definition: types.h:477
tesseract_collision::ContactManagerConfig::default_margin
std::optional< double > default_margin
override the default contact margin
Definition: types.h:426
tesseract_collision::ContactTrajectorySubstepResults
The ContactTrajectorySubstepResults struct is the lowest level struct for tracking contacts in a traj...
Definition: types.h:497
tesseract_collision::CollisionCheckConfig
This is a high level structure containing common information that collision checking utilities need....
Definition: types.h:469
tesseract_collision::ContactTrajectoryResults::ContactTrajectoryResults
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ContactTrajectoryResults()=default
tesseract_collision::ContactResultMap::data_
ContainerType data_
Definition: types.h:295
tesseract_collision::ContinuousCollisionType::CCType_None
@ CCType_None
tesseract_collision::ContactTrajectoryStepResults::state0
Eigen::VectorXd state0
Definition: types.h:553
tesseract_collision::ContactTrajectoryStepResults::numSubsteps
int numSubsteps() const
Definition: types.cpp:493
tesseract_collision::ContactTrajectoryResults::worstStep
ContactTrajectoryStepResults worstStep() const
Definition: types.cpp:571
tesseract_collision::ContactTrajectorySubstepResults::contacts
tesseract_collision::ContactResultMap contacts
Definition: types.h:513
tesseract_collision::ContactTrajectoryStepResults::step
int step
Definition: types.h:552
tesseract_collision::ContactResultMap::PairType
typename std::pair< const KeyType, MappedType > PairType
Definition: types.h:164
tesseract_collision::ContactResultMap::KeyType
std::pair< std::string, std::string > KeyType
Definition: types.h:159
tesseract_collision::ContactRequest::is_valid
std::shared_ptr< const ContactResultValidator > is_valid
This provides a user defined function approve/reject contact results.
Definition: types.h:316
tesseract_collision::CollisionShapePtr
std::shared_ptr< tesseract_geometry::Geometry > CollisionShapePtr
Definition: types.h:50
tesseract_collision::CollisionShapesConst
std::vector< CollisionShapeConstPtr > CollisionShapesConst
Definition: types.h:51
tesseract_collision::ContactResult::type_id
std::array< int, 2 > type_id
A user defined type id that is added to the contact shapes.
Definition: types.h:90
tesseract_collision::ContactResultMap::operator!=
bool operator!=(const ContactResultMap &rhs) const
Definition: types.cpp:323
TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: create_convex_hull.cpp:37
tesseract_collision::ContactTestData::res
ContactResultMap * res
Distance query results information.
Definition: types.h:352
tesseract_collision::ContactResultMap::operator==
bool operator==(const ContactResultMap &rhs) const
Definition: types.cpp:319
tesseract_collision::ContactResult::clear
void clear()
reset to default values
Definition: types.cpp:36
tesseract_collision::ContinuousCollisionType::CCType_Time0
@ CCType_Time0
tesseract_common::AlignedMap
std::map< Key, Value, std::less< Key >, Eigen::aligned_allocator< std::pair< const Key, Value > >> AlignedMap
tesseract_collision::CollisionEvaluatorType
CollisionEvaluatorType
High level descriptor used in planners and utilities to specify what kind of collision check is desir...
Definition: types.h:366
fwd.h
tesseract_collision::CollisionCheckProgramType::ALL
@ ALL
Check all states.
tesseract_collision::ContactTrajectorySubstepResults::state1
Eigen::VectorXd state1
Definition: types.h:516
tesseract_collision::ContactTrajectorySubstepResults::substep
int substep
Definition: types.h:514
tesseract_collision::CollisionCheckProgramType::ALL_EXCEPT_END
@ ALL_EXCEPT_END
Check all states except the end state.
tesseract_common::CollisionMarginPairData
tesseract_collision::ContactTrajectoryResults::trajectoryCollisionResultsTable
std::stringstream trajectoryCollisionResultsTable() const
Definition: types.cpp:610
tesseract_collision::ContactManagerConfig::pair_margin_override_type
CollisionMarginPairOverrideType pair_margin_override_type
Identify how the collision margin pair data should be applied to the contact manager.
Definition: types.h:429
tesseract_collision::ContactTrajectoryResults::numSteps
int numSteps() const
Definition: types.cpp:561
eigen_types.h
tesseract_collision::ContactResultMap::cend
ConstIteratorType cend() const
returns an iterator to the end
Definition: types.cpp:264
tesseract_collision::ContactTestType::FIRST
@ FIRST
tesseract_collision::CollisionCheckProgramType
CollisionCheckProgramType
The mode used to check program.
Definition: types.h:381
tesseract_collision::ContactResultMap::find
ConstIteratorType find(const KeyType &key) const
Definition: types.cpp:268
tesseract_collision::ContactResult::distance
EIGEN_MAKE_ALIGNED_OPERATOR_NEW double distance
The distance between two links.
Definition: types.h:88
tesseract_collision::ContactTestType
ContactTestType
Definition: types.h:66
tesseract_collision::ContactTestData::req
ContactRequest req
The type of contact request data.
Definition: types.h:349
tesseract_collision::ContactResult::cc_transform
std::array< Eigen::Isometry3d, 2 > cc_transform
The transform of link in world coordinates at its desired final location. Note: This is not the locat...
Definition: types.h:120
tesseract_common::AllowedCollisionMatrix
tesseract_collision::ContactResultMap::shrinkToFit
void shrinkToFit()
Remove map entries with no contact results.
Definition: types.cpp:243
tesseract_collision::CollisionShapeConstPtr
std::shared_ptr< const tesseract_geometry::Geometry > CollisionShapeConstPtr
Definition: types.h:49
tesseract_collision::CollisionEvaluatorType::LVS_DISCRETE
@ LVS_DISCRETE
Discrete contact manager interpolating using longest valid segment.
tesseract_collision::ContactManagerConfig::operator==
bool operator==(const ContactManagerConfig &rhs) const
Definition: types.cpp:406
tesseract_collision::ContactResultMap::count
long count() const
Get the total number of contact results storted.
Definition: types.cpp:212
tesseract_collision::ContactResultMap::cbegin
ConstIteratorType cbegin() const
returns an iterator to the beginning
Definition: types.cpp:262
tesseract_collision::ContactResult::transform
std::array< Eigen::Isometry3d, 2 > transform
The transform of link in world coordinates.
Definition: types.h:102
tesseract_collision::CollisionEvaluatorType::DISCRETE
@ DISCRETE
Discrete contact manager using only steps specified.
tesseract_collision::ContactTrajectoryStepResults
The ContactTrajectoryStepResults struct is the second level struct for tracking contacts in a traject...
Definition: types.h:524
tesseract_collision::ContactTrajectoryResults::joint_names
std::vector< std::string > joint_names
Definition: types.h:592
tesseract_collision::ContactTrajectoryStepResults::worstSubstep
ContactTrajectorySubstepResults worstSubstep() const
Definition: types.cpp:503
tesseract_collision::ContactTrajectorySubstepResults::ContactTrajectorySubstepResults
EIGEN_MAKE_ALIGNED_OPERATOR_NEW ContactTrajectorySubstepResults()=default
tesseract_collision::ContactResult::single_contact_point
bool single_contact_point
Some collision checkers only provide a single contact point for a given pair. This is used to indicat...
Definition: types.h:125
tesseract_collision::CollisionEvaluatorType::NONE
@ NONE
None.
tesseract_collision::ContactManagerConfig::pair_margin_data
CollisionMarginPairData pair_margin_data
Stores collision margin pair data.
Definition: types.h:431
tesseract_collision::ContactResult::operator==
bool operator==(const ContactResult &rhs) const
Definition: types.cpp:63
tesseract_collision::ContactResult::nearest_points
std::array< Eigen::Vector3d, 2 > nearest_points
The nearest point on both links in world coordinates.
Definition: types.h:98
tesseract_collision
Definition: bullet_cast_bvh_manager.h:48
tesseract_collision::ContactResultMap::begin
ConstIteratorType begin() const
returns an iterator to the beginning
Definition: types.cpp:258
tesseract_collision::ContactManagerConfig::acm
tesseract_common::AllowedCollisionMatrix acm
Additional AllowedCollisionMatrix to consider for this collision check.
Definition: types.h:434
tesseract_collision::ContactResult::nearest_points_local
std::array< Eigen::Vector3d, 2 > nearest_points_local
The nearest point on both links in local(link) coordinates.
Definition: types.h:100
tesseract_collision::ACMOverrideType::NONE
@ NONE
Do not apply AllowedCollisionMatrix.
macros.h
tesseract_collision::ContactTestType::ALL
@ ALL
tesseract_collision::ContactResultMap::flattenCopyResults
void flattenCopyResults(ContactResultVector &v) const
Definition: types.cpp:282
tesseract_collision::ContactTrajectoryResults::steps
std::vector< ContactTrajectoryStepResults > steps
Definition: types.h:591
tesseract_collision::ContactResultMap::MappedType
ContactResultVector MappedType
Definition: types.h:160
tesseract_collision::ContactTestTypeStrings
static const std::vector< std::string > ContactTestTypeStrings
Definition: types.h:74
tesseract_collision::ContactResult::link_names
std::array< std::string, 2 > link_names
The two links that are in contact.
Definition: types.h:92
tesseract_collision::ContactResult
Definition: types.h:81
tesseract_collision::CollisionCheckConfig::operator!=
bool operator!=(const CollisionCheckConfig &rhs) const
Definition: types.cpp:440
tesseract_collision::ContactRequest
The ContactRequest struct.
Definition: types.h:300
tesseract_collision::ACMOverrideType::AND
@ AND
New ContactAllowedValidator combines the contact manager fn and the ACM generated fn with and AND.
tesseract_collision::ContactTrajectorySubstepResults::state0
Eigen::VectorXd state0
Definition: types.h:515
tesseract_collision::ContactTrajectoryStepResults::state1
Eigen::VectorXd state1
Definition: types.h:554
tesseract_collision::ContactTestType::CLOSEST
@ CLOSEST
tesseract_collision::ContactResult::cc_type
std::array< ContinuousCollisionType, 2 > cc_type
The type of continuous contact.
Definition: types.h:113
tesseract_collision::ContactManagerConfig::acm_override_type
ACMOverrideType acm_override_type
Specifies how to combine the ContactAllowedValidator from acm with the one preset in the contact mana...
Definition: types.h:436
tesseract_collision::ContactRequest::calculate_penetration
bool calculate_penetration
This enables the calculation of penetration contact data if two objects are in collision.
Definition: types.h:306
tesseract_collision::CollisionMarginData
tesseract_common::CollisionMarginData CollisionMarginData
Definition: types.h:52
tesseract_collision::CollisionCheckConfig::longest_valid_segment_length
double longest_valid_segment_length
Longest valid segment to use if type supports lvs. Default: 0.005.
Definition: types.h:483
tesseract_collision::ContactTrajectorySubstepResults::worstCollision
tesseract_collision::ContactResultVector worstCollision() const
Definition: types.cpp:456
tesseract_collision::CollisionCheckProgramType::ALL_EXCEPT_START
@ ALL_EXCEPT_START
Check all states except the start state.
tesseract_common::CollisionMarginPairOverrideType::NONE
@ NONE


tesseract_collision
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:52