Class CObservationBearingRange

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class CObservationBearingRange : public mrpt::obs::CObservation

This observation represents a number of range-bearing value pairs, each one for a detected landmark, which optionally can have identification IDs. This class can manage sensors that detect landmarks in a 2D plane (e.g. a laser scanner) or in the 3D space (e.g. a camera). There are two direction angles: yaw (azimuth) and pitch (negative elevation). For 2D sensors, the pitch must be always set to 0. See CObservationBearingRange::validCovariances for the instructions to fill the uncertainty covariances.

See also

CObservation

Public Types

using TMeasurementList = std::vector<TMeasurement>

Public Functions

CObservationBearingRange() = default
void debugPrintOut()

Prints out the contents of the object.

inline virtual void getSensorPose(mrpt::poses::CPose3D &out_sensorPose) const override

A general method to retrieve the sensor pose on the robot. Note that most sensors will return a full (6D) CPose3D, but see the derived classes for more details or special cases.

See also

setSensorPose

inline virtual void setSensorPose(const mrpt::poses::CPose3D &newSensorPose) override

A general method to change the sensor pose on the robot. Note that most sensors will use the full (6D) CPose3D, but see the derived classes for more details or special cases.

See also

getSensorPose

virtual void getDescriptionAsText(std::ostream &o) const override

Build a detailed, multi-line textual description of the observation contents and dump it to the output stream.

Note

If overried by derived classes, call base CObservation::getDescriptionAsText() first to show common information.

Note

This is the text that appears in RawLogViewer when selecting an object in the dataset

inline virtual bool exportTxtSupported() const override

Must return true if the class is exportable to TXT/CSV files, in which case the other virtual methods in this group must be redefined too.

virtual std::string exportTxtHeader() const override

Returns the description of the data columns. Timestamp is automatically included as the first column, do not list it. See example implementations if interested in enabling this in custom CObservation classes. Do not include newlines.

virtual std::string exportTxtDataRow() const override

Returns one row of data with the data stored in this particular object. Do not include newlines.

Public Members

float minSensorDistance = {0}
float maxSensorDistance = {0}
float fieldOfView_yaw = mrpt::d2f(180.0_deg)

Information about the sensor: Ranges, in meters (0: there is no limits) Information about the sensor: The “field-of-view” of the sensor, in radians (for yaw ).

float fieldOfView_pitch = mrpt::d2f(90.0_deg)

Information about the sensor: The “field-of-view” of the sensor, in radians (for pitch ).

mrpt::poses::CPose3D sensorLocationOnRobot

The position of the sensor on the robot.

TMeasurementList sensedData

The list of observed ranges:

bool validCovariances = {false}

True: The individual 3x3 covariance matrices must be taken into account, false (default): All the measurements have identical, diagonal 3x3 covariance matrices given by the values sensor_std_range,sensor_std_yaw,sensor_std_pitch.

float sensor_std_range = {0}

Taken into account only if validCovariances=false: the standard deviation of the sensor noise model for range,yaw and pitch (in meters and radians). If validCovariances=true, these 3 values are ignored and the individual 3x3 covariance matrices contain the actual uncertainties for each of the detected landmarks.

float sensor_std_yaw = {0}
float sensor_std_pitch = {0}
struct TMeasurement

Each one of the measurements:

Public Members

float range

The sensed landmark distance, in meters.

float yaw

The sensed landmark direction, in radians, measured as the yaw (azimuth) and pitch (negative elevation). Set pitch to zero for 2D sensors. See mrpt::poses::CPose3D for a definition of the 3D angles.

float pitch
int32_t landmarkID

The ID of the sensed beacon, or INVALID_LANDMARK_ID (-1) if the sensor does not identify the landmark.

mrpt::math::CMatrixDouble33 covariance

The covariance matrix of the landmark, with variable indices [0,1,2] being [range,yaw,pitch].