Stores information about how the margins allowed between collision objects. More...
#include <collision_margin_data.h>
Public Types | |
using | ConstPtr = std::shared_ptr< const CollisionMarginData > |
using | Ptr = std::shared_ptr< CollisionMarginData > |
Public Member Functions | |
void | apply (const CollisionMarginPairData &pair_margin_data, CollisionMarginPairOverrideType override_type) |
Apply the contents of the provide CollisionMarginPairData based on the override type. More... | |
CollisionMarginData (CollisionMarginPairData pair_collision_margins) | |
CollisionMarginData (double default_collision_margin, CollisionMarginPairData pair_collision_margins) | |
CollisionMarginData (double default_collision_margin=0) | |
double | getCollisionMargin (const std::string &obj1, const std::string &obj2) const |
Get the pairs collision margin data. More... | |
const CollisionMarginPairData & | getCollisionMarginPairData () const |
Get Collision Margin Data for stored pairs. More... | |
double | getDefaultCollisionMargin () const |
Get the default collision margin. More... | |
double | getMaxCollisionMargin () const |
Get the largest collision margin. More... | |
void | incrementMargins (double increment) |
Increment all margins by input amount. Useful for inflating or reducing margins. More... | |
bool | operator!= (const CollisionMarginData &rhs) const |
bool | operator== (const CollisionMarginData &rhs) const |
void | scaleMargins (double scale) |
Scale all margins by input value. More... | |
void | setCollisionMargin (const std::string &obj1, const std::string &obj2, double collision_margin) |
Set the margin for a given contact pair. More... | |
void | setDefaultCollisionMargin (double default_collision_margin) |
Set the default collision margin. More... | |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
double | default_collision_margin_ { 0 } |
Stores the collision margin used if no pair-specific one is set. More... | |
CollisionMarginPairData | pair_margins_ |
A map of link pair names to contact distance. More... | |
Friends | |
class | boost::serialization::access |
struct | tesseract_common::Serialization |
Stores information about how the margins allowed between collision objects.
Definition at line 159 of file collision_margin_data.h.
using tesseract_common::CollisionMarginData::ConstPtr = std::shared_ptr<const CollisionMarginData> |
Definition at line 165 of file collision_margin_data.h.
using tesseract_common::CollisionMarginData::Ptr = std::shared_ptr<CollisionMarginData> |
Definition at line 164 of file collision_margin_data.h.
tesseract_common::CollisionMarginData::CollisionMarginData | ( | double | default_collision_margin = 0 | ) |
Definition at line 163 of file collision_margin_data.cpp.
tesseract_common::CollisionMarginData::CollisionMarginData | ( | double | default_collision_margin, |
CollisionMarginPairData | pair_collision_margins | ||
) |
Definition at line 168 of file collision_margin_data.cpp.
tesseract_common::CollisionMarginData::CollisionMarginData | ( | CollisionMarginPairData | pair_collision_margins | ) |
Definition at line 174 of file collision_margin_data.cpp.
void tesseract_common::CollisionMarginData::apply | ( | const CollisionMarginPairData & | pair_margin_data, |
CollisionMarginPairOverrideType | override_type | ||
) |
Apply the contents of the provide CollisionMarginPairData based on the override type.
pair_margin_data | The collision margin pair data to apply |
override_type | The type indicating how the provided data should be applied. |
Definition at line 222 of file collision_margin_data.cpp.
double tesseract_common::CollisionMarginData::getCollisionMargin | ( | const std::string & | obj1, |
const std::string & | obj2 | ||
) | const |
Get the pairs collision margin data.
If a collision margin for the request pair does not exist it returns the default collision margin data.
obj1 | The first object name |
obj2 | The second object name |
Definition at line 191 of file collision_margin_data.cpp.
const CollisionMarginPairData & tesseract_common::CollisionMarginData::getCollisionMarginPairData | ( | ) | const |
Get Collision Margin Data for stored pairs.
Definition at line 200 of file collision_margin_data.cpp.
double tesseract_common::CollisionMarginData::getDefaultCollisionMargin | ( | ) | const |
Get the default collision margin.
Definition at line 184 of file collision_margin_data.cpp.
double tesseract_common::CollisionMarginData::getMaxCollisionMargin | ( | ) | const |
Get the largest collision margin.
This used when setting the contact distance in the contact manager.
Definition at line 202 of file collision_margin_data.cpp.
void tesseract_common::CollisionMarginData::incrementMargins | ( | double | increment | ) |
Increment all margins by input amount. Useful for inflating or reducing margins.
increment | Amount to increment margins |
Definition at line 210 of file collision_margin_data.cpp.
bool tesseract_common::CollisionMarginData::operator!= | ( | const CollisionMarginData & | rhs | ) | const |
Definition at line 237 of file collision_margin_data.cpp.
bool tesseract_common::CollisionMarginData::operator== | ( | const CollisionMarginData & | rhs | ) | const |
Definition at line 228 of file collision_margin_data.cpp.
void tesseract_common::CollisionMarginData::scaleMargins | ( | double | scale | ) |
Scale all margins by input value.
scale | Value by which all margins are multiplied |
Definition at line 216 of file collision_margin_data.cpp.
|
private |
Definition at line 240 of file collision_margin_data.cpp.
void tesseract_common::CollisionMarginData::setCollisionMargin | ( | const std::string & | obj1, |
const std::string & | obj2, | ||
double | collision_margin | ||
) |
Set the margin for a given contact pair.
The order of the object names does not matter, that is handled internal to the class.
obj1 | The first object name. Order doesn't matter |
obj2 | The Second object name. Order doesn't matter |
collision_margin | contacts with distance < collision_margin are considered in collision |
Definition at line 186 of file collision_margin_data.cpp.
void tesseract_common::CollisionMarginData::setDefaultCollisionMargin | ( | double | default_collision_margin | ) |
Set the default collision margin.
default_collision_margin | New default collision margin |
Definition at line 179 of file collision_margin_data.cpp.
|
friend |
Definition at line 250 of file collision_margin_data.h.
|
friend |
Definition at line 251 of file collision_margin_data.h.
|
private |
Stores the collision margin used if no pair-specific one is set.
Definition at line 245 of file collision_margin_data.h.
|
private |
A map of link pair names to contact distance.
Definition at line 248 of file collision_margin_data.h.