Go to the documentation of this file.
9 #ifndef CObservation2DRangeScan_H
10 #define CObservation2DRangeScan_H
80 std::vector<std::pair<mrpt::math::CPolygon, std::pair<double, double>>>;
94 const size_t len,
const float rangeVal,
const bool rangeValidity,
95 const int32_t rangeIntensity = 0);
152 size_t nRays,
const float* scanRanges,
const char* scanValidity);
176 template <
class POINTSMAP>
179 return static_cast<const POINTSMAP*
>(
m_cachedMap.get());
194 template <
class POINTSMAP>
196 const void* options =
nullptr)
const
199 return static_cast<const POINTSMAP*
>(
m_cachedMap.get());
231 float min_distance,
float max_angle,
float min_height = 0,
232 float max_height = 0,
float h = 0);
254 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.
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
int32_t getScanIntensity(const size_t i) const
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.
mrpt::containers::ContainerReadOnlyProxyAccessor< mrpt::aligned_std_vector< int32_t > > intensity
The intensity values of the scan.
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 generic proxy accessor template that only allows read-only access to the original binded STL contai...
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(),...
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.
#define DECLARE_MEXPLUS_FROM(complete_type)
This must be inserted if a custom conversion method for MEX API is implemented in the class.
mrpt::containers::ContainerReadOnlyProxyAccessor< mrpt::aligned_std_vector< float > > scan
The range values of the scan, in meters.
float getScanRange(const size_t i) const
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
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.
mrpt::containers::ContainerReadOnlyProxyAccessor< mrpt::aligned_std_vector< char > > validRange
It's false (=0) on no reflected rays, referenced to elements in scan.
bool getScanRangeValidity(const size_t i) const
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 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |