MRPT
1.9.9
|
Observation classes for all kinds of robot sensors.
Back to list of all libraries | See all modules
This library is part of MRPT and can be installed in Debian-based systems with:
sudo apt install libmrpt-obs-dev
See: Using MRPT from your CMake project
Key concepts:
Sensor observations: All sensor observations share a common virtual base class (mrpt::obs::CObservation). There are classes to store laser scanners, 3D range images, monocular and stereo images, GPS data, odometry, etc. A concept very related to observations is a mrpt::obs::CSensoryFrame, a set of observations which were collected approximately at the same instant.
Rawlogs (datasets): A robotics dataset can be loaded, edited and explored by means of the class mrpt::obs::CRawlog. See also: https://www.mrpt.org/Rawlog_Format
Actions: For convenience in many Bayesian filtering algorithms, robot actions (like 2D displacement characterized by an odometry increment) can be represented by means of "actions". See mrpt::obs::CAction.
"Simple maps": In MRPT, a "simple map" is a set of pairs: "position", "sensory frames" (read above). The advantage of maintaining such a "simple map" instead a metric map is that the metric maps can be rebuilt when needed with different parameters from the raw observations, which are never lost.
CARMEN logs tools: Utilities to read from CARMEN log files and load the observations there as MRPT observations. See mrpt::obs::carmen_log_parse_line and the applications: carmen2rawlog, carmen2simplemap.
See the list of classes in mrpt::obs
Classes | |
class | mrpt::obs::CObservationRotatingScan |
A CObservation -derived class for raw range data from a 2D or 3D rotating scanner. More... | |
class | mrpt::maps::CMetricMap |
Declares a virtual base class for all metric maps storage classes. More... | |
class | mrpt::maps::mrptEventMetricMapClear |
Event emitted by a metric up upon call of clear() More... | |
class | mrpt::maps::mrptEventMetricMapInsert |
Event emitted by a metric up upon a succesful call to insertObservation() More... | |
class | mrpt::maps::CSimpleMap |
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be totally determined with this information. More... | |
struct | mrpt::maps::TMetricMapInitializer |
Virtual base for specifying the kind and parameters of one map (normally, to be inserted into mrpt::maps::CMultiMetricMap) See mrpt::maps::TSetOfMetricMapInitializers::loadFromConfigFile() as an easy way of initialize this object, or construct with the factory methods <metric_map_class>::MapDefinition() and TMetricMapInitializer::factory() More... | |
class | mrpt::maps::TSetOfMetricMapInitializers |
A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap See the comments for TSetOfMetricMapInitializers::loadFromConfigFile, and "CMultiMetricMap::setListOfMaps" for effectively creating the list of desired maps. More... | |
class | mrpt::obs::CAction |
Declares a class for storing a robot action. More... | |
class | mrpt::obs::CActionCollection |
Declares a class for storing a collection of robot actions. More... | |
class | mrpt::obs::CActionRobotMovement2D |
Represents a probabilistic 2D movement of the robot mobile base. More... | |
class | mrpt::obs::CActionRobotMovement3D |
Represents a probabilistic 3D (6D) movement. More... | |
class | mrpt::obs::CObservation |
Declares a class that represents any robot's observation. More... | |
class | mrpt::obs::CObservation2DRangeScan |
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser scanner). More... | |
class | mrpt::obs::CObservation3DRangeScan |
A range or depth 3D scan measurement, as from a time-of-flight range camera or a structured-light depth RGBD sensor. More... | |
class | mrpt::obs::CObservation6DFeatures |
An observation of one or more "features" or "objects", possibly identified with a unique ID, whose relative SE(3) pose is observed with respect to the sensor. More... | |
class | mrpt::obs::CObservationBatteryState |
This represents a measurement of the batteries on the robot. More... | |
class | mrpt::obs::CObservationBeaconRanges |
Declares a class derived from "CObservation" that represents one (or more) range measurements to labeled beacons. More... | |
class | mrpt::obs::CObservationBearingRange |
This observation represents a number of range-bearing value pairs, each one for a detected landmark, which optionally can have identification IDs. More... | |
class | mrpt::obs::CObservationCANBusJ1939 |
This class stores a message from a CAN BUS with the protocol J1939. More... | |
class | mrpt::obs::CObservationComment |
This "observation" is actually a placeholder for a text block with comments or additional parameters attached to a given rawlog file. More... | |
class | mrpt::obs::CObservationGasSensors |
Declares a class derived from "CObservation" that represents a set of readings from gas sensors. More... | |
class | mrpt::obs::CObservationGPS |
This class stores messages from GNSS or GNSS+IMU devices, from consumer-grade inexpensive GPS receivers to Novatel/Topcon/... More... | |
class | mrpt::obs::CObservationImage |
Declares a class derived from "CObservation" that encapsules an image from a camera, whose relative pose to robot is also stored. More... | |
class | mrpt::obs::CObservationIMU |
This class stores measurements from an Inertial Measurement Unit (IMU) (attitude estimation, raw gyroscope and accelerometer values), altimeters or magnetometers. More... | |
class | mrpt::obs::CObservationOdometry |
An observation of the current (cumulative) odometry for a wheeled robot. More... | |
class | mrpt::obs::CObservationRange |
Declares a class derived from "CObservation" that encapsules a single range measurement, and associated parameters. More... | |
class | mrpt::obs::CObservationRawDAQ |
Store raw data from a Data Acquisition (DAQ) device, such that input or output analog and digital channels, counters from encoders, etc. More... | |
class | mrpt::obs::CObservationReflectivity |
Declares a class derived from "CObservation" that encapsules a single short-range reflectivity measurement. More... | |
class | mrpt::obs::CObservationRFID |
This represents one or more RFID tags observed by a receiver. More... | |
class | mrpt::obs::CObservationRGBD360 |
Declares a class derived from "CObservation" that encapsules an omnidirectional RGBD measurement from a set of RGBD sensors. More... | |
class | mrpt::obs::CObservationRobotPose |
An observation providing an alternative robot pose from an external source. More... | |
class | mrpt::obs::CObservationSkeleton |
This class stores a skeleton as tracked by OPENNI2 & NITE2 libraries from PrimeSense sensors. More... | |
class | mrpt::obs::CObservationStereoImages |
Observation class for either a pair of left+right or left+disparity images from a stereo camera. More... | |
class | mrpt::obs::CObservationStereoImagesFeatures |
Declares a class derived from "CObservation" that encapsules a pair of cameras and a set of matched image features extracted from them. More... | |
class | mrpt::obs::CObservationVelodyneScan |
A CObservation -derived class for RAW DATA (and optionally, point cloud) of scans from 3D Velodyne LIDAR scanners. More... | |
class | mrpt::obs::CObservationWindSensor |
Declares a class derived from "CObservation" that represents the wind measurements taken on the robot by an anemometer. More... | |
class | mrpt::obs::CObservationWirelessPower |
This represents a measurement of the wireless strength perceived by the robot. More... | |
class | mrpt::obs::CRawlog |
This class stores a rawlog (robotic datasets) in one of two possible formats: More... | |
class | mrpt::obs::CSensoryFrame |
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximately at the same time as one "snapshot" of the environment. More... | |
class | mrpt::obs::CSinCosLookUpTableFor2DScans |
A smart look-up-table (LUT) of sin/cos values for 2D laser scans. More... | |
struct | mrpt::obs::T2DScanProperties |
Auxiliary struct that holds all the relevant geometry information about a 2D scan. More... | |
struct | mrpt::obs::T3DPointsProjectionParams |
Used in CObservation3DRangeScan::unprojectInto() More... | |
struct | mrpt::obs::T3DPointsTo2DScanParams |
Used in CObservation3DRangeScan::convertTo2DScan() More... | |
struct | mrpt::obs::TPixelLabelInfoBase |
Virtual interface to all pixel-label semantic information structs. More... | |
struct | mrpt::obs::TPixelLabelInfo< BYTES_REQUIRED_ > |
Pixel-wise semantic label struct. More... | |
struct | mrpt::obs::VelodyneCalibration |
Velodyne calibration data, for usage in mrpt::obs::CObservationVelodyneScan. More... | |
Namespaces | |
mrpt::obs::stock_observations | |
A few stock observations for easy reuse in unit tests, examples, etc. | |
Macros | |
#define | INVALID_BEACON_ID (-1) |
Used for CObservationBeaconRange, CBeacon, etc. More... | |
#define | INVALID_LANDMARK_ID (-1) |
Used for CObservationBearingRange::TMeasurement::beaconID and others. More... | |
Functions | |
bool | mrpt::obs::carmen_log_parse_line (std::istream &in_stream, std::vector< mrpt::obs::CObservation::Ptr > &out_imported_observations, const mrpt::system::TTimeStamp &time_start_log) |
Parse one line from an text input stream and interpret it as a CARMEN log entry, returning its MRPT observation representation. More... | |
template<class OBSERVATION_T > | |
OBSERVATION_T::Ptr | mrpt::obs::utils::getObservation (mrpt::obs::CSensoryFrame::Ptr &observations, mrpt::obs::CObservation::Ptr &observation, bool priority_to_sf=true) |
Given an mrpt::obs::CSensoryFrame and a mrpt::obs::CObservation pointer if a OBSERVATION_T type observation is included and return a pointer to that instance. More... | |
void | mrpt::obs::stock_observations::example2DRangeScan (mrpt::obs::CObservation2DRangeScan &s, int i=0) |
Example 2D lidar scans (form a venerable SICK LMS200). More... | |
void | mrpt::obs::stock_observations::exampleImage (mrpt::img::CImage &im, int i=0) |
Example images (an 800x640 image pair from a Bumblebee 1) Implemented indices: 0,1. More... | |
#define INVALID_BEACON_ID (-1) |
Used for CObservationBeaconRange, CBeacon, etc.
Definition at line 23 of file CObservation.h.
Referenced by mrpt::maps::CMultiMetricMapPDF::prediction_and_update_pfOptimalProposal().
#define INVALID_LANDMARK_ID (-1) |
Used for CObservationBearingRange::TMeasurement::beaconID and others.
Definition at line 27 of file CObservation.h.
Referenced by mrpt::obs::CObservationBearingRange::getDescriptionAsText(), mrpt::obs::CObservationBearingRange::serializeFrom(), mrpt::obs::CObservationBearingRange::serializeTo(), and mrpt::maps::CLandmarksMap::simulateRangeBearingReadings().
Symbolic names for the indices of IMU data (refer to mrpt::obs::CObservationIMU)
Definition at line 23 of file CObservationIMU.h.
bool mrpt::obs::carmen_log_parse_line | ( | std::istream & | in_stream, |
std::vector< mrpt::obs::CObservation::Ptr > & | out_imported_observations, | ||
const mrpt::system::TTimeStamp & | time_start_log | ||
) |
Parse one line from an text input stream and interpret it as a CARMEN log entry, returning its MRPT observation representation.
The first word in each line determines the type of that entry. Supported line entries in this class are the following:
Note that the sensor position on the robot will be always deduced from the corresponding CARMEN log line automatically.
The following entry types will be IGNORED, since with the tags above will be enough in most applications.
About the PARAM entries: This functions has an internal static status consisting on some PARAM values which have effects on the future read observations. When the function finds one of these, it stores the parameter value, return an empty vector of observations, and use those values for future laser entries of types FLASER or RLASER. Currently, only these parameters are processed:
time_start_log | The real timestamp that corresponds to a "0" in the CARMEN log (you can get a mrpt::system::now() once and pass that same value with each call). |
References: http://carmen.sourceforge.net/doc/binary__loggerplayback.html
std::runtime_error | On any invalid line found. |
global parameters loaded in previous calls.
Definition at line 26 of file carmen_log_tools.cpp.
References mrpt::d2f(), mrpt::DEG2RAD(), mrpt::system::lowerCase(), mrpt::math::TPose2D::phi, mrpt::system::strStartsI(), THROW_EXCEPTION_FMT, trim(), val, mrpt::math::TPose2D::x, and mrpt::math::TPose2D::y.
void mrpt::obs::stock_observations::example2DRangeScan | ( | mrpt::obs::CObservation2DRangeScan & | s, |
int | i = 0 |
||
) |
Example 2D lidar scans (form a venerable SICK LMS200).
Implemented indices: 0,1.
Definition at line 23 of file stock_observations.cpp.
References mrpt::obs::CObservation2DRangeScan::aperture, mrpt::obs::CObservation2DRangeScan::loadFromVectors(), M_PIf, and mrpt::obs::CObservation2DRangeScan::rightToLeft.
Referenced by ICPTests::align2scans(), and TEST().
void mrpt::obs::stock_observations::exampleImage | ( | mrpt::img::CImage & | im, |
int | i = 0 |
||
) |
Example images (an 800x640 image pair from a Bumblebee 1) Implemented indices: 0,1.
Definition at line 175 of file stock_observations.cpp.
References mrpt::serialization::archiveFrom(), mrpt::io::CMemoryStream::assignMemoryNotOwn(), sample_image1, sample_image2, and THROW_EXCEPTION.
OBSERVATION_T::Ptr mrpt::obs::utils::getObservation | ( | mrpt::obs::CSensoryFrame::Ptr & | observations, |
mrpt::obs::CObservation::Ptr & | observation, | ||
bool | priority_to_sf = true |
||
) |
Given an mrpt::obs::CSensoryFrame and a mrpt::obs::CObservation pointer if a OBSERVATION_T type observation is included and return a pointer to that instance.
Definition at line 31 of file obs_utils.h.
Referenced by mrpt::hwdrivers::CWirelessPower::doProcess(), mrpt::hwdrivers::CImpinjRFID::doProcess(), mrpt::hwdrivers::CBoardSonars::doProcess(), mrpt::hwdrivers::CEnoseModular::doProcess(), mrpt::hwdrivers::CBoardENoses::doProcess(), and mrpt::hwdrivers::CPhidgetInterfaceKitProximitySensors::doProcess().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: c7a3bec24 Sun Mar 29 18:33:13 2020 +0200 at dom mar 29 18:50:38 CEST 2020 |