Go to the documentation of this file.
78 std::vector<std::pair<mrpt::math::CPolygon, std::pair<double, double>>>;
90 const size_t len,
const float rangeVal,
const bool rangeValidity,
91 const int32_t rangeIntensity = 0);
141 size_t nRays,
const float* scanRanges,
const char* scanValidity);
165 template <
class POINTSMAP>
168 return static_cast<const POINTSMAP*
>(
m_cachedMap.get());
183 template <
class POINTSMAP>
185 const void* options =
nullptr)
const
188 return static_cast<const POINTSMAP*
>(
m_cachedMap.get());
220 float min_distance,
float max_angle,
float min_height = 0,
221 float max_height = 0,
float h = 0);
243 const std::vector<std::pair<double, double>>& angles);
mrpt::aligned_std_vector< int32_t > m_intensity
The intensity values of the scan.
void setScanRange(const size_t i, const float val)
void loadFromVectors(size_t nRays, const float *scanRanges, const char *scanValidity)
float maxRange
The maximum range allowed by the device, in meters (e.g.
bool rightToLeft
The scanning direction: true=counterclockwise; false=clockwise.
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
const float & getScanRange(const size_t i) const
The range values of the scan, in meters.
size_t getScanSize() const
Get number of scan rays.
void internal_buildAuxPointsMap(const void *options=nullptr) const
Internal method, used from buildAuxPointsMap()
Auxiliary struct that holds all the relevant geometry information about a 2D scan.
std::vector< mrpt::math::CPolygon > TListExclusionAreas
Used in filterByExclusionAreas.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
bool hasIntensity() const
Return true if scan has intensity.
const POINTSMAP * buildAuxPointsMap(const void *options=nullptr) const
Returns a cached points map representing this laser scan, building it upon the first call.
mrpt::aligned_std_vector< char > m_validRange
It's false (=0) on no reflected rays, referenced to elements in scan.
void resizeScan(const size_t len)
Resizes all data vectors to allocate a given number of scan rays.
bool isPlanarScan(const double tolerance=0) const
Return true if the laser scanner is "horizontal", so it has an absolute value of "pitch" and "roll" l...
void setScanRangeValidity(const size_t i, const bool val)
double deltaPitch
If the laser gathers data by sweeping in the pitch/elevation angle, this holds the increment in "pitc...
This namespace contains representation of robot actions and observations.
void getDescriptionAsText(std::ostream &o) const override
Build a detailed, multi-line textual description of the observation contents and dump it to the outpu...
void truncateByDistanceAndAngle(float min_distance, float max_angle, float min_height=0, float max_height=0, float h=0)
A general method to truncate the scan by defining a minimum valid distance and a maximum valid angle ...
void setScanIntensity(const size_t i, const int val)
std::vector< T, mrpt::aligned_allocator_cpp11< T > > aligned_std_vector
mrpt::maps::CMetricMap::Ptr m_cachedMap
A points map, build only under demand by the methods getAuxPointsMap() and buildAuxPointsMap().
void filterByExclusionAngles(const std::vector< std::pair< double, double >> &angles)
Mark as invalid the ranges in any of a given set of "forbiden angle ranges", given as pairs<min_angle...
void resizeScanAndAssign(const size_t len, const float rangeVal, const bool rangeValidity, const int32_t rangeIntensity=0)
Resizes all data vectors to allocate a given number of scan rays and assign default values.
float aperture
The "aperture" or field-of-view of the range finder, in radians (typically M_PI = 180 degrees).
void setScanHasIntensity(bool setHasIntensityFlag)
Marks this scan as having or not intensity data.
std::vector< std::pair< mrpt::math::CPolygon, std::pair< double, double > >> TListExclusionAreasWithRanges
Used in filterByExclusionAreas.
void getSensorPose(mrpt::poses::CPose3D &out_sensorPose) const override
A general method to retrieve the sensor pose on the robot.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
#define MRPT_DECLARE_TTYPENAME_PTR_NAMESPACE(_TYPE, __NS)
const POINTSMAP * getAuxPointsMap() const
Returns the cached points map representation of the scan, if already build with buildAuxPointsMap(),...
DECLARE_MEXPLUS_FROM(mrpt::img::TCamera) namespace std
float beamAperture
The aperture of each beam, in radians, used to insert "thick" rays in the occupancy grid.
std::shared_ptr< CMetricMap > Ptr
mrpt::aligned_std_vector< float > m_scan
The range values of the scan, in meters.
float stdError
The "sigma" error of the device in meters, used while inserting the scan in an occupancy grid.
CObservation2DRangeScan()=default
Default constructor.
const int32_t & getScanIntensity(const size_t i) const
The intensity values of the scan.
void getScanProperties(T2DScanProperties &p) const
Fill out a T2DScanProperties structure with the parameters of this scan.
bool m_has_intensity
Whether the intensity values are present or not.
Declares a class that represents any robot's observation.
void setSensorPose(const mrpt::poses::CPose3D &newSensorPose) override
A general method to change the sensor pose on the robot.
mrpt::poses::CPose3D sensorPose
The 6D pose of the sensor on the robot at the moment of starting the scan.
bool getScanRangeValidity(const size_t i) const
It's false (=0) on no reflected rays, referenced to elements in scan.
void filterByExclusionAreas(const TListExclusionAreas &areas)
Mark as invalid sensed points that fall within any of a set of "exclusion areas", given in coordinate...
#define DECLARE_MEX_CONVERSION
This must be inserted if a custom conversion method for MEX API is implemented in the class.
Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 15 23:51:15 UTC 2020 | |