|
| | TestMask (const point_containment_filter::ShapeMask::TransformCallback &transformCallback, double minSensorDist, double maxSensorDist, bool doClipping, bool doContainsTest, bool doShadowTest) |
| |
Public Member Functions inherited from robot_body_filter::RayCastingShapeMask |
| MultiShapeHandle | addShape (const shapes::ShapeConstPtr &shape, double containsScale, double containsPadding, double shadowScale, double shadowPadding, double bsphereScale, double bspherePadding, double bboxScale, double bboxPadding, bool updateInternalStructures=true, const std::string &name="") |
| | Add the given shape to the set of filtered bodies. The internally created body will be transformed by the TransformCallback to which the handle of this shape will be passed. More...
|
| |
| MultiShapeHandle | addShape (const shapes::ShapeConstPtr &shape, double scale=1.0, double padding=0.0, bool updateInternalStructures=true, const std::string &name="") |
| | Add the given shape to the set of filtered bodies. The internally created body will be transformed by the TransformCallback to which the handle of this shape will be passed. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, const bodies::Body * > | getBodies () const |
| | Provides the map of shape handle to corresponding body (for all added shapes). More...
|
| |
| std::map< point_containment_filter::ShapeHandle, const bodies::Body * > | getBodiesForBoundingBox () const |
| | Provides the map of shape handle to corresponding body for shapes that should be used in bounding box computation. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, const bodies::Body * > | getBodiesForBoundingSphere () const |
| | Provides the map of shape handle to corresponding body for shapes that should be used in bounding sphere computation. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, const bodies::Body * > | getBodiesForContainsTest () const |
| | Provides the map of shape handle to corresponding body for shapes that should be used in contains tests. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, const bodies::Body * > | getBodiesForShadowTest () const |
| | Provides the map of shape handle to corresponding body for shapes that should be used in shadow testing. More...
|
| |
| bodies::BoundingSphere | getBoundingSphere () const |
| | Get the bounding sphere containing all registered shapes. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, bodies::BoundingSphere > | getBoundingSpheres () const |
| | Get the map of bounding spheres of all registered shapes. More...
|
| |
| std::map< point_containment_filter::ShapeHandle, bodies::BoundingSphere > | getBoundingSpheresForContainsTest () const |
| | Get the map of bounding spheres of all registered shapes that are used for testing INSIDE points. More...
|
| |
| void | maskContainmentAndShadows (const Cloud &data, std::vector< MaskValue > &mask, const Eigen::Vector3d &sensorPos=Eigen::Vector3d::Zero()) |
| | Decide whether the points in data are either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
|
| |
| void | maskContainmentAndShadows (const Eigen::Vector3f &data, MaskValue &mask, const Eigen::Vector3d &sensorPos=Eigen::Vector3d::Zero(), bool updateBodyPoses=true) |
| | Decide whether the point is either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
|
| |
| | RayCastingShapeMask (const TransformCallback &transformCallback, double minSensorDist=0.0, double maxSensorDist=1e10, bool doClipping=true, bool doContainsTest=true, bool doShadowTest=true, double maxShadowDist=-1.0) |
| |
| void | removeShape (const MultiShapeHandle &handle, bool updateInternalStructures=true) |
| | Remove the shape identified by the given handle from the filtering mask. More...
|
| |
| void | setIgnoreInContainsTest (std::unordered_set< MultiShapeHandle > ignoreInContainsTest, bool updateInternalStructures=true) |
| | Set the shapes to be ignored when doing test for INSIDE in maskContainmentAndShadows. More...
|
| |
| void | setIgnoreInShadowTest (std::unordered_set< MultiShapeHandle > ignoreInShadowTest, bool updateInternalStructures=true) |
| | Set the shapes to be ignored when doing test for SHADOW in maskContainmentAndShadows. More...
|
| |
| void | setTransformCallback (const TransformCallback &transform_callback) |
| | Set the callback which is called whenever a pose of a body needs to be updated. More...
|
| |
| void | updateBodyPoses () |
| | Update the poses of bodies and recompute corresponding bounding spheres. More...
|
| |
| void | updateInternalShapeLists () |
| | Update internal structures. Should be called whenever a shape is added, removed or ignored. By default, it is called automatically by the methods that affect the list of shapes. However, for efficiency, the caller can tell these methods to not update the shape lists and call this when a batch operation is finished. More...
|
| |
| virtual | ~RayCastingShapeMask () |
| |
|
Public Types inherited from robot_body_filter::RayCastingShapeMask |
| enum | MaskValue : std::uint8_t { MaskValue::INSIDE = 0,
MaskValue::OUTSIDE = 1,
MaskValue::CLIP = 2,
MaskValue::SHADOW = 3
} |
| |
| typedef boost::function< bool(ShapeHandle, Eigen::Isometry3d &)> | TransformCallback |
| |
Protected Member Functions inherited from robot_body_filter::RayCastingShapeMask |
| void | classifyPointNoLock (const Eigen::Vector3d &data, MaskValue &mask, const Eigen::Vector3d &sensorPos) |
| | Decide whether the point is either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
|
| |
| bodies::BoundingSphere | getBoundingSphereForContainsTestNoLock () const |
| | Get the bounding sphere containing all shapes that are to be used in the contains test. More...
|
| |
| bodies::BoundingSphere | getBoundingSphereNoLock () const |
| | Get the bounding sphere containing all registered shapes. More...
|
| |
| void | updateBodyPosesNoLock () |
| | Update the poses of bodies_ and recompute corresponding bspheres_ and boundingBoxes. More...
|
| |
| ShapeHandle | addShape (const shapes::ShapeConstPtr &shape, double scale=1.0, double padding=0.0) |
| |
| int | getMaskContainment (const Eigen::Vector3d &pt) const |
| |
| int | getMaskContainment (double x, double y, double z) const |
| |
| void | maskContainment (const sensor_msgs::PointCloud2 &data_in, const Eigen::Vector3d &sensor_pos, const double min_sensor_dist, const double max_sensor_dist, std::vector< int > &mask) |
| |
| void | removeShape (ShapeHandle handle) |
| |
| void | setTransformCallback (const TransformCallback &transform_callback) |
| |
| | ShapeMask (const TransformCallback &transform_callback=TransformCallback()) |
| |
| virtual | ~ShapeMask () |
| |
Protected Attributes inherited from robot_body_filter::RayCastingShapeMask |
| std::vector< size_t > | bspheresBodyIndices |
| | Contains indices of bodies (as listed in this->bodies_) which correspond to bounding spheres in this->bspheres_. Indices in this vector correspond to indices in bspheres_. Values of this vector correspond to indices in bodies_. More...
|
| |
| std::vector< bodies::BoundingSphere > | bspheresForContainsTest |
| | Bounding spheres to be used for classifying INSIDE points. More...
|
| |
| std::vector< size_t > | bspheresForContainsTestBodyIndices |
| | Contains indices of bodies (as listed in this->bodies_) which correspond to bounding spheres in this->bspheresForContainsTest. Indices in this vector correspond to indices in bspheresForContainsTest. Values of this vector correspond to indices in bodies_. More...
|
| |
| std::unique_ptr< RayCastingShapeMaskPIMPL > | data |
| | Implementation-private data. More...
|
| |
| bool | doClipping = true |
| | Classify for CLIP during masking. More...
|
| |
| bool | doContainsTest = true |
| | Classify for INSIDE during masking. More...
|
| |
| bool | doShadowTest = true |
| | Classify for SHADOW during masking. More...
|
| |
| std::unordered_set< MultiShapeHandle > | ignoreInBbox |
| | Shapes to be ignored when computing the robot's bounding box. More...
|
| |
| std::unordered_set< MultiShapeHandle > | ignoreInBsphere |
| | Shapes to be ignored when computing the robot's bounding sphere. More...
|
| |
| std::unordered_set< MultiShapeHandle > | ignoreInContainsTest |
| | Shapes to be ignored when doing test for INSIDE in maskContainmentAndShadows. More...
|
| |
| std::unordered_set< MultiShapeHandle > | ignoreInShadowTest |
| | Shapes to be ignored when doing test for SHADOW in maskContainmentAndShadows. E.g. the sensor collision shape should be listed here. More...
|
| |
| double | maxSensorDist |
| | Maximum sensing distance of the sensor. More...
|
| |
| double | maxShadowDist |
| | Maximum distance of a point classified as SHADOW (further are OUTSIDE). More...
|
| |
| double | minSensorDist |
| | Minimum sensing distance of the sensor. More...
|
| |
| std::set< SeeShape, SortBodies > | bodies_ |
| |
| std::vector< bodies::BoundingSphere > | bspheres_ |
| |
| boost::mutex | shapes_lock_ |
| |
| TransformCallback | transform_callback_ |
| |
| | CLIP |
| |
| | INSIDE |
| |
| | OUTSIDE |
| |