MRPT
1.9.9
|
A class used to store a planar feature (Plane for short).
It is described with geometric features representing the shape and relative location of the patch (area, normal vector, elongation, 3D-convex hull, etc.) and radiometric features (the most representative color).
#include <mrpt/pbmap/Plane.h>
Public Member Functions | |
Plane () | |
void | forcePtsLayOnPlane () |
void | calcConvexHull (pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &pointCloud, std::vector< size_t > &indices=DEFAULT_VECTOR) |
! Calculate the plane's convex hull with the monotone chain algorithm. More... | |
void | calcConvexHullandParams (pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &pointCloud, std::vector< size_t > &indices=DEFAULT_VECTOR) |
float | compute2DPolygonalArea () |
Compute the area of a 2D planar polygon patch - using a given normal. More... | |
void | computeMassCenterAndArea () |
Compute the patch's convex-hull area and mass center. More... | |
void | calcElongationAndPpalDir () |
bool | isPlaneNearby (Plane &plane, const float distThreshold) |
bool | isSamePlane (Plane &plane, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold) |
bool | isSamePlane (Eigen::Matrix4f &Rt, Plane &plane_, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold) |
bool | hasSimilarDominantColor (Plane &plane, const float colorThreshold) |
void | mergePlane (Plane &plane) |
void | mergePlane2 (Plane &plane) |
void | transform (Eigen::Matrix4f &Rt) |
void | calcMainColor () |
void | calcMainColor2 () |
void | calcPlaneHistH () |
virtual mxArray * | writeToMatlab () const |
Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More... | |
RTTI classes and functions for polymorphic hierarchies | |
mrpt::rtti::CObject::Ptr | duplicateGetSmartPtr () const |
Makes a deep copy of the object and returns a smart pointer to it. More... | |
Public Attributes | |
unsigned | id |
! Parameters to allow the plane-based representation of the map by a graph More... | |
unsigned | numObservations |
unsigned | semanticGroup |
std::set< unsigned > | nearbyPlanes |
std::map< unsigned, unsigned > | neighborPlanes |
std::string | label |
std::string | label_object |
std::string | label_context |
Eigen::Vector3f | v3center |
! Geometric description More... | |
Eigen::Vector3f | v3normal |
float | d |
Eigen::Matrix4f | information |
float | curvature |
Eigen::Vector3f | v3PpalDir |
float | elongation |
float | areaVoxels |
float | areaHull |
bool | bFullExtent |
bool | bFromStructure |
unsigned | nFramesAreaIsStable |
Eigen::Vector3f | v3colorNrgb |
! Radiometric description More... | |
float | dominantIntensity |
bool | bDominantColor |
Eigen::Vector3f | v3colorNrgbDev |
Eigen::Vector3f | v3colorC1C2C3 |
std::vector< float > | hist_H |
std::vector< double > | prog_area |
std::vector< double > | prog_elongation |
std::vector< Eigen::Vector3f > | prog_C1C2C3 |
std::vector< Eigen::Vector3f > | prog_Nrgb |
std::vector< float > | prog_intensity |
std::vector< std::vector< float > > | prog_hist_H |
std::vector< int32_t > | inliers |
! Convex Hull More... | |
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr | polygonContourPtr |
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr | outerPolygonPtr |
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr | planePointCloudPtr |
Protected Member Functions | |
CSerializable virtual methods | |
uint8_t | serializeGetVersion () const override |
*---------------------------------------------------———— More... | |
void | serializeTo (mrpt::serialization::CArchive &out) const override |
Pure virtual method for writing (serializing) to an abstract archive. More... | |
void | serializeFrom (mrpt::serialization::CArchive &in, uint8_t serial_version) override |
Pure virtual method for reading (deserializing) from an abstract archive. More... | |
CSerializable virtual methods | |
virtual void | serializeTo (CSchemeArchiveBase &out) const |
Virtual method for writing (serializing) to an abstract schema based archive. More... | |
virtual void | serializeFrom (CSchemeArchiveBase &in) |
Virtual method for reading (deserializing) from an abstract schema based archive. More... | |
Private Member Functions | |
void | getPlaneNrgb () |
void | getPlaneC1C2C3 () |
Private Attributes | |
std::vector< float > | r |
std::vector< float > | g |
std::vector< float > | b |
std::vector< float > | intensity |
std::vector< float > | c1 |
std::vector< float > | c2 |
std::vector< float > | c3 |
RTTI stuff | |
using | Ptr = std::shared_ptr< Plane > |
using | ConstPtr = std::shared_ptr< const Plane > |
using | UniquePtr = std::unique_ptr< Plane > |
using | ConstUniquePtr = std::unique_ptr< const Plane > |
static mrpt::rtti::CLASSINIT | _init_Plane |
static const mrpt::rtti::TRuntimeClassId | runtimeClassId |
static constexpr const char * | className = "Plane" |
static const mrpt::rtti::TRuntimeClassId * | _GetBaseClass () |
static constexpr auto | getClassName () |
static const mrpt::rtti::TRuntimeClassId & | GetRuntimeClassIdStatic () |
static std::shared_ptr< CObject > | CreateObject () |
template<typename... Args> | |
static Ptr | Create (Args &&... args) |
template<typename Alloc , typename... Args> | |
static Ptr | CreateAlloc (const Alloc &alloc, Args &&... args) |
template<typename... Args> | |
static UniquePtr | CreateUnique (Args &&... args) |
virtual const mrpt::rtti::TRuntimeClassId * | GetRuntimeClass () const override |
Returns information about the class of an object in runtime. More... | |
virtual mrpt::rtti::CObject * | clone () const override |
Returns a deep copy (clone) of the object, indepently of its class. More... | |
using mrpt::pbmap::Plane::ConstPtr = std::shared_ptr<const Plane > |
using mrpt::pbmap::Plane::ConstUniquePtr = std::unique_ptr<const Plane > |
using mrpt::pbmap::Plane::Ptr = std::shared_ptr< Plane > |
using mrpt::pbmap::Plane::UniquePtr = std::unique_ptr< Plane > |
|
staticprotected |
void Plane::calcConvexHull | ( | pcl::PointCloud< pcl::PointXYZRGBA >::Ptr & | pointCloud, |
std::vector< size_t > & | indices = DEFAULT_VECTOR |
||
) |
! Calculate the plane's convex hull with the monotone chain algorithm.
Definition at line 761 of file Plane.cpp.
References cross().
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and mrpt::pbmap::PbMapMaker::mergePlanes().
void Plane::calcConvexHullandParams | ( | pcl::PointCloud< pcl::PointXYZRGBA >::Ptr & | pointCloud, |
std::vector< size_t > & | indices = DEFAULT_VECTOR |
||
) |
Definition at line 829 of file Plane.cpp.
References cross(), and mrpt::math::norm().
void Plane::calcElongationAndPpalDir | ( | ) |
Calculate plane's elongation and principal direction
Definition at line 331 of file Plane.cpp.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().
void Plane::calcMainColor | ( | ) |
Calculate plane's main color using "MeanShift" method
dominantIntensity = getHistogramMeanShift(intensity, 767.0, v3colorNrgbDev(2));
cout << "c1c2c3 in " << (getColorEnd - getColorStart)*1000000 << "
us\n";
Definition at line 603 of file Plane.cpp.
References mrpt::pbmap::getHistogramMeanShift().
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().
void Plane::calcMainColor2 | ( | ) |
Definition at line 532 of file Plane.cpp.
References concentrationThreshold, and mrpt::pbmap::getMultiDimMeanShift_color().
|
overridevirtual |
Returns a deep copy (clone) of the object, indepently of its class.
Implements mrpt::rtti::CObject.
float Plane::compute2DPolygonalArea | ( | ) |
Compute the area of a 2D planar polygon patch - using a given normal.
Compute the area of a 2D planar polygon patch.
polygonContourPtr | the point cloud (planar) |
normal | the plane normal |
Definition at line 249 of file Plane.cpp.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().
void Plane::computeMassCenterAndArea | ( | ) |
Compute the patch's convex-hull area and mass center.
Definition at line 285 of file Plane.cpp.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and mrpt::pbmap::PbMapMaker::mergePlanes().
|
inlinestatic |
|
inlinestatic |
|
static |
|
inlinestatic |
|
inlineinherited |
Makes a deep copy of the object and returns a smart pointer to it.
Definition at line 200 of file CObject.h.
References mrpt::rtti::CObject::clone().
Referenced by mrpt::obs::CRawlog::addActions(), and mrpt::obs::CRawlog::addObservations().
void Plane::forcePtsLayOnPlane | ( | ) |
Force the plane inliers to lay on the plane
Definition at line 220 of file Plane.cpp.
Referenced by mrpt::pbmap::PbMapMaker::mergePlanes().
|
inlinestatic |
|
private |
|
overridevirtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::serialization::CSerializable.
|
static |
bool Plane::hasSimilarDominantColor | ( | Plane & | plane, |
const float | colorThreshold | ||
) |
Definition at line 1068 of file Plane.cpp.
References bDominantColor, and v3colorNrgb.
bool Plane::isPlaneNearby | ( | Plane & | plane_nearby, |
const float | distThreshold | ||
) |
Returns true when the closest distance between the patches "this" and "plane" is under distThreshold.
Returns true when the closest distance between the patches "this" and the input "plane_nearby" is under distThreshold. This function is approximated
Definition at line 960 of file Plane.cpp.
References mrpt::pbmap::diffPoints(), mrpt::pbmap::dist3D_Segment_to_Segment2(), mrpt::pbmap::getVector3fromPointXYZ(), polygonContourPtr, and v3center.
bool Plane::isSamePlane | ( | Plane & | plane_nearby, |
const float & | cosAngleThreshold, | ||
const float & | parallelDistThres, | ||
const float & | proxThreshold | ||
) |
bool Plane::isSamePlane | ( | Eigen::Matrix4f & | Rt, |
Plane & | plane_, | ||
const float & | cosAngleThreshold, | ||
const float & | parallelDistThres, | ||
const float & | proxThreshold | ||
) |
Check if the the input plane is the same than this plane for some given angle and distance thresholds. If the planes are the same they are merged in this and the function returns true. Otherwise it returns false.
if(fabs(dist_normal) > parallelDistThres ) // Avoid matching different parallel planes
Definition at line 1034 of file Plane.cpp.
References d, polygonContourPtr, v3center, and v3normal.
Merge the two input patches into "updatePlane". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.
Merge the input "same_plane_patch" into "this". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.
Definition at line 1082 of file Plane.cpp.
References inliers, planePointCloudPtr, polygonContourPtr, and v3normal.
Definition at line 1135 of file Plane.cpp.
References hist_H, inliers, planePointCloudPtr, polygonContourPtr, and v3normal.
|
overrideprotectedvirtual |
Pure virtual method for reading (deserializing) from an abstract archive.
Users don't call this method directly. Instead, use stream >> object;
.
in | The input binary stream where the object data must read from. |
version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
std::exception | On any I/O error |
in >> v3colorNrgbDev(0) >> v3colorNrgbDev(1) >> v3colorNrgbDev(2);
Implements mrpt::serialization::CSerializable.
Definition at line 172 of file Plane.cpp.
References MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION.
|
inlineprotectedvirtualinherited |
Virtual method for reading (deserializing) from an abstract schema based archive.
Definition at line 74 of file CSerializable.h.
References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.
|
overrideprotectedvirtual |
*---------------------------------------------------————
out.WriteBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3colorNrgbDev(0),3); *---------------------------------------------------------—— in.ReadBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3normal[0],sizeof(v3normal[0])*3); / in.ReadBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3center[0],sizeof(v3center[0])*3); / in.ReadBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3PpalDir[0],sizeof(v3PpalDir[0])*3); / in.ReadBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3colorNrgb[0],sizeof(v3colorNrgb[0])*3); / in.ReadBufferFixEndianness<Eigen::Vector3f::Scalar>(&v3colorNrgbDev[0],sizeof(v3colorNrgbDev[0])*3);
Implements mrpt::serialization::CSerializable.
|
overrideprotectedvirtual |
Pure virtual method for writing (serializing) to an abstract archive.
Users don't call this method directly. Instead, use stream << object;
.
std::exception | On any I/O error |
out << v3colorNrgbDev(0) << v3colorNrgbDev(1) << v3colorNrgbDev(2);
Implements mrpt::serialization::CSerializable.
|
inlineprotectedvirtualinherited |
Virtual method for writing (serializing) to an abstract schema based archive.
Definition at line 64 of file CSerializable.h.
References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.
|
inlinevirtualinherited |
Introduces a pure virtual method responsible for writing to a mxArray
Matlab object, typically a MATLAB struct
whose contents are documented in each derived class.
mxArray
(caller is responsible of memory freeing) or nullptr is class does not support conversion to MATLAB. Definition at line 90 of file CSerializable.h.
|
staticprotected |
float mrpt::pbmap::Plane::areaHull |
Definition at line 148 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), and mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D().
float mrpt::pbmap::Plane::areaVoxels |
bool mrpt::pbmap::Plane::bDominantColor |
Definition at line 158 of file Plane.h.
Referenced by hasSimilarDominantColor().
bool mrpt::pbmap::Plane::bFromStructure |
Definition at line 150 of file Plane.h.
Referenced by mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), and mrpt::pbmap::PlaneInferredInfo::searchTheFloor().
bool mrpt::pbmap::Plane::bFullExtent |
Definition at line 149 of file Plane.h.
Referenced by mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), and mrpt::pbmap::PlaneInferredInfo::isFullExtent().
|
private |
|
static |
float mrpt::pbmap::Plane::d |
Definition at line 140 of file Plane.h.
Referenced by mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), and isSamePlane().
float mrpt::pbmap::Plane::dominantIntensity |
Definition at line 157 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::viz_cb().
float mrpt::pbmap::Plane::elongation |
std::vector<float> mrpt::pbmap::Plane::hist_H |
Definition at line 162 of file Plane.h.
Referenced by mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), and mergePlane2().
unsigned mrpt::pbmap::Plane::id |
! Parameters to allow the plane-based representation of the map by a graph
Definition at line 124 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::checkProximity(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), mrpt::pbmap::PbMap::MergeWith(), mrpt::pbmap::PbMapLocaliser::searchPlaneContext(), mrpt::pbmap::PlaneInferredInfo::searchTheFloor(), and mrpt::pbmap::PbMap::serializeFrom().
std::vector<int32_t> mrpt::pbmap::Plane::inliers |
! Convex Hull
Definition at line 178 of file Plane.h.
Referenced by mergePlane(), and mergePlane2().
std::string mrpt::pbmap::Plane::label |
Labels to store semantic attributes
Definition at line 131 of file Plane.h.
Referenced by mrpt::pbmap::PlaneInferredInfo::searchTheFloor().
std::string mrpt::pbmap::Plane::label_context |
std::string mrpt::pbmap::Plane::label_object |
std::set<unsigned> mrpt::pbmap::Plane::nearbyPlanes |
Definition at line 127 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::checkProximity(), and mrpt::pbmap::PbMapLocaliser::searchPlaneContext().
std::map<unsigned, unsigned> mrpt::pbmap::Plane::neighborPlanes |
Definition at line 128 of file Plane.h.
Referenced by mrpt::pbmap::PbMapLocaliser::searchPlaneContext().
unsigned mrpt::pbmap::Plane::nFramesAreaIsStable |
Definition at line 151 of file Plane.h.
Referenced by mrpt::pbmap::PlaneInferredInfo::isFullExtent().
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::outerPolygonPtr |
Definition at line 181 of file Plane.h.
Referenced by mrpt::pbmap::PlaneInferredInfo::isSurroundingBackground().
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::planePointCloudPtr |
Definition at line 183 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), mergePlane(), mergePlane2(), mrpt::pbmap::PbMapMaker::mergePlanes(), mrpt::pbmap::PbMap::MergeWith(), and mrpt::pbmap::PbMapMaker::viz_cb().
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::polygonContourPtr |
Definition at line 179 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::arePlanesNearby(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), isPlaneNearby(), isSamePlane(), mrpt::pbmap::PlaneInferredInfo::isSurroundingBackground(), mergePlane(), mergePlane2(), mrpt::pbmap::PbMapMaker::mergePlanes(), mrpt::pbmap::PbMap::MergeWith(), and mrpt::pbmap::PbMapMaker::viz_cb().
std::vector<Eigen::Vector3f> mrpt::pbmap::Plane::prog_C1C2C3 |
std::vector<std::vector<float> > mrpt::pbmap::Plane::prog_hist_H |
|
staticprotected |
Eigen::Vector3f mrpt::pbmap::Plane::v3center |
! Geometric description
Definition at line 138 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::arePlanesNearby(), mrpt::pbmap::PbMapMaker::areSamePlane(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), isPlaneNearby(), isSamePlane(), mrpt::pbmap::PlaneInferredInfo::isSurroundingBackground(), mrpt::pbmap::PbMap::MergeWith(), mrpt::pbmap::PlaneInferredInfo::searchTheFloor(), and mrpt::pbmap::PbMapMaker::viz_cb().
Eigen::Vector3f mrpt::pbmap::Plane::v3colorNrgb |
! Radiometric description
Definition at line 156 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), hasSimilarDominantColor(), and mrpt::pbmap::PbMapMaker::viz_cb().
Eigen::Vector3f mrpt::pbmap::Plane::v3normal |
Definition at line 139 of file Plane.h.
Referenced by mrpt::pbmap::PbMapMaker::arePlanesNearby(), mrpt::pbmap::PbMapMaker::areSamePlane(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry(), mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D(), isSamePlane(), mrpt::pbmap::PlaneInferredInfo::isSurroundingBackground(), mergePlane(), mergePlane2(), mrpt::pbmap::PbMapMaker::mergePlanes(), mrpt::pbmap::PbMap::MergeWith(), mrpt::pbmap::PlaneInferredInfo::searchTheFloor(), and mrpt::pbmap::PbMapMaker::viz_cb().
Eigen::Vector3f mrpt::pbmap::Plane::v3PpalDir |
Definition at line 144 of file Plane.h.
Referenced by mrpt::pbmap::PbMap::MergeWith().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019 |